{
  "name": "@codeandfunction/callaloo",
  "description": "Callaloo is a Vue UI library. It is easy to integrate into any Vue3+ project, has a small footprint, can be easily themed, and provides commonly used components.",
  "author": {
    "name": "Anthony Cholmondeley",
    "url": "https://callaloo.dev"
  },
  "keywords": [
    "callaloo",
    "vue",
    "vue3",
    "vue.js",
    "simple",
    "ui library",
    "a11y",
    "component library",
    "ui components",
    "vuejs"
  ],
  "version": "5.8.0",
  "license": "MIT",
  "type": "module",
  "unpkg": "dist/callaloo.global.js",
  "jsdelivr": "dist/callaloo.global.js",
  "files": [
    "dist",
    "!dist/stats.html"
  ],
  "module": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "typings": "./dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js"
    },
    "./CLIcon": {
      "types": "./dist/components/CLIcon/CLIcon.vue.d.ts",
      "import": "./dist/components/CLIcon/CLIcon.js"
    },
    "./CLTable": {
      "types": "./dist/components/CLTable/CLTable.vue.d.ts",
      "import": "./dist/components/CLTable/CLTable.js"
    },
    "./CLA11yButton": {
      "types": "./dist/components/Buttons/CLA11yButton/CLA11yButton.vue.d.ts",
      "import": "./dist/components/Buttons/CLA11yButton/CLA11yButton.js"
    },
    "./CLButton": {
      "types": "./dist/components/Buttons/CLButton/CLButton.vue.d.ts",
      "import": "./dist/components/Buttons/CLButton/CLButton.js"
    },
    "./CLCard": {
      "types": "./dist/components/Containers/CLCard/CLCard.vue.d.ts",
      "import": "./dist/components/Containers/CLCard/CLCard.js"
    },
    "./CLCarousel": {
      "types": "./dist/components/Containers/CLCarousel/CLCarousel.vue.d.ts",
      "import": "./dist/components/Containers/CLCarousel/CLCarousel.js"
    },
    "./CLDisclosure": {
      "types": "./dist/components/Containers/CLDisclosure/CLDisclosure.vue.d.ts",
      "import": "./dist/components/Containers/CLDisclosure/CLDisclosure.js"
    },
    "./CLDrawer": {
      "types": "./dist/components/Containers/CLDrawer/CLDrawer.vue.d.ts",
      "import": "./dist/components/Containers/CLDrawer/CLDrawer.js"
    },
    "./CLCalendar": {
      "types": "./dist/components/Form/CLCalendar/CLCalendar.vue.d.ts",
      "import": "./dist/components/Form/CLCalendar/CLCalendar.js"
    },
    "./CLCheckbox": {
      "types": "./dist/components/Form/CLCheckbox/CLCheckbox.vue.d.ts",
      "import": "./dist/components/Form/CLCheckbox/CLCheckbox.js"
    },
    "./CLInput": {
      "types": "./dist/components/Form/CLInput/CLInput.vue.d.ts",
      "import": "./dist/components/Form/CLInput/CLInput.js"
    },
    "./CLInputDatePicker": {
      "types": "./dist/components/Form/CLInputDatePicker/CLInputDatePicker.vue.d.ts",
      "import": "./dist/components/Form/CLInputDatePicker/CLInputDatePicker.js"
    },
    "./CLRadioButton": {
      "types": "./dist/components/Form/CLRadioButton/CLRadioButton.vue.d.ts",
      "import": "./dist/components/Form/CLRadioButton/CLRadioButton.js"
    },
    "./CLSelect": {
      "types": "./dist/components/Form/CLSelect/CLSelect.vue.d.ts",
      "import": "./dist/components/Form/CLSelect/CLSelect.js"
    },
    "./CLTextArea": {
      "types": "./dist/components/Form/CLTextArea/CLTextArea.vue.d.ts",
      "import": "./dist/components/Form/CLTextArea/CLTextArea.js"
    },
    "./CLBadge": {
      "types": "./dist/components/Indicators/CLBadge/CLBadge.vue.d.ts",
      "import": "./dist/components/Indicators/CLBadge/CLBadge.js"
    },
    "./CLBanner": {
      "types": "./dist/components/Indicators/CLBanner/CLBanner.vue.d.ts",
      "import": "./dist/components/Indicators/CLBanner/CLBanner.js"
    },
    "./CLPill": {
      "types": "./dist/components/Indicators/CLPill/CLPill.vue.d.ts",
      "import": "./dist/components/Indicators/CLPill/CLPill.js"
    },
    "./CLProgress": {
      "types": "./dist/components/Indicators/CLProgress/CLProgress.vue.d.ts",
      "import": "./dist/components/Indicators/CLProgress/CLProgress.js"
    },
    "./CLSkeleton": {
      "types": "./dist/components/Loading/CLSkeleton/CLSkeleton.vue.d.ts",
      "import": "./dist/components/Loading/CLSkeleton/CLSkeleton.js"
    },
    "./CLSpinner": {
      "types": "./dist/components/Loading/CLSpinner/CLSpinner.vue.d.ts",
      "import": "./dist/components/Loading/CLSpinner/CLSpinner.js"
    },
    "./CLModal": {
      "types": "./dist/components/Modals/CLModal/CLModal.vue.d.ts",
      "import": "./dist/components/Modals/CLModal/CLModal.js"
    },
    "./CLModalDatePicker": {
      "types": "./dist/components/Modals/CLModalDatePicker/CLModalDatePicker.vue.d.ts",
      "import": "./dist/components/Modals/CLModalDatePicker/CLModalDatePicker.js"
    },
    "./CLLink": {
      "types": "./dist/components/Navigation/CLLink/CLLink.vue.d.ts",
      "import": "./dist/components/Navigation/CLLink/CLLink.js"
    },
    "./CLNavLink": {
      "types": "./dist/components/Navigation/CLNavLink/CLNavLink.vue.d.ts",
      "import": "./dist/components/Navigation/CLNavLink/CLNavLink.js"
    },
    "./CLNavSection": {
      "types": "./dist/components/Navigation/CLNavSection/CLNavSection.vue.d.ts",
      "import": "./dist/components/Navigation/CLNavSection/CLNavSection.js"
    },
    "./CLDropdownMenu": {
      "types": "./dist/components/Popups/CLDropdownMenu/CLDropdownMenu.vue.d.ts",
      "import": "./dist/components/Popups/CLDropdownMenu/CLDropdownMenu.js"
    },
    "./CLToast": {
      "types": "./dist/components/Popups/CLToast/CLToast.vue.d.ts",
      "import": "./dist/components/Popups/CLToast/CLToast.js"
    },
    "./CLThemeProvider": {
      "types": "./dist/components/Providers/CLThemeProvider/CLThemeProvider.vue.d.ts",
      "import": "./dist/components/Providers/CLThemeProvider/CLThemeProvider.js"
    },
    "./CLToastProvider": {
      "types": "./dist/components/Providers/CLToastProvider/CLToastProvider.vue.d.ts",
      "import": "./dist/components/Providers/CLToastProvider/CLToastProvider.js"
    },
    "./CLHeading": {
      "types": "./dist/components/Typography/CLHeading/CLHeading.vue.d.ts",
      "import": "./dist/components/Typography/CLHeading/CLHeading.js"
    },
    "./CLText": {
      "types": "./dist/components/Typography/CLText/CLText.vue.d.ts",
      "import": "./dist/components/Typography/CLText/CLText.js"
    },
    "./composables/useTheme": {
      "types": "./dist/composables/useTheme.d.ts",
      "import": "./dist/composables/useTheme.js"
    },
    "./composables/useToast": {
      "types": "./dist/composables/useToast.d.ts",
      "import": "./dist/composables/useToast.js"
    }
  },
  "dependencies": {
    "@codeandfunction/callaloo-types": "1.5.0",
    "@codeandfunction/callaloo-tokens": "1.3.0"
  },
  "devDependencies": {
    "@chromatic-com/storybook": "^4.1.3",
    "@floating-ui/vue": "^1.1.10",
    "@iconify-json/tabler": "^1.2.26",
    "@iconify/tools": "^5.0.2",
    "@iconify/types": "^2.0.0",
    "@semantic-release/changelog": "^6.0.3",
    "@semantic-release/git": "^10.0.1",
    "@semantic-release/gitlab": "^13.2.6",
    "@size-limit/esbuild": "^12.0.0",
    "@size-limit/esbuild-why": "^12.0.0",
    "@size-limit/preset-small-lib": "^12.0.0",
    "@storybook/addon-a11y": "^10.2.1",
    "@storybook/addon-docs": "^10.2.1",
    "@storybook/cli": "^10.2.1",
    "@storybook/test-runner": "^0.24.2",
    "@storybook/vue3-vite": "^10.2.1",
    "@types/lodash-es": "^4.17.12",
    "@types/node": "^25.1.0",
    "@vitejs/plugin-vue": "^6.0.3",
    "@vitejs/plugin-vue-jsx": "^5.1.3",
    "@vitest/browser": "4.0.16",
    "@vitest/coverage-istanbul": "4.0.16",
    "@vitest/coverage-v8": "4.0.16",
    "@vitest/ui": "^4.0.18",
    "@vue/test-utils": "^2.4.6",
    "@vue/tsconfig": "^0.8.1",
    "@wdns/vue-code-block": "^2.3.5",
    "chromatic": "^13.3.5",
    "conventional-changelog-conventionalcommits": "^9.1.0",
    "eslint-plugin-storybook": "10.1.10",
    "eslint-plugin-vue": "^10.7.0",
    "fast-glob": "^3.3.3",
    "jsdom": "^27.4.0",
    "lodash-es": "^4.17.23",
    "playwright": "^1.58.0",
    "rollup-plugin-visualizer": "^6.0.5",
    "sass": "^1.97.3",
    "semantic-release": "^25.0.2",
    "size-limit": "^12.0.0",
    "storybook": "^10.2.1",
    "storybook-addon-deep-controls": "^0.10.0",
    "tsx": "^4.21.0",
    "unplugin-auto-import": "^20.3.0",
    "vite": "^7.3.0",
    "vite-plugin-dts": "^4.5.4",
    "vite-plugin-lib-inject-css": "^2.2.2",
    "vite-tsconfig-paths": "^6.0.5",
    "vitest": "4.0.16",
    "vue": "^3.5.27",
    "vue-component-meta": "^3.2.4",
    "vue-docgen-api": "^4.79.2",
    "vue-router": "^4.6.4",
    "vue-tsc": "^3.2.4"
  },
  "peerDependencies": {
    "vue": "^3.5.26"
  },
  "sideEffects": [
    "**/*.css",
    "dist/**/*.js"
  ],
  "size-limit": [
    {
      "name": "Full library (exported)",
      "path": "dist/index.js",
      "limit": "210 KB"
    }
  ],
  "scripts": {
    "build": "pnpm export:icons && vite build && pnpm build:cdn && pnpm generate:exports",
    "build:cdn": "vite build -c vite.config.cdn.ts",
    "build:storybook": "pnpm export:icons && pnpm storybook build",
    "generate:exports": "npx tsx scripts/generate-exports.ts",
    "coverage": "vitest run --coverage",
    "export:icons": "npx tsx scripts/export-icons.ts",
    "export:icons:individual": "npx tsx scripts/export-individual-icons.ts",
    "export:meta": "npx tsx scripts/export-meta.ts",
    "lint": "pnpm lint:js && pnpm lint:prettier",
    "lint:js": "eslint 'src/**/*.{ts,vue}'",
    "lint:js:fix": "eslint 'src/**/*.{ts,vue}' --fix",
    "lint:prettier": "prettier --check 'src/**/*.{ts,vue}'",
    "package": "npm pack",
    "size": "size-limit",
    "start": "pnpm export:icons && storybook dev -p 4400 --no-open",
    "test": "vitest --run --passWithNoTests",
    "test:watch": "vitest",
    "test:ui": "vitest --ui --coverage",
    "test:storybook": "test-storybook --url http://127.0.0.1:4400"
  }
}