Updated Build Config
This commit is contained in:
@@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4) `LICENSE` (MIT)
|
||||||
|
|
||||||
|
> Replace the year/name.
|
||||||
|
|
||||||
|
```text
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Your Name
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the “Software”), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
@@ -1,43 +1,19 @@
|
|||||||
# Astro Starter Kit: Minimal
|
# @wrnexus/astro
|
||||||
|
|
||||||
```sh
|
Form + field components for **Astro** with Tailwind utilities and Zod-ready validation hooks.
|
||||||
npm create astro@latest -- --template minimal
|
|
||||||
```
|
|
||||||
|
|
||||||
> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
|
- ✅ `<Form />` — submit handling + client validation plumbing
|
||||||
|
- ✅ `<Field />` — text/email/password/number/textarea/select/date/time/file/checkbox/radio/switch
|
||||||
|
- ✅ `<MultiSelect />` — searchable, checkbox-driven multi select dropdown
|
||||||
|
- ✅ `<Button />`, `<Icon />` helpers
|
||||||
|
- 🎯 Works with your Tailwind tokens (e.g., `bg-primary`, `text-foreground`, `border-border`)
|
||||||
|
- 🧪 Zod integration: pass `schemaName` to `<Form />` and expose a schema as `window[schemaName]`
|
||||||
|
|
||||||
## 🚀 Project Structure
|
---
|
||||||
|
|
||||||
Inside of your Astro project, you'll see the following folders and files:
|
## Installation
|
||||||
|
|
||||||
```text
|
```bash
|
||||||
/
|
pnpm add @wrnexus/astro
|
||||||
├── public/
|
# or
|
||||||
├── src/
|
npm i @wrnexus/astro
|
||||||
│ └── pages/
|
|
||||||
│ └── index.astro
|
|
||||||
└── package.json
|
|
||||||
```
|
|
||||||
|
|
||||||
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
|
|
||||||
|
|
||||||
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
|
|
||||||
|
|
||||||
Any static assets, like images, can be placed in the `public/` directory.
|
|
||||||
|
|
||||||
## 🧞 Commands
|
|
||||||
|
|
||||||
All commands are run from the root of the project, from a terminal:
|
|
||||||
|
|
||||||
| Command | Action |
|
|
||||||
| :------------------------ | :----------------------------------------------- |
|
|
||||||
| `npm install` | Installs dependencies |
|
|
||||||
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
|
||||||
| `npm run build` | Build your production site to `./dist/` |
|
|
||||||
| `npm run preview` | Preview your build locally, before deploying |
|
|
||||||
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
|
|
||||||
| `npm run astro -- --help` | Get help using the Astro CLI |
|
|
||||||
|
|
||||||
## 👀 Want to learn more?
|
|
||||||
|
|
||||||
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
|
|
||||||
+45
-11
@@ -10,28 +10,63 @@
|
|||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.workroot.in/WorkRoot/Astro-UI.git"
|
"url": "https://git.workroot.in/WorkRoot/Astro-UI.git"
|
||||||
},
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://git.workroot.in/WorkRoot/Astro-UI/issues"
|
||||||
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"astro",
|
"astro",
|
||||||
"astro-component",
|
"astro-component",
|
||||||
"astro-component-library",
|
"forms",
|
||||||
"astro-ui-library",
|
"tailwindcss",
|
||||||
"astro-ui"
|
"zod",
|
||||||
|
"ui",
|
||||||
|
"components"
|
||||||
],
|
],
|
||||||
|
"sideEffects": false,
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"types": "./dist/index.d.ts",
|
||||||
|
"default": "./dist/index.js"
|
||||||
|
},
|
||||||
|
"./components/*": "./src/components/*",
|
||||||
|
"./utils/*": "./src/utils/*"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"src",
|
||||||
|
"dist",
|
||||||
|
"README.md",
|
||||||
|
"LICENSE"
|
||||||
|
],
|
||||||
|
"peerDependencies": {
|
||||||
|
"astro": ">=4.0.0",
|
||||||
|
"class-variance-authority": ">=0.7.0",
|
||||||
|
"tailwindcss": ">=3.4.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"tailwindcss": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.17"
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "astro dev",
|
"dev": "astro dev",
|
||||||
"build": "astro build",
|
"build": "node ./scripts/make-dist.mjs",
|
||||||
"preview": "astro preview",
|
"preview": "astro preview",
|
||||||
"astro": "astro",
|
"astro": "astro",
|
||||||
"check": "astro check",
|
"check": "astro check",
|
||||||
"build:prod": "astro check && astro build"
|
"build:prod": "astro check && astro build",
|
||||||
},
|
"prepublishOnly": "npm run verify",
|
||||||
"exports": {
|
"verify": "node -e \"console.log('✅ ready to publish')\"",
|
||||||
"./*": "./src/components/*"
|
"version:patch": "npm version patch -m \"chore(release): %s\"",
|
||||||
|
"version:minor": "npm version minor -m \"chore(release): %s\"",
|
||||||
|
"version:major": "npm version major -m \"chore(release): %s\"",
|
||||||
|
"release:canary": "npm version prerelease --preid=canary && npm publish --tag canary",
|
||||||
|
"release": "npm publish --access public"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tailwindcss/vite": "^4.1.12",
|
"@tailwindcss/vite": "^4.1.12",
|
||||||
"astro": "^5.13.0",
|
|
||||||
"tailwindcss": "^4.1.12",
|
|
||||||
"zod": "^3.25.76"
|
"zod": "^3.25.76"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -39,7 +74,6 @@
|
|||||||
"@iconify/json": "^2.2.373",
|
"@iconify/json": "^2.2.373",
|
||||||
"@iconify/utils": "^3.0.1",
|
"@iconify/utils": "^3.0.1",
|
||||||
"@tailwindcss/forms": "^0.5.10",
|
"@tailwindcss/forms": "^0.5.10",
|
||||||
"class-variance-authority": "^0.7.1",
|
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"tailwind-merge": "^3.3.1"
|
"tailwind-merge": "^3.3.1"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
// scripts/make-dist.mjs
|
||||||
|
import fs from "node:fs";
|
||||||
|
import path from "node:path";
|
||||||
|
|
||||||
|
const distDir = path.resolve("dist");
|
||||||
|
if (!fs.existsSync(distDir)) fs.mkdirSync(distDir, { recursive: true });
|
||||||
|
|
||||||
|
const indexJs = `/* Auto-generated by scripts/make-dist.mjs */
|
||||||
|
export { default as Button } from "../src/components/Button.astro";
|
||||||
|
export { default as Form } from "../src/components/Form.astro";
|
||||||
|
export { default as Field } from "../src/components/Field.astro";
|
||||||
|
export { default as MultiSelect } from "../src/components/MultiSelect.astro";
|
||||||
|
export { default as Icon } from "../src/components/Icon.astro";
|
||||||
|
export { cn } from "../src/utils/cn.js";
|
||||||
|
`;
|
||||||
|
|
||||||
|
const indexDts = `/* Auto-generated types (lightweight) */
|
||||||
|
/// <reference types="astro/client" />
|
||||||
|
export const Button: any;
|
||||||
|
export const Form: any;
|
||||||
|
export const Field: any;
|
||||||
|
export const MultiSelect: any;
|
||||||
|
export const Icon: any;
|
||||||
|
export function cn(...classes: Array<string | number | false | null | undefined>): string;
|
||||||
|
`;
|
||||||
|
|
||||||
|
fs.writeFileSync(path.join(distDir, "index.js"), indexJs, "utf8");
|
||||||
|
fs.writeFileSync(path.join(distDir, "index.d.ts"), indexDts, "utf8");
|
||||||
|
|
||||||
|
console.log("🧱 Wrote dist/index.js and dist/index.d.ts");
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
export { default as Button } from "./components/Button.astro";
|
||||||
|
export { default as Form } from "./components/Form.astro";
|
||||||
|
export { default as Field } from "./components/Field.astro";
|
||||||
|
export { default as MultiSelect } from "./components/MultiSelect.astro";
|
||||||
|
export { default as Icon } from "./components/Icon.astro";
|
||||||
|
|
||||||
|
// Utils
|
||||||
|
export { cn } from "./utils/cn";
|
||||||
Reference in New Issue
Block a user