@domandigital/craft 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -882,6 +882,8 @@ interface Finding {
882
882
  excerpt: string;
883
883
  message: string;
884
884
  fix: string;
885
+ /** The house copy tier (`house.ts`), on copy findings only. */
886
+ house?: "block" | "review" | "explicit";
885
887
  }
886
888
  /** A class list as it applies to one element, with where it starts. */
887
889
  interface ClassUnit {
@@ -1029,9 +1031,15 @@ interface CheckReport {
1029
1031
  * Bumped whenever an entry is added, removed or its detection changes, so a
1030
1032
  * report can say which list it was judged against.
1031
1033
  */
1032
- declare const CATALOGUE_VERSION = "2026.09.3";
1034
+ declare const CATALOGUE_VERSION = "2026.09.6";
1033
1035
  declare const CATALOGUE: readonly Tell[];
1034
1036
  declare function tellById(id: string): Tell | undefined;
1037
+ /**
1038
+ * Apply the house copy policy (`house.ts`): a finding from a house-blocking
1039
+ * tell becomes a block, so the run fails on it. Everything else keeps its
1040
+ * catalogue severity, which is `warn`.
1041
+ */
1042
+ declare function applyHouseGate(result: CheckReport): CheckReport;
1035
1043
  /** Scan markup, component code and stylesheets for design tells. */
1036
1044
  declare function scanSource(files: SourceFile[], options?: CheckOptions): CheckReport;
1037
1045
  /** Check the prose in files for copy tells. */
@@ -1071,6 +1079,74 @@ declare function wordListsJson(): string;
1071
1079
 
1072
1080
  declare function formatReport(report: CheckReport, title: string): string;
1073
1081
 
1082
+ /**
1083
+ * The house copy policy: which copy tells fail a commit.
1084
+ *
1085
+ * craft ships every tell as `warn`, because a tell is a default, not a
1086
+ * mistake. The Doman Digital house goes further for copy: the blocking tier of
1087
+ * `COPY.md` is not a judgment call, and a single hit fails. This file is where
1088
+ * that is written down, next to the tells it names, so the list of what blocks
1089
+ * and the rules that say why live in one package.
1090
+ *
1091
+ * It used to live in claude-kit's `copy_check.py`, a Python wrapper in another
1092
+ * repo. Two lists in two repos is how the old checker drifted from the rules
1093
+ * in the first place.
1094
+ *
1095
+ * `craft copy --gate` applies it. `craft tells list --json` publishes it, so
1096
+ * the `copy-check` wrapper reads the policy instead of keeping its own copy.
1097
+ *
1098
+ * block a single finding fails the run
1099
+ * review printed, never fails
1100
+ * explicit printed only when a person named the file; never fails
1101
+ *
1102
+ * A copy tell not named here is `review`: a new tell never breaks a commit.
1103
+ * Moving one to `block` needs its estate hits read by a person first (see
1104
+ * ROADMAP.md), and `COPY.md` updated in the same change.
1105
+ */
1106
+ type HouseTier = "block" | "review" | "explicit";
1107
+ interface HouseRule {
1108
+ tier: HouseTier;
1109
+ /** What the finding means, in the words the house rules use. */
1110
+ label: string;
1111
+ }
1112
+ declare const HOUSE: Readonly<Record<string, HouseRule>>;
1113
+ /** The house rule for a copy tell. Unknown ids are review, so a new tell never blocks. */
1114
+ declare function houseRule(id: string, name?: string): HouseRule;
1115
+
1116
+ /**
1117
+ * Protected facts: what a rewrite must never lose or invent.
1118
+ *
1119
+ * A rewrite that removes every tell and drops the price, or changes "since
1120
+ * 2009" to "for over a decade", or adds a review count nobody supplied, is
1121
+ * worse than the draft it replaced. The research on de-AI tooling puts this
1122
+ * gate first: compare the facts before and after, and block any change nobody
1123
+ * explained.
1124
+ *
1125
+ * Pure over text. `craft copy compare <before> <after>` is the command.
1126
+ */
1127
+
1128
+ type FactKind = "url" | "email" | "phone" | "postcode" | "money" | "date" | "time" | "number" | "name";
1129
+ interface Fact {
1130
+ kind: FactKind;
1131
+ /** As written, for the report. */
1132
+ value: string;
1133
+ /** How it is compared: spacing and thousands separators do not make a new fact. */
1134
+ key: string;
1135
+ }
1136
+ /** The reader-visible text of a file: prose for documents, visible strings for code. */
1137
+ declare function visibleText(file: SourceFile): string;
1138
+ declare function protectedFacts(text: string): Fact[];
1139
+ interface FactComparison {
1140
+ before: number;
1141
+ after: number;
1142
+ /** In the original, missing from the rewrite. */
1143
+ lost: Fact[];
1144
+ /** In the rewrite, not in the original: each one needs a source. */
1145
+ added: Fact[];
1146
+ }
1147
+ declare function compareFacts(before: string, after: string): FactComparison;
1148
+ declare function formatComparison(result: FactComparison, beforePath: string, afterPath: string): string;
1149
+
1074
1150
  /**
1075
1151
  * The rendered detection path for tells that can be seen on a live page.
1076
1152
  *
@@ -1275,8 +1351,8 @@ declare const SHADCN_PRIMITIVES: readonly ["accordion", "alert", "alert-dialog",
1275
1351
  * harness) are not here: they have tells of their own, so a finding says
1276
1352
  * which tier it belongs to.
1277
1353
  */
1278
- declare const AI_WORDS: readonly ["tapestry", "testament", "realm", "embark", "embarking", "unleash", "unlocks", "unlocking", "elevate", "elevates", "elevated", "elevating", "bustling", "nestled", "meticulous", "meticulously", "paramount", "furthermore", "moreover", "navigating", "ever-evolving", "unparalleled"];
1279
- declare const STOCK_PHRASES: readonly ["in today's digital age", "to the next level", "one-stop shop", "second to none", "we pride ourselves", "passionate about", "your journey", "our journey", "curated", "crafted with care", "tailored to your", "peace of mind"];
1354
+ declare const AI_WORDS: readonly ["tapestry", "testament", "realm", "embark", "embarking", "unleash", "unlocks", "unlocking", "elevate", "elevates", "elevated", "elevating", "bustling", "nestled", "meticulous", "meticulously", "paramount", "furthermore", "moreover", "navigating", "ever-evolving", "unparalleled", "underscore", "underscores", "underscoring", "showcasing", "pivotal"];
1355
+ declare const STOCK_PHRASES: readonly ["in today's digital age", "to the next level", "one-stop shop", "second to none", "we pride ourselves", "passionate about", "your journey", "our journey", "curated", "crafted with care", "tailored to your", "peace of mind", "so here's", "in an era where", "the future looks bright", "only time will tell"];
1280
1356
  /**
1281
1357
  * The phrase list from the blocking tier of copy-rules.md, plus the phrases
1282
1358
  * the old copy-check blocked that the rules had never written down. Each is a
@@ -1703,4 +1779,4 @@ declare function characterReport(input: CharacterInputs, copyTells?: Set<string>
1703
1779
 
1704
1780
  declare function retrofitPlan(report: CharacterReport, direction?: ArtDirection | null): string;
1705
1781
 
1706
- export { AI_PHRASES, AI_VIOLET, AI_WORDS, type AccentFork, type AccentForkOptions, type Action, type Area, type ArtDirection, BUZZWORDS, CATALOGUE, CATALOGUE_VERSION, CHOICE_KEYS, type CandidateKind, type CharacterInputs, type CharacterReport, type CheckOptions, type CheckReport, type CheckRestraintInput, type ChoiceKey, type ContrastCheck, type ContrastReport, type CopyTell, type CraftTokensInput, type CraftTokensResult, DENSITIES, DENSITY_NAMES, DIRECTION_VERSION, DISTANCE_WEIGHTS, DURATION_MS, DURATION_S, type DensityCssOptions, type DensityName, type DirectionChoice, type DirectionProblem, type DirectionReport, type DirectionSource, type DurationName, EASE, EASE_TUPLE, ESTATE_VERSION, EXIT_RATIO, type EaseName, type EmitCssOptions, type EstateMatch, type EstatePair, type EstateRegister, type EstateSite, FINGERPRINT_VERSION, type Finding, type Fingerprint, type FingerprintDistance, type FluidSpaceOptions, type FluidTypeOptions, type FluidTypeResult, type FontClass, type Gamut, type Generation, HOUSE_BUDGET, HOUSE_TYPE, type HarvestCandidate, type HarvestOptions, type Hit, LIGHTNESS_CURVE, MIN_DECIDED, MIN_RUNS, type MotionDecision, type MotionKind, NEGATIVE_REASSURANCE, NULL_VERSION, type NullModel, type NullRun, type Oklch, type OklchToHexOptions, PILL_LIMIT, PLAINER_WORDS, PROPOSED, type PaletteColour, type Proposal, type ProposeInput, RAMP_STEPS, REFLEX_FONTS_1, REFLEX_FONTS_2, RENDERED_PATHS, REVEAL_LIMIT, REVIEW_PHRASES, type Ramp, type RampFromAnchorsOptions, type RampOptions, type RampStep, type RestraintBudget, type RestraintReport, type RestraintSeverity, type RestraintViolation, type Rgb, SCALE, SHADCN_LIMIT, SHADCN_PRIMITIVES, SIBLING_AT, SNAPSHOT_VERSION, SOURCE_KINDS, SPACE_STEPS, SPRING, STOCK_PHRASES, type SectionKind, type SectionRhythmOptions, type SemanticInput, type SemanticResult, type Severity, type ShouldAnimateInput, type SignalResult, type Snapshot, type SnapshotColour, type SnapshotControl, type SnapshotEffects, type SnapshotFont, type SnapshotGradient, type SnapshotHeading, type SnapshotMotion, type SnapshotPatch, type SnapshotSection, type SourceFile, type SourceKind, type SourceTell, type SpaceStep, type Surface, TELL_HEAVY, TYPE_STEPS, TYPICAL_AT, type TailwindPreset, type Tell, type TellException, type TypeStep, type Typicality, VAGUE_WORDS, type ValidateContext, type Verdict, accentFork, addSite, apcaContrast, auditSnapshot, catalogueTable, characterReport, checkCopy, checkPair, checkRestraint, choicesOf, compareToEstate, craftTokens, deltaEOk, deltaEOkHex, densityCss, densityTokens, emitCss, emptyEstate, estatePairs, exitDuration, extractHtml, findColours, fingerprint, fingerprintDistance, fluidClamp, fluidSpace, fluidType, fontClass, formatHex, formatReport, groundName, harvest, hexToOklch, hueName, hueSwatch, inP3Gamut, inSrgbGamut, initDirection, isAiViolet, isCream, makeSnapshot, motionTokens, nearest, normaliseFamily, nullPrompt, oklchToHex, oklchToRgb, paletteFromPixels, parseColour, parseHex, propose, ramp, rampFromAnchors, retrofitPlan, runTell, scanSource, sectionRhythm, semantic, shapeName, sharedParts, shouldAnimate, siblingLine, tailwindV3Preset, tailwindV4Theme, tellById, toGamut, typeFeatureTokens, typicality, validateDirection, wcagContrast, wordListsJson };
1782
+ export { AI_PHRASES, AI_VIOLET, AI_WORDS, type AccentFork, type AccentForkOptions, type Action, type Area, type ArtDirection, BUZZWORDS, CATALOGUE, CATALOGUE_VERSION, CHOICE_KEYS, type CandidateKind, type CharacterInputs, type CharacterReport, type CheckOptions, type CheckReport, type CheckRestraintInput, type ChoiceKey, type ContrastCheck, type ContrastReport, type CopyTell, type CraftTokensInput, type CraftTokensResult, DENSITIES, DENSITY_NAMES, DIRECTION_VERSION, DISTANCE_WEIGHTS, DURATION_MS, DURATION_S, type DensityCssOptions, type DensityName, type DirectionChoice, type DirectionProblem, type DirectionReport, type DirectionSource, type DurationName, EASE, EASE_TUPLE, ESTATE_VERSION, EXIT_RATIO, type EaseName, type EmitCssOptions, type EstateMatch, type EstatePair, type EstateRegister, type EstateSite, FINGERPRINT_VERSION, type Fact, type FactComparison, type FactKind, type Finding, type Fingerprint, type FingerprintDistance, type FluidSpaceOptions, type FluidTypeOptions, type FluidTypeResult, type FontClass, type Gamut, type Generation, HOUSE, HOUSE_BUDGET, HOUSE_TYPE, type HarvestCandidate, type HarvestOptions, type Hit, type HouseRule, type HouseTier, LIGHTNESS_CURVE, MIN_DECIDED, MIN_RUNS, type MotionDecision, type MotionKind, NEGATIVE_REASSURANCE, NULL_VERSION, type NullModel, type NullRun, type Oklch, type OklchToHexOptions, PILL_LIMIT, PLAINER_WORDS, PROPOSED, type PaletteColour, type Proposal, type ProposeInput, RAMP_STEPS, REFLEX_FONTS_1, REFLEX_FONTS_2, RENDERED_PATHS, REVEAL_LIMIT, REVIEW_PHRASES, type Ramp, type RampFromAnchorsOptions, type RampOptions, type RampStep, type RestraintBudget, type RestraintReport, type RestraintSeverity, type RestraintViolation, type Rgb, SCALE, SHADCN_LIMIT, SHADCN_PRIMITIVES, SIBLING_AT, SNAPSHOT_VERSION, SOURCE_KINDS, SPACE_STEPS, SPRING, STOCK_PHRASES, type SectionKind, type SectionRhythmOptions, type SemanticInput, type SemanticResult, type Severity, type ShouldAnimateInput, type SignalResult, type Snapshot, type SnapshotColour, type SnapshotControl, type SnapshotEffects, type SnapshotFont, type SnapshotGradient, type SnapshotHeading, type SnapshotMotion, type SnapshotPatch, type SnapshotSection, type SourceFile, type SourceKind, type SourceTell, type SpaceStep, type Surface, TELL_HEAVY, TYPE_STEPS, TYPICAL_AT, type TailwindPreset, type Tell, type TellException, type TypeStep, type Typicality, VAGUE_WORDS, type ValidateContext, type Verdict, accentFork, addSite, apcaContrast, applyHouseGate, auditSnapshot, catalogueTable, characterReport, checkCopy, checkPair, checkRestraint, choicesOf, compareFacts, compareToEstate, craftTokens, deltaEOk, deltaEOkHex, densityCss, densityTokens, emitCss, emptyEstate, estatePairs, exitDuration, extractHtml, findColours, fingerprint, fingerprintDistance, fluidClamp, fluidSpace, fluidType, fontClass, formatComparison, formatHex, formatReport, groundName, harvest, hexToOklch, houseRule, hueName, hueSwatch, inP3Gamut, inSrgbGamut, initDirection, isAiViolet, isCream, makeSnapshot, motionTokens, nearest, normaliseFamily, nullPrompt, oklchToHex, oklchToRgb, paletteFromPixels, parseColour, parseHex, propose, protectedFacts, ramp, rampFromAnchors, retrofitPlan, runTell, scanSource, sectionRhythm, semantic, shapeName, sharedParts, shouldAnimate, siblingLine, tailwindV3Preset, tailwindV4Theme, tellById, toGamut, typeFeatureTokens, typicality, validateDirection, visibleText, wcagContrast, wordListsJson };
package/dist/index.d.ts CHANGED
@@ -882,6 +882,8 @@ interface Finding {
882
882
  excerpt: string;
883
883
  message: string;
884
884
  fix: string;
885
+ /** The house copy tier (`house.ts`), on copy findings only. */
886
+ house?: "block" | "review" | "explicit";
885
887
  }
886
888
  /** A class list as it applies to one element, with where it starts. */
887
889
  interface ClassUnit {
@@ -1029,9 +1031,15 @@ interface CheckReport {
1029
1031
  * Bumped whenever an entry is added, removed or its detection changes, so a
1030
1032
  * report can say which list it was judged against.
1031
1033
  */
1032
- declare const CATALOGUE_VERSION = "2026.09.3";
1034
+ declare const CATALOGUE_VERSION = "2026.09.6";
1033
1035
  declare const CATALOGUE: readonly Tell[];
1034
1036
  declare function tellById(id: string): Tell | undefined;
1037
+ /**
1038
+ * Apply the house copy policy (`house.ts`): a finding from a house-blocking
1039
+ * tell becomes a block, so the run fails on it. Everything else keeps its
1040
+ * catalogue severity, which is `warn`.
1041
+ */
1042
+ declare function applyHouseGate(result: CheckReport): CheckReport;
1035
1043
  /** Scan markup, component code and stylesheets for design tells. */
1036
1044
  declare function scanSource(files: SourceFile[], options?: CheckOptions): CheckReport;
1037
1045
  /** Check the prose in files for copy tells. */
@@ -1071,6 +1079,74 @@ declare function wordListsJson(): string;
1071
1079
 
1072
1080
  declare function formatReport(report: CheckReport, title: string): string;
1073
1081
 
1082
+ /**
1083
+ * The house copy policy: which copy tells fail a commit.
1084
+ *
1085
+ * craft ships every tell as `warn`, because a tell is a default, not a
1086
+ * mistake. The Doman Digital house goes further for copy: the blocking tier of
1087
+ * `COPY.md` is not a judgment call, and a single hit fails. This file is where
1088
+ * that is written down, next to the tells it names, so the list of what blocks
1089
+ * and the rules that say why live in one package.
1090
+ *
1091
+ * It used to live in claude-kit's `copy_check.py`, a Python wrapper in another
1092
+ * repo. Two lists in two repos is how the old checker drifted from the rules
1093
+ * in the first place.
1094
+ *
1095
+ * `craft copy --gate` applies it. `craft tells list --json` publishes it, so
1096
+ * the `copy-check` wrapper reads the policy instead of keeping its own copy.
1097
+ *
1098
+ * block a single finding fails the run
1099
+ * review printed, never fails
1100
+ * explicit printed only when a person named the file; never fails
1101
+ *
1102
+ * A copy tell not named here is `review`: a new tell never breaks a commit.
1103
+ * Moving one to `block` needs its estate hits read by a person first (see
1104
+ * ROADMAP.md), and `COPY.md` updated in the same change.
1105
+ */
1106
+ type HouseTier = "block" | "review" | "explicit";
1107
+ interface HouseRule {
1108
+ tier: HouseTier;
1109
+ /** What the finding means, in the words the house rules use. */
1110
+ label: string;
1111
+ }
1112
+ declare const HOUSE: Readonly<Record<string, HouseRule>>;
1113
+ /** The house rule for a copy tell. Unknown ids are review, so a new tell never blocks. */
1114
+ declare function houseRule(id: string, name?: string): HouseRule;
1115
+
1116
+ /**
1117
+ * Protected facts: what a rewrite must never lose or invent.
1118
+ *
1119
+ * A rewrite that removes every tell and drops the price, or changes "since
1120
+ * 2009" to "for over a decade", or adds a review count nobody supplied, is
1121
+ * worse than the draft it replaced. The research on de-AI tooling puts this
1122
+ * gate first: compare the facts before and after, and block any change nobody
1123
+ * explained.
1124
+ *
1125
+ * Pure over text. `craft copy compare <before> <after>` is the command.
1126
+ */
1127
+
1128
+ type FactKind = "url" | "email" | "phone" | "postcode" | "money" | "date" | "time" | "number" | "name";
1129
+ interface Fact {
1130
+ kind: FactKind;
1131
+ /** As written, for the report. */
1132
+ value: string;
1133
+ /** How it is compared: spacing and thousands separators do not make a new fact. */
1134
+ key: string;
1135
+ }
1136
+ /** The reader-visible text of a file: prose for documents, visible strings for code. */
1137
+ declare function visibleText(file: SourceFile): string;
1138
+ declare function protectedFacts(text: string): Fact[];
1139
+ interface FactComparison {
1140
+ before: number;
1141
+ after: number;
1142
+ /** In the original, missing from the rewrite. */
1143
+ lost: Fact[];
1144
+ /** In the rewrite, not in the original: each one needs a source. */
1145
+ added: Fact[];
1146
+ }
1147
+ declare function compareFacts(before: string, after: string): FactComparison;
1148
+ declare function formatComparison(result: FactComparison, beforePath: string, afterPath: string): string;
1149
+
1074
1150
  /**
1075
1151
  * The rendered detection path for tells that can be seen on a live page.
1076
1152
  *
@@ -1275,8 +1351,8 @@ declare const SHADCN_PRIMITIVES: readonly ["accordion", "alert", "alert-dialog",
1275
1351
  * harness) are not here: they have tells of their own, so a finding says
1276
1352
  * which tier it belongs to.
1277
1353
  */
1278
- declare const AI_WORDS: readonly ["tapestry", "testament", "realm", "embark", "embarking", "unleash", "unlocks", "unlocking", "elevate", "elevates", "elevated", "elevating", "bustling", "nestled", "meticulous", "meticulously", "paramount", "furthermore", "moreover", "navigating", "ever-evolving", "unparalleled"];
1279
- declare const STOCK_PHRASES: readonly ["in today's digital age", "to the next level", "one-stop shop", "second to none", "we pride ourselves", "passionate about", "your journey", "our journey", "curated", "crafted with care", "tailored to your", "peace of mind"];
1354
+ declare const AI_WORDS: readonly ["tapestry", "testament", "realm", "embark", "embarking", "unleash", "unlocks", "unlocking", "elevate", "elevates", "elevated", "elevating", "bustling", "nestled", "meticulous", "meticulously", "paramount", "furthermore", "moreover", "navigating", "ever-evolving", "unparalleled", "underscore", "underscores", "underscoring", "showcasing", "pivotal"];
1355
+ declare const STOCK_PHRASES: readonly ["in today's digital age", "to the next level", "one-stop shop", "second to none", "we pride ourselves", "passionate about", "your journey", "our journey", "curated", "crafted with care", "tailored to your", "peace of mind", "so here's", "in an era where", "the future looks bright", "only time will tell"];
1280
1356
  /**
1281
1357
  * The phrase list from the blocking tier of copy-rules.md, plus the phrases
1282
1358
  * the old copy-check blocked that the rules had never written down. Each is a
@@ -1703,4 +1779,4 @@ declare function characterReport(input: CharacterInputs, copyTells?: Set<string>
1703
1779
 
1704
1780
  declare function retrofitPlan(report: CharacterReport, direction?: ArtDirection | null): string;
1705
1781
 
1706
- export { AI_PHRASES, AI_VIOLET, AI_WORDS, type AccentFork, type AccentForkOptions, type Action, type Area, type ArtDirection, BUZZWORDS, CATALOGUE, CATALOGUE_VERSION, CHOICE_KEYS, type CandidateKind, type CharacterInputs, type CharacterReport, type CheckOptions, type CheckReport, type CheckRestraintInput, type ChoiceKey, type ContrastCheck, type ContrastReport, type CopyTell, type CraftTokensInput, type CraftTokensResult, DENSITIES, DENSITY_NAMES, DIRECTION_VERSION, DISTANCE_WEIGHTS, DURATION_MS, DURATION_S, type DensityCssOptions, type DensityName, type DirectionChoice, type DirectionProblem, type DirectionReport, type DirectionSource, type DurationName, EASE, EASE_TUPLE, ESTATE_VERSION, EXIT_RATIO, type EaseName, type EmitCssOptions, type EstateMatch, type EstatePair, type EstateRegister, type EstateSite, FINGERPRINT_VERSION, type Finding, type Fingerprint, type FingerprintDistance, type FluidSpaceOptions, type FluidTypeOptions, type FluidTypeResult, type FontClass, type Gamut, type Generation, HOUSE_BUDGET, HOUSE_TYPE, type HarvestCandidate, type HarvestOptions, type Hit, LIGHTNESS_CURVE, MIN_DECIDED, MIN_RUNS, type MotionDecision, type MotionKind, NEGATIVE_REASSURANCE, NULL_VERSION, type NullModel, type NullRun, type Oklch, type OklchToHexOptions, PILL_LIMIT, PLAINER_WORDS, PROPOSED, type PaletteColour, type Proposal, type ProposeInput, RAMP_STEPS, REFLEX_FONTS_1, REFLEX_FONTS_2, RENDERED_PATHS, REVEAL_LIMIT, REVIEW_PHRASES, type Ramp, type RampFromAnchorsOptions, type RampOptions, type RampStep, type RestraintBudget, type RestraintReport, type RestraintSeverity, type RestraintViolation, type Rgb, SCALE, SHADCN_LIMIT, SHADCN_PRIMITIVES, SIBLING_AT, SNAPSHOT_VERSION, SOURCE_KINDS, SPACE_STEPS, SPRING, STOCK_PHRASES, type SectionKind, type SectionRhythmOptions, type SemanticInput, type SemanticResult, type Severity, type ShouldAnimateInput, type SignalResult, type Snapshot, type SnapshotColour, type SnapshotControl, type SnapshotEffects, type SnapshotFont, type SnapshotGradient, type SnapshotHeading, type SnapshotMotion, type SnapshotPatch, type SnapshotSection, type SourceFile, type SourceKind, type SourceTell, type SpaceStep, type Surface, TELL_HEAVY, TYPE_STEPS, TYPICAL_AT, type TailwindPreset, type Tell, type TellException, type TypeStep, type Typicality, VAGUE_WORDS, type ValidateContext, type Verdict, accentFork, addSite, apcaContrast, auditSnapshot, catalogueTable, characterReport, checkCopy, checkPair, checkRestraint, choicesOf, compareToEstate, craftTokens, deltaEOk, deltaEOkHex, densityCss, densityTokens, emitCss, emptyEstate, estatePairs, exitDuration, extractHtml, findColours, fingerprint, fingerprintDistance, fluidClamp, fluidSpace, fluidType, fontClass, formatHex, formatReport, groundName, harvest, hexToOklch, hueName, hueSwatch, inP3Gamut, inSrgbGamut, initDirection, isAiViolet, isCream, makeSnapshot, motionTokens, nearest, normaliseFamily, nullPrompt, oklchToHex, oklchToRgb, paletteFromPixels, parseColour, parseHex, propose, ramp, rampFromAnchors, retrofitPlan, runTell, scanSource, sectionRhythm, semantic, shapeName, sharedParts, shouldAnimate, siblingLine, tailwindV3Preset, tailwindV4Theme, tellById, toGamut, typeFeatureTokens, typicality, validateDirection, wcagContrast, wordListsJson };
1782
+ export { AI_PHRASES, AI_VIOLET, AI_WORDS, type AccentFork, type AccentForkOptions, type Action, type Area, type ArtDirection, BUZZWORDS, CATALOGUE, CATALOGUE_VERSION, CHOICE_KEYS, type CandidateKind, type CharacterInputs, type CharacterReport, type CheckOptions, type CheckReport, type CheckRestraintInput, type ChoiceKey, type ContrastCheck, type ContrastReport, type CopyTell, type CraftTokensInput, type CraftTokensResult, DENSITIES, DENSITY_NAMES, DIRECTION_VERSION, DISTANCE_WEIGHTS, DURATION_MS, DURATION_S, type DensityCssOptions, type DensityName, type DirectionChoice, type DirectionProblem, type DirectionReport, type DirectionSource, type DurationName, EASE, EASE_TUPLE, ESTATE_VERSION, EXIT_RATIO, type EaseName, type EmitCssOptions, type EstateMatch, type EstatePair, type EstateRegister, type EstateSite, FINGERPRINT_VERSION, type Fact, type FactComparison, type FactKind, type Finding, type Fingerprint, type FingerprintDistance, type FluidSpaceOptions, type FluidTypeOptions, type FluidTypeResult, type FontClass, type Gamut, type Generation, HOUSE, HOUSE_BUDGET, HOUSE_TYPE, type HarvestCandidate, type HarvestOptions, type Hit, type HouseRule, type HouseTier, LIGHTNESS_CURVE, MIN_DECIDED, MIN_RUNS, type MotionDecision, type MotionKind, NEGATIVE_REASSURANCE, NULL_VERSION, type NullModel, type NullRun, type Oklch, type OklchToHexOptions, PILL_LIMIT, PLAINER_WORDS, PROPOSED, type PaletteColour, type Proposal, type ProposeInput, RAMP_STEPS, REFLEX_FONTS_1, REFLEX_FONTS_2, RENDERED_PATHS, REVEAL_LIMIT, REVIEW_PHRASES, type Ramp, type RampFromAnchorsOptions, type RampOptions, type RampStep, type RestraintBudget, type RestraintReport, type RestraintSeverity, type RestraintViolation, type Rgb, SCALE, SHADCN_LIMIT, SHADCN_PRIMITIVES, SIBLING_AT, SNAPSHOT_VERSION, SOURCE_KINDS, SPACE_STEPS, SPRING, STOCK_PHRASES, type SectionKind, type SectionRhythmOptions, type SemanticInput, type SemanticResult, type Severity, type ShouldAnimateInput, type SignalResult, type Snapshot, type SnapshotColour, type SnapshotControl, type SnapshotEffects, type SnapshotFont, type SnapshotGradient, type SnapshotHeading, type SnapshotMotion, type SnapshotPatch, type SnapshotSection, type SourceFile, type SourceKind, type SourceTell, type SpaceStep, type Surface, TELL_HEAVY, TYPE_STEPS, TYPICAL_AT, type TailwindPreset, type Tell, type TellException, type TypeStep, type Typicality, VAGUE_WORDS, type ValidateContext, type Verdict, accentFork, addSite, apcaContrast, applyHouseGate, auditSnapshot, catalogueTable, characterReport, checkCopy, checkPair, checkRestraint, choicesOf, compareFacts, compareToEstate, craftTokens, deltaEOk, deltaEOkHex, densityCss, densityTokens, emitCss, emptyEstate, estatePairs, exitDuration, extractHtml, findColours, fingerprint, fingerprintDistance, fluidClamp, fluidSpace, fluidType, fontClass, formatComparison, formatHex, formatReport, groundName, harvest, hexToOklch, houseRule, hueName, hueSwatch, inP3Gamut, inSrgbGamut, initDirection, isAiViolet, isCream, makeSnapshot, motionTokens, nearest, normaliseFamily, nullPrompt, oklchToHex, oklchToRgb, paletteFromPixels, parseColour, parseHex, propose, protectedFacts, ramp, rampFromAnchors, retrofitPlan, runTell, scanSource, sectionRhythm, semantic, shapeName, sharedParts, shouldAnimate, siblingLine, tailwindV3Preset, tailwindV4Theme, tellById, toGamut, typeFeatureTokens, typicality, validateDirection, visibleText, wcagContrast, wordListsJson };