{"version":3,"file":"colors.mjs","names":["computed","isRef","destructComputed","propsFactory","isCssColor","makeColorsProps","color","type","String","useColor","colors","classes","styles","value","background","backgroundColor","push","concat","text","caretColor","colorClasses","colorStyles","useTextColor","props","name","_useColor","textColorClasses","textColorStyles","useBackgroundColor","_useColor2","backgroundColorClasses","backgroundColorStyles"],"sources":["../../src/composables/colors.ts"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue'\nimport { destructComputed, propsFactory, isCssColor } from '@/utils'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\nexport const makeColorsProps = propsFactory(\n  {\n    color: {\n      type: String,\n      default: 'primary',\n    },\n  },\n  'color'\n)\n\ntype ColorValue = string | false | null | undefined\n\nexport interface TextColorData {\n  textColorClasses: Ref<string[]>\n  textColorStyles: Ref<CSSProperties>\n}\n\nexport interface BackgroundColorData {\n  backgroundColorClasses: Ref<string[]>\n  backgroundColorStyles: Ref<CSSProperties>\n}\n\n// Composables\nexport function useColor(\n  colors: Ref<{ background?: ColorValue; text?: ColorValue }>\n) {\n  return destructComputed(() => {\n    const classes: string[] = []\n    const styles: CSSProperties = {}\n\n    if (colors.value.background) {\n      if (isCssColor(colors.value.background)) {\n        styles.backgroundColor = colors.value.background\n      } else {\n        classes.push(`bg-${colors.value.background}`)\n      }\n    }\n\n    if (colors.value.text) {\n      if (isCssColor(colors.value.text)) {\n        styles.color = colors.value.text\n        styles.caretColor = colors.value.text\n      } else {\n        classes.push(`text-${colors.value.text}`)\n      }\n    }\n\n    return { colorClasses: classes, colorStyles: styles }\n  })\n}\n\nexport function useTextColor(color: Ref<ColorValue>): TextColorData\nexport function useTextColor<T extends Record<K, ColorValue>, K extends string>(\n  props: T,\n  name: K\n): TextColorData\nexport function useTextColor<T extends Record<K, ColorValue>, K extends string>(\n  props: T | Ref<ColorValue>,\n  name?: K\n): TextColorData {\n  const colors = computed(() => ({\n    text: isRef(props) ? props.value : name ? props[name] : null,\n  }))\n\n  const { colorClasses: textColorClasses, colorStyles: textColorStyles } =\n    useColor(colors)\n\n  return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor(color: Ref<ColorValue>): BackgroundColorData\nexport function useBackgroundColor<\n  T extends Record<K, ColorValue>,\n  K extends string\n>(props: T, name: K): BackgroundColorData\nexport function useBackgroundColor<\n  T extends Record<K, ColorValue>,\n  K extends string\n>(props: T | Ref<ColorValue>, name?: K): BackgroundColorData {\n  const colors = computed(() => ({\n    background: isRef(props) ? props.value : name ? props[name] : null,\n  }))\n\n  const {\n    colorClasses: backgroundColorClasses,\n    colorStyles: backgroundColorStyles,\n  } = useColor(colors)\n\n  return { backgroundColorClasses, backgroundColorStyles }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,EAAEC,YAAY,EAAEC,UAAU,8BAEnD;AAGA,OAAO,IAAMC,eAAe,GAAGF,YAAY,CACzC;EACEG,KAAK,EAAE;IACLC,IAAI,EAAEC,MAAM;IACZ,WAAS;EACX;AACF,CAAC,EACD,OACF,CAAC;AAcD;AACA,OAAO,SAASC,QAAQA,CACtBC,MAA2D,EAC3D;EACA,OAAOR,gBAAgB,CAAC,YAAM;IAC5B,IAAMS,OAAiB,GAAG,EAAE;IAC5B,IAAMC,MAAqB,GAAG,CAAC,CAAC;IAEhC,IAAIF,MAAM,CAACG,KAAK,CAACC,UAAU,EAAE;MAC3B,IAAIV,UAAU,CAACM,MAAM,CAACG,KAAK,CAACC,UAAU,CAAC,EAAE;QACvCF,MAAM,CAACG,eAAe,GAAGL,MAAM,CAACG,KAAK,CAACC,UAAU;MAClD,CAAC,MAAM;QACLH,OAAO,CAACK,IAAI,OAAAC,MAAA,CAAOP,MAAM,CAACG,KAAK,CAACC,UAAU,CAAE,CAAC;MAC/C;IACF;IAEA,IAAIJ,MAAM,CAACG,KAAK,CAACK,IAAI,EAAE;MACrB,IAAId,UAAU,CAACM,MAAM,CAACG,KAAK,CAACK,IAAI,CAAC,EAAE;QACjCN,MAAM,CAACN,KAAK,GAAGI,MAAM,CAACG,KAAK,CAACK,IAAI;QAChCN,MAAM,CAACO,UAAU,GAAGT,MAAM,CAACG,KAAK,CAACK,IAAI;MACvC,CAAC,MAAM;QACLP,OAAO,CAACK,IAAI,SAAAC,MAAA,CAASP,MAAM,CAACG,KAAK,CAACK,IAAI,CAAE,CAAC;MAC3C;IACF;IAEA,OAAO;MAAEE,YAAY,EAAET,OAAO;MAAEU,WAAW,EAAET;IAAO,CAAC;EACvD,CAAC,CAAC;AACJ;AAOA,OAAO,SAASU,YAAYA,CAC1BC,KAA0B,EAC1BC,IAAQ,EACO;EACf,IAAMd,MAAM,GAAGV,QAAQ,CAAC;IAAA,OAAO;MAC7BkB,IAAI,EAAEjB,KAAK,CAACsB,KAAK,CAAC,GAAGA,KAAK,CAACV,KAAK,GAAGW,IAAI,GAAGD,KAAK,CAACC,IAAI,CAAC,GAAG;IAC1D,CAAC;EAAA,CAAC,CAAC;EAEH,IAAAC,SAAA,GACEhB,QAAQ,CAACC,MAAM,CAAC;IADIgB,gBAAgB,GAAAD,SAAA,CAA9BL,YAAY;IAAiCO,eAAe,GAAAF,SAAA,CAA5BJ,WAAW;EAGnD,OAAO;IAAEK,gBAAgB,EAAhBA,gBAAgB;IAAEC,eAAe,EAAfA;EAAgB,CAAC;AAC9C;AAOA,OAAO,SAASC,kBAAkBA,CAGhCL,KAA0B,EAAEC,IAAQ,EAAuB;EAC3D,IAAMd,MAAM,GAAGV,QAAQ,CAAC;IAAA,OAAO;MAC7Bc,UAAU,EAAEb,KAAK,CAACsB,KAAK,CAAC,GAAGA,KAAK,CAACV,KAAK,GAAGW,IAAI,GAAGD,KAAK,CAACC,IAAI,CAAC,GAAG;IAChE,CAAC;EAAA,CAAC,CAAC;EAEH,IAAAK,UAAA,GAGIpB,QAAQ,CAACC,MAAM,CAAC;IAFJoB,sBAAsB,GAAAD,UAAA,CAApCT,YAAY;IACCW,qBAAqB,GAAAF,UAAA,CAAlCR,WAAW;EAGb,OAAO;IAAES,sBAAsB,EAAtBA,sBAAsB;IAAEC,qBAAqB,EAArBA;EAAsB,CAAC;AAC1D"}