@tomny-dev/uzi 0.1.13 → 0.2.0-pr.19.65.1.6d1e717
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 +21 -0
- package/dist/components/avatar/Avatar.d.ts +1 -1
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/sidebar-nav/SidebarNav.d.ts +10 -1
- package/dist/components/sidebar-nav/SidebarNav.d.ts.map +1 -1
- package/dist/components/sidebar-nav/SidebarNav.test.d.ts +2 -0
- package/dist/components/sidebar-nav/SidebarNav.test.d.ts.map +1 -0
- package/dist/index.cjs +29 -28
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6466 -7061
- package/dist/index.js.map +1 -1
- package/dist/server.cjs +6 -6
- package/dist/server.cjs.map +1 -1
- package/dist/server.js +26 -17
- package/dist/server.js.map +1 -1
- package/package.json +14 -6
- package/dist/style.css +0 -1
package/README.md
CHANGED
|
@@ -125,6 +125,27 @@ In practice, `uzi` should spend its complexity budget on reusable app scaffoldin
|
|
|
125
125
|
- `showThemeToggle`
|
|
126
126
|
- `themeToggleProps`
|
|
127
127
|
|
|
128
|
+
## Documentation
|
|
129
|
+
|
|
130
|
+
- [Getting Started](docs/getting-started.md) — Installation, setup, and first component
|
|
131
|
+
- [Theming](docs/theming.md) — ThemeProvider, useTheme, accent palettes, CSS overrides
|
|
132
|
+
- [Layout Patterns](docs/guides/layout-patterns.md) — Dashboard, full-width header, center-branded
|
|
133
|
+
- [Form Patterns](docs/guides/form-patterns.md) — Input, Select, MultiSelect, SegmentedToggle patterns
|
|
134
|
+
|
|
135
|
+
## SSR Notes
|
|
136
|
+
|
|
137
|
+
This package bundles CSS inline into the JavaScript output via `vite-plugin-css-injected-by-js`.
|
|
138
|
+
At runtime, a `<style>` tag is injected into the document head so consumers do **not** need
|
|
139
|
+
to import `./styles.css` for client-side rendering.
|
|
140
|
+
|
|
141
|
+
If your app uses SSR (Next.js, Remix, etc.), the injected `<style>` tag won't run on the
|
|
142
|
+
server, so there may be a brief flash of unstyled content on the first client render.
|
|
143
|
+
Consumers who need SSR-safe styles should continue importing the separate stylesheet:
|
|
144
|
+
|
|
145
|
+
```css
|
|
146
|
+
@import "@tomny-dev/uzi/styles.css";
|
|
147
|
+
```
|
|
148
|
+
|
|
128
149
|
## Notes
|
|
129
150
|
|
|
130
151
|
- No Tailwind — components use CSS modules internally
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
3
|
-
export type AvatarSize = "sm" | "md" | "lg";
|
|
3
|
+
export type AvatarSize = "sm" | "md" | "lg" | "xl";
|
|
4
4
|
export type AvatarProps = React.ComponentProps<typeof AvatarPrimitive.Root> & {
|
|
5
5
|
size?: AvatarSize;
|
|
6
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAI1D,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAI1D,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IAC5E,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,IAAW,EACX,GAAG,KAAK,EACT,EAAE,WAAW,2CAUb;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAOpD;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,2CAOvD"}
|
|
@@ -7,6 +7,14 @@ export type SidebarNavItem = {
|
|
|
7
7
|
badge?: ReactNode;
|
|
8
8
|
active?: boolean;
|
|
9
9
|
disabled?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* When `true`, this item uses exact matching (matches its own path and paths starting with `{href}/`)
|
|
12
|
+
* instead of prefix matching. This flag takes precedence over the global `matchStrategy` prop on a
|
|
13
|
+
* per-item basis — even when `matchStrategy="prefix"`, an item with `exact: true` will use exact matching.
|
|
14
|
+
* When `matchStrategy="most-specific"`, exact-flagged items participate in the length-based tiebreaker
|
|
15
|
+
* like all other candidates, provided they pass their own match check first.
|
|
16
|
+
*/
|
|
17
|
+
exact?: boolean;
|
|
10
18
|
title?: string;
|
|
11
19
|
target?: AnchorHTMLAttributes<HTMLAnchorElement>["target"];
|
|
12
20
|
rel?: AnchorHTMLAttributes<HTMLAnchorElement>["rel"];
|
|
@@ -22,6 +30,7 @@ export type SidebarNavProps = {
|
|
|
22
30
|
sections?: SidebarNavSection[];
|
|
23
31
|
currentPath?: string;
|
|
24
32
|
getIsActive?: (item: SidebarNavItem, currentPath?: string) => boolean;
|
|
33
|
+
matchStrategy?: "prefix" | "most-specific";
|
|
25
34
|
onItemClick?: (item: SidebarNavItem) => void;
|
|
26
35
|
header?: ReactNode;
|
|
27
36
|
footer?: ReactNode;
|
|
@@ -32,5 +41,5 @@ export type SidebarNavProps = {
|
|
|
32
41
|
itemClassName?: string;
|
|
33
42
|
sectionClassName?: string;
|
|
34
43
|
};
|
|
35
|
-
export declare function SidebarNav({ items, sections, currentPath, getIsActive, onItemClick, header, footer, ariaLabel, collapsed, iconSize, className, itemClassName, sectionClassName, }: SidebarNavProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
export declare function SidebarNav({ items, sections, currentPath, getIsActive, matchStrategy, onItemClick, header, footer, ariaLabel, collapsed, iconSize, className, itemClassName, sectionClassName, }: SidebarNavProps): import("react/jsx-runtime").JSX.Element;
|
|
36
45
|
//# sourceMappingURL=SidebarNav.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarNav.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar-nav/SidebarNav.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAsB,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"SidebarNav.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar-nav/SidebarNav.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAsB,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAI/F,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3D,GAAG,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACtE,aAAa,CAAC,EAAE,QAAQ,GAAG,eAAe,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAqEF,wBAAgB,UAAU,CAAC,EACzB,KAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAwB,EACxB,WAAW,EACX,MAAM,EACN,MAAM,EACN,SAAgC,EAChC,SAAiB,EACjB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,EAAE,eAAe,2CA2EjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarNav.test.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar-nav/SidebarNav.test.tsx"],"names":[],"mappings":""}
|