Files
shadcn-ui/apps/v4/public/r/styles/base-nova/spinner-example.json
shadcn 47c47eaed2 feat: add docs for base-ui components (#9304)
* feat: add base and radix docs

* feat: transform code for display

* fix

* fix

* fix

* fix

* fix

* chore: remove claude files

* fix

* fix

* fix

* chore: run format:write

* fix

* feat: add more examples

* fix

* feat: add aspect-ratio

* feat: add avatar

* feat: add badge

* feat: add breadcrumb

* fix

* feat: add button

* fix

* fix

* fix

* feat: add calendar and card

* feat: add carousel

* fix: chart

* feat: add checkbox

* feat: add collapsible

* feat: add combobox

* feat: add command

* feat: add context menu

* feat: add data-table dialog and drawer

* feat: dropdown-menu

* feat: add date-picker

* feat: add empty

* feat: add field and hover-card

* fix: input

* feat: add input

* feat: add input-group

* feat: add input-otp

* feat: add item

* feat: add kbd and label

* feat: add menubar

* feat: add native-select

* feat: add more components

* feat: more components

* feat: more components

* feat: add skeleton, slider and sonner

* feat: add spinner and switch

* feat: add more components

* fix: tabs

* fix: tabs

* feat: add docs for sidebar

* fix

* fix

* fi

* docs: update

* fix: create page

* fix

* fix

* chore: add changelog

* fix
2026-01-20 19:31:38 +04:00

22 lines
4.6 KiB
JSON

{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "spinner-example",
"title": "Spinner",
"registryDependencies": [
"badge",
"button",
"empty",
"field",
"input-group",
"spinner",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/spinner-example.tsx",
"content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/base-nova/components/example\"\nimport { Badge } from \"@/registry/base-nova/ui/badge\"\nimport { Button } from \"@/registry/base-nova/ui/button\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/base-nova/ui/empty\"\nimport { Field, FieldLabel } from \"@/registry/base-nova/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/base-nova/ui/input-group\"\nimport { Spinner } from \"@/registry/base-nova/ui/spinner\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SpinnerExample() {\n return (\n <ExampleWrapper>\n <SpinnerBasic />\n <SpinnerInButtons />\n <SpinnerInBadges />\n <SpinnerInInputGroup />\n <SpinnerInEmpty />\n </ExampleWrapper>\n )\n}\n\nfunction SpinnerBasic() {\n return (\n <Example title=\"Basic\">\n <div className=\"flex items-center gap-6\">\n <Spinner />\n <Spinner className=\"size-6\" />\n </div>\n </Example>\n )\n}\n\nfunction SpinnerInButtons() {\n return (\n <Example title=\"In Buttons\">\n <div className=\"flex flex-wrap items-center gap-4\">\n <Button>\n <Spinner data-icon=\"inline-start\" /> Submit\n </Button>\n <Button disabled>\n <Spinner data-icon=\"inline-start\" /> Disabled\n </Button>\n <Button variant=\"outline\" disabled>\n <Spinner data-icon=\"inline-start\" /> Outline\n </Button>\n <Button variant=\"outline\" size=\"icon\" disabled>\n <Spinner data-icon=\"inline-start\" />\n <span className=\"sr-only\">Loading...</span>\n </Button>\n </div>\n </Example>\n )\n}\n\nfunction SpinnerInBadges() {\n return (\n <Example title=\"In Badges\" className=\"items-center justify-center\">\n <div className=\"flex flex-wrap items-center justify-center gap-4\">\n <Badge>\n <Spinner data-icon=\"inline-start\" />\n Badge\n </Badge>\n <Badge variant=\"secondary\">\n <Spinner data-icon=\"inline-start\" />\n Badge\n </Badge>\n <Badge variant=\"destructive\">\n <Spinner data-icon=\"inline-start\" />\n Badge\n </Badge>\n <Badge variant=\"outline\">\n <Spinner data-icon=\"inline-start\" />\n Badge\n </Badge>\n </div>\n </Example>\n )\n}\n\nfunction SpinnerInInputGroup() {\n return (\n <Example title=\"In Input Group\">\n <Field>\n <FieldLabel htmlFor=\"input-group-spinner\">Input Group</FieldLabel>\n <InputGroup>\n <InputGroupInput id=\"input-group-spinner\" />\n <InputGroupAddon>\n <Spinner />\n </InputGroupAddon>\n </InputGroup>\n </Field>\n </Example>\n )\n}\n\nfunction SpinnerInEmpty() {\n return (\n <Example title=\"In Empty State\" containerClassName=\"lg:col-span-full\">\n <Empty className=\"min-h-[300px]\">\n <EmptyHeader>\n <EmptyMedia variant=\"icon\">\n <Spinner />\n </EmptyMedia>\n <EmptyTitle>No projects yet</EmptyTitle>\n <EmptyDescription>\n You haven&apos;t created any projects yet. Get started by creating\n your first project.\n </EmptyDescription>\n </EmptyHeader>\n <EmptyContent>\n <div className=\"flex gap-2\">\n <Button render={<a href=\"#\" />} nativeButton={false}>\n Create project\n </Button>\n <Button variant=\"outline\">Import project</Button>\n </div>\n <Button\n variant=\"link\"\n render={<a href=\"#\" />}\n nativeButton={false}\n className=\"text-muted-foreground\"\n >\n Learn more{\" \"}\n <IconPlaceholder\n lucide=\"ArrowRightIcon\"\n tabler=\"IconArrowRight\"\n hugeicons=\"ArrowRight02Icon\"\n phosphor=\"ArrowRightIcon\"\n remixicon=\"RiArrowRightLine\"\n />\n </Button>\n </EmptyContent>\n </Empty>\n </Example>\n )\n}\n",
"type": "registry:example"
}
],
"type": "registry:example"
}