@calibrate-ds/core 0.1.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/dist/__tests__/check-component.test.d.ts +2 -0
- package/dist/__tests__/check-component.test.d.ts.map +1 -0
- package/dist/__tests__/check-component.test.js +103 -0
- package/dist/__tests__/check-component.test.js.map +1 -0
- package/dist/__tests__/compare-components.test.d.ts +2 -0
- package/dist/__tests__/compare-components.test.d.ts.map +1 -0
- package/dist/__tests__/compare-components.test.js +145 -0
- package/dist/__tests__/compare-components.test.js.map +1 -0
- package/dist/__tests__/naming-strategy.test.d.ts +2 -0
- package/dist/__tests__/naming-strategy.test.d.ts.map +1 -0
- package/dist/__tests__/naming-strategy.test.js +71 -0
- package/dist/__tests__/naming-strategy.test.js.map +1 -0
- package/dist/ai/index.d.ts +3 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +3 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/provider.d.ts +14 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/provider.js +63 -0
- package/dist/ai/provider.js.map +1 -0
- package/dist/ai/resolve-provider.d.ts +3 -0
- package/dist/ai/resolve-provider.d.ts.map +1 -0
- package/dist/ai/resolve-provider.js +61 -0
- package/dist/ai/resolve-provider.js.map +1 -0
- package/dist/bootstrap/generate-library-files.d.ts +7 -0
- package/dist/bootstrap/generate-library-files.d.ts.map +1 -0
- package/dist/bootstrap/generate-library-files.js +97 -0
- package/dist/bootstrap/generate-library-files.js.map +1 -0
- package/dist/bootstrap/index.d.ts +4 -0
- package/dist/bootstrap/index.d.ts.map +1 -0
- package/dist/bootstrap/index.js +4 -0
- package/dist/bootstrap/index.js.map +1 -0
- package/dist/bootstrap/types.d.ts +27 -0
- package/dist/bootstrap/types.d.ts.map +1 -0
- package/dist/bootstrap/types.js +2 -0
- package/dist/bootstrap/types.js.map +1 -0
- package/dist/bootstrap/write-library-bootstrap.d.ts +7 -0
- package/dist/bootstrap/write-library-bootstrap.d.ts.map +1 -0
- package/dist/bootstrap/write-library-bootstrap.js +35 -0
- package/dist/bootstrap/write-library-bootstrap.js.map +1 -0
- package/dist/config/config-schema.d.ts +131 -0
- package/dist/config/config-schema.d.ts.map +1 -0
- package/dist/config/config-schema.js +93 -0
- package/dist/config/config-schema.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/load-config.d.ts +7 -0
- package/dist/config/load-config.d.ts.map +1 -0
- package/dist/config/load-config.js +63 -0
- package/dist/config/load-config.js.map +1 -0
- package/dist/context/compressed-context.d.ts +3 -0
- package/dist/context/compressed-context.d.ts.map +1 -0
- package/dist/context/compressed-context.js +145 -0
- package/dist/context/compressed-context.js.map +1 -0
- package/dist/context/context-index.d.ts +18 -0
- package/dist/context/context-index.d.ts.map +1 -0
- package/dist/context/context-index.js +59 -0
- package/dist/context/context-index.js.map +1 -0
- package/dist/context/export-context.d.ts +61 -0
- package/dist/context/export-context.d.ts.map +1 -0
- package/dist/context/export-context.js +191 -0
- package/dist/context/export-context.js.map +1 -0
- package/dist/context/get-component-context.d.ts +3 -0
- package/dist/context/get-component-context.d.ts.map +1 -0
- package/dist/context/get-component-context.js +898 -0
- package/dist/context/get-component-context.js.map +1 -0
- package/dist/context/hashing.d.ts +14 -0
- package/dist/context/hashing.d.ts.map +1 -0
- package/dist/context/hashing.js +53 -0
- package/dist/context/hashing.js.map +1 -0
- package/dist/context/metadata-extraction.d.ts +15 -0
- package/dist/context/metadata-extraction.d.ts.map +1 -0
- package/dist/context/metadata-extraction.js +47 -0
- package/dist/context/metadata-extraction.js.map +1 -0
- package/dist/design-tool/figma-adapter.d.ts +20 -0
- package/dist/design-tool/figma-adapter.d.ts.map +1 -0
- package/dist/design-tool/figma-adapter.js +46 -0
- package/dist/design-tool/figma-adapter.js.map +1 -0
- package/dist/design-tool/index.d.ts +4 -0
- package/dist/design-tool/index.d.ts.map +1 -0
- package/dist/design-tool/index.js +3 -0
- package/dist/design-tool/index.js.map +1 -0
- package/dist/design-tool/registry.d.ts +12 -0
- package/dist/design-tool/registry.d.ts.map +1 -0
- package/dist/design-tool/registry.js +23 -0
- package/dist/design-tool/registry.js.map +1 -0
- package/dist/design-tool/types.d.ts +28 -0
- package/dist/design-tool/types.d.ts.map +1 -0
- package/dist/design-tool/types.js +2 -0
- package/dist/design-tool/types.js.map +1 -0
- package/dist/diff/compare-components.d.ts +3 -0
- package/dist/diff/compare-components.d.ts.map +1 -0
- package/dist/diff/compare-components.js +198 -0
- package/dist/diff/compare-components.js.map +1 -0
- package/dist/diff/compare-dependencies.d.ts +3 -0
- package/dist/diff/compare-dependencies.d.ts.map +1 -0
- package/dist/diff/compare-dependencies.js +30 -0
- package/dist/diff/compare-dependencies.js.map +1 -0
- package/dist/diff/compare-tokens.d.ts +3 -0
- package/dist/diff/compare-tokens.d.ts.map +1 -0
- package/dist/diff/compare-tokens.js +52 -0
- package/dist/diff/compare-tokens.js.map +1 -0
- package/dist/diff/compute-design-diff.d.ts +3 -0
- package/dist/diff/compute-design-diff.d.ts.map +1 -0
- package/dist/diff/compute-design-diff.js +27 -0
- package/dist/diff/compute-design-diff.js.map +1 -0
- package/dist/diff/format-diff-summary.d.ts +3 -0
- package/dist/diff/format-diff-summary.d.ts.map +1 -0
- package/dist/diff/format-diff-summary.js +59 -0
- package/dist/diff/format-diff-summary.js.map +1 -0
- package/dist/diff/index.d.ts +6 -0
- package/dist/diff/index.d.ts.map +1 -0
- package/dist/diff/index.js +6 -0
- package/dist/diff/index.js.map +1 -0
- package/dist/docs/generate-component-doc.d.ts +34 -0
- package/dist/docs/generate-component-doc.d.ts.map +1 -0
- package/dist/docs/generate-component-doc.js +269 -0
- package/dist/docs/generate-component-doc.js.map +1 -0
- package/dist/docs/generate-component-stories.d.ts +3 -0
- package/dist/docs/generate-component-stories.d.ts.map +1 -0
- package/dist/docs/generate-component-stories.js +116 -0
- package/dist/docs/generate-component-stories.js.map +1 -0
- package/dist/docs/generate-system-doc.d.ts +23 -0
- package/dist/docs/generate-system-doc.d.ts.map +1 -0
- package/dist/docs/generate-system-doc.js +337 -0
- package/dist/docs/generate-system-doc.js.map +1 -0
- package/dist/docs/index.d.ts +5 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +5 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/setup-storybook.d.ts +26 -0
- package/dist/docs/setup-storybook.d.ts.map +1 -0
- package/dist/docs/setup-storybook.js +216 -0
- package/dist/docs/setup-storybook.js.map +1 -0
- package/dist/doctor/check-component.d.ts +5 -0
- package/dist/doctor/check-component.d.ts.map +1 -0
- package/dist/doctor/check-component.js +120 -0
- package/dist/doctor/check-component.js.map +1 -0
- package/dist/doctor/check-config.d.ts +4 -0
- package/dist/doctor/check-config.d.ts.map +1 -0
- package/dist/doctor/check-config.js +65 -0
- package/dist/doctor/check-config.js.map +1 -0
- package/dist/doctor/check-tokens.d.ts +4 -0
- package/dist/doctor/check-tokens.d.ts.map +1 -0
- package/dist/doctor/check-tokens.js +17 -0
- package/dist/doctor/check-tokens.js.map +1 -0
- package/dist/doctor/index.d.ts +5 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js +5 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/types.d.ts +30 -0
- package/dist/doctor/types.d.ts.map +1 -0
- package/dist/doctor/types.js +2 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/filesystem/ensure-dir.d.ts +5 -0
- package/dist/filesystem/ensure-dir.d.ts.map +1 -0
- package/dist/filesystem/ensure-dir.js +17 -0
- package/dist/filesystem/ensure-dir.js.map +1 -0
- package/dist/filesystem/index.d.ts +6 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/dist/filesystem/index.js +6 -0
- package/dist/filesystem/index.js.map +1 -0
- package/dist/filesystem/resolve-component-path.d.ts +10 -0
- package/dist/filesystem/resolve-component-path.d.ts.map +1 -0
- package/dist/filesystem/resolve-component-path.js +32 -0
- package/dist/filesystem/resolve-component-path.js.map +1 -0
- package/dist/filesystem/resolve-ds-paths.d.ts +15 -0
- package/dist/filesystem/resolve-ds-paths.d.ts.map +1 -0
- package/dist/filesystem/resolve-ds-paths.js +51 -0
- package/dist/filesystem/resolve-ds-paths.js.map +1 -0
- package/dist/filesystem/workspace-root.d.ts +6 -0
- package/dist/filesystem/workspace-root.d.ts.map +1 -0
- package/dist/filesystem/workspace-root.js +21 -0
- package/dist/filesystem/workspace-root.js.map +1 -0
- package/dist/filesystem/write-json.d.ts +6 -0
- package/dist/filesystem/write-json.d.ts.map +1 -0
- package/dist/filesystem/write-json.js +10 -0
- package/dist/filesystem/write-json.js.map +1 -0
- package/dist/filesystem/write-text.d.ts +10 -0
- package/dist/filesystem/write-text.d.ts.map +1 -0
- package/dist/filesystem/write-text.js +22 -0
- package/dist/filesystem/write-text.js.map +1 -0
- package/dist/generators/components/generate-component-css.d.ts +6 -0
- package/dist/generators/components/generate-component-css.d.ts.map +1 -0
- package/dist/generators/components/generate-component-css.js +92 -0
- package/dist/generators/components/generate-component-css.js.map +1 -0
- package/dist/generators/components/generate-component-file.d.ts +8 -0
- package/dist/generators/components/generate-component-file.d.ts.map +1 -0
- package/dist/generators/components/generate-component-file.js +209 -0
- package/dist/generators/components/generate-component-file.js.map +1 -0
- package/dist/generators/components/generate-composite-file.d.ts +3 -0
- package/dist/generators/components/generate-composite-file.d.ts.map +1 -0
- package/dist/generators/components/generate-composite-file.js +77 -0
- package/dist/generators/components/generate-composite-file.js.map +1 -0
- package/dist/generators/components/generate-composite-types.d.ts +7 -0
- package/dist/generators/components/generate-composite-types.d.ts.map +1 -0
- package/dist/generators/components/generate-composite-types.js +43 -0
- package/dist/generators/components/generate-composite-types.js.map +1 -0
- package/dist/generators/components/generate-types-file.d.ts +8 -0
- package/dist/generators/components/generate-types-file.d.ts.map +1 -0
- package/dist/generators/components/generate-types-file.js +64 -0
- package/dist/generators/components/generate-types-file.js.map +1 -0
- package/dist/generators/components/helpers.d.ts +33 -0
- package/dist/generators/components/helpers.d.ts.map +1 -0
- package/dist/generators/components/helpers.js +124 -0
- package/dist/generators/components/helpers.js.map +1 -0
- package/dist/generators/components/index.d.ts +9 -0
- package/dist/generators/components/index.d.ts.map +1 -0
- package/dist/generators/components/index.js +10 -0
- package/dist/generators/components/index.js.map +1 -0
- package/dist/generators/components/layout-jsx.d.ts +14 -0
- package/dist/generators/components/layout-jsx.d.ts.map +1 -0
- package/dist/generators/components/layout-jsx.js +271 -0
- package/dist/generators/components/layout-jsx.js.map +1 -0
- package/dist/generators/components/prune-components.d.ts +15 -0
- package/dist/generators/components/prune-components.d.ts.map +1 -0
- package/dist/generators/components/prune-components.js +88 -0
- package/dist/generators/components/prune-components.js.map +1 -0
- package/dist/generators/components/token-helpers.d.ts +32 -0
- package/dist/generators/components/token-helpers.d.ts.map +1 -0
- package/dist/generators/components/token-helpers.js +188 -0
- package/dist/generators/components/token-helpers.js.map +1 -0
- package/dist/generators/components/write-components.d.ts +17 -0
- package/dist/generators/components/write-components.d.ts.map +1 -0
- package/dist/generators/components/write-components.js +212 -0
- package/dist/generators/components/write-components.js.map +1 -0
- package/dist/generators/components/write-composites.d.ts +4 -0
- package/dist/generators/components/write-composites.d.ts.map +1 -0
- package/dist/generators/components/write-composites.js +116 -0
- package/dist/generators/components/write-composites.js.map +1 -0
- package/dist/generators/composites/generate-composite-file.d.ts +3 -0
- package/dist/generators/composites/generate-composite-file.d.ts.map +1 -0
- package/dist/generators/composites/generate-composite-file.js +101 -0
- package/dist/generators/composites/generate-composite-file.js.map +1 -0
- package/dist/generators/composites/generate-composite-types.d.ts +7 -0
- package/dist/generators/composites/generate-composite-types.d.ts.map +1 -0
- package/dist/generators/composites/generate-composite-types.js +43 -0
- package/dist/generators/composites/generate-composite-types.js.map +1 -0
- package/dist/generators/composites/index.d.ts +4 -0
- package/dist/generators/composites/index.d.ts.map +1 -0
- package/dist/generators/composites/index.js +4 -0
- package/dist/generators/composites/index.js.map +1 -0
- package/dist/generators/composites/write-composites.d.ts +4 -0
- package/dist/generators/composites/write-composites.d.ts.map +1 -0
- package/dist/generators/composites/write-composites.js +116 -0
- package/dist/generators/composites/write-composites.js.map +1 -0
- package/dist/generators/registry.d.ts +9 -0
- package/dist/generators/registry.d.ts.map +1 -0
- package/dist/generators/registry.js +11 -0
- package/dist/generators/registry.js.map +1 -0
- package/dist/generators/scaffold/generate-placeholder-component-content.d.ts +9 -0
- package/dist/generators/scaffold/generate-placeholder-component-content.d.ts.map +1 -0
- package/dist/generators/scaffold/generate-placeholder-component-content.js +68 -0
- package/dist/generators/scaffold/generate-placeholder-component-content.js.map +1 -0
- package/dist/generators/scaffold/index.d.ts +3 -0
- package/dist/generators/scaffold/index.d.ts.map +1 -0
- package/dist/generators/scaffold/index.js +3 -0
- package/dist/generators/scaffold/index.js.map +1 -0
- package/dist/generators/scaffold/write-scaffold.d.ts +14 -0
- package/dist/generators/scaffold/write-scaffold.d.ts.map +1 -0
- package/dist/generators/scaffold/write-scaffold.js +87 -0
- package/dist/generators/scaffold/write-scaffold.js.map +1 -0
- package/dist/generators/tokens/generate-token-css.d.ts +6 -0
- package/dist/generators/tokens/generate-token-css.d.ts.map +1 -0
- package/dist/generators/tokens/generate-token-css.js +31 -0
- package/dist/generators/tokens/generate-token-css.js.map +1 -0
- package/dist/generators/tokens/generate-token-file-content.d.ts +6 -0
- package/dist/generators/tokens/generate-token-file-content.d.ts.map +1 -0
- package/dist/generators/tokens/generate-token-file-content.js +27 -0
- package/dist/generators/tokens/generate-token-file-content.js.map +1 -0
- package/dist/generators/tokens/index.d.ts +3 -0
- package/dist/generators/tokens/index.d.ts.map +1 -0
- package/dist/generators/tokens/index.js +3 -0
- package/dist/generators/tokens/index.js.map +1 -0
- package/dist/generators/tokens/write-tokens.d.ts +14 -0
- package/dist/generators/tokens/write-tokens.d.ts.map +1 -0
- package/dist/generators/tokens/write-tokens.js +96 -0
- package/dist/generators/tokens/write-tokens.js.map +1 -0
- package/dist/generators/types.d.ts +11 -0
- package/dist/generators/types.d.ts.map +1 -0
- package/dist/generators/types.js +2 -0
- package/dist/generators/types.js.map +1 -0
- package/dist/icons/enrich-icon-svgs.d.ts +10 -0
- package/dist/icons/enrich-icon-svgs.d.ts.map +1 -0
- package/dist/icons/enrich-icon-svgs.js +88 -0
- package/dist/icons/enrich-icon-svgs.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest/index.d.ts +8 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +80 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/mappings/build-file-mappings.d.ts +6 -0
- package/dist/mappings/build-file-mappings.d.ts.map +1 -0
- package/dist/mappings/build-file-mappings.js +37 -0
- package/dist/mappings/build-file-mappings.js.map +1 -0
- package/dist/mappings/index.d.ts +3 -0
- package/dist/mappings/index.d.ts.map +1 -0
- package/dist/mappings/index.js +3 -0
- package/dist/mappings/index.js.map +1 -0
- package/dist/mappings/naming-strategy.d.ts +20 -0
- package/dist/mappings/naming-strategy.d.ts.map +1 -0
- package/dist/mappings/naming-strategy.js +78 -0
- package/dist/mappings/naming-strategy.js.map +1 -0
- package/dist/model/build-design-system-model.d.ts +7 -0
- package/dist/model/build-design-system-model.d.ts.map +1 -0
- package/dist/model/build-design-system-model.js +78 -0
- package/dist/model/build-design-system-model.js.map +1 -0
- package/dist/model/index.d.ts +2 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +2 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/resolve-component.d.ts +11 -0
- package/dist/model/resolve-component.d.ts.map +1 -0
- package/dist/model/resolve-component.js +110 -0
- package/dist/model/resolve-component.js.map +1 -0
- package/dist/normalizer/classify-entities.d.ts +12 -0
- package/dist/normalizer/classify-entities.d.ts.map +1 -0
- package/dist/normalizer/classify-entities.js +62 -0
- package/dist/normalizer/classify-entities.js.map +1 -0
- package/dist/normalizer/helpers.d.ts +13 -0
- package/dist/normalizer/helpers.d.ts.map +1 -0
- package/dist/normalizer/helpers.js +27 -0
- package/dist/normalizer/helpers.js.map +1 -0
- package/dist/normalizer/index.d.ts +7 -0
- package/dist/normalizer/index.d.ts.map +1 -0
- package/dist/normalizer/index.js +7 -0
- package/dist/normalizer/index.js.map +1 -0
- package/dist/normalizer/instance-resolver.d.ts +13 -0
- package/dist/normalizer/instance-resolver.d.ts.map +1 -0
- package/dist/normalizer/instance-resolver.js +747 -0
- package/dist/normalizer/instance-resolver.js.map +1 -0
- package/dist/normalizer/layout-tree.d.ts +12 -0
- package/dist/normalizer/layout-tree.d.ts.map +1 -0
- package/dist/normalizer/layout-tree.js +312 -0
- package/dist/normalizer/layout-tree.js.map +1 -0
- package/dist/normalizer/naming.d.ts +11 -0
- package/dist/normalizer/naming.d.ts.map +1 -0
- package/dist/normalizer/naming.js +44 -0
- package/dist/normalizer/naming.js.map +1 -0
- package/dist/normalizer/normalize-components.d.ts +13 -0
- package/dist/normalizer/normalize-components.d.ts.map +1 -0
- package/dist/normalizer/normalize-components.js +520 -0
- package/dist/normalizer/normalize-components.js.map +1 -0
- package/dist/normalizer/normalize-composites.d.ts +8 -0
- package/dist/normalizer/normalize-composites.d.ts.map +1 -0
- package/dist/normalizer/normalize-composites.js +22 -0
- package/dist/normalizer/normalize-composites.js.map +1 -0
- package/dist/normalizer/normalize-instances.d.ts +9 -0
- package/dist/normalizer/normalize-instances.d.ts.map +1 -0
- package/dist/normalizer/normalize-instances.js +32 -0
- package/dist/normalizer/normalize-instances.js.map +1 -0
- package/dist/normalizer/types.d.ts +22 -0
- package/dist/normalizer/types.d.ts.map +1 -0
- package/dist/normalizer/types.js +2 -0
- package/dist/normalizer/types.js.map +1 -0
- package/dist/normalizer/variant-diff.d.ts +101 -0
- package/dist/normalizer/variant-diff.d.ts.map +1 -0
- package/dist/normalizer/variant-diff.js +307 -0
- package/dist/normalizer/variant-diff.js.map +1 -0
- package/dist/plan/implementation-plan.d.ts +28 -0
- package/dist/plan/implementation-plan.d.ts.map +1 -0
- package/dist/plan/implementation-plan.js +60 -0
- package/dist/plan/implementation-plan.js.map +1 -0
- package/dist/plan/index.d.ts +3 -0
- package/dist/plan/index.d.ts.map +1 -0
- package/dist/plan/index.js +3 -0
- package/dist/plan/index.js.map +1 -0
- package/dist/plan/resolve-affected-files.d.ts +11 -0
- package/dist/plan/resolve-affected-files.d.ts.map +1 -0
- package/dist/plan/resolve-affected-files.js +73 -0
- package/dist/plan/resolve-affected-files.js.map +1 -0
- package/dist/prompt/generate-component-prompt.d.ts +6 -0
- package/dist/prompt/generate-component-prompt.d.ts.map +1 -0
- package/dist/prompt/generate-component-prompt.js +1644 -0
- package/dist/prompt/generate-component-prompt.js.map +1 -0
- package/dist/registry/ai-provider-registry.d.ts +7 -0
- package/dist/registry/ai-provider-registry.d.ts.map +1 -0
- package/dist/registry/ai-provider-registry.js +21 -0
- package/dist/registry/ai-provider-registry.js.map +1 -0
- package/dist/registry/build-component-registry.d.ts +6 -0
- package/dist/registry/build-component-registry.d.ts.map +1 -0
- package/dist/registry/build-component-registry.js +43 -0
- package/dist/registry/build-component-registry.js.map +1 -0
- package/dist/registry/build-dependency-graph.d.ts +7 -0
- package/dist/registry/build-dependency-graph.d.ts.map +1 -0
- package/dist/registry/build-dependency-graph.js +36 -0
- package/dist/registry/build-dependency-graph.js.map +1 -0
- package/dist/registry/generator-registry.d.ts +12 -0
- package/dist/registry/generator-registry.d.ts.map +1 -0
- package/dist/registry/generator-registry.js +22 -0
- package/dist/registry/generator-registry.js.map +1 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +3 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/scaffold-plan/build-scaffold-plan.d.ts +16 -0
- package/dist/scaffold-plan/build-scaffold-plan.d.ts.map +1 -0
- package/dist/scaffold-plan/build-scaffold-plan.js +91 -0
- package/dist/scaffold-plan/build-scaffold-plan.js.map +1 -0
- package/dist/scaffold-plan/index.d.ts +2 -0
- package/dist/scaffold-plan/index.d.ts.map +1 -0
- package/dist/scaffold-plan/index.js +2 -0
- package/dist/scaffold-plan/index.js.map +1 -0
- package/dist/scanner/collect-components.d.ts +10 -0
- package/dist/scanner/collect-components.d.ts.map +1 -0
- package/dist/scanner/collect-components.js +103 -0
- package/dist/scanner/collect-components.js.map +1 -0
- package/dist/scanner/collect-instances.d.ts +6 -0
- package/dist/scanner/collect-instances.d.ts.map +1 -0
- package/dist/scanner/collect-instances.js +31 -0
- package/dist/scanner/collect-instances.js.map +1 -0
- package/dist/scanner/index.d.ts +6 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +6 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/scan-file.d.ts +6 -0
- package/dist/scanner/scan-file.d.ts.map +1 -0
- package/dist/scanner/scan-file.js +28 -0
- package/dist/scanner/scan-file.js.map +1 -0
- package/dist/scanner/traverse-nodes.d.ts +15 -0
- package/dist/scanner/traverse-nodes.d.ts.map +1 -0
- package/dist/scanner/traverse-nodes.js +18 -0
- package/dist/scanner/traverse-nodes.js.map +1 -0
- package/dist/scanner/types.d.ts +89 -0
- package/dist/scanner/types.d.ts.map +1 -0
- package/dist/scanner/types.js +2 -0
- package/dist/scanner/types.js.map +1 -0
- package/dist/snapshots/index.d.ts +6 -0
- package/dist/snapshots/index.d.ts.map +1 -0
- package/dist/snapshots/index.js +6 -0
- package/dist/snapshots/index.js.map +1 -0
- package/dist/snapshots/load-imported-tokens.d.ts +8 -0
- package/dist/snapshots/load-imported-tokens.d.ts.map +1 -0
- package/dist/snapshots/load-imported-tokens.js +27 -0
- package/dist/snapshots/load-imported-tokens.js.map +1 -0
- package/dist/snapshots/load-latest-snapshot.d.ts +3 -0
- package/dist/snapshots/load-latest-snapshot.d.ts.map +1 -0
- package/dist/snapshots/load-latest-snapshot.js +16 -0
- package/dist/snapshots/load-latest-snapshot.js.map +1 -0
- package/dist/snapshots/load-previous-snapshot.d.ts +7 -0
- package/dist/snapshots/load-previous-snapshot.d.ts.map +1 -0
- package/dist/snapshots/load-previous-snapshot.js +39 -0
- package/dist/snapshots/load-previous-snapshot.js.map +1 -0
- package/dist/snapshots/save-imported-tokens.d.ts +4 -0
- package/dist/snapshots/save-imported-tokens.d.ts.map +1 -0
- package/dist/snapshots/save-imported-tokens.js +16 -0
- package/dist/snapshots/save-imported-tokens.js.map +1 -0
- package/dist/snapshots/save-snapshot.d.ts +3 -0
- package/dist/snapshots/save-snapshot.d.ts.map +1 -0
- package/dist/snapshots/save-snapshot.js +49 -0
- package/dist/snapshots/save-snapshot.js.map +1 -0
- package/dist/test-null-safety.d.ts +2 -0
- package/dist/test-null-safety.d.ts.map +1 -0
- package/dist/test-null-safety.js +67 -0
- package/dist/test-null-safety.js.map +1 -0
- package/dist/test-regex.d.ts +2 -0
- package/dist/test-regex.d.ts.map +1 -0
- package/dist/test-regex.js +25 -0
- package/dist/test-regex.js.map +1 -0
- package/dist/test-token-resolution.d.ts +2 -0
- package/dist/test-token-resolution.d.ts.map +1 -0
- package/dist/test-token-resolution.js +54 -0
- package/dist/test-token-resolution.js.map +1 -0
- package/dist/test-typography.d.ts +2 -0
- package/dist/test-typography.d.ts.map +1 -0
- package/dist/test-typography.js +69 -0
- package/dist/test-typography.js.map +1 -0
- package/dist/tokens/adapters/generic-adapter.d.ts +13 -0
- package/dist/tokens/adapters/generic-adapter.d.ts.map +1 -0
- package/dist/tokens/adapters/generic-adapter.js +74 -0
- package/dist/tokens/adapters/generic-adapter.js.map +1 -0
- package/dist/tokens/adapters/index.d.ts +3 -0
- package/dist/tokens/adapters/index.d.ts.map +1 -0
- package/dist/tokens/adapters/index.js +3 -0
- package/dist/tokens/adapters/index.js.map +1 -0
- package/dist/tokens/adapters/ptb-adapter.d.ts +13 -0
- package/dist/tokens/adapters/ptb-adapter.d.ts.map +1 -0
- package/dist/tokens/adapters/ptb-adapter.js +13 -0
- package/dist/tokens/adapters/ptb-adapter.js.map +1 -0
- package/dist/tokens/build-token-model.d.ts +12 -0
- package/dist/tokens/build-token-model.d.ts.map +1 -0
- package/dist/tokens/build-token-model.js +50 -0
- package/dist/tokens/build-token-model.js.map +1 -0
- package/dist/tokens/classify-token-kind.d.ts +7 -0
- package/dist/tokens/classify-token-kind.d.ts.map +1 -0
- package/dist/tokens/classify-token-kind.js +24 -0
- package/dist/tokens/classify-token-kind.js.map +1 -0
- package/dist/tokens/detect-format.d.ts +6 -0
- package/dist/tokens/detect-format.d.ts.map +1 -0
- package/dist/tokens/detect-format.js +23 -0
- package/dist/tokens/detect-format.js.map +1 -0
- package/dist/tokens/import-schema.d.ts +111 -0
- package/dist/tokens/import-schema.d.ts.map +1 -0
- package/dist/tokens/import-schema.js +45 -0
- package/dist/tokens/import-schema.js.map +1 -0
- package/dist/tokens/import-tokens.d.ts +16 -0
- package/dist/tokens/import-tokens.d.ts.map +1 -0
- package/dist/tokens/import-tokens.js +40 -0
- package/dist/tokens/import-tokens.js.map +1 -0
- package/dist/tokens/index.d.ts +12 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +12 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/naming.d.ts +19 -0
- package/dist/tokens/naming.d.ts.map +1 -0
- package/dist/tokens/naming.js +27 -0
- package/dist/tokens/naming.js.map +1 -0
- package/dist/tokens/normalize-token-collections.d.ts +7 -0
- package/dist/tokens/normalize-token-collections.d.ts.map +1 -0
- package/dist/tokens/normalize-token-collections.js +68 -0
- package/dist/tokens/normalize-token-collections.js.map +1 -0
- package/dist/tokens/resolution.d.ts +7 -0
- package/dist/tokens/resolution.d.ts.map +1 -0
- package/dist/tokens/resolution.js +223 -0
- package/dist/tokens/resolution.js.map +1 -0
- package/dist/tokens/resolve-token-source.d.ts +12 -0
- package/dist/tokens/resolve-token-source.d.ts.map +1 -0
- package/dist/tokens/resolve-token-source.js +37 -0
- package/dist/tokens/resolve-token-source.js.map +1 -0
- package/dist/tokens/types.d.ts +40 -0
- package/dist/tokens/types.d.ts.map +1 -0
- package/dist/tokens/types.js +2 -0
- package/dist/tokens/types.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { createNamingStrategy } from "../../mappings/naming-strategy.js";
|
|
2
|
+
import { resolveRelativeImportTarget } from "./helpers.js";
|
|
3
|
+
function sanitizeVariantName(name) {
|
|
4
|
+
return name.replace(/[^a-zA-Z0-9_$]/g, "");
|
|
5
|
+
}
|
|
6
|
+
export function generateCompositeFile(component, model, config) {
|
|
7
|
+
const namingStrategy = createNamingStrategy(config.naming);
|
|
8
|
+
const componentName = namingStrategy.formatComponentName(component.name);
|
|
9
|
+
if (!component.composite) {
|
|
10
|
+
throw new Error(`Component ${componentName} is not a valid composite object natively.`);
|
|
11
|
+
}
|
|
12
|
+
const typesImport = config.framework.typescript
|
|
13
|
+
? `import type { ${componentName}Props } from "./${componentName}.types.js";`
|
|
14
|
+
: "";
|
|
15
|
+
// Safely collect mapped canonical imports based on internal componentId matching model dynamically!
|
|
16
|
+
const dependencies = new Map(); // Path -> ExportName
|
|
17
|
+
const innerJsxNodes = [];
|
|
18
|
+
for (const child of component.composite.children) {
|
|
19
|
+
// Standard structural placeholder mapping
|
|
20
|
+
if ('componentId' in child) {
|
|
21
|
+
const refId = child.componentId;
|
|
22
|
+
const targetComponent = model.components.find(c => c.id === refId);
|
|
23
|
+
if (targetComponent) {
|
|
24
|
+
const targetName = namingStrategy.formatComponentName(targetComponent.name);
|
|
25
|
+
const importPath = resolveRelativeImportTarget(component, targetComponent, namingStrategy);
|
|
26
|
+
dependencies.set(importPath, targetName);
|
|
27
|
+
// Nest into functional layout structurally
|
|
28
|
+
innerJsxNodes.push(` {/* Instance: ${child.name} */}`);
|
|
29
|
+
innerJsxNodes.push(` <${targetName} />`);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
innerJsxNodes.push(` {/* Unresolved Instance: ${child.name} */}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
innerJsxNodes.push(` {/* Local Node: ${child.name} */}`);
|
|
37
|
+
innerJsxNodes.push(` <div>{/* Nested Elements missing structured abstractions */}</div>`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const importsArray = Array.from(dependencies.entries()).map(([importPath, symbolName]) => {
|
|
41
|
+
// Output clean ESM mappings without file extensions matching folder barrel configs safely!
|
|
42
|
+
return `import { ${symbolName} } from "${importPath}.js";`;
|
|
43
|
+
});
|
|
44
|
+
// Extract local properties matching strictly!
|
|
45
|
+
const destructuredVariants = (component.variants || []).map(v => sanitizeVariantName(v.name)).join(", ");
|
|
46
|
+
let dataAttributes = "";
|
|
47
|
+
if (component.variants && component.variants.length > 0) {
|
|
48
|
+
dataAttributes = component.variants.map(v => {
|
|
49
|
+
const cleanName = sanitizeVariantName(v.name);
|
|
50
|
+
return `data-${cleanName.toLowerCase()}={${cleanName}}`;
|
|
51
|
+
}).join("\n ");
|
|
52
|
+
}
|
|
53
|
+
const internalProps = config.framework.typescript
|
|
54
|
+
? `{ className${destructuredVariants.length ? `, ${destructuredVariants}` : ''}, children, ...props }: ${componentName}Props`
|
|
55
|
+
: `{ className${destructuredVariants.length ? `, ${destructuredVariants}` : ''}, children, ...props }`;
|
|
56
|
+
return `import * as React from "react";\n${typesImport}
|
|
57
|
+
${importsArray.join("\n")}
|
|
58
|
+
|
|
59
|
+
export const ${componentName} = React.forwardRef<HTMLDivElement, ${componentName}Props>(
|
|
60
|
+
(${internalProps}, ref) => {
|
|
61
|
+
return (
|
|
62
|
+
<div
|
|
63
|
+
ref={ref}
|
|
64
|
+
className={className}
|
|
65
|
+
${dataAttributes}
|
|
66
|
+
data-composite="${componentName.toLowerCase()}"
|
|
67
|
+
{...props}
|
|
68
|
+
>
|
|
69
|
+
${innerJsxNodes.join("\n")}
|
|
70
|
+
{children}
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
${componentName}.displayName = "${componentName}";\n`;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=generate-composite-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-composite-file.js","sourceRoot":"","sources":["../../../src/generators/components/generate-composite-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,SAA8B,EAC9B,KAAwB,EACxB,MAAiB;IAEjB,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEzE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,4CAA4C,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU;QAC3C,CAAC,CAAC,iBAAiB,aAAa,mBAAmB,aAAa,aAAa;QAC7E,CAAC,CAAC,EAAE,CAAC;IAET,oGAAoG;IACpG,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,qBAAqB;IAErE,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/C,0CAA0C;QAC1C,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAI,KAAa,CAAC,WAAW,CAAC;YACzC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;YAEnE,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,cAAc,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC5E,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;gBAE3F,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAEzC,2CAA2C;gBAC3C,aAAa,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC;gBAClE,aAAa,CAAC,IAAI,CAAC,gBAAgB,UAAU,KAAK,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACJ,aAAa,CAAC,IAAI,CAAC,wCAAwC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,aAAa,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC;YACpE,aAAa,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QACzG,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE;QACrF,2FAA2F;QAC3F,OAAO,YAAY,UAAU,YAAY,UAAU,OAAO,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,oBAAoB,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzG,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxC,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,QAAQ,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,GAAG,CAAC;QAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU;QAC7C,CAAC,CAAC,cAAc,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,2BAA2B,aAAa,OAAO;QAC7H,CAAC,CAAC,cAAc,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC;IAE3G,OAAO,oCAAoC,WAAW;EACxD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;eAEV,aAAa,uCAAuC,aAAa;OACzE,aAAa;;;;;cAKN,cAAc;8BACE,aAAa,CAAC,WAAW,EAAE;;;EAGvD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;EAMxB,aAAa,mBAAmB,aAAa,MAAM,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentDefinition, PTBConfig } from "@ptb/shared-types";
|
|
2
|
+
/**
|
|
3
|
+
* Builds composite scaffolding interfaces explicitly allowing children injection
|
|
4
|
+
* mimicking standard UI containers dynamically mapping surface variants if they exist.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateCompositeTypesFile(component: ComponentDefinition, config: PTBConfig): string;
|
|
7
|
+
//# sourceMappingURL=generate-composite-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-composite-types.d.ts","sourceRoot":"","sources":["../../../src/generators/components/generate-composite-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAWzF;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAoCpG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createNamingStrategy } from "../../mappings/naming-strategy.js";
|
|
2
|
+
function sanitizeVariantName(name) {
|
|
3
|
+
return name.replace(/[^a-zA-Z0-9_$]/g, "");
|
|
4
|
+
}
|
|
5
|
+
function sanitizeOptionName(option) {
|
|
6
|
+
return option.replace(/["']/g, "");
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Builds composite scaffolding interfaces explicitly allowing children injection
|
|
10
|
+
* mimicking standard UI containers dynamically mapping surface variants if they exist.
|
|
11
|
+
*/
|
|
12
|
+
export function generateCompositeTypesFile(component, config) {
|
|
13
|
+
const namingStrategy = createNamingStrategy(config.naming);
|
|
14
|
+
const componentName = namingStrategy.formatComponentName(component.name);
|
|
15
|
+
let output = `import type * as React from "react";\n\n`;
|
|
16
|
+
const variantProps = [];
|
|
17
|
+
// Map internal overrides or composite level variants just like canonical nodes
|
|
18
|
+
if (component.variants && component.variants.length > 0) {
|
|
19
|
+
component.variants.forEach((v) => {
|
|
20
|
+
const cleanName = sanitizeVariantName(v.name);
|
|
21
|
+
const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
|
|
22
|
+
if (v.type === "boolean") {
|
|
23
|
+
output += `export type ${typeName} = boolean;\n`;
|
|
24
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
25
|
+
}
|
|
26
|
+
else if (v.type === "string" || v.type === "number") {
|
|
27
|
+
const union = v.options.map(opt => `"${sanitizeOptionName(opt)}"`).join(" | ");
|
|
28
|
+
output += `export type ${typeName} = ${union || "string"};\n`;
|
|
29
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
output += "\n";
|
|
33
|
+
}
|
|
34
|
+
output += `export interface ${componentName}Props extends React.HTMLAttributes<HTMLDivElement> {\n`;
|
|
35
|
+
output += variantProps.join("\n");
|
|
36
|
+
if (variantProps.length > 0) {
|
|
37
|
+
output += "\n";
|
|
38
|
+
}
|
|
39
|
+
// Composites implicitly expect complex children nesting vs canonical isolation
|
|
40
|
+
output += `}\n`;
|
|
41
|
+
return output;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=generate-composite-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-composite-types.js","sourceRoot":"","sources":["../../../src/generators/components/generate-composite-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACtC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAA8B,EAAE,MAAiB;IACxF,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEzE,IAAI,MAAM,GAAG,0CAA0C,CAAC;IAExD,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,+EAA+E;IAC/E,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAkB,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,GAAG,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAE7F,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,eAAe,QAAQ,eAAe,CAAC;gBACjD,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,MAAM,QAAQ,GAAG,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/E,MAAM,IAAI,eAAe,QAAQ,MAAM,KAAK,IAAI,QAAQ,KAAK,CAAC;gBAC9D,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,MAAM,QAAQ,GAAG,CAAC,CAAC;YACvD,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,oBAAoB,aAAa,wDAAwD,CAAC;IACpG,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,IAAI,CAAC;IACnB,CAAC;IACD,+EAA+E;IAC/E,MAAM,IAAI,KAAK,CAAC;IAEhB,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ComponentDefinition, PTBConfig } from "@ptb/shared-types";
|
|
2
|
+
/**
|
|
3
|
+
* Derives valid TypeScript union definitions from normalized model variants
|
|
4
|
+
* and safely builds the primary `<ComponentName>Props` interface exposing
|
|
5
|
+
* DOM HTML attributes dynamically based on inferred semantic elements.
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateTypesFile(component: ComponentDefinition, config: PTBConfig): string;
|
|
8
|
+
//# sourceMappingURL=generate-types-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types-file.d.ts","sourceRoot":"","sources":["../../../src/generators/components/generate-types-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAsC,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI5G;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CA4D3F"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { createNamingStrategy } from "../../mappings/naming-strategy.js";
|
|
2
|
+
import { normalizePropName, sanitizeOptionName, inferBaseElement } from "./helpers.js";
|
|
3
|
+
/**
|
|
4
|
+
* Derives valid TypeScript union definitions from normalized model variants
|
|
5
|
+
* and safely builds the primary `<ComponentName>Props` interface exposing
|
|
6
|
+
* DOM HTML attributes dynamically based on inferred semantic elements.
|
|
7
|
+
*/
|
|
8
|
+
export function generateTypesFile(component, config) {
|
|
9
|
+
const namingStrategy = createNamingStrategy(config.naming);
|
|
10
|
+
const componentName = namingStrategy.formatComponentName(component.name);
|
|
11
|
+
let output = `import type * as React from "react";\n\n`;
|
|
12
|
+
const variantProps = [];
|
|
13
|
+
if (component.properties && component.properties.length > 0) {
|
|
14
|
+
component.properties.forEach((p) => {
|
|
15
|
+
const cleanName = normalizePropName(p.name);
|
|
16
|
+
const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
|
|
17
|
+
if (p.type === "boolean") {
|
|
18
|
+
output += `export type ${typeName} = boolean;\n`;
|
|
19
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
20
|
+
}
|
|
21
|
+
else if (p.type === "text") {
|
|
22
|
+
output += `export type ${typeName} = string;\n`;
|
|
23
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
24
|
+
}
|
|
25
|
+
else if (p.type === "instance") {
|
|
26
|
+
output += `export type ${typeName} = React.ReactNode;\n`;
|
|
27
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
28
|
+
}
|
|
29
|
+
else if (p.type === "enum") {
|
|
30
|
+
// Convert options to string literal unions safely
|
|
31
|
+
const union = (p.options || []).map((opt) => `"${sanitizeOptionName(opt)}"`).join(" | ");
|
|
32
|
+
output += `export type ${typeName} = ${union || "string"};\n`;
|
|
33
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
output += "\n";
|
|
37
|
+
}
|
|
38
|
+
else if (component.variants && component.variants.length > 0) {
|
|
39
|
+
component.variants.forEach((v) => {
|
|
40
|
+
const cleanName = normalizePropName(v.name);
|
|
41
|
+
const typeName = `${componentName}${cleanName.charAt(0).toUpperCase() + cleanName.slice(1)}`;
|
|
42
|
+
if (v.type === "boolean") {
|
|
43
|
+
output += `export type ${typeName} = boolean;\n`;
|
|
44
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
45
|
+
}
|
|
46
|
+
else if (v.type === "string" || v.type === "number") {
|
|
47
|
+
// Convert options to string literal unions safely
|
|
48
|
+
const union = (v.options || []).map((opt) => `"${sanitizeOptionName(opt)}"`).join(" | ");
|
|
49
|
+
output += `export type ${typeName} = ${union || "string"};\n`;
|
|
50
|
+
variantProps.push(` ${cleanName}?: ${typeName};`);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
output += "\n";
|
|
54
|
+
}
|
|
55
|
+
const { interfaceName } = inferBaseElement(component.name, component.categoryPath || "");
|
|
56
|
+
output += `export interface ${componentName}Props extends ${interfaceName} {\n`;
|
|
57
|
+
output += variantProps.join("\n");
|
|
58
|
+
if (variantProps.length > 0) {
|
|
59
|
+
output += "\n";
|
|
60
|
+
}
|
|
61
|
+
output += `}\n`;
|
|
62
|
+
return output;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=generate-types-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types-file.js","sourceRoot":"","sources":["../../../src/generators/components/generate-types-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ComponentDefinition } from "@ptb/shared-types";
|
|
2
|
+
/**
|
|
3
|
+
* Converts a raw generic Figma property name into a safe camelCase TypeScript prop name.
|
|
4
|
+
* Exampe: "Property 1" -> "property1", "State" -> "state"
|
|
5
|
+
*/
|
|
6
|
+
export declare function normalizePropName(rawName: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Strips quotes from variant option values to keep types clean.
|
|
9
|
+
*/
|
|
10
|
+
export declare function sanitizeOptionName(option: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Ensures a consistent `./ComponentName.module.css` relative import path.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCssModuleImportPath(componentName: string): string;
|
|
15
|
+
export type BaseElementInfo = {
|
|
16
|
+
tag: string;
|
|
17
|
+
interfaceName: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Infers the most logical HTML base element from the component's name and category.
|
|
21
|
+
* Provides a sensible fallback mapping to React HTMLAttributes.
|
|
22
|
+
*/
|
|
23
|
+
export declare function inferBaseElement(componentName: string, categoryPath: string): BaseElementInfo;
|
|
24
|
+
/**
|
|
25
|
+
* Derives the exact canonical subfolder path to resolve imports predictably securely.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveRelativeImportTarget(sourceComponent: ComponentDefinition, targetComponent: ComponentDefinition, namingStrategy: any): string;
|
|
28
|
+
/**
|
|
29
|
+
* Derives the exact canonical path relative to a component backwards dynamically
|
|
30
|
+
* towards `../../layout/<Primitive>` flawlessly structurally!
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveRelativeLayoutImport(sourceComponent: ComponentDefinition, primitiveName: "Row" | "Stack" | "Grid", namingStrategy: any): string;
|
|
33
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/generators/components/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAwBzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,CAsC7F;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACvC,eAAe,EAAE,mBAAmB,EACpC,eAAe,EAAE,mBAAmB,EACpC,cAAc,EAAE,GAAG,GACpB,MAAM,CAuBR;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACvC,eAAe,EAAE,mBAAmB,EACpC,aAAa,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,EACvC,cAAc,EAAE,GAAG,GACpB,MAAM,CAmBR"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
/**
|
|
3
|
+
* Converts a raw generic Figma property name into a safe camelCase TypeScript prop name.
|
|
4
|
+
* Exampe: "Property 1" -> "property1", "State" -> "state"
|
|
5
|
+
*/
|
|
6
|
+
export function normalizePropName(rawName) {
|
|
7
|
+
if (!rawName)
|
|
8
|
+
return "unknownProp";
|
|
9
|
+
const cleanStr = rawName
|
|
10
|
+
.replace(/([A-Z])/g, " $1") // Insert space before uppercase letters safely
|
|
11
|
+
.replace(/[^a-zA-Z0-9]+/g, " ") // Replace non-alphanumeric with space cleanly
|
|
12
|
+
.trim();
|
|
13
|
+
const camelCase = cleanStr
|
|
14
|
+
.split(/\s+/)
|
|
15
|
+
.map((word, index) => {
|
|
16
|
+
if (index === 0) {
|
|
17
|
+
return word.toLowerCase();
|
|
18
|
+
}
|
|
19
|
+
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
20
|
+
})
|
|
21
|
+
.join("");
|
|
22
|
+
// Ensure it doesn't start with a number
|
|
23
|
+
if (/^[0-9]/.test(camelCase)) {
|
|
24
|
+
return `prop${camelCase}`;
|
|
25
|
+
}
|
|
26
|
+
return camelCase || "unknownProp";
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Strips quotes from variant option values to keep types clean.
|
|
30
|
+
*/
|
|
31
|
+
export function sanitizeOptionName(option) {
|
|
32
|
+
return option.replace(/["']/g, "");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Ensures a consistent `./ComponentName.module.css` relative import path.
|
|
36
|
+
*/
|
|
37
|
+
export function getCssModuleImportPath(componentName) {
|
|
38
|
+
return `./${componentName}.module.css`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Infers the most logical HTML base element from the component's name and category.
|
|
42
|
+
* Provides a sensible fallback mapping to React HTMLAttributes.
|
|
43
|
+
*/
|
|
44
|
+
export function inferBaseElement(componentName, categoryPath) {
|
|
45
|
+
const searchString = `${componentName.toLowerCase()} ${categoryPath.toLowerCase()}`;
|
|
46
|
+
// Form elements
|
|
47
|
+
if (searchString.includes("button") || searchString.includes("btn")) {
|
|
48
|
+
return { tag: "button", interfaceName: "React.ButtonHTMLAttributes<HTMLButtonElement>" };
|
|
49
|
+
}
|
|
50
|
+
if (searchString.includes("input") || searchString.includes("textfield") || searchString.includes("search")) {
|
|
51
|
+
return { tag: "input", interfaceName: "React.InputHTMLAttributes<HTMLInputElement>" };
|
|
52
|
+
}
|
|
53
|
+
if (searchString.includes("checkbox") || searchString.includes("radio") || searchString.includes("switch") || searchString.includes("toggle")) {
|
|
54
|
+
// Typically a wrapper around an input, but for simple skeleton keeping it generic wrapper or input depending on pattern.
|
|
55
|
+
// Usually, a checkbox is a label + input wrapper. A `div` wrapper is safest for a skeletal React component structure.
|
|
56
|
+
return { tag: "div", interfaceName: "React.HTMLAttributes<HTMLDivElement>" };
|
|
57
|
+
}
|
|
58
|
+
if (searchString.includes("select") || searchString.includes("dropdown")) {
|
|
59
|
+
return { tag: "select", interfaceName: "React.SelectHTMLAttributes<HTMLSelectElement>" };
|
|
60
|
+
}
|
|
61
|
+
if (searchString.includes("form")) {
|
|
62
|
+
return { tag: "form", interfaceName: "React.FormHTMLAttributes<HTMLFormElement>" };
|
|
63
|
+
}
|
|
64
|
+
// Media
|
|
65
|
+
if (searchString.includes("image") || searchString.includes("img") || searchString.includes("avatar")) {
|
|
66
|
+
return { tag: "img", interfaceName: "React.ImgHTMLAttributes<HTMLImageElement>" };
|
|
67
|
+
}
|
|
68
|
+
// Text / Typography
|
|
69
|
+
if (searchString.includes("text") || searchString.includes("typography") || searchString.includes("heading") || searchString.includes("title") || searchString.includes("paragraph")) {
|
|
70
|
+
return { tag: "span", interfaceName: "React.HTMLAttributes<HTMLSpanElement>" };
|
|
71
|
+
}
|
|
72
|
+
if (searchString.includes("icon")) {
|
|
73
|
+
// Icons are often SVG or span wrappers
|
|
74
|
+
return { tag: "span", interfaceName: "React.HTMLAttributes<HTMLSpanElement>" };
|
|
75
|
+
}
|
|
76
|
+
// Default Fallback
|
|
77
|
+
return { tag: "div", interfaceName: "React.HTMLAttributes<HTMLDivElement>" };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Derives the exact canonical subfolder path to resolve imports predictably securely.
|
|
81
|
+
*/
|
|
82
|
+
export function resolveRelativeImportTarget(sourceComponent, targetComponent, namingStrategy) {
|
|
83
|
+
const sourceFolder = namingStrategy.formatFolderName(sourceComponent.name);
|
|
84
|
+
let sourcePath = sourceFolder;
|
|
85
|
+
if (sourceComponent.categoryPath) {
|
|
86
|
+
const sourceCategory = namingStrategy.formatFolderName(sourceComponent.categoryPath);
|
|
87
|
+
sourcePath = path.posix.join(sourceCategory, sourceFolder);
|
|
88
|
+
}
|
|
89
|
+
const targetFolder = namingStrategy.formatFolderName(targetComponent.name);
|
|
90
|
+
let targetPath = targetFolder;
|
|
91
|
+
if (targetComponent.categoryPath) {
|
|
92
|
+
const targetCategory = namingStrategy.formatFolderName(targetComponent.categoryPath);
|
|
93
|
+
targetPath = path.posix.join(targetCategory, targetFolder);
|
|
94
|
+
}
|
|
95
|
+
// Since both start relative to `packages/ui/src/components/`, find relative distance natively!
|
|
96
|
+
// path.posix to enforce forward slashes in compiled code cleanly
|
|
97
|
+
let relativeStr = path.posix.relative(sourcePath, targetPath);
|
|
98
|
+
if (!relativeStr.startsWith(".")) {
|
|
99
|
+
relativeStr = `./${relativeStr}`;
|
|
100
|
+
}
|
|
101
|
+
return `${relativeStr}/${targetFolder}`;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Derives the exact canonical path relative to a component backwards dynamically
|
|
105
|
+
* towards `../../layout/<Primitive>` flawlessly structurally!
|
|
106
|
+
*/
|
|
107
|
+
export function resolveRelativeLayoutImport(sourceComponent, primitiveName, namingStrategy) {
|
|
108
|
+
const sourceFolder = namingStrategy.formatFolderName(sourceComponent.name);
|
|
109
|
+
let sourcePath = sourceFolder;
|
|
110
|
+
if (sourceComponent.categoryPath) {
|
|
111
|
+
const sourceCategory = namingStrategy.formatFolderName(sourceComponent.categoryPath);
|
|
112
|
+
sourcePath = path.posix.join(sourceCategory, sourceFolder);
|
|
113
|
+
}
|
|
114
|
+
// `packages/ui/src/components` vs `packages/ui/src/layout` -> we go up one level from `components/`
|
|
115
|
+
// SourcePath represents distance *inside* `components/`. We must escape components natively!
|
|
116
|
+
let pathAcc = ".."; // Escaping the 'components' folder boundary logically
|
|
117
|
+
// Each level deep inside components adds another `../`
|
|
118
|
+
const depth = sourcePath.split("/").length;
|
|
119
|
+
for (let i = 0; i < depth; i++) {
|
|
120
|
+
pathAcc = path.posix.join("..", pathAcc);
|
|
121
|
+
}
|
|
122
|
+
return path.posix.join(pathAcc, "layout", primitiveName);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/generators/components/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./generate-types-file.js";
|
|
2
|
+
export * from "./generate-component-file.js";
|
|
3
|
+
export * from "./write-components.js";
|
|
4
|
+
export * from "./prune-components.js";
|
|
5
|
+
export * from "./helpers.js";
|
|
6
|
+
export * from "./token-helpers.js";
|
|
7
|
+
export * from "./generate-composite-types.js";
|
|
8
|
+
export * from "./generate-composite-file.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./generate-types-file.js";
|
|
2
|
+
export * from "./generate-component-file.js";
|
|
3
|
+
export * from "./write-components.js";
|
|
4
|
+
export * from "./prune-components.js";
|
|
5
|
+
export * from "./helpers.js";
|
|
6
|
+
export * from "./token-helpers.js";
|
|
7
|
+
// Merged Composite Generators
|
|
8
|
+
export * from "./generate-composite-types.js";
|
|
9
|
+
export * from "./generate-composite-file.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AAEnC,8BAA8B;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LayoutTreeNode, ComponentDefinition, DesignSystemModel } from "@ptb/shared-types";
|
|
2
|
+
export interface LayoutJSXResult {
|
|
3
|
+
jsx: string;
|
|
4
|
+
dependencies: Map<string, string>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Generates recursive Flexbox JSX structure from a normalized LayoutTreeNode.
|
|
8
|
+
*
|
|
9
|
+
* @param node The layout tree node to process
|
|
10
|
+
* @param indentLevel The current string indentation for pretty printing
|
|
11
|
+
* @returns Formatted JSX string containing structural <div> instances and leaf implementations
|
|
12
|
+
*/
|
|
13
|
+
export declare function generateLayoutJSX(node: LayoutTreeNode, sourceComponent: ComponentDefinition, model: DesignSystemModel, namingStrategy: any, indentLevel?: number): LayoutJSXResult;
|
|
14
|
+
//# sourceMappingURL=layout-jsx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-jsx.d.ts","sourceRoot":"","sources":["../../../src/generators/components/layout-jsx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAkB,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAIhH,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,cAAc,EACpB,eAAe,EAAE,mBAAmB,EACpC,KAAK,EAAE,iBAAiB,EACxB,cAAc,EAAE,GAAG,EACnB,WAAW,GAAE,MAAU,GACxB,eAAe,CA2EjB"}
|