@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 @@
|
|
|
1
|
+
{"version":3,"file":"save-snapshot.js","sourceRoot":"","sources":["../../src/snapshots/save-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-null-safety.d.ts","sourceRoot":"","sources":["../src/test-null-safety.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { resolveInstanceRecipe } from "./normalizer/instance-resolver.js";
|
|
2
|
+
// Malformed text node with NO name
|
|
3
|
+
const brokenTextNode = {
|
|
4
|
+
type: "leaf",
|
|
5
|
+
role: "text",
|
|
6
|
+
visible: true,
|
|
7
|
+
textContent: "Hello",
|
|
8
|
+
};
|
|
9
|
+
// Malformed instance node missing most metadata
|
|
10
|
+
const brokenInstanceNode = {
|
|
11
|
+
type: "leaf",
|
|
12
|
+
role: "instance",
|
|
13
|
+
componentId: "comp-btn",
|
|
14
|
+
variantSelection: null,
|
|
15
|
+
propertyOverrides: undefined,
|
|
16
|
+
rawStyles: null,
|
|
17
|
+
};
|
|
18
|
+
const componentsMock = [
|
|
19
|
+
{
|
|
20
|
+
id: "comp-btn",
|
|
21
|
+
name: "Button",
|
|
22
|
+
kind: { value: "canonical" },
|
|
23
|
+
properties: [{ name: "btn-text" }]
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
async function test() {
|
|
27
|
+
console.log("Evaluating Malformed Instance Node...");
|
|
28
|
+
let passed = true;
|
|
29
|
+
try {
|
|
30
|
+
const recipe = resolveInstanceRecipe(brokenInstanceNode, componentsMock);
|
|
31
|
+
if (recipe?.resolvedProps) {
|
|
32
|
+
console.log("✅ Passed instance enrichment without throwing!");
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log("❌ Failed to emit resolvedProps fallback.");
|
|
36
|
+
passed = false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
console.error("❌ Threw error on brokenInstanceNode:", e);
|
|
41
|
+
passed = false;
|
|
42
|
+
}
|
|
43
|
+
console.log("Evaluating Invocation Contract Fallbacks...");
|
|
44
|
+
try {
|
|
45
|
+
const recipe2 = resolveInstanceRecipe({ componentId: "comp-btn", name: undefined }, componentsMock);
|
|
46
|
+
if (recipe2?.invocationContract) {
|
|
47
|
+
console.log("✅ Passed invocation contract fallback without throwing!");
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.log("❌ Failed to emit invocationContract fallback.");
|
|
51
|
+
passed = false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.error("❌ Threw error on invocation contract:", e);
|
|
56
|
+
passed = false;
|
|
57
|
+
}
|
|
58
|
+
if (passed) {
|
|
59
|
+
console.log("✅ Zero-Inference Safeties passed!");
|
|
60
|
+
process.exit(0);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
test();
|
|
67
|
+
//# sourceMappingURL=test-null-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-null-safety.js","sourceRoot":"","sources":["../src/test-null-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,mCAAmC;AACnC,MAAM,cAAc,GAAQ;IACxB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,OAAO;CACvB,CAAC;AAEF,gDAAgD;AAChD,MAAM,kBAAkB,GAAQ;IAC5B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,UAAU;IACvB,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,SAAS;IAC5B,SAAS,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,cAAc,GAA0B;IAC1C;QACI,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAS;QACnC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAS,CAAC;KAC5C;CACJ,CAAC;AAEF,KAAK,UAAU,IAAI;IAEf,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QACzE,IAAI,MAAM,EAAE,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,MAAM,GAAG,KAAK,CAAC;QACnB,CAAC;IACL,CAAC;IAAC,OAAM,CAAC,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAS,EAAE,cAAc,CAAC,CAAC;QAC3G,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,MAAM,GAAG,KAAK,CAAC;QACnB,CAAC;IACL,CAAC;IAAC,OAAM,CAAC,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-regex.d.ts","sourceRoot":"","sources":["../src/test-regex.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
async function test() {
|
|
3
|
+
const filePath = "/Users/deepadalja/Documents/prompt-to-both/packages/ui/src/components/btn/Button.tsx";
|
|
4
|
+
const content = await fs.readFile(filePath, "utf-8");
|
|
5
|
+
console.log("FILE CONTENT:\n", content);
|
|
6
|
+
const match = content.match(/PTB_METADATA:\s*({[\s\S]*?})\s*(?:\*\/)/);
|
|
7
|
+
if (match) {
|
|
8
|
+
console.log("MATCH 1 (JSON RAW):\n", match[1]);
|
|
9
|
+
let jsonString = match[1];
|
|
10
|
+
jsonString = jsonString.replace(/^\s*\*\s?/gm, "");
|
|
11
|
+
console.log("JSON STRIPPED:\n", jsonString);
|
|
12
|
+
try {
|
|
13
|
+
const parsed = JSON.parse(jsonString);
|
|
14
|
+
console.log("PARSED SUCCESS:", parsed);
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
console.log("PARSED FAILED:", e);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
console.log("NO MATCH FOUND");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
test();
|
|
25
|
+
//# sourceMappingURL=test-regex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-regex.js","sourceRoot":"","sources":["../src/test-regex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,KAAK,UAAU,IAAI;IACf,MAAM,QAAQ,GAAG,sFAAsF,CAAC;IACxG,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACvE,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-token-resolution.d.ts","sourceRoot":"","sources":["../src/test-token-resolution.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { resolveTokenBinding } from "./tokens/resolution.js";
|
|
2
|
+
const mockCollections = [
|
|
3
|
+
{
|
|
4
|
+
id: "col_1",
|
|
5
|
+
name: "Primitives",
|
|
6
|
+
tokens: [
|
|
7
|
+
{
|
|
8
|
+
id: "VariableID:1",
|
|
9
|
+
name: "Red 500",
|
|
10
|
+
value: "#ff0000",
|
|
11
|
+
type: "color"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "col_2",
|
|
17
|
+
name: "Semantic",
|
|
18
|
+
tokens: [
|
|
19
|
+
{
|
|
20
|
+
id: "VariableID:2",
|
|
21
|
+
name: "Brand Primary",
|
|
22
|
+
value: "{Red 500}",
|
|
23
|
+
type: "color",
|
|
24
|
+
aliasTargetId: "VariableID:1"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "col_3",
|
|
30
|
+
name: "Text",
|
|
31
|
+
tokens: [
|
|
32
|
+
{
|
|
33
|
+
id: "VariableID:3",
|
|
34
|
+
name: "Text Body",
|
|
35
|
+
value: "{Brand Primary}",
|
|
36
|
+
type: "color",
|
|
37
|
+
aliasTargetId: "VariableID:2"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
];
|
|
42
|
+
const result = resolveTokenBinding("VariableID:3", mockCollections);
|
|
43
|
+
console.log("RESOLUTION RESULT:");
|
|
44
|
+
console.log(JSON.stringify(result, null, 2));
|
|
45
|
+
if (result &&
|
|
46
|
+
result.resolvedTokenName === "Red 500" &&
|
|
47
|
+
result.cssVar === "--ptb-primitives-red-500" &&
|
|
48
|
+
result.resolutionPath.length === 3) {
|
|
49
|
+
console.log("\n✅ SUCCESS: Alias chain resolved correctly.");
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log("\n❌ FAILED: Resolution incorrect.");
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=test-token-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-token-resolution.js","sourceRoot":"","sources":["../src/test-token-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,eAAe,GAAU;IAC3B;QACI,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACJ;gBACI,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,OAAO;aAChB;SACJ;KACJ;IACD;QACI,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACJ;gBACI,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,OAAO;gBACb,aAAa,EAAE,cAAc;aAChC;SACJ;KACJ;IACD;QACI,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACJ;gBACI,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,OAAO;gBACb,aAAa,EAAE,cAAc;aAChC;SACJ;KACJ;CACJ,CAAC;AAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AACpE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7C,IAAI,MAAM;IACN,MAAM,CAAC,iBAAiB,KAAK,SAAS;IACtC,MAAM,CAAC,MAAM,KAAK,0BAA0B;IAC5C,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAChE,CAAC;KAAM,CAAC;IACJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-typography.d.ts","sourceRoot":"","sources":["../src/test-typography.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { getComponentContext } from "./context/get-component-context.js";
|
|
2
|
+
const mockModel = {
|
|
3
|
+
version: "1",
|
|
4
|
+
tokens: [
|
|
5
|
+
{
|
|
6
|
+
name: "Typography",
|
|
7
|
+
id: "typ-col",
|
|
8
|
+
tokens: [
|
|
9
|
+
{ id: "VariableID:30:1005", name: "Body Size", type: "dimension", value: "16px" },
|
|
10
|
+
{ id: "VariableID:30:1006", name: "Body Weight", type: "number", value: 500 }
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
components: [
|
|
15
|
+
{
|
|
16
|
+
id: "comp-1",
|
|
17
|
+
name: "TextNodeComponent",
|
|
18
|
+
renderTree: {
|
|
19
|
+
type: "container",
|
|
20
|
+
children: [
|
|
21
|
+
{
|
|
22
|
+
type: "leaf",
|
|
23
|
+
name: "Notification Title",
|
|
24
|
+
role: "text",
|
|
25
|
+
visible: true,
|
|
26
|
+
textContent: "Hello World",
|
|
27
|
+
rawStyles: {
|
|
28
|
+
textStyle: {
|
|
29
|
+
fontSize: 16,
|
|
30
|
+
lineHeightPx: 24,
|
|
31
|
+
fontWeight: 500,
|
|
32
|
+
fontFamily: "Inter",
|
|
33
|
+
letterSpacing: -0.2
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
boundVariables: {
|
|
37
|
+
fontSize: { id: "VariableID:30:1005" },
|
|
38
|
+
fontWeight: { id: "VariableID:30:1006" } // Bound!
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
};
|
|
46
|
+
async function test() {
|
|
47
|
+
const config = { framework: { name: "react" } };
|
|
48
|
+
const context = await getComponentContext("comp-1", mockModel, config);
|
|
49
|
+
// Look at text node outputs
|
|
50
|
+
const textNode = context?.renderTree?.children?.[0];
|
|
51
|
+
console.log("Text Node Typography Contract:");
|
|
52
|
+
console.log(JSON.stringify(textNode?.typographyContract, null, 2));
|
|
53
|
+
const contract = textNode?.typographyContract;
|
|
54
|
+
// Size and Weight are bound variables!
|
|
55
|
+
const fontSizeBound = contract?.fontSize?.sourceVariableId === "VariableID:30:1005" || contract?.fontSize?.cssVar;
|
|
56
|
+
// Line height and family are fallback variables from textStyle!
|
|
57
|
+
const lineFallback = contract?.lineHeight?.cssValue === "24px" && contract?.lineHeight?.cssVar === undefined;
|
|
58
|
+
const familyFallback = contract?.fontFamily?.cssValue === "Inter" && contract?.fontFamily?.cssVar === undefined;
|
|
59
|
+
if (fontSizeBound && lineFallback && familyFallback) {
|
|
60
|
+
console.log("✅ Typography binding test passed.");
|
|
61
|
+
process.exit(0);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log("❌ Typography binding test failed.");
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
test();
|
|
69
|
+
//# sourceMappingURL=test-typography.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-typography.js","sourceRoot":"","sources":["../src/test-typography.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,SAAS,GAAQ;IACnB,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE;QACJ;YACI,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,SAAS;YACb,MAAM,EAAE;gBACJ,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;gBACjF,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;aAChF;SACJ;KACJ;IACD,UAAU,EAAE;QACR;YACI,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE;gBACR,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oBAAoB;wBAC1B,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,aAAa;wBAC1B,SAAS,EAAE;4BACP,SAAS,EAAE;gCACP,QAAQ,EAAE,EAAE;gCACZ,YAAY,EAAE,EAAE;gCAChB,UAAU,EAAE,GAAG;gCACf,UAAU,EAAE,OAAO;gCACnB,aAAa,EAAE,CAAC,GAAG;6BACtB;yBACJ;wBACD,cAAc,EAAE;4BACZ,QAAQ,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE;4BACtC,UAAU,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,SAAS;yBACrD;qBACJ;iBACJ;aACJ;SACJ;KACJ;CACJ,CAAC;AAEF,KAAK,UAAU,IAAI;IACf,MAAM,MAAM,GAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEvE,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,QAAQ,EAAE,kBAAkB,CAAC;IAE9C,uCAAuC;IACvC,MAAM,aAAa,GAAG,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,KAAK,oBAAoB,IAAI,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;IAClH,gEAAgE;IAChE,MAAM,YAAY,GAAG,QAAQ,EAAE,UAAU,EAAE,QAAQ,KAAK,MAAM,IAAI,QAAQ,EAAE,UAAU,EAAE,MAAM,KAAK,SAAS,CAAC;IAC7G,MAAM,cAAc,GAAG,QAAQ,EAAE,UAAU,EAAE,QAAQ,KAAK,OAAO,IAAI,QAAQ,EAAE,UAAU,EAAE,MAAM,KAAK,SAAS,CAAC;IAEhH,IAAI,aAAa,IAAI,YAAY,IAAI,cAAc,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CanonicalTokenExport } from "../import-schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes a generic JSON tokens `collections` export.
|
|
4
|
+
* Safely infers modes and token schemas where strict formatting may be loose.
|
|
5
|
+
*/
|
|
6
|
+
export declare function adaptGenericTokenExportToCanonical(data: any): {
|
|
7
|
+
success: true;
|
|
8
|
+
data: CanonicalTokenExport;
|
|
9
|
+
} | {
|
|
10
|
+
success: false;
|
|
11
|
+
issues: any;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=generic-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-adapter.d.ts","sourceRoot":"","sources":["../../../src/tokens/adapters/generic-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAqC,MAAM,qBAAqB,CAAC;AAEnG;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAgF7I"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { GenericTokenExportSchema } from "../import-schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes a generic JSON tokens `collections` export.
|
|
4
|
+
* Safely infers modes and token schemas where strict formatting may be loose.
|
|
5
|
+
*/
|
|
6
|
+
export function adaptGenericTokenExportToCanonical(data) {
|
|
7
|
+
const validation = GenericTokenExportSchema.safeParse(data);
|
|
8
|
+
if (!validation.success) {
|
|
9
|
+
return { success: false, issues: validation.error.issues };
|
|
10
|
+
}
|
|
11
|
+
const genericData = validation.data;
|
|
12
|
+
const collections = [];
|
|
13
|
+
let generatedCollectionIndex = 0;
|
|
14
|
+
for (const rawCol of genericData.collections) {
|
|
15
|
+
generatedCollectionIndex++;
|
|
16
|
+
// Ensure collection ID & name exist
|
|
17
|
+
const colId = "id" in rawCol ? String(rawCol.id) : `gen-collection-${generatedCollectionIndex}`;
|
|
18
|
+
const colName = rawCol.name || `Collection ${generatedCollectionIndex}`;
|
|
19
|
+
// Ensure modes array shapes properly map
|
|
20
|
+
const modes = Array.isArray(rawCol.modes) ? rawCol.modes.map((m, idx) => ({
|
|
21
|
+
id: m?.id ? String(m.id) : `mode-${idx}`,
|
|
22
|
+
name: m?.name ? String(m.name) : `Mode ${idx}`
|
|
23
|
+
})) : [{ id: "mode-0", name: "Default" }];
|
|
24
|
+
const tokens = [];
|
|
25
|
+
const rawTokensOrVars = Array.isArray(rawCol.tokens) ? rawCol.tokens : Array.isArray(rawCol.variables) ? rawCol.variables : [];
|
|
26
|
+
let generatedTokenIndex = 0;
|
|
27
|
+
for (const t of rawTokensOrVars) {
|
|
28
|
+
generatedTokenIndex++;
|
|
29
|
+
const tokenId = t?.id ? String(t.id) : `gen-token-${colId}-${generatedTokenIndex}`;
|
|
30
|
+
const tokenName = t?.name ? String(t.name) : `Token ${generatedTokenIndex}`;
|
|
31
|
+
// We safely coerce `valuesByMode` back to standard object maps, or dump root value to mode 0.
|
|
32
|
+
const valuesByMode = {};
|
|
33
|
+
if (t && typeof t.valuesByMode === "object" && t.valuesByMode !== null) {
|
|
34
|
+
// It already provides valuesByMode mapping roughly. Map it blindly cleanly.
|
|
35
|
+
for (const modeKey of Object.keys(t.valuesByMode)) {
|
|
36
|
+
const modeObj = t.valuesByMode[modeKey];
|
|
37
|
+
// If mode mapping doesn't have a 'type', assume it's just 'string' dynamically
|
|
38
|
+
valuesByMode[modeKey] = {
|
|
39
|
+
type: modeObj?.type || "unknown",
|
|
40
|
+
value: modeObj?.value !== undefined ? modeObj.value : modeObj
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else if (t && typeof t.value !== "undefined") {
|
|
45
|
+
// Flat generic structure: { "name": "...", "value": "..." } maps cleanly to Default Mode 0.
|
|
46
|
+
valuesByMode[modes[0].id] = { type: t.type || "unknown", value: t.value };
|
|
47
|
+
}
|
|
48
|
+
tokens.push({
|
|
49
|
+
id: tokenId,
|
|
50
|
+
name: tokenName,
|
|
51
|
+
codeName: t?.codeName ? String(t.codeName) : undefined,
|
|
52
|
+
resolvedType: t?.resolvedType ? String(t.resolvedType) : "UNKNOWN",
|
|
53
|
+
valuesByMode
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
collections.push({
|
|
57
|
+
id: colId,
|
|
58
|
+
name: colName,
|
|
59
|
+
kind: rawCol.kind ? String(rawCol.kind) : "other",
|
|
60
|
+
modes,
|
|
61
|
+
tokens
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const mappedExport = {
|
|
65
|
+
version: "1.0.0",
|
|
66
|
+
source: {
|
|
67
|
+
tool: "generic-import-adapter",
|
|
68
|
+
exportedAt: new Date().toISOString()
|
|
69
|
+
},
|
|
70
|
+
collections
|
|
71
|
+
};
|
|
72
|
+
return { success: true, data: mappedExport };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=generic-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-adapter.js","sourceRoot":"","sources":["../../../src/tokens/adapters/generic-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tokens/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tokens/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CanonicalTokenExport } from "../import-schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* Validates and maps a known PTB Token format export into the standard internal
|
|
4
|
+
* Canonical Token Export schema (since they currently natively share identical schemas).
|
|
5
|
+
*/
|
|
6
|
+
export declare function adaptPTBTokenExportToCanonical(data: any): {
|
|
7
|
+
success: true;
|
|
8
|
+
data: CanonicalTokenExport;
|
|
9
|
+
} | {
|
|
10
|
+
success: false;
|
|
11
|
+
issues: any;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=ptb-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ptb-adapter.d.ts","sourceRoot":"","sources":["../../../src/tokens/adapters/ptb-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAQzI"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PTBTokenExportSchema } from "../import-schema.js";
|
|
2
|
+
/**
|
|
3
|
+
* Validates and maps a known PTB Token format export into the standard internal
|
|
4
|
+
* Canonical Token Export schema (since they currently natively share identical schemas).
|
|
5
|
+
*/
|
|
6
|
+
export function adaptPTBTokenExportToCanonical(data) {
|
|
7
|
+
const validation = PTBTokenExportSchema.safeParse(data);
|
|
8
|
+
if (!validation.success) {
|
|
9
|
+
return { success: false, issues: validation.error.issues };
|
|
10
|
+
}
|
|
11
|
+
return { success: true, data: validation.data };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ptb-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ptb-adapter.js","sourceRoot":"","sources":["../../../src/tokens/adapters/ptb-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAS;IACpD,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TokenCollection } from "@calibrate-ds/shared-types";
|
|
2
|
+
import type { CanonicalTokenExport } from "./import-schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Public orchestrator to convert Figma REST Variables to TokenCollections array.
|
|
5
|
+
*/
|
|
6
|
+
export declare function buildTokenModel(variablesData: any): TokenCollection[];
|
|
7
|
+
/**
|
|
8
|
+
* Normalizes a Canonical JSON Export back into a native System Model TokenCollections array
|
|
9
|
+
* matching the identical shape outputting from REST variables.
|
|
10
|
+
*/
|
|
11
|
+
export declare function adaptCanonicalToTokenCollections(exportData: CanonicalTokenExport): TokenCollection[];
|
|
12
|
+
//# sourceMappingURL=build-token-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-token-model.d.ts","sourceRoot":"","sources":["../../src/tokens/build-token-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,4BAA4B,CAAC;AAE/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,GAAG,GAAG,eAAe,EAAE,CAMrE;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,oBAAoB,GAAG,eAAe,EAAE,CAwCpG"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { normalizeTokenCollections } from "./normalize-token-collections.js";
|
|
2
|
+
/**
|
|
3
|
+
* Public orchestrator to convert Figma REST Variables to TokenCollections array.
|
|
4
|
+
*/
|
|
5
|
+
export function buildTokenModel(variablesData) {
|
|
6
|
+
if (!variablesData || !variablesData.meta) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
return normalizeTokenCollections(variablesData.meta);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Normalizes a Canonical JSON Export back into a native System Model TokenCollections array
|
|
13
|
+
* matching the identical shape outputting from REST variables.
|
|
14
|
+
*/
|
|
15
|
+
export function adaptCanonicalToTokenCollections(exportData) {
|
|
16
|
+
return exportData.collections.map((col) => {
|
|
17
|
+
const tokens = col.tokens.map((t) => {
|
|
18
|
+
const firstModeId = col.modes[0]?.id || "";
|
|
19
|
+
const modeVal = t.valuesByMode[firstModeId] || Object.values(t.valuesByMode)[0] || { type: "unknown", value: "" };
|
|
20
|
+
const typeString = typeof modeVal.type === "string" ? modeVal.type : "other";
|
|
21
|
+
// Detect alias references in both formats the Figma plugin may emit:
|
|
22
|
+
// PTB schema: { type: "VARIABLE_ALIAS", value: "VariableID:30:592" }
|
|
23
|
+
// Raw Figma API: { type: "VARIABLE_ALIAS", id: "VariableID:30:592" }
|
|
24
|
+
let aliasTargetId;
|
|
25
|
+
if (modeVal.type === "VARIABLE_ALIAS") {
|
|
26
|
+
const rawAliasId = (typeof modeVal.value === "string" ? modeVal.value : null) ??
|
|
27
|
+
modeVal.id ??
|
|
28
|
+
(typeof modeVal.value === "object" && modeVal.value !== null ? modeVal.value.id : null) ??
|
|
29
|
+
"";
|
|
30
|
+
if (rawAliasId) {
|
|
31
|
+
aliasTargetId = rawAliasId.replace(/^VariableID:/i, "");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const token = {
|
|
35
|
+
id: t.id,
|
|
36
|
+
name: t.name,
|
|
37
|
+
type: typeString,
|
|
38
|
+
value: modeVal.value,
|
|
39
|
+
...(aliasTargetId ? { aliasTargetId } : {}),
|
|
40
|
+
};
|
|
41
|
+
return token;
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
id: col.id,
|
|
45
|
+
name: col.name,
|
|
46
|
+
tokens,
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=build-token-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-token-model.js","sourceRoot":"","sources":["../../src/tokens/build-token-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,aAAkB;IAC9C,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAAC,UAAgC;IAC7E,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,MAAM,MAAM,GAAkB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAElH,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAE7E,qEAAqE;YACrE,0EAA0E;YAC1E,uEAAuE;YACvE,IAAI,aAAiC,CAAC;YACtC,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACpC,MAAM,UAAU,GACZ,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBACxD,OAAe,CAAC,EAAyB;oBAC3C,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,KAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBAChG,EAAE,CAAC;gBACP,IAAI,UAAU,EAAE,CAAC;oBACb,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;YAED,MAAM,KAAK,GAAgB;gBACvB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,UAAiC;gBACvC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CAAC;YAEF,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM;SACT,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DesignToken } from "@calibrate-ds/shared-types";
|
|
2
|
+
/**
|
|
3
|
+
* Classifies a token collection or individual token into a specific functional category
|
|
4
|
+
* based on simple naming heuristics.
|
|
5
|
+
*/
|
|
6
|
+
export declare function classifyTokenKind(name: string): DesignToken["type"];
|
|
7
|
+
//# sourceMappingURL=classify-token-kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-token-kind.d.ts","sourceRoot":"","sources":["../../src/tokens/classify-token-kind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAwBnE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classifies a token collection or individual token into a specific functional category
|
|
3
|
+
* based on simple naming heuristics.
|
|
4
|
+
*/
|
|
5
|
+
export function classifyTokenKind(name) {
|
|
6
|
+
const lowerName = name.toLowerCase();
|
|
7
|
+
if (lowerName.includes("color") || lowerName.includes("paint") || lowerName.includes("palette") || lowerName.includes("theme")) {
|
|
8
|
+
return "color";
|
|
9
|
+
}
|
|
10
|
+
if (lowerName.includes("space") || lowerName.includes("spacing") || lowerName.includes("margin") || lowerName.includes("padding") || lowerName.includes("gap")) {
|
|
11
|
+
return "spacing";
|
|
12
|
+
}
|
|
13
|
+
if (lowerName.includes("type") || lowerName.includes("font") || lowerName.includes("text") || lowerName.includes("typography")) {
|
|
14
|
+
return "typography";
|
|
15
|
+
}
|
|
16
|
+
if (lowerName.includes("radius") || lowerName.includes("corner") || lowerName.includes("border-radius")) {
|
|
17
|
+
return "radius";
|
|
18
|
+
}
|
|
19
|
+
if (lowerName.includes("shadow") || lowerName.includes("elevation")) {
|
|
20
|
+
return "shadow";
|
|
21
|
+
}
|
|
22
|
+
return "other";
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=classify-token-kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-token-kind.js","sourceRoot":"","sources":["../../src/tokens/classify-token-kind.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7H,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7J,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7H,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACtG,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAClE,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-format.d.ts","sourceRoot":"","sources":["../../src/tokens/detect-format.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY,CAuB1D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inspects a parsed JSON object to infer its token export schema format.
|
|
3
|
+
*/
|
|
4
|
+
export function detectImportFormat(data) {
|
|
5
|
+
if (!data || typeof data !== "object") {
|
|
6
|
+
return "unknown";
|
|
7
|
+
}
|
|
8
|
+
// 1. PTB Exporter Signature
|
|
9
|
+
// Identified by strict 'version' string and internal 'source.tool' attribution
|
|
10
|
+
if (typeof data.version === "string" &&
|
|
11
|
+
data.source &&
|
|
12
|
+
typeof data.source.tool === "string" &&
|
|
13
|
+
Array.isArray(data.collections)) {
|
|
14
|
+
return "ptb";
|
|
15
|
+
}
|
|
16
|
+
// 2. Generic Collection Signature
|
|
17
|
+
// Identified by a loose 'collections' array at the root
|
|
18
|
+
if (Array.isArray(data.collections)) {
|
|
19
|
+
return "generic";
|
|
20
|
+
}
|
|
21
|
+
return "unknown";
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=detect-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-format.js","sourceRoot":"","sources":["../../src/tokens/detect-format.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAS;IACxC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,4BAA4B;IAC5B,+EAA+E;IAC/E,IACI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAChC,IAAI,CAAC,MAAM;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;QACpC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EACjC,CAAC;QACC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,kCAAkC;IAClC,wDAAwD;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
|