@tekton-ui/core 0.2.0
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/README.md +758 -0
- package/dist/blueprint.d.ts +44 -0
- package/dist/blueprint.d.ts.map +1 -0
- package/dist/blueprint.js +163 -0
- package/dist/blueprint.js.map +1 -0
- package/dist/component-schemas.d.ts +78 -0
- package/dist/component-schemas.d.ts.map +1 -0
- package/dist/component-schemas.js +1037 -0
- package/dist/component-schemas.js.map +1 -0
- package/dist/css-generator.d.ts +42 -0
- package/dist/css-generator.d.ts.map +1 -0
- package/dist/css-generator.js +339 -0
- package/dist/css-generator.js.map +1 -0
- package/dist/icon-library.d.ts +109 -0
- package/dist/icon-library.d.ts.map +1 -0
- package/dist/icon-library.js +204 -0
- package/dist/icon-library.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/layout-css-generator.d.ts +158 -0
- package/dist/layout-css-generator.d.ts.map +1 -0
- package/dist/layout-css-generator.js +901 -0
- package/dist/layout-css-generator.js.map +1 -0
- package/dist/layout-resolver.d.ts +92 -0
- package/dist/layout-resolver.d.ts.map +1 -0
- package/dist/layout-resolver.js +275 -0
- package/dist/layout-resolver.js.map +1 -0
- package/dist/layout-tokens/index.d.ts +16 -0
- package/dist/layout-tokens/index.d.ts.map +1 -0
- package/dist/layout-tokens/index.js +16 -0
- package/dist/layout-tokens/index.js.map +1 -0
- package/dist/layout-tokens/keyboard.d.ts +254 -0
- package/dist/layout-tokens/keyboard.d.ts.map +1 -0
- package/dist/layout-tokens/keyboard.js +407 -0
- package/dist/layout-tokens/keyboard.js.map +1 -0
- package/dist/layout-tokens/mobile-shells.d.ts +78 -0
- package/dist/layout-tokens/mobile-shells.d.ts.map +1 -0
- package/dist/layout-tokens/mobile-shells.js +635 -0
- package/dist/layout-tokens/mobile-shells.js.map +1 -0
- package/dist/layout-tokens/pages.d.ts +100 -0
- package/dist/layout-tokens/pages.d.ts.map +1 -0
- package/dist/layout-tokens/pages.js +576 -0
- package/dist/layout-tokens/pages.js.map +1 -0
- package/dist/layout-tokens/responsive.d.ts +109 -0
- package/dist/layout-tokens/responsive.d.ts.map +1 -0
- package/dist/layout-tokens/responsive.js +167 -0
- package/dist/layout-tokens/responsive.js.map +1 -0
- package/dist/layout-tokens/safe-area.d.ts +156 -0
- package/dist/layout-tokens/safe-area.d.ts.map +1 -0
- package/dist/layout-tokens/safe-area.js +316 -0
- package/dist/layout-tokens/safe-area.js.map +1 -0
- package/dist/layout-tokens/sections-advanced.d.ts +277 -0
- package/dist/layout-tokens/sections-advanced.d.ts.map +1 -0
- package/dist/layout-tokens/sections-advanced.js +593 -0
- package/dist/layout-tokens/sections-advanced.js.map +1 -0
- package/dist/layout-tokens/sections.d.ts +137 -0
- package/dist/layout-tokens/sections.d.ts.map +1 -0
- package/dist/layout-tokens/sections.js +694 -0
- package/dist/layout-tokens/sections.js.map +1 -0
- package/dist/layout-tokens/shells.d.ts +77 -0
- package/dist/layout-tokens/shells.d.ts.map +1 -0
- package/dist/layout-tokens/shells.js +408 -0
- package/dist/layout-tokens/shells.js.map +1 -0
- package/dist/layout-tokens/touch-target.d.ts +119 -0
- package/dist/layout-tokens/touch-target.d.ts.map +1 -0
- package/dist/layout-tokens/touch-target.js +156 -0
- package/dist/layout-tokens/touch-target.js.map +1 -0
- package/dist/layout-tokens/types.d.ts +632 -0
- package/dist/layout-tokens/types.d.ts.map +1 -0
- package/dist/layout-tokens/types.js +49 -0
- package/dist/layout-tokens/types.js.map +1 -0
- package/dist/layout-validation.d.ts +1547 -0
- package/dist/layout-validation.d.ts.map +1 -0
- package/dist/layout-validation.js +628 -0
- package/dist/layout-validation.js.map +1 -0
- package/dist/render.d.ts +23 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +244 -0
- package/dist/render.js.map +1 -0
- package/dist/schema-validation.d.ts +208 -0
- package/dist/schema-validation.d.ts.map +1 -0
- package/dist/schema-validation.js +205 -0
- package/dist/schema-validation.js.map +1 -0
- package/dist/screen-generation/generators/css-in-js-generator.d.ts +82 -0
- package/dist/screen-generation/generators/css-in-js-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/css-in-js-generator.js +335 -0
- package/dist/screen-generation/generators/css-in-js-generator.js.map +1 -0
- package/dist/screen-generation/generators/index.d.ts +13 -0
- package/dist/screen-generation/generators/index.d.ts.map +1 -0
- package/dist/screen-generation/generators/index.js +32 -0
- package/dist/screen-generation/generators/index.js.map +1 -0
- package/dist/screen-generation/generators/react-generator.d.ts +100 -0
- package/dist/screen-generation/generators/react-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/react-generator.js +379 -0
- package/dist/screen-generation/generators/react-generator.js.map +1 -0
- package/dist/screen-generation/generators/tailwind-generator.d.ts +105 -0
- package/dist/screen-generation/generators/tailwind-generator.d.ts.map +1 -0
- package/dist/screen-generation/generators/tailwind-generator.js +355 -0
- package/dist/screen-generation/generators/tailwind-generator.js.map +1 -0
- package/dist/screen-generation/generators/types.d.ts +136 -0
- package/dist/screen-generation/generators/types.d.ts.map +1 -0
- package/dist/screen-generation/generators/types.js +18 -0
- package/dist/screen-generation/generators/types.js.map +1 -0
- package/dist/screen-generation/generators/utils.d.ts +187 -0
- package/dist/screen-generation/generators/utils.d.ts.map +1 -0
- package/dist/screen-generation/generators/utils.js +312 -0
- package/dist/screen-generation/generators/utils.js.map +1 -0
- package/dist/screen-generation/index.d.ts +14 -0
- package/dist/screen-generation/index.d.ts.map +1 -0
- package/dist/screen-generation/index.js +33 -0
- package/dist/screen-generation/index.js.map +1 -0
- package/dist/screen-generation/resolver/component-resolver.d.ts +157 -0
- package/dist/screen-generation/resolver/component-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/component-resolver.js +295 -0
- package/dist/screen-generation/resolver/component-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/index.d.ts +10 -0
- package/dist/screen-generation/resolver/index.d.ts.map +1 -0
- package/dist/screen-generation/resolver/index.js +46 -0
- package/dist/screen-generation/resolver/index.js.map +1 -0
- package/dist/screen-generation/resolver/layout-resolver.d.ts +155 -0
- package/dist/screen-generation/resolver/layout-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/layout-resolver.js +193 -0
- package/dist/screen-generation/resolver/layout-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/screen-resolver.d.ts +174 -0
- package/dist/screen-generation/resolver/screen-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/screen-resolver.js +373 -0
- package/dist/screen-generation/resolver/screen-resolver.js.map +1 -0
- package/dist/screen-generation/resolver/token-resolver.d.ts +170 -0
- package/dist/screen-generation/resolver/token-resolver.d.ts.map +1 -0
- package/dist/screen-generation/resolver/token-resolver.js +260 -0
- package/dist/screen-generation/resolver/token-resolver.js.map +1 -0
- package/dist/screen-generation/types.d.ts +116 -0
- package/dist/screen-generation/types.d.ts.map +1 -0
- package/dist/screen-generation/types.js +33 -0
- package/dist/screen-generation/types.js.map +1 -0
- package/dist/screen-generation/validators.d.ts +286 -0
- package/dist/screen-generation/validators.d.ts.map +1 -0
- package/dist/screen-generation/validators.js +323 -0
- package/dist/screen-generation/validators.js.map +1 -0
- package/dist/screen-templates/__tests__/registry.test.d.ts +6 -0
- package/dist/screen-templates/__tests__/registry.test.d.ts.map +1 -0
- package/dist/screen-templates/__tests__/registry.test.js +247 -0
- package/dist/screen-templates/__tests__/registry.test.js.map +1 -0
- package/dist/screen-templates/__tests__/templates.test.d.ts +6 -0
- package/dist/screen-templates/__tests__/templates.test.d.ts.map +1 -0
- package/dist/screen-templates/__tests__/templates.test.js +179 -0
- package/dist/screen-templates/__tests__/templates.test.js.map +1 -0
- package/dist/screen-templates/index.d.ts +39 -0
- package/dist/screen-templates/index.d.ts.map +1 -0
- package/dist/screen-templates/index.js +79 -0
- package/dist/screen-templates/index.js.map +1 -0
- package/dist/screen-templates/registry.d.ts +177 -0
- package/dist/screen-templates/registry.d.ts.map +1 -0
- package/dist/screen-templates/registry.js +274 -0
- package/dist/screen-templates/registry.js.map +1 -0
- package/dist/screen-templates/templates/account/index.d.ts +6 -0
- package/dist/screen-templates/templates/account/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/account/index.js +6 -0
- package/dist/screen-templates/templates/account/index.js.map +1 -0
- package/dist/screen-templates/templates/account/profile.d.ts +23 -0
- package/dist/screen-templates/templates/account/profile.d.ts.map +1 -0
- package/dist/screen-templates/templates/account/profile.js +249 -0
- package/dist/screen-templates/templates/account/profile.js.map +1 -0
- package/dist/screen-templates/templates/auth/forgot-password.d.ts +23 -0
- package/dist/screen-templates/templates/auth/forgot-password.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/forgot-password.js +203 -0
- package/dist/screen-templates/templates/auth/forgot-password.js.map +1 -0
- package/dist/screen-templates/templates/auth/index.d.ts +9 -0
- package/dist/screen-templates/templates/auth/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/index.js +9 -0
- package/dist/screen-templates/templates/auth/index.js.map +1 -0
- package/dist/screen-templates/templates/auth/login.d.ts +24 -0
- package/dist/screen-templates/templates/auth/login.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/login.js +254 -0
- package/dist/screen-templates/templates/auth/login.js.map +1 -0
- package/dist/screen-templates/templates/auth/signup.d.ts +24 -0
- package/dist/screen-templates/templates/auth/signup.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/signup.js +315 -0
- package/dist/screen-templates/templates/auth/signup.js.map +1 -0
- package/dist/screen-templates/templates/auth/verification.d.ts +23 -0
- package/dist/screen-templates/templates/auth/verification.d.ts.map +1 -0
- package/dist/screen-templates/templates/auth/verification.js +239 -0
- package/dist/screen-templates/templates/auth/verification.js.map +1 -0
- package/dist/screen-templates/templates/feedback/confirmation.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/confirmation.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/confirmation.js +107 -0
- package/dist/screen-templates/templates/feedback/confirmation.js.map +1 -0
- package/dist/screen-templates/templates/feedback/empty.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/empty.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/empty.js +90 -0
- package/dist/screen-templates/templates/feedback/empty.js.map +1 -0
- package/dist/screen-templates/templates/feedback/error.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/error.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/error.js +99 -0
- package/dist/screen-templates/templates/feedback/error.js.map +1 -0
- package/dist/screen-templates/templates/feedback/index.d.ts +10 -0
- package/dist/screen-templates/templates/feedback/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/index.js +10 -0
- package/dist/screen-templates/templates/feedback/index.js.map +1 -0
- package/dist/screen-templates/templates/feedback/loading.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/loading.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/loading.js +77 -0
- package/dist/screen-templates/templates/feedback/loading.js.map +1 -0
- package/dist/screen-templates/templates/feedback/success.d.ts +9 -0
- package/dist/screen-templates/templates/feedback/success.d.ts.map +1 -0
- package/dist/screen-templates/templates/feedback/success.js +99 -0
- package/dist/screen-templates/templates/feedback/success.js.map +1 -0
- package/dist/screen-templates/templates/home/index.d.ts +6 -0
- package/dist/screen-templates/templates/home/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/home/index.js +6 -0
- package/dist/screen-templates/templates/home/index.js.map +1 -0
- package/dist/screen-templates/templates/home/landing.d.ts +24 -0
- package/dist/screen-templates/templates/home/landing.d.ts.map +1 -0
- package/dist/screen-templates/templates/home/landing.js +197 -0
- package/dist/screen-templates/templates/home/landing.js.map +1 -0
- package/dist/screen-templates/templates/settings/index.d.ts +6 -0
- package/dist/screen-templates/templates/settings/index.d.ts.map +1 -0
- package/dist/screen-templates/templates/settings/index.js +6 -0
- package/dist/screen-templates/templates/settings/index.js.map +1 -0
- package/dist/screen-templates/templates/settings/preferences.d.ts +24 -0
- package/dist/screen-templates/templates/settings/preferences.d.ts.map +1 -0
- package/dist/screen-templates/templates/settings/preferences.js +265 -0
- package/dist/screen-templates/templates/settings/preferences.js.map +1 -0
- package/dist/screen-templates/types.d.ts +229 -0
- package/dist/screen-templates/types.d.ts.map +1 -0
- package/dist/screen-templates/types.js +7 -0
- package/dist/screen-templates/types.js.map +1 -0
- package/dist/theme-v2.d.ts +228 -0
- package/dist/theme-v2.d.ts.map +1 -0
- package/dist/theme-v2.js +158 -0
- package/dist/theme-v2.js.map +1 -0
- package/dist/theme.d.ts +60 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +76 -0
- package/dist/theme.js.map +1 -0
- package/dist/token-resolver.d.ts +69 -0
- package/dist/token-resolver.d.ts.map +1 -0
- package/dist/token-resolver.js +122 -0
- package/dist/token-resolver.js.map +1 -0
- package/dist/token-validation.d.ts +432 -0
- package/dist/token-validation.d.ts.map +1 -0
- package/dist/token-validation.js +140 -0
- package/dist/token-validation.js.map +1 -0
- package/dist/tokens.d.ts +158 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +10 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tekton-ui/core - Icon Library Module
|
|
3
|
+
* Load and manage icon library definitions from .moai/icon-libraries/generated/
|
|
4
|
+
* [SPEC-ICON-001]
|
|
5
|
+
*/
|
|
6
|
+
import { readFileSync, readdirSync, existsSync } from 'node:fs';
|
|
7
|
+
import { join, resolve } from 'node:path';
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Icon Library Directory Resolution
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Find project root by looking for .moai directory
|
|
13
|
+
*/
|
|
14
|
+
function findProjectRoot(startDir) {
|
|
15
|
+
let currentDir = startDir;
|
|
16
|
+
const root = '/';
|
|
17
|
+
while (currentDir !== root) {
|
|
18
|
+
if (existsSync(join(currentDir, '.moai'))) {
|
|
19
|
+
return currentDir;
|
|
20
|
+
}
|
|
21
|
+
currentDir = resolve(currentDir, '..');
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get icon libraries directory path
|
|
27
|
+
* Returns .moai/icon-libraries/generated/ from project root
|
|
28
|
+
*/
|
|
29
|
+
function getIconLibrariesDir() {
|
|
30
|
+
const projectRoot = findProjectRoot(process.cwd());
|
|
31
|
+
if (!projectRoot) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return join(projectRoot, '.moai', 'icon-libraries', 'generated');
|
|
35
|
+
}
|
|
36
|
+
// ============================================================================
|
|
37
|
+
// Icon Library Loading Functions
|
|
38
|
+
// ============================================================================
|
|
39
|
+
/**
|
|
40
|
+
* Load icon library from .moai/icon-libraries/generated/ directory
|
|
41
|
+
* @param libraryId - Icon library identifier (kebab-case, e.g., "lucide", "heroicons")
|
|
42
|
+
* @returns Loaded icon library or null if not found
|
|
43
|
+
*/
|
|
44
|
+
export function loadIconLibrary(libraryId) {
|
|
45
|
+
// Security: Prevent path traversal attacks
|
|
46
|
+
if (!libraryId || !/^[a-z0-9-]+$/.test(libraryId)) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const iconLibrariesDir = getIconLibrariesDir();
|
|
50
|
+
if (!iconLibrariesDir || !existsSync(iconLibrariesDir)) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const libraryPath = join(iconLibrariesDir, `${libraryId}.json`);
|
|
54
|
+
if (!existsSync(libraryPath)) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const content = readFileSync(libraryPath, 'utf-8');
|
|
59
|
+
const library = JSON.parse(content);
|
|
60
|
+
// Basic validation
|
|
61
|
+
if (!library.id || !library.name || !library.frameworks) {
|
|
62
|
+
console.warn(`Icon library ${libraryId} has invalid structure`);
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
return library;
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.error(`Failed to load icon library ${libraryId}:`, error);
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* List all available icon libraries from .moai/icon-libraries/generated/
|
|
74
|
+
* @returns Array of icon library metadata
|
|
75
|
+
*/
|
|
76
|
+
export function listIconLibraries() {
|
|
77
|
+
const iconLibrariesDir = getIconLibrariesDir();
|
|
78
|
+
if (!iconLibrariesDir || !existsSync(iconLibrariesDir)) {
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
const files = readdirSync(iconLibrariesDir).filter(f => f.endsWith('.json'));
|
|
82
|
+
const libraries = [];
|
|
83
|
+
for (const file of files) {
|
|
84
|
+
const libraryId = file.replace('.json', '');
|
|
85
|
+
const library = loadIconLibrary(libraryId);
|
|
86
|
+
if (library) {
|
|
87
|
+
libraries.push({
|
|
88
|
+
id: library.id,
|
|
89
|
+
name: library.name,
|
|
90
|
+
description: library.description,
|
|
91
|
+
version: library.version,
|
|
92
|
+
license: library.license,
|
|
93
|
+
totalIcons: library.totalIcons,
|
|
94
|
+
categories: library.categories,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return libraries;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Check if an icon library exists
|
|
102
|
+
* @param libraryId - Icon library identifier
|
|
103
|
+
* @returns true if icon library exists
|
|
104
|
+
*/
|
|
105
|
+
export function iconLibraryExists(libraryId) {
|
|
106
|
+
if (!libraryId || !/^[a-z0-9-]+$/.test(libraryId)) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
const iconLibrariesDir = getIconLibrariesDir();
|
|
110
|
+
if (!iconLibrariesDir) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return existsSync(join(iconLibrariesDir, `${libraryId}.json`));
|
|
114
|
+
}
|
|
115
|
+
// ============================================================================
|
|
116
|
+
// Icon Lookup Utilities
|
|
117
|
+
// ============================================================================
|
|
118
|
+
/**
|
|
119
|
+
* Find an icon by name or alias in a library
|
|
120
|
+
* @param library - Icon library to search
|
|
121
|
+
* @param iconNameOrAlias - Icon name or alias to find
|
|
122
|
+
* @returns Icon name if found, null otherwise
|
|
123
|
+
*/
|
|
124
|
+
export function findIcon(library, iconNameOrAlias) {
|
|
125
|
+
const normalizedSearch = iconNameOrAlias.toLowerCase();
|
|
126
|
+
// Direct match
|
|
127
|
+
if (library.icons[normalizedSearch]) {
|
|
128
|
+
return normalizedSearch;
|
|
129
|
+
}
|
|
130
|
+
// Search by alias
|
|
131
|
+
for (const [iconName, icon] of Object.entries(library.icons)) {
|
|
132
|
+
if (icon.aliases.some(alias => alias.toLowerCase() === normalizedSearch)) {
|
|
133
|
+
return iconName;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get icons by category
|
|
140
|
+
* @param library - Icon library to search
|
|
141
|
+
* @param category - Category to filter by
|
|
142
|
+
* @returns Array of icon names in the category
|
|
143
|
+
*/
|
|
144
|
+
export function getIconsByCategory(library, category) {
|
|
145
|
+
return Object.entries(library.icons)
|
|
146
|
+
.filter(([, icon]) => icon.category === category)
|
|
147
|
+
.map(([name]) => name);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Search icons by tag
|
|
151
|
+
* @param library - Icon library to search
|
|
152
|
+
* @param tag - Tag to search for
|
|
153
|
+
* @returns Array of icon names matching the tag
|
|
154
|
+
*/
|
|
155
|
+
export function searchIconsByTag(library, tag) {
|
|
156
|
+
const normalizedTag = tag.toLowerCase();
|
|
157
|
+
return Object.entries(library.icons)
|
|
158
|
+
.filter(([, icon]) => icon.tags.some(t => t.toLowerCase().includes(normalizedTag)))
|
|
159
|
+
.map(([name]) => name);
|
|
160
|
+
}
|
|
161
|
+
// ============================================================================
|
|
162
|
+
// Import Statement Generation
|
|
163
|
+
// ============================================================================
|
|
164
|
+
/**
|
|
165
|
+
* Generate import statement for icons
|
|
166
|
+
* @param library - Icon library
|
|
167
|
+
* @param iconNames - Array of icon names to import
|
|
168
|
+
* @param framework - Target framework ('react' | 'vue')
|
|
169
|
+
* @returns Import statement string
|
|
170
|
+
*/
|
|
171
|
+
export function generateImportStatement(library, iconNames, framework) {
|
|
172
|
+
const config = library.frameworks[framework];
|
|
173
|
+
if (!config) {
|
|
174
|
+
return '';
|
|
175
|
+
}
|
|
176
|
+
// Convert icon names to component names
|
|
177
|
+
const componentNames = iconNames.map(name => {
|
|
178
|
+
const pascalName = name
|
|
179
|
+
.split('-')
|
|
180
|
+
.map(part => part.charAt(0).toUpperCase() + part.slice(1))
|
|
181
|
+
.join('');
|
|
182
|
+
return config.componentPattern.replace('{PascalName}', pascalName);
|
|
183
|
+
});
|
|
184
|
+
return config.importStatement.replace('{icons}', componentNames.join(', '));
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get the package name for an icon library
|
|
188
|
+
* @param library - Icon library
|
|
189
|
+
* @param framework - Target framework
|
|
190
|
+
* @param variant - Optional variant (for heroicons: 'outline' | 'solid' | 'mini')
|
|
191
|
+
* @returns Package name string
|
|
192
|
+
*/
|
|
193
|
+
export function getPackageName(library, framework, variant) {
|
|
194
|
+
const config = library.frameworks[framework];
|
|
195
|
+
if (!config) {
|
|
196
|
+
return '';
|
|
197
|
+
}
|
|
198
|
+
// If variant specified and available, use it
|
|
199
|
+
if (variant && config.variants && config.variants[variant]) {
|
|
200
|
+
return config.variants[variant];
|
|
201
|
+
}
|
|
202
|
+
return config.packageName;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=icon-library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-library.js","sourceRoot":"","sources":["../src/icon-library.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tekton-ui/core
|
|
3
|
+
* Minimal design system pipeline: Theme -> Blueprint -> Screen
|
|
4
|
+
*
|
|
5
|
+
* 80% LOC reduction from original codebase
|
|
6
|
+
* No external dependencies (Babel, Prettier removed)
|
|
7
|
+
*/
|
|
8
|
+
export type { OKLCHColor, Blueprint, ComponentNode, LayoutType, RenderResult, RenderOptions, ThemeLegacy, ThemeMetaLegacy, } from './types.js';
|
|
9
|
+
export { loadTheme, listThemes, themeExists, oklchToCSS, loadThemeV2, listThemesV2, themeExistsV2, oklchToCSSV2, resolveTokenRef, type Theme, type ThemeMeta, type OKLCHColor as OKLCHColorV2, type ThemeV2, type ThemeMetaV2, type DesignDNA, type AtomicTokensV2, type SemanticTokensV2, type ComponentTokensV2, type StateLayerTokens, type MotionTokens, type ElevationTokens, type BorderTokens, type TypographyTokens, type DensityTokens, type EffectsTokens, type AIContext, type DarkModeOverrides, isBuiltinTheme, generateCSSVariables, BUILTIN_THEMES, type BuiltinThemeId, } from './theme.js';
|
|
10
|
+
export { createBlueprint, validateBlueprint, isValidComponent, getLayoutSlots, LAYOUTS, COMPONENT_CATALOG, type LayoutSlot, type ValidationResult, type CreateBlueprintInput, } from './blueprint.js';
|
|
11
|
+
export { render, renderWithTheme, renderSingleComponent, renderComponents } from './render.js';
|
|
12
|
+
export { resolveToken, resolveWithFallback, type TokenReference } from './token-resolver.js';
|
|
13
|
+
export { validateTheme, ThemeWithTokensSchema, type ValidationResult as TokenValidationResult, } from './token-validation.js';
|
|
14
|
+
export { generateThemeCSS } from './css-generator.js';
|
|
15
|
+
export type { AtomicTokens, SemanticTokens, ComponentTokens, ThemeWithTokens } from './tokens.js';
|
|
16
|
+
export type { PropDefinition, ComponentSchema, A11yRequirements, TokenBindings, } from './component-schemas.js';
|
|
17
|
+
export { PRIMITIVE_COMPONENTS, COMPOSED_COMPONENTS, ALL_COMPONENTS, getComponentSchema, } from './component-schemas.js';
|
|
18
|
+
export { validateComponentSchema, validateAllSchemas, validateProp, validateA11y, validateTokenBindings, getValidationSummary, assertValidSchema, assertAllSchemasValid, PropDefinitionSchema, A11yRequirementsSchema, TokenBindingsSchema, ComponentSchemaZod, type ValidationResult as SchemaValidationResult, } from './schema-validation.js';
|
|
19
|
+
export type { ResponsiveToken, ResponsiveConfig, ShellRegion, ShellRegionPosition, ShellConfig, ShellToken, SectionSlot, PagePurpose, PageConfig, PageLayoutToken, SectionCSS, SectionType, SectionPatternToken, MobileShellToken, SafeAreaConfig, SafeAreaDefaults, SafeAreaEdges, StatusBarConfig, NavigationBarConfig, SystemUIConfig, KeyboardConfig, KeyboardAnimationConfig, BottomTabConfig, BottomTabItemConfig, TouchTargetConfig, HitSlopConfig, } from './layout-tokens/types.js';
|
|
20
|
+
export { SHELL_WEB_APP, SHELL_WEB_MARKETING, SHELL_WEB_AUTH, SHELL_WEB_DASHBOARD, SHELL_WEB_ADMIN, SHELL_WEB_MINIMAL, getShellToken, getAllShellTokens, getShellsByPlatform, } from './layout-tokens/shells.js';
|
|
21
|
+
export { PAGE_JOB, PAGE_RESOURCE, PAGE_DASHBOARD, PAGE_SETTINGS, PAGE_DETAIL, PAGE_EMPTY, PAGE_WIZARD, PAGE_ONBOARDING, getPageLayoutToken, getAllPageLayoutTokens, getPagesByPurpose, getPageSections, } from './layout-tokens/pages.js';
|
|
22
|
+
export { SECTION_GRID_2, SECTION_GRID_3, SECTION_GRID_4, SECTION_GRID_AUTO, SECTION_SPLIT_30_70, SECTION_SPLIT_50_50, SECTION_SPLIT_70_30, SECTION_STACK_START, SECTION_STACK_CENTER, SECTION_STACK_END, SECTION_SIDEBAR_LEFT, SECTION_SIDEBAR_RIGHT, SECTION_CONTAINER, getSectionPatternToken, getAllSectionPatternTokens, getSectionsByType, getSectionCSS, } from './layout-tokens/sections.js';
|
|
23
|
+
export { BREAKPOINT_SM, BREAKPOINT_MD, BREAKPOINT_LG, BREAKPOINT_XL, BREAKPOINT_2XL, BREAKPOINT_VALUES, getResponsiveToken, getAllResponsiveTokens, getBreakpointValue, getBreakpointMediaQuery, sortBreakpointsBySize, } from './layout-tokens/responsive.js';
|
|
24
|
+
export { SHELL_MOBILE_APP, SHELL_MOBILE_FULLSCREEN, SHELL_MOBILE_MODAL, SHELL_MOBILE_TAB, SHELL_MOBILE_DRAWER, SHELL_MOBILE_DETAIL, getMobileShellToken, getAllMobileShellTokens, getMobileShellsByOS, } from './layout-tokens/mobile-shells.js';
|
|
25
|
+
export type { SafeAreaInsets, DeviceType } from './layout-tokens/safe-area.js';
|
|
26
|
+
export { detectDeviceType, getSafeAreaTop, getSafeAreaBottom, getSafeAreaInsets, applySafeAreaToLayout, useSafeArea, } from './layout-tokens/safe-area.js';
|
|
27
|
+
export type { KeyboardState, KeyboardEventType, KeyboardEventListener, KeyboardAwareLayout, } from './layout-tokens/keyboard.js';
|
|
28
|
+
export { getKeyboardHeight, applyKeyboardAvoidance, useKeyboardAvoidance, addKeyboardListener, getKeyboardAnimationDuration, getKeyboardAwareBottomSpacing, getDefaultKeyboardAnimation, isKeyboardVisible, getKeyboardProgressMode, } from './layout-tokens/keyboard.js';
|
|
29
|
+
export type { AccessibilityGuideline, TouchTargetElement } from './layout-tokens/touch-target.js';
|
|
30
|
+
export { validateTouchTarget, applyMinTouchTarget, getHitSlop, getMinTouchTargetForScale, isAccessibleTouchTarget, warnIfBelowMinimum, } from './layout-tokens/touch-target.js';
|
|
31
|
+
export { validateShellToken, validatePageLayoutToken, validateSectionPatternToken, validateTokenReference, validateMobileShellToken, validateLLMShellInput, validateLLMPageInput, validateLLMSectionInput, detectCircularRefs, validateLayoutHierarchy, safeValidate, ShellTokenSchema, PageLayoutTokenSchema, SectionPatternTokenSchema, TokenReferenceSchema, ShellRegionSchema, ShellRegionPositionSchema, ShellConfigSchema, PagePurposeSchema, SectionSlotSchema, PageConfigSchema, SectionTypeSchema, SectionCSSSchema, ResponsiveTokenSchema, LLMShellInputSchema, LLMPageInputSchema, LLMSectionInputSchema, MobileShellTokenSchema, SafeAreaConfigSchema, SafeAreaDefaultsSchema, SafeAreaEdgesSchema, StatusBarConfigSchema, NavigationBarConfigSchema, SystemUIConfigSchema, KeyboardConfigSchema, KeyboardAnimationConfigSchema, BottomTabConfigSchema, BottomTabItemConfigSchema, TouchTargetConfigSchema, HitSlopConfigSchema, type ValidationResult as LayoutValidationResult, type LayoutTokenCollection, } from './layout-validation.js';
|
|
32
|
+
export { resolveLayout, clearLayoutCache, mergeResponsiveConfig, type ResolvedLayout, } from './layout-resolver.js';
|
|
33
|
+
export { generateLayoutCSS, generateAllLayoutCSS, generateCSSVariables as generateLayoutCSSVariables, generateShellClasses, generatePageClasses, generateSectionClasses, generateMediaQueries, formatCSS, validateCSS, type LayoutToken, type CSSGenerationOptions, } from './layout-css-generator.js';
|
|
34
|
+
export { type ComponentType, type ComponentDefinition, type ResponsiveOverrides, type SectionDefinition, type ScreenMeta, type ScreenDefinition, type ValidationContext, isComponentDefinition, isScreenDefinition, ResponsiveOverridesSchema, ComponentDefinitionSchema, SectionDefinitionSchema, ScreenMetaSchema, ScreenDefinitionSchema, validateComponent, validateSection, validateScreenDefinition, assertValidScreenDefinition, validateScreenDefinitions, isValidShellToken, isValidPageToken, isValidSectionToken, getUsedComponentTypes, type TokenBindingContext, type ResolvedTokenBindings, resolveBinding, resolveBindings, substituteTemplateVariables, tokenRefToCSSVar, isValidTokenBinding, extractTemplateVariables, clearBindingCache, type LayoutContext, resolveShell, resolvePage, resolveSection, parseLayoutType, type ResolvedComponent, type ComponentContext, resolveComponent, resolveChildren, isValidComponentDefinition, extractComponentTypes, clearComponentCache, type ResolvedScreen, type ResolvedSection, type ComponentTree, type ComponentTreeNode, resolveScreen, isValidResolvedScreen, getScreenStats, clearScreenCache, type CSSFramework, type OutputFormat, type ComponentStyle, type GeneratorOptions, type GeneratorResult, type GeneratedFile, type CSSVariableMap, type TailwindClassMap, type StyledThemeConfig, type ComponentGenerationContext, defaultGeneratorOptions, camelCase, pascalCase, kebabCase, formatCode, indent, escapeJSX, needsJSXExpression, propValueToJSX, generateImports, cssVarToToken, extractPropertyFromCSSVar, isValidIdentifier, sanitizeIdentifier, type CSSInJSFormat, convertCSSVarsToTheme, generateComponentStyles, generateStyledComponents, tokenToTailwindClass, generateComponentClasses, generateTailwindConfig, generateTailwindClasses, generateComponentInterface, generateComponentJSX, generateComponentTree, generateReactComponent, } from './screen-generation/index.js';
|
|
35
|
+
export { loadIconLibrary, listIconLibraries, iconLibraryExists, findIcon, getIconsByCategory, searchIconsByTag, generateImportStatement, getPackageName, type IconLibrary, type IconLibraryMeta, type IconSizeMapping, type IconFrameworkConfig, type IconDefinition, } from './icon-library.js';
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tekton-ui/core
|
|
3
|
+
* Minimal design system pipeline: Theme -> Blueprint -> Screen
|
|
4
|
+
*
|
|
5
|
+
* 80% LOC reduction from original codebase
|
|
6
|
+
* No external dependencies (Babel, Prettier removed)
|
|
7
|
+
*/
|
|
8
|
+
// Theme v2.1 (Primary API)
|
|
9
|
+
export {
|
|
10
|
+
// Functions
|
|
11
|
+
loadTheme, listThemes, themeExists, oklchToCSS, loadThemeV2, listThemesV2, themeExistsV2, oklchToCSSV2, resolveTokenRef,
|
|
12
|
+
// Deprecated (kept for backward compatibility)
|
|
13
|
+
isBuiltinTheme, generateCSSVariables, BUILTIN_THEMES, } from './theme.js';
|
|
14
|
+
// Blueprint
|
|
15
|
+
export { createBlueprint, validateBlueprint, isValidComponent, getLayoutSlots, LAYOUTS, COMPONENT_CATALOG, } from './blueprint.js';
|
|
16
|
+
// Render
|
|
17
|
+
export { render, renderWithTheme, renderSingleComponent, renderComponents } from './render.js';
|
|
18
|
+
// Token System (SPEC-COMPONENT-001-A) - Enabled for SPEC-COMPONENT-001-D
|
|
19
|
+
export { resolveToken, resolveWithFallback } from './token-resolver.js';
|
|
20
|
+
export { validateTheme, ThemeWithTokensSchema, } from './token-validation.js';
|
|
21
|
+
export { generateThemeCSS } from './css-generator.js';
|
|
22
|
+
export { PRIMITIVE_COMPONENTS, COMPOSED_COMPONENTS, ALL_COMPONENTS, getComponentSchema, } from './component-schemas.js';
|
|
23
|
+
export { validateComponentSchema, validateAllSchemas, validateProp, validateA11y, validateTokenBindings, getValidationSummary, assertValidSchema, assertAllSchemasValid, PropDefinitionSchema, A11yRequirementsSchema, TokenBindingsSchema, ComponentSchemaZod, } from './schema-validation.js';
|
|
24
|
+
// Shell Token Definitions (SPEC-LAYOUT-001 - PHASE-3)
|
|
25
|
+
export { SHELL_WEB_APP, SHELL_WEB_MARKETING, SHELL_WEB_AUTH, SHELL_WEB_DASHBOARD, SHELL_WEB_ADMIN, SHELL_WEB_MINIMAL, getShellToken, getAllShellTokens, getShellsByPlatform, } from './layout-tokens/shells.js';
|
|
26
|
+
// Page Layout Token Definitions (SPEC-LAYOUT-001 - PHASE-4)
|
|
27
|
+
export { PAGE_JOB, PAGE_RESOURCE, PAGE_DASHBOARD, PAGE_SETTINGS, PAGE_DETAIL, PAGE_EMPTY, PAGE_WIZARD, PAGE_ONBOARDING, getPageLayoutToken, getAllPageLayoutTokens, getPagesByPurpose, getPageSections, } from './layout-tokens/pages.js';
|
|
28
|
+
// Section Pattern Token Definitions (SPEC-LAYOUT-001 - PHASE-5)
|
|
29
|
+
export { SECTION_GRID_2, SECTION_GRID_3, SECTION_GRID_4, SECTION_GRID_AUTO, SECTION_SPLIT_30_70, SECTION_SPLIT_50_50, SECTION_SPLIT_70_30, SECTION_STACK_START, SECTION_STACK_CENTER, SECTION_STACK_END, SECTION_SIDEBAR_LEFT, SECTION_SIDEBAR_RIGHT, SECTION_CONTAINER, getSectionPatternToken, getAllSectionPatternTokens, getSectionsByType, getSectionCSS, } from './layout-tokens/sections.js';
|
|
30
|
+
// Responsive Token Definitions (SPEC-LAYOUT-001 - PHASE-6)
|
|
31
|
+
export { BREAKPOINT_SM, BREAKPOINT_MD, BREAKPOINT_LG, BREAKPOINT_XL, BREAKPOINT_2XL, BREAKPOINT_VALUES, getResponsiveToken, getAllResponsiveTokens, getBreakpointValue, getBreakpointMediaQuery, sortBreakpointsBySize, } from './layout-tokens/responsive.js';
|
|
32
|
+
// Mobile Shell Token Definitions (SPEC-LAYOUT-004 - MILESTONE-2)
|
|
33
|
+
export { SHELL_MOBILE_APP, SHELL_MOBILE_FULLSCREEN, SHELL_MOBILE_MODAL, SHELL_MOBILE_TAB, SHELL_MOBILE_DRAWER, SHELL_MOBILE_DETAIL, getMobileShellToken, getAllMobileShellTokens, getMobileShellsByOS, } from './layout-tokens/mobile-shells.js';
|
|
34
|
+
export { detectDeviceType, getSafeAreaTop, getSafeAreaBottom, getSafeAreaInsets, applySafeAreaToLayout, useSafeArea, } from './layout-tokens/safe-area.js';
|
|
35
|
+
export { getKeyboardHeight, applyKeyboardAvoidance, useKeyboardAvoidance, addKeyboardListener, getKeyboardAnimationDuration, getKeyboardAwareBottomSpacing, getDefaultKeyboardAnimation, isKeyboardVisible, getKeyboardProgressMode, } from './layout-tokens/keyboard.js';
|
|
36
|
+
export { validateTouchTarget, applyMinTouchTarget, getHitSlop, getMinTouchTargetForScale, isAccessibleTouchTarget, warnIfBelowMinimum, } from './layout-tokens/touch-target.js';
|
|
37
|
+
// Layout Token Validation (SPEC-LAYOUT-001 - PHASE-2 & SPEC-LAYOUT-004 - MILESTONE-6)
|
|
38
|
+
export { validateShellToken, validatePageLayoutToken, validateSectionPatternToken, validateTokenReference, validateMobileShellToken, validateLLMShellInput, validateLLMPageInput, validateLLMSectionInput, detectCircularRefs, validateLayoutHierarchy, safeValidate, ShellTokenSchema, PageLayoutTokenSchema, SectionPatternTokenSchema, TokenReferenceSchema, ShellRegionSchema, ShellRegionPositionSchema, ShellConfigSchema, PagePurposeSchema, SectionSlotSchema, PageConfigSchema, SectionTypeSchema, SectionCSSSchema, ResponsiveTokenSchema, LLMShellInputSchema, LLMPageInputSchema, LLMSectionInputSchema,
|
|
39
|
+
// Mobile Shell Validation Schemas (SPEC-LAYOUT-004 - MILESTONE-6)
|
|
40
|
+
MobileShellTokenSchema, SafeAreaConfigSchema, SafeAreaDefaultsSchema, SafeAreaEdgesSchema, StatusBarConfigSchema, NavigationBarConfigSchema, SystemUIConfigSchema, KeyboardConfigSchema, KeyboardAnimationConfigSchema, BottomTabConfigSchema, BottomTabItemConfigSchema, TouchTargetConfigSchema, HitSlopConfigSchema, } from './layout-validation.js';
|
|
41
|
+
// Layout Resolver (SPEC-LAYOUT-001 - PHASE-7)
|
|
42
|
+
export { resolveLayout, clearLayoutCache, mergeResponsiveConfig, } from './layout-resolver.js';
|
|
43
|
+
// Layout CSS Generator (SPEC-LAYOUT-001 - PHASE-8)
|
|
44
|
+
export { generateLayoutCSS, generateAllLayoutCSS, generateCSSVariables as generateLayoutCSSVariables, generateShellClasses, generatePageClasses, generateSectionClasses, generateMediaQueries, formatCSS, validateCSS, } from './layout-css-generator.js';
|
|
45
|
+
// Screen Generation (SPEC-LAYOUT-002 - PHASE-1 to PHASE-4)
|
|
46
|
+
export { isComponentDefinition, isScreenDefinition,
|
|
47
|
+
// Validation
|
|
48
|
+
ResponsiveOverridesSchema, ComponentDefinitionSchema, SectionDefinitionSchema, ScreenMetaSchema, ScreenDefinitionSchema, validateComponent, validateSection, validateScreenDefinition, assertValidScreenDefinition, validateScreenDefinitions, isValidShellToken, isValidPageToken, isValidSectionToken, getUsedComponentTypes, resolveBinding, resolveBindings, substituteTemplateVariables, tokenRefToCSSVar, isValidTokenBinding, extractTemplateVariables, clearBindingCache, resolveShell, resolvePage, resolveSection, parseLayoutType, resolveComponent, resolveChildren, isValidComponentDefinition, extractComponentTypes, clearComponentCache, resolveScreen, isValidResolvedScreen, getScreenStats, clearScreenCache, defaultGeneratorOptions, camelCase, pascalCase, kebabCase, formatCode, indent, escapeJSX, needsJSXExpression, propValueToJSX, generateImports, cssVarToToken, extractPropertyFromCSSVar, isValidIdentifier, sanitizeIdentifier, convertCSSVarsToTheme, generateComponentStyles, generateStyledComponents, tokenToTailwindClass, generateComponentClasses, generateTailwindConfig, generateTailwindClasses, generateComponentInterface, generateComponentJSX, generateComponentTree, generateReactComponent, } from './screen-generation/index.js';
|
|
49
|
+
// Icon Library (SPEC-ICON-001)
|
|
50
|
+
export { loadIconLibrary, listIconLibraries, iconLibraryExists, findIcon, getIconsByCategory, searchIconsByTag, generateImportStatement, getPackageName, } from './icon-library.js';
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tekton-ui/core - Layout CSS Generator
|
|
3
|
+
* Generates CSS from layout tokens (shells, pages, sections)
|
|
4
|
+
* [SPEC-LAYOUT-001] [PHASE-8]
|
|
5
|
+
*/
|
|
6
|
+
import type { ShellToken, PageLayoutToken, SectionPatternToken, ContainerQueryConfig, OrientationConfig, FullResponsiveConfig, AdvancedSectionPatternToken } from './layout-tokens/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Layout token union type - can be shell, page, section, or advanced section
|
|
9
|
+
*/
|
|
10
|
+
export type LayoutToken = ShellToken | PageLayoutToken | SectionPatternToken | AdvancedSectionPatternToken;
|
|
11
|
+
/**
|
|
12
|
+
* CSS generation options
|
|
13
|
+
*/
|
|
14
|
+
export interface CSSGenerationOptions {
|
|
15
|
+
/** Include CSS custom properties in :root */
|
|
16
|
+
includeVariables?: boolean;
|
|
17
|
+
/** Include utility classes (.shell-*, .page-*, .section-*) */
|
|
18
|
+
includeClasses?: boolean;
|
|
19
|
+
/** Include responsive media queries */
|
|
20
|
+
includeMediaQueries?: boolean;
|
|
21
|
+
/** Indentation string for formatting */
|
|
22
|
+
indent?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Validate CSS syntax (balanced braces)
|
|
26
|
+
*
|
|
27
|
+
* @param css - CSS string to validate
|
|
28
|
+
* @returns true if valid, false otherwise
|
|
29
|
+
*/
|
|
30
|
+
export declare function validateCSS(css: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Format CSS with proper indentation
|
|
33
|
+
*
|
|
34
|
+
* @param css - CSS string to format
|
|
35
|
+
* @param indent - Indentation string (default: 2 spaces)
|
|
36
|
+
* @returns Formatted CSS
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatCSS(css: string, indent?: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Generate CSS custom properties in :root from layout tokens
|
|
41
|
+
*
|
|
42
|
+
* @param tokens - Array of layout tokens
|
|
43
|
+
* @returns CSS :root block with custom properties
|
|
44
|
+
*/
|
|
45
|
+
export declare function generateCSSVariables(tokens: LayoutToken[]): string;
|
|
46
|
+
/**
|
|
47
|
+
* Generate utility classes for shell tokens
|
|
48
|
+
*
|
|
49
|
+
* @param shells - Array of shell tokens
|
|
50
|
+
* @returns CSS classes for shells
|
|
51
|
+
*/
|
|
52
|
+
export declare function generateShellClasses(shells: ShellToken[]): string;
|
|
53
|
+
/**
|
|
54
|
+
* Generate utility classes for page tokens
|
|
55
|
+
*
|
|
56
|
+
* @param pages - Array of page layout tokens
|
|
57
|
+
* @returns CSS classes for pages
|
|
58
|
+
*/
|
|
59
|
+
export declare function generatePageClasses(pages: PageLayoutToken[]): string;
|
|
60
|
+
/**
|
|
61
|
+
* Generate utility classes for section pattern tokens
|
|
62
|
+
*
|
|
63
|
+
* @param sections - Array of section pattern tokens
|
|
64
|
+
* @returns CSS classes for sections
|
|
65
|
+
*/
|
|
66
|
+
export declare function generateSectionClasses(sections: SectionPatternToken[]): string;
|
|
67
|
+
/**
|
|
68
|
+
* Generate utility classes for advanced section pattern tokens
|
|
69
|
+
* Handles masonry, sticky, and collapsible patterns
|
|
70
|
+
*
|
|
71
|
+
* @param sections - Array of advanced section pattern tokens
|
|
72
|
+
* @returns CSS classes for advanced sections
|
|
73
|
+
*/
|
|
74
|
+
export declare function generateAdvancedSectionClasses(sections: AdvancedSectionPatternToken[]): string;
|
|
75
|
+
/**
|
|
76
|
+
* Generate state classes for interactive advanced section patterns
|
|
77
|
+
* Handles stuck states for sticky patterns and collapsed states for collapsible patterns
|
|
78
|
+
*
|
|
79
|
+
* @param sections - Array of advanced section pattern tokens
|
|
80
|
+
* @returns CSS state classes for advanced sections
|
|
81
|
+
*/
|
|
82
|
+
export declare function generateAdvancedSectionStateClasses(sections: AdvancedSectionPatternToken[]): string;
|
|
83
|
+
/**
|
|
84
|
+
* Generate responsive media queries for all breakpoints
|
|
85
|
+
*
|
|
86
|
+
* @param tokens - Array of layout tokens
|
|
87
|
+
* @returns CSS media queries
|
|
88
|
+
*/
|
|
89
|
+
export declare function generateMediaQueries(tokens: LayoutToken[]): string;
|
|
90
|
+
/**
|
|
91
|
+
* Generate complete CSS from layout tokens
|
|
92
|
+
*
|
|
93
|
+
* @param tokens - Array of layout tokens (shells, pages, sections)
|
|
94
|
+
* @param options - CSS generation options
|
|
95
|
+
* @returns Complete CSS string with variables, utilities, and media queries
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* import { getAllShellTokens, getAllPageLayoutTokens, getAllSectionPatternTokens } from './layout-tokens/index.js';
|
|
100
|
+
*
|
|
101
|
+
* const shells = getAllShellTokens();
|
|
102
|
+
* const pages = getAllPageLayoutTokens();
|
|
103
|
+
* const sections = getAllSectionPatternTokens();
|
|
104
|
+
*
|
|
105
|
+
* const css = generateLayoutCSS([...shells, ...pages, ...sections]);
|
|
106
|
+
* console.log(css);
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function generateLayoutCSS(tokens: LayoutToken[], options?: CSSGenerationOptions): string;
|
|
110
|
+
/**
|
|
111
|
+
* Generate CSS for all layout tokens in the system
|
|
112
|
+
*
|
|
113
|
+
* @param options - CSS generation options
|
|
114
|
+
* @returns Complete CSS for all shells, pages, and sections
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const css = generateAllLayoutCSS();
|
|
119
|
+
* // Write to file or use in application
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export declare function generateAllLayoutCSS(options?: CSSGenerationOptions): string;
|
|
123
|
+
/**
|
|
124
|
+
* Generate CSS container queries with browser fallback
|
|
125
|
+
* Uses @supports for progressive enhancement
|
|
126
|
+
*
|
|
127
|
+
* @param config - Container query configuration
|
|
128
|
+
* @returns CSS string with container queries and fallback
|
|
129
|
+
*/
|
|
130
|
+
export declare function generateContainerQueryCSS(config: ContainerQueryConfig): string;
|
|
131
|
+
/**
|
|
132
|
+
* Generate fallback CSS for browsers without container query support
|
|
133
|
+
* Uses viewport-based media queries as fallback
|
|
134
|
+
*
|
|
135
|
+
* @param config - Container query configuration
|
|
136
|
+
* @returns CSS string with media query fallbacks
|
|
137
|
+
*/
|
|
138
|
+
export declare function generateContainerQueryFallback(config: ContainerQueryConfig): string;
|
|
139
|
+
/**
|
|
140
|
+
* Generate orientation-specific CSS media queries
|
|
141
|
+
* Supports portrait (height >= width) and landscape (width > height)
|
|
142
|
+
*
|
|
143
|
+
* @param config - Orientation configuration
|
|
144
|
+
* @param cssGenerator - Function to convert config to CSS properties
|
|
145
|
+
* @returns CSS string with orientation media queries
|
|
146
|
+
*/
|
|
147
|
+
export declare function generateOrientationCSS<T>(config: OrientationConfig<T>, cssGenerator: (config: Partial<T>) => string): string;
|
|
148
|
+
/**
|
|
149
|
+
* Generate complete responsive CSS with orientation support
|
|
150
|
+
* Combines viewport breakpoints, container queries, and orientation
|
|
151
|
+
*
|
|
152
|
+
* @param config - Full responsive configuration
|
|
153
|
+
* @param cssGenerator - Function to convert config to CSS properties
|
|
154
|
+
* @param containerConfig - Optional container query configuration
|
|
155
|
+
* @returns Complete CSS string
|
|
156
|
+
*/
|
|
157
|
+
export declare function generateAdvancedResponsiveCSS<T>(config: FullResponsiveConfig<T>, cssGenerator: (config: T | Partial<T>) => string, containerConfig?: ContainerQueryConfig): string;
|
|
158
|
+
//# sourceMappingURL=layout-css-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-css-generator.d.ts","sourceRoot":"","sources":["../src/layout-css-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,mBAAmB,EAEnB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EAEpB,2BAA2B,EAI5B,MAAM,0BAA0B,CAAC;AAYlC;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,eAAe,GACf,mBAAmB,GACnB,2BAA2B,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIhD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAO,GAAG,MAAM,CAiC5D;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CA6BlE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CA8DjE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,CAsBpE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAwD9E;AAgBD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,2BAA2B,EAAE,GAAG,MAAM,CA6I9F;AAED;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,2BAA2B,EAAE,GACtC,MAAM,CA+DR;AAmKD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAoGlE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,GAAE,oBAAyB,GACjC,MAAM,CA6FR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAO/E;AAMD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAgC9E;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CA4BnF;AAMD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,GAC3C,MAAM,CAwBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC/B,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,EAChD,eAAe,CAAC,EAAE,oBAAoB,GACrC,MAAM,CAiCR"}
|