{"version":3,"file":"USidebar.mjs","names":["useSticky","useTouch","makeLayoutItemProps","useLayoutItem","useProxiedModel","useRouter","useScopeId","makeTagProps","makeComponentProps","computed","nextTick","onBeforeMount","ref","shallowRef","toRef","Transition","watch","onMounted","genericComponent","propsFactory","useRender","provideDefaults","locations","makeUSidebarProps","_objectSpread","variant","String","theme","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","transitionDuration","type","Number","border","elevation","modelValue","required","permanent","rail","railWidth","scrim","temporary","touchless","width","location","validator","value","includes","sticky","tag","USidebar","name","props","emits","updateModelValue","val","updateRail","setup","_ref","attrs","emit","slots","router","isActive","v","_useScopeId","scopeId","rootEl","isHovering","screenWidth","bgColor","window","innerWidth","mobile","isTemporary","isSticky","currentRoute","_useTouch","position","isDragging","dragProgress","dragStyles","layoutSize","size","_useLayoutItem","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","layoutItemStyles","layoutItemScrimStyles","_useSticky","stickyStyles","scrimStyles","opacity","transition","undefined","VList","onMouseenter","onMouseleave","flexContainerClasses","classes","borderClasses","elevationClasses","shadow","_slots$prepend","_slots$default","_slots$append","_createVNode","_Fragment","_mergeProps","concat","style","_default","prepend","call","append","onClick"],"sources":["../../../src/components/USidebar/USidebar.tsx"],"sourcesContent":["import './VNavigationDrawer.scss'\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeComponentProps } from '@/composables/component'\nimport {\n  computed,\n  nextTick,\n  onBeforeMount,\n  ref,\n  shallowRef,\n  toRef,\n  Transition,\n  watch,\n  ExtractPropTypes,\n  PropType,\n  onMounted,\n} from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/utils'\nimport { provideDefaults } from '@/composables/defaults'\n\nexport type USidebarSlots = {\n  default: never\n  prepend: never\n  append: never\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeUSidebarProps = propsFactory(\n  {\n    variant: String,\n    theme: String,\n    disableResizeWatcher: Boolean,\n    disableRouteWatcher: Boolean,\n    expandOnHover: Boolean,\n    floating: Boolean,\n    transitionDuration: {\n      type: Number,\n      default: 500,\n    },\n    border: {\n      type: Boolean,\n      default: false,\n    },\n    elevation: {\n      type: Boolean,\n      default: false,\n    },\n    modelValue: {\n      type: Boolean,\n      default: false,\n      required: false,\n    },\n    permanent: Boolean,\n    rail: {\n      type: Boolean as PropType<boolean | null>,\n      default: null,\n    },\n    railWidth: {\n      type: [Number, String],\n      default: 56,\n    },\n    scrim: {\n      type: [Boolean, String],\n      default: true,\n    },\n    temporary: Boolean,\n    touchless: Boolean,\n    width: {\n      type: [Number, String],\n      default: 312,\n    },\n    location: {\n      type: String as PropType<(typeof locations)[number]>,\n      default: 'start',\n      validator: (value: any) => locations.includes(value),\n    },\n    sticky: Boolean,\n\n    ...makeComponentProps(),\n    ...makeLayoutItemProps(),\n    ...makeTagProps({ tag: 'nav' }),\n  },\n  'USidebar'\n)\n\nexport type USidebarProps = ExtractPropTypes<typeof makeUSidebarProps>\n\nexport const USidebar = genericComponent<USidebarSlots>()({\n  name: 'USidebar',\n\n  props: makeUSidebarProps(),\n\n  emits: {\n    'update:modelValue': (val: boolean) => true,\n    'update:rail': (val: boolean) => true,\n  },\n\n  setup(props, { attrs, emit, slots }) {\n    const router = useRouter()\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    const isActive = useProxiedModel(props, 'modelValue', null, (v) => !!v)\n    const { scopeId } = useScopeId()\n    const rootEl = ref<HTMLElement>()\n    const isHovering = shallowRef(false)\n\n    const screenWidth = ref(0)\n\n    const bgColor = computed(() => {\n      let bgColor = ''\n      if (\n        props.theme === 'light' &&\n        (props.variant === 'gray' || props.variant === 'primary')\n      ) {\n        bgColor = 'white'\n      } else if (props.theme === 'dark' && props.variant === 'primary') {\n        bgColor = 'primary-700'\n      } else if (props.theme === 'dark' && props.variant === 'gray') {\n        bgColor = 'gray-900'\n      }\n      return bgColor\n    })\n\n    onMounted(() => {\n      screenWidth.value = window.innerWidth\n    })\n\n    const mobile = computed(() => {\n      return screenWidth.value < 350 ? true : false\n    })\n\n    const width = computed(() => {\n      return props.rail && props.expandOnHover && isHovering.value\n        ? Number(props.width)\n        : Number(props.rail ? props.railWidth : props.width)\n    })\n\n    const location = computed(() => {\n      return props.location as 'left' | 'right' | 'bottom'\n    })\n\n    const isTemporary = computed(\n      () => !props.permanent && (mobile.value || props.temporary)\n    )\n    const isSticky = computed(\n      () => props.sticky && !isTemporary.value && location.value !== 'bottom'\n    )\n\n    if (props.expandOnHover && props.rail != null) {\n      watch(isHovering, (val) => emit('update:rail', !val))\n    }\n\n    if (!props.disableResizeWatcher) {\n      watch(\n        isTemporary,\n        (val) => !props.permanent && nextTick(() => (isActive.value = !val))\n      )\n    }\n\n    if (!props.disableRouteWatcher && router) {\n      watch(\n        router.currentRoute,\n        () => isTemporary.value && (isActive.value = false)\n      )\n    }\n\n    watch(\n      () => props.permanent,\n      (val) => {\n        if (val) isActive.value = true\n      }\n    )\n\n    onBeforeMount(() => {\n      if (props.modelValue != null || isTemporary.value) return\n\n      isActive.value = props.permanent || !mobile.value\n    })\n\n    const { isDragging, dragProgress, dragStyles } = useTouch({\n      isActive,\n      isTemporary,\n      width,\n      touchless: toRef(props, 'touchless'),\n      position: location,\n    })\n\n    const layoutSize = computed(() => {\n      const size = isTemporary.value\n        ? 0\n        : props.rail && props.expandOnHover\n        ? Number(props.railWidth)\n        : width.value\n\n      return isDragging.value ? size * dragProgress.value : size\n    })\n\n    const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n      id: props.name,\n      order: computed(() => parseInt(props.order, 10)),\n      position: location,\n      layoutSize,\n      elementSize: width,\n      active: computed(() => isActive.value || isDragging.value),\n      disableTransitions: computed(() => isDragging.value),\n      absolute: computed(\n        () =>\n          // eslint-disable-next-line @typescript-eslint/no-use-before-define\n          props.absolute ||\n          (isSticky.value && typeof isStuck.value !== 'string')\n      ),\n    })\n\n    const { isStuck, stickyStyles } = useSticky({\n      rootEl,\n      isSticky,\n      layoutItemStyles,\n    })\n\n    const scrimStyles = computed(() => ({\n      ...(isDragging.value\n        ? {\n            opacity: dragProgress.value * 0.2,\n            transition: 'none',\n          }\n        : undefined),\n      ...layoutItemScrimStyles.value,\n    }))\n\n    provideDefaults({\n      VList: {\n        bgColor: 'transparent',\n      },\n    })\n\n    function onMouseenter() {\n      isHovering.value = true\n    }\n    function onMouseleave() {\n      isHovering.value = false\n    }\n\n    const flexContainerClasses = computed(() => {\n      let classes = ''\n      if (props.location === 'top') {\n        classes = 'flex justify-between items-center h-fit'\n      } else {\n        classes = 'flex flex-col justify-between h-full'\n      }\n      return classes\n    })\n\n    const borderClasses = computed(() => {\n      let border = ''\n      if (!props.border) {\n        return null\n      } else if (\n        props.border &&\n        props.location === 'left' &&\n        props.theme === 'light'\n      ) {\n        border = `border-gray-200 border-r-1`\n      } else if (\n        props.border &&\n        props.location === 'right' &&\n        props.theme === 'light'\n      ) {\n        border = `border-gray-200 border-l-1`\n      } else if (\n        props.border &&\n        props.location === 'top' &&\n        props.theme === 'light'\n      ) {\n        border = `border-gray-200 border-b-1`\n      }\n      return border\n    })\n\n    const elevationClasses = computed(() => {\n      let shadow = ''\n      if (!props.elevation) {\n        return null\n      } else if (props.elevation && props.temporary) {\n        shadow = `shadow-xl shadow-gray-900`\n      }\n      return shadow\n    })\n\n    useRender(() => {\n      return (\n        <>\n          <props.tag\n            ref={rootEl}\n            onMouseenter={onMouseenter}\n            onMouseleave={onMouseleave}\n            class={[\n              `sidebar-drawer transition-all duration-${props.transitionDuration} ease-out`,\n              `sidebar-drawer--${location.value}`,\n              elevationClasses.value,\n              {\n                'sidebar--expand-on-hover': props.expandOnHover,\n                'sidebar--floating': props.floating,\n                'sidebar--is-hovering': isHovering.value,\n                'sidebar--rail': props.rail,\n                'sidebar--temporary': isTemporary.value,\n                'sidebar--active': isActive.value,\n                'sidebar--sticky': isSticky.value,\n              },\n              `bg-${bgColor.value}`,\n              props.class,\n              props.location === 'top' ? 'h-fit' : 'h-full',\n            ]}\n            style={[\n              layoutItemStyles.value,\n              dragStyles.value,\n              stickyStyles.value,\n              props.style,\n            ]}\n            {...scopeId}\n            {...attrs}\n          >\n            {slots.prepend && (\n              <div class=\"sidebar-drawer__prepend\">{slots.prepend?.()}</div>\n            )}\n\n            <div\n              class={[\n                flexContainerClasses.value,\n                'sidebar-drawer__content',\n                borderClasses.value,\n                //elevationClasses.value,\n              ]}\n            >\n              {slots.default?.()}\n            </div>\n\n            {slots.append && (\n              <div class=\"sidebar-drawer__append\">{slots.append?.()}</div>\n            )}\n          </props.tag>\n\n          <Transition name=\"fade\" appear>\n            {isTemporary.value &&\n              (isDragging.value || isActive.value) &&\n              !!props.scrim && (\n                <div\n                  class={['sidebar-drawer__scrim', `bg-gray-700`, `fade`]}\n                  style={[scrimStyles.value]}\n                  onClick={() => (isActive.value = false)}\n                  {...scopeId}\n                />\n              )}\n          </Transition>\n        </>\n      )\n    })\n\n    return {\n      isStuck,\n      isHovering,\n      isActive,\n    }\n  },\n})\n\nexport type USidebar = InstanceType<typeof USidebar>\n"],"mappings":"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"}