@vuecs/navigation 2.4.0 → 3.0.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.
- package/LICENSE +201 -21
- package/README.md +10 -167
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/item/module.d.ts +48 -4
- package/dist/components/item/module.d.ts.map +1 -1
- package/dist/components/items/index.d.ts +1 -0
- package/dist/components/items/index.d.ts.map +1 -1
- package/dist/components/items/module.d.ts +45 -2
- package/dist/components/items/module.d.ts.map +1 -1
- package/dist/components/items/theme.d.ts +10 -0
- package/dist/components/items/theme.d.ts.map +1 -0
- package/dist/components/stepper/Stepper.vue.d.ts +129 -0
- package/dist/components/stepper/Stepper.vue.d.ts.map +1 -0
- package/dist/components/stepper/StepperDescription.vue.d.ts +79 -0
- package/dist/components/stepper/StepperDescription.vue.d.ts.map +1 -0
- package/dist/components/stepper/StepperIndicator.vue.d.ts +79 -0
- package/dist/components/stepper/StepperIndicator.vue.d.ts.map +1 -0
- package/dist/components/stepper/StepperItem.vue.d.ts +99 -0
- package/dist/components/stepper/StepperItem.vue.d.ts.map +1 -0
- package/dist/components/stepper/StepperSeparator.vue.d.ts +79 -0
- package/dist/components/stepper/StepperSeparator.vue.d.ts.map +1 -0
- package/dist/components/stepper/StepperTitle.vue.d.ts +79 -0
- package/dist/components/stepper/StepperTitle.vue.d.ts.map +1 -0
- package/dist/components/stepper/StepperTrigger.vue.d.ts +79 -0
- package/dist/components/stepper/StepperTrigger.vue.d.ts.map +1 -0
- package/dist/components/stepper/context.d.ts +19 -0
- package/dist/components/stepper/context.d.ts.map +1 -0
- package/dist/components/stepper/index.d.ts +19 -0
- package/dist/components/stepper/index.d.ts.map +1 -0
- package/dist/components/stepper/theme.d.ts +4 -0
- package/dist/components/stepper/theme.d.ts.map +1 -0
- package/dist/components/stepper/types.d.ts +23 -0
- package/dist/components/stepper/types.d.ts.map +1 -0
- package/dist/components/type.d.ts +22 -0
- package/dist/components/type.d.ts.map +1 -0
- package/dist/helpers/component/index.d.ts +0 -1
- package/dist/helpers/component/index.d.ts.map +1 -1
- package/dist/helpers/component/types.d.ts +15 -15
- package/dist/helpers/component/types.d.ts.map +1 -1
- package/dist/helpers/match.d.ts.map +1 -1
- package/dist/helpers/reset.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +818 -566
- package/dist/index.mjs.map +1 -1
- package/dist/manager/module.d.ts.map +1 -1
- package/dist/style.css +100 -0
- package/dist/types.d.ts +8 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/vue.d.ts +8 -1
- package/dist/vue.d.ts.map +1 -1
- package/package.json +25 -28
- package/core/index.cjs +0 -1
- package/core/index.d.ts +0 -2
- package/core/index.mjs +0 -1
- package/core/package.json +0 -5
- package/dist/helpers/component/build.d.ts +0 -3
- package/dist/helpers/component/build.d.ts.map +0 -1
- package/dist/index.cjs +0 -617
- package/dist/index.cjs.map +0 -1
- package/dist/index.css +0 -82
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/helpers/component/build.ts","../src/helpers/match.ts","../src/helpers/normalize.ts","../src/helpers/trace.ts","../src/helpers/reset.ts","../src/helpers/level.ts","../src/helpers/url.ts","../src/manager/module.ts","../src/manager/singleton.ts","../src/constants.ts","../src/components/item/module.ts","../src/components/items/module.ts","../src/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { VNodeClass } from '@vuecs/core';\nimport { createComponentOptionsManager, mergeOption } from '@vuecs/core';\nimport type { ComponentOptions } from './types';\n\nexport function buildComponentOptions() : ComponentOptions {\n const manager = createComponentOptionsManager<ComponentOptions>({\n name: 'navigation',\n });\n\n return {\n groupClass: mergeOption('class', manager.get('groupClass'), 'vc-nav-items') as VNodeClass,\n groupTag: manager.get('groupTag') || 'ul',\n\n itemClass: mergeOption('class', manager.get('itemClass'), 'vc-nav-item') as VNodeClass,\n itemNestedClass: mergeOption('class', manager.get('itemNestedClass'), 'vc-nav-item-nested') as VNodeClass,\n itemTag: manager.get('itemTag') || 'li',\n\n separatorTag: manager.get('separatorTag') || 'div',\n separatorClass: mergeOption('class', manager.get('linkIconClass'), 'vc-nav-separator') as VNodeClass,\n\n linkIconTag: manager.get('linkIconTag') || 'div',\n linkIconClass: mergeOption('class', manager.get('linkIconClass'), 'vc-nav-link-icon') as VNodeClass,\n\n linkClass: mergeOption('class', manager.get('linkClass'), 'vc-nav-link') as VNodeClass,\n linkRootClass: mergeOption('class', manager.get('linkRootClass'), 'vc-nav-link-root') as VNodeClass,\n linkTextTag: manager.get('linkTextTag') || 'div',\n linkTextClass: mergeOption('class', manager.get('linkTextClass'), 'vc-nav-link-text') as VNodeClass,\n };\n}\n","import type { NavigationItemNormalized } from '../types';\n\ntype ParentMatch = {\n score: number\n};\n\ntype ItemMatchesFindOptions = {\n path?: string\n};\n\nfunction calculateItemScoreForPath(\n item: NavigationItemNormalized,\n currentPath: string,\n) {\n if (item.url === '/') {\n return 1;\n }\n\n if (item.activeMatch) {\n if (item.activeMatch === currentPath) {\n return 6;\n } if (currentPath.startsWith(item.activeMatch)) {\n return 4;\n }\n }\n\n if (item.url) {\n if (item.url === currentPath) {\n return 3;\n } if (currentPath.startsWith(item.url)) {\n return 2;\n }\n }\n\n return 0;\n}\n\nfunction findItemMatchesIF(\n items: NavigationItemNormalized[],\n options: ItemMatchesFindOptions,\n parent: ParentMatch,\n) {\n const output : {\n data: NavigationItemNormalized,\n score: number\n }[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n\n let { score } = parent;\n\n if (options.path) {\n score += calculateItemScoreForPath(item, options.path);\n }\n\n if (item.default) {\n score += 1;\n }\n\n if (item.children) {\n const childMatches = findItemMatchesIF(item.children, options, {\n score,\n });\n\n output.push(...childMatches);\n }\n\n output.push({ data: item, score });\n }\n\n return output.sort((a, b) => b.score - a.score);\n}\n\nexport function findBestItemMatches(\n items: NavigationItemNormalized[],\n options: ItemMatchesFindOptions = {},\n) : NavigationItemNormalized[] {\n const result = findItemMatchesIF(items, options, { score: 0 });\n const [first] = result;\n if (!first) {\n return [];\n }\n\n return result\n .filter((match) => match.score === first.score)\n .map((match) => match.data);\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { NavigationItem, NavigationItemNormalized } from '../types';\n\ntype NormalizeItemOptions = {\n level: number\n};\n\nfunction normalizeItemIF(\n item: NavigationItem,\n defaults: NormalizeItemOptions,\n trace: string[],\n) : NavigationItemNormalized {\n const output : NavigationItemNormalized = {\n ...item,\n level: defaults.level,\n children: [],\n trace: [\n ...trace,\n item.name,\n ],\n meta: item.meta || {},\n };\n\n if (!item.children) {\n return output;\n }\n\n for (let i = 0; i < item.children.length; i++) {\n output.children.push(normalizeItemIF(item.children[i], defaults, output.trace));\n }\n\n return output;\n}\n\nexport function normalizeItem(\n item: NavigationItem,\n defaults: NormalizeItemOptions,\n) : NavigationItemNormalized {\n return normalizeItemIF(item, defaults, []);\n}\n\nexport function normalizeItems(\n items: NavigationItem[],\n options: NormalizeItemOptions,\n) : NavigationItemNormalized[] {\n return items.map((item) => normalizeItem(item, options));\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function isTraceEqual(\n a: string[],\n b: string[],\n): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function isTracePartOf(item: string[], parent: string[]) {\n for (let i = 0; i < item.length; i++) {\n if (parent[i] !== item[i]) {\n return false;\n }\n }\n\n return true;\n}\n","import type { NavigationItemNormalized } from '../types';\nimport { isTraceEqual, isTracePartOf } from './trace';\n\nfunction resetItemsByTraceIF(\n items: NavigationItemNormalized[],\n trace: string[],\n) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n\n const isEqual = isTraceEqual(items[i].trace, trace);\n item.active = isEqual;\n item.display = true;\n\n if (isEqual) {\n item.displayChildren = true;\n } else {\n item.displayChildren = isTracePartOf(item.trace, trace);\n }\n\n item.children = resetItemsByTraceIF(item.children, trace);\n }\n\n return items;\n}\n\nexport function resetItemsByTrace(\n items: NavigationItemNormalized[],\n trace: string[],\n) {\n return resetItemsByTraceIF(items, trace);\n}\n","type LevelRecord = {\n level: number,\n [key: string]: any\n};\n\nexport function findItemsWithLevel<T extends LevelRecord>(\n items: T[],\n tier: number,\n) : T[] {\n return items.filter((item) => item.level === tier);\n}\n\nexport function findItemWithLevel<T extends LevelRecord>(\n tier: number,\n items: T[],\n) : T | undefined {\n const data = findItemsWithLevel(items, tier);\n if (data.length >= 1) {\n return data[0];\n }\n\n return undefined;\n}\n\nexport function removeItemsWithLevel<T extends LevelRecord>(\n tier: number,\n items: T[],\n) : T[] {\n return items.filter((item) => item.level !== tier);\n}\n\nexport function replaceLevelItem<T extends LevelRecord>(\n tier: number,\n input: T[],\n next: T | undefined,\n): T[] {\n const output = removeItemsWithLevel(tier, input);\n\n if (next) {\n next.level = tier;\n\n return [\n ...output,\n next,\n ];\n }\n\n return output;\n}\n\nexport function replaceLevelItems<T extends LevelRecord>(\n tier: number,\n src: T[],\n next: T[],\n) : T[] {\n const componentsExisting = removeItemsWithLevel(tier, src);\n\n return [\n ...componentsExisting,\n ...next,\n ];\n}\n","export function isAbsoluteURL(str: string): boolean {\n return str.substring(0, 7) === 'http://' ||\n str.substring(0, 8) === 'https://';\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { EventEmitter } from '@posva/event-emitter';\nimport {\n findBestItemMatches,\n findItemWithLevel,\n findItemsWithLevel,\n isTraceEqual,\n normalizeItems,\n removeItemsWithLevel,\n replaceLevelItem,\n replaceLevelItems,\n resetItemsByTrace,\n} from '../helpers';\nimport type { NavigationItemNormalized, NavigationItemsFn } from '../types';\nimport type { NavigationManagerBuildOptions, NavigationManagerOptions } from './types';\n\nexport class NavigationManager extends EventEmitter<{\n building: [],\n built: [],\n updated: NavigationItemNormalized[],\n levelUpdated: [number, NavigationItemNormalized[]]\n}> {\n protected itemsActive : NavigationItemNormalized[];\n\n protected items : NavigationItemNormalized[];\n\n protected itemsFn : NavigationItemsFn;\n\n protected built : boolean;\n\n protected building : boolean;\n\n constructor(options: NavigationManagerOptions) {\n super();\n\n let itemsFn : NavigationItemsFn;\n if (typeof options.items === 'function') {\n itemsFn = options.items;\n } else {\n itemsFn = async ({ level }) => {\n if (level > 0) {\n return [];\n }\n\n return options.items as NavigationItemNormalized[];\n };\n }\n\n this.itemsFn = itemsFn;\n this.items = [];\n this.itemsActive = [];\n\n this.built = false;\n this.building = false;\n }\n\n getItems(tier?: number) {\n if (typeof tier === 'undefined') {\n return this.items;\n }\n\n return this.items.filter((item) => item.level === tier);\n }\n\n reset() {\n this.built = false;\n\n this.items = [];\n this.itemsActive = [];\n }\n\n async build(options: NavigationManagerBuildOptions) : Promise<void> {\n if (this.built || this.building) {\n return;\n }\n\n this.building = true;\n\n this.emit('building');\n\n let parent : NavigationItemNormalized | undefined;\n let level = 0;\n\n while (true) {\n const raw = await this.itemsFn({ level, parent });\n if (!raw || raw.length === 0) {\n break;\n }\n\n const items = normalizeItems(raw, { level });\n\n const matches = findBestItemMatches(items, {\n path: options.path,\n });\n\n const [match] = matches;\n\n if (!match) {\n break;\n }\n\n this.itemsActive.push(match);\n\n await this.buildLevel(level);\n\n parent = match;\n\n level++;\n }\n\n this.building = false;\n this.built = true;\n\n this.emit('built');\n this.emit('updated', this.items);\n }\n\n async select(level: number, itemNew: NavigationItemNormalized) {\n const itemOld = findItemWithLevel(level, this.itemsActive);\n\n if (\n itemOld &&\n isTraceEqual(itemOld.trace, itemNew.trace)\n ) {\n return;\n }\n\n this.itemsActive = this.itemsActive.filter(\n (el) => el.level < level,\n );\n this.itemsActive.push(itemNew);\n\n const startLevel = level;\n while (true) {\n const built = await this.buildLevel(\n level,\n startLevel === level,\n );\n if (!built) {\n break;\n }\n\n level++;\n }\n }\n\n async toggle(level: number, item: NavigationItemNormalized) {\n let isMatch : boolean;\n if (item.displayChildren) {\n isMatch = true;\n } else {\n const itemOld = findItemWithLevel(level, this.itemsActive);\n isMatch = !!itemOld && isTraceEqual(item.trace, itemOld.trace);\n }\n\n if (isMatch) {\n this.itemsActive = removeItemsWithLevel(level, this.itemsActive);\n } else {\n this.itemsActive = replaceLevelItem(level, this.itemsActive, item);\n }\n\n await this.buildLevel(level, true);\n }\n\n protected async buildLevel(level: number, useCache?: boolean) : Promise<boolean> {\n let items : NavigationItemNormalized[] | undefined;\n\n if (useCache) {\n items = findItemsWithLevel(this.items, level);\n } else {\n const parent = findItemWithLevel(level - 1, this.itemsActive);\n const raw = await this.itemsFn({\n level,\n parent,\n });\n\n items = raw && raw.length > 0 ?\n normalizeItems(raw, { level }) :\n [];\n }\n\n if (!items || items.length === 0) {\n this.items = this.items.filter(\n (item) => item.level < level,\n );\n\n this.emit('levelUpdated', level, []);\n\n return false;\n }\n\n let trace : string[] = [];\n const item = findItemWithLevel(level, this.itemsActive);\n if (item) {\n trace = item.trace;\n }\n\n resetItemsByTrace(items, trace);\n\n this.items = replaceLevelItems(level, this.items, items);\n\n this.emit('levelUpdated', level, items);\n\n return true;\n }\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { inject, provide } from '@vuecs/core';\nimport type { App } from 'vue';\nimport type { NavigationManager } from './module';\n\nconst sym = Symbol.for('VCNavigationManager');\n\nexport function injectNavigationManager(app?: App) : NavigationManager {\n const instance = inject<NavigationManager>(sym, app);\n if (!instance) {\n throw new Error('A navigation provider has not been provided.');\n }\n\n return instance;\n}\n\nexport function provideNavigationManager(\n manager: NavigationManager,\n app?: App,\n) {\n provide(sym, manager, app);\n}\n","export enum SlotName {\n ITEM = 'item',\n SEPARATOR = 'separator',\n LINK = 'link',\n SUB = 'sub',\n SUB_TITLE = 'sub-title',\n SUB_ITEMS = 'sub-items',\n}\n\nexport enum ElementType {\n LINK = 'link',\n SEPARATOR = 'separator',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { LinkProperties } from '@vuecs/link';\nimport { VCLink } from '@vuecs/link';\nimport type { PropType, VNodeChild } from 'vue';\nimport {\n computed,\n defineComponent,\n h,\n resolveComponent,\n toRef,\n} from 'vue';\nimport { injectNavigationManager } from '../../manager';\nimport type { NavigationItemNormalized } from '../../types';\nimport { buildComponentOptions, isAbsoluteURL } from '../../helpers';\nimport { ElementType, SlotName } from '../../constants';\n\nexport const VCNavItem = defineComponent({\n props: {\n data: {\n type: Object as PropType<NavigationItemNormalized>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const itemsNode = resolveComponent('VCNavItems');\n\n const options = buildComponentOptions();\n const manager = injectNavigationManager();\n\n const data = toRef(props, 'data');\n const hasChildren = computed(() => data.value.children &&\n data.value.children.length > 0);\n\n const select = async (\n value: NavigationItemNormalized,\n ) => {\n await manager.select(data.value.level, value);\n };\n\n const toggle = async (\n value: NavigationItemNormalized,\n ) => {\n await manager.toggle(data.value.level, value);\n };\n\n return () => {\n const buildItem = () : VNodeChild => {\n // type: separator\n if (data.value.type === ElementType.SEPARATOR) {\n const hasSlot = hasNormalizedSlot(SlotName.SEPARATOR, slots);\n if (hasSlot) {\n return normalizeSlot(SlotName.SEPARATOR, {\n data: data.value,\n }, slots);\n }\n\n return h(options.separatorTag, {\n class: options.separatorClass,\n }, data.value.name);\n }\n\n // type: group\n if (!hasChildren.value) {\n const hasSlot = hasNormalizedSlot(SlotName.LINK, slots);\n if (hasSlot) {\n return normalizeSlot(SlotName.LINK, {\n data: data.value,\n select,\n isActive: data.value.active,\n }, slots);\n }\n const linkProps : LinkProperties = {\n active: data.value.active,\n disabled: false,\n prefetch: true,\n };\n\n if (data.value.url) {\n if (\n isAbsoluteURL(data.value.url) ||\n data.value.url.startsWith('#')\n ) {\n linkProps.href = data.value.url;\n if (data.value.urlTarget) {\n linkProps.target = data.value.urlTarget;\n }\n } else {\n linkProps.to = data.value.url;\n }\n }\n\n return h(VCLink, {\n class: [\n options.linkClass,\n ],\n ...linkProps,\n onClicked() {\n if (!data.value.url) {\n return select.call(null, data.value);\n }\n\n return undefined;\n },\n onClick() {\n return select.call(null, data.value);\n },\n }, {\n default: () => [\n ...(data.value.icon ?\n [h(\n options.linkIconTag,\n {\n class: options.linkIconClass,\n },\n [\n h('i', { class: data.value.icon }),\n ],\n )] :\n []\n ),\n h(options.linkTextTag, {\n class: options.linkTextClass,\n }, [\n data.value.name,\n ]),\n ],\n });\n }\n\n if (hasNormalizedSlot(SlotName.SUB, slots)) {\n return normalizeSlot(SlotName.SUB, {\n data: data.value,\n select,\n toggle,\n }, slots);\n }\n\n let title : VNodeChild;\n if (hasNormalizedSlot(SlotName.SUB_TITLE, slots)) {\n title = normalizeSlot(SlotName.SUB_TITLE, {\n data: data.value,\n select,\n toggle,\n });\n } else {\n title = h('div', {\n class: options.linkClass,\n onClick($event: any) {\n $event.preventDefault();\n\n return toggle(data.value);\n },\n }, [\n ...(data.value.icon ?\n [h(\n options.linkIconTag,\n {\n class: options.linkIconClass,\n },\n [\n h('i', { class: data.value.icon }),\n ],\n )] :\n []\n ),\n h(options.linkTextTag, {\n class: options.linkTextClass,\n }, [\n data.value.name,\n ]),\n ]);\n }\n\n if (!hasChildren.value) {\n return title;\n }\n\n let vNodes : VNodeChild;\n\n if (hasNormalizedSlot(SlotName.SUB_ITEMS, slots)) {\n vNodes = normalizeSlot(SlotName.SUB_ITEMS, {\n data: data.value,\n select,\n toggle,\n });\n } else {\n vNodes = h(itemsNode, {\n level: data.value.level,\n data: data.value.children,\n });\n }\n\n return [\n title,\n vNodes,\n ];\n };\n\n return h(options.itemTag, {\n class: [\n options.itemClass,\n ...(hasChildren.value ? [options.itemNestedClass] : []),\n {\n active: data.value.active || data.value.displayChildren,\n },\n ],\n }, [\n buildItem(),\n ]);\n };\n },\n});\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type {\n PropType,\n VNodeArrayChildren,\n VNodeChild,\n} from 'vue';\nimport {\n computed,\n defineComponent,\n h, onMounted, onUnmounted, ref,\n} from 'vue';\nimport { SlotName } from '../../constants';\nimport { injectNavigationManager } from '../../manager';\nimport type { NavigationItemNormalized } from '../../types';\nimport { buildComponentOptions } from '../../helpers';\nimport { VCNavItem } from '../item';\n\nexport const VCNavItems = defineComponent({\n props: {\n level: {\n type: Number,\n default: 0,\n },\n data: {\n type: Array as PropType<NavigationItemNormalized[]>,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const options = buildComponentOptions();\n\n const manager = injectNavigationManager();\n const managerItems = ref<NavigationItemNormalized[]>([]);\n if (!props.data) {\n managerItems.value = manager.getItems(props.level);\n }\n\n const counter = ref(0);\n\n let removeListener : CallableFunction | undefined;\n\n onMounted(() => {\n removeListener = manager.on(\n 'levelUpdated',\n (level, items) => {\n if (level !== props.level) {\n return;\n }\n\n managerItems.value = items;\n counter.value++;\n },\n );\n });\n\n onUnmounted(() => {\n if (typeof removeListener === 'function') {\n removeListener();\n\n removeListener = undefined;\n }\n });\n\n const items = computed(() => {\n if (typeof props.data !== 'undefined') {\n return props.data;\n }\n\n return managerItems.value;\n });\n\n return () => {\n const vNodes : VNodeArrayChildren = [];\n\n for (let i = 0; i < items.value.length; i++) {\n if (!items.value[i].display && !items.value[i].displayChildren) {\n continue;\n }\n\n let vNode : VNodeChild;\n if (hasNormalizedSlot(SlotName.ITEM, slots)) {\n vNode = normalizeSlot(SlotName.ITEM, { data: items.value[i] }, slots);\n } else {\n vNode = h(\n VCNavItem,\n {\n key: `${i}:${counter.value}`,\n data: items.value[i],\n },\n );\n }\n\n vNodes.push(vNode);\n }\n\n return h(options.groupTag, {\n class: options.groupClass,\n }, vNodes);\n };\n },\n});\n","import { applyStoreManagerOptions, installStoreManager } from '@vuecs/core';\n\nimport type { App, Plugin } from 'vue';\n\nimport '../assets/index.css';\nimport './vue';\nimport { NavigationManager, provideNavigationManager } from './manager';\n\nimport {\n VCNavItem,\n VCNavItems,\n} from './components';\nimport type { Options } from './types';\n\nexport * from './components';\nexport * from './manager';\nexport * from './types';\n\nexport function install(instance: App, options: Options) : void {\n const manager = new NavigationManager({\n items: options.items,\n });\n\n provideNavigationManager(manager, instance);\n\n const storeManager = installStoreManager(instance);\n if (options.storeManager) {\n applyStoreManagerOptions(storeManager, options.storeManager);\n }\n\n Object.entries({\n VCNavItem,\n VCNavItems,\n }).forEach(([componentName, component]) => {\n instance.component(componentName, component);\n });\n}\n\nexport default {\n install,\n} satisfies Plugin<Options>;\n"],"names":["buildComponentOptions","manager","createComponentOptionsManager","name","groupClass","mergeOption","get","groupTag","itemClass","itemNestedClass","itemTag","separatorTag","separatorClass","linkIconTag","linkIconClass","linkClass","linkRootClass","linkTextTag","linkTextClass","calculateItemScoreForPath","item","currentPath","url","activeMatch","startsWith","findItemMatchesIF","items","options","parent","output","i","length","score","path","default","children","childMatches","push","data","sort","a","b","findBestItemMatches","result","first","filter","match","map","normalizeItemIF","defaults","trace","level","meta","normalizeItem","normalizeItems","isTraceEqual","isTracePartOf","resetItemsByTraceIF","isEqual","active","display","displayChildren","resetItemsByTrace","findItemsWithLevel","tier","findItemWithLevel","undefined","removeItemsWithLevel","replaceLevelItem","input","next","replaceLevelItems","src","componentsExisting","isAbsoluteURL","str","substring","NavigationManager","EventEmitter","getItems","reset","built","itemsActive","build","building","emit","raw","itemsFn","matches","buildLevel","select","itemNew","itemOld","el","startLevel","toggle","isMatch","useCache","constructor","sym","Symbol","for","injectNavigationManager","app","instance","inject","Error","provideNavigationManager","provide","SlotName","ElementType","VCNavItem","defineComponent","props","type","Object","required","setup","slots","itemsNode","resolveComponent","toRef","hasChildren","computed","value","buildItem","SEPARATOR","hasSlot","hasNormalizedSlot","normalizeSlot","h","class","LINK","isActive","linkProps","disabled","prefetch","href","urlTarget","target","to","VCLink","onClicked","call","onClick","icon","SUB","title","SUB_TITLE","$event","preventDefault","vNodes","SUB_ITEMS","VCNavItems","Number","Array","managerItems","ref","counter","removeListener","onMounted","on","onUnmounted","vNode","ITEM","key","install","storeManager","installStoreManager","applyStoreManagerOptions","entries","forEach","componentName","component"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["inject"],"sources":["../src/helpers/match.ts","../src/helpers/normalize.ts","../src/helpers/trace.ts","../src/helpers/reset.ts","../src/helpers/level.ts","../src/helpers/url.ts","../src/manager/module.ts","../src/manager/singleton.ts","../src/components/items/theme.ts","../src/components/item/module.ts","../src/components/items/module.ts","../src/components/stepper/context.ts","../src/components/stepper/theme.ts","../src/components/stepper/Stepper.vue","../src/components/stepper/Stepper.vue","../src/components/stepper/StepperItem.vue","../src/components/stepper/StepperItem.vue","../src/components/stepper/StepperTrigger.vue","../src/components/stepper/StepperTrigger.vue","../src/components/stepper/StepperIndicator.vue","../src/components/stepper/StepperIndicator.vue","../src/components/stepper/StepperTitle.vue","../src/components/stepper/StepperTitle.vue","../src/components/stepper/StepperDescription.vue","../src/components/stepper/StepperDescription.vue","../src/components/stepper/StepperSeparator.vue","../src/components/stepper/StepperSeparator.vue","../src/index.ts"],"sourcesContent":["import type { NavigationItemNormalized } from '../types';\n\ntype ParentMatch = {\n score: number\n};\n\ntype ItemMatchesFindOptions = {\n path?: string\n};\n\nfunction calculateItemScoreForPath(\n item: NavigationItemNormalized,\n currentPath: string,\n) {\n if (item.url === '/') {\n return 1;\n }\n\n if (item.activeMatch) {\n if (item.activeMatch === currentPath) {\n return 6;\n } if (currentPath.startsWith(item.activeMatch)) {\n return 4;\n }\n }\n\n if (item.url) {\n if (item.url === currentPath) {\n return 3;\n } if (currentPath.startsWith(item.url)) {\n return 2;\n }\n }\n\n return 0;\n}\n\nfunction findItemMatchesIF(\n items: NavigationItemNormalized[],\n options: ItemMatchesFindOptions,\n parent: ParentMatch,\n) {\n const output : {\n data: NavigationItemNormalized,\n score: number\n }[] = [];\n\n for (const item of items) {\n let { score } = parent;\n\n if (options.path) {\n score += calculateItemScoreForPath(item, options.path);\n }\n\n if (item.default) {\n score += 1;\n }\n\n if (item.children) {\n const childMatches = findItemMatchesIF(item.children, options, { score });\n\n output.push(...childMatches);\n }\n\n output.push({ data: item, score });\n }\n\n return output.sort((a, b) => b.score - a.score);\n}\n\nexport function findBestItemMatches(\n items: NavigationItemNormalized[],\n options: ItemMatchesFindOptions = {},\n) : NavigationItemNormalized[] {\n const result = findItemMatchesIF(items, options, { score: 0 });\n const [first] = result;\n if (!first) {\n return [];\n }\n\n return result\n .filter((match) => match.score === first.score)\n .map((match) => match.data);\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { NavigationItem, NavigationItemNormalized } from '../types';\n\ntype NormalizeItemOptions = {\n level: number\n};\n\nfunction normalizeItemIF(\n item: NavigationItem,\n defaults: NormalizeItemOptions,\n trace: string[],\n) : NavigationItemNormalized {\n const output : NavigationItemNormalized = {\n ...item,\n level: defaults.level,\n children: [],\n trace: [\n ...trace,\n item.name,\n ],\n meta: item.meta || {},\n };\n\n if (!item.children) {\n return output;\n }\n\n for (let i = 0; i < item.children.length; i++) {\n output.children.push(normalizeItemIF(item.children[i], defaults, output.trace));\n }\n\n return output;\n}\n\nexport function normalizeItem(\n item: NavigationItem,\n defaults: NormalizeItemOptions,\n) : NavigationItemNormalized {\n return normalizeItemIF(item, defaults, []);\n}\n\nexport function normalizeItems(\n items: NavigationItem[],\n options: NormalizeItemOptions,\n) : NavigationItemNormalized[] {\n return items.map((item) => normalizeItem(item, options));\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function isTraceEqual(\n a: string[],\n b: string[],\n): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n for (const [i, element] of a.entries()) {\n if (element !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function isTracePartOf(item: string[], parent: string[]) {\n for (const [i, element] of item.entries()) {\n if (parent[i] !== element) {\n return false;\n }\n }\n\n return true;\n}\n","import type { NavigationItemNormalized } from '../types';\nimport { isTraceEqual, isTracePartOf } from './trace';\n\nfunction resetItemsByTraceIF(\n items: NavigationItemNormalized[],\n trace: string[],\n) {\n for (const item of items) {\n const isEqual = isTraceEqual(item.trace, trace);\n item.active = isEqual;\n item.display = true;\n\n if (isEqual) {\n item.displayChildren = true;\n } else {\n item.displayChildren = isTracePartOf(item.trace, trace);\n }\n\n item.children = resetItemsByTraceIF(item.children, trace);\n }\n\n return items;\n}\n\nexport function resetItemsByTrace(\n items: NavigationItemNormalized[],\n trace: string[],\n) {\n return resetItemsByTraceIF(items, trace);\n}\n","type LevelRecord = {\n level: number,\n [key: string]: any\n};\n\nexport function findItemsWithLevel<T extends LevelRecord>(\n items: T[],\n tier: number,\n) : T[] {\n return items.filter((item) => item.level === tier);\n}\n\nexport function findItemWithLevel<T extends LevelRecord>(\n tier: number,\n items: T[],\n) : T | undefined {\n const data = findItemsWithLevel(items, tier);\n if (data.length >= 1) {\n return data[0];\n }\n\n return undefined;\n}\n\nexport function removeItemsWithLevel<T extends LevelRecord>(\n tier: number,\n items: T[],\n) : T[] {\n return items.filter((item) => item.level !== tier);\n}\n\nexport function replaceLevelItem<T extends LevelRecord>(\n tier: number,\n input: T[],\n next: T | undefined,\n): T[] {\n const output = removeItemsWithLevel(tier, input);\n\n if (next) {\n next.level = tier;\n\n return [\n ...output,\n next,\n ];\n }\n\n return output;\n}\n\nexport function replaceLevelItems<T extends LevelRecord>(\n tier: number,\n src: T[],\n next: T[],\n) : T[] {\n const componentsExisting = removeItemsWithLevel(tier, src);\n\n return [\n ...componentsExisting,\n ...next,\n ];\n}\n","export function isAbsoluteURL(str: string): boolean {\n return str.substring(0, 7) === 'http://' ||\n str.substring(0, 8) === 'https://';\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { EventEmitter } from '@posva/event-emitter';\nimport {\n findBestItemMatches,\n findItemWithLevel,\n findItemsWithLevel,\n isTraceEqual,\n normalizeItems,\n removeItemsWithLevel,\n replaceLevelItem,\n replaceLevelItems,\n resetItemsByTrace,\n} from '../helpers';\nimport type { NavigationItemNormalized, NavigationItemsFn } from '../types';\nimport type { NavigationManagerBuildOptions, NavigationManagerOptions } from './types';\n\nexport class NavigationManager extends EventEmitter<{\n building: [],\n built: [],\n updated: NavigationItemNormalized[],\n levelUpdated: [number, NavigationItemNormalized[]]\n}> {\n protected itemsActive : NavigationItemNormalized[];\n\n protected items : NavigationItemNormalized[];\n\n protected itemsFn : NavigationItemsFn;\n\n protected built : boolean;\n\n protected building : boolean;\n\n constructor(options: NavigationManagerOptions) {\n super();\n\n let itemsFn : NavigationItemsFn;\n if (typeof options.items === 'function') {\n itemsFn = options.items;\n } else {\n itemsFn = async ({ level }) => {\n if (level > 0) {\n return [];\n }\n\n return options.items as NavigationItemNormalized[];\n };\n }\n\n this.itemsFn = itemsFn;\n this.items = [];\n this.itemsActive = [];\n\n this.built = false;\n this.building = false;\n }\n\n getItems(tier?: number) {\n if (typeof tier === 'undefined') {\n return this.items;\n }\n\n return this.items.filter((item) => item.level === tier);\n }\n\n reset() {\n this.built = false;\n\n this.items = [];\n this.itemsActive = [];\n }\n\n async build(options: NavigationManagerBuildOptions) : Promise<void> {\n if (this.built || this.building) {\n return;\n }\n\n this.building = true;\n\n this.emit('building');\n\n let parent : NavigationItemNormalized | undefined;\n let level = 0;\n\n while (true) {\n const raw = await this.itemsFn({ level, parent });\n if (!raw || raw.length === 0) {\n break;\n }\n\n const items = normalizeItems(raw, { level });\n\n const matches = findBestItemMatches(items, { path: options.path });\n\n const [match] = matches;\n\n if (!match) {\n break;\n }\n\n this.itemsActive.push(match);\n\n await this.buildLevel(level);\n\n parent = match;\n\n level++;\n }\n\n this.building = false;\n this.built = true;\n\n this.emit('built');\n this.emit('updated', this.items);\n }\n\n async select(level: number, itemNew: NavigationItemNormalized) {\n const itemOld = findItemWithLevel(level, this.itemsActive);\n\n if (\n itemOld &&\n isTraceEqual(itemOld.trace, itemNew.trace)\n ) {\n return;\n }\n\n this.itemsActive = this.itemsActive.filter(\n (el) => el.level < level,\n );\n this.itemsActive.push(itemNew);\n\n const startLevel = level;\n while (true) {\n const built = await this.buildLevel(\n level,\n startLevel === level,\n );\n if (!built) {\n break;\n }\n\n level++;\n }\n }\n\n async toggle(level: number, item: NavigationItemNormalized) {\n let isMatch : boolean;\n if (item.displayChildren) {\n isMatch = true;\n } else {\n const itemOld = findItemWithLevel(level, this.itemsActive);\n isMatch = !!itemOld && isTraceEqual(item.trace, itemOld.trace);\n }\n\n if (isMatch) {\n this.itemsActive = removeItemsWithLevel(level, this.itemsActive);\n } else {\n this.itemsActive = replaceLevelItem(level, this.itemsActive, item);\n }\n\n await this.buildLevel(level, true);\n }\n\n protected async buildLevel(level: number, useCache?: boolean) : Promise<boolean> {\n let items : NavigationItemNormalized[] | undefined;\n\n if (useCache) {\n items = findItemsWithLevel(this.items, level);\n } else {\n const parent = findItemWithLevel(level - 1, this.itemsActive);\n const raw = await this.itemsFn({\n level,\n parent,\n });\n\n items = raw && raw.length > 0 ?\n normalizeItems(raw, { level }) :\n [];\n }\n\n if (!items || items.length === 0) {\n this.items = this.items.filter(\n (item) => item.level < level,\n );\n\n this.emit('levelUpdated', level, []);\n\n return false;\n }\n\n let trace : string[] = [];\n const item = findItemWithLevel(level, this.itemsActive);\n if (item) {\n trace = item.trace;\n }\n\n resetItemsByTrace(items, trace);\n\n this.items = replaceLevelItems(level, this.items, items);\n\n this.emit('levelUpdated', level, items);\n\n return true;\n }\n}\n","/*\n * Copyright (c) 2024-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { inject, provide } from '@vuecs/core';\nimport type { App } from 'vue';\nimport type { NavigationManager } from './module';\n\nconst sym = Symbol.for('VCNavigationManager');\n\nexport function injectNavigationManager(app?: App) : NavigationManager {\n const instance = inject<NavigationManager>(sym, app);\n if (!instance) {\n throw new Error('A navigation provider has not been provided.');\n }\n\n return instance;\n}\n\nexport function provideNavigationManager(\n manager: NavigationManager,\n app?: App,\n) {\n provide(sym, manager, app);\n}\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type { NavigationThemeClasses } from '../../helpers/component/types';\n\n/**\n * Default classes for the `navigation` theme entry. Shared between\n * `<VCNavItems>` (the container) and `<VCNavItem>` (the per-row\n * component) — both call `useComponentTheme('navigation', …)` with\n * the same slot defaults, so the source of truth lives here.\n */\nexport const navigationThemeDefaults: ComponentThemeDefinition<NavigationThemeClasses> = {\n classes: {\n group: 'vc-nav-items',\n item: 'vc-nav-item',\n itemNested: 'vc-nav-item-nested',\n separator: 'vc-nav-separator',\n link: 'vc-nav-link',\n linkRoot: 'vc-nav-link-root',\n linkIcon: 'vc-nav-link-icon',\n linkText: 'vc-nav-link-text',\n },\n};\n","import { hasNormalizedSlot, normalizeSlot, useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport type { LinkProperties } from '@vuecs/link';\nimport { VCLink } from '@vuecs/link';\nimport type {\n ExtractPublicPropTypes,\n PropType,\n SlotsType,\n VNodeChild,\n} from 'vue';\nimport {\n computed,\n defineComponent,\n h,\n resolveComponent,\n toRef,\n} from 'vue';\nimport { injectNavigationManager } from '../../manager';\nimport type { NavigationItemNormalized } from '../../types';\nimport type { NavigationThemeClasses } from '../../helpers/component/types';\nimport { isAbsoluteURL } from '../../helpers';\nimport { ElementType, SlotName } from '../../constants';\nimport type {\n NavItemLinkSlotProps,\n NavItemSeparatorSlotProps,\n NavItemSubItemsSlotProps,\n NavItemSubSlotProps,\n NavItemSubTitleSlotProps,\n} from '../type';\nimport { navigationThemeDefaults } from '../items/theme';\n\nconst navItemProps = {\n data: {\n type: Object as PropType<NavigationItemNormalized>,\n required: true,\n },\n themeClass: {\n type: Object as PropType<ThemeClassesOverride<NavigationThemeClasses>>,\n default: undefined,\n },\n themeVariant: {\n type: Object as PropType<VariantValues>,\n default: undefined,\n },\n};\n\nexport type NavItemProps = ExtractPublicPropTypes<typeof navItemProps>;\n\nexport const VCNavItem = defineComponent({\n name: 'VCNavItem',\n props: navItemProps,\n slots: Object as SlotsType<{\n separator: NavItemSeparatorSlotProps;\n link: NavItemLinkSlotProps;\n sub: NavItemSubSlotProps;\n 'sub-title': NavItemSubTitleSlotProps;\n 'sub-items': NavItemSubItemsSlotProps;\n }>,\n setup(props, { slots }) {\n const itemsNode = resolveComponent('VCNavItems');\n\n const theme = useComponentTheme('navigation', props, navigationThemeDefaults);\n const manager = injectNavigationManager();\n\n const data = toRef(props, 'data');\n const hasChildren = computed(() => data.value.children &&\n data.value.children.length > 0);\n\n const select = async (\n value: NavigationItemNormalized,\n ) => {\n await manager.select(data.value.level, value);\n };\n\n // Iconify-style icon strings (e.g. `fa6-solid:home`, `lucide:plus`)\n // contain a colon. Render via the globally-registered <VCIcon> so\n // they resolve through the Iconify pipeline rather than landing as\n // raw CSS classes on a literal <i>. Legacy class-string icons\n // (`fa fa-home`, `material-icons home`) keep their <i class> rendering.\n const renderIcon = (icon: string): VNodeChild => {\n if (icon.includes(':')) {\n return h(resolveComponent('VCIcon'), { name: icon });\n }\n return h('i', { class: icon });\n };\n\n const toggle = async (\n value: NavigationItemNormalized,\n ) => {\n await manager.toggle(data.value.level, value);\n };\n\n return () => {\n const resolved = theme.value;\n\n const buildItem = (): VNodeChild => {\n // type: separator\n if (data.value.type === ElementType.SEPARATOR) {\n const hasSlot = hasNormalizedSlot(SlotName.SEPARATOR, slots);\n if (hasSlot) {\n return normalizeSlot(SlotName.SEPARATOR, { data: data.value }, slots);\n }\n\n return h('div', { class: resolved.separator || undefined }, data.value.name);\n }\n\n // type: link (no children)\n if (!hasChildren.value) {\n const hasSlot = hasNormalizedSlot(SlotName.LINK, slots);\n if (hasSlot) {\n return normalizeSlot(SlotName.LINK, {\n data: data.value,\n select,\n isActive: data.value.active,\n }, slots);\n }\n\n const linkProps: LinkProperties = {\n active: data.value.active,\n disabled: false,\n prefetch: true,\n };\n\n if (data.value.url) {\n if (\n isAbsoluteURL(data.value.url) ||\n data.value.url.startsWith('#')\n ) {\n linkProps.href = data.value.url;\n if (data.value.urlTarget) {\n linkProps.target = data.value.urlTarget;\n }\n } else {\n linkProps.to = data.value.url;\n }\n }\n\n return h(VCLink, {\n class: [resolved.link],\n 'data-vc-collection-item': '',\n ...linkProps,\n onClicked() {\n if (!data.value.url) {\n return select.call(null, data.value);\n }\n return undefined;\n },\n onClick() {\n return select.call(null, data.value);\n },\n }, {\n default: () => [\n ...(data.value.icon ?\n [h('div', { class: resolved.linkIcon || undefined }, [\n renderIcon(data.value.icon),\n ])] :\n []),\n h('div', { class: resolved.linkText || undefined }, [\n data.value.name,\n ]),\n ],\n });\n }\n\n // type: group with children\n if (hasNormalizedSlot(SlotName.SUB, slots)) {\n return normalizeSlot(SlotName.SUB, {\n data: data.value,\n select,\n toggle,\n }, slots);\n }\n\n let title: VNodeChild;\n if (hasNormalizedSlot(SlotName.SUB_TITLE, slots)) {\n title = normalizeSlot(SlotName.SUB_TITLE, {\n data: data.value,\n select,\n toggle,\n });\n } else {\n title = h('div', {\n class: resolved.link,\n 'data-vc-collection-item': '',\n 'data-state': data.value.displayChildren ? 'open' : 'closed',\n 'data-active': data.value.active ? '' : undefined,\n tabindex: 0,\n role: 'button',\n 'aria-expanded': data.value.displayChildren ? 'true' : 'false',\n onClick($event: any) {\n $event.preventDefault();\n return toggle(data.value);\n },\n onKeydown($event: KeyboardEvent) {\n if ($event.key === 'Enter' || $event.key === ' ') {\n $event.preventDefault();\n return toggle(data.value);\n }\n return undefined;\n },\n }, [\n ...(data.value.icon ?\n [h('div', { class: resolved.linkIcon || undefined }, [\n renderIcon(data.value.icon),\n ])] :\n []),\n h('div', { class: resolved.linkText || undefined }, [\n data.value.name,\n ]),\n ]);\n }\n\n if (!hasChildren.value) {\n return title;\n }\n\n let vNodes: VNodeChild;\n if (hasNormalizedSlot(SlotName.SUB_ITEMS, slots)) {\n vNodes = normalizeSlot(SlotName.SUB_ITEMS, {\n data: data.value,\n select,\n toggle,\n });\n } else {\n vNodes = h(itemsNode, {\n level: data.value.level,\n data: data.value.children,\n });\n }\n\n return [title, vNodes];\n };\n\n return h('li', {\n class: [\n resolved.item,\n ...(hasChildren.value ? [resolved.itemNested] : []),\n { active: data.value.active || data.value.displayChildren },\n ],\n 'data-active': data.value.active || data.value.displayChildren ? '' : undefined,\n ...(hasChildren.value ? { 'data-state': data.value.displayChildren ? 'open' : 'closed' } : {}),\n }, [buildItem()]);\n };\n },\n});\n","import {\n hasNormalizedSlot,\n normalizeSlot,\n useArrowNavigation,\n useComponentTheme,\n} from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport type {\n ExtractPublicPropTypes,\n PropType,\n SlotsType,\n VNodeArrayChildren,\n VNodeChild,\n} from 'vue';\nimport {\n computed,\n defineComponent,\n h,\n onMounted,\n onUnmounted,\n ref,\n} from 'vue';\nimport { SlotName } from '../../constants';\nimport { injectNavigationManager } from '../../manager';\nimport type { NavigationItemNormalized } from '../../types';\nimport type { NavigationThemeClasses } from '../../helpers/component/types';\nimport { VCNavItem } from '../item';\nimport type { NavItemsItemSlotProps } from '../type';\nimport { navigationThemeDefaults } from './theme';\n\nconst navItemsProps = {\n level: { type: Number, default: 0 },\n data: { type: Array as PropType<NavigationItemNormalized[]>, default: undefined },\n themeClass: { type: Object as PropType<ThemeClassesOverride<NavigationThemeClasses>>, default: undefined },\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type NavItemsProps = ExtractPublicPropTypes<typeof navItemsProps>;\n\nexport const VCNavItems = defineComponent({\n name: 'VCNavItems',\n props: navItemsProps,\n slots: Object as SlotsType<{\n item: NavItemsItemSlotProps;\n }>,\n setup(props, { slots }) {\n const theme = useComponentTheme('navigation', props, navigationThemeDefaults);\n\n const rootRef = ref<HTMLUListElement | null>(null);\n\n const onKeyDown = (event: KeyboardEvent) => {\n useArrowNavigation(\n event,\n event.target as HTMLElement | null,\n rootRef.value,\n {\n arrowKeyOptions: 'vertical',\n focus: true,\n loop: true,\n },\n );\n };\n\n const manager = injectNavigationManager();\n const managerItems = ref<NavigationItemNormalized[]>([]);\n if (!props.data) {\n managerItems.value = manager.getItems(props.level);\n }\n\n const counter = ref(0);\n\n let removeListener: CallableFunction | undefined;\n\n onMounted(() => {\n removeListener = manager.on(\n 'levelUpdated',\n (level, items) => {\n if (level !== props.level) {\n return;\n }\n\n managerItems.value = items;\n counter.value++;\n },\n );\n });\n\n onUnmounted(() => {\n if (typeof removeListener === 'function') {\n removeListener();\n removeListener = undefined;\n }\n });\n\n const items = computed(() => {\n if (typeof props.data !== 'undefined') {\n return props.data;\n }\n return managerItems.value;\n });\n\n return () => {\n const resolved = theme.value;\n const vNodes: VNodeArrayChildren = [];\n\n for (let i = 0; i < items.value.length; i++) {\n if (!items.value[i].display && !items.value[i].displayChildren) {\n continue;\n }\n\n let vNode: VNodeChild;\n if (hasNormalizedSlot(SlotName.ITEM, slots)) {\n vNode = normalizeSlot(SlotName.ITEM, { data: items.value[i] }, slots);\n } else {\n vNode = h(\n VCNavItem,\n {\n key: `${i}:${counter.value}`,\n data: items.value[i],\n },\n );\n }\n\n vNodes.push(vNode);\n }\n\n const isRoot = props.level === 0;\n\n return h(\n 'ul',\n {\n class: resolved.group || undefined,\n ...(isRoot ?\n { ref: rootRef, onKeydown: onKeyDown } :\n {}),\n },\n vNodes,\n );\n };\n },\n});\n","import type { InjectionKey } from 'vue';\nimport { inject, provide } from 'vue';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport type { StepperThemeClasses } from './types';\n\n/**\n * Context shared from `<VCStepper>` to its descendant parts so that\n * theme-class and theme-variant values applied to the root propagate\n * automatically to indicator / title / description / separator / item /\n * trigger without the consumer having to repeat the props on every\n * child. Per-instance values on a child still win over inherited ones.\n *\n * Optional — children render bare (without inherited theme values) when\n * mounted outside `<VCStepper>` for unit tests / Storybook.\n */\nexport type StepperContext = {\n themeClass: () => ThemeClassesOverride<StepperThemeClasses> | undefined;\n themeVariant: () => VariantValues | undefined;\n};\n\nconst STEPPER_CONTEXT_KEY: InjectionKey<StepperContext> = Symbol('vcStepperContext');\n\nexport function provideStepperContext(ctx: StepperContext): void {\n provide(STEPPER_CONTEXT_KEY, ctx);\n}\n\nexport function useStepperContext(): StepperContext | null {\n return inject(STEPPER_CONTEXT_KEY, null);\n}\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type { StepperThemeClasses } from './types';\n\nexport const stepperThemeDefaults: ComponentThemeDefinition<StepperThemeClasses> = {\n classes: {\n root: 'vc-stepper',\n item: 'vc-stepper-item',\n trigger: 'vc-stepper-trigger',\n indicator: 'vc-stepper-indicator',\n title: 'vc-stepper-title',\n description: 'vc-stepper-description',\n separator: 'vc-stepper-separator',\n },\n};\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperRoot } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { provideStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperProps = {\n /** Active step (1-based). v-modeled. */\n modelValue: { type: Number, default: undefined },\n /** Initial active step for uncontrolled usage. */\n defaultValue: { type: Number, default: 1 },\n /** Layout direction. */\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: 'horizontal' },\n /** Reading direction. Falls back to the ConfigManager's `dir` value when omitted. */\n dir: { type: String as PropType<'ltr' | 'rtl'>, default: undefined },\n /** When `true`, steps must be completed in order — Reka blocks navigation past the next incomplete step. */\n linear: { type: Boolean, default: true },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperProps = ExtractPublicPropTypes<typeof stepperProps>;\n\nexport default defineComponent({\n name: 'VCStepper',\n inheritAttrs: false,\n props: stepperProps,\n emits: ['update:modelValue'],\n setup(props, {\n attrs,\n slots,\n emit,\n }) {\n // Propagate theme-class + theme-variant to descendant indicator /\n // title / description / separator / item / trigger parts so a single\n // `<VCStepper :theme-variant=\"{ size: 'sm' }\">` resizes the whole\n // stepper, and `:theme-class=\"{ indicator: 'ring-2' }\">` skins every\n // indicator. Children fall back to their own per-instance values\n // when the consumer wants to override them.\n provideStepperContext({\n themeClass: () => props.themeClass,\n themeVariant: () => props.themeVariant,\n });\n const theme = useComponentTheme('stepper', props, stepperThemeDefaults);\n return () => h(\n StepperRoot,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n defaultValue: props.defaultValue,\n orientation: props.orientation,\n dir: props.dir,\n linear: props.linear,\n 'onUpdate:modelValue': (value: number | undefined) => emit('update:modelValue', value),\n class: theme.value.root || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperRoot } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { provideStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperProps = {\n /** Active step (1-based). v-modeled. */\n modelValue: { type: Number, default: undefined },\n /** Initial active step for uncontrolled usage. */\n defaultValue: { type: Number, default: 1 },\n /** Layout direction. */\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: 'horizontal' },\n /** Reading direction. Falls back to the ConfigManager's `dir` value when omitted. */\n dir: { type: String as PropType<'ltr' | 'rtl'>, default: undefined },\n /** When `true`, steps must be completed in order — Reka blocks navigation past the next incomplete step. */\n linear: { type: Boolean, default: true },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperProps = ExtractPublicPropTypes<typeof stepperProps>;\n\nexport default defineComponent({\n name: 'VCStepper',\n inheritAttrs: false,\n props: stepperProps,\n emits: ['update:modelValue'],\n setup(props, {\n attrs,\n slots,\n emit,\n }) {\n // Propagate theme-class + theme-variant to descendant indicator /\n // title / description / separator / item / trigger parts so a single\n // `<VCStepper :theme-variant=\"{ size: 'sm' }\">` resizes the whole\n // stepper, and `:theme-class=\"{ indicator: 'ring-2' }\">` skins every\n // indicator. Children fall back to their own per-instance values\n // when the consumer wants to override them.\n provideStepperContext({\n themeClass: () => props.themeClass,\n themeVariant: () => props.themeVariant,\n });\n const theme = useComponentTheme('stepper', props, stepperThemeDefaults);\n return () => h(\n StepperRoot,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n defaultValue: props.defaultValue,\n orientation: props.orientation,\n dir: props.dir,\n linear: props.linear,\n 'onUpdate:modelValue': (value: number | undefined) => emit('update:modelValue', value),\n class: theme.value.root || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType, SlotsType } from 'vue';\nimport { StepperItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nexport type StepperItemSlotProps = {\n state: 'active' | 'completed' | 'inactive';\n};\n\nconst stepperItemProps = {\n /** 1-based step index. Required by Reka — used to determine completion / active state. */\n step: { type: Number, required: true },\n /** Block interaction with this step. */\n disabled: { type: Boolean, default: false },\n /** Force completion state. Reka derives this automatically when `false`. */\n completed: { type: Boolean, default: false },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperItemProps = ExtractPublicPropTypes<typeof stepperItemProps>;\n\nexport default defineComponent({\n name: 'VCStepperItem',\n inheritAttrs: false,\n props: stepperItemProps,\n slots: Object as SlotsType<{\n default: StepperItemSlotProps;\n }>,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperItem,\n // `step` is required on StepperItem; vue-tsc loses that\n // through `mergeProps`'s untyped `Data` return, so we pass\n // it as a direct prop (and merge attrs separately for\n // pass-through HTML attrs / data-* / class composition).\n // The `group` utility scopes child\n // `group-data-[state=...]:` selectors in theme-tailwind so\n // child indicators / titles can react to the parent step's\n // state without explicit attribute wiring on every child.\n {\n step: props.step,\n disabled: props.disabled,\n completed: props.completed,\n ...mergeProps(attrs, { class: ['group', theme.value.item || undefined] }),\n },\n { default: ({ state }: StepperItemSlotProps) => slots.default?.({ state }) },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType, SlotsType } from 'vue';\nimport { StepperItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nexport type StepperItemSlotProps = {\n state: 'active' | 'completed' | 'inactive';\n};\n\nconst stepperItemProps = {\n /** 1-based step index. Required by Reka — used to determine completion / active state. */\n step: { type: Number, required: true },\n /** Block interaction with this step. */\n disabled: { type: Boolean, default: false },\n /** Force completion state. Reka derives this automatically when `false`. */\n completed: { type: Boolean, default: false },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperItemProps = ExtractPublicPropTypes<typeof stepperItemProps>;\n\nexport default defineComponent({\n name: 'VCStepperItem',\n inheritAttrs: false,\n props: stepperItemProps,\n slots: Object as SlotsType<{\n default: StepperItemSlotProps;\n }>,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperItem,\n // `step` is required on StepperItem; vue-tsc loses that\n // through `mergeProps`'s untyped `Data` return, so we pass\n // it as a direct prop (and merge attrs separately for\n // pass-through HTML attrs / data-* / class composition).\n // The `group` utility scopes child\n // `group-data-[state=...]:` selectors in theme-tailwind so\n // child indicators / titles can react to the parent step's\n // state without explicit attribute wiring on every child.\n {\n step: props.step,\n disabled: props.disabled,\n completed: props.completed,\n ...mergeProps(attrs, { class: ['group', theme.value.item || undefined] }),\n },\n { default: ({ state }: StepperItemSlotProps) => slots.default?.({ state }) },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperTriggerProps = {\n /** Render the consumer's slot child as the trigger root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'button' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperTriggerProps = ExtractPublicPropTypes<typeof stepperTriggerProps>;\n\nexport default defineComponent({\n name: 'VCStepperTrigger',\n inheritAttrs: false,\n props: stepperTriggerProps,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperTrigger,\n mergeProps(\n // Default to type=\"button\" only when rendering a real\n // <button>; otherwise it'd submit any wrapping <form>.\n // Consumer's `attrs` still wins because mergeProps gives\n // later objects precedence on `type`.\n props.as === 'button' ? { type: 'button' } : {},\n attrs,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n },\n ),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperTriggerProps = {\n /** Render the consumer's slot child as the trigger root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'button' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperTriggerProps = ExtractPublicPropTypes<typeof stepperTriggerProps>;\n\nexport default defineComponent({\n name: 'VCStepperTrigger',\n inheritAttrs: false,\n props: stepperTriggerProps,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperTrigger,\n mergeProps(\n // Default to type=\"button\" only when rendering a real\n // <button>; otherwise it'd submit any wrapping <form>.\n // Consumer's `attrs` still wins because mergeProps gives\n // later objects precedence on `type`.\n props.as === 'button' ? { type: 'button' } : {},\n attrs,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n },\n ),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperIndicator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperIndicatorProps = {\n /** Render the consumer's slot child as the indicator root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'div' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperIndicatorProps = ExtractPublicPropTypes<typeof stepperIndicatorProps>;\n\nexport default defineComponent({\n name: 'VCStepperIndicator',\n inheritAttrs: false,\n props: stepperIndicatorProps,\n setup(props, { attrs, slots }) {\n // Inherit theme-variant (notably `size`) from the parent <VCStepper>\n // so the consumer doesn't have to repeat `:theme-variant` on every\n // indicator. Per-instance `props.themeVariant` still wins.\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperIndicator,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.indicator || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperIndicator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperIndicatorProps = {\n /** Render the consumer's slot child as the indicator root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'div' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperIndicatorProps = ExtractPublicPropTypes<typeof stepperIndicatorProps>;\n\nexport default defineComponent({\n name: 'VCStepperIndicator',\n inheritAttrs: false,\n props: stepperIndicatorProps,\n setup(props, { attrs, slots }) {\n // Inherit theme-variant (notably `size`) from the parent <VCStepper>\n // so the consumer doesn't have to repeat `:theme-variant` on every\n // indicator. Per-instance `props.themeVariant` still wins.\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperIndicator,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.indicator || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperTitle } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperTitleProps = {\n /** Render the consumer's slot child as the title root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'h4' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperTitleProps = ExtractPublicPropTypes<typeof stepperTitleProps>;\n\nexport default defineComponent({\n name: 'VCStepperTitle',\n inheritAttrs: false,\n props: stepperTitleProps,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperTitle,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.title || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperTitle } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperTitleProps = {\n /** Render the consumer's slot child as the title root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'h4' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperTitleProps = ExtractPublicPropTypes<typeof stepperTitleProps>;\n\nexport default defineComponent({\n name: 'VCStepperTitle',\n inheritAttrs: false,\n props: stepperTitleProps,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperTitle,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.title || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperDescription } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperDescriptionProps = {\n /** Render the consumer's slot child as the description root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'p' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperDescriptionProps = ExtractPublicPropTypes<typeof stepperDescriptionProps>;\n\nexport default defineComponent({\n name: 'VCStepperDescription',\n inheritAttrs: false,\n props: stepperDescriptionProps,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperDescription,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.description || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperDescription } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperDescriptionProps = {\n /** Render the consumer's slot child as the description root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'p' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperDescriptionProps = ExtractPublicPropTypes<typeof stepperDescriptionProps>;\n\nexport default defineComponent({\n name: 'VCStepperDescription',\n inheritAttrs: false,\n props: stepperDescriptionProps,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperDescription,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.description || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperSeparator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperSeparatorProps = {\n /** Render the consumer's slot child as the separator root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'div' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperSeparatorProps = ExtractPublicPropTypes<typeof stepperSeparatorProps>;\n\nexport default defineComponent({\n name: 'VCStepperSeparator',\n inheritAttrs: false,\n props: stepperSeparatorProps,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperSeparator,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.separator || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { StepperSeparator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, UseComponentThemeProps, VariantValues } from '@vuecs/core';\nimport { useStepperContext } from './context';\nimport { stepperThemeDefaults } from './theme';\nimport type { StepperThemeClasses } from './types';\n\nconst stepperSeparatorProps = {\n /** Render the consumer's slot child as the separator root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n /** HTML tag to render. */\n as: { type: String, default: 'div' },\n /** Theme-class overrides for this component instance. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<StepperThemeClasses>>, default: undefined },\n /** Theme-variant values for this component instance. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type StepperSeparatorProps = ExtractPublicPropTypes<typeof stepperSeparatorProps>;\n\nexport default defineComponent({\n name: 'VCStepperSeparator',\n inheritAttrs: false,\n props: stepperSeparatorProps,\n setup(props, { attrs, slots }) {\n const ctx = useStepperContext();\n const themeProps: UseComponentThemeProps<StepperThemeClasses> = {\n get themeClass() { return { ...(ctx?.themeClass() ?? {}), ...(props.themeClass ?? {}) }; },\n get themeVariant() {\n return { ...(ctx?.themeVariant() ?? {}), ...(props.themeVariant ?? {}) };\n },\n };\n const theme = useComponentTheme('stepper', themeProps, stepperThemeDefaults);\n return () => h(\n StepperSeparator,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.separator || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","import { installDefaultsManager, installThemeManager } from '@vuecs/core';\nimport type { App, Plugin } from 'vue';\n\nimport '../assets/index.css';\nimport './vue';\nimport { NavigationManager, provideNavigationManager } from './manager';\n\nimport {\n VCNavItem,\n VCNavItems,\n VCStepper,\n VCStepperDescription,\n VCStepperIndicator,\n VCStepperItem,\n VCStepperSeparator,\n VCStepperTitle,\n VCStepperTrigger,\n} from './components';\nimport type { Options } from './types';\n\nexport * from './components';\nexport * from './manager';\nexport * from './types';\n\nexport function install(instance: App, options: Options = {}): void {\n const manager = new NavigationManager({ items: options.items ?? [] });\n provideNavigationManager(manager, instance);\n\n installThemeManager(instance, options);\n installDefaultsManager(instance, options);\n\n Object.entries({\n VCNavItem,\n VCNavItems,\n VCStepper,\n VCStepperItem,\n VCStepperTrigger,\n VCStepperIndicator,\n VCStepperTitle,\n VCStepperDescription,\n VCStepperSeparator,\n }).forEach(([componentName, component]) => {\n instance.component(componentName, component);\n });\n}\n\nexport default { install } satisfies Plugin<[Options?]>;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/manager/module.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAYpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEvF,qBAAa,iBAAkB,SAAQ,YAAY,CAAC;IAChD,QAAQ,EAAE,EAAE,CAAC;IACb,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,YAAY,EAAE,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;CACrD,CAAC;IACE,SAAS,CAAC,WAAW,EAAG,wBAAwB,EAAE,CAAC;IAEnD,SAAS,CAAC,KAAK,EAAG,wBAAwB,EAAE,CAAC;IAE7C,SAAS,CAAC,OAAO,EAAG,iBAAiB,CAAC;IAEtC,SAAS,CAAC,KAAK,EAAG,OAAO,CAAC;IAE1B,SAAS,CAAC,QAAQ,EAAG,OAAO,CAAC;gBAEjB,OAAO,EAAE,wBAAwB;IAwB7C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IAQtB,KAAK;IAOC,KAAK,CAAC,OAAO,EAAE,6BAA6B,GAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/manager/module.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAYpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEvF,qBAAa,iBAAkB,SAAQ,YAAY,CAAC;IAChD,QAAQ,EAAE,EAAE,CAAC;IACb,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,YAAY,EAAE,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;CACrD,CAAC;IACE,SAAS,CAAC,WAAW,EAAG,wBAAwB,EAAE,CAAC;IAEnD,SAAS,CAAC,KAAK,EAAG,wBAAwB,EAAE,CAAC;IAE7C,SAAS,CAAC,OAAO,EAAG,iBAAiB,CAAC;IAEtC,SAAS,CAAC,KAAK,EAAG,OAAO,CAAC;IAE1B,SAAS,CAAC,QAAQ,EAAG,OAAO,CAAC;gBAEjB,OAAO,EAAE,wBAAwB;IAwB7C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IAQtB,KAAK;IAOC,KAAK,CAAC,OAAO,EAAE,6BAA6B,GAAI,OAAO,CAAC,IAAI,CAAC;IA4C7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB;IA6BvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB;cAkB1C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAI,OAAO,CAAC,OAAO,CAAC;CAyCnF"}
|
package/dist/style.css
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
.vc-nav-items, .vc-nav-sub-level-items {
|
|
2
|
+
margin: 0;
|
|
3
|
+
padding: 0;
|
|
4
|
+
list-style: none;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.vc-nav-link {
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
align-items: center;
|
|
10
|
+
gap: .5rem;
|
|
11
|
+
text-decoration: none;
|
|
12
|
+
display: flex;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.vc-nav-separator {
|
|
16
|
+
align-items: center;
|
|
17
|
+
gap: .5rem;
|
|
18
|
+
display: flex;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.vc-nav-separator:before, .vc-nav-separator:after {
|
|
22
|
+
content: "";
|
|
23
|
+
opacity: .3;
|
|
24
|
+
background: currentColor;
|
|
25
|
+
flex: auto;
|
|
26
|
+
height: 1px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.vc-nav-item-nested:not(.active) > .vc-nav-items {
|
|
30
|
+
display: none;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.vc-stepper {
|
|
34
|
+
align-items: center;
|
|
35
|
+
gap: .5rem;
|
|
36
|
+
display: flex;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.vc-stepper[data-orientation="vertical"] {
|
|
40
|
+
flex-direction: column;
|
|
41
|
+
align-items: stretch;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.vc-stepper-item {
|
|
45
|
+
flex: auto;
|
|
46
|
+
align-items: center;
|
|
47
|
+
gap: .5rem;
|
|
48
|
+
display: flex;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.vc-stepper-trigger {
|
|
52
|
+
-webkit-appearance: none;
|
|
53
|
+
appearance: none;
|
|
54
|
+
cursor: pointer;
|
|
55
|
+
background: none;
|
|
56
|
+
border: 0;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
align-items: center;
|
|
59
|
+
padding: 0;
|
|
60
|
+
display: inline-flex;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.vc-stepper-trigger[disabled], .vc-stepper-trigger[data-disabled] {
|
|
64
|
+
cursor: not-allowed;
|
|
65
|
+
opacity: .6;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.vc-stepper-indicator {
|
|
69
|
+
border-radius: 9999px;
|
|
70
|
+
justify-content: center;
|
|
71
|
+
align-items: center;
|
|
72
|
+
width: 2rem;
|
|
73
|
+
height: 2rem;
|
|
74
|
+
font-size: .875rem;
|
|
75
|
+
font-weight: 600;
|
|
76
|
+
line-height: 1;
|
|
77
|
+
display: inline-flex;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.vc-stepper-separator {
|
|
81
|
+
flex: auto;
|
|
82
|
+
height: 1px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.vc-stepper[data-orientation="vertical"] .vc-stepper-separator {
|
|
86
|
+
width: 1px;
|
|
87
|
+
height: 2rem;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.vc-stepper-indicator-sm {
|
|
91
|
+
width: 1.5rem;
|
|
92
|
+
height: 1.5rem;
|
|
93
|
+
font-size: .75rem;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.vc-stepper-indicator-lg {
|
|
97
|
+
width: 2.5rem;
|
|
98
|
+
height: 2.5rem;
|
|
99
|
+
font-size: 1rem;
|
|
100
|
+
}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CoreOptions } from '@vuecs/core';
|
|
2
2
|
import type { ElementType } from './constants';
|
|
3
3
|
export type NavigationItem<META = any> = {
|
|
4
4
|
level?: number;
|
|
@@ -27,8 +27,12 @@ export type NavigationItemsFnContext<META = any> = {
|
|
|
27
27
|
parent?: NavigationItemNormalized<META>;
|
|
28
28
|
};
|
|
29
29
|
export type NavigationItemsFn<META = any> = (ctx: NavigationItemsFnContext<META>) => Promise<NavigationItem<META>[] | undefined>;
|
|
30
|
-
export type Options = {
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
export type Options = CoreOptions & {
|
|
31
|
+
/**
|
|
32
|
+
* Items for the NavigationManager. Optional so consumers who only
|
|
33
|
+
* need `<VCStepper>` can install the package without wiring nav
|
|
34
|
+
* items (`app.use(navigation, {})`).
|
|
35
|
+
*/
|
|
36
|
+
items?: NavigationItemsFn | NavigationItem[];
|
|
33
37
|
};
|
|
34
38
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,cAAc,CACtB,IAAI,GAAG,GAAG,IACV;IACA,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IAEb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IAExB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAE5B,IAAI,CAAC,EAAE,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAChC,IAAI,GAAG,GAAG,IACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GACjC,OAAO,GACP,UAAU,GACV,MAAM,CAAC,GAAG;IACN,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAE3C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;CACd,CAAC;AAEN,MAAM,MAAM,wBAAwB,CAChC,IAAI,GAAG,GAAG,IACV;IACA,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,iBAAiB,CACzB,IAAI,GAAG,GAAG,IACV,CACA,GAAG,EAAE,wBAAwB,CAAC,IAAI,CAAC,KAClC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;AAEjD,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,iBAAiB,GAAG,cAAc,EAAE,CAAC;CAChD,CAAC"}
|
package/dist/vue.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import type { VCNavItem, VCNavItems } from './components';
|
|
1
|
+
import type { VCNavItem, VCNavItems, VCStepper, VCStepperDescription, VCStepperIndicator, VCStepperItem, VCStepperSeparator, VCStepperTitle, VCStepperTrigger } from './components';
|
|
2
2
|
declare module '@vue/runtime-core' {
|
|
3
3
|
interface GlobalComponents {
|
|
4
4
|
VCNavItem: typeof VCNavItem;
|
|
5
5
|
VCNavItems: typeof VCNavItems;
|
|
6
|
+
VCStepper: typeof VCStepper;
|
|
7
|
+
VCStepperItem: typeof VCStepperItem;
|
|
8
|
+
VCStepperTrigger: typeof VCStepperTrigger;
|
|
9
|
+
VCStepperIndicator: typeof VCStepperIndicator;
|
|
10
|
+
VCStepperTitle: typeof VCStepperTitle;
|
|
11
|
+
VCStepperDescription: typeof VCStepperDescription;
|
|
12
|
+
VCStepperSeparator: typeof VCStepperSeparator;
|
|
6
13
|
}
|
|
7
14
|
}
|
|
8
15
|
//# sourceMappingURL=vue.d.ts.map
|
package/dist/vue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,SAAS,EACT,UAAU,EACb,MAAM,cAAc,CAAC;AAEtB,OAAO,QAAQ,mBAAmB,CAAC;IAC/B,UAAiB,gBAAgB;QAC7B,SAAS,EAAE,OAAO,SAAS,CAAC;QAC5B,UAAU,EAAE,OAAO,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,QAAQ,mBAAmB,CAAC;IAC/B,UAAiB,gBAAgB;QAC7B,SAAS,EAAE,OAAO,SAAS,CAAC;QAC5B,UAAU,EAAE,OAAO,UAAU,CAAC;QAC9B,SAAS,EAAE,OAAO,SAAS,CAAC;QAC5B,aAAa,EAAE,OAAO,aAAa,CAAC;QACpC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;QAC1C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;QAC9C,cAAc,EAAE,OAAO,cAAc,CAAC;QACtC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;QAClD,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;KACjD;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vuecs/navigation",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "A package for multi level navigations.",
|
|
5
6
|
"exports": {
|
|
6
7
|
"./package.json": "./package.json",
|
|
7
8
|
".": {
|
|
8
9
|
"types": "./dist/index.d.ts",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
10
|
+
"style": "./dist/style.css",
|
|
11
|
+
"import": "./dist/index.mjs"
|
|
11
12
|
},
|
|
12
|
-
"./
|
|
13
|
-
|
|
14
|
-
"import": "./core/index.mjs",
|
|
15
|
-
"require": "./core/index.cjs"
|
|
16
|
-
},
|
|
17
|
-
"./dist/index.css": "./dist/index.css"
|
|
13
|
+
"./style.css": "./dist/style.css",
|
|
14
|
+
"./dist/style.css": "./dist/style.css"
|
|
18
15
|
},
|
|
19
|
-
"
|
|
20
|
-
"module": "dist/index.mjs",
|
|
21
|
-
"types": "dist/index.d.ts",
|
|
16
|
+
"style": "./dist/style.css",
|
|
22
17
|
"files": [
|
|
23
|
-
"core",
|
|
24
18
|
"dist"
|
|
25
19
|
],
|
|
26
20
|
"keywords": [
|
|
@@ -41,38 +35,41 @@
|
|
|
41
35
|
"email": "contact@tada5hi.net",
|
|
42
36
|
"url": "https://tada5hi.net"
|
|
43
37
|
},
|
|
38
|
+
"license": "Apache-2.0",
|
|
44
39
|
"repository": {
|
|
45
40
|
"type": "git",
|
|
46
41
|
"url": "https://github.com/tada5hi/vuecs.git",
|
|
47
42
|
"directory": "packages/navigation"
|
|
48
43
|
},
|
|
49
44
|
"scripts": {
|
|
45
|
+
"build:js": "tsdown",
|
|
50
46
|
"build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.build.json",
|
|
51
|
-
"build
|
|
52
|
-
"
|
|
53
|
-
"test": "
|
|
54
|
-
"test:coverage": "cross-env NODE_ENV=test jest --config ./test/jest.config.js --coverage"
|
|
47
|
+
"build": "rimraf dist && npm run build:js && npm run build:types",
|
|
48
|
+
"test": "vitest --config test/vitest.config.ts --run",
|
|
49
|
+
"test:coverage": "vitest --config test/vitest.config.ts --run --coverage"
|
|
55
50
|
},
|
|
56
51
|
"dependencies": {
|
|
57
|
-
"@posva/event-emitter": "^1.0.2"
|
|
52
|
+
"@posva/event-emitter": "^1.0.2",
|
|
53
|
+
"reka-ui": "^2.9.7"
|
|
58
54
|
},
|
|
59
55
|
"devDependencies": {
|
|
60
|
-
"@
|
|
61
|
-
"@vuecs/
|
|
62
|
-
"
|
|
63
|
-
"
|
|
56
|
+
"@vue/test-utils": "^2.4.10",
|
|
57
|
+
"@vuecs/core": "^3.0.0",
|
|
58
|
+
"@vuecs/link": "^2.0.0",
|
|
59
|
+
"jsdom": "^29.1.1",
|
|
60
|
+
"vue": "^3.5.34",
|
|
61
|
+
"vue-router": "^5.0.6"
|
|
64
62
|
},
|
|
65
63
|
"peerDependencies": {
|
|
66
|
-
"@vuecs/core": "^
|
|
67
|
-
"@vuecs/link": "^
|
|
64
|
+
"@vuecs/core": "^3.0.0",
|
|
65
|
+
"@vuecs/link": "^2.0.0",
|
|
68
66
|
"vue": "^3.x",
|
|
69
|
-
"vue-router": "^4.x"
|
|
67
|
+
"vue-router": "^4.x || ^5.x"
|
|
70
68
|
},
|
|
71
69
|
"engines": {
|
|
72
|
-
"node": ">=
|
|
70
|
+
"node": ">=22.0.0"
|
|
73
71
|
},
|
|
74
72
|
"publishConfig": {
|
|
75
73
|
"access": "public"
|
|
76
|
-
}
|
|
77
|
-
"gitHead": "08baf626ef03e8db4a732502d795b7a21b3fd1ab"
|
|
74
|
+
}
|
|
78
75
|
}
|
package/core/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@vuecs/core');
|
package/core/index.d.ts
DELETED
package/core/index.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@vuecs/core';
|
package/core/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/helpers/component/build.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,qBAAqB,IAAK,gBAAgB,CAwBzD"}
|