panelize 0.0.0-stage → 0.1.1

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/llms.txt ADDED
@@ -0,0 +1,51 @@
1
+ # Panelize
2
+
3
+ > A React layout kit. Named boxes and type are the map of the screen. `createPanelizeTheme` + `PanelizeProvider` + `usePanelizeTheme` standardize paint. Forms are bonus.
4
+
5
+ This file is for agents **building apps and custom components with Panelize**. Maintainers of this repo: [CONTRIBUTING.md](CONTRIBUTING.md) and [AGENTS.md](AGENTS.md). After `npm install panelize`, read `node_modules/panelize/llms.txt` (or the package export `panelize/llms.txt`). One-file dump: [llms-full.txt](llms-full.txt).
6
+
7
+ Import from `'panelize'`. Wrap the host once with `PanelizeProvider`. Do not take over the host’s styled-components `ThemeProvider`. Do not set `html` / `body` from the library. Host CSS must give the shell a height (`html`, `body`, `#root { height: 100% }` for a filled app).
8
+
9
+ ## How to compose (strict)
10
+
11
+ Read [docs/composition.md](docs/composition.md) before writing JSX. Summary:
12
+
13
+ - `Panels` is the **outer shell** of a view. Direct children are only `Panel` (one `Panel` is allowed).
14
+ - `Panel` is a **section**. It may contain tracks, `Div`, type, controls, nested `Panels`, and custom components. It must not contain a stray `Row`, `Col`, or `Cell`.
15
+ - Pairing is bidirectional. `Row` exists only as a direct child of `Rows`. `Col` only under `Cols`. `Cell` only under `Grid`. `Panel` only under `Panels`.
16
+ - `Rows` / `Cols` / `Grid` need **two or more** of their item. One band → put it in the `Panel` or a `Div`.
17
+ - The **wrapper** owns place (`alignX` / `alignY`, `flex`, `fill`, `gap`, size). Nested controls and custom components do not position themselves.
18
+ - Visible copy goes in `Text` / `Heading` / `Span` / `TextLink` / `Label` so it inherits the nearest `Panel` text tokens.
19
+
20
+ The library does not warn at runtime if a host ignores this. Follow it anyway — that is how the tree stays readable.
21
+
22
+ ## Core
23
+
24
+ - [Composition](docs/composition.md): pairing, who positions, good and bad trees, which primitive to use
25
+ - [Recipes](docs/recipes.md): copyable page, sidebar, centered card, form, dashboard grid, header/body/footer
26
+ - [Components](docs/components.md): every export, element, parent, and value API on one page
27
+ - Prop reference: `node_modules/panelize/dist/index.d.ts` (every prop is documented in JSDoc; read the type, not a guess)
28
+ - [Shell (`Panels` / `Panel`)](docs/shell.md): page vs split, `fill`, `scroll`, `horizontal`, `stack`
29
+ - [Layout vocabulary](docs/layout.md): `fill` vs `flex`, `gap`, `wrap`, `stack`, `Div`, `Grid`
30
+ - [Controls](docs/controls.md): per-control behavior notes (chrome, defaults, edge cases)
31
+ - [Accessibility](docs/accessibility.md): names, structure, keyboard, roles, focus
32
+ - [Text](docs/text.md): `Text`, `Heading`, `Span`, `TextLink`, `Label`
33
+ - [Theme and hooks](docs/theme.md): `createPanelizeTheme`, `PanelizeProvider`, `usePanelizeTheme`
34
+
35
+ ## Bonus
36
+
37
+ - [Forms, buttons, chips](docs/forms.md): controls on top of the layout core, value ownership, `Select` / `MultiSelect`, validation
38
+
39
+ ## Full context
40
+
41
+ - [llms-full.txt](llms-full.txt): this index, every `docs/` page, and the theme keys in one file
42
+
43
+ ## Host setup files
44
+
45
+ - [examples/cursor-rule.mdc](examples/cursor-rule.mdc): drop into a host app’s `.cursor/rules/`
46
+ - [examples/AGENTS.md](examples/AGENTS.md): drop into a host app’s `AGENTS.md`
47
+
48
+ ## Human docs
49
+
50
+ - [README.md](README.md): install, quick start, fonts, goals, usage, vocabulary, caveats
51
+ - [examples/panelize.theme.md](examples/panelize.theme.md): every key `createPanelizeTheme` accepts
package/package.json CHANGED
@@ -1,6 +1,107 @@
1
1
  {
2
2
  "name": "panelize",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.1",
4
+ "description": "A React layout kit: named panels, tracks, grid, and type, themed with createPanelizeTheme and PanelizeProvider.",
5
+ "keywords": [
6
+ "react",
7
+ "layout",
8
+ "styled-components",
9
+ "ui",
10
+ "design-system",
11
+ "theme",
12
+ "typescript"
13
+ ],
14
+ "homepage": "https://github.com/jayzizzle/panelize#readme",
15
+ "bugs": {
16
+ "url": "https://github.com/jayzizzle/panelize/issues"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/jayzizzle/panelize.git"
21
+ },
22
+ "license": "MIT",
23
+ "author": "Jon Zamora",
24
+ "type": "module",
25
+ "sideEffects": false,
26
+ "main": "./dist/panelize.cjs",
27
+ "module": "./dist/panelize.es.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "import": {
32
+ "types": "./dist/index.d.ts",
33
+ "default": "./dist/panelize.es.js"
34
+ },
35
+ "require": {
36
+ "types": "./dist/index.d.cts",
37
+ "default": "./dist/panelize.cjs"
38
+ }
39
+ },
40
+ "./llms.txt": "./llms.txt",
41
+ "./llms-full.txt": "./llms-full.txt",
42
+ "./docs/*": "./docs/*",
43
+ "./examples/*": "./examples/*",
44
+ "./package.json": "./package.json"
45
+ },
46
+ "files": [
47
+ "dist",
48
+ "llms.txt",
49
+ "llms-full.txt",
50
+ "docs",
51
+ "README.md",
52
+ "LICENSE",
53
+ "CHANGELOG.md",
54
+ "examples"
55
+ ],
56
+ "publishConfig": {
57
+ "access": "public"
58
+ },
59
+ "scripts": {
60
+ "dev": "vite build --watch",
61
+ "build": "npm run clean && tsc -b && vite build && npm run build:types",
62
+ "lint": "eslint .",
63
+ "preview": "vite preview",
64
+ "format": "prettier --write .",
65
+ "llms-full": "node scripts/build-llms-full.mjs",
66
+ "prepublishOnly": "npm run llms-full && npm run check",
67
+ "typecheck": "tsc -b",
68
+ "test": "vitest run",
69
+ "test:dist": "node scripts/check-dist.mjs",
70
+ "check": "npm run lint && npx prettier --check . && npm run test && npm run build && npm run test:dist && npm run test:types",
71
+ "test:types": "attw --pack . --entrypoints .",
72
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
73
+ "build:types": "node scripts/build-types.mjs"
74
+ },
75
+ "peerDependencies": {
76
+ "react": "^19.0.0",
77
+ "react-dom": "^19.0.0",
78
+ "styled-components": "^6.0.0"
79
+ },
80
+ "devDependencies": {
81
+ "@arethetypeswrong/cli": "^0.18.5",
82
+ "@eslint/js": "^10.0.1",
83
+ "@testing-library/jest-dom": "^7.0.1",
84
+ "@testing-library/react": "^16.3.3",
85
+ "@types/node": "^24.13.3",
86
+ "@types/react": "^19.2.18",
87
+ "@types/react-dom": "^19.2.7",
88
+ "@vitejs/plugin-react": "^6.1.1",
89
+ "dts-bundle-generator": "^9.5.1",
90
+ "eslint": "^10.12.0",
91
+ "eslint-config-prettier": "^10.1.8",
92
+ "eslint-plugin-no-relative-import-paths": "^1.7.3",
93
+ "eslint-plugin-react-hooks": "^7.1.1",
94
+ "eslint-plugin-react-refresh": "^0.5.6",
95
+ "eslint-plugin-simple-import-sort": "^14.0.0",
96
+ "globals": "^17.13.0",
97
+ "jsdom": "^30.1.2",
98
+ "prettier": "^3.9.9",
99
+ "react": "^19.2.8",
100
+ "react-dom": "^19.2.8",
101
+ "styled-components": "^6.5.3",
102
+ "typescript": "~6.0.2",
103
+ "typescript-eslint": "^8.71.1",
104
+ "vite": "^8.3.0",
105
+ "vitest": "^5.0.3"
106
+ }
107
+ }