{"version":3,"file":"index.min.mjs","sources":["../packages/utils/vue/install/index.ts","../packages/utils/uuid/index.ts","../packages/hooks/use-events/index.ts","../packages/hooks/use-reflect/index.ts","../packages/hooks/use-namespace/index.ts","../packages/components/card/src/card.ts","../packages/components/card/src/card.vue?vue&type=script&setup=true&lang.ts","../packages/components/card/index.ts","../packages/unpack-ui/component.ts","../packages/unpack-ui/make-installer.ts","../packages/unpack-ui/defaults.ts","../packages/unpack-ui/index.ts"],"sourcesContent":["import type { App, AppContext, Directive, Plugin } from 'vue'\nexport type SFCWithInstall<T> = T & Plugin\n\nexport type SFCInstallWithContext<T> = SFCWithInstall<T> & {\n  _context: AppContext | null\n}\n\nexport const withInstall = <T, E extends Record<string, any>>(\n  main: T,\n  extra?: E,\n) => {\n  (main as SFCWithInstall<T>).install = (app): void => {\n    for (const comp of [main, ...Object.values(extra ?? {})])\n      app.component(comp.name, comp)\n  }\n\n  if (extra)\n    for (const [key, comp] of Object.entries(extra)) (main as any)[key] = comp\n\n  return main as SFCWithInstall<T> & E\n}\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n  (fn as SFCWithInstall<T>).install = (app: App) => {\n    (fn as SFCInstallWithContext<T>)._context = app._context\n    app.config.globalProperties[name] = fn\n  }\n\n  return fn as SFCInstallWithContext<T>\n}\n\nexport const withInstallDirective = <T extends Directive>(\n  directive: T,\n  name: string,\n) => {\n  (directive as SFCWithInstall<T>).install = (app: App): void => {\n    app.directive(name, directive)\n  }\n\n  return directive as SFCWithInstall<T>\n}\n\nexport const withNoopInstall = <T>(component: T) => {\n  (component as SFCWithInstall<T>).install = () => ({})\n\n  return component as SFCWithInstall<T>\n}\n","/**\n * uuid\n */\nexport const uuid = () => {\n  return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => {\n    return (Number(c) ^ ((Math.random() * 16) >> (Number(c) / 4))).toString(16)\n  })\n}\n","import { useDebounceFn } from '@vueuse/core'\nimport type {\n  AnyFn,\n  DebounceFilterOptions,\n  MaybeRefOrGetter,\n  PromisifyFn,\n} from '@vueuse/core'\n\nexport type EventAnyFn = AnyFn\n\nexport type EventCallbacks = Record<string, EventAnyFn>\n\nexport type EventPromiseFn<F extends EventAnyFn> = PromisifyFn<F>\n\nexport interface EventOptions extends DebounceFilterOptions {\n  ms?: MaybeRefOrGetter<number>\n}\n\nexport const useEvents = <T extends EventCallbacks>(\n  callbacks: T,\n  options?: EventOptions,\n) => {\n  const { ms = 0, maxWait = 0, rejectOnCancel } = options || {}\n  return useDebounceFn(\n    (key: keyof T, ...args: any) => {\n      const callback = callbacks[key] as EventPromiseFn<EventAnyFn>\n      if (callback) callback.apply({}, args)\n    },\n    ms,\n    { maxWait: maxWait || ms, rejectOnCancel },\n  )\n}\n","import { cloneDeep } from 'lodash-es'\nimport { type UnwrapNestedRefs, reactive } from 'vue'\n\ninterface ReflectOptions {\n  clone?: boolean\n  reactivity?: boolean\n}\n\ntype ReflectType<T, O> = T extends true ? UnwrapNestedRefs<O> : O\ntype ReflectReturn<T, O> = T extends true\n  ? UnwrapNestedRefs<O[keyof O]>\n  : O[keyof O]\n\nexport const useReflect = <O extends object>(\n  obj: O,\n  options?: ReflectOptions,\n) => {\n  const { clone = true, reactivity = true } = options || {}\n\n  let target: ReflectType<typeof reactivity, O> = obj\n  target = clone ? cloneDeep(target) : target\n  target = reactivity ? reactive(target) : target\n\n  const has = (propertyKey: keyof O) => {\n    return Reflect.has(target, propertyKey)\n  }\n\n  const del = (propertyKey: keyof O) => {\n    return Reflect.deleteProperty(target, propertyKey)\n  }\n\n  const set = (propertyKey: keyof O, value: any, receiver?: O) => {\n    return Reflect.set(target, propertyKey, value, receiver || target)\n  }\n\n  const get = (\n    propertyKey: keyof O,\n    receiver?: O,\n  ): ReflectReturn<typeof reactivity, O> => {\n    return Reflect.get(target, propertyKey, receiver || target)\n  }\n\n  return { target, has, del, set, get }\n}\n","export const defaultNamespace = 'u'\nconst statePrefix = 'is-'\n\nconst _bem = (\n  namespace: string,\n  block: string,\n  blockSuffix: string,\n  element: string,\n  modifier: string,\n) => {\n  let cls = `${namespace}-${block}`\n  if (blockSuffix) {\n    cls += `-${blockSuffix}`\n  }\n\n  if (element) {\n    cls += `__${element}`\n  }\n\n  if (modifier) {\n    cls += `--${modifier}`\n  }\n\n  return cls\n}\n\nexport const useNamespace = (block: string) => {\n  const namespace = defaultNamespace\n\n  const b = (blockSuffix = '') => _bem(namespace, block, blockSuffix, '', '')\n  const e = (element?: string) =>\n    element ? _bem(namespace, block, '', element, '') : ''\n\n  const m = (modifier?: string) =>\n    modifier ? _bem(namespace, block, '', '', modifier) : ''\n\n  const be = (blockSuffix?: string, element?: string) => {\n    if (blockSuffix && element) {\n      return _bem(namespace, block, blockSuffix, element, '')\n    }\n    else {\n      return ''\n    }\n  }\n\n  const em = (element?: string, modifier?: string) => {\n    if (element && modifier) {\n      return _bem(namespace, block, '', element, modifier)\n    }\n    else {\n      return ''\n    }\n  }\n  const bm = (blockSuffix?: string, modifier?: string) => {\n    if (blockSuffix && modifier) {\n      return _bem(namespace, block, blockSuffix, '', modifier)\n    }\n    else {\n      return ''\n    }\n  }\n  const bem = (blockSuffix?: string, element?: string, modifier?: string) => {\n    if (blockSuffix && element && modifier) {\n      return _bem(namespace, block, blockSuffix, element, modifier)\n    }\n    else {\n      return ''\n    }\n  }\n\n  const is: {\n    (name: string, state: boolean | undefined): string\n    (name: string): string\n  } = (name: string, ...args: [boolean | undefined] | []) => {\n    const state = args.length >= 1 ? args[0]! : true\n    if (name && state) {\n      return `${statePrefix}${name}`\n    }\n    else {\n      return ''\n    }\n  }\n\n  // for css var\n  // --{namespace}-xxx: value;\n  const cssVar = (object: Record<string, string>) => {\n    const styles: Record<string, string> = {}\n    for (const key in object) {\n      if (object[key]) {\n        styles[`--${namespace}-${key}`] = object[key]\n      }\n    }\n\n    return styles\n  }\n  // with block\n  const cssVarBlock = (object: Record<string, string>) => {\n    const styles: Record<string, string> = {}\n    for (const key in object) {\n      if (object[key]) {\n        styles[`--${namespace}-${block}-${key}`] = object[key]\n      }\n    }\n\n    return styles\n  }\n\n  const cssVarName = (name: string) => `--${namespace}-${name}`\n  const cssVarBlockName = (name: string) => `--${namespace}-${block}-${name}`\n\n  return {\n    namespace,\n    b,\n    e,\n    m,\n    be,\n    em,\n    bm,\n    bem,\n    is,\n    // css\n    cssVar,\n    cssVarName,\n    cssVarBlock,\n    cssVarBlockName,\n  }\n}\n\nexport type UseNamespace = ReturnType<typeof useNamespace>\n","import type { ExtractPropTypes, PropType, StyleValue } from 'vue'\n\nexport const cardProps = {\n  header: {\n    type: String,\n  },\n  shadow: {\n    type: String as PropType<'always' | 'hover' | 'never'>,\n    default: 'never',\n  },\n  headerStyle: {\n    type: Object as PropType<StyleValue>,\n  },\n  bodyStyle: {\n    type: Object as PropType<StyleValue>,\n  },\n  footerStyle: {\n    type: Object as PropType<StyleValue>,\n  },\n} as const\n\nexport type CardProps = ExtractPropTypes<typeof cardProps>\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nimport { computed } from 'vue'\nimport { useNamespace } from '@unpack-ui/hooks'\nimport { cardProps } from './card'\n\n\nexport default /*#__PURE__*/_defineComponent({\n  ...{ name: 'u-card' },\n  __name: 'card',\n  props: cardProps,\n  setup(__props) {\n\nconst props = __props;\n\n\n\n\nconst ns = useNamespace('card')\n\nconst shadow = computed(() => {\n  const shadows = ['always', 'hover', 'never']\n  return shadows.includes(props.shadow)\n    ? `${ns.is(`${props.shadow}-shadow`)}`\n    : `${ns.is('never-shadow')}`\n})\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: _normalizeClass([_unref(ns).b(), shadow.value])\n  }, [\n    (_ctx.$slots.header || _ctx.header)\n      ? (_openBlock(), _createElementBlock(\"div\", {\n          key: 0,\n          class: _normalizeClass(_unref(ns).e('header')),\n          style: _normalizeStyle(_ctx.headerStyle)\n        }, [\n          _renderSlot(_ctx.$slots, \"header\", {}, () => [\n            _createTextVNode(_toDisplayString(_ctx.header), 1 /* TEXT */)\n          ])\n        ], 6 /* CLASS, STYLE */))\n      : _createCommentVNode(\"v-if\", true),\n    _createElementVNode(\"div\", {\n      class: _normalizeClass(_unref(ns).e('body')),\n      style: _normalizeStyle(_ctx.bodyStyle)\n    }, [\n      _renderSlot(_ctx.$slots, \"default\")\n    ], 6 /* CLASS, STYLE */),\n    (_ctx.$slots.footer)\n      ? (_openBlock(), _createElementBlock(\"div\", {\n          key: 1,\n          class: _normalizeClass(_unref(ns).e('footer')),\n          style: _normalizeStyle(_ctx.footerStyle)\n        }, [\n          _renderSlot(_ctx.$slots, \"footer\")\n        ], 6 /* CLASS, STYLE */))\n      : _createCommentVNode(\"v-if\", true)\n  ], 2 /* CLASS */))\n}\n}\n\n})","import { withInstall } from '@unpack-ui/utils'\nimport Card from './src/card.vue'\n\nexport const UCard = withInstall(Card)\n\nexport * from './src/card'\n\nexport default UCard\n","import type { Plugin } from 'vue'\n\nimport { UCard } from '@unpack-ui/components/card'\n\nexport default [UCard] as Plugin[]\n","import type { App, Plugin } from 'vue'\n\nconst version = '0.0.0'\n\nexport const makeInstaller = (components: Plugin[] = []) => {\n  const install = (app: App) => {\n    components.forEach((c) => app.use(c))\n  }\n  return { version, install }\n}\n","import Components from './component'\nimport { makeInstaller } from './make-installer'\n\nexport default makeInstaller([...Components])\n","import installer from './defaults'\n\nexport * from '@unpack-ui/utils'\nexport * from '@unpack-ui/hooks'\nexport * from '@unpack-ui/components'\nexport * from './make-installer'\n\nexport const install = installer.install\nexport const version = installer.version\n\nexport default installer\n"],"names":["withInstall","main","extra","app","comp","key","withInstallFunction","fn","name","withInstallDirective","directive","withNoopInstall","component","uuid","c","useEvents","callbacks","options","ms","maxWait","rejectOnCancel","useDebounceFn","args","callback","useReflect","obj","clone","reactivity","target","cloneDeep","reactive","propertyKey","value","receiver","defaultNamespace","statePrefix","_bem","namespace","block","blockSuffix","element","modifier","cls","useNamespace","state","object","styles","cardProps","_sfc_main","_defineComponent","__props","props","ns","shadow","computed","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_createElementVNode","UCard","Card","Components","version","makeInstaller","components","installer","install"],"mappings":"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"}