@poupe/tailwindcss
Version:
TailwindCSS v4 plugin for Poupe UI framework with theme customization support
1 lines • 3.04 kB
Source Map (JSON)
{"version":3,"file":"tailwindcss.CwibpYHY.mjs","sources":["../../src/utils/plugin.ts"],"sourcesContent":["import {\n type Config,\n type PluginAPI,\n\n default as origPlugin,\n} from 'tailwindcss/plugin';\n\n/** re-export standard plugin types */\nexport {\n type Config,\n type PluginAPI,\n type PluginCreator as PluginFn,\n} from 'tailwindcss/plugin';\n\nexport type PluginWithConfig = ReturnType<typeof origPlugin>;\nexport type PluginWithOptions<O> = ReturnType<typeof origPlugin.withOptions<O>>;\n\n/**\n * Creates a Tailwind plugin with configurable options.\n *\n * @typeParam O - The type of input configuration options (user-provided)\n * @typeParam T - The type of processed options used by the plugin functions (internal)\n * @param pluginFunction - Handles the plugin's core logic (addUtilities, etc.) using processed options T.\n * @param configFunction - Generates partial Tailwind config using processed options T.\n * @param processOptions - Processes user input O into the internal options T\n * @returns A plugin function expecting user options O.\n */\nexport function pluginWithOptions<O, T>(\n pluginFunction: (api: PluginAPI, options: T) => void,\n configFunction?: (options: T) => Partial<Config>,\n processOptions?: (options?: O) => T,\n): PluginWithOptions<O> {\n function optionsFunction(options?: O): PluginWithConfig {\n const $options = processOptions ? processOptions(options) : options as T;\n\n return {\n handler: (api: PluginAPI): void => pluginFunction(api, $options),\n config: configFunction ? configFunction($options) : undefined,\n };\n };\n\n optionsFunction.__isOptionsFunction = true as const;\n return optionsFunction;\n};\n\n/**\n * Creates a Tailwind plugin with partial configuration options.\n *\n * @typeParam T - The type of configuration options for the plugin\n * @param pluginFunction - A function that generates the Tailwind plugin\n * @param configFunction - A function that generates partial Tailwind configuration based on options\n * @param defaultsFunction - A function that provides default options with partial configuration\n * @returns A plugin function with partial configurable options\n */\nexport function pluginWithPartialOptions<T>(\n pluginFunction: (api: PluginAPI, options: T) => void,\n configFunction?: (options: T) => Partial<Config>,\n defaultsFunction?: (options?: Partial<T>) => T,\n): PluginWithOptions<Partial<T>> {\n return pluginWithOptions(pluginFunction, configFunction, defaultsFunction);\n};\n"],"names":[],"mappings":"AA2BgB,SAAA,iBAAA,CACd,cACA,EAAA,cAAA,EACA,cACsB,EAAA;AACtB,EAAA,SAAS,gBAAgB,OAA+B,EAAA;AACtD,IAAA,MAAM,QAAW,GAAA,cAAA,GAAiB,cAAe,CAAA,OAAO,CAAI,GAAA,OAAA;AAE5D,IAAO,OAAA;AAAA,MACL,OAAS,EAAA,CAAC,GAAyB,KAAA,cAAA,CAAe,KAAK,QAAQ,CAAA;AAAA,MAC/D,MAAQ,EAAA,cAAA,GAAiB,cAAe,CAAA,QAAQ,CAAI,GAAA;AAAA,KACtD;AAAA;AAGF,EAAA,eAAA,CAAgB,mBAAsB,GAAA,IAAA;AACtC,EAAO,OAAA,eAAA;AACT;AAWgB,SAAA,wBAAA,CACd,cACA,EAAA,cAAA,EACA,gBAC+B,EAAA;AAC/B,EAAO,OAAA,iBAAA,CAAkB,cAAgB,EAAA,cAAA,EAAgB,gBAAgB,CAAA;AAC3E;;;;"}