{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "gallery-knob-gallery-focused",
  "type": "registry:ui",
  "title": "Material Study Knob Kit",
  "description": "Eighteen white-plastic, pearl and porcelain profiles using the shared machined renderer.",
  "dependencies": [
    "maruaudio@>=0.0.3 <0.1.0"
  ],
  "registryDependencies": [
    "https://pluginui.com/r/gallery-knob-gallery-core.json",
    "https://pluginui.com/r/gallery-knob-gallery-machined.json"
  ],
  "files": [
    {
      "path": "components/ui/knob-gallery-focused.tsx",
      "content": "/**\n * Source: https://pluginui.com/controls\n * Copyright © [Maru](https://maru.audio)\n *\n * Maru UI Kit — https://maru.audio/ui-kit\n *\n * Installed from the Maru UI registry. This file is yours now: edit it\n * freely, it will not be overwritten unless you re-run the add command.\n *\n * Keep this item’s companion files and CSS imports together. Dependencies\n * declared by the registry are installed with the source.\n */\nimport { machinedDesign } from \"@/components/ui/knob-gallery-machined\"\nimport type { MachinedStyle } from \"maruaudio/ui/shared/knob-gallery-machined-render\"\nimport type {\n  KnobOption,\n  SurfaceStudy,\n} from \"maruaudio/ui/shared/knob-gallery-types\"\n\nconst WHITE: SurfaceStudy = {\n  id: \"\",\n  albedo: [246, 245, 242],\n  roughness: 0.55,\n  dome: 0.1,\n  bowl: 0,\n  lip: 0,\n  lipWidth: 0.075,\n  gripCount: 0,\n  gripDepth: 0,\n  dentRadius: 0,\n  dentDepth: 0,\n  marker: \"slot\",\n}\n\nfunction study(\n  id: string,\n  name: string,\n  studyGroup: NonNullable<KnobOption[\"studyGroup\"]>,\n  parent: MachinedStyle,\n  description: string,\n  settings: Partial<SurfaceStudy>\n): KnobOption {\n  const profile = { ...WHITE, ...settings, id }\n  return {\n    id,\n    name,\n    family: \"Machined\",\n    round: 2,\n    studyGroup,\n    technique: \"Canvas · sculpted dielectric surface\",\n    description,\n    Design: machinedDesign(parent, profile),\n  }\n}\n\nexport const GRIP_MILK_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"grip-milk\",\n  \"Milk soft grip\",\n  \"Soft grip\",\n  \"rubber\",\n  \"Twelve soft white-plastic lobes, a satin dome and a thumb well. The original grip with a lighter, cleaner presence.\",\n  {\n    gripCount: 12,\n    gripDepth: 0.028,\n    dome: 0.12,\n    dentRadius: 0.115,\n    dentDepth: 0.045,\n    marker: \"well\",\n  }\n)\n\nexport const GRIP_MARSHMALLOW_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"grip-marshmallow\",\n  \"Marshmallow grip\",\n  \"Soft grip\",\n  \"rubber\",\n  \"Eight broad finger pads and a fuller cushion. Powdery matte plastic with a small engraved index.\",\n  { gripCount: 8, gripDepth: 0.045, dome: 0.2, roughness: 0.8 }\n)\n\nexport const GRIP_FROST_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"grip-frost\",\n  \"Frosted petal\",\n  \"Soft grip\",\n  \"rubber\",\n  \"Ten rounded petals around a shallow face. Frosted white plastic and a quiet colored dot.\",\n  {\n    gripCount: 10,\n    gripDepth: 0.038,\n    dome: 0.065,\n    roughness: 0.7,\n    marker: \"dot\",\n    albedo: [245, 248, 249],\n  }\n)\n\nexport const GRIP_IVORY_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"grip-ivory\",\n  \"Ivory scallop\",\n  \"Soft grip\",\n  \"rubber\",\n  \"Sixteen fine scallops, a warm ivory cap and a small finger recess. A more delicate grip with satin reflections.\",\n  {\n    gripCount: 16,\n    gripDepth: 0.022,\n    dome: 0.105,\n    dentRadius: 0.09,\n    dentDepth: 0.035,\n    marker: \"well\",\n    roughness: 0.45,\n    albedo: [250, 246, 237],\n  }\n)\n\nexport const GRIP_RIBBED_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"grip-ribbed\",\n  \"White ribbed grip\",\n  \"Soft grip\",\n  \"rubber\",\n  \"Twenty closely spaced soft ribs with a smooth low crown. Molded plastic, with every rib relit as it turns.\",\n  {\n    gripCount: 20,\n    gripDepth: 0.018,\n    dome: 0.08,\n    roughness: 0.58,\n    albedo: [248, 248, 247],\n  }\n)\n\nexport const GRIP_QUIET_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"grip-quiet\",\n  \"Quiet six-lobe\",\n  \"Soft grip\",\n  \"rubber\",\n  \"Six wide lobes and a nearly flat satin face. The simplest white-plastic version, with a short inset marker.\",\n  { gripCount: 6, gripDepth: 0.025, dome: 0.04, roughness: 0.65 }\n)\n\nexport const PEARL_CLOUD_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"pearl-cloud\",\n  \"Cloud pearl\",\n  \"Inflated pearl\",\n  \"pearl\",\n  \"A full white cushion with broad, soft reflections. No metal housing: the curved white shell defines the edge.\",\n  { dome: 0.28, roughness: 0.5, albedo: [250, 247, 241] }\n)\n\nexport const PEARL_GLAZE_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"pearl-glaze\",\n  \"Glazed pearl\",\n  \"Inflated pearl\",\n  \"pearl\",\n  \"A polished porcelain-like dome with a compact clear highlight and a fine colored index.\",\n  { dome: 0.22, roughness: 0.22, albedo: [250, 249, 245] }\n)\n\nexport const PEARL_OPAL_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"pearl-opal\",\n  \"Opal cushion\",\n  \"Inflated pearl\",\n  \"pearl\",\n  \"Cool white pearlescence at the shoulder, with a restrained violet shift. Soft depth rather than a rainbow rim.\",\n  {\n    dome: 0.25,\n    roughness: 0.4,\n    albedo: [242, 246, 250],\n    pearlescence: 0.12,\n    marker: \"dot\",\n  }\n)\n\nexport const PEARL_THUMB_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"pearl-thumb\",\n  \"Pearl thumbwell\",\n  \"Inflated pearl\",\n  \"pearl\",\n  \"An inflated satin cap with a moving concave thumbprint. The recess reverses the dome's light and shade.\",\n  {\n    dome: 0.26,\n    roughness: 0.48,\n    dentRadius: 0.12,\n    dentDepth: 0.07,\n    marker: \"well\",\n  }\n)\n\nexport const PEARL_LENS_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"pearl-lens\",\n  \"Soft white lens\",\n  \"Inflated pearl\",\n  \"pearl\",\n  \"A lower, wider-looking crown with a continuous rounded shoulder. Fine satin plastic and a clean short index.\",\n  { dome: 0.115, roughness: 0.52, albedo: [249, 249, 247] }\n)\n\nexport const PEARL_BALLOON_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"pearl-balloon\",\n  \"Balloon cap\",\n  \"Inflated pearl\",\n  \"pearl\",\n  \"The fullest rounded shell in the series. A glossy white cap with a small dot, for a more playful silhouette.\",\n  { dome: 0.38, roughness: 0.3, marker: \"dot\", albedo: [250, 248, 246] }\n)\n\nexport const SAUCER_CHALK_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"saucer-chalk\",\n  \"Chalk saucer\",\n  \"Porcelain saucer\",\n  \"porcelain\",\n  \"A shallow chalk-white bowl and a soft lip. Matte ceramic makes the reversed concave lighting easy to read.\",\n  { dome: 0, bowl: 0.12, lip: 0.025, roughness: 0.7 }\n)\n\nexport const SAUCER_GLAZED_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"saucer-glazed\",\n  \"Glazed saucer\",\n  \"Porcelain saucer\",\n  \"porcelain\",\n  \"A deeper glossy dish with a thin raised lip. The bowl catches light opposite the convex outer shoulder.\",\n  {\n    dome: 0,\n    bowl: 0.21,\n    lip: 0.05,\n    lipWidth: 0.045,\n    roughness: 0.23,\n    albedo: [251, 249, 243],\n  }\n)\n\nexport const SAUCER_ROLLED_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"saucer-rolled\",\n  \"Rolled porcelain\",\n  \"Porcelain saucer\",\n  \"porcelain\",\n  \"A rounded rolled lip surrounds a small recessed basin. A tactile ceramic edge without a dark metallic bezel.\",\n  {\n    dome: 0,\n    bowl: 0.16,\n    lip: 0.1,\n    lipWidth: 0.09,\n    roughness: 0.34,\n    albedo: [249, 247, 243],\n  }\n)\n\nexport const SAUCER_THUMB_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"saucer-thumb\",\n  \"Thumbprint dish\",\n  \"Porcelain saucer\",\n  \"porcelain\",\n  \"A low satin bowl with an additional finger well. Two depths, one fixed light and a colored point inside the recess.\",\n  {\n    dome: 0,\n    bowl: 0.1,\n    lip: 0.035,\n    roughness: 0.5,\n    dentRadius: 0.095,\n    dentDepth: 0.055,\n    marker: \"well\",\n  }\n)\n\nexport const SAUCER_LOW_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"saucer-low\",\n  \"Low white dish\",\n  \"Porcelain saucer\",\n  \"porcelain\",\n  \"A nearly flush white-plastic saucer with a delicate lip. Restrained depth and a tiny engraved line.\",\n  { dome: 0, bowl: 0.055, lip: 0.018, lipWidth: 0.055, roughness: 0.56 }\n)\n\nexport const SAUCER_IVORY_OPTION: KnobOption = /* @__PURE__ */ study(\n  \"saucer-ivory\",\n  \"Ivory bowl\",\n  \"Porcelain saucer\",\n  \"porcelain\",\n  \"A deep warm-ivory basin with a broad rounded edge. A softer, more sculptural variation on the original saucer.\",\n  {\n    dome: 0,\n    bowl: 0.27,\n    lip: 0.065,\n    lipWidth: 0.08,\n    roughness: 0.42,\n    albedo: [252, 245, 231],\n  }\n)\n\nexport const FOCUSED_OPTIONS: KnobOption[] = [\n  GRIP_MILK_OPTION,\n  GRIP_MARSHMALLOW_OPTION,\n  GRIP_FROST_OPTION,\n  GRIP_IVORY_OPTION,\n  GRIP_RIBBED_OPTION,\n  GRIP_QUIET_OPTION,\n  PEARL_CLOUD_OPTION,\n  PEARL_GLAZE_OPTION,\n  PEARL_OPAL_OPTION,\n  PEARL_THUMB_OPTION,\n  PEARL_LENS_OPTION,\n  PEARL_BALLOON_OPTION,\n  SAUCER_CHALK_OPTION,\n  SAUCER_GLAZED_OPTION,\n  SAUCER_ROLLED_OPTION,\n  SAUCER_THUMB_OPTION,\n  SAUCER_LOW_OPTION,\n  SAUCER_IVORY_OPTION,\n]\n",
      "type": "registry:component",
      "target": "@ui/knob-gallery-focused.tsx"
    }
  ]
}
