{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "input-group",
  "type": "registry:ui",
  "title": "Input group (MIAN)",
  "description": "An input with leading or trailing addons, text, icons or buttons, inside one border.",
  "categories": [
    "forms",
    "input group",
    "addon",
    "prefix",
    "suffix"
  ],
  "registryDependencies": [
    "https://mian.ro/r/mian-base.json"
  ],
  "files": [
    {
      "path": "mian/components/input-group.css",
      "type": "registry:file",
      "target": "mian/components/input-group.css",
      "content": ".mn-input-group {\n  display: flex; align-items: stretch; width: 100%;\n  height: var(--mn-size-md);\n  border: var(--mn-border-w) solid var(--mn-input); border-radius: var(--mn-radius-field);\n  background: var(--mn-surface); box-shadow: var(--mn-shadow-sm);\n  overflow: hidden;\n  transition: border-color var(--mn-duration) var(--mn-ease), box-shadow var(--mn-duration) var(--mn-ease);\n}\n.mn-input-group:focus-within { border-color: var(--mn-ring); box-shadow: 0 0 0 3px color-mix(in oklab, var(--mn-ring) 25%, transparent); }\n.mn-input-group > .mn-input { height: 100%; border: 0; border-radius: 0; box-shadow: none; background: transparent; }\n.mn-input-group > .mn-input:focus { box-shadow: none; }\n.mn-addon {\n  display: inline-flex; align-items: center; gap: .4rem; flex: none;\n  padding: 0 .75rem;\n  background: var(--mn-surface-2); color: var(--mn-muted);\n  font: 400 var(--mn-text-sm)/1 var(--mn-font); white-space: nowrap;\n}\n.mn-addon:first-child { border-inline-end: var(--mn-border-w) solid var(--mn-input); }\n.mn-addon:last-child { border-inline-start: var(--mn-border-w) solid var(--mn-input); }\n.mn-addon-plain { background: transparent; border: 0 !important; padding-inline: .7rem .1rem; }\n.mn-addon-plain:last-child { padding-inline: .1rem .7rem; }\n.mn-addon svg { width: 1rem; height: 1rem; }\n.mn-input-group > .mn-btn { height: 100%; border-radius: 0; box-shadow: none; }\n/* A bare icon as a direct child is a plain leading (or trailing) addon. */\n.mn-input-group > svg { flex: none; align-self: center; width: 1rem; height: 1rem; margin-inline: .75rem -.2rem; color: var(--mn-muted); }\n.mn-input-group > svg:last-child { margin-inline: -.2rem .75rem; }"
    },
    {
      "path": "mian/examples/input-group.html",
      "type": "registry:file",
      "target": "mian/examples/input-group.html",
      "content": "<!-- Text addons -->\n<div class=\"mn-stack\" style=\"max-width:26rem\">\n  <div class=\"mn-input-group\"><span class=\"mn-addon\">https://</span><input class=\"mn-input\" aria-label=\"Website\" placeholder=\"mian.ro\"></div>\n  <div class=\"mn-input-group\"><input class=\"mn-input\" aria-label=\"Price in euro\" placeholder=\"0.00\" inputmode=\"decimal\"><span class=\"mn-addon\">EUR</span></div>\n</div>\n\n<!-- Icon and button -->\n<div class=\"mn-stack\" style=\"max-width:26rem\">\n  <div class=\"mn-input-group\"><span class=\"mn-addon mn-addon-plain\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"7\"/><path d=\"m20 20-3.5-3.5\"/></svg></span><input class=\"mn-input\" type=\"search\" aria-label=\"Search\" placeholder=\"Search components…\"></div>\n  <div class=\"mn-input-group\"><input class=\"mn-input\" type=\"email\" aria-label=\"Email\" placeholder=\"you@company.com\"><button class=\"mn-btn\">Subscribe</button></div>\n</div>"
    }
  ],
  "docs": "MIAN components are HTML + CSS classes, not React components. The styles are already included in mian-base; this item adds the component's CSS section and example markup for reference. Docs: https://mian.ro/components/input-group",
  "meta": {
    "mian": {
      "license": "LicenseRef-MIAN-1.0",
      "requiresJs": false,
      "classes": [
        "mn-input-group",
        "mn-addon",
        "mn-addon-plain",
        "svg (direct child)"
      ],
      "accessibility": [
        "Addons are visual. If an addon carries meaning (a currency, a domain), repeat it in the label or aria-describedby."
      ],
      "intents": [
        "input with prefix",
        "url field",
        "currency input",
        "search with button"
      ]
    }
  }
}
