Home / File/ customizer.tsx — ui Source File

customizer.tsx — ui Source File

Architecture documentation for customizer.tsx, a tsx file in the ui codebase. 21 imports, 0 dependents.

File tsx DesignEngine PreviewSystem 21 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  e5c08ca8_8065_9362_a7c6_7276ca615150["customizer.tsx"]
  1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2
  81821566_3643_c91a_1397_57950c94b526["core-free-icons"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 81821566_3643_c91a_1397_57950c94b526
  614a3ef5_2f09_8b4c_c7b8_666db5a9ce32["react"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 614a3ef5_2f09_8b4c_c7b8_666db5a9ce32
  7c217573_70ba_6759_49cd_674343c15bd1["use-mobile"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 7c217573_70ba_6759_49cd_674343c15bd1
  f14cf7ca_f213_afc2_bc66_ebc0fb7d9834["config"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> f14cf7ca_f213_afc2_bc66_ebc0fb7d9834
  169af77a_46c3_8fec_4801_f34a0f1a3471["field"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 169af77a_46c3_8fec_4801_f34a0f1a3471
  b2c60dee_4ede_8485_a6b4_91c999cdc69f["separator"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> b2c60dee_4ede_8485_a6b4_91c999cdc69f
  7f62913d_60f3_94dc_3ccf_4939828b1f11["accent-picker"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 7f62913d_60f3_94dc_3ccf_4939828b1f11
  1c976fa3_5415_1355_f0ed_10a83feb5d23["base-color-picker"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 1c976fa3_5415_1355_f0ed_10a83feb5d23
  78998051_88d1_17d7_4745_106c6c2b8aa6["base-picker"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 78998051_88d1_17d7_4745_106c6c2b8aa6
  d8f6b99c_a547_e2bf_4439_c195e6ef8453["font-picker"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> d8f6b99c_a547_e2bf_4439_c195e6ef8453
  849408c2_7546_6b33_3bba_cc2f9424f950["icon-library-picker"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 849408c2_7546_6b33_3bba_cc2f9424f950
  79a545f2_45b3_31d6_4e2c_bc865231b31c["menu-picker"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 79a545f2_45b3_31d6_4e2c_bc865231b31c
  1411a3ce_c941_15f5_ed5d_6d98d6fd6157["preset-picker"]
  e5c08ca8_8065_9362_a7c6_7276ca615150 --> 1411a3ce_c941_15f5_ed5d_6d98d6fd6157
  style e5c08ca8_8065_9362_a7c6_7276ca615150 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"use client"

import * as React from "react"
import { Settings05Icon } from "@hugeicons/core-free-icons"
import { HugeiconsIcon } from "@hugeicons/react"

import { useIsMobile } from "@/hooks/use-mobile"
import { getThemesForBaseColor, PRESETS, STYLES } from "@/registry/config"
import { FieldGroup } from "@/registry/new-york-v4/ui/field"
import { Separator } from "@/registry/new-york-v4/ui/separator"
import { MenuAccentPicker } from "@/app/(create)/components/accent-picker"
import { BaseColorPicker } from "@/app/(create)/components/base-color-picker"
import { BasePicker } from "@/app/(create)/components/base-picker"
import { FontPicker } from "@/app/(create)/components/font-picker"
import { IconLibraryPicker } from "@/app/(create)/components/icon-library-picker"
import { MenuColorPicker } from "@/app/(create)/components/menu-picker"
import { PresetPicker } from "@/app/(create)/components/preset-picker"
import { RadiusPicker } from "@/app/(create)/components/radius-picker"
import { RandomButton } from "@/app/(create)/components/random-button"
import { ResetButton } from "@/app/(create)/components/reset-button"
import { StylePicker } from "@/app/(create)/components/style-picker"
import { ThemePicker } from "@/app/(create)/components/theme-picker"
import { FONTS } from "@/app/(create)/lib/fonts"
import { useDesignSystemSearchParams } from "@/app/(create)/lib/search-params"

export function Customizer() {
  const [params] = useDesignSystemSearchParams()
  const isMobile = useIsMobile()
  const anchorRef = React.useRef<HTMLDivElement | null>(null)

  const availableThemes = React.useMemo(
    () => getThemesForBaseColor(params.baseColor),
    [params.baseColor]
  )

  return (
    <div
      className="no-scrollbar -mx-2.5 flex flex-col overflow-y-auto p-1 md:mx-0 md:h-[calc(100svh-var(--header-height)-2rem)] md:w-48 md:gap-0 md:py-0"
      ref={anchorRef}
    >
      <div className="no-scrollbar h-14 overflow-x-auto overflow-y-hidden p-px md:h-full md:overflow-x-hidden md:overflow-y-auto">
        <FieldGroup className="flex h-full flex-1 flex-row gap-2 md:flex-col md:gap-0">
          <PresetPicker
            presets={PRESETS}
            isMobile={isMobile}
            anchorRef={anchorRef}
          />
          <BasePicker isMobile={isMobile} anchorRef={anchorRef} />
          <StylePicker
            styles={STYLES}
            isMobile={isMobile}
            anchorRef={anchorRef}
          />
          <BaseColorPicker isMobile={isMobile} anchorRef={anchorRef} />
          <ThemePicker
            themes={availableThemes}
            isMobile={isMobile}
            anchorRef={anchorRef}
          />
          <IconLibraryPicker isMobile={isMobile} anchorRef={anchorRef} />
          <FontPicker fonts={FONTS} isMobile={isMobile} anchorRef={anchorRef} />
          <RadiusPicker isMobile={isMobile} anchorRef={anchorRef} />
          <MenuColorPicker isMobile={isMobile} anchorRef={anchorRef} />
          <MenuAccentPicker isMobile={isMobile} anchorRef={anchorRef} />
          <div className="mt-auto hidden w-full flex-col items-center gap-0 md:flex">
            <RandomButton />
            <ResetButton />
          </div>
        </FieldGroup>
      </div>
    </div>
  )
}

Domain

Subdomains

Functions

Dependencies

  • accent-picker
  • base-color-picker
  • base-picker
  • config
  • core-free-icons
  • field
  • font-picker
  • fonts
  • icon-library-picker
  • menu-picker
  • preset-picker
  • radius-picker
  • random-button
  • react
  • react
  • reset-button
  • search-params
  • separator
  • style-picker
  • theme-picker
  • use-mobile

Frequently Asked Questions

What does customizer.tsx do?
customizer.tsx is a source file in the ui codebase, written in tsx. It belongs to the DesignEngine domain, PreviewSystem subdomain.
What functions are defined in customizer.tsx?
customizer.tsx defines 1 function(s): Customizer.
What does customizer.tsx depend on?
customizer.tsx imports 21 module(s): accent-picker, base-color-picker, base-picker, config, core-free-icons, field, font-picker, fonts, and 13 more.
Where is customizer.tsx in the architecture?
customizer.tsx is located at apps/v4/app/(create)/components/customizer.tsx (domain: DesignEngine, subdomain: PreviewSystem, directory: apps/v4/app/(create)/components).

Analyze Your Own Codebase

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

Try Supermodel Free