@umami/shiso 0.24.0 → 0.26.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/index.css CHANGED
@@ -77,34 +77,32 @@ pre.CodeBlock_container__YmFmN code {
77
77
  }
78
78
 
79
79
  /* virtual-css:css:72ce2cfbba7b635b2ff1a5f4f5eeabf3 */
80
- .SideNav_nav__YTUyY {
81
- height: max-content;
80
+ .SideNav_nav__MDQ3Z {
82
81
  overflow-y: auto;
83
82
  }
84
- .SideNav_nav__YTUyY.SideNav_sticky__NGNiY {
83
+ .SideNav_nav__MDQ3Z.SideNav_sticky__ZjQ5Y {
85
84
  position: sticky;
86
- top: 30px;
87
85
  }
88
- .SideNav_nav__YTUyY .SideNav_item__ZjUyN {
86
+ .SideNav_nav__MDQ3Z .SideNav_item__ZWU3Z {
89
87
  color: var(--font-color-muted);
90
88
  padding: 0;
91
89
  border-radius: 0;
92
90
  border-left: var(--border-size-1) solid var(--border-color);
93
91
  }
94
- .SideNav_nav__YTUyY .SideNav_item__ZjUyN a {
92
+ .SideNav_nav__MDQ3Z .SideNav_item__ZWU3Z a {
95
93
  color: currentColor;
96
94
  width: 100%;
97
95
  padding: var(--padding-y) var(--padding-x);
98
96
  text-decoration: none;
99
97
  }
100
- .SideNav_nav__YTUyY .SideNav_item__ZjUyN a:hover {
98
+ .SideNav_nav__MDQ3Z .SideNav_item__ZWU3Z a:hover {
101
99
  color: var(--primary-color);
102
100
  }
103
- .SideNav_nav__YTUyY .SideNav_item__ZjUyN.SideNav_selected__OWI5N {
101
+ .SideNav_nav__MDQ3Z .SideNav_item__ZWU3Z.SideNav_selected__NDgxN {
104
102
  color: var(--font-color);
105
103
  border-color: var(--primary-color);
106
104
  }
107
- .SideNav_items__OThkZ header {
105
+ .SideNav_items__MzBhY header {
108
106
  padding: var(--padding-y) 0;
109
107
  }
110
108
 
package/dist/index.js CHANGED
@@ -182,7 +182,7 @@ function PageLinks({ items = [], className, ...props }) {
182
182
  if (!items?.length) {
183
183
  return null;
184
184
  }
185
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_zen5.Column, { ...props, gap: "3", minWidth: "240px", className: (0, import_classnames.default)(PageLinks_default.links, className), children: [
185
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_zen5.Box, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_zen5.Column, { gap: "3", minWidth: "240px", className: (0, import_classnames.default)(PageLinks_default.links, className), children: [
186
186
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_zen5.Text, { size: "2", weight: "bold", children: "On this page" }),
187
187
  items.map(({ name, id, size }) => {
188
188
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
@@ -197,38 +197,55 @@ function PageLinks({ items = [], className, ...props }) {
197
197
  id
198
198
  );
199
199
  })
200
- ] });
200
+ ] }) });
201
201
  }
202
202
 
203
203
  // src/components/SideNav.tsx
204
+ var import_react7 = require("react");
204
205
  var import_react_zen6 = require("@umami/react-zen");
205
206
  var import_classnames2 = __toESM(require("classnames"));
206
207
  var import_navigation = require("next/navigation");
207
208
  var import_link = __toESM(require("next/link"));
208
209
 
209
210
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/SideNav.module.css
210
- var SideNav_default = { "nav": "SideNav_nav__YTUyY", "sticky": "SideNav_sticky__NGNiY", "item": "SideNav_item__ZjUyN", "selected": "SideNav_selected__OWI5N", "items": "SideNav_items__OThkZ" };
211
+ var SideNav_default = { "nav": "SideNav_nav__MDQ3Z", "sticky": "SideNav_sticky__ZjQ5Y", "item": "SideNav_item__ZWU3Z", "selected": "SideNav_selected__NDgxN", "items": "SideNav_items__MzBhY" };
211
212
 
212
213
  // src/components/SideNav.tsx
213
214
  var import_jsx_runtime7 = require("react/jsx-runtime");
214
- function SideNav({ tabs, navigation, isSticky, className, ...props }) {
215
+ function SideNav({ tabs, navigation, isSticky, className, style, ...props }) {
215
216
  const pathname = (0, import_navigation.usePathname)();
216
217
  const tab = tabs?.find(({ url, id }) => id !== "docs" ? pathname.startsWith(url) : false);
217
218
  const menu = navigation[tab?.id || "docs"];
218
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_zen6.Box, { ...props, className: (0, import_classnames2.default)(SideNav_default.nav, isSticky && SideNav_default.sticky, className), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_zen6.List, { items: navigation, "aria-label": "nav", children: menu.map(({ section, pages }) => {
219
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_zen6.ListSection, { title: section, className: SideNav_default.items, children: pages.map(({ label: text, url }, index) => {
220
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
221
- import_react_zen6.ListItem,
222
- {
223
- className: (0, import_classnames2.default)(SideNav_default.item, {
224
- [SideNav_default.selected]: url === pathname
225
- }),
226
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_link.default, { href: url, prefetch: false, children: text })
227
- },
228
- index
229
- );
230
- }) }, section);
231
- }) }) });
219
+ const [height, setHeight] = (0, import_react7.useState)();
220
+ (0, import_react7.useEffect)(() => {
221
+ const rect = document.getElementById("shiso_docs_sidenav")?.getBoundingClientRect();
222
+ if (rect) {
223
+ setHeight(`${window.innerHeight - rect.top - 10}px`);
224
+ }
225
+ }, []);
226
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
227
+ import_react_zen6.Box,
228
+ {
229
+ ...props,
230
+ id: "shiso_docs_sidenav",
231
+ className: (0, import_classnames2.default)(SideNav_default.nav, isSticky && SideNav_default.sticky, className),
232
+ style: { ...style, height },
233
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_zen6.List, { items: navigation, "aria-label": "nav", children: menu.map(({ section, pages }) => {
234
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_zen6.ListSection, { title: section, className: SideNav_default.items, children: pages.map(({ label: text, url }, index) => {
235
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
236
+ import_react_zen6.ListItem,
237
+ {
238
+ className: (0, import_classnames2.default)(SideNav_default.item, {
239
+ [SideNav_default.selected]: url === pathname
240
+ }),
241
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_link.default, { href: url, prefetch: false, children: text })
242
+ },
243
+ index
244
+ );
245
+ }) }, section);
246
+ }) })
247
+ }
248
+ );
232
249
  }
233
250
 
234
251
  // src/components/TopNav.tsx
@@ -310,7 +327,7 @@ function parseContent(content, config = {}) {
310
327
  function Docs() {
311
328
  const { content, config } = useShiso();
312
329
  if (!content) {
313
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_zen9.Heading, { size: "6", children: "Page not found" });
330
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_zen9.Heading, { children: "Page not found" });
314
331
  }
315
332
  const { tabs, navigation, code, meta, section, next, prev, anchors } = parseContent(
316
333
  content,
@@ -326,7 +343,7 @@ function Docs() {
326
343
  xl: "block"
327
344
  };
328
345
  const menuDisplay = {
329
- default: "flex",
346
+ default: "block",
330
347
  lg: "none",
331
348
  xl: "none"
332
349
  };
@@ -339,7 +356,16 @@ function Docs() {
339
356
  gap: "6",
340
357
  columns: { xs: "1fr", sm: "1fr", md: "1fr", lg: "240px 1fr 240px", xl: "240px 1fr 240px" },
341
358
  children: [
342
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SideNav, { display: navDisplay, tabs, navigation, isSticky: true }),
359
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
360
+ SideNav,
361
+ {
362
+ display: navDisplay,
363
+ tabs,
364
+ navigation,
365
+ style: { top },
366
+ isSticky: true
367
+ }
368
+ ),
343
369
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
344
370
  ContentArea,
345
371
  {
package/dist/index.mjs CHANGED
@@ -64,7 +64,7 @@ function Blog({ content }) {
64
64
  // src/components/Docs.tsx
65
65
  import {
66
66
  Grid,
67
- Box as Box3,
67
+ Box as Box4,
68
68
  Heading as Heading2,
69
69
  Row as Row2,
70
70
  MobileMenuButton
@@ -126,7 +126,7 @@ function useShiso() {
126
126
 
127
127
  // src/components/PageLinks.tsx
128
128
  import { useEffect, useState as useState2 } from "react";
129
- import { Column as Column3, Text } from "@umami/react-zen";
129
+ import { Column as Column3, Text, Box } from "@umami/react-zen";
130
130
  import classNames from "classnames";
131
131
 
132
132
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/PageLinks.module.css
@@ -152,7 +152,7 @@ function PageLinks({ items = [], className, ...props }) {
152
152
  if (!items?.length) {
153
153
  return null;
154
154
  }
155
- return /* @__PURE__ */ jsxs4(Column3, { ...props, gap: "3", minWidth: "240px", className: classNames(PageLinks_default.links, className), children: [
155
+ return /* @__PURE__ */ jsx6(Box, { ...props, children: /* @__PURE__ */ jsxs4(Column3, { gap: "3", minWidth: "240px", className: classNames(PageLinks_default.links, className), children: [
156
156
  /* @__PURE__ */ jsx6(Text, { size: "2", weight: "bold", children: "On this page" }),
157
157
  items.map(({ name, id, size }) => {
158
158
  return /* @__PURE__ */ jsx6(
@@ -167,38 +167,55 @@ function PageLinks({ items = [], className, ...props }) {
167
167
  id
168
168
  );
169
169
  })
170
- ] });
170
+ ] }) });
171
171
  }
172
172
 
173
173
  // src/components/SideNav.tsx
174
- import { Box, List, ListItem, ListSection } from "@umami/react-zen";
174
+ import { useEffect as useEffect2, useState as useState3 } from "react";
175
+ import { Box as Box2, List, ListItem, ListSection } from "@umami/react-zen";
175
176
  import classNames2 from "classnames";
176
177
  import { usePathname } from "next/navigation";
177
178
  import Link from "next/link";
178
179
 
179
180
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/SideNav.module.css
180
- var SideNav_default = { "nav": "SideNav_nav__YTUyY", "sticky": "SideNav_sticky__NGNiY", "item": "SideNav_item__ZjUyN", "selected": "SideNav_selected__OWI5N", "items": "SideNav_items__OThkZ" };
181
+ var SideNav_default = { "nav": "SideNav_nav__MDQ3Z", "sticky": "SideNav_sticky__ZjQ5Y", "item": "SideNav_item__ZWU3Z", "selected": "SideNav_selected__NDgxN", "items": "SideNav_items__MzBhY" };
181
182
 
182
183
  // src/components/SideNav.tsx
183
184
  import { jsx as jsx7 } from "react/jsx-runtime";
184
- function SideNav({ tabs, navigation, isSticky, className, ...props }) {
185
+ function SideNav({ tabs, navigation, isSticky, className, style, ...props }) {
185
186
  const pathname = usePathname();
186
187
  const tab = tabs?.find(({ url, id }) => id !== "docs" ? pathname.startsWith(url) : false);
187
188
  const menu = navigation[tab?.id || "docs"];
188
- return /* @__PURE__ */ jsx7(Box, { ...props, className: classNames2(SideNav_default.nav, isSticky && SideNav_default.sticky, className), children: /* @__PURE__ */ jsx7(List, { items: navigation, "aria-label": "nav", children: menu.map(({ section, pages }) => {
189
- return /* @__PURE__ */ jsx7(ListSection, { title: section, className: SideNav_default.items, children: pages.map(({ label: text, url }, index) => {
190
- return /* @__PURE__ */ jsx7(
191
- ListItem,
192
- {
193
- className: classNames2(SideNav_default.item, {
194
- [SideNav_default.selected]: url === pathname
195
- }),
196
- children: /* @__PURE__ */ jsx7(Link, { href: url, prefetch: false, children: text })
197
- },
198
- index
199
- );
200
- }) }, section);
201
- }) }) });
189
+ const [height, setHeight] = useState3();
190
+ useEffect2(() => {
191
+ const rect = document.getElementById("shiso_docs_sidenav")?.getBoundingClientRect();
192
+ if (rect) {
193
+ setHeight(`${window.innerHeight - rect.top - 10}px`);
194
+ }
195
+ }, []);
196
+ return /* @__PURE__ */ jsx7(
197
+ Box2,
198
+ {
199
+ ...props,
200
+ id: "shiso_docs_sidenav",
201
+ className: classNames2(SideNav_default.nav, isSticky && SideNav_default.sticky, className),
202
+ style: { ...style, height },
203
+ children: /* @__PURE__ */ jsx7(List, { items: navigation, "aria-label": "nav", children: menu.map(({ section, pages }) => {
204
+ return /* @__PURE__ */ jsx7(ListSection, { title: section, className: SideNav_default.items, children: pages.map(({ label: text, url }, index) => {
205
+ return /* @__PURE__ */ jsx7(
206
+ ListItem,
207
+ {
208
+ className: classNames2(SideNav_default.item, {
209
+ [SideNav_default.selected]: url === pathname
210
+ }),
211
+ children: /* @__PURE__ */ jsx7(Link, { href: url, prefetch: false, children: text })
212
+ },
213
+ index
214
+ );
215
+ }) }, section);
216
+ }) })
217
+ }
218
+ );
202
219
  }
203
220
 
204
221
  // src/components/TopNav.tsx
@@ -216,7 +233,7 @@ function TopNav({ tabs }) {
216
233
  }
217
234
 
218
235
  // src/components/ContentArea.tsx
219
- import { Heading, Box as Box2, Text as Text2, Row, Icon as Icon2, Icons as Icons2 } from "@umami/react-zen";
236
+ import { Heading, Box as Box3, Text as Text2, Row, Icon as Icon2, Icons as Icons2 } from "@umami/react-zen";
220
237
 
221
238
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/ContentArea.module.css
222
239
  var ContentArea_default = { "content": "ContentArea_content__NDVhM" };
@@ -225,11 +242,11 @@ var ContentArea_default = { "content": "ContentArea_content__NDVhM" };
225
242
  import Link3 from "next/link";
226
243
  import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
227
244
  function ContentArea({ section, title, description, code, next, prev }) {
228
- return /* @__PURE__ */ jsxs5(Box2, { flexGrow: 1, children: [
245
+ return /* @__PURE__ */ jsxs5(Box3, { flexGrow: 1, children: [
229
246
  section && /* @__PURE__ */ jsx9(Text2, { color: "primary", weight: "bold", children: section }),
230
247
  title && /* @__PURE__ */ jsx9(Heading, { size: "2", as: "h1", children: title }),
231
248
  description && /* @__PURE__ */ jsx9(Text2, { color: "muted", children: description }),
232
- /* @__PURE__ */ jsx9(Box2, { className: ContentArea_default.content, children: /* @__PURE__ */ jsx9(Markdown, { code }) }),
249
+ /* @__PURE__ */ jsx9(Box3, { className: ContentArea_default.content, children: /* @__PURE__ */ jsx9(Markdown, { code }) }),
233
250
  /* @__PURE__ */ jsxs5(Row, { justifyContent: "space-between", children: [
234
251
  /* @__PURE__ */ jsx9(NavigationButton, { ...prev, isPrev: true }),
235
252
  /* @__PURE__ */ jsx9(NavigationButton, { ...next })
@@ -242,7 +259,7 @@ var NavigationButton = ({
242
259
  isPrev
243
260
  }) => {
244
261
  if (!url || !label) {
245
- return /* @__PURE__ */ jsx9(Box2, {});
262
+ return /* @__PURE__ */ jsx9(Box3, {});
246
263
  }
247
264
  return /* @__PURE__ */ jsx9(Link3, { href: url, children: /* @__PURE__ */ jsxs5(Row, { alignItems: "center", gap: "3", marginY: "3", children: [
248
265
  isPrev && /* @__PURE__ */ jsx9(Icon2, { size: "sm", rotate: 180, children: /* @__PURE__ */ jsx9(Icons2.Chevron, {}) }),
@@ -280,7 +297,7 @@ function parseContent(content, config = {}) {
280
297
  function Docs() {
281
298
  const { content, config } = useShiso();
282
299
  if (!content) {
283
- return /* @__PURE__ */ jsx10(Heading2, { size: "6", children: "Page not found" });
300
+ return /* @__PURE__ */ jsx10(Heading2, { children: "Page not found" });
284
301
  }
285
302
  const { tabs, navigation, code, meta, section, next, prev, anchors } = parseContent(
286
303
  content,
@@ -296,11 +313,11 @@ function Docs() {
296
313
  xl: "block"
297
314
  };
298
315
  const menuDisplay = {
299
- default: "flex",
316
+ default: "block",
300
317
  lg: "none",
301
318
  xl: "none"
302
319
  };
303
- return /* @__PURE__ */ jsxs6(Box3, { flexGrow: "1", children: [
320
+ return /* @__PURE__ */ jsxs6(Box4, { flexGrow: "1", children: [
304
321
  /* @__PURE__ */ jsx10(Row2, { display: menuDisplay, justifyContent: "flex-end", children: /* @__PURE__ */ jsx10(MobileMenuButton, { children: /* @__PURE__ */ jsx10(SideNav, { tabs, navigation }) }) }),
305
322
  tabs && /* @__PURE__ */ jsx10(TopNav, { tabs }),
306
323
  /* @__PURE__ */ jsxs6(
@@ -309,7 +326,16 @@ function Docs() {
309
326
  gap: "6",
310
327
  columns: { xs: "1fr", sm: "1fr", md: "1fr", lg: "240px 1fr 240px", xl: "240px 1fr 240px" },
311
328
  children: [
312
- /* @__PURE__ */ jsx10(SideNav, { display: navDisplay, tabs, navigation, isSticky: true }),
329
+ /* @__PURE__ */ jsx10(
330
+ SideNav,
331
+ {
332
+ display: navDisplay,
333
+ tabs,
334
+ navigation,
335
+ style: { top },
336
+ isSticky: true
337
+ }
338
+ ),
313
339
  /* @__PURE__ */ jsx10(
314
340
  ContentArea,
315
341
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umami/shiso",
3
- "version": "0.24.0",
3
+ "version": "0.26.0",
4
4
  "description": "A content layer for Next.js",
5
5
  "homepage": "https://umami.is/shiso",
6
6
  "repository": {