import * as tailwindcss_resolveConfig from 'tailwindcss/resolveConfig'; import * as tailwindcss from 'tailwindcss'; import * as nuxt_kit from 'nuxt/kit'; type Import = Exclude[0], any[]>; type TWConfig = tailwindcss.Config; type InjectPosition = 'first' | 'last' | number | { after: string; }; type _Omit = { [P in keyof T as Exclude]: T[P]; }; type InlineTWConfig = _Omit & { content?: (Extract | _Omit>, 'extract' | 'transform'>); safelist?: Exclude[number], Record>[]; }; type BoolObj> = boolean | Partial; type Arrayable = T | T[]; type ViewerConfig = { /** * The endpoint for the viewer * * @default '/_tailwind' */ endpoint: `/${string}`; /** * Export the viewer during build * * Works in Nuxt 3; for Nuxt 2, use `npx tailwind-config-viewer export` * * @default false */ exportViewer: boolean; }; type ExposeConfig = { /** * Import name for the configuration * * @default '#tailwind-config' * @deprecated use `alias` in `nuxt.config` instead - https://nuxt.com/docs/api/nuxt-config#alias */ alias: string; /** * Deeper references within configuration for optimal tree-shaking. * * @default 2 */ level: number; /** * To write the templates to file-system for usage with code that does not have access to the Virtual File System. This applies only for Nuxt 3 with Vite. * * @deprecated use a module if a necessary using the `app:templates` hook to write templates like so: https://github.com/nuxt/module-builder/blob/4697f18429efb83b82f3b256dd8926bb94d3df77/src/commands/prepare.ts#L37-L43 */ write?: boolean; }; type EditorSupportConfig = { /** * Enable utility to write Tailwind CSS classes inside strings. * * You will need to update `.vscode/settings.json` based on this value. This works only for Nuxt 3 or Nuxt 2 with Bridge. * * ```json * { * "tailwindCSS.experimental.classRegex": ["tw`(.*?)`", "tw\\('(.*?)'\\)"] * } * ``` * * Read https://tailwindcss.nuxtjs.org/tailwind/editor-support#string-classes-autocomplete. * * @default false // if true, { as: 'tw' } */ autocompleteUtil: BoolObj>; }; type ExperimentalOptions = { /** * Specify individual files for Nuxt scanned directories in content configuration * using `pages:extend` and `components:extend` hook. * * @default false */ strictScanContentPaths: boolean; /** * Allow usage of Tailwind CSS 4. * * @default false */ tailwindcss4: boolean; }; interface ModuleOptions { /** * The path of the Tailwind configuration file. The extension can be omitted, in which case it will try to find a `.js`, `.cjs`, `.mjs`, or `.ts` file. * * @default [] * @deprecated provide string in `config` */ configPath: Arrayable; /** * The path of the Tailwind CSS file. If the file does not exist, the module's default CSS file will be imported instead. * * @default '~/assets/css/tailwind.css' */ cssPath: string | false | [string, { injectPosition: InjectPosition; }]; /** * Configuration for Tailwind CSS. Accepts (array of) string and inline configurations. * * for default, see https://tailwindcss.nuxtjs.org/tailwind/config */ config: Arrayable; /** * [tailwind-config-viewer](https://github.com/rogden/tailwind-config-viewer) usage *in development* * * @default true // { endpoint: '_tailwind' } */ viewer: BoolObj; /** * Usage of configuration references in runtime. See https://tailwindcss.nuxtjs.org/tailwind/config#referencing-in-the-application * * @default false // if true, { alias: '#tailwind-config', level: 2 } */ exposeConfig: BoolObj; /** * Suppress logging to the console when everything is ok * * @default nuxt.options.logLevel === 'silent' */ quiet: boolean; /** * Enable some utilities for better editor support and DX. * * Read https://tailwindcss.nuxtjs.org/tailwind/editor-support. * * @default false // if true, { autocompleteUtil: true } */ editorSupport: BoolObj; /** * Enable module experimental functionalities. * * @default false */ experimental?: Partial; /** * This option falls back to the Tailwind configuration inlined to the PostCSS * loader, so any configuration changes while the dev server is running will * not reflect. This is similar to the functionality prior to v6.12.0. * * Note: this is only provided for temporary broken builds that may require * migration. Usage is discouraged. If any issues occur without this, please open * an issue on https://github.com/nuxt-modules/tailwindcss/issues. */ disableHMR?: boolean; } interface ModuleHooks { /** * Passes any Tailwind configuration read by the module for each (extended) [layer](https://nuxt.com/docs/getting-started/layers) and [path](https://tailwindcss.nuxtjs.org/getting-started/options#configpath) before merging all of them. * * @param tailwindConfig * @returns */ 'tailwindcss:config': (tailwindConfig: Partial) => void; /** * Passes the resolved vanilla configuration read from all layers and paths with merging using [defu](https://github.com/unjs/defu). * * @param tailwindConfig * @param configPath * @param index * @param configPaths * @returns */ 'tailwindcss:loadConfig': (tailwindConfig: Partial | undefined, configPath: string, index: number, configPaths: string[]) => void; /** * Passes the complete resolved configuration with all defaults from [the full Tailwind config](https://github.com/tailwindlabs/tailwindcss/blob/master/stubs/config.full.js) using resolveConfig. * * @param tailwindConfig * @returns */ 'tailwindcss:resolvedConfig': (tailwindConfig: ReturnType, oldTailwindConfig: TWConfig | undefined) => void; } export type { ModuleHooks as M, TWConfig as T, ModuleOptions as a };