hazo_ui 6.15.0 → 6.16.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/CHANGE_LOG.md CHANGED
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## v6.16.0 (2026-10-15)
9
+
10
+ ### Added — Tailwind v3 preset + responsive AppHeader
11
+
12
+ - **`hazo_ui/tailwind-preset`** — Tailwind CSS v3 preset that maps all
13
+ hazo_theme Tier-2 semantic tokens (background, primary, sidebar, etc.)
14
+ and Tier-3 chrome tokens (navbar, footer, footer-public, footer-app,
15
+ toolbar) to `hsl(var(--token) / <alpha-value>)` color utilities. Also
16
+ provides `borderRadius` mappings for `--radius`. Consumers add
17
+ `presets: [require('hazo_ui/tailwind-preset')]` to their
18
+ `tailwind.config` instead of hand-rolling 100+ color entries.
19
+
20
+ - **Responsive `AppHeader`** — below the `md:` breakpoint the navItems
21
+ slot collapses behind a hamburger button that opens a slide-up drawer
22
+ (vaul). Actions (profile menu, etc.) remain visible at all widths. No
23
+ API change; existing consumers get mobile support for free.
24
+
8
25
  ## v6.15.0 (2026-10-13)
9
26
 
10
27
  ### Added — `useHazoEvent` hook
package/dist/index.cjs CHANGED
@@ -877,6 +877,8 @@ var en_default = {
877
877
  "locale_picker.change_language": "Change language",
878
878
  "app_logo.alt_fallback": "Logo",
879
879
  "app_header.aria_label": "Application header",
880
+ "app_header.menu_label": "Menu",
881
+ "app_header.nav_title": "Navigation",
880
882
  "skeleton.loading_content": "Loading content",
881
883
  "spinner.loading": "Loading",
882
884
  "spinner.loading_text": "Loading...",
@@ -12527,6 +12529,7 @@ function Logo({
12527
12529
  }
12528
12530
  function AppHeader({ identity, homeHref, navItems, actions, className }) {
12529
12531
  const t = useHazoUiT();
12532
+ const [drawerOpen, setDrawerOpen] = React27__namespace.useState(false);
12530
12533
  return /* @__PURE__ */ jsxRuntime.jsxs(
12531
12534
  "header",
12532
12535
  {
@@ -12546,9 +12549,34 @@ function AppHeader({ identity, homeHref, navItems, actions, className }) {
12546
12549
  href: homeHref
12547
12550
  }
12548
12551
  ),
12549
- navItems
12552
+ navItems && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden md:flex items-center", children: navItems })
12550
12553
  ] }),
12551
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-4", children: actions })
12554
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
12555
+ actions,
12556
+ navItems && /* @__PURE__ */ jsxRuntime.jsxs(Drawer, { open: drawerOpen, onOpenChange: setDrawerOpen, children: [
12557
+ /* @__PURE__ */ jsxRuntime.jsx(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
12558
+ "button",
12559
+ {
12560
+ className: "md:hidden rounded-md p-1.5 hover:bg-navbar-active/10",
12561
+ "aria-label": t("app_header.menu_label"),
12562
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Menu, { className: "h-5 w-5" })
12563
+ }
12564
+ ) }),
12565
+ /* @__PURE__ */ jsxRuntime.jsxs(DrawerContent, { children: [
12566
+ /* @__PURE__ */ jsxRuntime.jsx(DrawerTitle, { className: "sr-only", children: t("app_header.nav_title") }),
12567
+ /* @__PURE__ */ jsxRuntime.jsx(
12568
+ "div",
12569
+ {
12570
+ className: "p-4 [&_nav]:flex-col [&_nav]:gap-2 [&_nav]:items-stretch",
12571
+ onClick: (e) => {
12572
+ if (e.target.closest("a")) setDrawerOpen(false);
12573
+ },
12574
+ children: navItems
12575
+ }
12576
+ )
12577
+ ] })
12578
+ ] })
12579
+ ] })
12552
12580
  ]
12553
12581
  }
12554
12582
  );