rizzo-css 0.0.17 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/bin/rizzo-css.js +151 -103
- package/package.json +7 -3
- package/scaffold/astro-minimal/.env.example +3 -0
- package/scaffold/astro-minimal/README.md +36 -0
- package/scaffold/astro-minimal/package.json +13 -0
- package/scaffold/astro-minimal/src/layouts/Layout.astro +28 -0
- package/scaffold/astro-minimal/src/pages/index.astro +10 -0
- package/scaffold/svelte-minimal/.env.example +3 -0
- package/scaffold/svelte-minimal/README.md +37 -0
- package/scaffold/svelte-minimal/package.json +20 -0
- package/scaffold/svelte-minimal/src/app.d.ts +11 -0
- package/scaffold/svelte-minimal/src/app.html +15 -0
- package/scaffold/svelte-minimal/src/routes/+layout.svelte +1 -0
- package/scaffold/svelte-minimal/src/routes/+page.svelte +5 -0
- package/scaffold/svelte-minimal/svelte.config.js +10 -0
- package/scaffold/svelte-minimal/tsconfig.json +11 -0
- package/scaffold/vanilla/README.md +4 -4
- package/scaffold/vanilla/components/accordion.html +8 -0
- package/scaffold/vanilla/components/alert.html +8 -0
- package/scaffold/vanilla/components/avatar.html +8 -0
- package/scaffold/vanilla/components/badge.html +8 -0
- package/scaffold/vanilla/components/breadcrumb.html +8 -0
- package/scaffold/vanilla/components/button.html +8 -0
- package/scaffold/vanilla/components/cards.html +8 -0
- package/scaffold/vanilla/components/copy-to-clipboard.html +8 -0
- package/scaffold/vanilla/components/divider.html +8 -0
- package/scaffold/vanilla/components/dropdown.html +8 -0
- package/scaffold/vanilla/components/forms.html +8 -0
- package/scaffold/vanilla/components/icons.html +8 -0
- package/scaffold/vanilla/components/index.html +8 -0
- package/scaffold/vanilla/components/modal.html +8 -0
- package/scaffold/vanilla/components/navbar.html +8 -0
- package/scaffold/vanilla/components/pagination.html +8 -0
- package/scaffold/vanilla/components/progress-bar.html +8 -0
- package/scaffold/vanilla/components/search.html +8 -0
- package/scaffold/vanilla/components/settings.html +8 -0
- package/scaffold/vanilla/components/spinner.html +8 -0
- package/scaffold/vanilla/components/table.html +8 -0
- package/scaffold/vanilla/components/tabs.html +8 -0
- package/scaffold/vanilla/components/theme-switcher.html +8 -0
- package/scaffold/vanilla/components/toast.html +8 -0
- package/scaffold/vanilla/components/tooltip.html +8 -0
- package/scaffold/vanilla/index.html +8 -0
- package/scaffold/astro-app/README.md +0 -43
- package/scaffold/astro-app/package.json +0 -1
- package/scaffold/astro-app/src/components/Accordion.astro +0 -178
- package/scaffold/astro-app/src/components/Alert.astro +0 -131
- package/scaffold/astro-app/src/components/Avatar.astro +0 -59
- package/scaffold/astro-app/src/components/Badge.astro +0 -24
- package/scaffold/astro-app/src/components/Breadcrumb.astro +0 -61
- package/scaffold/astro-app/src/components/Button.astro +0 -3
- package/scaffold/astro-app/src/components/Card.astro +0 -18
- package/scaffold/astro-app/src/components/Checkbox.astro +0 -38
- package/scaffold/astro-app/src/components/CliCommandTabs.astro +0 -90
- package/scaffold/astro-app/src/components/CodeBlock.astro +0 -393
- package/scaffold/astro-app/src/components/CopyToClipboard.astro +0 -219
- package/scaffold/astro-app/src/components/Divider.astro +0 -37
- package/scaffold/astro-app/src/components/DocsSidebar.astro +0 -51
- package/scaffold/astro-app/src/components/Dropdown.astro +0 -807
- package/scaffold/astro-app/src/components/FormGroup.astro +0 -59
- package/scaffold/astro-app/src/components/FrameworkSwitcher.astro +0 -72
- package/scaffold/astro-app/src/components/Input.astro +0 -59
- package/scaffold/astro-app/src/components/Modal.astro +0 -212
- package/scaffold/astro-app/src/components/Navbar.astro +0 -623
- package/scaffold/astro-app/src/components/PackageInstallTabs.astro +0 -87
- package/scaffold/astro-app/src/components/Pagination.astro +0 -240
- package/scaffold/astro-app/src/components/ProgressBar.astro +0 -65
- package/scaffold/astro-app/src/components/Radio.astro +0 -38
- package/scaffold/astro-app/src/components/Search.astro +0 -1259
- package/scaffold/astro-app/src/components/Select.astro +0 -49
- package/scaffold/astro-app/src/components/Settings.astro +0 -382
- package/scaffold/astro-app/src/components/Spinner.astro +0 -30
- package/scaffold/astro-app/src/components/Table.astro +0 -181
- package/scaffold/astro-app/src/components/Tabs.astro +0 -223
- package/scaffold/astro-app/src/components/Textarea.astro +0 -58
- package/scaffold/astro-app/src/components/ThemeIcon.astro +0 -50
- package/scaffold/astro-app/src/components/ThemeSwitcher.astro +0 -504
- package/scaffold/astro-app/src/components/Toast.astro +0 -30
- package/scaffold/astro-app/src/components/Tooltip.astro +0 -32
- package/scaffold/astro-app/src/components/icons/Brush.astro +0 -10
- package/scaffold/astro-app/src/components/icons/Cake.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Check.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Cherry.astro +0 -11
- package/scaffold/astro-app/src/components/icons/ChevronDown.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Circle.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Close.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Cmd.astro +0 -26
- package/scaffold/astro-app/src/components/icons/Copy.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Eye.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Filter.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Flame.astro +0 -28
- package/scaffold/astro-app/src/components/icons/Flower.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Gear.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Heart.astro +0 -28
- package/scaffold/astro-app/src/components/icons/IceCream.astro +0 -31
- package/scaffold/astro-app/src/components/icons/Leaf.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Lemon.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Moon.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Owl.astro +0 -34
- package/scaffold/astro-app/src/components/icons/Palette.astro +0 -33
- package/scaffold/astro-app/src/components/icons/Rainbow.astro +0 -31
- package/scaffold/astro-app/src/components/icons/Search.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Shield.astro +0 -28
- package/scaffold/astro-app/src/components/icons/Snowflake.astro +0 -34
- package/scaffold/astro-app/src/components/icons/Sort.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Sun.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Sunset.astro +0 -10
- package/scaffold/astro-app/src/components/icons/Zap.astro +0 -9
- package/scaffold/astro-app/src/components/icons/devicons/Astro.astro +0 -53
- package/scaffold/astro-app/src/components/icons/devicons/Bash.astro +0 -34
- package/scaffold/astro-app/src/components/icons/devicons/Css3.astro +0 -29
- package/scaffold/astro-app/src/components/icons/devicons/Git.astro +0 -24
- package/scaffold/astro-app/src/components/icons/devicons/Html5.astro +0 -27
- package/scaffold/astro-app/src/components/icons/devicons/Javascript.astro +0 -25
- package/scaffold/astro-app/src/components/icons/devicons/Nodejs.astro +0 -47
- package/scaffold/astro-app/src/components/icons/devicons/Plaintext.astro +0 -33
- package/scaffold/astro-app/src/components/icons/devicons/React.astro +0 -27
- package/scaffold/astro-app/src/components/icons/devicons/Svelte.astro +0 -25
- package/scaffold/astro-app/src/components/icons/devicons/Vue.astro +0 -26
- package/scaffold/astro-app/src/config/frameworks.ts +0 -26
- package/scaffold/astro-app/src/config/themes.ts +0 -54
- package/scaffold/astro-app/src/layouts/DocsLayout.astro +0 -263
- package/scaffold/astro-app/src/layouts/Layout.astro +0 -41
- package/scaffold/astro-app/src/pages/components/accordion.astro +0 -172
- package/scaffold/astro-app/src/pages/components/alert.astro +0 -250
- package/scaffold/astro-app/src/pages/components/avatar.astro +0 -102
- package/scaffold/astro-app/src/pages/components/badge.astro +0 -119
- package/scaffold/astro-app/src/pages/components/breadcrumb.astro +0 -124
- package/scaffold/astro-app/src/pages/components/button.astro +0 -74
- package/scaffold/astro-app/src/pages/components/cards.astro +0 -247
- package/scaffold/astro-app/src/pages/components/copy-to-clipboard.astro +0 -49
- package/scaffold/astro-app/src/pages/components/divider.astro +0 -74
- package/scaffold/astro-app/src/pages/components/dropdown.astro +0 -394
- package/scaffold/astro-app/src/pages/components/forms.astro +0 -367
- package/scaffold/astro-app/src/pages/components/icons.astro +0 -246
- package/scaffold/astro-app/src/pages/components/modal.astro +0 -152
- package/scaffold/astro-app/src/pages/components/navbar.astro +0 -80
- package/scaffold/astro-app/src/pages/components/pagination.astro +0 -126
- package/scaffold/astro-app/src/pages/components/progress-bar.astro +0 -94
- package/scaffold/astro-app/src/pages/components/search.astro +0 -155
- package/scaffold/astro-app/src/pages/components/settings.astro +0 -78
- package/scaffold/astro-app/src/pages/components/spinner.astro +0 -81
- package/scaffold/astro-app/src/pages/components/table.astro +0 -144
- package/scaffold/astro-app/src/pages/components/tabs.astro +0 -220
- package/scaffold/astro-app/src/pages/components/theme-switcher.astro +0 -69
- package/scaffold/astro-app/src/pages/components/toast.astro +0 -157
- package/scaffold/astro-app/src/pages/components/tooltip.astro +0 -209
- package/scaffold/astro-app/src/pages/components.astro +0 -290
- package/scaffold/astro-app/src/pages/docs/accessibility.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/colors.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/design-system.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/getting-started.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/index.astro +0 -15
- package/scaffold/astro-app/src/pages/docs/themes/[theme].astro +0 -14
- package/scaffold/astro-app/src/pages/docs/theming.astro +0 -10
- package/scaffold/astro-app/src/pages/index.astro +0 -24
- package/scaffold/svelte-app/README.md +0 -39
- package/scaffold/svelte-app/package.json +0 -22
- package/scaffold/svelte-app/src/app.d.ts +0 -28
- package/scaffold/svelte-app/src/app.html +0 -21
- package/scaffold/svelte-app/src/lib/assets/favicon.svg +0 -1
- package/scaffold/svelte-app/src/lib/rizzo/Accordion.svelte +0 -128
- package/scaffold/svelte-app/src/lib/rizzo/Alert.svelte +0 -85
- package/scaffold/svelte-app/src/lib/rizzo/Avatar.svelte +0 -39
- package/scaffold/svelte-app/src/lib/rizzo/Badge.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/Breadcrumb.svelte +0 -49
- package/scaffold/svelte-app/src/lib/rizzo/Button.svelte +0 -27
- package/scaffold/svelte-app/src/lib/rizzo/Card.svelte +0 -17
- package/scaffold/svelte-app/src/lib/rizzo/Checkbox.svelte +0 -37
- package/scaffold/svelte-app/src/lib/rizzo/CopyToClipboard.svelte +0 -79
- package/scaffold/svelte-app/src/lib/rizzo/Divider.svelte +0 -28
- package/scaffold/svelte-app/src/lib/rizzo/Dropdown.svelte +0 -254
- package/scaffold/svelte-app/src/lib/rizzo/FormGroup.svelte +0 -51
- package/scaffold/svelte-app/src/lib/rizzo/Input.svelte +0 -59
- package/scaffold/svelte-app/src/lib/rizzo/Modal.svelte +0 -157
- package/scaffold/svelte-app/src/lib/rizzo/Pagination.svelte +0 -93
- package/scaffold/svelte-app/src/lib/rizzo/ProgressBar.svelte +0 -58
- package/scaffold/svelte-app/src/lib/rizzo/Radio.svelte +0 -38
- package/scaffold/svelte-app/src/lib/rizzo/Select.svelte +0 -51
- package/scaffold/svelte-app/src/lib/rizzo/Spinner.svelte +0 -14
- package/scaffold/svelte-app/src/lib/rizzo/Table.svelte +0 -158
- package/scaffold/svelte-app/src/lib/rizzo/Tabs.svelte +0 -117
- package/scaffold/svelte-app/src/lib/rizzo/Textarea.svelte +0 -59
- package/scaffold/svelte-app/src/lib/rizzo/ThemeIcon.svelte +0 -54
- package/scaffold/svelte-app/src/lib/rizzo/ThemeSwitcher.svelte +0 -315
- package/scaffold/svelte-app/src/lib/rizzo/Toast.svelte +0 -33
- package/scaffold/svelte-app/src/lib/rizzo/Tooltip.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/Check.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/ChevronDown.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Circle.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Close.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Cmd.svelte +0 -27
- package/scaffold/svelte-app/src/lib/rizzo/icons/Copy.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Eye.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Filter.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Gear.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/IceCream.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/icons/Moon.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Owl.svelte +0 -34
- package/scaffold/svelte-app/src/lib/rizzo/icons/Palette.svelte +0 -33
- package/scaffold/svelte-app/src/lib/rizzo/icons/Rainbow.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/icons/Search.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Snowflake.svelte +0 -34
- package/scaffold/svelte-app/src/lib/rizzo/icons/Sort.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Astro.svelte +0 -45
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Bash.svelte +0 -28
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Css3.svelte +0 -23
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Git.svelte +0 -18
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Html5.svelte +0 -21
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Javascript.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Nodejs.svelte +0 -44
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Plaintext.svelte +0 -24
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/React.svelte +0 -21
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/SvelteIcon.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Vue.svelte +0 -20
- package/scaffold/svelte-app/src/lib/rizzo/index.ts +0 -35
- package/scaffold/svelte-app/src/lib/rizzo-docs/CodeBlock.svelte +0 -239
- package/scaffold/svelte-app/src/lib/rizzo-docs/SvelteDocPage.svelte +0 -99
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AccordionDoc.svelte +0 -53
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AlertDoc.svelte +0 -114
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AvatarDoc.svelte +0 -92
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BadgeDoc.svelte +0 -60
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BreadcrumbDoc.svelte +0 -55
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ButtonDoc.svelte +0 -55
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CardsDoc.svelte +0 -173
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComingSoon.svelte +0 -12
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComponentsOverview.svelte +0 -92
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CopyToClipboardDoc.svelte +0 -26
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DividerDoc.svelte +0 -105
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DropdownDoc.svelte +0 -161
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/FormsDoc.svelte +0 -375
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/IconsDoc.svelte +0 -246
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Index.svelte +0 -8
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ModalDoc.svelte +0 -50
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/NavbarDoc.svelte +0 -79
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/PaginationDoc.svelte +0 -44
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ProgressBarDoc.svelte +0 -95
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SearchDoc.svelte +0 -147
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SettingsDoc.svelte +0 -158
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SpinnerDoc.svelte +0 -41
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TableDoc.svelte +0 -116
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TabsDoc.svelte +0 -152
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ThemeSwitcherDoc.svelte +0 -189
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Theming.svelte +0 -6
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ToastDoc.svelte +0 -136
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TooltipDoc.svelte +0 -57
- package/scaffold/svelte-app/src/routes/+layout.svelte +0 -10
- package/scaffold/svelte-app/src/routes/+page.svelte +0 -31
- package/scaffold/svelte-app/src/routes/components/+page.svelte +0 -4
- package/scaffold/svelte-app/src/routes/components/[slug]/+page.svelte +0 -7
- package/scaffold/svelte-app/static/robots.txt +0 -3
- package/scaffold/svelte-app/svelte.config.js +0 -13
- package/scaffold/svelte-app/tsconfig.json +0 -21
- package/scaffold/svelte-app/vite.config.ts +0 -6
- /package/scaffold/{astro-app → astro-minimal}/astro.config.mjs +0 -0
- /package/scaffold/{astro-app → astro-minimal}/public/.gitkeep +0 -0
- /package/scaffold/{astro-app → astro-minimal}/public/favicon.svg +0 -0
- /package/scaffold/{astro-app → astro-minimal}/tsconfig.json +0 -0
- /package/scaffold/{svelte-app → svelte-minimal}/static/.gitkeep +0 -0
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Astro + Rizzo CSS
|
|
2
|
-
|
|
3
|
-
This project was scaffolded with `npx rizzo-css init` when you chose **Create new project** and Astro. This full clone (navbar, docs pages, component showcase) is only generated for new projects; **Add to existing project** only adds the CSS and optional components (you must add the stylesheet `<link>` to your layout yourself; the CLI prints the exact tag).
|
|
4
|
-
|
|
5
|
-
## First-time setup
|
|
6
|
-
|
|
7
|
-
**Install dependencies before running any Astro command:**
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
pnpm install
|
|
11
|
-
# or: npm install
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Then start the dev server:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
pnpm dev
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
The theme selected during `rizzo-css init` is set in `src/layouts/Layout.astro` (`data-theme` on `<html>`) and is used on first load when you have no saved preference in the browser.
|
|
21
|
-
|
|
22
|
-
## Commands
|
|
23
|
-
|
|
24
|
-
- `pnpm dev` — Start dev server
|
|
25
|
-
- `pnpm build` — Build for production
|
|
26
|
-
- `pnpm preview` — Preview production build
|
|
27
|
-
|
|
28
|
-
## Editing the cloned site
|
|
29
|
-
|
|
30
|
-
- **Layout and shell** — `src/layouts/Layout.astro` (navbar, settings, theme script, CSS link). Change the default theme or title placeholders here.
|
|
31
|
-
- **Docs and theme pages** — `src/pages/docs/` (getting-started, design-system, theming, themes, etc.). Each page uses `DocsLayout` and can be edited or replaced; stubs link to the main site for full content.
|
|
32
|
-
- **Component showcase** — `src/pages/components.astro` (index) and `src/pages/components/*.astro`. Edit or add component demos; imports use `../../components/` and `../../layouts/`.
|
|
33
|
-
- **Home page** — `src/pages/index.astro`. Replace the hero and links with your own content.
|
|
34
|
-
- **Components and config** — `src/components/` (Navbar, Settings, Card, etc.) and `src/config/themes.ts`. Customize or remove components; update the nav in `Navbar.astro` if you add/remove routes.
|
|
35
|
-
- **CSS** — The app loads `/css/rizzo.min.css` (from `public/css/`). Replace or add styles as needed.
|
|
36
|
-
|
|
37
|
-
After editing, run `pnpm dev` to preview and `pnpm build` for production.
|
|
38
|
-
|
|
39
|
-
## Other scaffolds
|
|
40
|
-
|
|
41
|
-
From the same **rizzo-css** package: **Vanilla** (`scaffold/vanilla/`) — index + component showcase (components/index.html, components/<slug>.html) with Settings and toast; **Svelte** (`scaffold/svelte-app/`) — SvelteKit app with /components and /components/[slug]. Use `npx rizzo-css init` and pick a different framework to create one of them.
|
|
42
|
-
|
|
43
|
-
Docs: [rizzo-css.vercel.app](https://rizzo-css.vercel.app)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"name":"{{PROJECT_NAME}}","type":"module","version":"0.0.1","scripts":{"dev":"astro dev","build":"astro build","preview":"astro preview"},"devDependencies":{"astro":"^5.17.1"}}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import ChevronDown from './icons/ChevronDown.astro';
|
|
3
|
-
|
|
4
|
-
interface AccordionItem {
|
|
5
|
-
id: string;
|
|
6
|
-
title: string;
|
|
7
|
-
content?: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
interface Props {
|
|
11
|
-
items: AccordionItem[];
|
|
12
|
-
id?: string;
|
|
13
|
-
allowMultiple?: boolean;
|
|
14
|
-
defaultExpanded?: string | string[];
|
|
15
|
-
class?: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const {
|
|
19
|
-
items,
|
|
20
|
-
id,
|
|
21
|
-
allowMultiple = false,
|
|
22
|
-
defaultExpanded,
|
|
23
|
-
class: className = '',
|
|
24
|
-
} = Astro.props;
|
|
25
|
-
|
|
26
|
-
const accordionId = id || `accordion-${Math.random().toString(36).substr(2, 9)}`;
|
|
27
|
-
|
|
28
|
-
const getDefaultExpanded = (): Set<string> => {
|
|
29
|
-
if (defaultExpanded === undefined) return new Set(items[0] ? [items[0].id] : []);
|
|
30
|
-
if (typeof defaultExpanded === 'string') return new Set([defaultExpanded]);
|
|
31
|
-
return new Set(defaultExpanded);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const defaultOpenIds = getDefaultExpanded();
|
|
35
|
-
const classes = `accordion ${className}`.trim();
|
|
36
|
-
let slotIndex = 0;
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
<div class={classes} data-accordion={accordionId} data-allow-multiple={allowMultiple ? 'true' : 'false'}>
|
|
40
|
-
{items.map((item) => {
|
|
41
|
-
const triggerId = `${accordionId}-trigger-${item.id}`;
|
|
42
|
-
const panelId = `${accordionId}-panel-${item.id}`;
|
|
43
|
-
const isExpanded = defaultOpenIds.has(item.id);
|
|
44
|
-
const useSlot = !item.content;
|
|
45
|
-
const currentSlotIndex = useSlot ? slotIndex++ : -1;
|
|
46
|
-
|
|
47
|
-
return (
|
|
48
|
-
<div class="accordion__item" data-accordion-item data-item-id={item.id}>
|
|
49
|
-
<h3 class="accordion__heading">
|
|
50
|
-
<button
|
|
51
|
-
type="button"
|
|
52
|
-
class={`accordion__trigger ${isExpanded ? 'accordion__trigger--expanded' : ''}`}
|
|
53
|
-
id={triggerId}
|
|
54
|
-
aria-expanded={isExpanded}
|
|
55
|
-
aria-controls={panelId}
|
|
56
|
-
data-accordion-trigger
|
|
57
|
-
>
|
|
58
|
-
<span class="accordion__title">{item.title}</span>
|
|
59
|
-
<ChevronDown class="accordion__icon" width={16} height={16} aria-hidden="true" />
|
|
60
|
-
</button>
|
|
61
|
-
</h3>
|
|
62
|
-
<div
|
|
63
|
-
class={`accordion__panel ${isExpanded ? 'accordion__panel--expanded' : ''}`}
|
|
64
|
-
id={panelId}
|
|
65
|
-
role="region"
|
|
66
|
-
aria-labelledby={triggerId}
|
|
67
|
-
hidden={!isExpanded}
|
|
68
|
-
data-accordion-panel
|
|
69
|
-
>
|
|
70
|
-
<div class="accordion__panel-inner">
|
|
71
|
-
{item.content ? (
|
|
72
|
-
<div class="accordion__panel-content" set:html={item.content} />
|
|
73
|
-
) : (
|
|
74
|
-
<div class="accordion__panel-content accordion__panel-slot" data-accordion-slot-index={currentSlotIndex}>
|
|
75
|
-
<!-- Slot content distributed by script -->
|
|
76
|
-
</div>
|
|
77
|
-
)}
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
);
|
|
82
|
-
})}
|
|
83
|
-
<!-- Slot content for distribution (same order as items) -->
|
|
84
|
-
<div class="accordion__slot-content" style="display: none;">
|
|
85
|
-
<slot />
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
|
|
89
|
-
<script is:inline>
|
|
90
|
-
(function initAccordions() {
|
|
91
|
-
function initOne(accordion) {
|
|
92
|
-
if (accordion.dataset.accordionInit === 'true') return;
|
|
93
|
-
accordion.dataset.accordionInit = 'true';
|
|
94
|
-
|
|
95
|
-
const isMultiple = accordion.getAttribute('data-allow-multiple') === 'true';
|
|
96
|
-
const triggers = accordion.querySelectorAll('[data-accordion-trigger]');
|
|
97
|
-
|
|
98
|
-
const setExpanded = (trigger, expanded) => {
|
|
99
|
-
const panelId = trigger.getAttribute('aria-controls');
|
|
100
|
-
const panel = panelId ? accordion.querySelector('#' + CSS.escape(panelId)) : null;
|
|
101
|
-
trigger.setAttribute('aria-expanded', String(expanded));
|
|
102
|
-
trigger.classList.toggle('accordion__trigger--expanded', expanded);
|
|
103
|
-
if (panel) {
|
|
104
|
-
panel.classList.toggle('accordion__panel--expanded', expanded);
|
|
105
|
-
panel.hidden = !expanded;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
const toggle = (trigger) => {
|
|
110
|
-
const expanded = trigger.getAttribute('aria-expanded') === 'true';
|
|
111
|
-
if (!isMultiple) {
|
|
112
|
-
triggers.forEach((t) => setExpanded(t, false));
|
|
113
|
-
}
|
|
114
|
-
setExpanded(trigger, !expanded);
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
triggers.forEach((trigger) => {
|
|
118
|
-
trigger.addEventListener('click', () => toggle(trigger));
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
triggers.forEach((trigger, index) => {
|
|
122
|
-
trigger.addEventListener('keydown', (e) => {
|
|
123
|
-
let targetIndex = index;
|
|
124
|
-
switch (e.key) {
|
|
125
|
-
case 'ArrowDown':
|
|
126
|
-
e.preventDefault();
|
|
127
|
-
targetIndex = Math.min(index + 1, triggers.length - 1);
|
|
128
|
-
break;
|
|
129
|
-
case 'ArrowUp':
|
|
130
|
-
e.preventDefault();
|
|
131
|
-
targetIndex = Math.max(index - 1, 0);
|
|
132
|
-
break;
|
|
133
|
-
case 'Home':
|
|
134
|
-
e.preventDefault();
|
|
135
|
-
targetIndex = 0;
|
|
136
|
-
break;
|
|
137
|
-
case 'End':
|
|
138
|
-
e.preventDefault();
|
|
139
|
-
targetIndex = triggers.length - 1;
|
|
140
|
-
break;
|
|
141
|
-
case 'Enter':
|
|
142
|
-
case ' ':
|
|
143
|
-
e.preventDefault();
|
|
144
|
-
toggle(trigger);
|
|
145
|
-
return;
|
|
146
|
-
default:
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
if (targetIndex !== index) {
|
|
150
|
-
triggers[targetIndex].focus();
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
const slotContent = accordion.querySelector('.accordion__slot-content');
|
|
156
|
-
if (slotContent) {
|
|
157
|
-
const slotChildren = Array.from(slotContent.children);
|
|
158
|
-
slotChildren.forEach((child, index) => {
|
|
159
|
-
const slotPlaceholder = accordion.querySelector('[data-accordion-slot-index="' + index + '"]');
|
|
160
|
-
if (slotPlaceholder) {
|
|
161
|
-
slotPlaceholder.appendChild(child);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
slotContent.remove();
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
function init() {
|
|
169
|
-
document.querySelectorAll('[data-accordion]').forEach(initOne);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
if (document.readyState === 'loading') {
|
|
173
|
-
document.addEventListener('DOMContentLoaded', init);
|
|
174
|
-
} else {
|
|
175
|
-
init();
|
|
176
|
-
}
|
|
177
|
-
})();
|
|
178
|
-
</script>
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import Close from './icons/Close.astro';
|
|
3
|
-
|
|
4
|
-
interface Props {
|
|
5
|
-
variant?: 'success' | 'error' | 'warning' | 'info';
|
|
6
|
-
dismissible?: boolean;
|
|
7
|
-
autoDismiss?: number; // Duration in milliseconds (0 = disabled)
|
|
8
|
-
class?: string;
|
|
9
|
-
id?: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const {
|
|
13
|
-
variant = 'info',
|
|
14
|
-
dismissible = false,
|
|
15
|
-
autoDismiss = 0, // 0 means disabled
|
|
16
|
-
class: className = '',
|
|
17
|
-
id,
|
|
18
|
-
} = Astro.props;
|
|
19
|
-
|
|
20
|
-
const alertId = id || `alert-${Math.random().toString(36).substr(2, 9)}`;
|
|
21
|
-
const variantClass = `alert--${variant}`;
|
|
22
|
-
const classes = `alert ${variantClass} ${className}`.trim();
|
|
23
|
-
|
|
24
|
-
// ARIA labels based on variant
|
|
25
|
-
const ariaLabels = {
|
|
26
|
-
success: 'Success message',
|
|
27
|
-
error: 'Error message',
|
|
28
|
-
warning: 'Warning message',
|
|
29
|
-
info: 'Information message',
|
|
30
|
-
};
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
<div
|
|
34
|
-
class={classes}
|
|
35
|
-
id={alertId}
|
|
36
|
-
role="alert"
|
|
37
|
-
aria-live="polite"
|
|
38
|
-
aria-atomic="true"
|
|
39
|
-
aria-label={ariaLabels[variant]}
|
|
40
|
-
>
|
|
41
|
-
<div class="alert__content">
|
|
42
|
-
<slot />
|
|
43
|
-
</div>
|
|
44
|
-
{dismissible && (
|
|
45
|
-
<button
|
|
46
|
-
type="button"
|
|
47
|
-
class="alert__close"
|
|
48
|
-
aria-label="Dismiss alert"
|
|
49
|
-
data-alert-close
|
|
50
|
-
aria-controls={alertId}
|
|
51
|
-
>
|
|
52
|
-
<Close width={16} height={16} />
|
|
53
|
-
</button>
|
|
54
|
-
)}
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
<script define:vars={{ alertId, autoDismiss }}>
|
|
58
|
-
(function initAlert() {
|
|
59
|
-
const init = () => {
|
|
60
|
-
const alert = document.querySelector(`#${alertId}`);
|
|
61
|
-
if (!alert) {
|
|
62
|
-
if (document.readyState === 'loading') {
|
|
63
|
-
document.addEventListener('DOMContentLoaded', init);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Skip if already initialized
|
|
70
|
-
if (alert.hasAttribute('data-alert-initialized')) return;
|
|
71
|
-
alert.setAttribute('data-alert-initialized', 'true');
|
|
72
|
-
|
|
73
|
-
const closeBtn = alert.querySelector('[data-alert-close]');
|
|
74
|
-
|
|
75
|
-
let closeAlert = () => {
|
|
76
|
-
// Announce dismissal to screen readers
|
|
77
|
-
const announcement = document.createElement('div');
|
|
78
|
-
announcement.setAttribute('role', 'status');
|
|
79
|
-
announcement.setAttribute('aria-live', 'polite');
|
|
80
|
-
announcement.className = 'sr-only';
|
|
81
|
-
announcement.textContent = 'Alert dismissed';
|
|
82
|
-
document.body.appendChild(announcement);
|
|
83
|
-
|
|
84
|
-
// Remove alert with animation
|
|
85
|
-
alert.style.opacity = '0';
|
|
86
|
-
alert.style.transform = 'translateY(-10px)';
|
|
87
|
-
|
|
88
|
-
setTimeout(() => {
|
|
89
|
-
alert.remove();
|
|
90
|
-
if (document.body.contains(announcement)) {
|
|
91
|
-
document.body.removeChild(announcement);
|
|
92
|
-
}
|
|
93
|
-
}, 200);
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
// Auto-dismiss functionality
|
|
97
|
-
if (autoDismiss > 0) {
|
|
98
|
-
const timeoutId = setTimeout(() => {
|
|
99
|
-
closeAlert();
|
|
100
|
-
}, autoDismiss);
|
|
101
|
-
|
|
102
|
-
// Clear timeout if user manually dismisses
|
|
103
|
-
if (closeBtn) {
|
|
104
|
-
const originalClose = closeAlert;
|
|
105
|
-
closeAlert = () => {
|
|
106
|
-
clearTimeout(timeoutId);
|
|
107
|
-
originalClose();
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
if (closeBtn) {
|
|
113
|
-
closeBtn.addEventListener('click', closeAlert);
|
|
114
|
-
|
|
115
|
-
// Keyboard support
|
|
116
|
-
closeBtn.addEventListener('keydown', (e) => {
|
|
117
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
118
|
-
e.preventDefault();
|
|
119
|
-
closeAlert();
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
if (document.readyState === 'loading') {
|
|
126
|
-
document.addEventListener('DOMContentLoaded', init);
|
|
127
|
-
} else {
|
|
128
|
-
init();
|
|
129
|
-
}
|
|
130
|
-
})();
|
|
131
|
-
</script>
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { Image } from 'astro:assets';
|
|
3
|
-
|
|
4
|
-
interface Props {
|
|
5
|
-
/** Image URL (when provided, shows image; otherwise shows initials or placeholder). For remote URLs, add the domain to image.domains in astro.config. */
|
|
6
|
-
src?: string;
|
|
7
|
-
/** Alt text for the image */
|
|
8
|
-
alt?: string;
|
|
9
|
-
/** Full name used to derive initials when no image (e.g. "Jane Doe" → "JD") */
|
|
10
|
-
name?: string;
|
|
11
|
-
/** Override initials when no image (e.g. "JD"); ignored if name is provided */
|
|
12
|
-
initials?: string;
|
|
13
|
-
/** Size */
|
|
14
|
-
size?: 'sm' | 'md' | 'lg';
|
|
15
|
-
/** Shape */
|
|
16
|
-
shape?: 'circle' | 'square';
|
|
17
|
-
class?: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const {
|
|
21
|
-
src,
|
|
22
|
-
alt = '',
|
|
23
|
-
name = '',
|
|
24
|
-
initials: initialsProp = '',
|
|
25
|
-
size = 'md',
|
|
26
|
-
shape = 'circle',
|
|
27
|
-
class: className = '',
|
|
28
|
-
} = Astro.props;
|
|
29
|
-
|
|
30
|
-
function getInitials(name: string): string {
|
|
31
|
-
const parts = name.trim().split(/\s+/).filter(Boolean);
|
|
32
|
-
if (parts.length === 0) return '';
|
|
33
|
-
if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();
|
|
34
|
-
return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const displayInitials = name ? getInitials(name) : initialsProp;
|
|
38
|
-
const sizeClass = `avatar--${size}`;
|
|
39
|
-
const shapeClass = `avatar--${shape}`;
|
|
40
|
-
const classes = `avatar ${sizeClass} ${shapeClass} ${className}`.trim();
|
|
41
|
-
|
|
42
|
-
const sizePixels = size === 'sm' ? 32 : size === 'lg' ? 48 : 40;
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
<span class={classes} role="img" aria-label={alt || name || (displayInitials ? `Avatar: ${displayInitials}` : 'Avatar')}>
|
|
46
|
-
{src ? (
|
|
47
|
-
<Image
|
|
48
|
-
src={src}
|
|
49
|
-
alt={alt || name || ''}
|
|
50
|
-
width={sizePixels}
|
|
51
|
-
height={sizePixels}
|
|
52
|
-
class="avatar__img"
|
|
53
|
-
/>
|
|
54
|
-
) : (
|
|
55
|
-
<span class="avatar__initials" aria-hidden="true">
|
|
56
|
-
{displayInitials || '?'}
|
|
57
|
-
</span>
|
|
58
|
-
)}
|
|
59
|
-
</span>
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
interface Props {
|
|
3
|
-
variant?: 'primary' | 'success' | 'warning' | 'error' | 'info';
|
|
4
|
-
size?: 'sm' | 'md' | 'lg';
|
|
5
|
-
pill?: boolean;
|
|
6
|
-
class?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const {
|
|
10
|
-
variant = 'primary',
|
|
11
|
-
size = 'md',
|
|
12
|
-
pill = false,
|
|
13
|
-
class: className = '',
|
|
14
|
-
} = Astro.props;
|
|
15
|
-
|
|
16
|
-
const variantClass = `badge--${variant}`;
|
|
17
|
-
const sizeClass = `badge--${size}`;
|
|
18
|
-
const pillClass = pill ? 'badge--pill' : '';
|
|
19
|
-
const classes = `badge ${variantClass} ${sizeClass} ${pillClass} ${className}`.trim();
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
<span class={classes}>
|
|
23
|
-
<slot />
|
|
24
|
-
</span>
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import ChevronDown from './icons/ChevronDown.astro';
|
|
3
|
-
|
|
4
|
-
interface BreadcrumbItem {
|
|
5
|
-
label: string;
|
|
6
|
-
href?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
interface Props {
|
|
10
|
-
items: BreadcrumbItem[];
|
|
11
|
-
separator?: 'chevron' | 'slash' | 'arrow' | string;
|
|
12
|
-
class?: string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const {
|
|
16
|
-
items,
|
|
17
|
-
separator = 'chevron',
|
|
18
|
-
class: className = '',
|
|
19
|
-
} = Astro.props;
|
|
20
|
-
|
|
21
|
-
const separatorVariant =
|
|
22
|
-
separator === 'slash' ? 'breadcrumb--slash' :
|
|
23
|
-
separator === 'arrow' ? 'breadcrumb--arrow' :
|
|
24
|
-
'breadcrumb--chevron';
|
|
25
|
-
const classes = `breadcrumb ${separatorVariant} ${className}`.trim();
|
|
26
|
-
|
|
27
|
-
const separatorChar = separator === 'slash' ? '/' : separator === 'arrow' ? '›' : typeof separator === 'string' ? separator : null;
|
|
28
|
-
const useIcon = separator === 'chevron';
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
<nav class={classes} aria-label="Breadcrumb">
|
|
32
|
-
<ol class="breadcrumb__list">
|
|
33
|
-
{items.map((item, index) => {
|
|
34
|
-
const isLast = index === items.length - 1;
|
|
35
|
-
const isCurrent = isLast || !item.href;
|
|
36
|
-
|
|
37
|
-
return (
|
|
38
|
-
<li class={`breadcrumb__item ${isCurrent ? 'breadcrumb__item--current' : ''}`}>
|
|
39
|
-
{isCurrent ? (
|
|
40
|
-
<span class="breadcrumb__current" aria-current="page">
|
|
41
|
-
{item.label}
|
|
42
|
-
</span>
|
|
43
|
-
) : (
|
|
44
|
-
<a class="breadcrumb__link" href={item.href}>
|
|
45
|
-
{item.label}
|
|
46
|
-
</a>
|
|
47
|
-
)}
|
|
48
|
-
{!isLast && (
|
|
49
|
-
<span class="breadcrumb__separator" aria-hidden="true">
|
|
50
|
-
{useIcon ? (
|
|
51
|
-
<ChevronDown class="breadcrumb__separator-icon" width={14} height={14} />
|
|
52
|
-
) : (
|
|
53
|
-
separatorChar ?? '›'
|
|
54
|
-
)}
|
|
55
|
-
</span>
|
|
56
|
-
)}
|
|
57
|
-
</li>
|
|
58
|
-
);
|
|
59
|
-
})}
|
|
60
|
-
</ol>
|
|
61
|
-
</nav>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
interface Props {
|
|
3
|
-
variant?: 'default' | 'elevated' | 'outlined' | 'filled';
|
|
4
|
-
class?: string;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
const {
|
|
8
|
-
variant = 'default',
|
|
9
|
-
class: className = '',
|
|
10
|
-
} = Astro.props;
|
|
11
|
-
|
|
12
|
-
const variantClass = variant !== 'default' ? `card--${variant}` : '';
|
|
13
|
-
const classes = `card ${variantClass} ${className}`.trim();
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
<div class={classes}>
|
|
17
|
-
<slot />
|
|
18
|
-
</div>
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
interface Props {
|
|
3
|
-
id?: string;
|
|
4
|
-
name?: string;
|
|
5
|
-
value?: string;
|
|
6
|
-
checked?: boolean;
|
|
7
|
-
required?: boolean;
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
class?: string;
|
|
10
|
-
ariaDescribedby?: string;
|
|
11
|
-
ariaLabel?: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const {
|
|
15
|
-
id,
|
|
16
|
-
name,
|
|
17
|
-
value,
|
|
18
|
-
checked = false,
|
|
19
|
-
required = false,
|
|
20
|
-
disabled = false,
|
|
21
|
-
class: className = '',
|
|
22
|
-
ariaDescribedby,
|
|
23
|
-
ariaLabel,
|
|
24
|
-
} = Astro.props;
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
<input
|
|
28
|
-
type="checkbox"
|
|
29
|
-
id={id}
|
|
30
|
-
name={name}
|
|
31
|
-
value={value}
|
|
32
|
-
checked={checked}
|
|
33
|
-
required={required}
|
|
34
|
-
disabled={disabled}
|
|
35
|
-
class={className}
|
|
36
|
-
aria-describedby={ariaDescribedby}
|
|
37
|
-
aria-label={ariaLabel}
|
|
38
|
-
/>
|