create-quadrokit 0.3.2 → 0.3.4

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.
Files changed (92) hide show
  1. package/README.md +1 -1
  2. package/package.json +3 -3
  3. package/template-common/.agents/skills/quadro-paged-collection/SKILL.md +33 -0
  4. package/template-common/.agents/skills/vercel-composition-patterns/AGENTS.md +946 -0
  5. package/template-common/.agents/skills/vercel-composition-patterns/README.md +60 -0
  6. package/template-common/.agents/skills/vercel-composition-patterns/SKILL.md +89 -0
  7. package/template-common/.agents/skills/vercel-composition-patterns/rules/_sections.md +29 -0
  8. package/template-common/.agents/skills/vercel-composition-patterns/rules/_template.md +24 -0
  9. package/template-common/.agents/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  10. package/template-common/.agents/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
  11. package/template-common/.agents/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  12. package/template-common/.agents/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
  13. package/template-common/.agents/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
  14. package/template-common/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  15. package/template-common/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
  16. package/template-common/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  17. package/template-common/.agents/skills/vercel-react-best-practices/AGENTS.md +3750 -0
  18. package/template-common/.agents/skills/vercel-react-best-practices/README.md +123 -0
  19. package/template-common/.agents/skills/vercel-react-best-practices/SKILL.md +148 -0
  20. package/template-common/.agents/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  21. package/template-common/.agents/skills/vercel-react-best-practices/rules/_template.md +28 -0
  22. package/template-common/.agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  23. package/template-common/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  24. package/template-common/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  25. package/template-common/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  26. package/template-common/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  27. package/template-common/.agents/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  28. package/template-common/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
  29. package/template-common/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  30. package/template-common/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  31. package/template-common/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  32. package/template-common/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
  33. package/template-common/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  34. package/template-common/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  35. package/template-common/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  36. package/template-common/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  37. package/template-common/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  38. package/template-common/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  39. package/template-common/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  40. package/template-common/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  41. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  42. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  43. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  44. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  45. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  46. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  47. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  48. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  49. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  50. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  51. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  52. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
  53. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  54. package/template-common/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  55. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  56. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  57. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  58. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  59. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  60. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  61. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  62. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  63. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  64. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  65. package/template-common/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  66. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  67. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  68. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  69. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  70. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  71. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  72. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  73. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  74. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  75. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  76. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  77. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  78. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  79. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  80. package/template-common/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  81. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  82. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  83. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  84. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  85. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  86. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
  87. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
  88. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  89. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  90. package/template-common/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  91. package/template-common/.agents/skills/web-design-guidelines/SKILL.md +39 -0
  92. package/template-common/skills-lock.json +20 -0
package/README.md CHANGED
@@ -32,7 +32,7 @@ Interactive mode: run without `--template` / `--dir` / `--name` to be prompted.
32
32
  ## What it does
33
33
 
34
34
  1. Copies the chosen template from `create-quadrokit/templates/<name>` when installed from npm, or `packages/templates/<name>` when you run the CLI from the monorepo (skips `node_modules`, `dist`, `.quadrokit`, lockfiles).
35
- 2. Overlays **`template-common/`** (shared across all templates): `.env.example`, `vite.config.ts`, `tailwind.config.ts`, `tsconfig*.json`, `postcss.config.js`, `biome.json`, `src/vite-env.d.ts`, `.cursor/rules/commitlint-conventional.mdc`, etc. In the monorepo, `packages/templates/*` receives the same overlay via `bun run sync:template-common` (root **postinstall** and `bun run build`); those paths are gitignored under `packages/templates/` so only `template-common/` is the source of truth in git.
35
+ 2. Overlays **`template-common/`** (shared across all templates): `.env.example`, `vite.config.ts`, `tailwind.config.ts`, `tsconfig*.json`, `postcss.config.js`, `biome.json`, `src/vite-env.d.ts`, `.cursor/rules/commitlint-conventional.mdc`, `.agents/skills/**`, `skills-lock.json`, etc. In the monorepo, `packages/templates/*` receives the same overlay via `bun run sync:template-common` (root **postinstall** and `bun run build`); those paths are gitignored under `packages/templates/` so only `template-common/` is the source of truth in git.
36
36
  3. Rewrites `src/lib/quadro-client.ts` to import from `@quadrokit/generated/client.gen.js` (alias in `vite.config.ts` / `tsconfig.app.json`).
37
37
  4. Removes `@quadrokit/sample-client` and rewrites any `workspace:…` protocol on `@quadrokit/*` deps to published semver ranges. **`quadrokitScaffoldVersions`** in this package’s `package.json` pins `^` ranges for `@quadrokit/client` and `@quadrokit/ui` (fallback: `^<create-quadrokit version>`). Use **`--keep-workspace`** only for development inside the QuadroKit repo.
38
38
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-quadrokit",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Scaffold a QuadroKit Vite + React app from a template",
5
5
  "type": "module",
6
6
  "bin": "./dist/index.mjs",
@@ -26,7 +26,7 @@
26
26
  "typescript": "^5.9.3"
27
27
  },
28
28
  "quadrokitScaffoldVersions": {
29
- "@quadrokit/client": "^0.3.2",
30
- "@quadrokit/ui": "^0.3.2"
29
+ "@quadrokit/client": "^0.3.4",
30
+ "@quadrokit/ui": "^0.3.4"
31
31
  }
32
32
  }
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: quadro-paged-collection
3
+ description: >-
4
+ Prefer `useQuadroPagedCollection` from `@quadrokit/ui` for client-side paginated
5
+ Quadro REST lists (page, page size, next/prev, loading and error). Use when
6
+ building tables or lists with pagination, infinite scroll that maps to pages,
7
+ or any UI that loads a slice of a `.all()` collection from the generated
8
+ `quadro` client.
9
+ ---
10
+
11
+ # Quadro paginated collections
12
+
13
+ ## Default pattern
14
+
15
+ For **paginated** data backed by the generated Quadro client (`@/lib/quadro-client`), use **`useQuadroPagedCollection`** from `@quadrokit/ui`. It wires `page` / `pageSize` to the collection API and returns **`rows`**, **`hasNext`**, **`loading`**, and **`error`**.
16
+
17
+ Do **not** hand-roll `useEffect` + `useState` to call `.all()` with skip/limit unless there is a documented reason the hook cannot be used.
18
+
19
+ ## How to wire it
20
+
21
+ 1. Import `useQuadroPagedCollection` from `@quadrokit/ui` and `CollectionHandle` from `@quadrokit/client/runtime` when you need typed handles.
22
+ 2. Import the **`quadro`** singleton from `@/lib/quadro-client`.
23
+ 3. Keep **`page`** and **`pageSize`** in React state (reset page when page size changes).
24
+ 4. Pass an **`all`** function that forwards to the appropriate `quadro.<Table>.all({ ...opts, select: [...] })` and returns a **`CollectionHandle<Row>`** (cast if needed so the row type matches your `select` projection).
25
+
26
+ ## Reference implementation
27
+
28
+ See `src/pages/SampleDataPage.tsx` for a full example: agency list with row type matching `select`, prev/next buttons, and `hasNext` for the next button.
29
+
30
+ ## When not to use
31
+
32
+ - **Non-paginated** loads: a single `.all()` or `.one()` without paging UX can call the client directly or use a simpler pattern.
33
+ - **Server-only** routes: this hook is for client components; server data fetching follows your SSR/RSC patterns instead.