@timmbr/ui 1.8.0 → 1.9.0
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/dist/components/NavMenuColumns/NavMenuColumns.d.ts +8 -1
- package/dist/components/NavMenuColumns/NavMenuColumns.d.ts.map +1 -1
- package/dist/components/NavMenuColumns/NavMenuColumns.js +27 -1
- package/dist/components/NavMenuColumns/NavMenuColumns.types.d.ts +18 -0
- package/dist/components/NavMenuColumns/NavMenuColumns.types.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +5 -5
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { NavHeaderItem } from '../NavHeader/NavHeader.types';
|
|
3
|
+
import type { NavMenuColumnsProps, NavMenuData, NavMenuGroup, NavMenuPromoProps, NavMenuTilesProps, ToNavMenuItemsOptions } from './NavMenuColumns.types';
|
|
3
4
|
/**
|
|
4
5
|
* Splits groups, in order, into at most `maxColumns` stacks so the tallest
|
|
5
6
|
* stack is as short as possible (groups never split). Uses up to
|
|
@@ -27,4 +28,10 @@ export declare const NAV_MENU_TILE_PX = 88;
|
|
|
27
28
|
* initial on a muted square.
|
|
28
29
|
*/
|
|
29
30
|
export declare const NavMenuTiles: React.ForwardRefExoticComponent<NavMenuTilesProps & React.RefAttributes<HTMLElement>>;
|
|
31
|
+
/**
|
|
32
|
+
* Turns plain menu data into `NavHeader` items: each opens a popover with
|
|
33
|
+
* `NavMenuColumns` on desktop and, when `tiles` are given, `NavMenuTiles` in
|
|
34
|
+
* the mobile tab panel. The item label itself is not a link.
|
|
35
|
+
*/
|
|
36
|
+
export declare function toNavMenuItems(menus: readonly NavMenuData[], { crossZone, linkComponent, popoverWidth }?: ToNavMenuItemsOptions): NavHeaderItem[];
|
|
30
37
|
//# sourceMappingURL=NavMenuColumns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavMenuColumns.d.ts","sourceRoot":"","sources":["../../../src/components/NavMenuColumns/NavMenuColumns.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NavMenuColumns.d.ts","sourceRoot":"","sources":["../../../src/components/NavMenuColumns/NavMenuColumns.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAiBlE,OAAO,KAAK,EAEV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AA8BhC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,EAAE,EAAE,CA+B9F;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,yFAgE1B,CAAC;AAGF;;;GAGG;AACH,eAAO,MAAM,YAAY,uFA0CxB,CAAC;AAGF,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,uFAuCxB,CAAC;AAGF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,EAAE,SAAiB,EAAE,aAAa,EAAE,YAA0B,EAAE,GAAE,qBAA0B,GAC3F,aAAa,EAAE,CAuBjB"}
|
|
@@ -134,5 +134,31 @@ const NavMenuTiles = React.forwardRef(
|
|
|
134
134
|
}
|
|
135
135
|
);
|
|
136
136
|
NavMenuTiles.displayName = "NavMenuTiles";
|
|
137
|
+
function toNavMenuItems(menus, { crossZone = false, linkComponent, popoverWidth = "container" } = {}) {
|
|
138
|
+
return menus.map((menu) => ({
|
|
139
|
+
id: menu.id,
|
|
140
|
+
label: menu.label,
|
|
141
|
+
popoverWidth,
|
|
142
|
+
content: /* @__PURE__ */ jsx(
|
|
143
|
+
NavMenuColumns,
|
|
144
|
+
{
|
|
145
|
+
"aria-label": typeof menu.label === "string" ? menu.label : void 0,
|
|
146
|
+
groups: menu.groups,
|
|
147
|
+
aside: menu.aside,
|
|
148
|
+
crossZone,
|
|
149
|
+
linkComponent
|
|
150
|
+
}
|
|
151
|
+
),
|
|
152
|
+
mobileContent: menu.tiles ? /* @__PURE__ */ jsx(
|
|
153
|
+
NavMenuTiles,
|
|
154
|
+
{
|
|
155
|
+
"aria-label": typeof menu.label === "string" ? menu.label : void 0,
|
|
156
|
+
items: menu.tiles,
|
|
157
|
+
crossZone,
|
|
158
|
+
linkComponent
|
|
159
|
+
}
|
|
160
|
+
) : void 0
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
137
163
|
|
|
138
|
-
export { NAV_MENU_TILE_PX, NavMenuColumns, NavMenuPromo, NavMenuTiles, packNavMenuGroups };
|
|
164
|
+
export { NAV_MENU_TILE_PX, NavMenuColumns, NavMenuPromo, NavMenuTiles, packNavMenuGroups, toNavMenuItems };
|
|
@@ -81,4 +81,22 @@ export interface NavMenuTilesProps extends Omit<React.HTMLAttributes<HTMLElement
|
|
|
81
81
|
/** Accessible name of the navigation landmark. */
|
|
82
82
|
'aria-label'?: string;
|
|
83
83
|
}
|
|
84
|
+
/** Plain data for one header menu: desktop groups, optional mobile tiles and aside. */
|
|
85
|
+
export interface NavMenuData {
|
|
86
|
+
id: string;
|
|
87
|
+
label: React.ReactNode;
|
|
88
|
+
groups: NavMenuGroup[];
|
|
89
|
+
/** Mobile tab panel tiles; without them the mobile panel shows the groups. */
|
|
90
|
+
tiles?: NavMenuTile[];
|
|
91
|
+
/** Desktop aside, e.g. a `NavMenuPromo`. */
|
|
92
|
+
aside?: React.ReactNode;
|
|
93
|
+
}
|
|
94
|
+
export interface ToNavMenuItemsOptions {
|
|
95
|
+
/** The menu links lead to another zone: plain `<a>` (full navigation). */
|
|
96
|
+
crossZone?: boolean;
|
|
97
|
+
/** Link component for same-zone links (e.g. `next/link`). */
|
|
98
|
+
linkComponent?: React.ComponentType<NavMenuColumnsLinkProps>;
|
|
99
|
+
/** Desktop popover width. Defaults to 'container'. */
|
|
100
|
+
popoverWidth?: 'container' | 'full' | 'dropdown' | number;
|
|
101
|
+
}
|
|
84
102
|
//# sourceMappingURL=NavMenuColumns.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavMenuColumns.types.d.ts","sourceRoot":"","sources":["../../../src/components/NavMenuColumns/NavMenuColumns.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,8DAA8D;IAC9D,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAC9F,mFAAmF;IACnF,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC7D,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IACzF,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC7D,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAC5F,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8FAA8F;IAC9F,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC7D,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"NavMenuColumns.types.d.ts","sourceRoot":"","sources":["../../../src/components/NavMenuColumns/NavMenuColumns.types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -51,7 +51,7 @@ export { Label } from './components/Label/Label.js';
|
|
|
51
51
|
export { LinkButton } from './components/LinkButton/LinkButton.js';
|
|
52
52
|
export { List, ListItem, ListItemAction, ListItemIcon, ListItemText } from './components/List/List.js';
|
|
53
53
|
export { MediaCard } from './components/MediaCard/MediaCard.js';
|
|
54
|
-
export { NAV_MENU_TILE_PX, NavMenuColumns, NavMenuPromo, NavMenuTiles, packNavMenuGroups } from './components/NavMenuColumns/NavMenuColumns.js';
|
|
54
|
+
export { NAV_MENU_TILE_PX, NavMenuColumns, NavMenuPromo, NavMenuTiles, packNavMenuGroups, toNavMenuItems } from './components/NavMenuColumns/NavMenuColumns.js';
|
|
55
55
|
export { NavActions } from './components/NavHeader/subcomponents/NavActions.js';
|
|
56
56
|
export { NavBrand } from './components/NavHeader/subcomponents/NavBrand.js';
|
|
57
57
|
export { NavItems } from './components/NavHeader/subcomponents/NavItems.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timmbr/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "High-performance, Next.js App Router-compatible UI design system components for Timmbr",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"@radix-ui/react-tooltip": "^1.2.16",
|
|
43
43
|
"class-variance-authority": "^0.7.1",
|
|
44
44
|
"input-otp": "^1.5.0",
|
|
45
|
-
"@timmbr/icons": "1.4.0",
|
|
46
45
|
"@timmbr/hooks": "1.0.0",
|
|
47
|
-
"@timmbr/
|
|
48
|
-
"@timmbr/
|
|
49
|
-
"@timmbr/theme": "1.3.0"
|
|
46
|
+
"@timmbr/motion": "1.2.3",
|
|
47
|
+
"@timmbr/utils": "1.5.0",
|
|
48
|
+
"@timmbr/theme": "1.3.0",
|
|
49
|
+
"@timmbr/icons": "1.4.1"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"next": ">=13.0.0 || >=14.0.0 || >=15.0.0 || >=16.0.0",
|