@stachelock/ui 0.2.7 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -537,7 +537,7 @@ class z {
537
537
  (t.designTokens || t.prefix !== void 0 || t.injectCSS !== void 0) && this.configure(t), this.injectCSS && this.injectCSSVariables(), e.config.globalProperties.$stachelockUI = this, e.provide("stachelockUI", this);
538
538
  }
539
539
  configure(e) {
540
- e.designTokens && (this.designTokens = _(e.designTokens, this.designTokens)), e.prefix !== void 0 && (this.prefix = e.prefix), e.injectCSS !== void 0 && (this.injectCSS = e.injectCSS);
540
+ e.designTokens && (this.designTokens = _(this.designTokens, e.designTokens)), e.prefix !== void 0 && (this.prefix = e.prefix), e.injectCSS !== void 0 && (this.injectCSS = e.injectCSS);
541
541
  }
542
542
  getDesignTokens() {
543
543
  return this.designTokens;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/component-registry.ts","../src/config/design-tokens.ts","../src/config/css-variables.ts","../src/components/UiRadialProgressBar.vue","../src/components/inputs/InputsShowcase.vue","../src/plugin/configure.ts"],"sourcesContent":["import { defineAsyncComponent, type Component } from 'vue'\nimport UiTextInput from '../components/UiTextInput.vue'\nimport type { ComponentMap } from '../types/form'\n\n/**\n * Default component map for dynamic forms\n */\nexport const defaultComponentMap: ComponentMap = {\n text: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n email: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n password: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n number: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n tel: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n url: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n textarea: {\n component: 'TextAreaInput',\n loader: () => import('../components/inputs/TextAreaInput.vue')\n },\n select: {\n component: 'SelectInput',\n loader: () => import('../components/inputs/SelectInput.vue')\n },\n combobox: {\n component: 'ComboboxInput',\n loader: () => import('../components/inputs/ComboboxInput.vue')\n },\n checkbox: {\n component: 'CheckboxInput',\n loader: () => import('../components/inputs/CheckboxInput.vue')\n },\n switch: {\n component: 'SwitchInput',\n loader: () => import('../components/inputs/SwitchInput.vue')\n }\n}\n\n/**\n * Component registry class for managing dynamic form components\n */\nexport class ComponentRegistry {\n private componentMap: ComponentMap = { ...defaultComponentMap }\n private loadedComponents: Map<string, Component> = new Map()\n\n /**\n * Register a new component type\n */\n register(type: string, component: string, loader: () => Promise<any>): void {\n this.componentMap[type] = { component, loader }\n // Clear cached component if it exists\n this.loadedComponents.delete(type)\n }\n\n /**\n * Get a component for a field type\n */\n getComponent(type: string): Component | null {\n const mapItem = this.componentMap[type]\n if (!mapItem) {\n console.warn(`Component type \"${type}\" is not registered`)\n return null\n }\n\n // Return cached component if available\n if (this.loadedComponents.has(type)) {\n return this.loadedComponents.get(type)!\n }\n\n // Create async component\n const asyncComponent = defineAsyncComponent({\n loader: mapItem.loader,\n delay: 0\n })\n\n this.loadedComponents.set(type, asyncComponent)\n return asyncComponent\n }\n\n /**\n * Check if a component type is registered\n */\n hasComponent(type: string): boolean {\n return type in this.componentMap\n }\n\n /**\n * Get all registered component types\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.componentMap)\n }\n\n /**\n * Unregister a component type\n */\n unregister(type: string): void {\n delete this.componentMap[type]\n this.loadedComponents.delete(type)\n }\n\n /**\n * Clear all cached components\n */\n clearCache(): void {\n this.loadedComponents.clear()\n }\n}\n\n// Global component registry instance\nexport const componentRegistry = new ComponentRegistry()\n\n/**\n * Register a component type globally\n */\nexport function registerComponent(type: string, component: string, loader: () => Promise<any>): void {\n componentRegistry.register(type, component, loader)\n}\n\n/**\n * Get a component for a field type\n */\nexport function getComponent(type: string): Component | null {\n return componentRegistry.getComponent(type)\n}\n","export interface StachelockUIDesignTokens {\n colors?: {\n primary?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n };\n stachelock?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n '050'?: string;\n };\n [key: string]: any;\n };\n spacing?: {\n [key: string]: string;\n };\n borderRadius?: {\n [key: string]: string;\n };\n shadows?: {\n [key: string]: string;\n };\n typography?: {\n fontFamily?: {\n [key: string]: string[];\n };\n fontSize?: {\n [key: string]: string;\n };\n };\n breakpoints?: {\n [key: string]: string;\n };\n}\n\nexport const defaultDesignTokens: StachelockUIDesignTokens = {\n colors: {\n primary: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n },\n stachelock: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n '050': '#edeff9', // Same as 50 for consistency\n },\n },\n spacing: {\n '0': '0',\n '1': '0.25rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n '32': '8rem',\n '40': '10rem',\n '48': '12rem',\n '56': '14rem',\n '64': '16rem',\n '72': '18rem',\n '80': '20rem',\n '96': '24rem',\n },\n borderRadius: {\n 'none': '0',\n 'sm': '0.125rem',\n 'DEFAULT': '0.25rem',\n 'md': '0.375rem',\n 'lg': '0.5rem',\n 'xl': '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n 'full': '9999px',\n },\n shadows: {\n 'sm': '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n 'DEFAULT': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n 'md': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n 'lg': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n 'xl': '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n 'inner': 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n 'none': 'none',\n },\n typography: {\n fontFamily: {\n sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],\n serif: ['ui-serif', 'Georgia', 'Cambria', 'serif'],\n mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],\n },\n fontSize: {\n 'xs': '0.75rem',\n 'sm': '0.875rem',\n 'base': '1rem',\n 'lg': '1.125rem',\n 'xl': '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '3.75rem',\n '7xl': '4.5rem',\n '8xl': '6rem',\n '9xl': '8rem',\n },\n },\n breakpoints: {\n 'sm': '640px',\n 'md': '768px',\n 'lg': '1024px',\n 'xl': '1280px',\n '2xl': '1536px',\n },\n};\n\nexport function mergeDesignTokens(\n customTokens: StachelockUIDesignTokens,\n defaults: StachelockUIDesignTokens = defaultDesignTokens\n): StachelockUIDesignTokens {\n const merged = { ...defaults };\n \n // Deep merge function for nested objects\n function deepMerge(target: any, source: any): any {\n if (source && typeof source === 'object' && !Array.isArray(source)) {\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n if (target[key] && typeof target[key] === 'object' && !Array.isArray(target[key])) {\n target[key] = deepMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n }\n \n return deepMerge(merged, customTokens);\n}\n","import type { StachelockUIDesignTokens } from './design-tokens';\n\nexport function generateCSSVariables(tokens: StachelockUIDesignTokens): string {\n let css = ':root {\\n';\n \n // Generate color variables\n if (tokens.colors) {\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n Object.entries(colorShades).forEach(([shade, value]) => {\n const variableName = shade === 'DEFAULT' ? colorName : `${colorName}-${shade}`;\n css += ` --sl-color-${variableName}: ${value};\\n`;\n });\n }\n });\n }\n \n // Generate spacing variables\n if (tokens.spacing) {\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n css += ` --sl-spacing-${name}: ${value};\\n`;\n });\n }\n \n // Generate border radius variables\n if (tokens.borderRadius) {\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'radius' : `radius-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate shadow variables\n if (tokens.shadows) {\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'shadow' : `shadow-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate typography variables\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n css += ` --sl-font-family-${name}: ${fonts.join(', ')};\\n`;\n });\n }\n \n if (tokens.typography.fontSize) {\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n css += ` --sl-font-size-${name}: ${size};\\n`;\n });\n }\n }\n \n // Generate breakpoint variables\n if (tokens.breakpoints) {\n Object.entries(tokens.breakpoints).forEach(([name, value]) => {\n css += ` --sl-breakpoint-${name}: ${value};\\n`;\n });\n }\n \n // Add some computed variables\n css += ` --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-ring-offset-color: #ffffff;\\n`;\n css += ` --sl-ring-width: 2px;\\n`;\n css += ` --sl-outline-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-outline-width: 2px;\\n`;\n \n css += '}\\n\\n';\n \n // Add dark mode variables\n css += '@media (prefers-color-scheme: dark) {\\n';\n css += ' :root {\\n';\n css += ' --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n';\n css += ' }\\n';\n css += '}\\n';\n \n return css;\n}\n\nexport function generateTailwindConfig(tokens: StachelockUIDesignTokens): string {\n let config = 'export default {\\n';\n config += ' prefix: \"sl-\",\\n';\n config += ' theme: {\\n';\n config += ' extend: {\\n';\n \n // Colors\n if (tokens.colors) {\n config += ' colors: {\\n';\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n config += ` \"${colorName}\": {\\n`;\n Object.entries(colorShades).forEach(([shade, value]) => {\n const shadeName = shade === 'DEFAULT' ? 'DEFAULT' : shade;\n config += ` \"${shadeName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n });\n config += ' },\\n';\n }\n \n // Spacing\n if (tokens.spacing) {\n config += ' spacing: {\\n';\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n config += ` \"${name}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Border radius\n if (tokens.borderRadius) {\n config += ' borderRadius: {\\n';\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Shadows\n if (tokens.shadows) {\n config += ' boxShadow: {\\n';\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Typography\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n config += ' fontFamily: {\\n';\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n config += ` \"${name}\": [${fonts.map(f => `\"${f}\"`).join(', ')}],\\n`;\n });\n config += ' },\\n';\n }\n \n if (tokens.typography.fontSize) {\n config += ' fontSize: {\\n';\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n config += ` \"${name}\": \"${size}\",\\n`;\n });\n config += ' },\\n';\n }\n }\n \n config += ' },\\n';\n config += ' },\\n';\n config += '};\\n';\n \n return config;\n}\n","<template>\n <div class=\"sl-relative\" :class=\"sizeClass\">\n <svg viewBox=\"0 0 36 36\" class=\"sl-transform -sl-rotate-90 sl-w-full sl-h-full\">\n <path class=\"sl-fill-none sl-stroke-gray-300\" stroke-width=\"3.8\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" />\n <path\n class=\"sl-fill-none sl-stroke-stachelock-600 sl-stroke-linecap-round sl-transition-[stroke-dasharray] sl-duration-500 sl-ease-out\"\n :stroke-dasharray=\"progress + ', 100'\" stroke-width=\"3.8\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" />\n </svg>\n <div v-if=\"label && label.length > 0\"\n class=\"sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center\">{{ label }}</div>\n <div v-if=\"showProgressLabel\"\n class=\"sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center sl-text-xs\">\n {{ progress }}%\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\n\ntype RadialProgressBarSize = 'xs' | 'sm' | 'md' | 'lg';\n\nconst props = defineProps({\n progress: {\n type: Number,\n default: 0\n },\n label: {\n type: String,\n default: ''\n },\n showProgressLabel: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as () => RadialProgressBarSize,\n default: 'md'\n }\n});\n\nconst sizeClass = computed(() => {\n switch (props.size) {\n case 'xs':\n return 'sl-h-4 sl-w-4'\n case 'sm':\n return 'sl-h-8 sl-w-8'\n case 'md':\n return 'sl-h-12 sl-w-12'\n case 'lg':\n return 'sl-h-16 sl-w-16'\n default:\n return 'sl-h-8 sl-w-8'\n }\n});\n\nconst progress = ref(props.progress);\n\nwatch(() => props.progress, (newValue) => {\n progress.value = newValue;\n});\n</script>\n\n<style scoped>\n</style>\n","<template>\n <section class=\"sl-bg-white sl-rounded-lg sl-shadow sl-p-6\">\n <h2 class=\"sl-text-xl sl-font-semibold sl-mb-4\">All Inputs Showcase</h2>\n\n <div class=\"sl-space-y-8\">\n <!-- Text Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Input</h3>\n <TextInput\n name=\"demoText\"\n label=\"Text Input\"\n placeholder=\"Type something...\"\n v-model:value=\"state.text\"\n />\n </div>\n\n <!-- Text Area Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Area</h3>\n <TextAreaInput\n name=\"demoTextArea\"\n label=\"Text Area\"\n placeholder=\"Write a longer message...\"\n :rows=\"4\"\n :maxlength=\"200\"\n v-model=\"state.textArea\"\n />\n </div>\n\n <!-- Switch Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Switch</h3>\n <SwitchInput\n name=\"demoSwitch\"\n label=\"Enable feature\"\n v-model=\"state.switchOn\"\n textTrue=\"ON\"\n textFalse=\"OFF\"\n />\n </div>\n\n <!-- Checkbox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Checkbox</h3>\n <CheckboxInput\n name=\"demoCheckbox\"\n label=\"I agree to the terms\"\n v-model=\"state.checkbox\"\n />\n </div>\n\n <!-- Select Input -->\n <div class=\"sl-grid sl-grid-cols-1 sl-md:grid-cols-2 sl-gap-6\">\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Single)</h3>\n <SelectInput\n name=\"demoSelect\"\n label=\"Favorite Fruit\"\n placeholder=\"Select a fruit\"\n :items=\"fruits\"\n v-model=\"state.selectedFruit\"\n />\n </div>\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Multiple)</h3>\n <SelectInput\n name=\"demoSelectMulti\"\n label=\"Favorite Languages\"\n placeholder=\"Select languages\"\n :items=\"languages\"\n multiple\n showAll\n v-model=\"state.selectedLanguages\"\n />\n </div>\n </div>\n\n <!-- Combobox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Combobox</h3>\n <ComboboxInput\n name=\"demoCombobox\"\n label=\"Search a City\"\n placeholder=\"Start typing...\"\n :items=\"cities\"\n v-model=\"state.selectedCity\"\n />\n </div>\n\n <!-- Current State -->\n <div class=\"sl-bg-gray-50 sl-rounded-md sl-p-4 sl-text-sm sl-text-gray-700\">\n <div class=\"sl-font-semibold sl-mb-1\">State</div>\n <pre class=\"sl-whitespace-pre-wrap\">{{ state }}</pre>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue'\nimport TextInput from '../UiTextInput.vue'\nimport TextAreaInput from './TextAreaInput.vue'\nimport SwitchInput from './SwitchInput.vue'\nimport CheckboxInput from './CheckboxInput.vue'\nimport SelectInput from './SelectInput.vue'\nimport ComboboxInput from './ComboboxInput.vue'\n\nconst state = reactive({\n text: '',\n textArea: '',\n switchOn: false,\n checkbox: false,\n selectedFruit: null as null | { id: number; name: string },\n selectedLanguages: [] as Array<{ id: number; name: string }>,\n selectedCity: null as null | { id: number; name: string },\n})\n\nconst fruits = [\n { id: 1, name: 'Apple' },\n { id: 2, name: 'Banana' },\n { id: 3, name: 'Cherry' },\n { id: 4, name: 'Durian', disabled: true },\n]\n\nconst languages = [\n { id: 1, name: 'TypeScript' },\n { id: 2, name: 'JavaScript' },\n { id: 3, name: 'Python' },\n { id: 4, name: 'Go' },\n { id: 5, name: 'Rust' },\n]\n\nconst cities = [\n { id: 1, name: 'New York' },\n { id: 2, name: 'San Francisco' },\n { id: 3, name: 'Seattle' },\n { id: 4, name: 'Austin' },\n { id: 5, name: 'Chicago' },\n { id: 6, name: 'Denver' },\n { id: 7, name: 'Miami' },\n { id: 8, name: 'Boston' },\n]\n</script>\n\n\n","import type { App } from 'vue';\nimport type { StachelockUIDesignTokens } from '../config/design-tokens';\nimport { defaultDesignTokens, mergeDesignTokens } from '../config/design-tokens';\nimport { generateCSSVariables } from '../config/css-variables';\n\nexport interface StachelockUIOptions {\n designTokens?: StachelockUIDesignTokens;\n prefix?: string;\n injectCSS?: boolean;\n}\n\nexport interface StachelockUIPlugin {\n install: (app: App, options?: StachelockUIOptions) => void;\n configure: (options: StachelockUIOptions) => void;\n getDesignTokens: () => StachelockUIDesignTokens;\n generateCSS: () => string;\n}\n\nclass StachelockUIPluginImpl implements StachelockUIPlugin {\n private designTokens: StachelockUIDesignTokens;\n private prefix: string = 'sl-';\n private injectCSS: boolean = true;\n\n constructor() {\n // Use imported default tokens\n this.designTokens = defaultDesignTokens;\n }\n\n install(app: App, options: StachelockUIOptions = {}) {\n // Configure with options if provided\n if (options.designTokens || options.prefix !== undefined || options.injectCSS !== undefined) {\n this.configure(options);\n }\n\n // Inject CSS variables if enabled\n if (this.injectCSS) {\n this.injectCSSVariables();\n }\n\n // Make plugin available globally\n app.config.globalProperties.$stachelockUI = this;\n \n // Provide plugin instance to components\n app.provide('stachelockUI', this);\n }\n\n configure(options: StachelockUIOptions) {\n if (options.designTokens) {\n this.designTokens = mergeDesignTokens(options.designTokens, this.designTokens);\n }\n \n if (options.prefix !== undefined) {\n this.prefix = options.prefix;\n }\n \n if (options.injectCSS !== undefined) {\n this.injectCSS = options.injectCSS;\n }\n }\n\n getDesignTokens(): StachelockUIDesignTokens {\n return this.designTokens;\n }\n\n generateCSS(): string {\n return generateCSSVariables(this.designTokens);\n }\n\n private injectCSSVariables() {\n // Create a style element and inject the CSS variables\n const style = document.createElement('style');\n style.textContent = this.generateCSS();\n style.setAttribute('data-stachelock-ui', 'true');\n \n // Remove any existing injected styles\n const existingStyle = document.querySelector('style[data-stachelock-ui=\"true\"]');\n if (existingStyle) {\n existingStyle.remove();\n }\n \n // Inject the new styles\n document.head.appendChild(style);\n }\n}\n\n// Create and export the plugin instance\nexport const StachelockUI: StachelockUIPlugin = new StachelockUIPluginImpl();\n\n// Export the plugin class for advanced usage\nexport { StachelockUIPluginImpl };\n"],"names":["defaultComponentMap","UiTextInput","ComponentRegistry","type","component","loader","mapItem","asyncComponent","defineAsyncComponent","componentRegistry","registerComponent","getComponent","defaultDesignTokens","mergeDesignTokens","customTokens","defaults","merged","deepMerge","target","source","key","generateCSSVariables","tokens","css","colorName","colorShades","shade","value","variableName","name","fonts","size","generateTailwindConfig","config","f","props","__props","sizeClass","computed","progress","ref","watch","newValue","_createElementBlock","_normalizeClass","_openBlock","_hoisted_1","_createElementVNode","_hoisted_3","_toDisplayString","_hoisted_4","state","reactive","fruits","languages","cities","_cache","_hoisted_2","_createVNode","TextInput","$event","TextAreaInput","SwitchInput","CheckboxInput","SelectInput","ComboboxInput","_hoisted_5","StachelockUIPluginImpl","app","options","style","existingStyle","StachelockUI"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/component-registry.ts","../src/config/design-tokens.ts","../src/config/css-variables.ts","../src/components/UiRadialProgressBar.vue","../src/components/inputs/InputsShowcase.vue","../src/plugin/configure.ts"],"sourcesContent":["import { defineAsyncComponent, type Component } from 'vue'\nimport UiTextInput from '../components/UiTextInput.vue'\nimport type { ComponentMap } from '../types/form'\n\n/**\n * Default component map for dynamic forms\n */\nexport const defaultComponentMap: ComponentMap = {\n text: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n email: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n password: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n number: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n tel: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n url: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n textarea: {\n component: 'TextAreaInput',\n loader: () => import('../components/inputs/TextAreaInput.vue')\n },\n select: {\n component: 'SelectInput',\n loader: () => import('../components/inputs/SelectInput.vue')\n },\n combobox: {\n component: 'ComboboxInput',\n loader: () => import('../components/inputs/ComboboxInput.vue')\n },\n checkbox: {\n component: 'CheckboxInput',\n loader: () => import('../components/inputs/CheckboxInput.vue')\n },\n switch: {\n component: 'SwitchInput',\n loader: () => import('../components/inputs/SwitchInput.vue')\n }\n}\n\n/**\n * Component registry class for managing dynamic form components\n */\nexport class ComponentRegistry {\n private componentMap: ComponentMap = { ...defaultComponentMap }\n private loadedComponents: Map<string, Component> = new Map()\n\n /**\n * Register a new component type\n */\n register(type: string, component: string, loader: () => Promise<any>): void {\n this.componentMap[type] = { component, loader }\n // Clear cached component if it exists\n this.loadedComponents.delete(type)\n }\n\n /**\n * Get a component for a field type\n */\n getComponent(type: string): Component | null {\n const mapItem = this.componentMap[type]\n if (!mapItem) {\n console.warn(`Component type \"${type}\" is not registered`)\n return null\n }\n\n // Return cached component if available\n if (this.loadedComponents.has(type)) {\n return this.loadedComponents.get(type)!\n }\n\n // Create async component\n const asyncComponent = defineAsyncComponent({\n loader: mapItem.loader,\n delay: 0\n })\n\n this.loadedComponents.set(type, asyncComponent)\n return asyncComponent\n }\n\n /**\n * Check if a component type is registered\n */\n hasComponent(type: string): boolean {\n return type in this.componentMap\n }\n\n /**\n * Get all registered component types\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.componentMap)\n }\n\n /**\n * Unregister a component type\n */\n unregister(type: string): void {\n delete this.componentMap[type]\n this.loadedComponents.delete(type)\n }\n\n /**\n * Clear all cached components\n */\n clearCache(): void {\n this.loadedComponents.clear()\n }\n}\n\n// Global component registry instance\nexport const componentRegistry = new ComponentRegistry()\n\n/**\n * Register a component type globally\n */\nexport function registerComponent(type: string, component: string, loader: () => Promise<any>): void {\n componentRegistry.register(type, component, loader)\n}\n\n/**\n * Get a component for a field type\n */\nexport function getComponent(type: string): Component | null {\n return componentRegistry.getComponent(type)\n}\n","export interface StachelockUIDesignTokens {\n colors?: {\n primary?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n };\n stachelock?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n '050'?: string;\n };\n [key: string]: any;\n };\n spacing?: {\n [key: string]: string;\n };\n borderRadius?: {\n [key: string]: string;\n };\n shadows?: {\n [key: string]: string;\n };\n typography?: {\n fontFamily?: {\n [key: string]: string[];\n };\n fontSize?: {\n [key: string]: string;\n };\n };\n breakpoints?: {\n [key: string]: string;\n };\n}\n\nexport const defaultDesignTokens: StachelockUIDesignTokens = {\n colors: {\n primary: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n },\n stachelock: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n '050': '#edeff9', // Same as 50 for consistency\n },\n },\n spacing: {\n '0': '0',\n '1': '0.25rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n '32': '8rem',\n '40': '10rem',\n '48': '12rem',\n '56': '14rem',\n '64': '16rem',\n '72': '18rem',\n '80': '20rem',\n '96': '24rem',\n },\n borderRadius: {\n 'none': '0',\n 'sm': '0.125rem',\n 'DEFAULT': '0.25rem',\n 'md': '0.375rem',\n 'lg': '0.5rem',\n 'xl': '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n 'full': '9999px',\n },\n shadows: {\n 'sm': '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n 'DEFAULT': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n 'md': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n 'lg': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n 'xl': '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n 'inner': 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n 'none': 'none',\n },\n typography: {\n fontFamily: {\n sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],\n serif: ['ui-serif', 'Georgia', 'Cambria', 'serif'],\n mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],\n },\n fontSize: {\n 'xs': '0.75rem',\n 'sm': '0.875rem',\n 'base': '1rem',\n 'lg': '1.125rem',\n 'xl': '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '3.75rem',\n '7xl': '4.5rem',\n '8xl': '6rem',\n '9xl': '8rem',\n },\n },\n breakpoints: {\n 'sm': '640px',\n 'md': '768px',\n 'lg': '1024px',\n 'xl': '1280px',\n '2xl': '1536px',\n },\n};\n\nexport function mergeDesignTokens(\n customTokens: StachelockUIDesignTokens,\n defaults: StachelockUIDesignTokens = defaultDesignTokens\n): StachelockUIDesignTokens {\n const merged = { ...defaults };\n \n // Deep merge function for nested objects\n function deepMerge(target: any, source: any): any {\n if (source && typeof source === 'object' && !Array.isArray(source)) {\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n if (target[key] && typeof target[key] === 'object' && !Array.isArray(target[key])) {\n target[key] = deepMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n }\n \n return deepMerge(merged, customTokens);\n}\n","import type { StachelockUIDesignTokens } from './design-tokens';\n\nexport function generateCSSVariables(tokens: StachelockUIDesignTokens): string {\n let css = ':root {\\n';\n \n // Generate color variables\n if (tokens.colors) {\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n Object.entries(colorShades).forEach(([shade, value]) => {\n const variableName = shade === 'DEFAULT' ? colorName : `${colorName}-${shade}`;\n css += ` --sl-color-${variableName}: ${value};\\n`;\n });\n }\n });\n }\n \n // Generate spacing variables\n if (tokens.spacing) {\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n css += ` --sl-spacing-${name}: ${value};\\n`;\n });\n }\n \n // Generate border radius variables\n if (tokens.borderRadius) {\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'radius' : `radius-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate shadow variables\n if (tokens.shadows) {\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'shadow' : `shadow-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate typography variables\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n css += ` --sl-font-family-${name}: ${fonts.join(', ')};\\n`;\n });\n }\n \n if (tokens.typography.fontSize) {\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n css += ` --sl-font-size-${name}: ${size};\\n`;\n });\n }\n }\n \n // Generate breakpoint variables\n if (tokens.breakpoints) {\n Object.entries(tokens.breakpoints).forEach(([name, value]) => {\n css += ` --sl-breakpoint-${name}: ${value};\\n`;\n });\n }\n \n // Add some computed variables\n css += ` --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-ring-offset-color: #ffffff;\\n`;\n css += ` --sl-ring-width: 2px;\\n`;\n css += ` --sl-outline-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-outline-width: 2px;\\n`;\n \n css += '}\\n\\n';\n \n // Add dark mode variables\n css += '@media (prefers-color-scheme: dark) {\\n';\n css += ' :root {\\n';\n css += ' --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n';\n css += ' }\\n';\n css += '}\\n';\n \n return css;\n}\n\nexport function generateTailwindConfig(tokens: StachelockUIDesignTokens): string {\n let config = 'export default {\\n';\n config += ' prefix: \"sl-\",\\n';\n config += ' theme: {\\n';\n config += ' extend: {\\n';\n \n // Colors\n if (tokens.colors) {\n config += ' colors: {\\n';\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n config += ` \"${colorName}\": {\\n`;\n Object.entries(colorShades).forEach(([shade, value]) => {\n const shadeName = shade === 'DEFAULT' ? 'DEFAULT' : shade;\n config += ` \"${shadeName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n });\n config += ' },\\n';\n }\n \n // Spacing\n if (tokens.spacing) {\n config += ' spacing: {\\n';\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n config += ` \"${name}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Border radius\n if (tokens.borderRadius) {\n config += ' borderRadius: {\\n';\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Shadows\n if (tokens.shadows) {\n config += ' boxShadow: {\\n';\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Typography\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n config += ' fontFamily: {\\n';\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n config += ` \"${name}\": [${fonts.map(f => `\"${f}\"`).join(', ')}],\\n`;\n });\n config += ' },\\n';\n }\n \n if (tokens.typography.fontSize) {\n config += ' fontSize: {\\n';\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n config += ` \"${name}\": \"${size}\",\\n`;\n });\n config += ' },\\n';\n }\n }\n \n config += ' },\\n';\n config += ' },\\n';\n config += '};\\n';\n \n return config;\n}\n","<template>\n <div class=\"sl-relative\" :class=\"sizeClass\">\n <svg viewBox=\"0 0 36 36\" class=\"sl-transform -sl-rotate-90 sl-w-full sl-h-full\">\n <path class=\"sl-fill-none sl-stroke-gray-300\" stroke-width=\"3.8\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" />\n <path\n class=\"sl-fill-none sl-stroke-stachelock-600 sl-stroke-linecap-round sl-transition-[stroke-dasharray] sl-duration-500 sl-ease-out\"\n :stroke-dasharray=\"progress + ', 100'\" stroke-width=\"3.8\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" />\n </svg>\n <div v-if=\"label && label.length > 0\"\n class=\"sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center\">{{ label }}</div>\n <div v-if=\"showProgressLabel\"\n class=\"sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center sl-text-xs\">\n {{ progress }}%\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\n\ntype RadialProgressBarSize = 'xs' | 'sm' | 'md' | 'lg';\n\nconst props = defineProps({\n progress: {\n type: Number,\n default: 0\n },\n label: {\n type: String,\n default: ''\n },\n showProgressLabel: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as () => RadialProgressBarSize,\n default: 'md'\n }\n});\n\nconst sizeClass = computed(() => {\n switch (props.size) {\n case 'xs':\n return 'sl-h-4 sl-w-4'\n case 'sm':\n return 'sl-h-8 sl-w-8'\n case 'md':\n return 'sl-h-12 sl-w-12'\n case 'lg':\n return 'sl-h-16 sl-w-16'\n default:\n return 'sl-h-8 sl-w-8'\n }\n});\n\nconst progress = ref(props.progress);\n\nwatch(() => props.progress, (newValue) => {\n progress.value = newValue;\n});\n</script>\n\n<style scoped>\n</style>\n","<template>\n <section class=\"sl-bg-white sl-rounded-lg sl-shadow sl-p-6\">\n <h2 class=\"sl-text-xl sl-font-semibold sl-mb-4\">All Inputs Showcase</h2>\n\n <div class=\"sl-space-y-8\">\n <!-- Text Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Input</h3>\n <TextInput\n name=\"demoText\"\n label=\"Text Input\"\n placeholder=\"Type something...\"\n v-model:value=\"state.text\"\n />\n </div>\n\n <!-- Text Area Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Area</h3>\n <TextAreaInput\n name=\"demoTextArea\"\n label=\"Text Area\"\n placeholder=\"Write a longer message...\"\n :rows=\"4\"\n :maxlength=\"200\"\n v-model=\"state.textArea\"\n />\n </div>\n\n <!-- Switch Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Switch</h3>\n <SwitchInput\n name=\"demoSwitch\"\n label=\"Enable feature\"\n v-model=\"state.switchOn\"\n textTrue=\"ON\"\n textFalse=\"OFF\"\n />\n </div>\n\n <!-- Checkbox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Checkbox</h3>\n <CheckboxInput\n name=\"demoCheckbox\"\n label=\"I agree to the terms\"\n v-model=\"state.checkbox\"\n />\n </div>\n\n <!-- Select Input -->\n <div class=\"sl-grid sl-grid-cols-1 sl-md:grid-cols-2 sl-gap-6\">\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Single)</h3>\n <SelectInput\n name=\"demoSelect\"\n label=\"Favorite Fruit\"\n placeholder=\"Select a fruit\"\n :items=\"fruits\"\n v-model=\"state.selectedFruit\"\n />\n </div>\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Multiple)</h3>\n <SelectInput\n name=\"demoSelectMulti\"\n label=\"Favorite Languages\"\n placeholder=\"Select languages\"\n :items=\"languages\"\n multiple\n showAll\n v-model=\"state.selectedLanguages\"\n />\n </div>\n </div>\n\n <!-- Combobox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Combobox</h3>\n <ComboboxInput\n name=\"demoCombobox\"\n label=\"Search a City\"\n placeholder=\"Start typing...\"\n :items=\"cities\"\n v-model=\"state.selectedCity\"\n />\n </div>\n\n <!-- Current State -->\n <div class=\"sl-bg-gray-50 sl-rounded-md sl-p-4 sl-text-sm sl-text-gray-700\">\n <div class=\"sl-font-semibold sl-mb-1\">State</div>\n <pre class=\"sl-whitespace-pre-wrap\">{{ state }}</pre>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue'\nimport TextInput from '../UiTextInput.vue'\nimport TextAreaInput from './TextAreaInput.vue'\nimport SwitchInput from './SwitchInput.vue'\nimport CheckboxInput from './CheckboxInput.vue'\nimport SelectInput from './SelectInput.vue'\nimport ComboboxInput from './ComboboxInput.vue'\n\nconst state = reactive({\n text: '',\n textArea: '',\n switchOn: false,\n checkbox: false,\n selectedFruit: null as null | { id: number; name: string },\n selectedLanguages: [] as Array<{ id: number; name: string }>,\n selectedCity: null as null | { id: number; name: string },\n})\n\nconst fruits = [\n { id: 1, name: 'Apple' },\n { id: 2, name: 'Banana' },\n { id: 3, name: 'Cherry' },\n { id: 4, name: 'Durian', disabled: true },\n]\n\nconst languages = [\n { id: 1, name: 'TypeScript' },\n { id: 2, name: 'JavaScript' },\n { id: 3, name: 'Python' },\n { id: 4, name: 'Go' },\n { id: 5, name: 'Rust' },\n]\n\nconst cities = [\n { id: 1, name: 'New York' },\n { id: 2, name: 'San Francisco' },\n { id: 3, name: 'Seattle' },\n { id: 4, name: 'Austin' },\n { id: 5, name: 'Chicago' },\n { id: 6, name: 'Denver' },\n { id: 7, name: 'Miami' },\n { id: 8, name: 'Boston' },\n]\n</script>\n\n\n","import type { App } from 'vue';\nimport type { StachelockUIDesignTokens } from '../config/design-tokens';\nimport { defaultDesignTokens, mergeDesignTokens } from '../config/design-tokens';\nimport { generateCSSVariables } from '../config/css-variables';\n\nexport interface StachelockUIOptions {\n designTokens?: StachelockUIDesignTokens;\n prefix?: string;\n injectCSS?: boolean;\n}\n\nexport interface StachelockUIPlugin {\n install: (app: App, options?: StachelockUIOptions) => void;\n configure: (options: StachelockUIOptions) => void;\n getDesignTokens: () => StachelockUIDesignTokens;\n generateCSS: () => string;\n}\n\nclass StachelockUIPluginImpl implements StachelockUIPlugin {\n private designTokens: StachelockUIDesignTokens;\n private prefix: string = 'sl-';\n private injectCSS: boolean = true;\n\n constructor() {\n // Use imported default tokens\n this.designTokens = defaultDesignTokens;\n }\n\n install(app: App, options: StachelockUIOptions = {}) {\n // Configure with options if provided\n if (options.designTokens || options.prefix !== undefined || options.injectCSS !== undefined) {\n this.configure(options);\n }\n\n // Inject CSS variables if enabled\n if (this.injectCSS) {\n this.injectCSSVariables();\n }\n\n // Make plugin available globally\n app.config.globalProperties.$stachelockUI = this;\n \n // Provide plugin instance to components\n app.provide('stachelockUI', this);\n }\n\n configure(options: StachelockUIOptions) {\n if (options.designTokens) {\n this.designTokens = mergeDesignTokens(this.designTokens, options.designTokens);\n }\n \n if (options.prefix !== undefined) {\n this.prefix = options.prefix;\n }\n \n if (options.injectCSS !== undefined) {\n this.injectCSS = options.injectCSS;\n }\n }\n\n getDesignTokens(): StachelockUIDesignTokens {\n return this.designTokens;\n }\n\n generateCSS(): string {\n return generateCSSVariables(this.designTokens);\n }\n\n private injectCSSVariables() {\n // Create a style element and inject the CSS variables\n const style = document.createElement('style');\n style.textContent = this.generateCSS();\n style.setAttribute('data-stachelock-ui', 'true');\n \n // Remove any existing injected styles\n const existingStyle = document.querySelector('style[data-stachelock-ui=\"true\"]');\n if (existingStyle) {\n existingStyle.remove();\n }\n \n // Inject the new styles\n document.head.appendChild(style);\n }\n}\n\n// Create and export the plugin instance\nexport const StachelockUI: StachelockUIPlugin = new StachelockUIPluginImpl();\n\n// Export the plugin class for advanced usage\nexport { StachelockUIPluginImpl };\n"],"names":["defaultComponentMap","UiTextInput","ComponentRegistry","type","component","loader","mapItem","asyncComponent","defineAsyncComponent","componentRegistry","registerComponent","getComponent","defaultDesignTokens","mergeDesignTokens","customTokens","defaults","merged","deepMerge","target","source","key","generateCSSVariables","tokens","css","colorName","colorShades","shade","value","variableName","name","fonts","size","generateTailwindConfig","config","f","props","__props","sizeClass","computed","progress","ref","watch","newValue","_createElementBlock","_normalizeClass","_openBlock","_hoisted_1","_createElementVNode","_hoisted_3","_toDisplayString","_hoisted_4","state","reactive","fruits","languages","cities","_cache","_hoisted_2","_createVNode","TextInput","$event","TextAreaInput","SwitchInput","CheckboxInput","SelectInput","ComboboxInput","_hoisted_5","StachelockUIPluginImpl","app","options","style","existingStyle","StachelockUI"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stachelock/ui",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "A comprehensive Vue 3 UI component library built with Tailwind CSS",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",