modelith-dbt 0.8.2__tar.gz → 0.8.3__tar.gz
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.
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/PKG-INFO +1 -1
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/App.tsx +3 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/TopBar.tsx +3 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/api.ts +6 -3
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/ImportExportMenu.css +5 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/ImportExportMenu.tsx +23 -13
- modelith_dbt-0.8.2/packages/server/src/mdl_server/static/assets/ModelDiagram-Ban4nX4P.js → modelith_dbt-0.8.3/packages/server/src/mdl_server/static/assets/ModelDiagram-B8BNKKus.js +1 -1
- modelith_dbt-0.8.3/packages/server/src/mdl_server/static/assets/main-CBJYBl0L.js +2 -0
- modelith_dbt-0.8.2/packages/server/src/mdl_server/static/assets/sme-B4DPNeFN.js → modelith_dbt-0.8.3/packages/server/src/mdl_server/static/assets/sme-C-aE5Tdu.js +2 -2
- modelith_dbt-0.8.3/packages/server/src/mdl_server/static/assets/styles-BqI6o68D.css +1 -0
- modelith_dbt-0.8.3/packages/server/src/mdl_server/static/assets/styles-DpTWo4Jc.js +23 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/index.html +3 -3
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/sme.html +3 -3
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/pyproject.toml +1 -1
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/uv.lock +1 -1
- modelith_dbt-0.8.2/packages/server/src/mdl_server/static/assets/main-CuBzSDyz.js +0 -2
- modelith_dbt-0.8.2/packages/server/src/mdl_server/static/assets/styles-D9kpX-nz.css +0 -1
- modelith_dbt-0.8.2/packages/server/src/mdl_server/static/assets/styles-ykf7ntTy.js +0 -23
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.devcontainer/devcontainer-lock.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.devcontainer/devcontainer.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.devcontainer/setup-demo.sh +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.github/ISSUE_TEMPLATE/first_run_friction.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.github/SECURITY.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.github/pull_request_template.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.github/workflows/ci.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/.gitignore +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/CODE_OF_CONDUCT.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/CONTRIBUTING.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/LICENSE +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/PR-fix-delete-attr-keygroup.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/catalog.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/index.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/mocks.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/package-lock.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/package.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/sme.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/CanvasDrawer.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/EntityNode.test.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/EntityNode.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/Inspector.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/ModelCanvas.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/RelationshipEdge.test.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/RelationshipEdge.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/SidePanel.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/catalog/CatalogApp.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/catalog/catalog.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/catalog.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/edgeRouting.test.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/edgeRouting.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/exec.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/icons.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/layout.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/layoutStore.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/main.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/mocks/MocksApp.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/mocks/Proposals.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/mocks/RenameCompare.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/mocks/ReviewScreen.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/mocks/SubmitDialog.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/mocks/fixtures.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/mocks/mocks.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/mocks.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/modals.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/DiffView.test.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/DiffView.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/GitBanner.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/ModelDiagram.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/ModelWorkspace.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/NewSubjectAreaModal.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/ProposalsList.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/ProposeDialog.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/ReviewScreen.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/SmeApp.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/SubjectAreaEditor.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/TermCard.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/TermEditor.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/reviewModel.test.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/reviewModel.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme/sme.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/sme.tsx +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/staging/useStaging.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/styles.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/test/diffFixture.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/test/setup.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/types.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/src/ulid.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/tsconfig.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/vite.config.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/canvas/vitest.config.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/docs/.gitkeep +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/docs/ontology-browser-ols.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/.mdl/decisions.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/adverseevent.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/aggexpressionbytissue.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/aggtargettractability.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/antibody.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/antibodytarget.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/assay.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/biomarker.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/biomarkerdisease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/cellline.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/celllinemutation.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/compound.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/compoundassayresult.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/diseasehasphenotype.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/drug.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/drugbinding.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/drugpathwayeffect.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/drugtargetsprotein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/drugtreatsdisease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/geneencodesprotein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/geneexpression.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/genephenotypeassoc.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/generegulatesgene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/indication.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/kpiadverseevents.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/martkpidrugpipeline.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/martpathwayenrichment.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/marttriallandscape.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/organism.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/pathway.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/pathwaydiseaseassoc.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/phenotype.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/proteininpathway.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/proteininteraction.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/publication.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/publicationdisease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/publicationgene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/rptdiseaseburden.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/rptgwassummary.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/sample.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/sampleexpression.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/target.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/tissue.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/transcript.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/trial.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/trialcondition.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/trialintervention.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/variant.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/variantdiseaseassoc.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/conceptual/entities/variantingene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/agg_expression_by_tissue.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/agg_target_tractability.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_antibody.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_assay.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_biomarker.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_cell_line.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_compound.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_drug.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_indication.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_organism.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_pathway.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_phenotype.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_publication.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_sample.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_target.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_tissue.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_transcript.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_trial.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/dim_variant.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_adverse_event.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_antibody_target.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_biomarker_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_cell_line_mutation.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_compound_assay_result.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_disease_has_phenotype.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_drug_binding.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_drug_pathway_effect.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_drug_targets_protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_drug_treats_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_gene_encodes_protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_gene_expression.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_gene_phenotype_assoc.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_gene_regulates_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_pathway_disease_assoc.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_protein_in_pathway.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_protein_interaction.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_publication_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_publication_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_sample_expression.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_trial_condition.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_trial_intervention.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_variant_disease_assoc.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/fct_variant_in_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/kpi_adverse_events.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/mart_kpi_drug_pipeline.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/mart_pathway_enrichment.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/mart_trial_landscape.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/rpt_disease_burden.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/entities/rpt_gwas_summary.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_adverse_event_has_dim_drug.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_antibody_target_has_dim_antibody.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_antibody_target_has_dim_protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_biomarker_disease_has_dim_biomarker.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_biomarker_disease_has_dim_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_cell_line_mutation_has_dim_cell_line.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_cell_line_mutation_has_dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_compound_assay_result_has_dim_assay.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_compound_assay_result_has_dim_compound.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_disease_has_phenotype_has_dim_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_disease_has_phenotype_has_dim_phenotype.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_binding_has_dim_assay.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_binding_has_dim_drug.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_binding_has_dim_target.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_pathway_effect_has_dim_drug.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_pathway_effect_has_dim_pathway.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_targets_protein_has_dim_drug.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_targets_protein_has_dim_protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_treats_disease_has_dim_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_drug_treats_disease_has_dim_drug.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_gene_encodes_protein_has_dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_gene_encodes_protein_has_dim_protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_gene_expression_has_dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_gene_expression_has_dim_tissue.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_gene_phenotype_assoc_has_dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_gene_phenotype_assoc_has_dim_phenotype.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_gene_regulates_gene_has_dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_pathway_disease_assoc_has_dim_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_pathway_disease_assoc_has_dim_pathway.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_protein_in_pathway_has_dim_pathway.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_protein_in_pathway_has_dim_protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_protein_interaction_has_dim_protein.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_publication_disease_has_dim_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_publication_disease_has_dim_publication.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_publication_gene_has_dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_publication_gene_has_dim_publication.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_sample_expression_has_dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_sample_expression_has_dim_sample.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_trial_condition_has_dim_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_trial_condition_has_dim_trial.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_trial_intervention_has_dim_drug.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_trial_intervention_has_dim_trial.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_variant_disease_assoc_has_dim_disease.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_variant_disease_assoc_has_dim_variant.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_variant_in_gene_has_dim_gene.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/logical/relationships/fct_variant_in_gene_has_dim_variant.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/model/mdl-project.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/.user.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/dbt_project.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_antibody.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_assay.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_biomarker.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_cell_line.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_compound.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_disease.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_drug.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_gene.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_indication.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_organism.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_pathway.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_phenotype.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_protein.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_publication.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_sample.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_target.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_tissue.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_transcript.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_trial.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/dim_variant.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_adverse_event.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_antibody_target.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_biomarker_disease.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_cell_line_mutation.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_compound_assay_result.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_disease_has_phenotype.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_drug_binding.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_drug_pathway_effect.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_drug_targets_protein.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_drug_treats_disease.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_gene_encodes_protein.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_gene_expression.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_gene_phenotype_assoc.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_gene_regulates_gene.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_pathway_disease_assoc.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_protein_in_pathway.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_protein_interaction.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_publication_disease.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_publication_gene.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_sample_expression.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_trial_condition.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_trial_intervention.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_variant_disease_assoc.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/core/fct_variant_in_gene.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/intermediate/int_disease_gene_evidence.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/intermediate/int_drug_target_expanded.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/intermediate/int_gene_protein_map.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/intermediate/int_pathway_membership.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/intermediate/int_variant_consequence.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/marts/agg_expression_by_tissue.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/marts/agg_target_tractability.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/marts/kpi_adverse_events.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/marts/mart_kpi_drug_pipeline.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/marts/mart_pathway_enrichment.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/marts/mart_trial_landscape.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/marts/rpt_disease_burden.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/marts/rpt_gwas_summary.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/schema.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_antibody.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_assay.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_biomarker.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_cell_line.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_compound.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_disease.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_drug.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_gene.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_indication.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_organism.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_pathway.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_phenotype.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_protein.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_publication.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_sample.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_target.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_tissue.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_transcript.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_trial.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/models/staging/stg_variant.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/profiles.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_antibodys.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_assays.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_biomarkers.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_cell_lines.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_compounds.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_diseases.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_drugs.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_genes.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_indications.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_organisms.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_pathways.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_phenotypes.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_proteins.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_publications.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_samples.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_targets.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_tissues.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_transcripts.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_trials.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/drug-discovery/warehouse/seeds/raw_variants.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/.gitattributes +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/.github/CODEOWNERS +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/.gitignore +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/.mdl/lock.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/.mdl/ontology-cache/resolved/5767e3ae0733f341.ttl +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/conceptual/entities/benchmark.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/conceptual/entities/counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/conceptual/entities/instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/conceptual/entities/portfolio.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/conceptual/entities/position.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/conceptual/entities/price.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/conceptual/entities/transaction.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/conceptual/subject-areas/counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/domains/asset_class_enum.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/domains/identifier_bigint.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/entities/benchmark.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/entities/counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/entities/instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/entities/portfolio.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/entities/position.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/entities/price.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/entities/transaction.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/key-groups/ak_instrument_isin.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/key-groups/pk_instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/relationships/instrument_to_counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/relationships/portfolio_to_benchmark.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/relationships/position_to_instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/relationships/position_to_portfolio.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/relationships/price_to_instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/relationships/transaction_to_counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/logical/relationships/transaction_to_portfolio.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/model/mdl-project.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/ols/mock_ols.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/ols/terms.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/pension_ibor.code-workspace +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.mdl/state/15/8cb4c68936.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.mdl/state/3c/a8607c2162.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.mdl/state/56/57c5d22c9a.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.mdl/state/5a/988da5ab1b.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.mdl/state/6a/c9fddc9882.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.mdl/state/6b/332e7f6d6e.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.mdl/state/bd/a47168f7a8.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.mdl/state/e4/bed1873078.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/.user.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/dbt_project.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/macros/mdl_helpers.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/macros/mdl_hub.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/macros/mdl_scd2.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/benchmark.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/counterparty.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/instrument.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/portfolio.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/position.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/price.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/schema.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/staging/stg_benchmark.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/staging/stg_counterparty.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/staging/stg_instrument.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/staging/stg_portfolio.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/staging/stg_position.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/staging/stg_price.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/staging/stg_transaction.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/models/transaction.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/profiles.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/seeds/raw_benchmarks.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/seeds/raw_counterparties.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/seeds/raw_instruments.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/seeds/raw_portfolios.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/seeds/raw_positions.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/seeds/raw_prices.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/ibor/transform/warehouse/seeds/raw_transactions.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/.user.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/dbt_project.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/marts/_marts.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/marts/dim_customer.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/marts/dim_product.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/marts/fct_orders.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/staging/int_order_enriched.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/staging/stg_customers.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/staging/stg_orders.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/staging/stg_products.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/vault/hub_customer.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/vault/link_order.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/models/vault/sat_customer_details.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/profiles.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/.mdl/decisions.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/conceptual/entities/customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/conceptual/entities/hubcustomer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/conceptual/entities/linkorder.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/conceptual/entities/orders.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/conceptual/entities/product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/conceptual/entities/satcustomerdetails.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/logical/entities/dim_customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/logical/entities/dim_product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/logical/entities/fct_orders.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/logical/entities/hub_customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/logical/entities/link_order.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/logical/entities/sat_customer_details.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/logical/relationships/fct_orders_has_dim_customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/logical/relationships/fct_orders_has_dim_product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/reversed-model/mdl-project.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/seeds/raw_customers.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/seeds/raw_orders.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/legacy-warehouse/seeds/raw_products.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/.user.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/dbt_project.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/.mdl/decisions.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/category.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/hubcustomer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/hubproduct.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/linkorderline.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/orderlines.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/payments.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/satcustomer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/conceptual/entities/store.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/dim_category.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/dim_customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/dim_product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/dim_store.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/fct_order_lines.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/fct_payments.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/hub_customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/hub_product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/link_order_line.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/entities/sat_customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/relationships/dim_product_has_dim_category.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/relationships/fct_order_lines_has_dim_customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/relationships/fct_order_lines_has_dim_product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/relationships/fct_order_lines_has_dim_store.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/relationships/hub_customer_has_dim_customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/logical/relationships/hub_product_has_dim_product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/ldm/mdl-project.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/intermediate/int_order_enriched.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/marts/core/dim_category.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/marts/core/dim_customer.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/marts/core/dim_product.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/marts/core/dim_store.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/marts/sales/fct_order_lines.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/marts/sales/fct_payments.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/staging/stg_categories.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/staging/stg_customers.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/staging/stg_order_lines.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/staging/stg_orders.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/staging/stg_payments.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/staging/stg_products.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/staging/stg_stores.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/vault/hub_customer.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/vault/hub_product.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/vault/link_order_line.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/models/vault/sat_customer.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/profiles.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/seeds/raw_categories.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/seeds/raw_customers.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/seeds/raw_order_lines.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/seeds/raw_orders.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/seeds/raw_payments.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/seeds/raw_products.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demo/retail-dwh/seeds/raw_stores.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/DESIGN-BRIEF.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/design-assets/canvas-reference.jpg +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/design-assets/canvas-tokens.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/add-broker-code.sh +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/sample.erwin.xml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/.gitignore +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/.mdl/lock.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/conceptual/entities/customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/conceptual/entities/order.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/conceptual/entities/order_line.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/conceptual/entities/product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/logical/domains/identifier_bigint.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/logical/entities/customer.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/logical/entities/order.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/logical/entities/order_line.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/logical/entities/product.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/fixtures/shop/mdl-project.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/landing/index.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/landing/media/Adopt.mp4 +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/landing/media/Compile.mp4 +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/landing/media/Drift.mp4 +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/landing/media/Erwin.mp4 +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/landing/media/Main.mp4 +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/landing/media/Ontology.mp4 +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/render.sh +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/Adopt.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/Compile.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/Drift.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/Erwin.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/Main.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/Ontology.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/build.mjs +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/package.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/standalone/record.mjs +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/tapes/_settings.tape +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/tapes/films/1-design-first.tape +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/tapes/films/2-adopt-a-warehouse.tape +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/demos/tapes/films/3-the-drift-gate.tape +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/adoption-guide.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/canvas.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/chat-participant-bcnf.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/chat-participant-drift.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/chat-participant-keys.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/demos/Adopt.gif +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/demos/Compile.gif +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/demos/Drift.gif +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/demos/Erwin.gif +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/demos/Main.gif +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/demos/Ontology.gif +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/export-menu.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/import-panel.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/inspector-aligned.jpg +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/inspector-multi-ref.jpg +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/inspector.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/lsp-autocomplete.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/ontology-browser.jpg +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/ontology-term-detail.jpg +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/propose-dialog.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/reverse-live-terminal.svg +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/review-screen.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/assets/vscode-split.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/collaboration-model.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/dogfooding-ibor.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/knowledge-graph.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/product-strategy/.gitignore +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/product-strategy/hackolade-capability-gtm-assessment.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/product-strategy/modelith-ai-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/product-strategy/modelith-enterprise-plugin-architecture.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/product-strategy/modelith-gtm-detailed-lean-outbound-sales-strategy.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/product-strategy/modelith-gtm-monetisation-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/product-strategy/posthog-funnels.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/docs/vscode-plan.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/hatch_build.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/modelith-collaboration-model.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/ontologies/industry/fibo-subset/fibo-subset.ttl +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/adapters/collibra/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/adapters/collibra/src/mdl_adapter_collibra/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/adapters/collibra/src/mdl_adapter_collibra/adapter.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/adapters/collibra/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/adapters/collibra/tests/test_collibra.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/catalog/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/catalog/src/mdl_catalog/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/catalog/src/mdl_catalog/backend.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/catalog/src/mdl_catalog/entry.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/catalog/src/mdl_catalog/git_backend.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/catalog/tests/test_catalog.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/__main__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/.gitignore +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/.mdl/lock.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/conceptual/entities/benchmark.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/conceptual/entities/counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/conceptual/entities/instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/conceptual/entities/portfolio.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/conceptual/entities/position.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/conceptual/entities/price.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/conceptual/entities/transaction.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/conceptual/subject-areas/counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/domains/asset_class_enum.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/domains/identifier_bigint.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/entities/benchmark.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/entities/counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/entities/instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/entities/portfolio.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/entities/position.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/entities/price.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/entities/transaction.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/key-groups/ak_instrument_isin.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/key-groups/pk_instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/relationships/instrument_to_counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/relationships/portfolio_to_benchmark.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/relationships/position_to_instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/relationships/position_to_portfolio.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/relationships/price_to_instrument.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/relationships/transaction_to_counterparty.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/logical/relationships/transaction_to_portfolio.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/model/mdl-project.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/dbt_project.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/macros/mdl_helpers.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/macros/mdl_hub.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/macros/mdl_scd2.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/models/staging/stg_benchmark.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/models/staging/stg_counterparty.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/models/staging/stg_instrument.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/models/staging/stg_portfolio.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/models/staging/stg_position.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/models/staging/stg_price.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/models/staging/stg_transaction.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/profiles.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/seeds/raw_benchmarks.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/seeds/raw_counterparties.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/seeds/raw_instruments.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/seeds/raw_portfolios.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/seeds/raw_positions.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/seeds/raw_prices.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/_demo/transform/warehouse/seeds/raw_transactions.csv +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/collab.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/demo.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/main.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/plugins.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/scaffold.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/src/mdl_cli/telemetry.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_collab.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_command_plugins.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_config_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_core_without_ontology.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_decisions_add.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_delete.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_diff_against_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_docs_status_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_export_erwin_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_generate_output_dir.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_import_erwin_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_init_demo.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_mapping_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_model_tree_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_ontology_fetch.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_ontology_status_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_reverse_config_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_reverse_connect_cli.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_reverse_ddl_dir.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_telemetry.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_utf8_output.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/cli/tests/test_version.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/closure.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/commands.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/diagnostics.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/diff.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/diff_render.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/fingerprint.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/fsnames.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/governance_import.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/ids.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/ir.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/merge.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/merge_driver.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/naming.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/patterns.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/query.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/regions.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/render_canonical.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/repo.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/routes.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/severity.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/state.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/status.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/validate.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/src/mdl_core/yaml_io.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/model_builders.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_categories.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_code_sets.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_collaboration.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_diff.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_erwin_ir_fields.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_fingerprint_newlines.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_fsnames.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_governance_import.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_ids.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_key_constraints.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_key_groups.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_model_tree.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_no_shadowed_install.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_project_root.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_regions_merge.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_render_canonical.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_state_prune_windows.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_status.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_structural_commands.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_subject_areas.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_udp.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_validate.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/core/tests/test_yaml_roundtrip.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/assets/docs.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/assets/docs.js +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/assets/mermaid.min.js +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/render.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/templates/_erd.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/templates/base.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/templates/entity.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/templates/glossary.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/templates/index.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/src/mdl_docs/templates/subject_area.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/docs/tests/test_render.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-contract/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-contract/src/mdl_emit_contract/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-contract/src/mdl_emit_contract/emitter.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-contract/src/mdl_emit_contract/types.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-contract/tests/test_emit_contract.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/src/mdl_emit_dbt/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/src/mdl_emit_dbt/emitter.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/src/mdl_emit_dbt/macros.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/src/mdl_emit_dbt/platforms.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_category_emit.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_corpus.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_emitter.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_enum_emit.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_keygroup_emit.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_model_name_collision.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_platforms.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_properties.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-dbt/tests/test_udp_emit.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/csv_export.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/dbml.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/erwin_export.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/imports/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/imports/model.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/imports/parse_ddl.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/imports/parse_jsonschema.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/imports/parse_mermaid.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/mermaid.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/model_view.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/src/mdl_emit_erd/sql_ddl.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/tests/test_emit_erd.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/tests/test_erwin_export.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-erd/tests/test_model_to_commands.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-graph/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-graph/src/mdl_emit_graph/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-graph/src/mdl_emit_graph/emitter.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-graph/src/mdl_emit_graph/types.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-graph/tests/test_emit_graph.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-pydantic/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-pydantic/src/mdl_emit_pydantic/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-pydantic/src/mdl_emit_pydantic/emitter.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-pydantic/src/mdl_emit_pydantic/types.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-pydantic/tests/test_emit_pydantic.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/src/mdl_emit_semantic/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/src/mdl_emit_semantic/import_osi.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/src/mdl_emit_semantic/joinability.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/src/mdl_emit_semantic/metricflow.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/src/mdl_emit_semantic/osi/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/src/mdl_emit_semantic/osi/v0_1_1.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/tests/test_metricflow_joinability.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/emit-semantic/tests/test_osi.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/src/mdl_governance/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/src/mdl_governance/conformance.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/src/mdl_governance/graph.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/src/mdl_governance/lineage.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/src/mdl_governance/profile.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/src/mdl_governance/spi.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/tests/test_conformance_profiles.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/tests/test_graph_mapping.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/governance/tests/test_lineage.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/src/mdl_lsp/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/src/mdl_lsp/commands.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/src/mdl_lsp/features.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/src/mdl_lsp/server.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/src/mdl_lsp/workspace.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/tests/test_completion.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/tests/test_features.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/lsp/tests/test_server_smoke.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/mcp/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/mcp/src/mdl_mcp/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/mcp/src/mdl_mcp/server.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/mcp/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/mcp/tests/test_query.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/mcp/tests/test_server.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/_common.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/_rdf.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/align.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/fetch.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/ingest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/layers.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/lock.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/providers/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/providers/base.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/providers/cache.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/providers/collibra.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/providers/local.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/providers/ols.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/providers/ontoportal.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/providers/remote.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/r2rml_export.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/rdf_export.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/src/mdl_ontology/registry.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_align.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_fetch_lock.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_layers.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_local_provider.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_ontology_refs_migration.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_r2rml_export.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_rdf_adapter.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_rdf_registry.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/ontology/tests/test_remote_resolvers.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/config_io.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/connect.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/ddl_projection.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/drift.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/erwin.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/explain.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/ledger.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/lifting.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/manifest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/mapping.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/projection.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/reconcile.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/regions_strip.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/remote_config.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/render.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/resources/mdl_get_constraints.sql +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/reverse.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/schema_reader.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/suggest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/src/mdl_reverse/writer.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/manifest_fixtures.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_acceptance.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_apply_accepted_rels.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_auto_accept_floor.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_catalog_merge.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_config_io.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_config_preservation.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_connect.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_ddl_reverse.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_drift.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_erwin.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_explain.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_foreign_package_exclude.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_ledger.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_lifting.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_manifest_path.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_mapping.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_reconcile.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_remote_config.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_reverse_drift_clean.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_reverse_roundtrip.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_sources_reverse.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_suggest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_writer_filenames.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/reverse/tests/test_writer_prune_windows.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/pyproject.toml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/__init__.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/app.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/audit.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/catalog_app.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/commands.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/git_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/git_models.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/glossary_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/identity.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/layout_store.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/ontology_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/preview.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/projection.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/assets/catalog-Bac3AIWK.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/assets/catalog-DcdItnKI.js +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/assets/client-DOmNpTln.js +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/assets/mocks-AfcrRcE6.js +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/assets/mocks-MuxcEIum.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/assets/sme-C10_zE1B.css +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/catalog.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/src/mdl_server/static/mocks.html +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/conftest.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_audit.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_catalog_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_commands.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_diff_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_erwin_fields_surface.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_git_models.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_glossary_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_glossary_source_of_truth.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_identity.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_import_erwin_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_import_export_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_layout_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_ontology_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_preview.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_propose.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_review_diff_contract.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/packages/server/tests/test_subject_area_api.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/ci/mdl-classify.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/ci/mdl-drift.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/ci/mdl-gov-sync.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/ci/mdl-validate.yml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/devcontainer/devcontainer.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/governance/collibra-glossary.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/governance/collibra-oob.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/governance/dbt-analytics.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/profiles/governance/minimal.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/reverse-configs/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/reverse-configs/data-vault.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/reverse-configs/kimball.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/reverse-configs/medallion.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/scripts/catalog_demo_seed.py +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/scripts/publish.sh +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-canvas-edge-drag-and-layout-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-canvas-redesign-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-drift-policy-and-reporting-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-drift-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-erwin-xml-export-round-trip-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-erwin-xml-import-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-generate-docs-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-import-scaffold-generation-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-ontology-kg-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-reverse-engineering-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-semantic-compare-merge-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-spec-v2.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-vscode-ai-spec-extended.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/specs/modelith-vscode-ai-spec.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/.vscode/launch.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/.vscode/tasks.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/.vscodeignore +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/CHANGELOG.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/LICENSE +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/PUBLISHING.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/README.md +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/esbuild.mjs +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/icon.png +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/icon.svg +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/media/canvas.gif +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/media/reverse-configs/data-vault.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/media/reverse-configs/kimball.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/media/reverse-configs/medallion.yaml +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/package-lock.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/package.json +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/scripts/regression.sh +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/scripts/resolve.test.mjs +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/scripts/treeview.test.mjs +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/canvasPanel.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/chatParticipant.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/configView.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/docsView.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/driftDiagnostics.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/driftView.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/extension.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/lspClient.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/mcpProvider.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/mdl.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/modelView.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/multiStepInput.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/ontologyView.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/resolve.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/reverseLiveWizard.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/reverseView.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/schemas.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/statusModel.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/src/telemetry.ts +0 -0
- {modelith_dbt-0.8.2 → modelith_dbt-0.8.3}/vscode/tsconfig.json +0 -0
|
@@ -285,6 +285,9 @@ function Canvas() {
|
|
|
285
285
|
onToggleDrawer={() => setDrawerOpen((v) => !v)}
|
|
286
286
|
drawerOpen={drawerOpen}
|
|
287
287
|
filterCount={activeAreas.size}
|
|
288
|
+
// Scoped erwin export: when EXACTLY one subject area is filtered, the erwin export is
|
|
289
|
+
// scoped to it (passes ?subject_area=). Zero or several selected -> whole model.
|
|
290
|
+
scopeSubjectArea={activeAreas.size === 1 ? [...activeAreas][0] : null}
|
|
288
291
|
/>
|
|
289
292
|
)}
|
|
290
293
|
<div className="canvas-wrap">
|
|
@@ -50,6 +50,7 @@ export function TopBar({
|
|
|
50
50
|
onToggleDrawer,
|
|
51
51
|
drawerOpen,
|
|
52
52
|
filterCount,
|
|
53
|
+
scopeSubjectArea,
|
|
53
54
|
}: {
|
|
54
55
|
doc: ModelDoc;
|
|
55
56
|
diagnostics: DiagnosticsDoc | null;
|
|
@@ -83,6 +84,7 @@ export function TopBar({
|
|
|
83
84
|
drawerOpen: boolean;
|
|
84
85
|
/** number of subject areas currently filtered to (0 = showing all) — badges the hamburger */
|
|
85
86
|
filterCount: number;
|
|
87
|
+
scopeSubjectArea: string | null;
|
|
86
88
|
}) {
|
|
87
89
|
const errors = diagnostics?.items.filter((d) => d.severity === "error").length ?? 0;
|
|
88
90
|
const warnings = diagnostics?.items.filter((d) => d.severity === "warning").length ?? 0;
|
|
@@ -251,6 +253,7 @@ export function TopBar({
|
|
|
251
253
|
buttonClass="grp-btn"
|
|
252
254
|
applyBatch={onImportBatch}
|
|
253
255
|
openImport={openImport}
|
|
256
|
+
scopeSubjectArea={scopeSubjectArea}
|
|
254
257
|
/>
|
|
255
258
|
</div>
|
|
256
259
|
</div>
|
|
@@ -173,9 +173,12 @@ export const fetchExportFormats = () =>
|
|
|
173
173
|
|
|
174
174
|
/** A same-origin URL the browser can open to download an export (the endpoint sets
|
|
175
175
|
* Content-Disposition: attachment). Respects the /view/<slug> catalog prefix. */
|
|
176
|
-
export const exportUrl = (fmt: string, dialect?: string): string => {
|
|
177
|
-
const
|
|
178
|
-
|
|
176
|
+
export const exportUrl = (fmt: string, dialect?: string, subjectArea?: string | null): string => {
|
|
177
|
+
const params = new URLSearchParams();
|
|
178
|
+
if (dialect) params.set("dialect", dialect);
|
|
179
|
+
if (subjectArea) params.set("subject_area", subjectArea);
|
|
180
|
+
const q = params.toString();
|
|
181
|
+
return `${API_BASE}/api/export/${encodeURIComponent(fmt)}${q ? `?${q}` : ""}`;
|
|
179
182
|
};
|
|
180
183
|
|
|
181
184
|
export interface ImportResult {
|
|
@@ -103,6 +103,11 @@
|
|
|
103
103
|
color: var(--text-dim);
|
|
104
104
|
margin: 0;
|
|
105
105
|
}
|
|
106
|
+
/* the "· filtered area only" note on the erwin export item when a single SA is filtered */
|
|
107
|
+
.ie-scope {
|
|
108
|
+
font-size: 11px;
|
|
109
|
+
color: var(--text-dim);
|
|
110
|
+
}
|
|
106
111
|
.ie-textarea {
|
|
107
112
|
width: 100%;
|
|
108
113
|
font-family: var(--mono);
|
|
@@ -26,6 +26,7 @@ export function ImportExportMenu({
|
|
|
26
26
|
openImport = false,
|
|
27
27
|
prefillImport = "",
|
|
28
28
|
onPreview,
|
|
29
|
+
scopeSubjectArea = null,
|
|
29
30
|
}: {
|
|
30
31
|
exec: Exec;
|
|
31
32
|
canEdit: boolean;
|
|
@@ -49,6 +50,9 @@ export function ImportExportMenu({
|
|
|
49
50
|
* reveals the canvas with `?import=1`, so the same wizard the toolbar button
|
|
50
51
|
* opens is already up when the panel appears. */
|
|
51
52
|
openImport?: boolean;
|
|
53
|
+
/** when a single subject area is filtered on the canvas, the erwin export is scoped to it
|
|
54
|
+
* (its id); null = export the whole model. Other formats ignore it. */
|
|
55
|
+
scopeSubjectArea?: string | null;
|
|
52
56
|
}) {
|
|
53
57
|
const [open, setOpen] = useState<"export" | "import" | null>(
|
|
54
58
|
openImport && canEdit ? "import" : null,
|
|
@@ -112,19 +116,25 @@ export function ImportExportMenu({
|
|
|
112
116
|
</select>
|
|
113
117
|
</label>
|
|
114
118
|
)}
|
|
115
|
-
{formats.map((f) =>
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
119
|
+
{formats.map((f) => {
|
|
120
|
+
// erwin export honours a single active subject-area filter (exports just that
|
|
121
|
+
// slice); every other format always exports the whole model.
|
|
122
|
+
const scoped = f.id === "erwin" ? scopeSubjectArea : null;
|
|
123
|
+
return (
|
|
124
|
+
<a
|
|
125
|
+
key={f.id}
|
|
126
|
+
className="ie-item"
|
|
127
|
+
href={exportUrl(f.id, f.id === "sql" ? dialect : undefined, scoped)}
|
|
128
|
+
// download attribute lets the browser save rather than navigate; the
|
|
129
|
+
// server also sets Content-Disposition: attachment as a belt-and-braces.
|
|
130
|
+
download
|
|
131
|
+
onClick={() => setOpen(null)}
|
|
132
|
+
>
|
|
133
|
+
{f.label}
|
|
134
|
+
{scoped && <span className="ie-scope"> · filtered area only</span>}
|
|
135
|
+
</a>
|
|
136
|
+
);
|
|
137
|
+
})}
|
|
128
138
|
</div>
|
|
129
139
|
)}
|
|
130
140
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as s}from"./client-DOmNpTln.js";import{f as T,v as _,w as O,x as R,E as D,B as P,C as z,y as A}from"./styles-
|
|
1
|
+
import{r,j as s}from"./client-DOmNpTln.js";import{f as T,v as _,w as O,x as R,E as D,B as P,C as z,y as A}from"./styles-DpTWo4Jc.js";const V={entity:D},$={relationship:R},l={breaking:"#f87171",additive:"#34d399",cosmetic:"#fcd34d"},N=["#5eead4","#fcd34d","#a78bfa","#fb923c","#38bdf8","#f472b6","#a3e635"],d="#64748b";function Y({subjectArea:u,severityByUlid:a,focusUlid:m,onSelect:c}){const[t,g]=r.useState(null),[f,w]=r.useState(null),[h,E]=r.useState(!0);r.useEffect(()=>{g(null),T(u).then(g).catch(n=>w(String(n)))},[u]);const{nodes:k,edges:M}=r.useMemo(()=>{if(!t)return{nodes:[],edges:[]};const n=new Map;t.subject_areas.forEach(e=>{let o=2166136261;for(let i=0;i<e.id.length;i++)o=Math.imul(o^e.id.charCodeAt(i),16777619);n.set(e.id,N[Math.abs(o)%N.length])});const p=new Map(t.entities.map(e=>[e.id,e])),x=a&&a.size>0,C=t.entities.map(e=>{var j;const o=(a==null?void 0:a.get(e.id))??(e.conceptual?a==null?void 0:a.get(e.conceptual.id):void 0),i=x?o?l[o]??d:d:(j=e.conceptual)!=null&&j.subject_area?n.get(e.conceptual.subject_area.id)??d:d;return{id:e.id,type:"entity",position:{x:0,y:0},data:{entity:e,color:i,dimmed:!!(x&&!o),highlighted:e.id===m,showTypes:h}}}),b=t.relationships.map(e=>({id:e.id,source:e.from.entity,target:e.to.entity,type:"relationship",data:{relationship:e,dimmed:!1}}));return{nodes:_(C,b,p),edges:b}},[t,a,m,h]);return f?s.jsx("p",{className:"sme-splash error",children:f}):t?t.entities.length?s.jsxs("div",{className:"erd-wrap",children:[s.jsxs("div",{className:"erd-bar",children:[s.jsxs("span",{className:"erd-count",children:[t.entities.length," entities · ",t.relationships.length," relationships",t.scope&&" · scoped"]}),s.jsxs("label",{className:"erd-toggle",children:[s.jsx("input",{type:"checkbox",checked:h,onChange:n=>E(n.target.checked)}),"show types"]}),a&&a.size>0&&s.jsxs("span",{className:"erd-legend",children:[s.jsx("span",{className:"sw",style:{background:l.breaking}})," breaking",s.jsx("span",{className:"sw",style:{background:l.additive}})," added",s.jsx("span",{className:"sw",style:{background:l.cosmetic}})," changed",s.jsx("span",{className:"sw",style:{background:d}})," unchanged"]})]}),s.jsx("div",{className:"erd-canvas",children:s.jsxs(O,{nodes:k,edges:M,nodeTypes:V,edgeTypes:$,fitView:!0,minZoom:.1,nodesConnectable:!1,onNodeClick:(n,p)=>c==null?void 0:c(p.id),onPaneClick:()=>c==null?void 0:c(null),onlyRenderVisibleElements:!0,proOptions:{hideAttribution:!0},children:[s.jsx(P,{gap:16,color:"#1f2937"}),s.jsx(z,{showInteractive:!1}),s.jsx(A,{pannable:!0,zoomable:!0})]})})]}):s.jsx("p",{className:"sme-placeholder",children:"Nothing to draw — this subject area has no entities in it yet."}):s.jsx("div",{className:"sme-splash",children:"◮ drawing the model…"})}export{Y as ModelDiagram};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e,r as a,c as ie,R as le}from"./client-DOmNpTln.js";import{I as de,R as he,P as J,h as ue,f as Z,a as ee,g as se,s as xe,A as pe,b as je,M as me,S as fe}from"./styles-DpTWo4Jc.js";function ge(s){return{canEdit:!s,mode:"direct",canArbitrate:!s,canCommit:!s}}function o({size:s=16,children:i}){return e.jsx("svg",{width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",children:i})}const ye=s=>e.jsx(o,{...s,children:e.jsx("path",{d:"M12 5v14M5 12h14"})}),be=s=>e.jsx(o,{...s,children:e.jsx("path",{d:"M12 3l7.5 4.5v9L12 21l-7.5-4.5v-9L12 3z"})}),we=s=>e.jsxs(o,{...s,children:[e.jsx("path",{d:"M12 3l9 5-9 5-9-5 9-5z"}),e.jsx("path",{d:"M3 12l9 5 9-5"}),e.jsx("path",{d:"M3 16l9 5 9-5"})]}),ve=s=>e.jsxs(o,{...s,children:[e.jsx("circle",{cx:"6",cy:"6",r:"2.4"}),e.jsx("circle",{cx:"6",cy:"18",r:"2.4"}),e.jsx("circle",{cx:"18",cy:"18",r:"2.4"}),e.jsx("path",{d:"M6 8.4v7.2M8.4 6H14a3 3 0 0 1 3 3v6.6"})]}),Me=s=>e.jsxs(o,{...s,children:[e.jsx("path",{d:"M12 4v16M6 8h12"}),e.jsx("path",{d:"M6 8l-2.5 5a2.5 2.5 0 0 0 5 0L6 8zM18 8l-2.5 5a2.5 2.5 0 0 0 5 0L18 8z"}),e.jsx("path",{d:"M9 20h6"})]}),Ce=s=>e.jsx(o,{...s,children:e.jsx("path",{d:"M8 7l-4 5 4 5M16 7l4 5-4 5"})}),Ne=s=>e.jsxs(o,{...s,children:[e.jsx("path",{d:"M8 8l4-4 4 4M8 16l4 4 4-4"}),e.jsx("path",{d:"M4 12h16"})]}),Ee=s=>e.jsxs(o,{...s,children:[e.jsx("rect",{x:"3",y:"4",width:"7",height:"7",rx:"1"}),e.jsx("rect",{x:"14",y:"4",width:"7",height:"7",rx:"1"}),e.jsx("rect",{x:"3",y:"15",width:"7",height:"5",rx:"1"}),e.jsx("rect",{x:"14",y:"15",width:"7",height:"5",rx:"1"})]}),ke=s=>e.jsx(o,{...s,children:e.jsx("path",{d:"M4 8V5a1 1 0 0 1 1-1h3M16 4h3a1 1 0 0 1 1 1v3M20 16v3a1 1 0 0 1-1 1h-3M8 20H5a1 1 0 0 1-1-1v-3"})}),Se=s=>e.jsxs(o,{...s,children:[e.jsx("path",{d:"M20 11a8 8 0 1 0-.5 4"}),e.jsx("path",{d:"M20 4v5h-5"})]}),Ie=s=>e.jsxs(o,{...s,children:[e.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),e.jsx("path",{d:"M4 9h16"})]}),Le=s=>e.jsxs(o,{...s,children:[e.jsx("path",{d:"M4 7h9a4 4 0 0 1 4 4v3"}),e.jsx("path",{d:"M14 11l3 3 3-3"})]}),Re=s=>e.jsxs(o,{...s,children:[e.jsx("circle",{cx:"12",cy:"12",r:"9"}),e.jsx("path",{d:"M8.5 12.5l2.5 2.5 4.5-5"})]}),Te=s=>e.jsxs(o,{...s,children:[e.jsx("path",{d:"M12 4l9 16H3l9-16z"}),e.jsx("path",{d:"M12 10v4M12 17.5v.5"})]}),ze=s=>e.jsxs(o,{...s,children:[e.jsx("circle",{cx:"12",cy:"12",r:"9"}),e.jsx("path",{d:"M15 9l-6 6M9 9l6 6"})]}),De=s=>e.jsx(o,{...s,children:e.jsx("path",{d:"M4 6h16M4 12h16M4 18h16"})}),Fe=s=>e.jsxs(o,{...s,children:[e.jsx("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1.5"}),e.jsx("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1.5"}),e.jsx("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1.5"}),e.jsx("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1.5"})]}),Be=s=>e.jsx(o,{...s,children:e.jsx("path",{d:"M6 6l12 12M18 6L6 18"})}),Pe=s=>e.jsx(o,{...s,children:e.jsx("path",{d:"M5 12h14M13 6l6 6-6 6"})});function Ae({doc:s,saColors:i,countByArea:m,activeAreas:h,onSetActive:x,open:v,onClose:y}){const f=s.subject_areas,p=h.size>0,b=r=>x(new Set([r])),g=r=>{const u=new Set(h);u.has(r)?u.delete(r):u.add(r),x(u)},M=m.get("")??0;return e.jsxs("aside",{className:"canvas-drawer"+(v?" open":""),"aria-hidden":!v,children:[e.jsxs("div",{className:"drawer-header",children:[e.jsxs("h2",{children:[e.jsx(Fe,{size:16})," Subject areas"]}),e.jsx("button",{className:"icon-btn",onClick:y,title:"Close","aria-label":"Close drawer",children:e.jsx(Be,{size:16})})]}),e.jsx("div",{className:"drawer-hint",children:p?`Showing ${h.size} of ${f.length} — click a domain to focus, tick to add.`:"Click a domain to show only it. Tick several to compare."}),e.jsx("button",{className:"sa-all"+(p?"":" active"),onClick:()=>x(new Set),disabled:!p,children:"Show all"}),e.jsxs("div",{className:"sa-list",children:[f.map(r=>{const u=h.has(r.id),k=m.get(r.id)??r.member_count??0;return e.jsxs("div",{className:"sa-row"+(u?" active":""),onClick:()=>b(r.id),role:"button",tabIndex:0,onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),b(r.id))},title:`Focus ${r.name}`,children:[e.jsx("input",{type:"checkbox",checked:u,onClick:w=>w.stopPropagation(),onChange:()=>g(r.id),"aria-label":`Include ${r.name}`}),e.jsx("span",{className:"sa-chip",style:{background:i.get(r.id)}}),e.jsx("span",{className:"sa-name",children:r.name}),e.jsx("span",{className:"sa-count",children:k})]},r.id)}),M>0&&e.jsxs("div",{className:"sa-row muted",title:"Entities with no subject area",children:[e.jsx("span",{className:"sa-chip none"}),e.jsx("span",{className:"sa-name",children:"No subject area"}),e.jsx("span",{className:"sa-count",children:M})]})]})]})}function _e({doc:s,diagnostics:i,query:m,onQuery:h,onSubmitQuery:x,showTypes:v,onToggleTypes:y,collapseDetail:f,onToggleCollapse:p,onFitView:b,onRelayout:g,onResetLayout:M,onRefresh:r,readOnly:u,dirty:k,panelTab:w,onPanelTab:q,onNewEntity:A,exec:S,onImported:I,onImportBatch:_,openImport:$,onToggleDrawer:E,drawerOpen:D,filterCount:K,scopeSubjectArea:L}){const F=(i==null?void 0:i.items.filter(l=>l.severity==="error").length)??0,R=(i==null?void 0:i.items.filter(l=>l.severity==="warning").length)??0,j=(l,B,O,H,U)=>e.jsxs("button",{className:"grp-btn"+(w===l?" active":""),onClick:()=>q(l),title:H,children:[B,e.jsx("span",{children:O}),U&&e.jsx("span",{className:"grp-badge","aria-label":"uncommitted changes"})]});return e.jsxs("header",{className:"topbar",children:[e.jsxs("div",{className:"topbar-row context",children:[e.jsxs("button",{className:"hamburger"+(D?" active":""),onClick:E,title:D?"Hide subject areas & layout":"Subject areas & layout","aria-label":"Toggle subject-area & layout drawer","aria-expanded":D,children:[e.jsx(De,{size:18}),K>0&&e.jsx("span",{className:"hamburger-badge",children:K})]}),e.jsxs("div",{className:"brand",children:[e.jsx("span",{className:"logo",children:"◮"}),e.jsx("span",{className:"brand-name",children:"Modelith"}),e.jsx("span",{className:"project-name",children:s.project.name}),u&&e.jsx("span",{className:"chip",children:"read-only"})]}),e.jsx("input",{className:"search",type:"search",placeholder:"Search entities & attributes… ( / , Enter jumps )",value:m,onChange:l=>h(l.target.value),onKeyDown:l=>{l.key==="Enter"&&x()},id:"mdl-search"}),e.jsxs("div",{className:"stats",children:[e.jsxs("span",{className:"stat-item",title:"entities",children:[e.jsx(Ie,{size:14}),s.counts.entities]}),e.jsxs("span",{className:"stat-item",title:"relationships",children:[e.jsx(Le,{size:14}),s.counts.relationships]}),i&&e.jsx("span",{className:"diag-chip"+(F?" err":R?" warn":" ok"),title:i.items.map(l=>`${l.code} ${l.message}`).join(`
|
|
2
|
+
`)||"model valid",children:F?e.jsxs(e.Fragment,{children:[e.jsx(ze,{size:14}),F]}):R?e.jsxs(e.Fragment,{children:[e.jsx(Te,{size:14}),R]}):e.jsxs(e.Fragment,{children:[e.jsx(Re,{size:14}),"valid"]})})]})]}),e.jsxs("div",{className:"topbar-row actions",children:[!u&&e.jsxs("button",{className:"tool-btn primary",onClick:A,title:"New entity (n)",children:[e.jsx(ye,{size:15}),e.jsx("span",{children:"Entity"})]}),e.jsxs("div",{className:"btn-group",role:"group","aria-label":"Panels",children:[e.jsx("span",{className:"grp-tag",children:"Panels"}),j("ontology",e.jsx(be,{size:15}),"Ontology","Ontology browser"),j("layers",e.jsx(we,{size:15}),"Layers","Four-layer stack & coverage"),j("changes",e.jsx(ve,{size:15}),"Changes",k?"Uncommitted changes":"Changes",k),j("decisions",e.jsx(Me,{size:15}),"Decisions","Decision ledger")]}),e.jsxs("div",{className:"btn-group",role:"group","aria-label":"View",children:[e.jsx("span",{className:"grp-tag",children:"View"}),e.jsx("button",{className:"grp-btn icon-only"+(v?" active":""),onClick:y,title:"Toggle data types","aria-label":"Toggle data types",children:e.jsx(Ce,{size:15})}),e.jsx("button",{className:"grp-btn icon-only"+(f?" active":""),onClick:p,title:"Collapse to keys (PK + FK only) — readable for large models","aria-label":"Collapse to keys",children:e.jsx(Ne,{size:15})}),e.jsx(Ke,{onRelayout:g,onReset:M}),e.jsx("button",{className:"grp-btn icon-only",onClick:b,title:"Fit view","aria-label":"Fit view",children:e.jsx(ke,{size:15})})]}),e.jsxs("div",{className:"btn-group",role:"group","aria-label":"Data",children:[e.jsx("span",{className:"grp-tag",children:"Data"}),e.jsx("button",{className:"grp-btn icon-only",onClick:r,title:"Refresh from disk (picks up terminal / external edits)","aria-label":"Refresh from disk",children:e.jsx(Se,{size:15})}),e.jsx(de,{exec:S,canEdit:!u,onImported:I,submitLabel:"Import",buttonClass:"grp-btn",applyBatch:_,openImport:$,scopeSubjectArea:L})]})]})]})}const W=["LR","TB","RL","BT"],$e={LR:0,TB:90,RL:180,BT:270},te={LR:"left → right",TB:"top → bottom",RL:"right → left",BT:"bottom → top"};function Ke({onRelayout:s,onReset:i}){const[m,h]=a.useState(!1),[x,v]=a.useState("LR"),[y,f]=a.useState("auto"),p=a.useRef(null);a.useEffect(()=>{if(!m)return;const r=u=>{p.current&&!p.current.contains(u.target)&&h(!1)};return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[m]);const b=r=>{f(r),s(r,x)},g=r=>{b(r),h(!1)},M=()=>{const r=W[(W.indexOf(x)+1)%W.length];v(r),s(y,r)};return e.jsxs("div",{className:"layout-picker",ref:p,children:[e.jsx("button",{className:"grp-btn icon-only",onClick:()=>b("auto"),title:"Auto-layout","aria-label":"Auto-layout",children:e.jsx(Ee,{size:15})}),e.jsx("button",{className:"grp-btn icon-only caret"+(m?" active":""),onClick:()=>h(r=>!r),title:"Layout style","aria-label":"Layout style",children:"▾"}),e.jsx("button",{className:"grp-btn icon-only",onClick:M,title:`Flow direction: ${te[x]} (click to rotate)`,"aria-label":`Flow direction: ${te[x]}`,children:e.jsx("span",{className:"dir-arrow",style:{transform:`rotate(${$e[x]}deg)`},children:e.jsx(Pe,{size:15})})}),m&&e.jsxs("div",{className:"layout-menu",role:"menu",children:[e.jsx("button",{onClick:()=>g("auto"),children:"Auto (by size)"}),e.jsx("button",{onClick:()=>g("hierarchical"),children:"Hierarchical"}),e.jsx("button",{onClick:()=>g("clustered"),children:"Clustered (by area)"}),e.jsx("button",{onClick:()=>g("grid"),children:"Grid"}),i&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"layout-menu-sep",role:"separator"}),e.jsx("button",{onClick:()=>{i(),h(!1)},title:"Clear saved positions and routes for this view",children:"Reset layout"})]})]})]})}function He(){const[s,i]=a.useState(null),[m,h]=a.useState(null),[x,v]=a.useState(null),[y,f]=a.useState(null),[p,b]=a.useState(""),[g,M]=a.useState(!0),[r,u]=a.useState(!1),[k,w]=a.useState(()=>new Set),[q,A]=a.useState(null),[S,I]=a.useState(null),[_,$]=a.useState(!1),[E,D]=a.useState(()=>new Set),[K,L]=a.useState(!1),[F,R]=a.useState(0),j=a.useRef(null),l=a.useRef(""),B=a.useRef(!1),O=a.useMemo(()=>{const t=new Map;return s==null||s.subject_areas.forEach((c,n)=>t.set(c.id,J[n%J.length])),t},[s]),H=a.useMemo(()=>{const t=new Map;if(!s)return t;const c=new Map;return s.subject_areas.forEach(n=>{(n.members??[]).forEach(d=>c.set(d,n.id))}),s.entities.forEach(n=>{var N,Q,Y;const P=((N=n.conceptual)!=null&&N.id?c.get(n.conceptual.id):void 0)??((Y=(Q=n.conceptual)==null?void 0:Q.subject_area)==null?void 0:Y.id)??"";t.set(n.id,P)}),t},[s]),U=a.useMemo(()=>{const t=new Map;return H.forEach(c=>t.set(c,(t.get(c)??0)+1)),t},[H]),T=(s==null?void 0:s.read_only)??!0,ne=a.useMemo(()=>ge(T),[T]),ae=a.useMemo(()=>ue(),[]),V=a.useMemo(()=>new URLSearchParams(window.location.search),[]),z=V.get("minimal")==="1";a.useEffect(()=>{z&&u(!0)},[z]);const re=a.useCallback(t=>{w(c=>{const n=new Set(c);return n.has(t)?n.delete(t):n.add(t),n})},[]),ce=V.get("import")==="1",G=a.useRef(!1),C=a.useCallback(()=>{Z().then(i).catch(t=>v(String(t))),ee().then(h).catch(()=>h(null)),se().then(t=>L(!!(t.git&&!t.clean))).catch(()=>L(!1)),R(t=>t+1)},[]);a.useEffect(C,[C]),a.useEffect(()=>{const t=setInterval(()=>{Z().then(c=>{i(n=>n&&c.fingerprint===n.fingerprint?n:(B.current||(l.current=c.fingerprint),z||(ee().then(h).catch(()=>h(null)),se().then(d=>L(!!(d.git&&!d.clean))).catch(()=>L(!1))),R(d=>d+1),c))}).catch(()=>{})},3e3);return()=>clearInterval(t)},[z]),a.useEffect(()=>{s!=null&&s.fingerprint&&(l.current=s.fingerprint)},[s]);const X=a.useCallback(async(t,c)=>{if(s){B.current=!0;try{const n=await xe(t,c,l.current||s.fingerprint);return n!=null&&n.fingerprint&&(l.current=n.fingerprint),C(),n}catch(n){throw n instanceof pe&&n.status===409?(f("Model changed on disk — view refreshed, please retry."),C()):f(n instanceof Error?n.message:String(n)),n}finally{B.current=!1}}},[s,C]);a.useEffect(()=>{if(!y)return;const t=setTimeout(()=>f(null),5e3);return()=>clearTimeout(t)},[y]),a.useEffect(()=>{if(!s||G.current)return;const t=V.get("focus");if(!t)return;const c=s.entities.find(n=>{var d;return n.name===t||((d=n.conceptual)==null?void 0:d.name)===t});c&&(G.current=!0,requestAnimationFrame(()=>{var n;return(n=j.current)==null?void 0:n.focusEntity(c.id)}))},[s,V]);const oe=a.useCallback(()=>{var n;if(!s)return;const t=p.trim().toLowerCase();if(!t)return;const c=s.entities.find(d=>{var N;return(d.name.toLowerCase()+" "+(((N=d.conceptual)==null?void 0:N.name.toLowerCase())??"")+" "+d.attributes.map(Q=>Q.name.toLowerCase()).join(" ")).includes(t)});c&&((n=j.current)==null||n.focusEntity(c.id))},[s,p]);return a.useEffect(()=>{const t=c=>{var d,P,N;const n=(d=document.activeElement)==null?void 0:d.tagName;n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||(c.key==="/"&&(c.preventDefault(),(P=document.getElementById("mdl-search"))==null||P.focus()),c.key==="n"&&!T&&((N=j.current)==null||N.newEntity()),c.key==="Escape"&&(A(null),b(""),I(null)))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[T]),x?e.jsxs("div",{className:"splash error",children:[e.jsxs("h1",{children:["◮"," Modelith"]}),e.jsx("p",{children:"Could not load the model:"}),e.jsx("pre",{children:x}),e.jsxs("p",{children:["Is ",e.jsx("code",{children:"mdl serve"})," pointed at a model directory?"]})]}):s?e.jsxs("div",{className:"app",children:[!z&&e.jsx(_e,{doc:s,diagnostics:m,query:p,onQuery:b,onSubmitQuery:oe,showTypes:g,onToggleTypes:()=>M(t=>!t),collapseDetail:r,onToggleCollapse:()=>u(t=>!t),onFitView:()=>{var t;return(t=j.current)==null?void 0:t.fitView()},onRelayout:(t,c)=>{var n;return(n=j.current)==null?void 0:n.relayout(t,c)},onResetLayout:()=>{var t;return(t=j.current)==null?void 0:t.resetLayout()},onRefresh:C,readOnly:T,dirty:K,panelTab:S,onPanelTab:t=>I(c=>c===t?null:t),onNewEntity:()=>{var t;return(t=j.current)==null?void 0:t.newEntity()},exec:X,onImported:C,onImportBatch:je,openImport:ce,onToggleDrawer:()=>$(t=>!t),drawerOpen:_,filterCount:E.size,scopeSubjectArea:E.size===1?[...E][0]:null}),e.jsxs("div",{className:"canvas-wrap",children:[e.jsx(me,{doc:s,caps:ne,exec:X,selectedId:S?null:q,onSelect:A,query:p,showTypes:g,collapseDetail:r,expandedEntities:k,onToggleExpand:re,activeAreas:E,onError:f,handleRef:j,layoutStore:ae}),!z&&e.jsx(Ae,{doc:s,saColors:O,countByArea:U,activeAreas:E,onSetActive:D,open:_,onClose:()=>$(!1)}),S&&e.jsx(fe,{tab:S,onClose:()=>I(null),readOnly:T,refreshKey:F,onModelChanged:C,onFocusEntity:t=>{var c;I(null),(c=j.current)==null||c.focusEntity(t)}}),y&&e.jsx("div",{className:"toast",children:y})]})]}):e.jsxs("div",{className:"splash",children:["◮"," loading model…"]})}function Ve(){return e.jsx(he,{children:e.jsx(He,{})})}ie.createRoot(document.getElementById("root")).render(e.jsx(le.StrictMode,{children:e.jsx(Ve,{})}));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelDiagram-
|
|
2
|
-
import{r as a,j as e,c as Ge,R as Ke}from"./client-DOmNpTln.js";import{p as xe,c as be,d as ge,e as Ve,i as ve,I as Ue,R as Fe,M as Te,O as Ye,L as Je,j as Qe,k as Xe,A as Ze,l as es,m as ss,n as ns,o as ts,q as as,s as rs,f as ie,r as is,t as ls,u as cs,b as os}from"./styles-ykf7ntTy.js";/* empty css */const ds="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function he(s,n){let t="";for(let i=0;i<n;i++)t=ds[Number(s&31n)]+t,s>>=5n;return t}function Ne(){const s=BigInt(Date.now())&(1n<<48n)-1n,n=new Uint8Array(10);crypto.getRandomValues(n);let t=0n;for(const i of n)t=t<<8n|BigInt(i);return he(s,10)+he(t,16)}const hs={create_entity:["id","conceptual_id"],create_relationship:["id","from_fk_id"],create_subject_area:["id"],create_term:["id"],create_domain:["id"],create_code_set:["id"],create_key_group:["id"],create_category:["id"],add_attribute:["id"]};function ms(s,n){const t=hs[s];if(!t)return n;const i={...n};for(const l of t)i[l]||(i[l]=Ne());return i}function ye(s,n){if(s.startsWith("create_")||s==="add_attribute")return`${s}:${n.id??n.attribute_id}`;const t=n.id??n.entity_id??"",i=n.attribute_id??"";return i?`${s}:${t}:${i}`:`${s}:${t}`}function us({subjectArea:s,describe:n}){const[t,i]=a.useState([]),[l,m]=a.useState(null),[c,r]=a.useState(!1),d=a.useRef(null),v=a.useCallback(async(o,f)=>{f=ms(o,f),o==="set_alignment"&&f.status===void 0&&(f={...f,status:"proposed"});const N=ye(o,f),{label:_,before:B,after:E}=n(o,f);return i(S=>{const C=S.filter(R=>R.key!==N);if(o.startsWith("delete_")){const R=f.id??f.entity_id;if(R&&S.some(w=>w.op.startsWith("create_")&&w.payload.id===R))return C.filter(w=>w.payload.id!==R)}return[...C,{op:o,payload:f,label:_,before:B,after:E,key:N}]}),{ok:!0,fingerprint:"",created_id:f.id??null,diagnostics:[]}},[n]);a.useEffect(()=>{if(!t.length){m(null);return}const o=setTimeout(()=>{var N;(N=d.current)==null||N.abort();const f=new AbortController;d.current=f,r(!0),xe(t.map(_=>({op:_.op,payload:_.payload})),s,f.signal).then(m).catch(_=>{_.name!=="AbortError"&&m(null)}).finally(()=>r(!1))},250);return()=>clearTimeout(o)},[t,s]);const j=a.useCallback(o=>{i(f=>f.filter(N=>N.key!==o))},[]),b=a.useCallback(()=>i([]),[]);return a.useMemo(()=>({pending:t,previewDoc:(l==null?void 0:l.model)??null,previewDiff:(l==null?void 0:l.diff)??null,diagnostics:(l==null?void 0:l.diagnostics)??[],failure:l&&l.failed_index!==null?{index:l.failed_index,error:l.error??"invalid change"}:null,busy:c,exec:v,drop:j,clear:b}),[t,l,c,v,j,b])}function ps(s){const n=new Map;for(const i of s)for(const l of["id","conceptual_id","from_fk_id"]){const m=i.payload[l];i.op.startsWith("create_")&&typeof m=="string"&&n.set(m,i.key)}if(!n.size)return new Set;const t=new Set;for(const i of s)if(!i.op.startsWith("create_"))for(const l of Object.values(i.payload))typeof l=="string"&&n.has(l)&&(t.add(i.key),t.add(n.get(l)));return t}function js({user:s}){const[n,t]=a.useState(null);return a.useEffect(()=>{be(s).then(t).catch(()=>{})},[s]),!(n!=null&&n.ok)||!n.git?null:n.read_only?e.jsxs("div",{className:"git-banner",children:[e.jsx("code",{children:n.branch}),e.jsx("span",{children:"browse only — editing is disabled on this deployment"})]}):n.dirty?e.jsxs("div",{className:"git-banner warn",children:[e.jsx("code",{children:n.branch}),e.jsx("span",{children:"uncommitted changes in the working tree — a proposal will be refused until they are committed or discarded"})]}):n.on_base?e.jsxs("div",{className:"git-banner",children:[e.jsx("code",{children:n.branch}),e.jsx("span",{children:"protected — your edits become a pull request"})]}):e.jsxs("div",{className:"git-banner",children:[e.jsx("code",{children:n.branch}),e.jsx("span",{children:"your proposal branch"}),n.behind?e.jsxs("span",{className:"dim",children:["· ",n.base_branch," is ",n.behind," ahead"]}):null]})}function fs({exec:s,canEdit:n,stagedMembers:t}){const[i,l]=a.useState([]),[m,c]=a.useState(""),[r,d]=a.useState(null),[v,j]=a.useState(""),[b,o]=a.useState(new Set),[f,N]=a.useState("ancestors"),[_,B]=a.useState(1),[E,S]=a.useState(null),[C,R]=a.useState(new Set),[A,w]=a.useState(null);a.useEffect(()=>{ge().then(h=>{l(h.subject_areas),c(k=>{var D;return k||((D=h.subject_areas[0])==null?void 0:D.id)||""})}).catch(h=>w(String(h)))},[]),a.useEffect(()=>{m&&(S(null),o(new Set),Ve(m).then(d).catch(h=>w(String(h))))},[m]);const $=a.useMemo(()=>t[m]??(r==null?void 0:r.members)??[],[t,m,r]),I=a.useMemo(()=>{const h=new Map;for(const k of[...(r==null?void 0:r.included)??[],...(r==null?void 0:r.available)??[]])h.set(k.id,k);return h},[r]),g=v.trim().toLowerCase(),O=h=>!g||h.name.toLowerCase().includes(g),u=a.useMemo(()=>new Set($),[$]),M=a.useMemo(()=>$.map(h=>I.get(h)).filter(h=>!!h&&O(h)),[$,I,g]),z=a.useMemo(()=>[...I.values()].filter(h=>!u.has(h.id)&&O(h)),[I,u,g]),W=a.useCallback(h=>{if(!r)return;const k=h.filter(q=>!(r.members??[]).includes(q)).length,D=(r.members??[]).filter(q=>!h.includes(q)).length;s("set_subject_area_members",{id:r.id,members:h,__label:`${r.name}: ${h.length} objects (+${k} −${D})`})},[r,s]),H=(h,k)=>{const D=k?[...$,...h.filter(q=>!u.has(q))]:$.filter(q=>!h.includes(q));W(D),o(new Set)},G=(h,k,D)=>{const q=new Set(h);q.has(k)?q.delete(k):q.add(k),D(q)},T=()=>{if(!r)return;const h=b.size?[...b]:$;if(!h.length){w("add an object first, or select one to expand from");return}w(null),ve(r.id,{seeds:h,direction:f,levels:_}).then(k=>{S(k.hops),R(new Set(k.added))}).catch(k=>w(String(k)))},J=()=>{H([...C],!0),S(null)};if(A&&!r)return e.jsx("p",{className:"sme-splash error",children:A});if(!i.length)return e.jsx("p",{className:"sme-placeholder",children:"No subject areas yet."});const x=((r==null?void 0:r.inconsistent)??[]).filter(h=>!u.has(h));return e.jsxs("div",{className:"sa-editor",children:[e.jsx("nav",{className:"sme-nav",children:i.map(h=>e.jsxs("button",{className:"sme-sa"+(h.id===m?" active":""),onClick:()=>c(h.id),title:h.definition??void 0,children:[h.name,e.jsx("span",{className:"sme-sa-count",children:(t[h.id]??h.members).length})]},h.id))}),e.jsxs("div",{className:"sa-main",children:[e.jsxs("div",{className:"sa-head",children:[e.jsx("h2",{children:(r==null?void 0:r.name)??"…"}),(r==null?void 0:r.definition)&&e.jsx("p",{className:"sme-muted",children:r.definition}),e.jsx("input",{className:"sme-search sa-filter",type:"search",placeholder:"Filter both lists…",value:v,onChange:h=>j(h.target.value)})]}),x.length>0&&n&&e.jsxs("div",{className:"sa-nudge",children:[x.length," object",x.length>1?"s are":" is"," homed in this area but not included.",e.jsxs("button",{className:"sme-link",onClick:()=>H(x,!0),children:["Add ",x.length>1?"them all":"it"]})]}),e.jsxs("div",{className:"sa-panes",children:[e.jsx(ee,{title:`Available (${z.length})`,rows:z,picked:b,onToggle:h=>G(b,h,o),homedHere:(r==null?void 0:r.homed_here)??[]}),e.jsxs("div",{className:"sa-controls",children:[e.jsx("button",{className:"sme-secondary",disabled:!n||!b.size,onClick:()=>H([...b].filter(h=>!u.has(h)),!0),title:"Add the selected objects",children:"→"}),e.jsx("button",{className:"sme-secondary",disabled:!n||!z.length,onClick:()=>H(z.map(h=>h.id),!0),title:"Add everything matching the filter",children:"»"}),e.jsx("button",{className:"sme-secondary",disabled:!n||!b.size,onClick:()=>H([...b].filter(h=>u.has(h)),!1),title:"Remove the selected objects",children:"←"}),e.jsx("button",{className:"sme-secondary",disabled:!n||!M.length,onClick:()=>H(M.map(h=>h.id),!1),title:"Remove everything matching the filter",children:"«"})]}),e.jsx(ee,{title:`Included (${M.length})`,rows:M,picked:b,onToggle:h=>G(b,h,o),homedHere:(r==null?void 0:r.homed_here)??[]})]}),e.jsxs("div",{className:"sa-expand",children:[e.jsx("h3",{children:"Add related objects"}),e.jsxs("div",{className:"sa-expand-row",children:[e.jsxs("select",{value:f,onChange:h=>N(h.target.value),children:[e.jsx("option",{value:"ancestors",children:"ancestors — the parents its keys point at"}),e.jsx("option",{value:"descendants",children:"descendants — what points at it"}),e.jsx("option",{value:"both",children:"both"})]}),e.jsxs("label",{children:["levels",e.jsx("input",{type:"number",min:1,max:10,value:_,onChange:h=>B(Math.max(1,Math.min(10,Number(h.target.value))))})]}),e.jsx("button",{className:"sme-secondary",onClick:T,disabled:!n,children:"Preview"})]}),A&&e.jsx("p",{className:"sme-error-line",children:A}),E&&e.jsxs("div",{className:"sa-hops",children:[E.length===0&&e.jsx("p",{className:"sme-muted",children:"nothing new to add"}),E.map(h=>e.jsxs("label",{className:"sa-hop",children:[e.jsx("input",{type:"checkbox",checked:C.has(h.id),onChange:()=>G(C,h.id,R)}),e.jsx("span",{className:"sa-hop-name",children:h.name}),e.jsxs("span",{className:"sa-hop-why",children:["via ",h.via_name," · ",h.direction.replace(/s$/,""),", level ",h.level]})]},h.id)),E.length>0&&e.jsxs("div",{className:"sa-hop-actions",children:[e.jsx("button",{className:"sme-secondary",onClick:()=>S(null),children:"Cancel"}),e.jsxs("button",{className:"sme-primary",onClick:J,disabled:!C.size,children:["Add ",C.size," object",C.size===1?"":"s"]})]})]})]})]})]})}function ee({title:s,rows:n,picked:t,onToggle:i,homedHere:l}){const m=a.useMemo(()=>new Set(l),[l]);return e.jsxs("div",{className:"sa-pane",children:[e.jsx("h3",{children:s}),e.jsxs("ul",{children:[n.map(c=>e.jsxs("li",{className:"sa-row"+(t.has(c.id)?" picked":""),onClick:()=>i(c.id),children:[e.jsx("input",{type:"checkbox",readOnly:!0,checked:t.has(c.id)}),e.jsx("span",{className:"sa-row-name",children:c.name}),m.has(c.id)?e.jsx("span",{className:"sme-badge",children:"home"}):e.jsx("span",{className:"sme-badge borrowed",children:"borrowed"})]},c.id)),!n.length&&e.jsx("li",{className:"sme-empty",children:"nothing here"})]})]})}function xs({objects:s,onCreate:n,onClose:t}){const[i,l]=a.useState(""),[m,c]=a.useState(""),[r]=a.useState(s),[d,v]=a.useState([]),[j,b]=a.useState(new Set),[o,f]=a.useState(""),[N,_]=a.useState("ancestors"),[B,E]=a.useState(1),[S,C]=a.useState(null),[R,A]=a.useState(new Set),[w,$]=a.useState(""),[I,g]=a.useState(null);a.useEffect(()=>{ge().then(x=>{x.subject_areas[0]&&$(x.subject_areas[0].id)}).catch(()=>{})},[]);const O=a.useMemo(()=>new Set(d),[d]),u=o.trim().toLowerCase(),M=x=>!u||x.name.toLowerCase().includes(u),z=a.useMemo(()=>d.map(x=>r.find(h=>h.id===x)).filter(x=>!!x&&M(x)),[d,r,u]),W=a.useMemo(()=>r.filter(x=>!O.has(x.id)&&M(x)),[r,O,u]),H=(x,h)=>{v(k=>h?[...k,...x.filter(D=>!k.includes(D))]:k.filter(D=>!x.includes(D))),b(new Set)},G=(x,h,k)=>{const D=new Set(x);D.has(h)?D.delete(h):D.add(h),k(D)},T=()=>{const x=j.size?[...j]:d;if(!x.length){g("pick an object to expand from first");return}w&&(g(null),ve(w,{seeds:x,direction:N,levels:B}).then(h=>{const k=h.hops.filter(D=>!O.has(D.id));C(k),A(new Set(k.map(D=>D.id)))}).catch(h=>g(String(h))))},J=()=>{i.trim()&&n(i.trim(),m.trim(),d)};return e.jsx("div",{className:"sme-modal-backdrop",onClick:t,children:e.jsxs("div",{className:"sme-modal sa-modal",onClick:x=>x.stopPropagation(),children:[e.jsx("h2",{children:"New subject area"}),e.jsx("p",{className:"sme-hint",children:"A subject area is a filtered view of the model. Name it and choose what it contains — both land as one proposal."}),e.jsxs("div",{className:"sme-field-row",children:[e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{autoFocus:!0,value:i,placeholder:"e.g. UseCase-ApraStressTesting",onChange:x=>l(x.target.value),onKeyDown:x=>x.key==="Enter"&&d.length===0&&J()})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Definition (optional)"}),e.jsx("input",{value:m,placeholder:"what this view is for",onChange:x=>c(x.target.value)})]})]}),e.jsx("input",{className:"sme-search sa-filter",type:"search",placeholder:"Filter both lists…",value:o,onChange:x=>f(x.target.value)}),e.jsxs("div",{className:"sa-panes",children:[e.jsx(ee,{title:`Available (${W.length})`,rows:W,picked:j,onToggle:x=>G(j,x,b),homedHere:[]}),e.jsxs("div",{className:"sa-controls",children:[e.jsx("button",{className:"sme-secondary",disabled:!j.size,onClick:()=>H([...j].filter(x=>!O.has(x)),!0),title:"Add the selected objects",children:"→"}),e.jsx("button",{className:"sme-secondary",disabled:!W.length,onClick:()=>H(W.map(x=>x.id),!0),title:"Add everything matching the filter",children:"»"}),e.jsx("button",{className:"sme-secondary",disabled:!j.size,onClick:()=>H([...j].filter(x=>O.has(x)),!1),title:"Remove the selected objects",children:"←"}),e.jsx("button",{className:"sme-secondary",disabled:!z.length,onClick:()=>H(z.map(x=>x.id),!1),title:"Remove everything matching the filter",children:"«"})]}),e.jsx(ee,{title:`Included (${z.length})`,rows:z,picked:j,onToggle:x=>G(j,x,b),homedHere:[]})]}),e.jsxs("div",{className:"sa-expand",children:[e.jsx("h3",{children:"Add related objects"}),e.jsxs("div",{className:"sa-expand-row",children:[e.jsxs("select",{value:N,onChange:x=>_(x.target.value),children:[e.jsx("option",{value:"ancestors",children:"ancestors — the parents its keys point at"}),e.jsx("option",{value:"descendants",children:"descendants — what points at it"}),e.jsx("option",{value:"both",children:"both"})]}),e.jsxs("label",{children:["levels",e.jsx("input",{type:"number",min:1,max:10,value:B,onChange:x=>E(Math.max(1,Math.min(10,Number(x.target.value))))})]}),e.jsx("button",{className:"sme-secondary",onClick:T,disabled:!w,title:w?"Preview related objects to add":"Available once the model has at least one saved subject area to walk the graph from",children:"Preview"})]}),S&&e.jsxs("div",{className:"sa-hops",children:[S.length===0&&e.jsx("p",{className:"sme-muted",children:"nothing new to add"}),S.map(x=>e.jsxs("label",{className:"sa-hop",children:[e.jsx("input",{type:"checkbox",checked:R.has(x.id),onChange:()=>G(R,x.id,A)}),e.jsx("span",{className:"sa-hop-name",children:x.name}),e.jsxs("span",{className:"sa-hop-why",children:["via ",x.via_name," · ",x.direction.replace(/s$/,""),", level ",x.level]})]},x.id)),S.length>0&&e.jsxs("div",{className:"sa-hop-actions",children:[e.jsx("button",{className:"sme-secondary",onClick:()=>C(null),children:"Cancel"}),e.jsxs("button",{className:"sme-primary",disabled:!R.size,onClick:()=>{H([...R],!0),C(null)},children:["Add ",R.size]})]})]})]}),I&&e.jsx("p",{className:"sme-error-line",children:I}),e.jsxs("div",{className:"sme-modal-foot",children:[e.jsx("button",{className:"sme-secondary",onClick:t,children:"Cancel"}),e.jsxs("button",{className:"sme-primary",disabled:!i.trim(),onClick:J,children:["Create",d.length>0&&` with ${d.length} object${d.length===1?"":"s"}`]})]})]})})}const bs=new Set(["set_definition","set_stewardship","set_subject_area","set_pattern","rename_entity","add_attribute","update_attribute","delete_attribute","set_alignment","clear_alignment","set_term_map","clear_term_map","update_synonyms","set_object_definition","set_subject_area_members","create_subject_area","update_subject_area","create_entity","delete_entity","create_relationship","rename_relationship","update_relationship","delete_relationship"]);function gs({doc:s,subjectArea:n,onSubjectArea:t,exec:i,canEdit:l,direct:m=!1,onSelectEntity:c,onImported:r,onImportPreview:d,openImport:v=!1,prefillImport:j="",query:b="",busy:o}){var I;const[f,N]=a.useState(null),[_,B]=a.useState(null),[E,S]=a.useState(!1),[C,R]=a.useState(null),A=a.useRef(null),w=a.useMemo(()=>({canEdit:l,mode:m?"direct":"staged",allow:m?void 0:bs,canArbitrate:m,canCommit:m}),[l,m]),$=a.useCallback(g=>{N(g),g&&(c==null||c(g))},[c]);return e.jsxs("div",{className:"sme-model-view",children:[e.jsxs("nav",{className:"sme-nav",children:[e.jsxs("div",{className:"sme-nav-head",children:[e.jsx("span",{children:"Subject areas"}),l&&e.jsx("button",{className:"sme-nav-add",title:"New subject area",onClick:()=>S(!0),children:"+"})]}),e.jsxs("button",{className:"sme-sa"+(n===""?" active":""),onClick:()=>t(""),children:["Whole model",e.jsx("span",{className:"sme-sa-count",children:((I=s.counts)==null?void 0:I.entities_total)??s.entities.length})]}),s.subject_areas.map(g=>e.jsxs("button",{className:"sme-sa"+(n===g.id?" active":""),onClick:()=>t(g.id),title:g.definition??void 0,children:[g.name,e.jsx("span",{className:"sme-sa-count",children:g.member_count??0})]},g.id))]}),E&&e.jsx(xs,{objects:s.entities.flatMap(g=>g.conceptual?[{id:g.conceptual.id,kind:"conceptual_entity",name:g.conceptual.name,definition:g.conceptual.definition??null,synonyms:[],subject_area:g.conceptual.subject_area??null,stewardship:null,ontology:null,where_used:[]}]:[]),onClose:()=>S(!1),onCreate:(g,O,u)=>{const M=Ne();i("create_subject_area",{name:g,...O?{definition:O}:{},id:M}),u.length&&i("set_subject_area_members",{id:M,members:u}),S(!1),t(M)}}),e.jsxs("div",{className:"erd-wrap",children:[e.jsxs("div",{className:"erd-bar",children:[e.jsxs("span",{className:"erd-count",children:[s.entities.length," entities · ",s.relationships.length," relationships",s.scope&&" · scoped"]}),l&&e.jsx("button",{className:"erd-action",onClick:()=>{var g;return(g=A.current)==null?void 0:g.newEntity()},title:"Add an entity (n)",children:"+ Entity"}),e.jsx("span",{className:"erd-hint",children:"drag between entities to relate them"}),e.jsxs("span",{className:"erd-group",children:[e.jsxs("button",{className:"erd-action ghost",onClick:()=>{var g;return(g=A.current)==null?void 0:g.relayout()},title:"Auto-arrange the diagram",children:[e.jsx("span",{className:"erd-ico","aria-hidden":"true",children:"⟲"}),"Re-layout"]}),e.jsxs("button",{className:"erd-action ghost",onClick:()=>{var g;return(g=A.current)==null?void 0:g.fitView()},title:"Fit the whole model in view",children:[e.jsx("span",{className:"erd-ico","aria-hidden":"true",children:"⛶"}),"Fit"]})]}),e.jsx("span",{className:"erd-sep","aria-hidden":"true"}),e.jsxs("span",{className:"erd-group",children:[e.jsx("button",{className:"erd-action ghost"+(_==="ontology"?" on":""),onClick:()=>B(g=>g==="ontology"?null:"ontology"),children:"Ontology"}),e.jsx("button",{className:"erd-action ghost"+(_==="layers"?" on":""),onClick:()=>B(g=>g==="layers"?null:"layers"),children:"Layers"})]}),e.jsx("span",{className:"erd-sep","aria-hidden":"true"}),e.jsx(Ue,{exec:i,canEdit:l,onImported:r,onPreview:d,openImport:v,prefillImport:j}),o&&e.jsx("span",{className:"erd-busy",children:"updating…"}),!l&&e.jsx("span",{className:"sme-chip",children:"read-only"}),C&&e.jsx("span",{className:"erd-error",children:C})]}),e.jsxs("div",{className:"erd-canvas canvas-wrap",children:[e.jsx(Fe,{children:e.jsx(Te,{doc:s,caps:w,exec:i,selectedId:f,onSelect:$,query:b,onError:R,handleRef:A})}),_&&e.jsxs("aside",{className:"side-panel",children:[e.jsxs("div",{className:"detail-header",children:[e.jsx("h2",{children:_==="ontology"?"Ontology":"Ontology layers"}),e.jsx("button",{className:"icon-btn",onClick:()=>B(null),children:"✕"})]}),_==="ontology"?e.jsx(Ye,{}):e.jsx(Je,{refreshKey:0,onFocusEntity:g=>{var O;B(null),(O=A.current)==null||O.focusEntity(g)}})]})]})]})]})}function vs({user:s,onView:n}){const[t,i]=a.useState(null),[l,m]=a.useState(null);if(a.useEffect(()=>{Qe(s).then(i).catch(r=>m(String(r)))},[s]),l)return e.jsx("p",{className:"sme-splash error",children:l});if(!t)return e.jsx("div",{className:"sme-splash",children:"◮ looking for your proposals…"});if(!t.git)return e.jsx("p",{className:"sme-placeholder",children:"This model isn't in a git repository."});const c=t.proposals.filter(r=>!r.merged).length;return e.jsxs("div",{className:"pr-wrap",children:[e.jsxs("div",{className:"pr-head",children:[e.jsx("h2",{children:"My proposals"}),e.jsxs("span",{className:"meta",children:[c," open · base: ",t.base]})]}),!t.proposals.length&&e.jsx("p",{className:"sme-placeholder",children:"Nothing proposed yet. Edits you submit for review will appear here."}),t.proposals.map(r=>e.jsx(ys,{p:r,gh:t.gh,onView:()=>n(r.branch)},r.branch)),!t.gh&&t.proposals.length>0&&e.jsxs("div",{className:"pr-degrade",children:["Review status isn't available here (",e.jsx("code",{children:"gh"})," is not installed or not signed in). Branch, contents, merge state and conflicts all still come from git — each card links out to the compare view."]})]})}function Ns(s,n){var t,i;return s.merged?{kind:"accepted",text:"✅ Accepted"}:s.pushed?n&&((t=s.pr)==null?void 0:t.state)==="CLOSED"?{kind:"declined",text:"✖ Declined"}:n&&((i=s.pr)==null?void 0:i.reviews)==="CHANGES_REQUESTED"?{kind:"changes",text:"💬 Changes requested"}:{kind:"awaiting",text:"⏳ Awaiting review"}:{kind:"local",text:"📥 Saved locally"}}function ys({p:s,gh:n,onView:t}){const i=Ns(s,n);return e.jsxs("div",{className:"pr-card"+(i.kind==="attention"?" attention":""),children:[e.jsxs("div",{className:"pr-top",children:[e.jsx("span",{className:"pr-title",children:s.title}),e.jsx("span",{className:"pr-chip "+i.kind,children:i.text})]}),e.jsxs("div",{className:"pr-branch",children:[s.branch," · ",s.created,s.behind>0&&` · ${s.behind} behind`]}),e.jsxs("div",{className:"pr-foot",children:[e.jsx("span",{className:"pr-link",children:s.merged?e.jsxs(e.Fragment,{children:["merged",n&&s.pr?` · PR #${s.pr.number}`:""]}):s.pushed?n&&s.pr?e.jsxs("a",{href:s.pr.url,target:"_blank",rel:"noreferrer",children:["PR #",s.pr.number]}):s.compare_url?e.jsx("a",{href:s.compare_url,target:"_blank",rel:"noreferrer",children:"open the compare view →"}):"pushed":"not sent yet — no connection to the shared repo"}),e.jsx("span",{className:"pr-btns",children:e.jsx("button",{className:"sme-secondary",onClick:t,children:"View"})})]})]})}function ws({changes:s,routeAdvice:n,identity:t,user:i,onUser:l,onDrop:m,onClose:c,onProposed:r}){const d=!!(t&&t.source!=="anonymous"),[v,j]=a.useState(i||(localStorage.getItem("mdl.sme.user")??"")),[b,o]=a.useState(s.length===1?`Update ${s[0].label.toLowerCase()}`:"Glossary updates"),[f,N]=a.useState(""),[_,B]=a.useState(!1),E=we(_?f:b),[S,C]=a.useState(""),[R,A]=a.useState(!1),[w,$]=a.useState(null),[I,g]=a.useState(null),O=()=>{!d&&!v.trim()||(d||(localStorage.setItem("mdl.sme.user",v.trim()),l==null||l(v.trim())),A(!0),g(null),Xe({user:d?"":v.trim(),slug:E,title:b,body:S.trim(),changes:s.map(u=>({op:u.op,payload:u.payload}))}).then($).catch(u=>g(u instanceof Ze?u.message:String(u))).finally(()=>A(!1)))};return w!=null&&w.ok?e.jsx("div",{className:"sme-modal-backdrop",onClick:()=>r(w),children:e.jsxs("div",{className:"sme-modal",onClick:u=>u.stopPropagation(),children:[e.jsx("h2",{children:"✓ Sent for review"}),e.jsx("p",{children:w.message}),w.pr_url&&e.jsx("p",{children:e.jsx("a",{href:w.pr_url,target:"_blank",rel:"noreferrer",children:"View pull request →"})}),w.compare_url&&e.jsx("p",{children:e.jsx("a",{href:w.compare_url,target:"_blank",rel:"noreferrer",children:"Open the pull request →"})}),e.jsxs("p",{className:"sme-muted",children:["Your suggestion is on branch ",e.jsx("code",{children:w.branch}),". A steward will review it."]}),e.jsx("div",{className:"sme-modal-foot",children:e.jsx("button",{className:"sme-primary",onClick:()=>r(w),children:"Done"})})]})}):e.jsx("div",{className:"sme-modal-backdrop",onClick:c,children:e.jsxs("div",{className:"sme-modal",onClick:u=>u.stopPropagation(),children:[e.jsxs("div",{className:"sme-card-head",children:[e.jsx("h2",{children:"Submit for review"}),e.jsx("button",{className:"sme-secondary",onClick:c,children:"✕"})]}),e.jsx("h3",{children:"Your changes"}),e.jsx("ul",{className:"sme-diff",children:s.map((u,M)=>e.jsxs("li",{children:[e.jsxs("div",{className:"sme-diff-head",children:[e.jsx("b",{children:u.label}),e.jsx("button",{className:"sme-link danger",onClick:()=>m(M),children:"discard"})]}),e.jsx("div",{className:"sme-diff-before",children:u.before}),e.jsx("div",{className:"sme-diff-after",children:u.after})]},M))}),d?e.jsxs("p",{className:"sme-signed-in",children:["Signed in as ",e.jsx("strong",{children:t.name}),t.email?` (${t.email})`:""," — this proposal is attributed to you."]}):e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Your name (for attribution)"}),e.jsx("input",{value:v,onChange:u=>j(u.target.value),placeholder:"e.g. a.hough"})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Title"}),e.jsx("input",{value:b,onChange:u=>o(u.target.value)})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Branch name (edit to add a ticket id, e.g. PROJ-123)"}),e.jsx("input",{value:_?f:E,onChange:u=>{B(!0),N(u.target.value)},placeholder:"clarify-counterparty"})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Note for the reviewer (optional)"}),e.jsx("textarea",{rows:2,value:S,onChange:u=>C(u.target.value)})]}),e.jsx(ks,{cl:n,user:d?t.name:v,changeSlug:E}),I&&e.jsx("p",{className:"sme-error-line",children:I}),e.jsxs("div",{className:"sme-modal-foot",children:[e.jsx("button",{className:"sme-secondary",onClick:c,children:"Keep editing"}),e.jsx("button",{className:"sme-primary",disabled:R||!d&&!v.trim()||s.length===0,onClick:O,children:R?"Submitting…":"Submit for review"})]})]})})}function ks({cl:s,user:n,changeSlug:t}){if(!(s!=null&&s.primary))return null;const i=s.reviewers_actual??s.reviewers,l=we(n||"you"),m=s.routes.length>1;return e.jsxs(e.Fragment,{children:[m&&e.jsxs("div",{className:"sub-advice",children:[e.jsx("span",{className:"i",children:"ⓘ"})," These changes span routes"," ",e.jsx("strong",{children:s.routes.join(" and ")}),". The whole proposal will be reviewed as route ",s.primary," (",s.primary_name,") — the strictest gate wins, so it needs"," ",i.join(", ")," plus ",e.jsx("code",{children:s.gates[s.gates.length-1]}),". Proposing the meaning-only changes separately would get them reviewed faster."]}),e.jsxs("div",{className:"sub-dest",children:[e.jsxs("div",{className:"row",children:[e.jsx("span",{className:"k",children:"Goes to"}),e.jsxs("code",{children:["sme/",l,"/",t||"…"]})]}),e.jsxs("div",{className:"row",children:[e.jsx("span",{className:"k",children:"Reviewers"}),e.jsx("span",{children:i.join(", ")})]})]})]})}function we(s){return s.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"change"}const ke=[{id:"all",label:"All"},{id:"additions",label:"Additions"},{id:"modifications",label:"Modifications"},{id:"moves",label:"Renames"},{id:"deletions",label:"Deletions"},{id:"conflicts",label:"Conflicts"}];function _e(s,n){switch(n){case"all":return!0;case"additions":return s.change==="added";case"deletions":return s.change==="removed";case"moves":return s.renamed;case"modifications":return s.change==="modified"&&!s.renamed;case"conflicts":return s.severity==="breaking"}}function _s(s,n){return n==="all"?s.objects:s.objects.filter(t=>_e(t,n))}function Ss(s){const n={};for(const{id:t}of ke)n[t]=t==="all"?s.objects.length:s.objects.filter(i=>_e(i,t)).length;return n}function Q(s,n){return`${s}\0${n}`}function Se(s){const n=s.fields.map(t=>Q(s.ulid,t.field));for(const t of s.children)for(const i of t.fields)n.push(Q(s.ulid,`${t.ulid}.${i.field}`));return n.length?n:[Q(s.ulid,"*")]}function Ce(s,n){const t=Se(s),i=t.filter(l=>n.has(l)).length;return i===0?"none":i===t.length?"all":"some"}function Ae(s,n){return Ce(s,n)!=="none"}function Cs(s,n){return s.objects.filter(t=>Ae(t,n)).map(t=>t.ulid)}function As(s,n){const t=new Set;for(const i of s.objects){if(i.object_kind!=="logical_entity"||i.change!=="added"||!Ae(i,n))continue;const l=i.name_after??i.name_before;l&&t.add(l)}return t}function $s(s,n){if(n.size===0)return[];const t=new Set,i=[],l=m=>[m.entity_id,m.from_entity,m.to_entity,m.from,m.to].filter(c=>typeof c=="string");for(const m of s){const c=m.payload;switch(m.op){case"create_entity":{const r=typeof c.name=="string"?c.name:"",d=typeof c.id=="string"?c.id:"";n.has(r)&&(t.add(d),i.push(m));break}case"add_attribute":{const r=typeof c.entity_id=="string"?c.entity_id:"";t.has(r)&&i.push(m);break}case"create_relationship":case"create_key_group":{const r=l(c);r.length>0&&r.every(d=>t.has(d))&&i.push(m);break}default:i.push(m)}}return i}function $e(s){const n=new Set;for(const t of s.objects)for(const i of Se(t))n.add(i);return n}const Es="modulepreload",Rs=function(s){return"/"+s},me={},Ms=function(n,t,i){let l=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const c=document.querySelector("meta[property=csp-nonce]"),r=(c==null?void 0:c.nonce)||(c==null?void 0:c.getAttribute("nonce"));l=Promise.allSettled(t.map(d=>{if(d=Rs(d),d in me)return;me[d]=!0;const v=d.endsWith(".css"),j=v?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${j}`))return;const b=document.createElement("link");if(b.rel=v?"stylesheet":Es,v||(b.as="script"),b.crossOrigin="",b.href=d,r&&b.setAttribute("nonce",r),document.head.appendChild(b),v)return new Promise((o,f)=>{b.addEventListener("load",o),b.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${d}`)))})}))}function m(c){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=c,window.dispatchEvent(r),!r.defaultPrevented)throw c}return l.then(c=>{for(const r of c||[])r.status==="rejected"&&m(r.reason);return n().catch(m)})};function Ds({diff:s,selectable:n,selected:t,onToggle:i,onToggleField:l}){var f;const[m,c]=a.useState("all"),r=a.useMemo(()=>_s(s,m),[s,m]),d=a.useMemo(()=>Ss(s),[s]),[v,j]=a.useState(((f=s.objects[0])==null?void 0:f.ulid)??null),b=a.useMemo(()=>r.find(N=>N.ulid===v)??r[0]??s.objects[0]??null,[r,s,v]),o=!!l;return s.objects.length?e.jsxs("div",{className:"rv-wrap",children:[n!==void 0&&e.jsx("div",{className:"rv-filters",role:"tablist","aria-label":"Filter changes",children:ke.filter(N=>N.id==="all"||d[N.id]>0).map(N=>e.jsxs("button",{role:"tab","aria-selected":m===N.id,className:"rv-filter"+(m===N.id?" active":""),onClick:()=>c(N.id),children:[N.label,e.jsx("span",{className:"rv-filter-count",children:d[N.id]})]},N.id))}),e.jsxs("div",{className:"rv-body",children:[e.jsx("div",{className:"rv-list",children:r.length===0?e.jsx("p",{className:"sme-placeholder",children:"No changes match this filter."}):r.map(N=>e.jsx(Is,{obj:N,active:N.ulid===((b==null?void 0:b.ulid)??""),selectable:n,perField:o,objState:o?Ce(N,t??new Set):void 0,checkedObject:(t==null?void 0:t.has(N.ulid))??!0,onSelect:()=>j(N.ulid),onToggleObject:()=>i==null?void 0:i(N.ulid),onToggleField:l},N.ulid))}),e.jsx("div",{className:"rv-detail",children:b&&e.jsx(Os,{obj:b,selectable:n,perField:o,selected:t,onToggleField:l})})]})]}):e.jsxs("p",{className:"sme-placeholder",children:["No model changes against ",s.base.label,"."]})}function Ps(s){return s.renamed?"renamed":s.severity==="breaking"?"breaking":s.change}function Is({obj:s,active:n,selectable:t,perField:i,objState:l,checkedObject:m,onSelect:c,onToggleObject:r,onToggleField:d}){const v=o=>{o&&i&&(o.indeterminate=l==="some")},j=i?l!=="none":m,b=()=>{if(!i)return r();for(const o of s.fields)d==null||d(s.ulid,o.field);for(const o of s.children)for(const f of o.fields)d==null||d(s.ulid,`${o.ulid}.${f.field}`);!s.fields.length&&!s.children.length&&(d==null||d(s.ulid,"*"))};return e.jsxs("div",{className:"rv-obj"+(n?" active":""),onClick:c,children:[e.jsxs("div",{className:"rv-obj-head",children:[t&&e.jsx("input",{type:"checkbox",ref:v,checked:j,onClick:o=>o.stopPropagation(),onChange:b,"aria-label":`include ${s.name_before??s.name_after}`}),e.jsx("span",{className:"rv-obj-name",children:s.name_before??s.name_after}),e.jsx("span",{className:"rv-obj-kind",children:s.object_kind_label}),e.jsxs("span",{className:"sev "+(s.renamed?"renamed":s.severity),children:[s.severity==="breaking"&&"⚠ ",Ps(s)]})]}),e.jsxs("ul",{className:"rv-obj-fields",children:[s.fields.map((o,f)=>e.jsx("li",{children:o.label},o.field+f)),s.children.flatMap(o=>o.fields.map((f,N)=>e.jsxs("li",{children:[f.label,": ",o.name_before??o.name_after]},o.ulid+N)))]})]})}function Os({obj:s,selectable:n,perField:t,selected:i,onToggleField:l}){const m=s.children.flatMap(r=>r.fields.map(d=>({field:d,on:r.name_before??r.name_after??"",key:`${r.ulid}.${d.field}`}))),c=(r,d)=>{if(!n||!t)return d;const v=Q(s.ulid,r);return e.jsxs("div",{className:"rv-field-pick",children:[e.jsx("input",{type:"checkbox",checked:(i==null?void 0:i.has(v))??!0,onChange:()=>l==null?void 0:l(s.ulid,r),"aria-label":`include change: ${r}`}),e.jsx("div",{className:"rv-field-body",children:d})]})};return e.jsxs(e.Fragment,{children:[e.jsx("h2",{children:s.renamed?`${s.name_before} → ${s.name_after}`:s.name_before??s.name_after}),e.jsxs("div",{className:"rv-detail-kind",children:[s.object_kind_label,s.renamed&&" · renamed",s.path&&e.jsxs("span",{className:"rv-src",children:[" · ",s.path]})]}),s.fields.map((r,d)=>e.jsx("div",{children:c(r.field,e.jsx(ue,{f:r}))},r.field+d)),m.map(({field:r,on:d,key:v},j)=>e.jsx("div",{children:c(v,e.jsx(ue,{f:r,on:d}))},"c"+j)),s.severity==="breaking"&&e.jsxs("div",{className:"rv-note",children:[e.jsx("span",{className:"i",children:"ⓘ"}),e.jsxs("span",{children:["This is a structural change (route B). It will need an architect's review, and CI will run ",e.jsx("code",{children:"mdl drift --check"}),"."]})]})]})}function ue({f:s,on:n}){var i,l,m;const t=n?`${s.label}: ${n}`:s.label;if((i=s.breaks)!=null&&i.length)return e.jsxs("div",{className:"rv-section",children:[e.jsx("h3",{children:t}),e.jsxs("div",{className:"rv-break",children:[e.jsxs("div",{className:"rv-break-head",children:[e.jsx("span",{children:"⚠"}),e.jsxs("span",{children:[n??String(s.before??"")," removed"]}),s.detail&&e.jsx("span",{className:"rv-break-meta",children:s.detail})]}),e.jsxs("div",{className:"rv-break-body",children:["This is realised by ",s.breaks.length," dbt model",s.breaks.length>1?"s":"",". Removing it will break ",s.breaks.length>1?"them":"it","."]}),e.jsx("ul",{className:"rv-usage",children:s.breaks.map(c=>e.jsxs("li",{children:[e.jsxs("span",{className:"m",children:["→ ",c.name]}),e.jsxs("span",{className:"p",children:[c.target," · ",c.materialization]})]},c.name))})]})]});if(s.kind==="definition_changed"){const c=String(s.before??""),r=String(s.after??"");return e.jsxs("div",{className:"rv-section",children:[e.jsx("h3",{children:t}),e.jsxs("div",{className:"rv-ba",children:[e.jsxs("div",{className:"rv-ba-col",children:[e.jsx("div",{className:"rv-ba-label",children:"before"}),e.jsx("div",{className:"rv-ba-text",children:je(c,r,"del")})]}),e.jsxs("div",{className:"rv-ba-col",children:[e.jsx("div",{className:"rv-ba-label",children:"after"}),e.jsx("div",{className:"rv-ba-text",children:je(r,c,"ins")})]})]})]})}if(Array.isArray(s.before)||Array.isArray(s.after)){const c=new Set(((l=s.before)==null?void 0:l.map(String))??[]),r=new Set(((m=s.after)==null?void 0:m.map(String))??[]),d=[...r].filter(j=>!c.has(j)),v=[...c].filter(j=>!r.has(j));return e.jsxs("div",{className:"rv-section",children:[e.jsx("h3",{children:t}),e.jsxs("div",{className:"rv-chips",children:[d.map(j=>e.jsxs("span",{className:"rv-chip-add",children:["+ ",j]},"a"+j)),v.map(j=>e.jsxs("span",{className:"rv-chip-del",children:["− ",j]},"r"+j))]})]})}return e.jsxs("div",{className:"rv-section",children:[e.jsx("h3",{children:t}),e.jsxs("div",{className:"rv-scalar",children:[e.jsx("span",{className:"from",children:pe(s.before)}),e.jsx("span",{className:"arrow",children:"→"}),e.jsx("span",{className:"to",children:pe(s.after)})]})]})}function pe(s){return s==null||s===""?"—":typeof s=="boolean"?s?"yes":"no":typeof s=="object"?JSON.stringify(s):String(s)}function je(s,n,t){const i=s.split(/(\s+)/),l=n.split(/(\s+)/),m=o=>o.toLowerCase().replace(/[.,;:]/g,""),c=i.length,r=l.length,d=Array.from({length:c+1},()=>new Array(r+1).fill(0));for(let o=c-1;o>=0;o--)for(let f=r-1;f>=0;f--)d[o][f]=m(i[o])===m(l[f])?d[o+1][f+1]+1:Math.max(d[o+1][f],d[o][f+1]);const v=new Set;let j=0,b=0;for(;j<c&&b<r;)m(i[j])===m(l[b])?(v.add(j),j++,b++):d[j+1][b]>=d[j][b+1]?j++:b++;return i.map((o,f)=>!o.trim()||v.has(f)?e.jsx("span",{children:o},f):t==="del"?e.jsx("del",{children:o},f):e.jsx("ins",{children:o},f))}const Bs=a.lazy(()=>Ms(()=>import("./ModelDiagram-Ban4nX4P.js"),__vite__mapDeps([0,1,2,3])).then(s=>({default:s.ModelDiagram})));function Ls({stagedDiff:s,stagedRoute:n,user:t,onBack:i,onSubmit:l,excluded:m,onToggleField:c,selectable:r,action:d}){const[v,j]=a.useState(null),[b,o]=a.useState(null),[f,N]=a.useState(null),[_,B]=a.useState(null),[E,S]=a.useState(null),[C,R]=a.useState("changes"),A=a.useCallback(()=>{be(t).then($=>{B($);const I=$.base_branch??"main";s?j(s):es("HEAD").then(g=>g.ok?j(g):S(g.error??"could not read the model")).catch(g=>S(String(g))),n?o(n):ss("HEAD").then(o).catch(()=>{}),ns(I).then(N).catch(()=>{})}).catch($=>S(String($)))},[t,s,n]);if(a.useEffect(A,[A]),E)return e.jsxs("div",{className:"rv-shell",children:[e.jsx(fe,{onBack:i,diff:null}),e.jsx("p",{className:"sme-splash error",children:e.jsx("pre",{children:E})})]});if(!v)return e.jsx("div",{className:"sme-splash",children:"◮ reading your changes…"});const w=new Set([...$e(v)].filter($=>!m.has($)));return e.jsxs("div",{className:"rv-shell",children:[e.jsx(fe,{onBack:i,diff:v,tab:C,onTab:R}),C==="changes"?e.jsx(Ds,{diff:v,selectable:r,selected:w,onToggleField:c}):e.jsx(a.Suspense,{fallback:e.jsx("div",{className:"sme-splash",children:"◮ drawing the model…"}),children:e.jsx(Bs,{severityByUlid:zs(v)})}),e.jsxs("div",{className:"rv-foot",children:[e.jsx(Hs,{cl:b}),e.jsx(Ws,{conf:f,ctx:_}),e.jsxs("div",{className:"rv-actions",children:[e.jsx("button",{className:"sme-secondary",onClick:i,children:d?"Cancel":"Keep editing"}),d?e.jsx("button",{className:"sme-primary",disabled:!v.objects.length||!!d.disabledReason,title:d.disabledReason??"",onClick:()=>d.apply(Cs(v,w)),children:d.label}):e.jsx("button",{className:"sme-primary",disabled:!v.objects.length||(_?!_.can_propose:!1),title:_&&!_.can_propose?"the working tree has uncommitted changes":"",onClick:()=>l(b),children:"Submit for review →"})]})]})]})}function zs(s){const n=new Map;for(const t of s.objects)n.set(t.ulid,t.severity);return n}function fe({onBack:s,diff:n,tab:t,onTab:i}){const l=n==null?void 0:n.counts;return e.jsxs("div",{className:"rv-head",children:[e.jsxs("div",{children:[e.jsx("button",{className:"rv-back",onClick:s,children:"‹ Back to terms"}),e.jsx("h1",{className:"rv-title",children:"Review your changes"}),l&&e.jsxs("div",{className:"rv-sub",children:[l.objects," object",l.objects===1?"":"s"," ·"," ",(l.breaking??0)+(l.additive??0)+(l.cosmetic??0)," changes",(n==null?void 0:n.has_breaking)&&e.jsxs("span",{className:"warn",children:[" · ⚠ ",l.breaking," breaking"]})," · comparing to ",e.jsx("code",{children:n==null?void 0:n.base.label})]})]}),i&&e.jsxs("div",{className:"rv-tabs",children:[e.jsxs("button",{className:"rv-tab"+(t==="changes"?" active":""),onClick:()=>i("changes"),children:["Changes ",(n==null?void 0:n.objects.length)??0]}),e.jsx("button",{className:"rv-tab"+(t==="diagram"?" active":""),onClick:()=>i("diagram"),children:"Diagram"})]})]})}function Hs({cl:s}){if(!(s!=null&&s.primary))return null;const n=s.reviewers_actual??s.reviewers;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rv-route",children:[e.jsxs("span",{className:"rv-route-badge",children:["Route ",s.primary," · ",s.primary_name]}),e.jsx("span",{className:"k",children:"Reviewers"}),e.jsx("span",{children:n.join(", ")}),s.reviewers_actual&&e.jsx("span",{className:"rv-src",children:"from .github/CODEOWNERS"})]}),e.jsxs("div",{className:"rv-gates",children:["CI gates"," ",s.gates.map(t=>e.jsx("code",{children:t},t))]})]})}function Ws({conf:s,ctx:n}){return s!=null&&s.ok?s.clean?e.jsxs("div",{className:"rv-conflict ok",children:[e.jsx("span",{children:"✓"}),e.jsxs("span",{children:["Merges cleanly onto ",s.base]}),s.behind>0&&e.jsxs("span",{className:"detail",children:["· ",s.base," is ",s.behind," commit",s.behind===1?"":"s"," ahead"]}),(n==null?void 0:n.dirty)&&e.jsx("span",{className:"detail",children:"· uncommitted changes in the working tree"})]}):e.jsxs("div",{className:"rv-conflict bad",children:[e.jsx("span",{children:"⚠"}),e.jsxs("span",{children:[s.base," has changed and ",s.files.length," file",s.files.length===1?"":"s"," now conflict"]}),e.jsx("span",{className:"detail",children:s.files.map(t=>t.path).join(", ")})]}):null}function qs({term:s,canEdit:n,pendingCount:t,onEdit:i}){var l,m;return e.jsxs("div",{className:"sme-card",children:[e.jsxs("div",{className:"sme-card-head",children:[e.jsxs("div",{children:[e.jsx("h1",{children:s.name}),((l=s.subject_area)==null?void 0:l.name)&&e.jsx("span",{className:"sme-chip",children:s.subject_area.name}),s.kind==="term"&&e.jsx("span",{className:"sme-chip",children:"glossary term"})]}),n&&e.jsx("button",{className:"sme-primary",onClick:i,children:t>0?"Continue editing":"Suggest an edit"})]}),e.jsx("p",{className:"sme-definition",children:s.definition??e.jsx("em",{children:"No definition yet."})}),s.synonyms.length>0&&e.jsxs("section",{children:[e.jsx("h3",{children:"Also called"}),e.jsx("div",{children:s.synonyms.map(c=>e.jsx("span",{className:"sme-chip",children:c},c))})]}),s.stewardship&&(s.stewardship.owner||s.stewardship.steward)&&e.jsxs("section",{children:[e.jsx("h3",{children:"Who owns this"}),s.stewardship.owner&&e.jsxs("div",{className:"sme-kv",children:[e.jsx("span",{className:"k",children:"owner"}),e.jsx("span",{children:s.stewardship.owner})]}),s.stewardship.steward&&e.jsxs("div",{className:"sme-kv",children:[e.jsx("span",{className:"k",children:"steward"}),e.jsx("span",{children:s.stewardship.steward})]})]}),((m=s.ontology)==null?void 0:m.aligns_to)&&e.jsxs("section",{children:[e.jsx("h3",{children:"Standard it maps to"}),e.jsxs("div",{className:"sme-kv",children:[e.jsx("span",{className:"k",children:"aligned to"}),e.jsx("code",{children:s.ontology.aligns_to}),s.ontology.status==="proposed"&&e.jsx("span",{className:"sme-badge proposed",children:"awaiting architect"})]})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Where it's used"}),s.where_used.length===0?e.jsx("p",{className:"sme-muted",children:s.kind==="term"?"A glossary term — not yet realised by a data model.":"Not yet realised by any data model."}):e.jsx("ul",{className:"sme-usage",children:s.where_used.map(c=>e.jsxs("li",{children:[e.jsx("span",{className:"sme-usage-model",children:c.logical_entity}),c.unmanaged&&e.jsx("span",{className:"sme-badge",children:"engineer-owned"}),c.physical.length>0&&e.jsx("span",{className:"sme-usage-phys",children:c.physical.map(r=>r.name).join(", ")})]},c.logical_id))})]})]})}function Gs({term:s,pending:n,onStage:t,onDone:i,catalogOwned:l=[],catalog:m=null}){var $,I,g,O;const c=u=>l.includes(u),r=u=>n.find(M=>M.label===u),d=(u,M)=>{const z=r(u);return z?z.after:M},[v,j]=a.useState(d("Definition",s.definition??"")),[b,o]=a.useState(s.synonyms),[f,N]=a.useState(""),[_,B]=a.useState((($=s.stewardship)==null?void 0:$.owner)??""),[E,S]=a.useState(((I=s.stewardship)==null?void 0:I.steward)??""),C=()=>{v.trim()!==(s.definition??"").trim()&&t({op:"set_definition",payload:{id:s.id,definition:v.trim()},label:"Definition",before:s.definition??"(none)",after:v.trim()||"(none)"})},R=(u,M)=>{var z,W;t({op:"set_stewardship",payload:{id:s.id,owner:u||null,steward:M||null},label:"Stewardship",before:`owner: ${((z=s.stewardship)==null?void 0:z.owner)??"—"} · steward: ${((W=s.stewardship)==null?void 0:W.steward)??"—"}`,after:`owner: ${u||"—"} · steward: ${M||"—"}`})},A=u=>{o(u),t({op:"update_synonyms",payload:{id:s.id,synonyms:u},label:"Also called",before:s.synonyms.join(", ")||"(none)",after:u.join(", ")||"(none)"})},w=s.kind==="term";return e.jsxs("div",{className:"sme-editor",children:[e.jsxs("div",{className:"sme-card-head",children:[e.jsxs("h1",{children:["Suggest an edit — ",s.name]}),e.jsx("button",{className:"sme-secondary",onClick:i,children:"Back"})]}),e.jsxs("p",{className:"sme-hint",children:["You can refine what this term ",e.jsx("em",{children:"means"}),". Structure (keys, relationships, how it's built) stays with the data team."]}),(c("definition")||c("synonyms")||c("stewardship"))&&m&&e.jsxs("div",{className:"sme-catalog-banner",children:["Definitions, synonyms, and ownership are mastered in ",e.jsx("b",{children:m.name}),". Edit them there — this glossary mirrors them read-only.",m.url&&e.jsxs(e.Fragment,{children:[" ",e.jsxs("a",{href:m.url,target:"_blank",rel:"noreferrer",children:["Open in ",m.name," →"]})]}),e.jsx("div",{className:"sme-catalog-note",children:"You can still propose a standard mapping below."})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Definition"}),c("definition")?e.jsx("p",{className:"sme-readonly-value",children:s.definition??"—"}):e.jsx("textarea",{rows:4,value:v,onChange:u=>j(u.target.value),onBlur:C,placeholder:"A plain-language business definition…"})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Also called (synonyms)"}),c("synonyms")?e.jsx("div",{className:"sme-syn-row",children:s.synonyms.length?s.synonyms.map(u=>e.jsx("span",{className:"sme-chip",children:u},u)):e.jsx("span",{className:"sme-muted",children:"none"})}):e.jsxs("div",{className:"sme-syn-row",children:[b.map(u=>e.jsxs("span",{className:"sme-chip removable",onClick:()=>A(b.filter(M=>M!==u)),children:[u," ✕"]},u)),e.jsx("input",{value:f,placeholder:"add + Enter",onChange:u=>N(u.target.value),onKeyDown:u=>{u.key==="Enter"&&f.trim()&&(A([...b,f.trim()]),N(""))}})]})]}),!w&&(c("stewardship")?e.jsxs("div",{className:"sme-field-row",children:[e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Owner"}),e.jsx("p",{className:"sme-readonly-value",children:((g=s.stewardship)==null?void 0:g.owner)??"—"})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Steward"}),e.jsx("p",{className:"sme-readonly-value",children:((O=s.stewardship)==null?void 0:O.steward)??"—"})]})]}):e.jsxs("div",{className:"sme-field-row",children:[e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Owner"}),e.jsx("input",{value:_,onChange:u=>B(u.target.value),onBlur:()=>R(_,E)})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Steward"}),e.jsx("input",{value:E,onChange:u=>S(u.target.value),onBlur:()=>R(_,E)})]})]})),e.jsx(Vs,{term:s,onStage:t}),e.jsx("p",{className:"sme-note",children:n.length>0?`${n.length} change(s) staged — use “Submit for review” at the top when you're done.`:"Changes you make are collected until you submit them for review."})]})}const Ks=["skos:exactMatch","skos:closeMatch","skos:broadMatch","skos:narrowMatch"];function Vs({term:s,onStage:n}){var b;const[t,i]=a.useState(!1),[l,m]=a.useState(s.name),[c,r]=a.useState([]),[d,v]=a.useState("skos:closeMatch"),j=o=>{m(o),ts(o).then(f=>r(f.results)).catch(()=>r([]))};return t?e.jsxs("div",{className:"sme-field sme-align",children:[e.jsx("span",{children:"Propose a standard mapping (a suggestion; the architect confirms)"}),e.jsx("input",{value:l,onChange:o=>j(o.target.value),placeholder:"Search standards…",autoFocus:!0}),e.jsx("div",{className:"sme-align-results",children:c.map(o=>e.jsxs("button",{className:"sme-align-card",onClick:()=>{var f;n({op:"set_alignment",payload:{id:s.id,aligns_to:o.prefixed,alignment:d,status:"proposed"},label:"Standard mapping",before:((f=s.ontology)==null?void 0:f.aligns_to)??"(none)",after:`${o.prefixed} (${d}, proposed)`}),i(!1)},children:[e.jsx("strong",{children:o.label})," ",e.jsx("code",{children:o.prefixed}),o.definition&&e.jsx("span",{className:"sme-align-def",children:o.definition})]},o.iri))}),e.jsx("select",{value:d,onChange:o=>v(o.target.value),children:Ks.map(o=>e.jsx("option",{children:o},o))})]}):e.jsxs("div",{className:"sme-field",children:[e.jsx("span",{children:"Standard mapping"}),e.jsxs("div",{children:[(b=s.ontology)!=null&&b.aligns_to?e.jsx("code",{className:"sme-current-align",children:s.ontology.aligns_to}):e.jsx("span",{className:"sme-muted",children:"not mapped to a standard"}),e.jsx("button",{className:"sme-link",onClick:()=>i(!0),children:"Propose a mapping…"})]})]})}function Us(){const[s,n]=a.useState(null),[t,i]=a.useState(!0),[l,m]=a.useState(null),[c,r]=a.useState(""),[d,v]=a.useState(null),[j,b]=a.useState(""),[o,f]=a.useState(""),[N,_]=a.useState(null),[B,E]=a.useState(!1),[S,C]=a.useState([]),[R,A]=a.useState(!1),w=a.useMemo(()=>new URLSearchParams(window.location.search).get("import"),[]),$=!!w,I=w&&w!=="1"?w:null,[g,O]=a.useState("");a.useEffect(()=>{I&&as(I).then(p=>p.ok&&p.content&&O(p.content)).catch(()=>{})},[I]);const[u,M]=a.useState($?"model":window.location.hash==="#proposals"?"proposals":"browse"),[z,W]=a.useState(new Set),[H,G]=a.useState(null),[T,J]=a.useState(()=>localStorage.getItem("mdl.sme.user")??""),[x,h]=a.useState(null),[k,D]=a.useState(null),[q,Ee]=a.useState(!1),[Re,Me]=a.useState(null),De=a.useCallback((p,y)=>{var Y;const L=Z=>{var ce;const F=k==null?void 0:k.entities.find(oe=>{var de;return oe.id===Z||((de=oe.conceptual)==null?void 0:de.id)===Z});return((ce=F==null?void 0:F.conceptual)==null?void 0:ce.name)??(F==null?void 0:F.name)??"object"},P=L(y.id??y.entity_id);switch(p){case"create_entity":return{label:`New entity: ${y.name}`,before:"—",after:String(y.name??"")};case"create_relationship":return{label:`New relationship: ${L(y.from_entity)} → ${L(y.to_entity)}`,before:"—",after:String(y.cardinality??"many_to_one")};case"delete_entity":return{label:`Deleted ${P}`,before:P,after:"—"};case"delete_relationship":return{label:"Relationship removed",before:"",after:"—"};case"update_relationship":return{label:"Relationship changed",before:"",after:[y.cardinality,y.optionality,y.identifying?"identifying":""].filter(Boolean).join(", ")};case"set_definition":return{label:`Definition: ${P}`,before:"",after:String(y.definition??"")};case"add_attribute":return{label:`Attribute added to ${P}`,before:"—",after:String(y.name??"")};case"delete_attribute":return{label:`Attribute removed from ${P}`,before:"",after:"—"};case"update_attribute":return{label:`Attribute changed on ${P}`,before:"",after:JSON.stringify(y)};case"rename_entity":return{label:`Renamed ${P}`,before:P,after:String(y.name??"")};case"set_subject_area":return{label:`Subject area: ${P}`,before:"",after:String(y.subject_area??"none")};case"set_stewardship":return{label:`Stewardship: ${P}`,before:"",after:String(y.steward??"")};case"set_subject_area_members":{const Z=y.__label,F=((Y=y.members)==null?void 0:Y.length)??0;return{label:Z??"Subject area members",before:"",after:`${F} object${F===1?"":"s"}`}}case"set_alignment":return{label:`Alignment: ${P}`,before:"",after:String(y.aligns_to??"")};default:return{label:`${p.replace(/_/g," ")}: ${P}`,before:"",after:""}}},[k]),V=us({subjectArea:j,describe:De}),Pe=a.useCallback(async(p,y)=>{const L=(k==null?void 0:k.fingerprint)??"",P=await rs(p,y,L);return await ie(j||void 0).then(D),P},[k,j]),Ie=a.useMemo(()=>{const p={};for(const y of V.pending)y.op==="set_subject_area_members"&&(p[y.payload.id]=y.payload.members??[]);return p},[V.pending]),U=a.useMemo(()=>[...S,...V.pending],[S,V.pending]),[Oe,se]=a.useState(null),[Be,ne]=a.useState(null);a.useEffect(()=>{if(!U.length){se(null),ne(null);return}const p=new AbortController,y=U.map(L=>({op:L.op,payload:L.payload}));return xe(y,j||void 0,p.signal).then(L=>se(L.diff??null)).catch(L=>{L.name!=="AbortError"&&se(null)}),is(y).then(ne).catch(()=>ne(null)),()=>p.abort()},[U,j]);const Le=a.useMemo(()=>ps(U),[U]).size<U.length,K=a.useCallback(p=>{M(p),window.location.hash=p==="browse"?"":`#${p}`},[]),te=a.useRef(!0);a.useEffect(()=>{const p=()=>{const y=window.location.hash;if(te.current&&!y&&$){te.current=!1;return}te.current=!1,M(y==="#proposals"?"proposals":y==="#review"?"review":y==="#model"?"model":y==="#areas"?"areas":"browse")};return p(),window.addEventListener("hashchange",p),()=>window.removeEventListener("hashchange",p)},[]);const ae=a.useCallback(()=>{ls({subject_area:j,q:o}).then(n).catch(p=>v(String(p)))},[j,o]);a.useEffect(ae,[ae]),a.useEffect(()=>{ie(j||void 0).then(p=>{i(p.read_only),r(p.project.name),D(p),Ee(!!p.direct),h(p.identity??null),p.identity&&p.identity.source!=="anonymous"&&p.identity.name&&J(p.identity.name)}).catch(()=>{}),cs().then(m).catch(()=>{})},[j]);const re=a.useMemo(()=>(s==null?void 0:s.terms.find(p=>p.id===N))??null,[s,N]),ze=a.useCallback(p=>{const y=p.key??ye(p.op,p.payload);C(L=>[...L.filter(P=>P.key!==y),{...p,key:y}])},[]),He=p=>C(y=>y.filter((L,P)=>P!==p)),We=()=>{C([]),A(!1),E(!1),ae()};if(d)return e.jsxs("div",{className:"sme-splash error",children:[e.jsx("h1",{children:"◮ Glossary"}),e.jsx("pre",{children:d}),e.jsxs("p",{children:["Is ",e.jsx("code",{children:"mdl glossary"})," pointed at a model?"]})]});if(!s)return e.jsx("div",{className:"sme-splash",children:"◮ loading glossary…"});const X=!t,le=(l==null?void 0:l.catalog_owned_fields)??[],qe=le.length>0;return e.jsxs("div",{className:"sme",children:[e.jsxs("header",{className:"sme-top",children:[e.jsxs("div",{className:"sme-brand",children:[e.jsx("span",{className:"sme-logo",children:"◮"}),e.jsx("span",{children:"Glossary"}),e.jsx("span",{className:"sme-project",children:c}),t&&e.jsx("span",{className:"sme-chip",children:"read-only"}),qe&&e.jsxs("span",{className:"sme-chip catalog",title:`Definitions are mastered in ${l==null?void 0:l.catalog_name}`,children:["mirrors ",l==null?void 0:l.catalog_name]})]}),e.jsx("input",{className:"sme-search",type:"search",placeholder:"Search terms & definitions…",value:o,onChange:p=>f(p.target.value)}),e.jsxs("nav",{className:"sme-tabs",children:[e.jsx("button",{className:"sme-tab"+(u==="browse"?" active":""),onClick:()=>K("browse"),children:"Terms"}),e.jsx("button",{className:"sme-tab"+(u==="model"?" active":""),onClick:()=>K("model"),children:"Model"}),e.jsx("button",{className:"sme-tab"+(u==="areas"?" active":""),onClick:()=>K("areas"),children:"Subject areas"}),e.jsx("button",{className:"sme-tab"+(u==="proposals"?" active":""),onClick:()=>K("proposals"),children:"My proposals"})]}),U.length>0&&e.jsxs("button",{className:"sme-tray",onClick:()=>K("review"),children:[U.length," change",U.length>1?"s":""," · Review →"]})]}),u==="browse"&&e.jsx(js,{user:T}),u==="review"?e.jsx(Ls,{stagedDiff:H??Oe,stagedRoute:H?null:Be,user:T,selectable:Le,excluded:z,onToggleField:(p,y)=>W(L=>{const P=new Set(L),Y=Q(p,y);return P.has(Y)?P.delete(Y):P.add(Y),P}),onBack:()=>{G(null),W(new Set),K("browse")},onSubmit:p=>{Me(p),A(!0)},action:H?{id:"apply-import",label:"Apply import →",primary:!0,apply:async()=>{const p=H,y=new Set([...$e(p)].filter(Y=>!z.has(Y))),L=As(p,y),P=$s(H.changes,L);await os(P,!0),G(null),W(new Set),K("browse"),await ie(j||void 0).then(D)}}:void 0}):u==="model"?V.previewDoc??k?e.jsx(gs,{doc:V.previewDoc??k,subjectArea:j,onSubjectArea:b,exec:q?Pe:V.exec,canEdit:X,direct:q,onImported:()=>K("review"),onImportPreview:p=>{W(new Set),G(p),K("review")},openImport:$,prefillImport:g,query:o,busy:V.busy}):e.jsx("div",{className:"sme-splash",children:"◮ loading the model…"}):u==="areas"?e.jsx(fs,{exec:V.exec,canEdit:X,stagedMembers:Ie}):u==="proposals"?e.jsx(vs,{user:T,onView:()=>K("review")}):e.jsxs("div",{className:"sme-body",children:[e.jsxs("nav",{className:"sme-nav",children:[e.jsx("button",{className:"sme-sa"+(j===""?" active":""),onClick:()=>b(""),children:"All subject areas"}),s.subject_areas.map(p=>e.jsx("button",{className:"sme-sa"+(j===p.id?" active":""),onClick:()=>b(p.id),title:p.definition??void 0,children:p.name},p.id))]}),e.jsxs("ul",{className:"sme-list",children:[s.terms.map(p=>{var y;return e.jsxs("li",{className:"sme-list-item"+(p.id===N?" active":""),onClick:()=>{_(p.id),E(!1)},children:[e.jsx("span",{className:"sme-term-name",children:p.name}),p.kind==="term"&&e.jsx("span",{className:"sme-kind",children:"term"}),((y=p.ontology)==null?void 0:y.status)==="proposed"&&e.jsx("span",{className:"sme-badge proposed",title:"alignment awaiting architect",children:"proposed"}),e.jsx("span",{className:"sme-term-def",children:p.definition??"no definition yet"})]},p.id)}),s.terms.length===0&&e.jsx("li",{className:"sme-empty",children:"no terms match"})]}),e.jsx("section",{className:"sme-detail",children:re?B&&X?e.jsx(Gs,{term:re,pending:S,onStage:ze,onDone:()=>E(!1),catalogOwned:le,catalog:l?{name:l.catalog_name,url:l.catalog_url}:null}):e.jsx(qs,{term:re,canEdit:X,pendingCount:S.length,onEdit:()=>E(!0)}):e.jsx("div",{className:"sme-placeholder",children:"Select a term to see its definition."})})]}),R&&e.jsx(ws,{changes:U,routeAdvice:Re,identity:x,user:T,onUser:p=>{J(p),localStorage.setItem("mdl.sme.user",p)},onDrop:He,onClose:()=>A(!1),onProposed:()=>{We(),V.clear(),W(new Set),K("proposals")}})]})}Ge.createRoot(document.getElementById("root")).render(e.jsx(Ke.StrictMode,{children:e.jsx(Us,{})}));
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelDiagram-B8BNKKus.js","assets/client-DOmNpTln.js","assets/styles-DpTWo4Jc.js","assets/styles-BqI6o68D.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as a,j as e,c as Ge,R as Ke}from"./client-DOmNpTln.js";import{p as xe,c as be,d as ge,e as Ve,i as ve,I as Ue,R as Fe,M as Te,O as Ye,L as Je,j as Qe,k as Xe,A as Ze,l as es,m as ss,n as ns,o as ts,q as as,s as rs,f as ie,r as is,t as ls,u as cs,b as os}from"./styles-DpTWo4Jc.js";/* empty css */const ds="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function he(s,n){let t="";for(let i=0;i<n;i++)t=ds[Number(s&31n)]+t,s>>=5n;return t}function Ne(){const s=BigInt(Date.now())&(1n<<48n)-1n,n=new Uint8Array(10);crypto.getRandomValues(n);let t=0n;for(const i of n)t=t<<8n|BigInt(i);return he(s,10)+he(t,16)}const hs={create_entity:["id","conceptual_id"],create_relationship:["id","from_fk_id"],create_subject_area:["id"],create_term:["id"],create_domain:["id"],create_code_set:["id"],create_key_group:["id"],create_category:["id"],add_attribute:["id"]};function ms(s,n){const t=hs[s];if(!t)return n;const i={...n};for(const l of t)i[l]||(i[l]=Ne());return i}function ye(s,n){if(s.startsWith("create_")||s==="add_attribute")return`${s}:${n.id??n.attribute_id}`;const t=n.id??n.entity_id??"",i=n.attribute_id??"";return i?`${s}:${t}:${i}`:`${s}:${t}`}function us({subjectArea:s,describe:n}){const[t,i]=a.useState([]),[l,m]=a.useState(null),[c,r]=a.useState(!1),d=a.useRef(null),v=a.useCallback(async(o,f)=>{f=ms(o,f),o==="set_alignment"&&f.status===void 0&&(f={...f,status:"proposed"});const N=ye(o,f),{label:_,before:B,after:E}=n(o,f);return i(S=>{const C=S.filter(R=>R.key!==N);if(o.startsWith("delete_")){const R=f.id??f.entity_id;if(R&&S.some(w=>w.op.startsWith("create_")&&w.payload.id===R))return C.filter(w=>w.payload.id!==R)}return[...C,{op:o,payload:f,label:_,before:B,after:E,key:N}]}),{ok:!0,fingerprint:"",created_id:f.id??null,diagnostics:[]}},[n]);a.useEffect(()=>{if(!t.length){m(null);return}const o=setTimeout(()=>{var N;(N=d.current)==null||N.abort();const f=new AbortController;d.current=f,r(!0),xe(t.map(_=>({op:_.op,payload:_.payload})),s,f.signal).then(m).catch(_=>{_.name!=="AbortError"&&m(null)}).finally(()=>r(!1))},250);return()=>clearTimeout(o)},[t,s]);const j=a.useCallback(o=>{i(f=>f.filter(N=>N.key!==o))},[]),b=a.useCallback(()=>i([]),[]);return a.useMemo(()=>({pending:t,previewDoc:(l==null?void 0:l.model)??null,previewDiff:(l==null?void 0:l.diff)??null,diagnostics:(l==null?void 0:l.diagnostics)??[],failure:l&&l.failed_index!==null?{index:l.failed_index,error:l.error??"invalid change"}:null,busy:c,exec:v,drop:j,clear:b}),[t,l,c,v,j,b])}function ps(s){const n=new Map;for(const i of s)for(const l of["id","conceptual_id","from_fk_id"]){const m=i.payload[l];i.op.startsWith("create_")&&typeof m=="string"&&n.set(m,i.key)}if(!n.size)return new Set;const t=new Set;for(const i of s)if(!i.op.startsWith("create_"))for(const l of Object.values(i.payload))typeof l=="string"&&n.has(l)&&(t.add(i.key),t.add(n.get(l)));return t}function js({user:s}){const[n,t]=a.useState(null);return a.useEffect(()=>{be(s).then(t).catch(()=>{})},[s]),!(n!=null&&n.ok)||!n.git?null:n.read_only?e.jsxs("div",{className:"git-banner",children:[e.jsx("code",{children:n.branch}),e.jsx("span",{children:"browse only — editing is disabled on this deployment"})]}):n.dirty?e.jsxs("div",{className:"git-banner warn",children:[e.jsx("code",{children:n.branch}),e.jsx("span",{children:"uncommitted changes in the working tree — a proposal will be refused until they are committed or discarded"})]}):n.on_base?e.jsxs("div",{className:"git-banner",children:[e.jsx("code",{children:n.branch}),e.jsx("span",{children:"protected — your edits become a pull request"})]}):e.jsxs("div",{className:"git-banner",children:[e.jsx("code",{children:n.branch}),e.jsx("span",{children:"your proposal branch"}),n.behind?e.jsxs("span",{className:"dim",children:["· ",n.base_branch," is ",n.behind," ahead"]}):null]})}function fs({exec:s,canEdit:n,stagedMembers:t}){const[i,l]=a.useState([]),[m,c]=a.useState(""),[r,d]=a.useState(null),[v,j]=a.useState(""),[b,o]=a.useState(new Set),[f,N]=a.useState("ancestors"),[_,B]=a.useState(1),[E,S]=a.useState(null),[C,R]=a.useState(new Set),[A,w]=a.useState(null);a.useEffect(()=>{ge().then(h=>{l(h.subject_areas),c(k=>{var D;return k||((D=h.subject_areas[0])==null?void 0:D.id)||""})}).catch(h=>w(String(h)))},[]),a.useEffect(()=>{m&&(S(null),o(new Set),Ve(m).then(d).catch(h=>w(String(h))))},[m]);const $=a.useMemo(()=>t[m]??(r==null?void 0:r.members)??[],[t,m,r]),I=a.useMemo(()=>{const h=new Map;for(const k of[...(r==null?void 0:r.included)??[],...(r==null?void 0:r.available)??[]])h.set(k.id,k);return h},[r]),g=v.trim().toLowerCase(),O=h=>!g||h.name.toLowerCase().includes(g),u=a.useMemo(()=>new Set($),[$]),M=a.useMemo(()=>$.map(h=>I.get(h)).filter(h=>!!h&&O(h)),[$,I,g]),z=a.useMemo(()=>[...I.values()].filter(h=>!u.has(h.id)&&O(h)),[I,u,g]),W=a.useCallback(h=>{if(!r)return;const k=h.filter(q=>!(r.members??[]).includes(q)).length,D=(r.members??[]).filter(q=>!h.includes(q)).length;s("set_subject_area_members",{id:r.id,members:h,__label:`${r.name}: ${h.length} objects (+${k} −${D})`})},[r,s]),H=(h,k)=>{const D=k?[...$,...h.filter(q=>!u.has(q))]:$.filter(q=>!h.includes(q));W(D),o(new Set)},G=(h,k,D)=>{const q=new Set(h);q.has(k)?q.delete(k):q.add(k),D(q)},T=()=>{if(!r)return;const h=b.size?[...b]:$;if(!h.length){w("add an object first, or select one to expand from");return}w(null),ve(r.id,{seeds:h,direction:f,levels:_}).then(k=>{S(k.hops),R(new Set(k.added))}).catch(k=>w(String(k)))},J=()=>{H([...C],!0),S(null)};if(A&&!r)return e.jsx("p",{className:"sme-splash error",children:A});if(!i.length)return e.jsx("p",{className:"sme-placeholder",children:"No subject areas yet."});const x=((r==null?void 0:r.inconsistent)??[]).filter(h=>!u.has(h));return e.jsxs("div",{className:"sa-editor",children:[e.jsx("nav",{className:"sme-nav",children:i.map(h=>e.jsxs("button",{className:"sme-sa"+(h.id===m?" active":""),onClick:()=>c(h.id),title:h.definition??void 0,children:[h.name,e.jsx("span",{className:"sme-sa-count",children:(t[h.id]??h.members).length})]},h.id))}),e.jsxs("div",{className:"sa-main",children:[e.jsxs("div",{className:"sa-head",children:[e.jsx("h2",{children:(r==null?void 0:r.name)??"…"}),(r==null?void 0:r.definition)&&e.jsx("p",{className:"sme-muted",children:r.definition}),e.jsx("input",{className:"sme-search sa-filter",type:"search",placeholder:"Filter both lists…",value:v,onChange:h=>j(h.target.value)})]}),x.length>0&&n&&e.jsxs("div",{className:"sa-nudge",children:[x.length," object",x.length>1?"s are":" is"," homed in this area but not included.",e.jsxs("button",{className:"sme-link",onClick:()=>H(x,!0),children:["Add ",x.length>1?"them all":"it"]})]}),e.jsxs("div",{className:"sa-panes",children:[e.jsx(ee,{title:`Available (${z.length})`,rows:z,picked:b,onToggle:h=>G(b,h,o),homedHere:(r==null?void 0:r.homed_here)??[]}),e.jsxs("div",{className:"sa-controls",children:[e.jsx("button",{className:"sme-secondary",disabled:!n||!b.size,onClick:()=>H([...b].filter(h=>!u.has(h)),!0),title:"Add the selected objects",children:"→"}),e.jsx("button",{className:"sme-secondary",disabled:!n||!z.length,onClick:()=>H(z.map(h=>h.id),!0),title:"Add everything matching the filter",children:"»"}),e.jsx("button",{className:"sme-secondary",disabled:!n||!b.size,onClick:()=>H([...b].filter(h=>u.has(h)),!1),title:"Remove the selected objects",children:"←"}),e.jsx("button",{className:"sme-secondary",disabled:!n||!M.length,onClick:()=>H(M.map(h=>h.id),!1),title:"Remove everything matching the filter",children:"«"})]}),e.jsx(ee,{title:`Included (${M.length})`,rows:M,picked:b,onToggle:h=>G(b,h,o),homedHere:(r==null?void 0:r.homed_here)??[]})]}),e.jsxs("div",{className:"sa-expand",children:[e.jsx("h3",{children:"Add related objects"}),e.jsxs("div",{className:"sa-expand-row",children:[e.jsxs("select",{value:f,onChange:h=>N(h.target.value),children:[e.jsx("option",{value:"ancestors",children:"ancestors — the parents its keys point at"}),e.jsx("option",{value:"descendants",children:"descendants — what points at it"}),e.jsx("option",{value:"both",children:"both"})]}),e.jsxs("label",{children:["levels",e.jsx("input",{type:"number",min:1,max:10,value:_,onChange:h=>B(Math.max(1,Math.min(10,Number(h.target.value))))})]}),e.jsx("button",{className:"sme-secondary",onClick:T,disabled:!n,children:"Preview"})]}),A&&e.jsx("p",{className:"sme-error-line",children:A}),E&&e.jsxs("div",{className:"sa-hops",children:[E.length===0&&e.jsx("p",{className:"sme-muted",children:"nothing new to add"}),E.map(h=>e.jsxs("label",{className:"sa-hop",children:[e.jsx("input",{type:"checkbox",checked:C.has(h.id),onChange:()=>G(C,h.id,R)}),e.jsx("span",{className:"sa-hop-name",children:h.name}),e.jsxs("span",{className:"sa-hop-why",children:["via ",h.via_name," · ",h.direction.replace(/s$/,""),", level ",h.level]})]},h.id)),E.length>0&&e.jsxs("div",{className:"sa-hop-actions",children:[e.jsx("button",{className:"sme-secondary",onClick:()=>S(null),children:"Cancel"}),e.jsxs("button",{className:"sme-primary",onClick:J,disabled:!C.size,children:["Add ",C.size," object",C.size===1?"":"s"]})]})]})]})]})]})}function ee({title:s,rows:n,picked:t,onToggle:i,homedHere:l}){const m=a.useMemo(()=>new Set(l),[l]);return e.jsxs("div",{className:"sa-pane",children:[e.jsx("h3",{children:s}),e.jsxs("ul",{children:[n.map(c=>e.jsxs("li",{className:"sa-row"+(t.has(c.id)?" picked":""),onClick:()=>i(c.id),children:[e.jsx("input",{type:"checkbox",readOnly:!0,checked:t.has(c.id)}),e.jsx("span",{className:"sa-row-name",children:c.name}),m.has(c.id)?e.jsx("span",{className:"sme-badge",children:"home"}):e.jsx("span",{className:"sme-badge borrowed",children:"borrowed"})]},c.id)),!n.length&&e.jsx("li",{className:"sme-empty",children:"nothing here"})]})]})}function xs({objects:s,onCreate:n,onClose:t}){const[i,l]=a.useState(""),[m,c]=a.useState(""),[r]=a.useState(s),[d,v]=a.useState([]),[j,b]=a.useState(new Set),[o,f]=a.useState(""),[N,_]=a.useState("ancestors"),[B,E]=a.useState(1),[S,C]=a.useState(null),[R,A]=a.useState(new Set),[w,$]=a.useState(""),[I,g]=a.useState(null);a.useEffect(()=>{ge().then(x=>{x.subject_areas[0]&&$(x.subject_areas[0].id)}).catch(()=>{})},[]);const O=a.useMemo(()=>new Set(d),[d]),u=o.trim().toLowerCase(),M=x=>!u||x.name.toLowerCase().includes(u),z=a.useMemo(()=>d.map(x=>r.find(h=>h.id===x)).filter(x=>!!x&&M(x)),[d,r,u]),W=a.useMemo(()=>r.filter(x=>!O.has(x.id)&&M(x)),[r,O,u]),H=(x,h)=>{v(k=>h?[...k,...x.filter(D=>!k.includes(D))]:k.filter(D=>!x.includes(D))),b(new Set)},G=(x,h,k)=>{const D=new Set(x);D.has(h)?D.delete(h):D.add(h),k(D)},T=()=>{const x=j.size?[...j]:d;if(!x.length){g("pick an object to expand from first");return}w&&(g(null),ve(w,{seeds:x,direction:N,levels:B}).then(h=>{const k=h.hops.filter(D=>!O.has(D.id));C(k),A(new Set(k.map(D=>D.id)))}).catch(h=>g(String(h))))},J=()=>{i.trim()&&n(i.trim(),m.trim(),d)};return e.jsx("div",{className:"sme-modal-backdrop",onClick:t,children:e.jsxs("div",{className:"sme-modal sa-modal",onClick:x=>x.stopPropagation(),children:[e.jsx("h2",{children:"New subject area"}),e.jsx("p",{className:"sme-hint",children:"A subject area is a filtered view of the model. Name it and choose what it contains — both land as one proposal."}),e.jsxs("div",{className:"sme-field-row",children:[e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{autoFocus:!0,value:i,placeholder:"e.g. UseCase-ApraStressTesting",onChange:x=>l(x.target.value),onKeyDown:x=>x.key==="Enter"&&d.length===0&&J()})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Definition (optional)"}),e.jsx("input",{value:m,placeholder:"what this view is for",onChange:x=>c(x.target.value)})]})]}),e.jsx("input",{className:"sme-search sa-filter",type:"search",placeholder:"Filter both lists…",value:o,onChange:x=>f(x.target.value)}),e.jsxs("div",{className:"sa-panes",children:[e.jsx(ee,{title:`Available (${W.length})`,rows:W,picked:j,onToggle:x=>G(j,x,b),homedHere:[]}),e.jsxs("div",{className:"sa-controls",children:[e.jsx("button",{className:"sme-secondary",disabled:!j.size,onClick:()=>H([...j].filter(x=>!O.has(x)),!0),title:"Add the selected objects",children:"→"}),e.jsx("button",{className:"sme-secondary",disabled:!W.length,onClick:()=>H(W.map(x=>x.id),!0),title:"Add everything matching the filter",children:"»"}),e.jsx("button",{className:"sme-secondary",disabled:!j.size,onClick:()=>H([...j].filter(x=>O.has(x)),!1),title:"Remove the selected objects",children:"←"}),e.jsx("button",{className:"sme-secondary",disabled:!z.length,onClick:()=>H(z.map(x=>x.id),!1),title:"Remove everything matching the filter",children:"«"})]}),e.jsx(ee,{title:`Included (${z.length})`,rows:z,picked:j,onToggle:x=>G(j,x,b),homedHere:[]})]}),e.jsxs("div",{className:"sa-expand",children:[e.jsx("h3",{children:"Add related objects"}),e.jsxs("div",{className:"sa-expand-row",children:[e.jsxs("select",{value:N,onChange:x=>_(x.target.value),children:[e.jsx("option",{value:"ancestors",children:"ancestors — the parents its keys point at"}),e.jsx("option",{value:"descendants",children:"descendants — what points at it"}),e.jsx("option",{value:"both",children:"both"})]}),e.jsxs("label",{children:["levels",e.jsx("input",{type:"number",min:1,max:10,value:B,onChange:x=>E(Math.max(1,Math.min(10,Number(x.target.value))))})]}),e.jsx("button",{className:"sme-secondary",onClick:T,disabled:!w,title:w?"Preview related objects to add":"Available once the model has at least one saved subject area to walk the graph from",children:"Preview"})]}),S&&e.jsxs("div",{className:"sa-hops",children:[S.length===0&&e.jsx("p",{className:"sme-muted",children:"nothing new to add"}),S.map(x=>e.jsxs("label",{className:"sa-hop",children:[e.jsx("input",{type:"checkbox",checked:R.has(x.id),onChange:()=>G(R,x.id,A)}),e.jsx("span",{className:"sa-hop-name",children:x.name}),e.jsxs("span",{className:"sa-hop-why",children:["via ",x.via_name," · ",x.direction.replace(/s$/,""),", level ",x.level]})]},x.id)),S.length>0&&e.jsxs("div",{className:"sa-hop-actions",children:[e.jsx("button",{className:"sme-secondary",onClick:()=>C(null),children:"Cancel"}),e.jsxs("button",{className:"sme-primary",disabled:!R.size,onClick:()=>{H([...R],!0),C(null)},children:["Add ",R.size]})]})]})]}),I&&e.jsx("p",{className:"sme-error-line",children:I}),e.jsxs("div",{className:"sme-modal-foot",children:[e.jsx("button",{className:"sme-secondary",onClick:t,children:"Cancel"}),e.jsxs("button",{className:"sme-primary",disabled:!i.trim(),onClick:J,children:["Create",d.length>0&&` with ${d.length} object${d.length===1?"":"s"}`]})]})]})})}const bs=new Set(["set_definition","set_stewardship","set_subject_area","set_pattern","rename_entity","add_attribute","update_attribute","delete_attribute","set_alignment","clear_alignment","set_term_map","clear_term_map","update_synonyms","set_object_definition","set_subject_area_members","create_subject_area","update_subject_area","create_entity","delete_entity","create_relationship","rename_relationship","update_relationship","delete_relationship"]);function gs({doc:s,subjectArea:n,onSubjectArea:t,exec:i,canEdit:l,direct:m=!1,onSelectEntity:c,onImported:r,onImportPreview:d,openImport:v=!1,prefillImport:j="",query:b="",busy:o}){var I;const[f,N]=a.useState(null),[_,B]=a.useState(null),[E,S]=a.useState(!1),[C,R]=a.useState(null),A=a.useRef(null),w=a.useMemo(()=>({canEdit:l,mode:m?"direct":"staged",allow:m?void 0:bs,canArbitrate:m,canCommit:m}),[l,m]),$=a.useCallback(g=>{N(g),g&&(c==null||c(g))},[c]);return e.jsxs("div",{className:"sme-model-view",children:[e.jsxs("nav",{className:"sme-nav",children:[e.jsxs("div",{className:"sme-nav-head",children:[e.jsx("span",{children:"Subject areas"}),l&&e.jsx("button",{className:"sme-nav-add",title:"New subject area",onClick:()=>S(!0),children:"+"})]}),e.jsxs("button",{className:"sme-sa"+(n===""?" active":""),onClick:()=>t(""),children:["Whole model",e.jsx("span",{className:"sme-sa-count",children:((I=s.counts)==null?void 0:I.entities_total)??s.entities.length})]}),s.subject_areas.map(g=>e.jsxs("button",{className:"sme-sa"+(n===g.id?" active":""),onClick:()=>t(g.id),title:g.definition??void 0,children:[g.name,e.jsx("span",{className:"sme-sa-count",children:g.member_count??0})]},g.id))]}),E&&e.jsx(xs,{objects:s.entities.flatMap(g=>g.conceptual?[{id:g.conceptual.id,kind:"conceptual_entity",name:g.conceptual.name,definition:g.conceptual.definition??null,synonyms:[],subject_area:g.conceptual.subject_area??null,stewardship:null,ontology:null,where_used:[]}]:[]),onClose:()=>S(!1),onCreate:(g,O,u)=>{const M=Ne();i("create_subject_area",{name:g,...O?{definition:O}:{},id:M}),u.length&&i("set_subject_area_members",{id:M,members:u}),S(!1),t(M)}}),e.jsxs("div",{className:"erd-wrap",children:[e.jsxs("div",{className:"erd-bar",children:[e.jsxs("span",{className:"erd-count",children:[s.entities.length," entities · ",s.relationships.length," relationships",s.scope&&" · scoped"]}),l&&e.jsx("button",{className:"erd-action",onClick:()=>{var g;return(g=A.current)==null?void 0:g.newEntity()},title:"Add an entity (n)",children:"+ Entity"}),e.jsx("span",{className:"erd-hint",children:"drag between entities to relate them"}),e.jsxs("span",{className:"erd-group",children:[e.jsxs("button",{className:"erd-action ghost",onClick:()=>{var g;return(g=A.current)==null?void 0:g.relayout()},title:"Auto-arrange the diagram",children:[e.jsx("span",{className:"erd-ico","aria-hidden":"true",children:"⟲"}),"Re-layout"]}),e.jsxs("button",{className:"erd-action ghost",onClick:()=>{var g;return(g=A.current)==null?void 0:g.fitView()},title:"Fit the whole model in view",children:[e.jsx("span",{className:"erd-ico","aria-hidden":"true",children:"⛶"}),"Fit"]})]}),e.jsx("span",{className:"erd-sep","aria-hidden":"true"}),e.jsxs("span",{className:"erd-group",children:[e.jsx("button",{className:"erd-action ghost"+(_==="ontology"?" on":""),onClick:()=>B(g=>g==="ontology"?null:"ontology"),children:"Ontology"}),e.jsx("button",{className:"erd-action ghost"+(_==="layers"?" on":""),onClick:()=>B(g=>g==="layers"?null:"layers"),children:"Layers"})]}),e.jsx("span",{className:"erd-sep","aria-hidden":"true"}),e.jsx(Ue,{exec:i,canEdit:l,onImported:r,onPreview:d,openImport:v,prefillImport:j}),o&&e.jsx("span",{className:"erd-busy",children:"updating…"}),!l&&e.jsx("span",{className:"sme-chip",children:"read-only"}),C&&e.jsx("span",{className:"erd-error",children:C})]}),e.jsxs("div",{className:"erd-canvas canvas-wrap",children:[e.jsx(Fe,{children:e.jsx(Te,{doc:s,caps:w,exec:i,selectedId:f,onSelect:$,query:b,onError:R,handleRef:A})}),_&&e.jsxs("aside",{className:"side-panel",children:[e.jsxs("div",{className:"detail-header",children:[e.jsx("h2",{children:_==="ontology"?"Ontology":"Ontology layers"}),e.jsx("button",{className:"icon-btn",onClick:()=>B(null),children:"✕"})]}),_==="ontology"?e.jsx(Ye,{}):e.jsx(Je,{refreshKey:0,onFocusEntity:g=>{var O;B(null),(O=A.current)==null||O.focusEntity(g)}})]})]})]})]})}function vs({user:s,onView:n}){const[t,i]=a.useState(null),[l,m]=a.useState(null);if(a.useEffect(()=>{Qe(s).then(i).catch(r=>m(String(r)))},[s]),l)return e.jsx("p",{className:"sme-splash error",children:l});if(!t)return e.jsx("div",{className:"sme-splash",children:"◮ looking for your proposals…"});if(!t.git)return e.jsx("p",{className:"sme-placeholder",children:"This model isn't in a git repository."});const c=t.proposals.filter(r=>!r.merged).length;return e.jsxs("div",{className:"pr-wrap",children:[e.jsxs("div",{className:"pr-head",children:[e.jsx("h2",{children:"My proposals"}),e.jsxs("span",{className:"meta",children:[c," open · base: ",t.base]})]}),!t.proposals.length&&e.jsx("p",{className:"sme-placeholder",children:"Nothing proposed yet. Edits you submit for review will appear here."}),t.proposals.map(r=>e.jsx(ys,{p:r,gh:t.gh,onView:()=>n(r.branch)},r.branch)),!t.gh&&t.proposals.length>0&&e.jsxs("div",{className:"pr-degrade",children:["Review status isn't available here (",e.jsx("code",{children:"gh"})," is not installed or not signed in). Branch, contents, merge state and conflicts all still come from git — each card links out to the compare view."]})]})}function Ns(s,n){var t,i;return s.merged?{kind:"accepted",text:"✅ Accepted"}:s.pushed?n&&((t=s.pr)==null?void 0:t.state)==="CLOSED"?{kind:"declined",text:"✖ Declined"}:n&&((i=s.pr)==null?void 0:i.reviews)==="CHANGES_REQUESTED"?{kind:"changes",text:"💬 Changes requested"}:{kind:"awaiting",text:"⏳ Awaiting review"}:{kind:"local",text:"📥 Saved locally"}}function ys({p:s,gh:n,onView:t}){const i=Ns(s,n);return e.jsxs("div",{className:"pr-card"+(i.kind==="attention"?" attention":""),children:[e.jsxs("div",{className:"pr-top",children:[e.jsx("span",{className:"pr-title",children:s.title}),e.jsx("span",{className:"pr-chip "+i.kind,children:i.text})]}),e.jsxs("div",{className:"pr-branch",children:[s.branch," · ",s.created,s.behind>0&&` · ${s.behind} behind`]}),e.jsxs("div",{className:"pr-foot",children:[e.jsx("span",{className:"pr-link",children:s.merged?e.jsxs(e.Fragment,{children:["merged",n&&s.pr?` · PR #${s.pr.number}`:""]}):s.pushed?n&&s.pr?e.jsxs("a",{href:s.pr.url,target:"_blank",rel:"noreferrer",children:["PR #",s.pr.number]}):s.compare_url?e.jsx("a",{href:s.compare_url,target:"_blank",rel:"noreferrer",children:"open the compare view →"}):"pushed":"not sent yet — no connection to the shared repo"}),e.jsx("span",{className:"pr-btns",children:e.jsx("button",{className:"sme-secondary",onClick:t,children:"View"})})]})]})}function ws({changes:s,routeAdvice:n,identity:t,user:i,onUser:l,onDrop:m,onClose:c,onProposed:r}){const d=!!(t&&t.source!=="anonymous"),[v,j]=a.useState(i||(localStorage.getItem("mdl.sme.user")??"")),[b,o]=a.useState(s.length===1?`Update ${s[0].label.toLowerCase()}`:"Glossary updates"),[f,N]=a.useState(""),[_,B]=a.useState(!1),E=we(_?f:b),[S,C]=a.useState(""),[R,A]=a.useState(!1),[w,$]=a.useState(null),[I,g]=a.useState(null),O=()=>{!d&&!v.trim()||(d||(localStorage.setItem("mdl.sme.user",v.trim()),l==null||l(v.trim())),A(!0),g(null),Xe({user:d?"":v.trim(),slug:E,title:b,body:S.trim(),changes:s.map(u=>({op:u.op,payload:u.payload}))}).then($).catch(u=>g(u instanceof Ze?u.message:String(u))).finally(()=>A(!1)))};return w!=null&&w.ok?e.jsx("div",{className:"sme-modal-backdrop",onClick:()=>r(w),children:e.jsxs("div",{className:"sme-modal",onClick:u=>u.stopPropagation(),children:[e.jsx("h2",{children:"✓ Sent for review"}),e.jsx("p",{children:w.message}),w.pr_url&&e.jsx("p",{children:e.jsx("a",{href:w.pr_url,target:"_blank",rel:"noreferrer",children:"View pull request →"})}),w.compare_url&&e.jsx("p",{children:e.jsx("a",{href:w.compare_url,target:"_blank",rel:"noreferrer",children:"Open the pull request →"})}),e.jsxs("p",{className:"sme-muted",children:["Your suggestion is on branch ",e.jsx("code",{children:w.branch}),". A steward will review it."]}),e.jsx("div",{className:"sme-modal-foot",children:e.jsx("button",{className:"sme-primary",onClick:()=>r(w),children:"Done"})})]})}):e.jsx("div",{className:"sme-modal-backdrop",onClick:c,children:e.jsxs("div",{className:"sme-modal",onClick:u=>u.stopPropagation(),children:[e.jsxs("div",{className:"sme-card-head",children:[e.jsx("h2",{children:"Submit for review"}),e.jsx("button",{className:"sme-secondary",onClick:c,children:"✕"})]}),e.jsx("h3",{children:"Your changes"}),e.jsx("ul",{className:"sme-diff",children:s.map((u,M)=>e.jsxs("li",{children:[e.jsxs("div",{className:"sme-diff-head",children:[e.jsx("b",{children:u.label}),e.jsx("button",{className:"sme-link danger",onClick:()=>m(M),children:"discard"})]}),e.jsx("div",{className:"sme-diff-before",children:u.before}),e.jsx("div",{className:"sme-diff-after",children:u.after})]},M))}),d?e.jsxs("p",{className:"sme-signed-in",children:["Signed in as ",e.jsx("strong",{children:t.name}),t.email?` (${t.email})`:""," — this proposal is attributed to you."]}):e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Your name (for attribution)"}),e.jsx("input",{value:v,onChange:u=>j(u.target.value),placeholder:"e.g. a.hough"})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Title"}),e.jsx("input",{value:b,onChange:u=>o(u.target.value)})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Branch name (edit to add a ticket id, e.g. PROJ-123)"}),e.jsx("input",{value:_?f:E,onChange:u=>{B(!0),N(u.target.value)},placeholder:"clarify-counterparty"})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Note for the reviewer (optional)"}),e.jsx("textarea",{rows:2,value:S,onChange:u=>C(u.target.value)})]}),e.jsx(ks,{cl:n,user:d?t.name:v,changeSlug:E}),I&&e.jsx("p",{className:"sme-error-line",children:I}),e.jsxs("div",{className:"sme-modal-foot",children:[e.jsx("button",{className:"sme-secondary",onClick:c,children:"Keep editing"}),e.jsx("button",{className:"sme-primary",disabled:R||!d&&!v.trim()||s.length===0,onClick:O,children:R?"Submitting…":"Submit for review"})]})]})})}function ks({cl:s,user:n,changeSlug:t}){if(!(s!=null&&s.primary))return null;const i=s.reviewers_actual??s.reviewers,l=we(n||"you"),m=s.routes.length>1;return e.jsxs(e.Fragment,{children:[m&&e.jsxs("div",{className:"sub-advice",children:[e.jsx("span",{className:"i",children:"ⓘ"})," These changes span routes"," ",e.jsx("strong",{children:s.routes.join(" and ")}),". The whole proposal will be reviewed as route ",s.primary," (",s.primary_name,") — the strictest gate wins, so it needs"," ",i.join(", ")," plus ",e.jsx("code",{children:s.gates[s.gates.length-1]}),". Proposing the meaning-only changes separately would get them reviewed faster."]}),e.jsxs("div",{className:"sub-dest",children:[e.jsxs("div",{className:"row",children:[e.jsx("span",{className:"k",children:"Goes to"}),e.jsxs("code",{children:["sme/",l,"/",t||"…"]})]}),e.jsxs("div",{className:"row",children:[e.jsx("span",{className:"k",children:"Reviewers"}),e.jsx("span",{children:i.join(", ")})]})]})]})}function we(s){return s.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"change"}const ke=[{id:"all",label:"All"},{id:"additions",label:"Additions"},{id:"modifications",label:"Modifications"},{id:"moves",label:"Renames"},{id:"deletions",label:"Deletions"},{id:"conflicts",label:"Conflicts"}];function _e(s,n){switch(n){case"all":return!0;case"additions":return s.change==="added";case"deletions":return s.change==="removed";case"moves":return s.renamed;case"modifications":return s.change==="modified"&&!s.renamed;case"conflicts":return s.severity==="breaking"}}function _s(s,n){return n==="all"?s.objects:s.objects.filter(t=>_e(t,n))}function Ss(s){const n={};for(const{id:t}of ke)n[t]=t==="all"?s.objects.length:s.objects.filter(i=>_e(i,t)).length;return n}function Q(s,n){return`${s}\0${n}`}function Se(s){const n=s.fields.map(t=>Q(s.ulid,t.field));for(const t of s.children)for(const i of t.fields)n.push(Q(s.ulid,`${t.ulid}.${i.field}`));return n.length?n:[Q(s.ulid,"*")]}function Ce(s,n){const t=Se(s),i=t.filter(l=>n.has(l)).length;return i===0?"none":i===t.length?"all":"some"}function Ae(s,n){return Ce(s,n)!=="none"}function Cs(s,n){return s.objects.filter(t=>Ae(t,n)).map(t=>t.ulid)}function As(s,n){const t=new Set;for(const i of s.objects){if(i.object_kind!=="logical_entity"||i.change!=="added"||!Ae(i,n))continue;const l=i.name_after??i.name_before;l&&t.add(l)}return t}function $s(s,n){if(n.size===0)return[];const t=new Set,i=[],l=m=>[m.entity_id,m.from_entity,m.to_entity,m.from,m.to].filter(c=>typeof c=="string");for(const m of s){const c=m.payload;switch(m.op){case"create_entity":{const r=typeof c.name=="string"?c.name:"",d=typeof c.id=="string"?c.id:"";n.has(r)&&(t.add(d),i.push(m));break}case"add_attribute":{const r=typeof c.entity_id=="string"?c.entity_id:"";t.has(r)&&i.push(m);break}case"create_relationship":case"create_key_group":{const r=l(c);r.length>0&&r.every(d=>t.has(d))&&i.push(m);break}default:i.push(m)}}return i}function $e(s){const n=new Set;for(const t of s.objects)for(const i of Se(t))n.add(i);return n}const Es="modulepreload",Rs=function(s){return"/"+s},me={},Ms=function(n,t,i){let l=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const c=document.querySelector("meta[property=csp-nonce]"),r=(c==null?void 0:c.nonce)||(c==null?void 0:c.getAttribute("nonce"));l=Promise.allSettled(t.map(d=>{if(d=Rs(d),d in me)return;me[d]=!0;const v=d.endsWith(".css"),j=v?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${j}`))return;const b=document.createElement("link");if(b.rel=v?"stylesheet":Es,v||(b.as="script"),b.crossOrigin="",b.href=d,r&&b.setAttribute("nonce",r),document.head.appendChild(b),v)return new Promise((o,f)=>{b.addEventListener("load",o),b.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${d}`)))})}))}function m(c){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=c,window.dispatchEvent(r),!r.defaultPrevented)throw c}return l.then(c=>{for(const r of c||[])r.status==="rejected"&&m(r.reason);return n().catch(m)})};function Ds({diff:s,selectable:n,selected:t,onToggle:i,onToggleField:l}){var f;const[m,c]=a.useState("all"),r=a.useMemo(()=>_s(s,m),[s,m]),d=a.useMemo(()=>Ss(s),[s]),[v,j]=a.useState(((f=s.objects[0])==null?void 0:f.ulid)??null),b=a.useMemo(()=>r.find(N=>N.ulid===v)??r[0]??s.objects[0]??null,[r,s,v]),o=!!l;return s.objects.length?e.jsxs("div",{className:"rv-wrap",children:[n!==void 0&&e.jsx("div",{className:"rv-filters",role:"tablist","aria-label":"Filter changes",children:ke.filter(N=>N.id==="all"||d[N.id]>0).map(N=>e.jsxs("button",{role:"tab","aria-selected":m===N.id,className:"rv-filter"+(m===N.id?" active":""),onClick:()=>c(N.id),children:[N.label,e.jsx("span",{className:"rv-filter-count",children:d[N.id]})]},N.id))}),e.jsxs("div",{className:"rv-body",children:[e.jsx("div",{className:"rv-list",children:r.length===0?e.jsx("p",{className:"sme-placeholder",children:"No changes match this filter."}):r.map(N=>e.jsx(Is,{obj:N,active:N.ulid===((b==null?void 0:b.ulid)??""),selectable:n,perField:o,objState:o?Ce(N,t??new Set):void 0,checkedObject:(t==null?void 0:t.has(N.ulid))??!0,onSelect:()=>j(N.ulid),onToggleObject:()=>i==null?void 0:i(N.ulid),onToggleField:l},N.ulid))}),e.jsx("div",{className:"rv-detail",children:b&&e.jsx(Os,{obj:b,selectable:n,perField:o,selected:t,onToggleField:l})})]})]}):e.jsxs("p",{className:"sme-placeholder",children:["No model changes against ",s.base.label,"."]})}function Ps(s){return s.renamed?"renamed":s.severity==="breaking"?"breaking":s.change}function Is({obj:s,active:n,selectable:t,perField:i,objState:l,checkedObject:m,onSelect:c,onToggleObject:r,onToggleField:d}){const v=o=>{o&&i&&(o.indeterminate=l==="some")},j=i?l!=="none":m,b=()=>{if(!i)return r();for(const o of s.fields)d==null||d(s.ulid,o.field);for(const o of s.children)for(const f of o.fields)d==null||d(s.ulid,`${o.ulid}.${f.field}`);!s.fields.length&&!s.children.length&&(d==null||d(s.ulid,"*"))};return e.jsxs("div",{className:"rv-obj"+(n?" active":""),onClick:c,children:[e.jsxs("div",{className:"rv-obj-head",children:[t&&e.jsx("input",{type:"checkbox",ref:v,checked:j,onClick:o=>o.stopPropagation(),onChange:b,"aria-label":`include ${s.name_before??s.name_after}`}),e.jsx("span",{className:"rv-obj-name",children:s.name_before??s.name_after}),e.jsx("span",{className:"rv-obj-kind",children:s.object_kind_label}),e.jsxs("span",{className:"sev "+(s.renamed?"renamed":s.severity),children:[s.severity==="breaking"&&"⚠ ",Ps(s)]})]}),e.jsxs("ul",{className:"rv-obj-fields",children:[s.fields.map((o,f)=>e.jsx("li",{children:o.label},o.field+f)),s.children.flatMap(o=>o.fields.map((f,N)=>e.jsxs("li",{children:[f.label,": ",o.name_before??o.name_after]},o.ulid+N)))]})]})}function Os({obj:s,selectable:n,perField:t,selected:i,onToggleField:l}){const m=s.children.flatMap(r=>r.fields.map(d=>({field:d,on:r.name_before??r.name_after??"",key:`${r.ulid}.${d.field}`}))),c=(r,d)=>{if(!n||!t)return d;const v=Q(s.ulid,r);return e.jsxs("div",{className:"rv-field-pick",children:[e.jsx("input",{type:"checkbox",checked:(i==null?void 0:i.has(v))??!0,onChange:()=>l==null?void 0:l(s.ulid,r),"aria-label":`include change: ${r}`}),e.jsx("div",{className:"rv-field-body",children:d})]})};return e.jsxs(e.Fragment,{children:[e.jsx("h2",{children:s.renamed?`${s.name_before} → ${s.name_after}`:s.name_before??s.name_after}),e.jsxs("div",{className:"rv-detail-kind",children:[s.object_kind_label,s.renamed&&" · renamed",s.path&&e.jsxs("span",{className:"rv-src",children:[" · ",s.path]})]}),s.fields.map((r,d)=>e.jsx("div",{children:c(r.field,e.jsx(ue,{f:r}))},r.field+d)),m.map(({field:r,on:d,key:v},j)=>e.jsx("div",{children:c(v,e.jsx(ue,{f:r,on:d}))},"c"+j)),s.severity==="breaking"&&e.jsxs("div",{className:"rv-note",children:[e.jsx("span",{className:"i",children:"ⓘ"}),e.jsxs("span",{children:["This is a structural change (route B). It will need an architect's review, and CI will run ",e.jsx("code",{children:"mdl drift --check"}),"."]})]})]})}function ue({f:s,on:n}){var i,l,m;const t=n?`${s.label}: ${n}`:s.label;if((i=s.breaks)!=null&&i.length)return e.jsxs("div",{className:"rv-section",children:[e.jsx("h3",{children:t}),e.jsxs("div",{className:"rv-break",children:[e.jsxs("div",{className:"rv-break-head",children:[e.jsx("span",{children:"⚠"}),e.jsxs("span",{children:[n??String(s.before??"")," removed"]}),s.detail&&e.jsx("span",{className:"rv-break-meta",children:s.detail})]}),e.jsxs("div",{className:"rv-break-body",children:["This is realised by ",s.breaks.length," dbt model",s.breaks.length>1?"s":"",". Removing it will break ",s.breaks.length>1?"them":"it","."]}),e.jsx("ul",{className:"rv-usage",children:s.breaks.map(c=>e.jsxs("li",{children:[e.jsxs("span",{className:"m",children:["→ ",c.name]}),e.jsxs("span",{className:"p",children:[c.target," · ",c.materialization]})]},c.name))})]})]});if(s.kind==="definition_changed"){const c=String(s.before??""),r=String(s.after??"");return e.jsxs("div",{className:"rv-section",children:[e.jsx("h3",{children:t}),e.jsxs("div",{className:"rv-ba",children:[e.jsxs("div",{className:"rv-ba-col",children:[e.jsx("div",{className:"rv-ba-label",children:"before"}),e.jsx("div",{className:"rv-ba-text",children:je(c,r,"del")})]}),e.jsxs("div",{className:"rv-ba-col",children:[e.jsx("div",{className:"rv-ba-label",children:"after"}),e.jsx("div",{className:"rv-ba-text",children:je(r,c,"ins")})]})]})]})}if(Array.isArray(s.before)||Array.isArray(s.after)){const c=new Set(((l=s.before)==null?void 0:l.map(String))??[]),r=new Set(((m=s.after)==null?void 0:m.map(String))??[]),d=[...r].filter(j=>!c.has(j)),v=[...c].filter(j=>!r.has(j));return e.jsxs("div",{className:"rv-section",children:[e.jsx("h3",{children:t}),e.jsxs("div",{className:"rv-chips",children:[d.map(j=>e.jsxs("span",{className:"rv-chip-add",children:["+ ",j]},"a"+j)),v.map(j=>e.jsxs("span",{className:"rv-chip-del",children:["− ",j]},"r"+j))]})]})}return e.jsxs("div",{className:"rv-section",children:[e.jsx("h3",{children:t}),e.jsxs("div",{className:"rv-scalar",children:[e.jsx("span",{className:"from",children:pe(s.before)}),e.jsx("span",{className:"arrow",children:"→"}),e.jsx("span",{className:"to",children:pe(s.after)})]})]})}function pe(s){return s==null||s===""?"—":typeof s=="boolean"?s?"yes":"no":typeof s=="object"?JSON.stringify(s):String(s)}function je(s,n,t){const i=s.split(/(\s+)/),l=n.split(/(\s+)/),m=o=>o.toLowerCase().replace(/[.,;:]/g,""),c=i.length,r=l.length,d=Array.from({length:c+1},()=>new Array(r+1).fill(0));for(let o=c-1;o>=0;o--)for(let f=r-1;f>=0;f--)d[o][f]=m(i[o])===m(l[f])?d[o+1][f+1]+1:Math.max(d[o+1][f],d[o][f+1]);const v=new Set;let j=0,b=0;for(;j<c&&b<r;)m(i[j])===m(l[b])?(v.add(j),j++,b++):d[j+1][b]>=d[j][b+1]?j++:b++;return i.map((o,f)=>!o.trim()||v.has(f)?e.jsx("span",{children:o},f):t==="del"?e.jsx("del",{children:o},f):e.jsx("ins",{children:o},f))}const Bs=a.lazy(()=>Ms(()=>import("./ModelDiagram-B8BNKKus.js"),__vite__mapDeps([0,1,2,3])).then(s=>({default:s.ModelDiagram})));function Ls({stagedDiff:s,stagedRoute:n,user:t,onBack:i,onSubmit:l,excluded:m,onToggleField:c,selectable:r,action:d}){const[v,j]=a.useState(null),[b,o]=a.useState(null),[f,N]=a.useState(null),[_,B]=a.useState(null),[E,S]=a.useState(null),[C,R]=a.useState("changes"),A=a.useCallback(()=>{be(t).then($=>{B($);const I=$.base_branch??"main";s?j(s):es("HEAD").then(g=>g.ok?j(g):S(g.error??"could not read the model")).catch(g=>S(String(g))),n?o(n):ss("HEAD").then(o).catch(()=>{}),ns(I).then(N).catch(()=>{})}).catch($=>S(String($)))},[t,s,n]);if(a.useEffect(A,[A]),E)return e.jsxs("div",{className:"rv-shell",children:[e.jsx(fe,{onBack:i,diff:null}),e.jsx("p",{className:"sme-splash error",children:e.jsx("pre",{children:E})})]});if(!v)return e.jsx("div",{className:"sme-splash",children:"◮ reading your changes…"});const w=new Set([...$e(v)].filter($=>!m.has($)));return e.jsxs("div",{className:"rv-shell",children:[e.jsx(fe,{onBack:i,diff:v,tab:C,onTab:R}),C==="changes"?e.jsx(Ds,{diff:v,selectable:r,selected:w,onToggleField:c}):e.jsx(a.Suspense,{fallback:e.jsx("div",{className:"sme-splash",children:"◮ drawing the model…"}),children:e.jsx(Bs,{severityByUlid:zs(v)})}),e.jsxs("div",{className:"rv-foot",children:[e.jsx(Hs,{cl:b}),e.jsx(Ws,{conf:f,ctx:_}),e.jsxs("div",{className:"rv-actions",children:[e.jsx("button",{className:"sme-secondary",onClick:i,children:d?"Cancel":"Keep editing"}),d?e.jsx("button",{className:"sme-primary",disabled:!v.objects.length||!!d.disabledReason,title:d.disabledReason??"",onClick:()=>d.apply(Cs(v,w)),children:d.label}):e.jsx("button",{className:"sme-primary",disabled:!v.objects.length||(_?!_.can_propose:!1),title:_&&!_.can_propose?"the working tree has uncommitted changes":"",onClick:()=>l(b),children:"Submit for review →"})]})]})]})}function zs(s){const n=new Map;for(const t of s.objects)n.set(t.ulid,t.severity);return n}function fe({onBack:s,diff:n,tab:t,onTab:i}){const l=n==null?void 0:n.counts;return e.jsxs("div",{className:"rv-head",children:[e.jsxs("div",{children:[e.jsx("button",{className:"rv-back",onClick:s,children:"‹ Back to terms"}),e.jsx("h1",{className:"rv-title",children:"Review your changes"}),l&&e.jsxs("div",{className:"rv-sub",children:[l.objects," object",l.objects===1?"":"s"," ·"," ",(l.breaking??0)+(l.additive??0)+(l.cosmetic??0)," changes",(n==null?void 0:n.has_breaking)&&e.jsxs("span",{className:"warn",children:[" · ⚠ ",l.breaking," breaking"]})," · comparing to ",e.jsx("code",{children:n==null?void 0:n.base.label})]})]}),i&&e.jsxs("div",{className:"rv-tabs",children:[e.jsxs("button",{className:"rv-tab"+(t==="changes"?" active":""),onClick:()=>i("changes"),children:["Changes ",(n==null?void 0:n.objects.length)??0]}),e.jsx("button",{className:"rv-tab"+(t==="diagram"?" active":""),onClick:()=>i("diagram"),children:"Diagram"})]})]})}function Hs({cl:s}){if(!(s!=null&&s.primary))return null;const n=s.reviewers_actual??s.reviewers;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rv-route",children:[e.jsxs("span",{className:"rv-route-badge",children:["Route ",s.primary," · ",s.primary_name]}),e.jsx("span",{className:"k",children:"Reviewers"}),e.jsx("span",{children:n.join(", ")}),s.reviewers_actual&&e.jsx("span",{className:"rv-src",children:"from .github/CODEOWNERS"})]}),e.jsxs("div",{className:"rv-gates",children:["CI gates"," ",s.gates.map(t=>e.jsx("code",{children:t},t))]})]})}function Ws({conf:s,ctx:n}){return s!=null&&s.ok?s.clean?e.jsxs("div",{className:"rv-conflict ok",children:[e.jsx("span",{children:"✓"}),e.jsxs("span",{children:["Merges cleanly onto ",s.base]}),s.behind>0&&e.jsxs("span",{className:"detail",children:["· ",s.base," is ",s.behind," commit",s.behind===1?"":"s"," ahead"]}),(n==null?void 0:n.dirty)&&e.jsx("span",{className:"detail",children:"· uncommitted changes in the working tree"})]}):e.jsxs("div",{className:"rv-conflict bad",children:[e.jsx("span",{children:"⚠"}),e.jsxs("span",{children:[s.base," has changed and ",s.files.length," file",s.files.length===1?"":"s"," now conflict"]}),e.jsx("span",{className:"detail",children:s.files.map(t=>t.path).join(", ")})]}):null}function qs({term:s,canEdit:n,pendingCount:t,onEdit:i}){var l,m;return e.jsxs("div",{className:"sme-card",children:[e.jsxs("div",{className:"sme-card-head",children:[e.jsxs("div",{children:[e.jsx("h1",{children:s.name}),((l=s.subject_area)==null?void 0:l.name)&&e.jsx("span",{className:"sme-chip",children:s.subject_area.name}),s.kind==="term"&&e.jsx("span",{className:"sme-chip",children:"glossary term"})]}),n&&e.jsx("button",{className:"sme-primary",onClick:i,children:t>0?"Continue editing":"Suggest an edit"})]}),e.jsx("p",{className:"sme-definition",children:s.definition??e.jsx("em",{children:"No definition yet."})}),s.synonyms.length>0&&e.jsxs("section",{children:[e.jsx("h3",{children:"Also called"}),e.jsx("div",{children:s.synonyms.map(c=>e.jsx("span",{className:"sme-chip",children:c},c))})]}),s.stewardship&&(s.stewardship.owner||s.stewardship.steward)&&e.jsxs("section",{children:[e.jsx("h3",{children:"Who owns this"}),s.stewardship.owner&&e.jsxs("div",{className:"sme-kv",children:[e.jsx("span",{className:"k",children:"owner"}),e.jsx("span",{children:s.stewardship.owner})]}),s.stewardship.steward&&e.jsxs("div",{className:"sme-kv",children:[e.jsx("span",{className:"k",children:"steward"}),e.jsx("span",{children:s.stewardship.steward})]})]}),((m=s.ontology)==null?void 0:m.aligns_to)&&e.jsxs("section",{children:[e.jsx("h3",{children:"Standard it maps to"}),e.jsxs("div",{className:"sme-kv",children:[e.jsx("span",{className:"k",children:"aligned to"}),e.jsx("code",{children:s.ontology.aligns_to}),s.ontology.status==="proposed"&&e.jsx("span",{className:"sme-badge proposed",children:"awaiting architect"})]})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Where it's used"}),s.where_used.length===0?e.jsx("p",{className:"sme-muted",children:s.kind==="term"?"A glossary term — not yet realised by a data model.":"Not yet realised by any data model."}):e.jsx("ul",{className:"sme-usage",children:s.where_used.map(c=>e.jsxs("li",{children:[e.jsx("span",{className:"sme-usage-model",children:c.logical_entity}),c.unmanaged&&e.jsx("span",{className:"sme-badge",children:"engineer-owned"}),c.physical.length>0&&e.jsx("span",{className:"sme-usage-phys",children:c.physical.map(r=>r.name).join(", ")})]},c.logical_id))})]})]})}function Gs({term:s,pending:n,onStage:t,onDone:i,catalogOwned:l=[],catalog:m=null}){var $,I,g,O;const c=u=>l.includes(u),r=u=>n.find(M=>M.label===u),d=(u,M)=>{const z=r(u);return z?z.after:M},[v,j]=a.useState(d("Definition",s.definition??"")),[b,o]=a.useState(s.synonyms),[f,N]=a.useState(""),[_,B]=a.useState((($=s.stewardship)==null?void 0:$.owner)??""),[E,S]=a.useState(((I=s.stewardship)==null?void 0:I.steward)??""),C=()=>{v.trim()!==(s.definition??"").trim()&&t({op:"set_definition",payload:{id:s.id,definition:v.trim()},label:"Definition",before:s.definition??"(none)",after:v.trim()||"(none)"})},R=(u,M)=>{var z,W;t({op:"set_stewardship",payload:{id:s.id,owner:u||null,steward:M||null},label:"Stewardship",before:`owner: ${((z=s.stewardship)==null?void 0:z.owner)??"—"} · steward: ${((W=s.stewardship)==null?void 0:W.steward)??"—"}`,after:`owner: ${u||"—"} · steward: ${M||"—"}`})},A=u=>{o(u),t({op:"update_synonyms",payload:{id:s.id,synonyms:u},label:"Also called",before:s.synonyms.join(", ")||"(none)",after:u.join(", ")||"(none)"})},w=s.kind==="term";return e.jsxs("div",{className:"sme-editor",children:[e.jsxs("div",{className:"sme-card-head",children:[e.jsxs("h1",{children:["Suggest an edit — ",s.name]}),e.jsx("button",{className:"sme-secondary",onClick:i,children:"Back"})]}),e.jsxs("p",{className:"sme-hint",children:["You can refine what this term ",e.jsx("em",{children:"means"}),". Structure (keys, relationships, how it's built) stays with the data team."]}),(c("definition")||c("synonyms")||c("stewardship"))&&m&&e.jsxs("div",{className:"sme-catalog-banner",children:["Definitions, synonyms, and ownership are mastered in ",e.jsx("b",{children:m.name}),". Edit them there — this glossary mirrors them read-only.",m.url&&e.jsxs(e.Fragment,{children:[" ",e.jsxs("a",{href:m.url,target:"_blank",rel:"noreferrer",children:["Open in ",m.name," →"]})]}),e.jsx("div",{className:"sme-catalog-note",children:"You can still propose a standard mapping below."})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Definition"}),c("definition")?e.jsx("p",{className:"sme-readonly-value",children:s.definition??"—"}):e.jsx("textarea",{rows:4,value:v,onChange:u=>j(u.target.value),onBlur:C,placeholder:"A plain-language business definition…"})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Also called (synonyms)"}),c("synonyms")?e.jsx("div",{className:"sme-syn-row",children:s.synonyms.length?s.synonyms.map(u=>e.jsx("span",{className:"sme-chip",children:u},u)):e.jsx("span",{className:"sme-muted",children:"none"})}):e.jsxs("div",{className:"sme-syn-row",children:[b.map(u=>e.jsxs("span",{className:"sme-chip removable",onClick:()=>A(b.filter(M=>M!==u)),children:[u," ✕"]},u)),e.jsx("input",{value:f,placeholder:"add + Enter",onChange:u=>N(u.target.value),onKeyDown:u=>{u.key==="Enter"&&f.trim()&&(A([...b,f.trim()]),N(""))}})]})]}),!w&&(c("stewardship")?e.jsxs("div",{className:"sme-field-row",children:[e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Owner"}),e.jsx("p",{className:"sme-readonly-value",children:((g=s.stewardship)==null?void 0:g.owner)??"—"})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Steward"}),e.jsx("p",{className:"sme-readonly-value",children:((O=s.stewardship)==null?void 0:O.steward)??"—"})]})]}):e.jsxs("div",{className:"sme-field-row",children:[e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Owner"}),e.jsx("input",{value:_,onChange:u=>B(u.target.value),onBlur:()=>R(_,E)})]}),e.jsxs("label",{className:"sme-field",children:[e.jsx("span",{children:"Steward"}),e.jsx("input",{value:E,onChange:u=>S(u.target.value),onBlur:()=>R(_,E)})]})]})),e.jsx(Vs,{term:s,onStage:t}),e.jsx("p",{className:"sme-note",children:n.length>0?`${n.length} change(s) staged — use “Submit for review” at the top when you're done.`:"Changes you make are collected until you submit them for review."})]})}const Ks=["skos:exactMatch","skos:closeMatch","skos:broadMatch","skos:narrowMatch"];function Vs({term:s,onStage:n}){var b;const[t,i]=a.useState(!1),[l,m]=a.useState(s.name),[c,r]=a.useState([]),[d,v]=a.useState("skos:closeMatch"),j=o=>{m(o),ts(o).then(f=>r(f.results)).catch(()=>r([]))};return t?e.jsxs("div",{className:"sme-field sme-align",children:[e.jsx("span",{children:"Propose a standard mapping (a suggestion; the architect confirms)"}),e.jsx("input",{value:l,onChange:o=>j(o.target.value),placeholder:"Search standards…",autoFocus:!0}),e.jsx("div",{className:"sme-align-results",children:c.map(o=>e.jsxs("button",{className:"sme-align-card",onClick:()=>{var f;n({op:"set_alignment",payload:{id:s.id,aligns_to:o.prefixed,alignment:d,status:"proposed"},label:"Standard mapping",before:((f=s.ontology)==null?void 0:f.aligns_to)??"(none)",after:`${o.prefixed} (${d}, proposed)`}),i(!1)},children:[e.jsx("strong",{children:o.label})," ",e.jsx("code",{children:o.prefixed}),o.definition&&e.jsx("span",{className:"sme-align-def",children:o.definition})]},o.iri))}),e.jsx("select",{value:d,onChange:o=>v(o.target.value),children:Ks.map(o=>e.jsx("option",{children:o},o))})]}):e.jsxs("div",{className:"sme-field",children:[e.jsx("span",{children:"Standard mapping"}),e.jsxs("div",{children:[(b=s.ontology)!=null&&b.aligns_to?e.jsx("code",{className:"sme-current-align",children:s.ontology.aligns_to}):e.jsx("span",{className:"sme-muted",children:"not mapped to a standard"}),e.jsx("button",{className:"sme-link",onClick:()=>i(!0),children:"Propose a mapping…"})]})]})}function Us(){const[s,n]=a.useState(null),[t,i]=a.useState(!0),[l,m]=a.useState(null),[c,r]=a.useState(""),[d,v]=a.useState(null),[j,b]=a.useState(""),[o,f]=a.useState(""),[N,_]=a.useState(null),[B,E]=a.useState(!1),[S,C]=a.useState([]),[R,A]=a.useState(!1),w=a.useMemo(()=>new URLSearchParams(window.location.search).get("import"),[]),$=!!w,I=w&&w!=="1"?w:null,[g,O]=a.useState("");a.useEffect(()=>{I&&as(I).then(p=>p.ok&&p.content&&O(p.content)).catch(()=>{})},[I]);const[u,M]=a.useState($?"model":window.location.hash==="#proposals"?"proposals":"browse"),[z,W]=a.useState(new Set),[H,G]=a.useState(null),[T,J]=a.useState(()=>localStorage.getItem("mdl.sme.user")??""),[x,h]=a.useState(null),[k,D]=a.useState(null),[q,Ee]=a.useState(!1),[Re,Me]=a.useState(null),De=a.useCallback((p,y)=>{var Y;const L=Z=>{var ce;const F=k==null?void 0:k.entities.find(oe=>{var de;return oe.id===Z||((de=oe.conceptual)==null?void 0:de.id)===Z});return((ce=F==null?void 0:F.conceptual)==null?void 0:ce.name)??(F==null?void 0:F.name)??"object"},P=L(y.id??y.entity_id);switch(p){case"create_entity":return{label:`New entity: ${y.name}`,before:"—",after:String(y.name??"")};case"create_relationship":return{label:`New relationship: ${L(y.from_entity)} → ${L(y.to_entity)}`,before:"—",after:String(y.cardinality??"many_to_one")};case"delete_entity":return{label:`Deleted ${P}`,before:P,after:"—"};case"delete_relationship":return{label:"Relationship removed",before:"",after:"—"};case"update_relationship":return{label:"Relationship changed",before:"",after:[y.cardinality,y.optionality,y.identifying?"identifying":""].filter(Boolean).join(", ")};case"set_definition":return{label:`Definition: ${P}`,before:"",after:String(y.definition??"")};case"add_attribute":return{label:`Attribute added to ${P}`,before:"—",after:String(y.name??"")};case"delete_attribute":return{label:`Attribute removed from ${P}`,before:"",after:"—"};case"update_attribute":return{label:`Attribute changed on ${P}`,before:"",after:JSON.stringify(y)};case"rename_entity":return{label:`Renamed ${P}`,before:P,after:String(y.name??"")};case"set_subject_area":return{label:`Subject area: ${P}`,before:"",after:String(y.subject_area??"none")};case"set_stewardship":return{label:`Stewardship: ${P}`,before:"",after:String(y.steward??"")};case"set_subject_area_members":{const Z=y.__label,F=((Y=y.members)==null?void 0:Y.length)??0;return{label:Z??"Subject area members",before:"",after:`${F} object${F===1?"":"s"}`}}case"set_alignment":return{label:`Alignment: ${P}`,before:"",after:String(y.aligns_to??"")};default:return{label:`${p.replace(/_/g," ")}: ${P}`,before:"",after:""}}},[k]),V=us({subjectArea:j,describe:De}),Pe=a.useCallback(async(p,y)=>{const L=(k==null?void 0:k.fingerprint)??"",P=await rs(p,y,L);return await ie(j||void 0).then(D),P},[k,j]),Ie=a.useMemo(()=>{const p={};for(const y of V.pending)y.op==="set_subject_area_members"&&(p[y.payload.id]=y.payload.members??[]);return p},[V.pending]),U=a.useMemo(()=>[...S,...V.pending],[S,V.pending]),[Oe,se]=a.useState(null),[Be,ne]=a.useState(null);a.useEffect(()=>{if(!U.length){se(null),ne(null);return}const p=new AbortController,y=U.map(L=>({op:L.op,payload:L.payload}));return xe(y,j||void 0,p.signal).then(L=>se(L.diff??null)).catch(L=>{L.name!=="AbortError"&&se(null)}),is(y).then(ne).catch(()=>ne(null)),()=>p.abort()},[U,j]);const Le=a.useMemo(()=>ps(U),[U]).size<U.length,K=a.useCallback(p=>{M(p),window.location.hash=p==="browse"?"":`#${p}`},[]),te=a.useRef(!0);a.useEffect(()=>{const p=()=>{const y=window.location.hash;if(te.current&&!y&&$){te.current=!1;return}te.current=!1,M(y==="#proposals"?"proposals":y==="#review"?"review":y==="#model"?"model":y==="#areas"?"areas":"browse")};return p(),window.addEventListener("hashchange",p),()=>window.removeEventListener("hashchange",p)},[]);const ae=a.useCallback(()=>{ls({subject_area:j,q:o}).then(n).catch(p=>v(String(p)))},[j,o]);a.useEffect(ae,[ae]),a.useEffect(()=>{ie(j||void 0).then(p=>{i(p.read_only),r(p.project.name),D(p),Ee(!!p.direct),h(p.identity??null),p.identity&&p.identity.source!=="anonymous"&&p.identity.name&&J(p.identity.name)}).catch(()=>{}),cs().then(m).catch(()=>{})},[j]);const re=a.useMemo(()=>(s==null?void 0:s.terms.find(p=>p.id===N))??null,[s,N]),ze=a.useCallback(p=>{const y=p.key??ye(p.op,p.payload);C(L=>[...L.filter(P=>P.key!==y),{...p,key:y}])},[]),He=p=>C(y=>y.filter((L,P)=>P!==p)),We=()=>{C([]),A(!1),E(!1),ae()};if(d)return e.jsxs("div",{className:"sme-splash error",children:[e.jsx("h1",{children:"◮ Glossary"}),e.jsx("pre",{children:d}),e.jsxs("p",{children:["Is ",e.jsx("code",{children:"mdl glossary"})," pointed at a model?"]})]});if(!s)return e.jsx("div",{className:"sme-splash",children:"◮ loading glossary…"});const X=!t,le=(l==null?void 0:l.catalog_owned_fields)??[],qe=le.length>0;return e.jsxs("div",{className:"sme",children:[e.jsxs("header",{className:"sme-top",children:[e.jsxs("div",{className:"sme-brand",children:[e.jsx("span",{className:"sme-logo",children:"◮"}),e.jsx("span",{children:"Glossary"}),e.jsx("span",{className:"sme-project",children:c}),t&&e.jsx("span",{className:"sme-chip",children:"read-only"}),qe&&e.jsxs("span",{className:"sme-chip catalog",title:`Definitions are mastered in ${l==null?void 0:l.catalog_name}`,children:["mirrors ",l==null?void 0:l.catalog_name]})]}),e.jsx("input",{className:"sme-search",type:"search",placeholder:"Search terms & definitions…",value:o,onChange:p=>f(p.target.value)}),e.jsxs("nav",{className:"sme-tabs",children:[e.jsx("button",{className:"sme-tab"+(u==="browse"?" active":""),onClick:()=>K("browse"),children:"Terms"}),e.jsx("button",{className:"sme-tab"+(u==="model"?" active":""),onClick:()=>K("model"),children:"Model"}),e.jsx("button",{className:"sme-tab"+(u==="areas"?" active":""),onClick:()=>K("areas"),children:"Subject areas"}),e.jsx("button",{className:"sme-tab"+(u==="proposals"?" active":""),onClick:()=>K("proposals"),children:"My proposals"})]}),U.length>0&&e.jsxs("button",{className:"sme-tray",onClick:()=>K("review"),children:[U.length," change",U.length>1?"s":""," · Review →"]})]}),u==="browse"&&e.jsx(js,{user:T}),u==="review"?e.jsx(Ls,{stagedDiff:H??Oe,stagedRoute:H?null:Be,user:T,selectable:Le,excluded:z,onToggleField:(p,y)=>W(L=>{const P=new Set(L),Y=Q(p,y);return P.has(Y)?P.delete(Y):P.add(Y),P}),onBack:()=>{G(null),W(new Set),K("browse")},onSubmit:p=>{Me(p),A(!0)},action:H?{id:"apply-import",label:"Apply import →",primary:!0,apply:async()=>{const p=H,y=new Set([...$e(p)].filter(Y=>!z.has(Y))),L=As(p,y),P=$s(H.changes,L);await os(P,!0),G(null),W(new Set),K("browse"),await ie(j||void 0).then(D)}}:void 0}):u==="model"?V.previewDoc??k?e.jsx(gs,{doc:V.previewDoc??k,subjectArea:j,onSubjectArea:b,exec:q?Pe:V.exec,canEdit:X,direct:q,onImported:()=>K("review"),onImportPreview:p=>{W(new Set),G(p),K("review")},openImport:$,prefillImport:g,query:o,busy:V.busy}):e.jsx("div",{className:"sme-splash",children:"◮ loading the model…"}):u==="areas"?e.jsx(fs,{exec:V.exec,canEdit:X,stagedMembers:Ie}):u==="proposals"?e.jsx(vs,{user:T,onView:()=>K("review")}):e.jsxs("div",{className:"sme-body",children:[e.jsxs("nav",{className:"sme-nav",children:[e.jsx("button",{className:"sme-sa"+(j===""?" active":""),onClick:()=>b(""),children:"All subject areas"}),s.subject_areas.map(p=>e.jsx("button",{className:"sme-sa"+(j===p.id?" active":""),onClick:()=>b(p.id),title:p.definition??void 0,children:p.name},p.id))]}),e.jsxs("ul",{className:"sme-list",children:[s.terms.map(p=>{var y;return e.jsxs("li",{className:"sme-list-item"+(p.id===N?" active":""),onClick:()=>{_(p.id),E(!1)},children:[e.jsx("span",{className:"sme-term-name",children:p.name}),p.kind==="term"&&e.jsx("span",{className:"sme-kind",children:"term"}),((y=p.ontology)==null?void 0:y.status)==="proposed"&&e.jsx("span",{className:"sme-badge proposed",title:"alignment awaiting architect",children:"proposed"}),e.jsx("span",{className:"sme-term-def",children:p.definition??"no definition yet"})]},p.id)}),s.terms.length===0&&e.jsx("li",{className:"sme-empty",children:"no terms match"})]}),e.jsx("section",{className:"sme-detail",children:re?B&&X?e.jsx(Gs,{term:re,pending:S,onStage:ze,onDone:()=>E(!1),catalogOwned:le,catalog:l?{name:l.catalog_name,url:l.catalog_url}:null}):e.jsx(qs,{term:re,canEdit:X,pendingCount:S.length,onEdit:()=>E(!0)}):e.jsx("div",{className:"sme-placeholder",children:"Select a term to see its definition."})})]}),R&&e.jsx(ws,{changes:U,routeAdvice:Re,identity:x,user:T,onUser:p=>{J(p),localStorage.setItem("mdl.sme.user",p)},onDrop:He,onClose:()=>A(!1),onProposed:()=>{We(),V.clear(),W(new Set),K("proposals")}})]})}Ge.createRoot(document.getElementById("root")).render(e.jsx(Ke.StrictMode,{children:e.jsx(Us,{})}));
|