UNPKG

reka-ui

Version:

Vue port for Radix UI Primitives.

1 lines 5.14 kB
{"version":3,"file":"StepperTrigger.cjs","sources":["../../src/Stepper/StepperTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { getActiveElement, useArrowNavigation, useForwardExpose, useKbd } from '@/shared'\nimport { computed, onMounted, onUnmounted } from 'vue'\n\nexport interface StepperTriggerProps extends PrimitiveProps {\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { injectStepperRootContext } from './StepperRoot.vue'\nimport { injectStepperItemContext } from './StepperItem.vue'\nimport { Primitive } from '@/Primitive'\n\nwithDefaults(defineProps<StepperTriggerProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectStepperRootContext()\nconst itemContext = injectStepperItemContext()\n\nconst kbd = useKbd()\nconst stepperItems = computed(() => Array.from(rootContext.totalStepperItems.value))\n\nfunction handleMouseDown(event: MouseEvent) {\n if (itemContext.disabled.value)\n return\n if (rootContext.linear.value) {\n if (itemContext.step.value <= rootContext.modelValue.value! || itemContext.step.value === rootContext.modelValue.value! + 1) {\n if (event.ctrlKey === false) {\n rootContext.changeModelValue(itemContext.step.value)\n return\n }\n }\n }\n else {\n if (event.ctrlKey === false) {\n rootContext.changeModelValue(itemContext.step.value)\n return\n }\n }\n\n // prevent focus to avoid accidental activation\n event.preventDefault()\n}\n\nfunction handleKeyDown(event: KeyboardEvent) {\n event.preventDefault()\n\n if (itemContext.disabled.value)\n return\n\n if ((event.key === kbd.ENTER || event.key === kbd.SPACE) && !event.ctrlKey && !event.shiftKey)\n rootContext.changeModelValue(itemContext.step.value)\n\n if ([kbd.ARROW_LEFT, kbd.ARROW_RIGHT, kbd.ARROW_UP, kbd.ARROW_DOWN].includes(event.key)) {\n useArrowNavigation(event, getActiveElement() as HTMLElement, undefined, {\n itemsArray: stepperItems.value,\n focus: true,\n loop: false,\n arrowKeyOptions: rootContext.orientation.value,\n dir: rootContext.dir.value,\n })\n }\n}\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nonMounted(() => {\n rootContext.totalStepperItems.value.add(currentElement.value)\n})\n\nonUnmounted(() => {\n rootContext.totalStepperItems.value.delete(currentElement.value)\n})\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"itemContext.state.value\"\n :disabled=\"itemContext.disabled.value || !itemContext.isFocusable.value ? '' : undefined\"\n :data-disabled=\"itemContext.disabled.value || !itemContext.isFocusable.value ? '' : undefined\"\n :data-orientation=\"rootContext.orientation.value\"\n :tabindex=\"itemContext.isFocusable.value ? 0 : -1\"\n :aria-describedby=\"itemContext.descriptionId\"\n :aria-labelledby=\"itemContext.titleId\"\n @mousedown.left=\"handleMouseDown\"\n @keydown.enter.space.left.right.up.down=\"handleKeyDown\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectStepperRootContext","injectStepperItemContext","useKbd","computed","useArrowNavigation","getActiveElement","useForwardExpose","onMounted","onUnmounted"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAC7C,IAAA,MAAM,cAAcC,4CAAyB,EAAA;AAE7C,IAAA,MAAM,MAAMC,oBAAO,EAAA;AACnB,IAAM,MAAA,YAAA,GAAeC,aAAS,MAAM,KAAA,CAAM,KAAK,WAAY,CAAA,iBAAA,CAAkB,KAAK,CAAC,CAAA;AAEnF,IAAA,SAAS,gBAAgB,KAAmB,EAAA;AAC1C,MAAA,IAAI,YAAY,QAAS,CAAA,KAAA;AACvB,QAAA;AACF,MAAI,IAAA,WAAA,CAAY,OAAO,KAAO,EAAA;AAC5B,QAAA,IAAI,WAAY,CAAA,IAAA,CAAK,KAAS,IAAA,WAAA,CAAY,UAAW,CAAA,KAAA,IAAU,WAAY,CAAA,IAAA,CAAK,KAAU,KAAA,WAAA,CAAY,UAAW,CAAA,KAAA,GAAS,CAAG,EAAA;AAC3H,UAAI,IAAA,KAAA,CAAM,YAAY,KAAO,EAAA;AAC3B,YAAY,WAAA,CAAA,gBAAA,CAAiB,WAAY,CAAA,IAAA,CAAK,KAAK,CAAA;AACnD,YAAA;AAAA;AACF;AACF,OAEG,MAAA;AACH,QAAI,IAAA,KAAA,CAAM,YAAY,KAAO,EAAA;AAC3B,UAAY,WAAA,CAAA,gBAAA,CAAiB,WAAY,CAAA,IAAA,CAAK,KAAK,CAAA;AACnD,UAAA;AAAA;AACF;AAIF,MAAA,KAAA,CAAM,cAAe,EAAA;AAAA;AAGvB,IAAA,SAAS,cAAc,KAAsB,EAAA;AAC3C,MAAA,KAAA,CAAM,cAAe,EAAA;AAErB,MAAA,IAAI,YAAY,QAAS,CAAA,KAAA;AACvB,QAAA;AAEF,MAAA,IAAA,CAAK,KAAM,CAAA,GAAA,KAAQ,GAAI,CAAA,KAAA,IAAS,KAAM,CAAA,GAAA,KAAQ,GAAI,CAAA,KAAA,KAAU,CAAC,KAAA,CAAM,OAAW,IAAA,CAAC,KAAM,CAAA,QAAA;AACnF,QAAY,WAAA,CAAA,gBAAA,CAAiB,WAAY,CAAA,IAAA,CAAK,KAAK,CAAA;AAErD,MAAA,IAAI,CAAC,GAAA,CAAI,UAAY,EAAA,GAAA,CAAI,WAAa,EAAA,GAAA,CAAI,QAAU,EAAA,GAAA,CAAI,UAAU,CAAA,CAAE,QAAS,CAAA,KAAA,CAAM,GAAG,CAAG,EAAA;AACvF,QAAmBC,4CAAA,CAAA,KAAA,EAAOC,wCAAiB,EAAA,EAAkB,MAAW,EAAA;AAAA,UACtE,YAAY,YAAa,CAAA,KAAA;AAAA,UACzB,KAAO,EAAA,IAAA;AAAA,UACP,IAAM,EAAA,KAAA;AAAA,UACN,eAAA,EAAiB,YAAY,WAAY,CAAA,KAAA;AAAA,UACzC,GAAA,EAAK,YAAY,GAAI,CAAA;AAAA,SACtB,CAAA;AAAA;AACH;AAGF,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,iBAAkB,CAAA,KAAA,CAAM,GAAI,CAAA,cAAA,CAAe,KAAK,CAAA;AAAA,KAC7D,CAAA;AAED,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAA,WAAA,CAAY,iBAAkB,CAAA,KAAA,CAAM,MAAO,CAAA,cAAA,CAAe,KAAK,CAAA;AAAA,KAChE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}