@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,116 @@
|
|
|
1
|
+
import * as fs from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { generateCompositeTypesFile } from "./generate-composite-types.js";
|
|
4
|
+
import { generateCompositeFile } from "./generate-composite-file.js";
|
|
5
|
+
import { resolveDSPaths } from "../../filesystem/resolve-ds-paths.js";
|
|
6
|
+
import { createNamingStrategy } from "../../mappings/naming-strategy.js";
|
|
7
|
+
export async function writeComposites(model, config) {
|
|
8
|
+
const report = {
|
|
9
|
+
createdFiles: [],
|
|
10
|
+
skippedFiles: []
|
|
11
|
+
};
|
|
12
|
+
const namingStrategy = createNamingStrategy(config.naming);
|
|
13
|
+
const { componentsDir } = resolveDSPaths(config);
|
|
14
|
+
const useTypescript = config.framework.typescript;
|
|
15
|
+
// Filter strictly for Composite groupings (layouts mapping instances)
|
|
16
|
+
const compositeComponents = (model.components || []).filter(c => !!c.composite);
|
|
17
|
+
// Track index natively matching `writeComponents`
|
|
18
|
+
const categoryIndexMap = new Map(); // categoryFolder -> indexExports
|
|
19
|
+
for (const component of compositeComponents) {
|
|
20
|
+
const folderName = namingStrategy.formatFolderName(component.name);
|
|
21
|
+
const componentName = namingStrategy.formatComponentName(component.name);
|
|
22
|
+
let folderPath = path.join(componentsDir, folderName);
|
|
23
|
+
let exportPath = `./${folderName}/index.js`;
|
|
24
|
+
let categoryFolder = "";
|
|
25
|
+
if (component.categoryPath) {
|
|
26
|
+
categoryFolder = namingStrategy.formatFolderName(component.categoryPath);
|
|
27
|
+
folderPath = path.join(componentsDir, categoryFolder, folderName);
|
|
28
|
+
exportPath = `./${categoryFolder}/${folderName}/index.js`;
|
|
29
|
+
if (!categoryIndexMap.has(categoryFolder)) {
|
|
30
|
+
categoryIndexMap.set(categoryFolder, []);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
if (!categoryIndexMap.has("__root_category_unassigned")) {
|
|
35
|
+
categoryIndexMap.set("__root_category_unassigned", []);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
await fs.mkdir(folderPath, { recursive: true });
|
|
39
|
+
// Setup Structural Names
|
|
40
|
+
const componentExt = useTypescript ? "tsx" : "jsx";
|
|
41
|
+
const componentFileName = `${componentName}.${componentExt}`;
|
|
42
|
+
const typesFileName = `${componentName}.types.ts`;
|
|
43
|
+
const indexFileName = `index.${useTypescript ? "ts" : "js"}`;
|
|
44
|
+
const componentFilePath = path.join(folderPath, componentFileName);
|
|
45
|
+
const typesFilePath = path.join(folderPath, typesFileName);
|
|
46
|
+
const indexFilePath = path.join(folderPath, indexFileName);
|
|
47
|
+
// Brownfield Native checks per component structural bound !
|
|
48
|
+
// 1. Types File
|
|
49
|
+
if (useTypescript) {
|
|
50
|
+
try {
|
|
51
|
+
await fs.stat(typesFilePath);
|
|
52
|
+
report.skippedFiles.push(`${folderName}/${typesFileName}`);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
const typesContent = generateCompositeTypesFile(component, config);
|
|
56
|
+
await fs.writeFile(typesFilePath, typesContent, "utf-8");
|
|
57
|
+
report.createdFiles.push(`${folderName}/${typesFileName}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// 2. React UI Composite Component
|
|
61
|
+
try {
|
|
62
|
+
await fs.stat(componentFilePath);
|
|
63
|
+
report.skippedFiles.push(`${folderName}/${componentFileName}`);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
const componentContent = generateCompositeFile(component, model, config);
|
|
67
|
+
await fs.writeFile(componentFilePath, componentContent, "utf-8");
|
|
68
|
+
report.createdFiles.push(`${folderName}/${componentFileName}`);
|
|
69
|
+
}
|
|
70
|
+
// 3. Folder Barrel
|
|
71
|
+
try {
|
|
72
|
+
await fs.stat(indexFilePath);
|
|
73
|
+
report.skippedFiles.push(`${folderName}/${indexFileName}`);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
const indexContent = `export * from "./${componentName}.js";\n`;
|
|
77
|
+
await fs.writeFile(indexFilePath, indexContent, "utf-8");
|
|
78
|
+
report.createdFiles.push(`${folderName}/${indexFileName}`);
|
|
79
|
+
}
|
|
80
|
+
const mapKey = categoryFolder || "__root_category_unassigned";
|
|
81
|
+
categoryIndexMap.get(mapKey)?.push(`export * from "./${folderName}/index.js";`);
|
|
82
|
+
}
|
|
83
|
+
// Since index.ts mapping is sensitive, composite writes simply APPEND to the native index avoiding overwrites.
|
|
84
|
+
// Unlike canonical elements, composites are additive onto the category exports.
|
|
85
|
+
for (const [category, exports] of categoryIndexMap.entries()) {
|
|
86
|
+
const rootIndexPath = category === "__root_category_unassigned"
|
|
87
|
+
? path.join(componentsDir, `index.${useTypescript ? "ts" : "js"}`)
|
|
88
|
+
: path.join(componentsDir, category, `index.${useTypescript ? "ts" : "js"}`);
|
|
89
|
+
try {
|
|
90
|
+
const existingStat = await fs.stat(rootIndexPath);
|
|
91
|
+
if (existingStat.isFile()) {
|
|
92
|
+
// If it exists safely append dynamically without exploding existing references
|
|
93
|
+
const existingContent = await fs.readFile(rootIndexPath, "utf-8");
|
|
94
|
+
const newExports = exports.filter(exp => !existingContent.includes(exp));
|
|
95
|
+
if (newExports.length > 0) {
|
|
96
|
+
await fs.appendFile(rootIndexPath, `\n// Generated Composite Layouts\n${newExports.join("\n")}\n`);
|
|
97
|
+
report.createdFiles.push(`${category}/index.ts (appended)`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
report.skippedFiles.push(`${category}/index.ts (barrel tracked)`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// Rebuild missing index locally safely
|
|
106
|
+
const indexContent = `/**
|
|
107
|
+
* Generated Design System Composite Layouts
|
|
108
|
+
* Prompt-to-Both native safe mappings.
|
|
109
|
+
*/\n\n${exports.join("\n")}\n`;
|
|
110
|
+
await fs.writeFile(rootIndexPath, indexContent, "utf-8");
|
|
111
|
+
report.createdFiles.push(`${category}/index.ts (composite barrel)`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return report;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=write-composites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-composites.js","sourceRoot":"","sources":["../../../src/generators/composites/write-composites.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PTBGenerator } from "@ptb/shared-types";
|
|
2
|
+
declare class GeneratorRegistry {
|
|
3
|
+
private generators;
|
|
4
|
+
register(name: string, generator: PTBGenerator): void;
|
|
5
|
+
get(name: string): PTBGenerator | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare const generatorRegistry: GeneratorRegistry;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/generators/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,cAAM,iBAAiB;IACnB,OAAO,CAAC,UAAU,CAAmC;IAErD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY;IAI9C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;CAG9C;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class GeneratorRegistry {
|
|
2
|
+
generators = new Map();
|
|
3
|
+
register(name, generator) {
|
|
4
|
+
this.generators.set(name, generator);
|
|
5
|
+
}
|
|
6
|
+
get(name) {
|
|
7
|
+
return this.generators.get(name);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export const generatorRegistry = new GeneratorRegistry();
|
|
11
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/generators/registry.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB;IACX,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;IAErD,QAAQ,CAAC,IAAY,EAAE,SAAuB;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,IAAY;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functions to generate valid placeholder strings for scaffolding.
|
|
3
|
+
*/
|
|
4
|
+
export declare function generateMainComponentContent(componentName: string, typescript: boolean): string;
|
|
5
|
+
export declare function generateTypesContent(componentName: string): string;
|
|
6
|
+
export declare function generateStoriesContent(componentName: string, typescript: boolean): string;
|
|
7
|
+
export declare function generateTestsContent(componentName: string): string;
|
|
8
|
+
export declare function generateIndexContent(componentName: string): string;
|
|
9
|
+
//# sourceMappingURL=generate-placeholder-component-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-placeholder-component-content.d.ts","sourceRoot":"","sources":["../../../src/generators/scaffold/generate-placeholder-component-content.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAkB/F;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAUlE;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAoBzF;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAWlE;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAElE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functions to generate valid placeholder strings for scaffolding.
|
|
3
|
+
*/
|
|
4
|
+
export function generateMainComponentContent(componentName, typescript) {
|
|
5
|
+
const ext = typescript ? "ts" : "js";
|
|
6
|
+
const typesImport = typescript ? `\nimport type { ${componentName}Props } from "./${componentName}.types";\n` : "";
|
|
7
|
+
const propsType = typescript ? `: ${componentName}Props` : "";
|
|
8
|
+
return `import * as React from "react";${typesImport}
|
|
9
|
+
/**
|
|
10
|
+
* TODO: Implement ${componentName} structure.
|
|
11
|
+
* This is an auto-generated scaffold from Prompt-to-Both.
|
|
12
|
+
*/
|
|
13
|
+
export function ${componentName}(props${propsType}) {
|
|
14
|
+
return (
|
|
15
|
+
<div>
|
|
16
|
+
{/* ${componentName} Body */}
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
`;
|
|
21
|
+
}
|
|
22
|
+
export function generateTypesContent(componentName) {
|
|
23
|
+
return `/**
|
|
24
|
+
* Shared types for ${componentName}
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
export interface ${componentName}Props {
|
|
28
|
+
className?: string;
|
|
29
|
+
children?: React.ReactNode;
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
export function generateStoriesContent(componentName, typescript) {
|
|
34
|
+
const ext = typescript ? "ts" : "js";
|
|
35
|
+
const typesImport = typescript ? `import type { Meta, StoryObj } from "@storybook/react";\n` : "";
|
|
36
|
+
return `import * as React from "react";
|
|
37
|
+
${typesImport}import { ${componentName} } from "./${componentName}";
|
|
38
|
+
|
|
39
|
+
const meta = {
|
|
40
|
+
title: "Components/${componentName}",
|
|
41
|
+
component: ${componentName},
|
|
42
|
+
tags: ["autodocs"],
|
|
43
|
+
}${typescript ? " satisfies Meta<typeof " + componentName + ">" : ""};
|
|
44
|
+
|
|
45
|
+
export default meta;
|
|
46
|
+
${typescript ? "type Story = StoryObj<typeof meta>;" : ""}
|
|
47
|
+
|
|
48
|
+
export const Default${typescript ? ": Story" : ""} = {
|
|
49
|
+
args: {},
|
|
50
|
+
};
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
export function generateTestsContent(componentName) {
|
|
54
|
+
return `import * as React from "react";
|
|
55
|
+
import { render } from "@testing-library/react";
|
|
56
|
+
import { ${componentName} } from "./${componentName}";
|
|
57
|
+
|
|
58
|
+
describe("${componentName}", () => {
|
|
59
|
+
it("renders without crashing", () => {
|
|
60
|
+
render(<${componentName} />);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
`;
|
|
64
|
+
}
|
|
65
|
+
export function generateIndexContent(componentName) {
|
|
66
|
+
return `export * from "./${componentName}";\n`;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=generate-placeholder-component-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-placeholder-component-content.js","sourceRoot":"","sources":["../../../src/generators/scaffold/generate-placeholder-component-content.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,4BAA4B,CAAC,aAAqB,EAAE,UAAmB;IACnF,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,mBAAmB,aAAa,mBAAmB,aAAa,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnH,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,aAAa,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9D,OAAO,kCAAkC,WAAW;;qBAEnC,aAAa;;;kBAGhB,aAAa,SAAS,SAAS;;;YAGrC,aAAa;;;;CAIxB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACtD,OAAO;sBACW,aAAa;;;mBAGhB,aAAa;;;;CAI/B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,aAAqB,EAAE,UAAmB;IAC7E,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,EAAE,CAAC;IAElG,OAAO;EACT,WAAW,YAAY,aAAa,cAAc,aAAa;;;uBAG1C,aAAa;eACrB,aAAa;;GAEzB,UAAU,CAAC,CAAC,CAAC,yBAAyB,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;;;EAGlE,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE;;sBAEnC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;CAGhD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACtD,OAAO;;WAEA,aAAa,cAAc,aAAa;;YAEvC,aAAa;;cAEX,aAAa;;;CAG1B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACtD,OAAO,oBAAoB,aAAa,MAAM,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/scaffold/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/scaffold/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PTBConfig, DesignSystemModel, RegistrySnapshot, DependencyGraph, FileMapping } from "@ptb/shared-types";
|
|
2
|
+
import type { ScaffoldPlan } from "../../scaffold-plan/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Orchestrates writing the complete design system codebase to the filesystem.
|
|
5
|
+
*/
|
|
6
|
+
export declare function writeScaffold(args: {
|
|
7
|
+
config: PTBConfig;
|
|
8
|
+
model: DesignSystemModel;
|
|
9
|
+
registry: RegistrySnapshot;
|
|
10
|
+
graph: DependencyGraph;
|
|
11
|
+
mappings: FileMapping[];
|
|
12
|
+
plan: ScaffoldPlan;
|
|
13
|
+
}): Promise<import("@ptb/shared-types").ScaffoldWriteReport>;
|
|
14
|
+
//# sourceMappingURL=write-scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-scaffold.d.ts","sourceRoot":"","sources":["../../../src/generators/scaffold/write-scaffold.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAWjE;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,EAAE,YAAY,CAAC;CACtB,GAAG,OAAO,CAAC,OAAO,mBAAmB,EAAE,mBAAmB,CAAC,CA0F3D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import { ensureDir, writeJson, writeText } from "../../filesystem/index.js";
|
|
3
|
+
import { generateTokenFileContent } from "../tokens/generate-token-file-content.js";
|
|
4
|
+
import { generateMainComponentContent, generateTypesContent, generateStoriesContent, generateTestsContent, generateIndexContent } from "./generate-placeholder-component-content.js";
|
|
5
|
+
/**
|
|
6
|
+
* Orchestrates writing the complete design system codebase to the filesystem.
|
|
7
|
+
*/
|
|
8
|
+
export async function writeScaffold(args) {
|
|
9
|
+
const { config, model, registry, graph, mappings, plan } = args;
|
|
10
|
+
const rootDir = config.project.rootDir || process.cwd();
|
|
11
|
+
const report = {
|
|
12
|
+
createdDirectories: [],
|
|
13
|
+
createdFiles: [],
|
|
14
|
+
skippedFiles: [],
|
|
15
|
+
writtenMetadataFiles: [],
|
|
16
|
+
};
|
|
17
|
+
// 1. Ensure Metadata directory exists
|
|
18
|
+
const metadataAbsPath = path.resolve(rootDir, config.output.metadataDir);
|
|
19
|
+
await ensureDir(metadataAbsPath);
|
|
20
|
+
report.createdDirectories.push(config.output.metadataDir);
|
|
21
|
+
// 2. Write Snapshot Metadata files (always overwrite)
|
|
22
|
+
const metadataFiles = [
|
|
23
|
+
"design-system.model.json",
|
|
24
|
+
"component-registry.json",
|
|
25
|
+
"dependency-graph.json",
|
|
26
|
+
"scaffold-plan.json"
|
|
27
|
+
];
|
|
28
|
+
await writeJson(path.join(metadataAbsPath, metadataFiles[0]), model);
|
|
29
|
+
await writeJson(path.join(metadataAbsPath, metadataFiles[1]), registry);
|
|
30
|
+
await writeJson(path.join(metadataAbsPath, metadataFiles[2]), graph);
|
|
31
|
+
await writeJson(path.join(metadataAbsPath, metadataFiles[3]), plan);
|
|
32
|
+
report.writtenMetadataFiles.push(...metadataFiles.map(f => path.join(config.output.metadataDir, f)));
|
|
33
|
+
// 3. Ensure all target Scaffold Directories exist
|
|
34
|
+
for (const dirPath of plan.directories) {
|
|
35
|
+
const absDirPath = path.resolve(rootDir, dirPath);
|
|
36
|
+
await ensureDir(absDirPath);
|
|
37
|
+
report.createdDirectories.push(dirPath);
|
|
38
|
+
}
|
|
39
|
+
// 4. Create Scaffold Files Safely
|
|
40
|
+
for (const filePlan of plan.files) {
|
|
41
|
+
const absFilePath = path.resolve(rootDir, filePlan.filePath);
|
|
42
|
+
let contentToWrite = filePlan.contentPlaceholder;
|
|
43
|
+
// Provide sensible default logic depending on the filePlan type
|
|
44
|
+
if (filePlan.type === "tokens") {
|
|
45
|
+
// Find the associated token collection
|
|
46
|
+
const fileName = path.basename(filePlan.filePath, ".ts");
|
|
47
|
+
const collectionName = fileName;
|
|
48
|
+
const targetCollection = model.tokens.find(t => t.name.toLowerCase().replace(/[^a-z0-9]/g, "") === collectionName.toLowerCase().replace(/[^a-z0-9]/g, ""));
|
|
49
|
+
if (targetCollection) {
|
|
50
|
+
contentToWrite = generateTokenFileContent(targetCollection);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const parsed = path.parse(filePlan.filePath);
|
|
55
|
+
const cleanName = parsed.name.split(".")[0] || "Unknown";
|
|
56
|
+
switch (filePlan.type) {
|
|
57
|
+
case "react-component":
|
|
58
|
+
contentToWrite = generateMainComponentContent(cleanName, config.framework.typescript);
|
|
59
|
+
break;
|
|
60
|
+
case "types":
|
|
61
|
+
contentToWrite = generateTypesContent(cleanName);
|
|
62
|
+
break;
|
|
63
|
+
case "stories":
|
|
64
|
+
contentToWrite = generateStoriesContent(cleanName, config.framework.typescript);
|
|
65
|
+
break;
|
|
66
|
+
case "tests":
|
|
67
|
+
contentToWrite = generateTestsContent(cleanName);
|
|
68
|
+
break;
|
|
69
|
+
case "index":
|
|
70
|
+
contentToWrite = generateIndexContent(cleanName);
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Attempt to write text natively. `overwrite: false` protects user code
|
|
75
|
+
const wasWritten = await writeText(absFilePath, contentToWrite, { overwrite: false });
|
|
76
|
+
if (wasWritten) {
|
|
77
|
+
report.createdFiles.push(filePlan.filePath);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
report.skippedFiles.push(filePlan.filePath);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// De-duplicate directories safely for cleaner reporting
|
|
84
|
+
report.createdDirectories = Array.from(new Set(report.createdDirectories));
|
|
85
|
+
return report;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=write-scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-scaffold.js","sourceRoot":"","sources":["../../../src/generators/scaffold/write-scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TokenCollection } from "@ptb/shared-types";
|
|
2
|
+
/**
|
|
3
|
+
* Generates vanilla CSS Variables content for a specific Token Collection securely mapping the literal strings natively.
|
|
4
|
+
*/
|
|
5
|
+
export declare function generateTokenCssContent(collection: TokenCollection): string;
|
|
6
|
+
//# sourceMappingURL=generate-token-css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-token-css.d.ts","sourceRoot":"","sources":["../../../src/generators/tokens/generate-token-css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAYzD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAqB3E"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a Figma token name inherently into a safe predictable CSS Custom Property segment.
|
|
3
|
+
* e.g., "Brand / 900" -> "brand-900"
|
|
4
|
+
*/
|
|
5
|
+
function normalizeCssVarName(name) {
|
|
6
|
+
return name.toLowerCase()
|
|
7
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
8
|
+
.replace(/(^-|-$)/g, "");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Generates vanilla CSS Variables content for a specific Token Collection securely mapping the literal strings natively.
|
|
12
|
+
*/
|
|
13
|
+
export function generateTokenCssContent(collection) {
|
|
14
|
+
const categoryName = normalizeCssVarName(collection.name);
|
|
15
|
+
let cssVars = "";
|
|
16
|
+
for (const t of collection.tokens) {
|
|
17
|
+
const safeTokenName = normalizeCssVarName(t.name);
|
|
18
|
+
// Expose primitive string interpolation strictly mapping standard numeric resolutions elegantly
|
|
19
|
+
let valueStr = typeof t.value === "string" ? t.value : `${t.value}px`;
|
|
20
|
+
cssVars += ` --ptb-${categoryName}-${safeTokenName}: ${valueStr};\n`;
|
|
21
|
+
}
|
|
22
|
+
return `/**
|
|
23
|
+
* Generated Design Tokens: ${collection.name} (CSS Variables)
|
|
24
|
+
* Do not edit. This file is auto-generated by Prompt-to-Both.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
:root {
|
|
28
|
+
${cssVars}}
|
|
29
|
+
`;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=generate-token-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-token-css.js","sourceRoot":"","sources":["../../../src/generators/tokens/generate-token-css.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,WAAW,EAAE;SACpB,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA2B;IAC/D,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAElD,gGAAgG;QAChG,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;QAEtE,OAAO,IAAI,WAAW,YAAY,IAAI,aAAa,KAAK,QAAQ,KAAK,CAAC;IAC1E,CAAC;IAED,OAAO;8BACmB,UAAU,CAAC,IAAI;;;;;EAK3C,OAAO;CACR,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TokenCollection } from "@ptb/shared-types";
|
|
2
|
+
/**
|
|
3
|
+
* Generates TypeScript constant file content for a Token Collection.
|
|
4
|
+
*/
|
|
5
|
+
export declare function generateTokenFileContent(collection: TokenCollection): string;
|
|
6
|
+
//# sourceMappingURL=generate-token-file-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-token-file-content.d.ts","sourceRoot":"","sources":["../../../src/generators/tokens/generate-token-file-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAwB5E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates TypeScript constant file content for a Token Collection.
|
|
3
|
+
*/
|
|
4
|
+
export function generateTokenFileContent(collection) {
|
|
5
|
+
const safeName = collection.name.replace(/[^a-zA-Z0-9_]/g, "");
|
|
6
|
+
let tokensContent = "";
|
|
7
|
+
for (const t of collection.tokens) {
|
|
8
|
+
// We output only the default mode explicitly initially for a clean shape based on the canonical value
|
|
9
|
+
const jsonValue = JSON.stringify(t.value, null, 4).replace(/\n/g, "\n ");
|
|
10
|
+
tokensContent += `
|
|
11
|
+
"${t.name}": {
|
|
12
|
+
id: "${t.id}",
|
|
13
|
+
name: "${t.name}",
|
|
14
|
+
type: "${t.type}",
|
|
15
|
+
value: ${jsonValue}
|
|
16
|
+
},`;
|
|
17
|
+
}
|
|
18
|
+
return `/**
|
|
19
|
+
* Generated Design Tokens: ${collection.name}
|
|
20
|
+
* Do not edit. This file is auto-generated by Prompt-to-Both.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
export const ${safeName}Tokens = {${tokensContent}
|
|
24
|
+
} as const;
|
|
25
|
+
`;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=generate-token-file-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-token-file-content.js","sourceRoot":"","sources":["../../../src/generators/tokens/generate-token-file-content.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAA2B;IAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAE/D,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAClC,sGAAsG;QACtG,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5E,aAAa,IAAI;KAChB,CAAC,CAAC,IAAI;WACA,CAAC,CAAC,EAAE;aACF,CAAC,CAAC,IAAI;aACN,CAAC,CAAC,IAAI;aACN,SAAS;KACjB,CAAC;IACJ,CAAC;IAED,OAAO;8BACqB,UAAU,CAAC,IAAI;;;;eAI9B,QAAQ,aAAa,aAAa;;CAEhD,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DesignSystemModel, PTBConfig } from "@ptb/shared-types";
|
|
2
|
+
export type WriteTokensReport = {
|
|
3
|
+
createdFiles: string[];
|
|
4
|
+
skippedFiles: string[];
|
|
5
|
+
};
|
|
6
|
+
export type WriteTokensOptions = {
|
|
7
|
+
forceOverwriteTokens?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Orchestrates writing the Token file payload outputs to the developer's
|
|
11
|
+
* active codebase safely without overwriting exiting constraints.
|
|
12
|
+
*/
|
|
13
|
+
export declare function writeTokens(model: DesignSystemModel, config: PTBConfig, options?: WriteTokensOptions): Promise<WriteTokensReport>;
|
|
14
|
+
//# sourceMappingURL=write-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-tokens.d.ts","sourceRoot":"","sources":["../../../src/generators/tokens/write-tokens.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKtE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAWF;;;GAGG;AACH,wBAAsB,WAAW,CAC7B,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAkF5B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as fs from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { generateTokenFileContent } from "./generate-token-file-content.js";
|
|
4
|
+
import { generateTokenCssContent } from "./generate-token-css.js";
|
|
5
|
+
import { resolveDSPaths } from "../../filesystem/resolve-ds-paths.js";
|
|
6
|
+
/**
|
|
7
|
+
* Normalizes a Figma collection name perfectly into a safe file path.
|
|
8
|
+
*/
|
|
9
|
+
function normalizeFilename(name) {
|
|
10
|
+
return name.toLowerCase()
|
|
11
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
12
|
+
.replace(/(^-|-$)/g, "");
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Orchestrates writing the Token file payload outputs to the developer's
|
|
16
|
+
* active codebase safely without overwriting exiting constraints.
|
|
17
|
+
*/
|
|
18
|
+
export async function writeTokens(model, config, options) {
|
|
19
|
+
const report = {
|
|
20
|
+
createdFiles: [],
|
|
21
|
+
skippedFiles: []
|
|
22
|
+
};
|
|
23
|
+
const { tokensDir } = resolveDSPaths(config);
|
|
24
|
+
const cssTokensDir = path.join(tokensDir, "css");
|
|
25
|
+
// Ensure output directories exist
|
|
26
|
+
await fs.mkdir(tokensDir, { recursive: true });
|
|
27
|
+
await fs.mkdir(cssTokensDir, { recursive: true });
|
|
28
|
+
const indexExports = [];
|
|
29
|
+
const cssIndexImports = [];
|
|
30
|
+
for (const collection of model.tokens) {
|
|
31
|
+
const safeName = normalizeFilename(collection.name);
|
|
32
|
+
const fileName = `${safeName}.ts`;
|
|
33
|
+
const filePath = path.join(tokensDir, fileName);
|
|
34
|
+
const content = generateTokenFileContent(collection);
|
|
35
|
+
// Brownfield safety check natively matching scaffold pipeline style
|
|
36
|
+
try {
|
|
37
|
+
if (options?.forceOverwriteTokens)
|
|
38
|
+
throw new Error("overwrite_trigger"); // Force skip into catch natively
|
|
39
|
+
await fs.stat(filePath);
|
|
40
|
+
report.skippedFiles.push(fileName);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
await fs.writeFile(filePath, content, "utf-8");
|
|
44
|
+
report.createdFiles.push(fileName);
|
|
45
|
+
}
|
|
46
|
+
indexExports.push(`export * from "./${safeName}.js";`);
|
|
47
|
+
// Generate matching CSS Variable structure output deterministically
|
|
48
|
+
const cssContent = generateTokenCssContent(collection);
|
|
49
|
+
const cssFileName = `${safeName}.css`;
|
|
50
|
+
const cssFilePath = path.join(cssTokensDir, cssFileName);
|
|
51
|
+
try {
|
|
52
|
+
if (options?.forceOverwriteTokens)
|
|
53
|
+
throw new Error("overwrite_trigger");
|
|
54
|
+
await fs.stat(cssFilePath);
|
|
55
|
+
report.skippedFiles.push(`css/${cssFileName}`);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
await fs.writeFile(cssFilePath, cssContent, "utf-8");
|
|
59
|
+
report.createdFiles.push(`css/${cssFileName}`);
|
|
60
|
+
}
|
|
61
|
+
cssIndexImports.push(`@import "./${cssFileName}";`);
|
|
62
|
+
}
|
|
63
|
+
// Attempt pushing index.ts
|
|
64
|
+
const indexPath = path.join(tokensDir, "index.ts");
|
|
65
|
+
const cssIndexPath = path.join(cssTokensDir, "index.css");
|
|
66
|
+
try {
|
|
67
|
+
if (options?.forceOverwriteTokens)
|
|
68
|
+
throw new Error("overwrite_trigger");
|
|
69
|
+
await fs.stat(indexPath);
|
|
70
|
+
// If it exists but we generated files, we might need to overwrite or skip.
|
|
71
|
+
// Based on "safely regenerates it" direction: skip unless architecturally handled elsewhere.
|
|
72
|
+
// It's safer to just skip it if it exists and let the user aggregate it for now.
|
|
73
|
+
report.skippedFiles.push("index.ts");
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
const indexContent = `/**
|
|
77
|
+
* Generated Design Tokens Index
|
|
78
|
+
* Do not edit. This file is auto-generated by Prompt-to-Both.
|
|
79
|
+
*/\n\n${indexExports.join("\n")}\n`;
|
|
80
|
+
await fs.writeFile(indexPath, indexContent, "utf-8");
|
|
81
|
+
report.createdFiles.push("index.ts");
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
if (options?.forceOverwriteTokens)
|
|
85
|
+
throw new Error("overwrite_trigger");
|
|
86
|
+
await fs.stat(cssIndexPath);
|
|
87
|
+
report.skippedFiles.push("css/index.css");
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
const indexCssContent = `/**\n * Generated Design Tokens Index (CSS)\n * Do not edit.\n */\n\n${cssIndexImports.join("\n")}\n`;
|
|
91
|
+
await fs.writeFile(cssIndexPath, indexCssContent, "utf-8");
|
|
92
|
+
report.createdFiles.push("css/index.css");
|
|
93
|
+
}
|
|
94
|
+
return report;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=write-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-tokens.js","sourceRoot":"","sources":["../../../src/generators/tokens/write-tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WriteComponentsReport, WriteTokensReport, WriteTokensOptions, WriteComponentsOptions, ScaffoldWriteReport, ScaffoldArgs, DesignSystemModel, PTBConfig } from "@calibrate-ds/shared-types";
|
|
2
|
+
export interface IGenerator {
|
|
3
|
+
writeComponents(model: DesignSystemModel, config: PTBConfig, options?: WriteComponentsOptions): Promise<WriteComponentsReport>;
|
|
4
|
+
writeTokens(model: DesignSystemModel, config: PTBConfig, options?: WriteTokensOptions): Promise<WriteTokensReport>;
|
|
5
|
+
writeScaffold(args: ScaffoldArgs): Promise<ScaffoldWriteReport>;
|
|
6
|
+
pruneComponents(config: PTBConfig, staleEntries: {
|
|
7
|
+
id: string;
|
|
8
|
+
data: any;
|
|
9
|
+
}[]): Promise<import("@calibrate-ds/shared-types").PruneResult>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|