@umami/shiso 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/CHANGELOG.md +17 -8
- package/dist/chunks/App.js +3 -3
- package/dist/chunks/docs.js +19 -6
- package/dist/components.js +2 -2
- package/dist/entry-client.js +1 -1
- package/dist/entry-server.js +1 -1
- package/package.json +1 -1
- package/src/components/Layout.tsx +1 -1
- package/src/components/docs/Link.tsx +14 -0
- package/src/components/docs/index.ts +1 -0
- package/src/pages/StandalonePage.tsx +1 -1
- package/types/components.d.ts +6 -1
- package/vite.config.ts +7 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,15 +5,12 @@ All notable changes to `@umami/shiso` are documented here. This project follows
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
-
### Fixed
|
|
9
|
-
|
|
10
|
-
- Dev server: allow serving raw assets (fonts, images) from Shiso's real
|
|
11
|
-
install location when the framework is linked from outside the project's
|
|
12
|
-
workspace root (`link:`/`file:` installs previously returned 403 for
|
|
13
|
-
bundled font files).
|
|
14
|
-
|
|
15
8
|
### Added
|
|
16
9
|
|
|
10
|
+
- `Link` export from `@umami/shiso/components`: a client-side navigation link
|
|
11
|
+
bound to Shiso's router, for TSX standalone pages and other app code.
|
|
12
|
+
Importing `react-router` directly from app code creates a second router
|
|
13
|
+
instance without Shiso's context, so use this instead.
|
|
17
14
|
- Public `@umami/shiso/components` entry point for importing Shiso's built-in
|
|
18
15
|
content components from TSX standalone pages and other React modules.
|
|
19
16
|
- TSX standalone pages under `content/pages`. Component pages retain Shiso's
|
|
@@ -24,7 +21,6 @@ All notable changes to `@umami/shiso` are documented here. This project follows
|
|
|
24
21
|
descendants) are excluded from `.docs-markdown` typography styles — headings,
|
|
25
22
|
lists, tables, links, and spacing rules — so embedded UI components render
|
|
26
23
|
with their own styles. Guards use `:not(:where(…))` and add no specificity.
|
|
27
|
-
|
|
28
24
|
- Per-page `search: false` frontmatter to hide the header search control and
|
|
29
25
|
disable its keyboard shortcut on selected docs or standalone pages.
|
|
30
26
|
- Link tabs: a navigation tab may define `href` instead of `groups`/`pages`/
|
|
@@ -32,6 +28,19 @@ All notable changes to `@umami/shiso` are documented here. This project follows
|
|
|
32
28
|
navigation. Internal hrefs route client-side and highlight when active;
|
|
33
29
|
external URLs open in a new browser tab.
|
|
34
30
|
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- Let standalone page content expand through the layout's flex chain so short
|
|
34
|
+
pages keep the footer at the bottom of the viewport.
|
|
35
|
+
- Bundle `@umami/shiso` entry points into the SSR build (`ssr.noExternal`) so
|
|
36
|
+
TSX standalone pages that import `@umami/shiso/components` prerender
|
|
37
|
+
correctly; previously Node hit the unresolved project-time virtual import
|
|
38
|
+
`@/lib/icon-registry.generated` inside the published chunks.
|
|
39
|
+
- Dev server: allow serving raw assets (fonts, images) from Shiso's real
|
|
40
|
+
install location when the framework is linked from outside the project's
|
|
41
|
+
workspace root (`link:`/`file:` installs previously returned 403 for
|
|
42
|
+
bundled font files).
|
|
43
|
+
|
|
35
44
|
## 2.0.0 - 2026-08-21
|
|
36
45
|
|
|
37
46
|
### Breaking
|
package/dist/chunks/App.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as POPUP_COLLISION_AVOIDANCE, $n as
|
|
1
|
+
import { $ as POPUP_COLLISION_AVOIDANCE, $n as isHTMLElement, $t as itemPress, A as popupStoreSelectors, An as ARROW_UP, B as useSyncedFloatingRootContext, Bn as EMPTY_ARRAY, C as pressableTriggerOpenStateMapping, Cn as isTypeableCombobox, Ct as COMPOSITE_KEYS, D as useFocus, Dn as ARROW_DOWN, E as useHoverFloatingInteraction, En as getTarget, F as setPopupOpenState, Fn as useId$1, G as FloatingNode, Gn as ownerDocument, Gt as useValueAsRef, H as useDismiss, Hn as useMergedRefs, Ht as getIcon, I as useImplicitActiveTrigger, In as useTimeout, J as useFloatingParentNodeId, Jn as useIsoLayoutEffect, Jt as createChangeEventDetails, K as FloatingTree, Kn as useCompositeRootContext, Kt as useCompositeListItem, L as useOpenStateTransitions, Ln as Button, M as FOCUSABLE_POPUP_PROPS, Mn as webkit, N as PopupHandleAttachment, Nn as mac, O as usePopupHandleStore, On as ARROW_LEFT, P as attachPreventUnmountOnClose, Pn as useBaseUiId, Q as DROPDOWN_COLLISION_AVOIDANCE, Qn as getWindow, Qt as imperativeAction, R as usePopupInteractionProps, Rn as cn, Rt as Badge, S as popupTransitionStateMapping, Sn as getFloatingFocusElement, T as useHoverReferenceInteraction, Tn as contains, Tt as useCompositeItem, U as useClick, Un as useButton, Ut as useOpenChangeComplete, V as ReactStore, Vn as EMPTY_OBJECT, Vt as resolveIcon, W as FloatingFocusManager, Wn as dispatchClickWithModifiers, Wt as useAnimationsFinished, X as FloatingTreeStore, Xn as useRefWithInit, Xt as escapeKey, Y as useFloatingTree, Yn as useStableCallback, Yt as cancelOpen, Z as FloatingPortal, Zn as getParentNode, Zt as focusOut, _n as isIndexOutOfListBounds, _t as Collapsible, a as DialogTitle, an as triggerPress, b as getDisabledMountTransitionStyles, bn as isVirtualPointerEvent, c as useOpenInteractionType, cn as useDirection, cr as Route, d as useScrollLock, dn as getTabbableBeforeElement, dr as useLocation, en as listNavigation, er as isLastTraversableNode, et as enqueueFocus, f as DialogPortal$1, fn as isOutsideEvent, fr as useNavigate, g as DialogBackdrop, gn as isElementVisible, h as DialogClose, hn as getMinListIndex, ht as renderInlineMarkdown, i as DialogContent$1, in as triggerHover, ir as createLucideIcon, j as PopupTriggerMap, jn as jsdom, k as createInitialPopupStoreState, kn as ARROW_RIGHT, l as DialogTitle$1, ln as getNextTabbable, m as DialogPopup, mn as getMaxListIndex, n as ZoomableImage, nn as siblingOpen, nr as ChevronRight, nt as fastComponent, o as DialogTrigger, on as CompositeList, or as Link, p as InternalBackdrop, pn as findNonDisabledListIndex, q as useFloatingNodeId, qn as mergeProps$1, qt as useAnimationFrame, r as Dialog$1, rn as triggerFocus, rr as Check, rt as fastComponentRef, s as DialogTrigger$1, sn as addEventListener, sr as Navigate, t as docs_exports, tn as outsidePress, tr as X$1, tt as FocusGuard, u as DialogRoot, un as getTabbableAfterElement, ur as Routes, v as TooltipProvider, vn as isListIndexDisabled, vt as CollapsibleContent, w as safePolygon, wn as activeElement, wt as inertValue, x as useAnchorPositioning, xn as stopEvent, y as usePositioner, yn as isVirtualClick, yt as CollapsibleTrigger, z as useTriggerDataForwarding, zn as useRenderElement } from "./docs.js";
|
|
2
2
|
import { n as highlightTerms } from "./search.js";
|
|
3
3
|
import { resolveSearchProvider } from "../search.js";
|
|
4
4
|
import * as React from "react";
|
|
@@ -7816,7 +7816,7 @@ function Layout({ children, site }) {
|
|
|
7816
7816
|
/* @__PURE__ */ jsx("div", {
|
|
7817
7817
|
className: "mx-auto flex min-h-0 w-full max-w-[1600px] grow flex-col px-5",
|
|
7818
7818
|
children: /* @__PURE__ */ jsx("main", {
|
|
7819
|
-
className: "min-h-0 grow",
|
|
7819
|
+
className: "flex min-h-0 grow flex-col",
|
|
7820
7820
|
children
|
|
7821
7821
|
})
|
|
7822
7822
|
})
|
|
@@ -8547,7 +8547,7 @@ function StandalonePageView({ page, site }) {
|
|
|
8547
8547
|
const Content = doc.default;
|
|
8548
8548
|
const isComponentPage = page.filePath.endsWith(".tsx");
|
|
8549
8549
|
return /* @__PURE__ */ jsxs("div", {
|
|
8550
|
-
className: "flex
|
|
8550
|
+
className: "flex grow flex-col",
|
|
8551
8551
|
children: [isComponentPage ? /* @__PURE__ */ jsx("div", {
|
|
8552
8552
|
className: "grow",
|
|
8553
8553
|
children: /* @__PURE__ */ jsx(Content, {})
|
package/dist/chunks/docs.js
CHANGED
|
@@ -2503,7 +2503,7 @@ HistoryRouter.displayName = "unstable_HistoryRouter";
|
|
|
2503
2503
|
* @param {LinkProps.defaultShouldRevalidate} props.defaultShouldRevalidate n/a
|
|
2504
2504
|
* @param {LinkProps.mask} props.mask [modes: framework, data] n/a
|
|
2505
2505
|
*/
|
|
2506
|
-
const Link = React$1.forwardRef(function LinkWithRef({ onClick, discover = "render", prefetch = "none", relative, reloadDocument, replace, mask, state, target, to, preventScrollReset, viewTransition, defaultShouldRevalidate, ...rest }, forwardedRef) {
|
|
2506
|
+
const Link$1 = React$1.forwardRef(function LinkWithRef({ onClick, discover = "render", prefetch = "none", relative, reloadDocument, replace, mask, state, target, to, preventScrollReset, viewTransition, defaultShouldRevalidate, ...rest }, forwardedRef) {
|
|
2507
2507
|
let { basename, navigator, useTransitions } = React$1.useContext(NavigationContext);
|
|
2508
2508
|
let isAbsolute = typeof to === "string" && ABSOLUTE_URL_REGEX.test(to);
|
|
2509
2509
|
let parsed = parseToInfo(to, basename);
|
|
@@ -2544,7 +2544,7 @@ const Link = React$1.forwardRef(function LinkWithRef({ onClick, discover = "rend
|
|
|
2544
2544
|
});
|
|
2545
2545
|
return shouldPrefetch && !isAbsolute ? /* @__PURE__ */ React$1.createElement(React$1.Fragment, null, link, /* @__PURE__ */ React$1.createElement(PrefetchPageLinks, { page: href })) : link;
|
|
2546
2546
|
});
|
|
2547
|
-
Link.displayName = "Link";
|
|
2547
|
+
Link$1.displayName = "Link";
|
|
2548
2548
|
/**
|
|
2549
2549
|
* Wraps {@link Link | `<Link>`} with additional props for styling active and
|
|
2550
2550
|
* pending states.
|
|
@@ -2621,7 +2621,7 @@ const NavLink = React$1.forwardRef(function NavLinkWithRef({ "aria-current": ari
|
|
|
2621
2621
|
isTransitioning ? "transitioning" : null
|
|
2622
2622
|
].filter(Boolean).join(" ");
|
|
2623
2623
|
let style = typeof styleProp === "function" ? styleProp(renderProps) : styleProp;
|
|
2624
|
-
return /* @__PURE__ */ React$1.createElement(Link, {
|
|
2624
|
+
return /* @__PURE__ */ React$1.createElement(Link$1, {
|
|
2625
2625
|
...rest,
|
|
2626
2626
|
"aria-current": ariaCurrent,
|
|
2627
2627
|
className,
|
|
@@ -10182,7 +10182,7 @@ function Button({ href, variant = "default", size = "default", icon, className,
|
|
|
10182
10182
|
rel: "noreferrer",
|
|
10183
10183
|
children: content
|
|
10184
10184
|
});
|
|
10185
|
-
return /* @__PURE__ */ jsx(Link, {
|
|
10185
|
+
return /* @__PURE__ */ jsx(Link$1, {
|
|
10186
10186
|
to: href,
|
|
10187
10187
|
className: linkClassName,
|
|
10188
10188
|
children: content
|
|
@@ -10400,7 +10400,7 @@ function Card({ title, href, icon, color, img, cta, horizontal, arrow, type, chi
|
|
|
10400
10400
|
rel: "noreferrer",
|
|
10401
10401
|
children: content
|
|
10402
10402
|
});
|
|
10403
|
-
return /* @__PURE__ */ jsx(Link, {
|
|
10403
|
+
return /* @__PURE__ */ jsx(Link$1, {
|
|
10404
10404
|
to: href,
|
|
10405
10405
|
className: linkClassName,
|
|
10406
10406
|
children: content
|
|
@@ -11666,6 +11666,18 @@ function Icon({ icon, src, color, size = 16, className }) {
|
|
|
11666
11666
|
});
|
|
11667
11667
|
}
|
|
11668
11668
|
|
|
11669
|
+
//#endregion
|
|
11670
|
+
//#region src/components/docs/Link.tsx
|
|
11671
|
+
/**
|
|
11672
|
+
* Client-side navigation link bound to Shiso's router. Exposed from
|
|
11673
|
+
* `@umami/shiso/components` so TSX standalone pages and other app code can
|
|
11674
|
+
* navigate without reloading (importing `react-router` directly would create a
|
|
11675
|
+
* second router instance without Shiso's context).
|
|
11676
|
+
*/
|
|
11677
|
+
function Link(props) {
|
|
11678
|
+
return /* @__PURE__ */ jsx(Link$1, { ...props });
|
|
11679
|
+
}
|
|
11680
|
+
|
|
11669
11681
|
//#endregion
|
|
11670
11682
|
//#region src/components/docs/ParamField.tsx
|
|
11671
11683
|
function ParamField({ name, query, path, header, body, type, required, children }) {
|
|
@@ -18901,6 +18913,7 @@ var docs_exports = /* @__PURE__ */ __exportAll({
|
|
|
18901
18913
|
Frame: () => Frame,
|
|
18902
18914
|
Icon: () => Icon,
|
|
18903
18915
|
Info: () => Info,
|
|
18916
|
+
Link: () => Link,
|
|
18904
18917
|
Note: () => Note,
|
|
18905
18918
|
Param: () => Param,
|
|
18906
18919
|
ParamField: () => ParamField,
|
|
@@ -18918,4 +18931,4 @@ var docs_exports = /* @__PURE__ */ __exportAll({
|
|
|
18918
18931
|
});
|
|
18919
18932
|
|
|
18920
18933
|
//#endregion
|
|
18921
|
-
export { POPUP_COLLISION_AVOIDANCE as $,
|
|
18934
|
+
export { POPUP_COLLISION_AVOIDANCE as $, isHTMLElement as $n, itemPress as $t, popupStoreSelectors as A, ARROW_UP$1 as An, Danger as At, useSyncedFloatingRootContext as B, EMPTY_ARRAY$1 as Bn, AccordionGroup as Bt, pressableTriggerOpenStateMapping as C, isTypeableCombobox as Cn, COMPOSITE_KEYS as Ct, useFocus as D, ARROW_DOWN$1 as Dn, CardGroup as Dt, useHoverFloatingInteraction as E, getTarget as En, Card as Et, setPopupOpenState as F, useId as Fn, WarningBanner as Ft, FloatingNode as G, ownerDocument as Gn, useValueAsRef as Gt, useDismiss as H, useMergedRefs as Hn, getIcon as Ht, useImplicitActiveTrigger as I, useTimeout as In, Button as It, useFloatingParentNodeId as J, useIsoLayoutEffect as Jn, createChangeEventDetails as Jt, FloatingTree as K, useCompositeRootContext as Kn, useCompositeListItem as Kt, useOpenStateTransitions as L, Button$1 as Ln, Badge as Lt, FOCUSABLE_POPUP_PROPS as M, webkit as Mn, Note as Mt, PopupHandleAttachment as N, mac as Nn, Tip as Nt, usePopupHandleStore as O, ARROW_LEFT$1 as On, Callout as Ot, attachPreventUnmountOnClose as P, useBaseUiId as Pn, Warning as Pt, DROPDOWN_COLLISION_AVOIDANCE as Q, getWindow as Qn, imperativeAction as Qt, usePopupInteractionProps as R, cn as Rn, Badge$1 as Rt, popupTransitionStateMapping as S, getFloatingFocusElement as Sn, CodeGroup as St, useHoverReferenceInteraction as T, contains as Tn, useCompositeItem as Tt, useClick as U, useButton as Un, useOpenChangeComplete as Ut, ReactStore as V, EMPTY_OBJECT as Vn, resolveIcon as Vt, FloatingFocusManager as W, dispatchClickWithModifiers as Wn, useAnimationsFinished as Wt, FloatingTreeStore as X, useRefWithInit as Xn, escapeKey as Xt, useFloatingTree as Y, useStableCallback as Yn, cancelOpen as Yt, FloatingPortal as Z, getParentNode as Zn, focusOut as Zt, Tooltip as _, isIndexOutOfListBounds as _n, Collapsible as _t, DialogTitle as a, triggerPress as an, BrowserRouter as ar, Tabs as at, getDisabledMountTransitionStyles as b, isVirtualPointerEvent as bn, Column as bt, useOpenInteractionType as c, useDirection as cn, Route as cr, ResponseField as ct, useScrollLock as d, getTabbableBeforeElement as dn, useLocation as dr, ParamField as dt, listNavigation as en, isLastTraversableNode as er, enqueueFocus as et, DialogPortal$1 as f, isOutsideEvent as fn, useNavigate as fr, Link as ft, DialogBackdrop as g, isElementVisible as gn, Expandable as gt, DialogClose as h, getMinListIndex as hn, ABSOLUTE_URL_REGEX as hr, renderInlineMarkdown as ht, DialogContent as i, triggerHover as in, createLucideIcon as ir, Tab as it, PopupTriggerMap as j, jsdom as jn, Info as jt, createInitialPopupStoreState as k, ARROW_RIGHT$1 as kn, Check as kt, DialogTitle$1 as l, getNextTabbable as ln, Router as lr, PropertiesTable as lt, DialogPopup as m, getMaxListIndex as mn, parsePath as mr, Frame as mt, ZoomableImage as n, siblingOpen as nn, ChevronRight as nr, fastComponent as nt, DialogTrigger as o, CompositeList as on, Link$1 as or, Step as ot, InternalBackdrop as p, findNonDisabledListIndex as pn, createPath as pr, Icon as pt, useFloatingNodeId as q, mergeProps as qn, useAnimationFrame as qt, Dialog as r, triggerFocus as rn, Check$1 as rr, fastComponentRef as rt, DialogTrigger$1 as s, addEventListener as sn, Navigate as sr, Steps as st, docs_exports as t, outsidePress as tn, X as tr, FocusGuard as tt, DialogRoot as u, getTabbableAfterElement as un, Routes as ur, Param as ut, TooltipProvider as v, isListIndexDisabled as vn, CollapsibleContent as vt, safePolygon as w, activeElement as wn, inertValue as wt, useAnchorPositioning as x, stopEvent as xn, Columns as xt, usePositioner as y, isVirtualClick as yn, CollapsibleTrigger as yt, useTriggerDataForwarding as z, useRenderElement as zn, Accordion as zt };
|
package/dist/components.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { At as
|
|
1
|
+
import { At as Danger, Bt as AccordionGroup, Dt as CardGroup, Et as Card, Ft as WarningBanner, It as Button, Lt as Badge, Mt as Note, Nt as Tip, Ot as Callout, Pt as Warning, St as CodeGroup, _ as Tooltip, at as Tabs, bt as Column, ct as ResponseField, dt as ParamField, ft as Link, gt as Expandable, it as Tab, jt as Info, kt as Check, lt as PropertiesTable, mt as Frame, n as ZoomableImage, ot as Step, pt as Icon, st as Steps, ut as Param, xt as Columns, zt as Accordion } from "./chunks/docs.js";
|
|
2
2
|
|
|
3
|
-
export { Accordion, AccordionGroup, Badge, Button, Callout, Card, CardGroup, Check, CodeGroup, Column, Columns, Danger, Expandable, Frame, Icon, Info, Note, Param, ParamField, PropertiesTable, ResponseField, Step, Steps, Tab, Tabs, Tip, Tooltip, Warning, WarningBanner, ZoomableImage };
|
|
3
|
+
export { Accordion, AccordionGroup, Badge, Button, Callout, Card, CardGroup, Check, CodeGroup, Column, Columns, Danger, Expandable, Frame, Icon, Info, Link, Note, Param, ParamField, PropertiesTable, ResponseField, Step, Steps, Tab, Tabs, Tip, Tooltip, Warning, WarningBanner, ZoomableImage };
|
package/dist/entry-client.js
CHANGED
package/dist/entry-server.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { hr as ABSOLUTE_URL_REGEX, lr as Router, mr as parsePath, pr as createPath } from "./chunks/docs.js";
|
|
2
2
|
import { a as docsSite, c as getSeo, d as getDocModule, f as getLastModified, h as toAbsoluteUrl, i as docsHomeUrl, l as siteName, m as BASE_URL, n as buildHead, o as getLocaleByPathname, p as getScopeForPage, r as renderHeadToString, s as getRedirects, t as App, u as standalonePages } from "./chunks/App.js";
|
|
3
3
|
import * as React$1 from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ export function Layout({ children, site }: { children: ReactNode; site: SiteMode
|
|
|
17
17
|
<Banner banner={site.banner} dismissLabel={site.labels.dismissBanner} />
|
|
18
18
|
<Header site={site} />
|
|
19
19
|
<div className="mx-auto flex min-h-0 w-full max-w-[1600px] grow flex-col px-5">
|
|
20
|
-
<main className="min-h-0 grow">{children}</main>
|
|
20
|
+
<main className="flex min-h-0 grow flex-col">{children}</main>
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
23
|
);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { Link as RouterLink } from 'react-router';
|
|
3
|
+
|
|
4
|
+
export type LinkProps = ComponentProps<typeof RouterLink>;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Client-side navigation link bound to Shiso's router. Exposed from
|
|
8
|
+
* `@umami/shiso/components` so TSX standalone pages and other app code can
|
|
9
|
+
* navigate without reloading (importing `react-router` directly would create a
|
|
10
|
+
* second router instance without Shiso's context).
|
|
11
|
+
*/
|
|
12
|
+
export function Link(props: LinkProps) {
|
|
13
|
+
return <RouterLink {...props} />;
|
|
14
|
+
}
|
|
@@ -31,7 +31,7 @@ export function StandalonePageView({ page, site }: { page: StandalonePage; site:
|
|
|
31
31
|
const isComponentPage = page.filePath.endsWith('.tsx');
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
|
-
<div className="flex
|
|
34
|
+
<div className="flex grow flex-col">
|
|
35
35
|
{isComponentPage ? (
|
|
36
36
|
<div className="grow">
|
|
37
37
|
<Content />
|
package/types/components.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ImgHTMLAttributes, ReactElement, ReactNode } from 'react';
|
|
1
|
+
import type { ComponentProps, ImgHTMLAttributes, ReactElement, ReactNode } from 'react';
|
|
2
|
+
import type { Link as RouterLink } from 'react-router';
|
|
2
3
|
|
|
3
4
|
export interface AccordionProps {
|
|
4
5
|
title?: ReactNode;
|
|
@@ -215,3 +216,7 @@ export interface ZoomableImageProps extends ImgHTMLAttributes<HTMLImageElement>
|
|
|
215
216
|
}
|
|
216
217
|
|
|
217
218
|
export declare function ZoomableImage(props: ZoomableImageProps): ReactElement;
|
|
219
|
+
|
|
220
|
+
/** Client-side navigation link bound to Shiso's router. */
|
|
221
|
+
export type LinkProps = ComponentProps<typeof RouterLink>;
|
|
222
|
+
export declare function Link(props: LinkProps): ReactElement;
|
package/vite.config.ts
CHANGED
|
@@ -434,6 +434,13 @@ export default defineConfig(async () => {
|
|
|
434
434
|
// virtual imports that are resolved by the plugins below.
|
|
435
435
|
exclude: ['@umami/shiso'],
|
|
436
436
|
},
|
|
437
|
+
ssr: {
|
|
438
|
+
// App code may import framework entry points directly (e.g.
|
|
439
|
+
// "@umami/shiso/components" from TSX standalone pages). Bundle them in
|
|
440
|
+
// the SSR build so project-time virtual imports resolve through the
|
|
441
|
+
// aliases below instead of failing in Node during prerender.
|
|
442
|
+
noExternal: ['@umami/shiso'],
|
|
443
|
+
},
|
|
437
444
|
plugins: [
|
|
438
445
|
configModule.plugin,
|
|
439
446
|
tailwindcss(),
|