Home / File/ randomize-biases.ts — ui Source File

randomize-biases.ts — ui Source File

Architecture documentation for randomize-biases.ts, a typescript file in the ui codebase. 2 imports, 0 dependents.

File typescript DesignEngine Transformers 2 imports 4 functions

Entity Profile

Dependency Diagram

graph LR
  df343824_4cf7_9acf_b32f_d24333834c03["randomize-biases.ts"]
  181dc3d7_6787_1cda_62bd_34c7ec49be1c["fonts.ts"]
  df343824_4cf7_9acf_b32f_d24333834c03 --> 181dc3d7_6787_1cda_62bd_34c7ec49be1c
  f14cf7ca_f213_afc2_bc66_ebc0fb7d9834["config"]
  df343824_4cf7_9acf_b32f_d24333834c03 --> f14cf7ca_f213_afc2_bc66_ebc0fb7d9834
  style df343824_4cf7_9acf_b32f_d24333834c03 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type {
  BaseColorName,
  Radius,
  StyleName,
  ThemeName,
} from "@/registry/config"

import { type FONTS } from "./fonts"

export type RandomizeContext = {
  style?: StyleName
  baseColor?: BaseColorName
  theme?: ThemeName
  iconLibrary?: string
  font?: string
  menuAccent?: string
  menuColor?: string
  radius?: string
}

export type BiasFilter<T> = (
  items: readonly T[],
  context: RandomizeContext
) => readonly T[]

export type RandomizeBiases = {
  fonts?: BiasFilter<(typeof FONTS)[number]>
  radius?: BiasFilter<Radius>
  // Add more bias filters as needed:
  // styles?: BiasFilter<Style>
  // baseColors?: BiasFilter<BaseColor>
  // themes?: BiasFilter<Theme>
  // etc.
}

/**
 * Configuration for randomization biases.
 * Add biases here to influence random selection based on context.
 */
export const RANDOMIZE_BIASES: RandomizeBiases = {
  fonts: (fonts, context) => {
    // When style is lyra, only use mono fonts.
    if (context.style === "lyra") {
      return fonts.filter((font) => font.value === "jetbrains-mono")
    }

    return fonts
  },
  radius: (radii, context) => {
    // When style is lyra, always use "none" radius
    if (context.style === "lyra") {
      return radii.filter((radius) => radius.name === "none")
    }

    return radii
  },
  // Add more biases here as needed:
  // Example: When baseColor is "blue", prefer certain themes
  // themes: (themes, context) => {
  //   if (context.baseColor === "blue") {
  //     return themes.filter(theme => theme.name.includes("dark"))
  //   }
  //   return themes
  // },
}

/**
 * Applies biases to a list of items based on the current context.
 */
export function applyBias<T>(
  items: readonly T[],
  context: RandomizeContext,
  biasFilter?: BiasFilter<T>
): readonly T[] {
  if (!biasFilter) {
    return items
  }

  return biasFilter(items, context)
}

Domain

Subdomains

Dependencies

Frequently Asked Questions

What does randomize-biases.ts do?
randomize-biases.ts is a source file in the ui codebase, written in typescript. It belongs to the DesignEngine domain, Transformers subdomain.
What functions are defined in randomize-biases.ts?
randomize-biases.ts defines 4 function(s): RANDOMIZE_BIASES.fonts, RANDOMIZE_BIASES.radius, applyBias, items.
What does randomize-biases.ts depend on?
randomize-biases.ts imports 2 module(s): config, fonts.ts.
Where is randomize-biases.ts in the architecture?
randomize-biases.ts is located at apps/v4/app/(create)/lib/randomize-biases.ts (domain: DesignEngine, subdomain: Transformers, directory: apps/v4/app/(create)/lib).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free