Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2025 Revanite Incorporated
Copyright 2025 Gemara contributors, a Series of LF Projects, LLC.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.PHONY: test test-watch lint typecheck build generate

test:
npm test

test-watch:
npm run test:watch

lint:
npm run lint

typecheck:
npm run typecheck

build:
npm run build

generate:
npm run generate
1 change: 1 addition & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import tseslint from "@typescript-eslint/eslint-plugin";
import tsparser from "@typescript-eslint/parser";
import reactHooks from "eslint-plugin-react-hooks";
Expand Down
39 changes: 0 additions & 39 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions scripts/generate-types.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
/**
* Type generation pipeline.
*
Expand Down
1 change: 1 addition & 0 deletions src/capability-catalog/CapabilityCatalog.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import type { ReactNode } from "react";
import { DateTime } from "../primitives/DateTime.js";
import { EntityRef } from "../primitives/EntityRef.js";
Expand Down
1 change: 1 addition & 0 deletions src/capability-catalog/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: Apache-2.0
export { CapabilityCatalog, type CapabilityCatalogProps } from "./CapabilityCatalog.js";
1 change: 1 addition & 0 deletions src/control-catalog/ControlCatalog.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import type { ReactNode } from "react";
import { ArtifactRef } from "../primitives/ArtifactRef.js";
import { DateTime } from "../primitives/DateTime.js";
Expand Down
1 change: 1 addition & 0 deletions src/control-catalog/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: Apache-2.0
export { ControlCatalog, type ControlCatalogProps } from "./ControlCatalog.js";
1 change: 1 addition & 0 deletions src/guidance-catalog/GuidanceCatalog.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import type { ReactNode } from "react";
import { ArtifactRef } from "../primitives/ArtifactRef.js";
import { DateTime } from "../primitives/DateTime.js";
Expand Down
1 change: 1 addition & 0 deletions src/guidance-catalog/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: Apache-2.0
export { GuidanceCatalog, type GuidanceCatalogProps } from "./GuidanceCatalog.js";
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
// Top-level barrel — provider + primitives only.
// Renderers live behind subpath imports so consumers tree-shake per artifact.
export * from "./provider/index.js";
Expand Down
1 change: 1 addition & 0 deletions src/interactive/CollapsibleGroup.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
"use client";

import { useId, useState, type ReactNode } from "react";
Expand Down
1 change: 1 addition & 0 deletions src/interactive/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: Apache-2.0
export { CollapsibleGroup, type CollapsibleGroupProps } from "./CollapsibleGroup.js";
1 change: 1 addition & 0 deletions src/primitives/ArtifactRef.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { Slot } from "@radix-ui/react-slot";
import type { ReactNode } from "react";
import { useLinkResolver, type ArtifactReference } from "../provider/index.js";
Expand Down
1 change: 1 addition & 0 deletions src/primitives/DateTime.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
export interface DateTimeProps {
/** ISO 8601 datetime string, as produced by Gemara's #Datetime format. */
value: string | undefined;
Expand Down
1 change: 1 addition & 0 deletions src/primitives/EntityRef.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import type { ReactNode } from "react";

/** Minimal shape we accept for any "entity-like" actor / contact / author. */
Expand Down
1 change: 1 addition & 0 deletions src/primitives/Heading.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import {
createContext,
useContext,
Expand Down
1 change: 1 addition & 0 deletions src/primitives/Prose.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
export interface ProseProps {
content: string | undefined;
/** Optional element override — defaults to `<div>`. */
Expand Down
1 change: 1 addition & 0 deletions src/primitives/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
export { ArtifactRef, type ArtifactRefProps } from "./ArtifactRef.js";
export { EntityRef, type EntityRefProps, type EntityLike } from "./EntityRef.js";
export { DateTime, type DateTimeProps } from "./DateTime.js";
Expand Down
1 change: 1 addition & 0 deletions src/principle-catalog/PrincipleCatalog.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import type { ReactNode } from "react";
import { DateTime } from "../primitives/DateTime.js";
import { EntityRef } from "../primitives/EntityRef.js";
Expand Down
1 change: 1 addition & 0 deletions src/principle-catalog/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: Apache-2.0
export { PrincipleCatalog, type PrincipleCatalogProps } from "./PrincipleCatalog.js";
1 change: 1 addition & 0 deletions src/provider/GemaraProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { createContext, type ReactElement, type ReactNode } from "react";

/**
Expand Down
1 change: 1 addition & 0 deletions src/provider/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
export {
GemaraProvider,
GemaraContext,
Expand Down
1 change: 1 addition & 0 deletions src/provider/useLinkResolver.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { useContext } from "react";
import { GemaraContext, type LinkResolver } from "./GemaraProvider.js";

Expand Down
1 change: 1 addition & 0 deletions src/threat-catalog/ThreatCatalog.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import type { ReactNode } from "react";
import { ArtifactRef } from "../primitives/ArtifactRef.js";
import { DateTime } from "../primitives/DateTime.js";
Expand Down
1 change: 1 addition & 0 deletions src/threat-catalog/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: Apache-2.0
export { ThreatCatalog, type ThreatCatalogProps } from "./ThreatCatalog.js";
1 change: 1 addition & 0 deletions src/vector-catalog/VectorCatalog.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import type { ReactNode } from "react";
import { DateTime } from "../primitives/DateTime.js";
import { EntityRef } from "../primitives/EntityRef.js";
Expand Down
1 change: 1 addition & 0 deletions src/vector-catalog/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: Apache-2.0
export { VectorCatalog, type VectorCatalogProps } from "./VectorCatalog.js";
1 change: 1 addition & 0 deletions tests/CapabilityCatalog.test.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { describe, it, expect } from "vitest";
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
Expand Down
1 change: 1 addition & 0 deletions tests/ControlCatalog.test.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { describe, it, expect } from "vitest";
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
Expand Down
1 change: 1 addition & 0 deletions tests/GuidanceCatalog.test.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { describe, it, expect } from "vitest";
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
Expand Down
1 change: 1 addition & 0 deletions tests/PrincipleCatalog.test.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { describe, it, expect } from "vitest";
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
Expand Down
1 change: 1 addition & 0 deletions tests/ThreatCatalog.test.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { describe, it, expect } from "vitest";
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
Expand Down
1 change: 1 addition & 0 deletions tests/VectorCatalog.test.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { describe, it, expect } from "vitest";
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
Expand Down
1 change: 1 addition & 0 deletions tsup.config.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { defineConfig } from "tsup";
import { readFile, writeFile, readdir } from "node:fs/promises";
import { join } from "node:path";
Expand Down
1 change: 1 addition & 0 deletions vitest.config.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
import { defineConfig } from "vitest/config";

export default defineConfig({
Expand Down
Loading