@zukhruf/shadcn 0.3.24 → 0.3.26

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 CHANGED
@@ -61,6 +61,18 @@ The theme is the values of a set of CSS variables, for example `--primary`, `--b
61
61
 
62
62
  The preset is fixed. The class strings of each component contain the preset, for example the rounded corners and the spacing of the dialog. Thus an app cannot change the preset. An app changes only the theme. See [ADR 0004](./docs/adr/0004-the-components-use-base-ui-and-the-nova-preset.md).
63
63
 
64
+ ## The open state of the sidebar
65
+
66
+ `SidebarProvider` keeps its open state in a cookie. `SIDEBAR_COOKIE_NAME` is the name of that cookie. Use it to read the open state of the sidebar on the server, and give the value to `defaultOpen`:
67
+
68
+ ```tsx
69
+ import { SIDEBAR_COOKIE_NAME, SidebarProvider } from '@zukhruf/shadcn';
70
+
71
+ const defaultOpen = cookies.get(SIDEBAR_COOKIE_NAME)?.value !== 'false';
72
+
73
+ <SidebarProvider defaultOpen={defaultOpen}>{children}</SidebarProvider>;
74
+ ```
75
+
64
76
  ## Composition
65
77
 
66
78
  Base UI uses the `render` prop where Radix UI uses `asChild`. The `render` prop sets the element that the component renders.
@@ -132,7 +144,7 @@ This package does not export `cn`. Each symbol has one home ([zukhruf ADR 0001](
132
144
 
133
145
  ## One entry
134
146
 
135
- The package has one entry, `@zukhruf/shadcn`. It exports all components and hooks. There are no subpaths such as `@zukhruf/shadcn/button`.
147
+ The package has one entry, `@zukhruf/shadcn`. It exports all components, all hooks and the hand-written modules, for example `SIDEBAR_COOKIE_NAME`. There are no subpaths such as `@zukhruf/shadcn/button`.
136
148
 
137
149
  - A development server and plain Node.js load all components and their dependencies.
138
150
  - A production bundle has only the components that the app uses. The `sideEffects` field of `package.json` lets the bundler remove the others.
@@ -168,6 +180,7 @@ src/
168
180
  hooks/ generated: the hooks that the components use
169
181
  lib/ generated: the helpers that the components use
170
182
  index.ts generated: the entry
183
+ hand-written/ written by hand: the exports that the generated source does not give
171
184
  theme.css generated: the CSS variables and the dark variant; imports shadcn/tailwind.css
172
185
  styles.css written by hand: imports theme.css, registers dist, holds the patches
173
186
  components.json the configuration of the shadcn CLI
@@ -188,7 +201,7 @@ The sync does these steps, in this order:
188
201
 
189
202
  1. It resets `theme.css` to one line: `@import "tw-animate-css";`.
190
203
  2. It runs `shadcn add index`, then `shadcn add --all`.
191
- 3. It writes `src/index.ts`: one `export *` line for each component and each hook.
204
+ 3. It writes `src/index.ts`: one `export *` line for each component, each hook and each hand-written module.
192
205
  4. It formats the generated source with Prettier.
193
206
 
194
207
  Known facts about the sync:
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The name of the cookie in which `SidebarProvider` keeps its open state.
3
+ * A server reads this cookie and gives its value to `defaultOpen`. The
4
+ * generated `sidebar.tsx` does not export its own constant, so this module
5
+ * repeats the name, and `sidebar-cookie.test.ts` fails when the two differ.
6
+ */
7
+ export declare const SIDEBAR_COOKIE_NAME = "sidebar_state";
8
+ //# sourceMappingURL=sidebar-cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-cookie.d.ts","sourceRoot":"","sources":["../../src/hand-written/sidebar-cookie.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The name of the cookie in which `SidebarProvider` keeps its open state.
3
+ * A server reads this cookie and gives its value to `defaultOpen`. The
4
+ * generated `sidebar.tsx` does not export its own constant, so this module
5
+ * repeats the name, and `sidebar-cookie.test.ts` fails when the two differ.
6
+ */
7
+ export const SIDEBAR_COOKIE_NAME = 'sidebar_state';
8
+ //# sourceMappingURL=sidebar-cookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-cookie.js","sourceRoot":"","sources":["../../src/hand-written/sidebar-cookie.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC"}
package/dist/index.d.ts CHANGED
@@ -61,6 +61,7 @@ export * from './components/toggle-group.tsx';
61
61
  export * from './components/toggle.tsx';
62
62
  export * from './components/tooltip.tsx';
63
63
  export * from './components/trace.tsx';
64
+ export * from './hand-written/sidebar-cookie.ts';
64
65
  export * from './hooks/use-highlighted-code.ts';
65
66
  export * from './hooks/use-mobile.ts';
66
67
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -61,6 +61,7 @@ export * from "./components/toggle-group.js";
61
61
  export * from "./components/toggle.js";
62
62
  export * from "./components/tooltip.js";
63
63
  export * from "./components/trace.js";
64
+ export * from "./hand-written/sidebar-cookie.js";
64
65
  export * from "./hooks/use-highlighted-code.js";
65
66
  export * from "./hooks/use-mobile.js";
66
67
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA4B,CAAC;AAC3C,cAAc,8BAA+B,CAAC;AAC9C,cAAc,uBAAwB,CAAC;AACvC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,4BAA6B,CAAC;AAC5C,cAAc,wBAAyB,CAAC;AACxC,cAAc,uBAAwB,CAAC;AACvC,cAAc,4BAA6B,CAAC;AAC5C,cAAc,wBAAyB,CAAC;AACxC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,sBAAuB,CAAC;AACtC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,uBAAwB,CAAC;AACvC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,4BAA6B,CAAC;AAC5C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,0BAA2B,CAAC;AAC1C,cAAc,yBAA0B,CAAC;AACzC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,2BAA4B,CAAC;AAC3C,cAAc,wBAAyB,CAAC;AACxC,cAAc,+BAAgC,CAAC;AAC/C,cAAc,uBAAwB,CAAC;AACvC,cAAc,uBAAwB,CAAC;AACvC,cAAc,4BAA6B,CAAC;AAC5C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,2BAA4B,CAAC;AAC3C,cAAc,uBAAwB,CAAC;AACvC,cAAc,sBAAuB,CAAC;AACtC,cAAc,qBAAsB,CAAC;AACrC,cAAc,uBAAwB,CAAC;AACvC,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,kCAAmC,CAAC;AAClD,cAAc,yBAA0B,CAAC;AACzC,cAAc,+BAAgC,CAAC;AAC/C,cAAc,iCAAkC,CAAC;AACjD,cAAc,4BAA6B,CAAC;AAC5C,cAAc,yBAA0B,CAAC;AACzC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,+BAAgC,CAAC;AAC/C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,2BAA4B,CAAC;AAC3C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,wBAAyB,CAAC;AACxC,cAAc,2BAA4B,CAAC;AAC3C,cAAc,uBAAwB,CAAC;AACvC,cAAc,yBAA0B,CAAC;AACzC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,wBAAyB,CAAC;AACxC,cAAc,uBAAwB,CAAC;AACvC,cAAc,sBAAuB,CAAC;AACtC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,uBAAwB,CAAC;AACvC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,uBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA4B,CAAC;AAC3C,cAAc,8BAA+B,CAAC;AAC9C,cAAc,uBAAwB,CAAC;AACvC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,4BAA6B,CAAC;AAC5C,cAAc,wBAAyB,CAAC;AACxC,cAAc,uBAAwB,CAAC;AACvC,cAAc,4BAA6B,CAAC;AAC5C,cAAc,wBAAyB,CAAC;AACxC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,sBAAuB,CAAC;AACtC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,uBAAwB,CAAC;AACvC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,4BAA6B,CAAC;AAC5C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,0BAA2B,CAAC;AAC1C,cAAc,yBAA0B,CAAC;AACzC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,2BAA4B,CAAC;AAC3C,cAAc,wBAAyB,CAAC;AACxC,cAAc,+BAAgC,CAAC;AAC/C,cAAc,uBAAwB,CAAC;AACvC,cAAc,uBAAwB,CAAC;AACvC,cAAc,4BAA6B,CAAC;AAC5C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,2BAA4B,CAAC;AAC3C,cAAc,uBAAwB,CAAC;AACvC,cAAc,sBAAuB,CAAC;AACtC,cAAc,qBAAsB,CAAC;AACrC,cAAc,uBAAwB,CAAC;AACvC,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,kCAAmC,CAAC;AAClD,cAAc,yBAA0B,CAAC;AACzC,cAAc,+BAAgC,CAAC;AAC/C,cAAc,iCAAkC,CAAC;AACjD,cAAc,4BAA6B,CAAC;AAC5C,cAAc,yBAA0B,CAAC;AACzC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,+BAAgC,CAAC;AAC/C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,2BAA4B,CAAC;AAC3C,cAAc,6BAA8B,CAAC;AAC7C,cAAc,wBAAyB,CAAC;AACxC,cAAc,2BAA4B,CAAC;AAC3C,cAAc,uBAAwB,CAAC;AACvC,cAAc,yBAA0B,CAAC;AACzC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,wBAAyB,CAAC;AACxC,cAAc,uBAAwB,CAAC;AACvC,cAAc,sBAAuB,CAAC;AACtC,cAAc,0BAA2B,CAAC;AAC1C,cAAc,uBAAwB,CAAC;AACvC,cAAc,8BAA+B,CAAC;AAC9C,cAAc,wBAAyB,CAAC;AACxC,cAAc,yBAA0B,CAAC;AACzC,cAAc,uBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zukhruf/shadcn",
3
- "version": "0.3.24",
3
+ "version": "0.3.26",
4
4
  "description": "Every shadcn/ui component for Base UI with the nova preset, as one package: import the components from one entry and the styles from one stylesheet.",
5
5
  "license": "MIT",
6
6
  "repository": {