@ngrok/mantle 0.81.1 → 0.82.1
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/accordion.js +1 -1
- package/dist/agent.json +4 -1
- package/dist/alert-BWwNPOMI.d.ts +391 -0
- package/dist/alert-center.d.ts +647 -0
- package/dist/alert-center.js +1 -0
- package/dist/alert-dialog.js +1 -1
- package/dist/alert-vwFd7qdp.js +1 -0
- package/dist/alert.d.ts +1 -390
- package/dist/alert.js +1 -1
- package/dist/{anchor-DfeXTpKW.js → anchor-3OGK2UKU.js} +1 -1
- package/dist/anchor.js +1 -1
- package/dist/app-layout.d.ts +566 -0
- package/dist/app-layout.js +1 -0
- package/dist/area-chart.js +1 -1
- package/dist/badge.js +1 -1
- package/dist/bar-chart.js +1 -1
- package/dist/breadcrumb.d.ts +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/browser-only-CmEEzfU3.js +1 -0
- package/dist/browser-only.js +1 -1
- package/dist/{button-DjpEKt2X.js → button-Cnja9Bsr.js} +1 -1
- package/dist/{button-D9n09xUg.js → button-DmJkYfyl.js} +1 -1
- package/dist/{button-BAno7KIU.js → button-IlxHhjPK.js} +1 -1
- package/dist/button.js +1 -1
- package/dist/calendar.d.ts +1 -1
- package/dist/card.js +1 -1
- package/dist/centered-layout.d.ts +9 -9
- package/dist/centered-layout.js +1 -1
- package/dist/chart-B3pAvmkk.js +2 -0
- package/dist/{choice-BHwFSSyv.js → choice-CnwfjSEu.js} +1 -1
- package/dist/choice.js +1 -1
- package/dist/code-block.js +1 -1
- package/dist/code.js +1 -1
- package/dist/combobox.js +1 -1
- package/dist/command.js +1 -1
- package/dist/cookie-ca4g5CKp.js +1 -0
- package/dist/{copy-to-clipboard-BsCQ9m6K.js → copy-to-clipboard-B4UB6pts.js} +1 -1
- package/dist/data-slot-EM6s2WEU.js +1 -0
- package/dist/data-table.js +1 -1
- package/dist/description-list.js +1 -1
- package/dist/{dialog-DWZWd5Jt.js → dialog-DozL6n-F.js} +1 -1
- package/dist/dialog.d.ts +1 -1
- package/dist/dialog.js +1 -1
- package/dist/dropdown-menu-BRH0Wd_z.js +1 -0
- package/dist/dropdown-menu.js +1 -1
- package/dist/empty.js +1 -1
- package/dist/field.d.ts +1 -1
- package/dist/field.js +1 -1
- package/dist/hooks.js +1 -1
- package/dist/{icons-DLCs1hLP.js → icons-Bb_zF2OV.js} +1 -1
- package/dist/icons.js +1 -1
- package/dist/input.js +1 -1
- package/dist/line-chart.js +1 -1
- package/dist/{list-51KQvENW.js → list-CJABVHwi.js} +1 -1
- package/dist/list.js +1 -1
- package/dist/llms.txt +4 -1
- package/dist/main.d.ts +35 -1
- package/dist/main.js +1 -1
- package/dist/mantle.css +21 -1
- package/dist/media-object.js +1 -1
- package/dist/multi-select.d.ts +10 -2
- package/dist/multi-select.js +1 -1
- package/dist/otp-input.js +1 -1
- package/dist/pagination.js +1 -1
- package/dist/platform-BVD3gpKD.js +1 -0
- package/dist/{primitive-trJDqIXJ.js → primitive-D-9GIFWb.js} +1 -1
- package/dist/progress.d.ts +8 -8
- package/dist/qr-code.js +1 -1
- package/dist/radio-group.d.ts +10 -0
- package/dist/radio-group.js +1 -1
- package/dist/sandboxed-on-click.js +1 -1
- package/dist/scatter-plot.d.ts +2 -1
- package/dist/scatter-plot.js +1 -1
- package/dist/{select-BCHWvmyC.js → select-BReznXaw.js} +1 -1
- package/dist/select.js +1 -1
- package/dist/selectable-list.js +1 -1
- package/dist/{separator-bpE_kooz.js → separator-D0D6VyyM.js} +1 -1
- package/dist/separator.js +1 -1
- package/dist/sheet-BxvTfPLM.js +1 -0
- package/dist/sheet.d.ts +1 -1
- package/dist/sheet.js +1 -1
- package/dist/sidebar.d.ts +2558 -0
- package/dist/sidebar.js +1 -0
- package/dist/{skeleton-CsbUHbBA.js → skeleton-BhcJMpem.js} +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/skip-to-main-link.js +1 -1
- package/dist/slot-DdgxmuI5.d.ts +67 -0
- package/dist/slot-DpNWVci8.js +1 -0
- package/dist/slot.d.ts +1 -1
- package/dist/slot.js +1 -1
- package/dist/split-button.js +1 -1
- package/dist/tabs.js +1 -1
- package/dist/theme-BorfgnNh.js +1 -0
- package/dist/theme-switcher.d.ts +1 -1
- package/dist/theme-switcher.js +1 -1
- package/dist/theme.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/tooltip-Dnu35cjU.js +1 -0
- package/dist/tooltip-mrpLz4DZ.d.ts +218 -0
- package/dist/tooltip.d.ts +1 -217
- package/dist/tooltip.js +1 -1
- package/dist/use-breakpoint-Wd7_5-Mu.js +1 -0
- package/dist/use-copy-to-clipboard-CSyp4Zk0.js +1 -0
- package/dist/use-is-hydrated-DDCqXmju.js +1 -0
- package/dist/{use-prefers-reduced-motion-CagaNRgm.js → use-prefers-reduced-motion-Bk5zAfHY.js} +1 -1
- package/dist/utils.js +1 -1
- package/dist/well.js +1 -1
- package/package.json +16 -13
- package/dist/browser-only-CPH56Xw_.js +0 -1
- package/dist/chart-Do2qkrxl.js +0 -2
- package/dist/dropdown-menu-RyDWoKHx.js +0 -1
- package/dist/slot-BtwKJTLq.d.ts +0 -25
- package/dist/slot-CDk0Bb9z.js +0 -1
- package/dist/theme-C26-Xolp.js +0 -1
- package/dist/use-copy-to-clipboard-DqQ0_N3E.js +0 -1
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
import { n as WithAsChild } from "./as-child-D23mGo4f.js";
|
|
2
|
+
import { t as WithDataSlot } from "./data-slot-CChfb_cv.js";
|
|
3
|
+
import { ComponentProps } from "react";
|
|
4
|
+
//#region src/components/app-layout/app-layout.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* The outer frame of an application shell. Renders a `<div>` with
|
|
7
|
+
* `relative isolate flex h-full w-full flex-col overflow-clip`, so
|
|
8
|
+
* it fills its nearest sized ancestor — which makes it embeddable in docs
|
|
9
|
+
* demos and tests. Real app shells pin it to the viewport by merging
|
|
10
|
+
* `className="fixed inset-0"` (mantle `cx` is tailwind-merge-backed, so the
|
|
11
|
+
* override is deterministic); the shell itself never scrolls — only
|
|
12
|
+
* `AppLayout.Body` does.
|
|
13
|
+
*
|
|
14
|
+
* It clips with `overflow-clip` rather than `overflow-hidden` for the same
|
|
15
|
+
* reason `AppLayout.Content` does: `hidden` **is** a scroll container that
|
|
16
|
+
* paints no scrollbar, so anything wider than the frame lets focus scroll the
|
|
17
|
+
* entire shell sideways — translating the notice, the rail, and the card out of
|
|
18
|
+
* view with no scrollbar and no gesture to bring them back. On a frame pinned
|
|
19
|
+
* with `fixed inset-0` that is the whole window. `clip` is not a scroll
|
|
20
|
+
* container at all.
|
|
21
|
+
*
|
|
22
|
+
* When the shell owns the document, render a `SkipToMainLink` as its first
|
|
23
|
+
* child and compose the `Main` landmark into `AppLayout.Body` via `asChild` so
|
|
24
|
+
* keyboard users can jump past the sidebar and toolbar straight into the
|
|
25
|
+
* scrolling page region.
|
|
26
|
+
*
|
|
27
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutroot
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <Sidebar.Root>
|
|
32
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
33
|
+
* <SkipToMainLink />
|
|
34
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
35
|
+
* <AppLayout.Workspace>
|
|
36
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
37
|
+
* <AppLayout.Content>
|
|
38
|
+
* <AppLayout.Header>
|
|
39
|
+
* <Sidebar.Trigger />
|
|
40
|
+
* <Breadcrumbs />
|
|
41
|
+
* </AppLayout.Header>
|
|
42
|
+
* <AppLayout.Body asChild>
|
|
43
|
+
* <Main>
|
|
44
|
+
* <Outlet />
|
|
45
|
+
* </Main>
|
|
46
|
+
* </AppLayout.Body>
|
|
47
|
+
* </AppLayout.Content>
|
|
48
|
+
* </AppLayout.Workspace>
|
|
49
|
+
* </AppLayout.Root>
|
|
50
|
+
* </Sidebar.Root>
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
declare const Root: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
54
|
+
/**
|
|
55
|
+
* A full-window-width strip pinned above everything else in the shell —
|
|
56
|
+
* including any sidebar — for maintenance notices, environment warnings,
|
|
57
|
+
* and similar app-wide messaging. It is a vertical composition slot: place a
|
|
58
|
+
* maintenance banner and an `AlertCenter.Bar` here, and each contributes its
|
|
59
|
+
* own row while the slot pushes the shell down. Renders an unstyled `<div>`
|
|
60
|
+
* (`flex w-full shrink-0 flex-col`): its children bring their own colors and
|
|
61
|
+
* layout, and the part collapses to nothing when empty. Deliberately not named
|
|
62
|
+
* `Banner` so it never reads as the ARIA `banner` landmark — it claims no
|
|
63
|
+
* landmark at all.
|
|
64
|
+
*
|
|
65
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutnotice
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* <Sidebar.Root>
|
|
70
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
71
|
+
* <SkipToMainLink />
|
|
72
|
+
* <AppLayout.Notice>
|
|
73
|
+
* {isUnderMaintenance && (
|
|
74
|
+
* <div className="bg-red-500 text-on-filled flex items-center gap-2 px-4 py-1 text-xs">
|
|
75
|
+
* The dashboard is read-only until {maintenanceEndsAt}.
|
|
76
|
+
* </div>
|
|
77
|
+
* )}
|
|
78
|
+
* </AppLayout.Notice>
|
|
79
|
+
* <AppLayout.Workspace>
|
|
80
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
81
|
+
* <AppLayout.Content>
|
|
82
|
+
* <AppLayout.Header>
|
|
83
|
+
* <Sidebar.Trigger />
|
|
84
|
+
* <Breadcrumbs />
|
|
85
|
+
* </AppLayout.Header>
|
|
86
|
+
* <AppLayout.Body asChild>
|
|
87
|
+
* <Main>
|
|
88
|
+
* <Outlet />
|
|
89
|
+
* </Main>
|
|
90
|
+
* </AppLayout.Body>
|
|
91
|
+
* </AppLayout.Content>
|
|
92
|
+
* </AppLayout.Workspace>
|
|
93
|
+
* </AppLayout.Root>
|
|
94
|
+
* </Sidebar.Root>
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
declare const Notice: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
98
|
+
/**
|
|
99
|
+
* The region where the user actually works: everything below
|
|
100
|
+
* `AppLayout.Notice`, laid out as a row of columns. Place a `Sidebar.Nav` (or
|
|
101
|
+
* any other rail, on either side) beside an `AppLayout.Content` card. A flex row
|
|
102
|
+
* (`flex min-h-0 flex-1`) whose `min-h-0` is what lets `AppLayout.Body` scroll
|
|
103
|
+
* instead of the page.
|
|
104
|
+
*
|
|
105
|
+
* It owns no gutter, deliberately: the card insets itself with its own margin,
|
|
106
|
+
* so a rail stays flush against the window edge and a collapsed icon rail keeps
|
|
107
|
+
* its flush geometry.
|
|
108
|
+
*
|
|
109
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutworkspace
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```tsx
|
|
113
|
+
* <Sidebar.Root>
|
|
114
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
115
|
+
* <SkipToMainLink />
|
|
116
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
117
|
+
* <AppLayout.Workspace>
|
|
118
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
119
|
+
* <AppLayout.Content>
|
|
120
|
+
* <AppLayout.Header>
|
|
121
|
+
* <Sidebar.Trigger />
|
|
122
|
+
* <Breadcrumbs />
|
|
123
|
+
* </AppLayout.Header>
|
|
124
|
+
* <AppLayout.Body asChild>
|
|
125
|
+
* <Main>
|
|
126
|
+
* <Outlet />
|
|
127
|
+
* </Main>
|
|
128
|
+
* </AppLayout.Body>
|
|
129
|
+
* </AppLayout.Content>
|
|
130
|
+
* </AppLayout.Workspace>
|
|
131
|
+
* </AppLayout.Root>
|
|
132
|
+
* </Sidebar.Root>
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
declare const Workspace: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
136
|
+
/**
|
|
137
|
+
* The content card of the shell: a rounded, bordered `bg-card` surface beside
|
|
138
|
+
* the sidebar, holding `AppLayout.Header` and `AppLayout.Body`. A flex column
|
|
139
|
+
* that fills the remaining width of
|
|
140
|
+
* `AppLayout.Workspace` and insets itself from the window edge and the rail with
|
|
141
|
+
* its own margin (`--app-layout-card-gutter`, default `0.5rem`) — the gutter
|
|
142
|
+
* belongs to the card so a rail stays flush against the window edge.
|
|
143
|
+
*
|
|
144
|
+
* The card does **not** scroll: `AppLayout.Body` does. `Content` is
|
|
145
|
+
* `overflow-clip`, which does two jobs — it keeps a full-bleed page background
|
|
146
|
+
* from painting square corners over the card's `rounded-xl`, and it is
|
|
147
|
+
* deliberately `clip` rather than `hidden` because `hidden` is a scroll
|
|
148
|
+
* container with no scrollbar: a long toolbar would let focus scroll the card
|
|
149
|
+
* sideways, dragging the header and the page with it, and nothing could scroll
|
|
150
|
+
* it back.
|
|
151
|
+
*
|
|
152
|
+
* It is also `relative`, so page content positioned with `absolute` resolves
|
|
153
|
+
* against the card instead of escaping to `AppLayout.Root` and painting across
|
|
154
|
+
* the sidebar rail.
|
|
155
|
+
*
|
|
156
|
+
* **CSS variables (public API):**
|
|
157
|
+
*
|
|
158
|
+
* | CSS Variable | Default | Description |
|
|
159
|
+
* | --- | --- | --- |
|
|
160
|
+
* | `--app-layout-card-gutter` | `0.5rem` | The gap between the card and the window edge, the notice above it, and the rail beside it (8px). `AppLayout.Header` subtracts twice this value when deriving its height, so overriding it keeps the toolbar aligned with the sidebar header. |
|
|
161
|
+
*
|
|
162
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutcontent
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```tsx
|
|
166
|
+
* <Sidebar.Root>
|
|
167
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
168
|
+
* <SkipToMainLink />
|
|
169
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
170
|
+
* <AppLayout.Workspace>
|
|
171
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
172
|
+
* <AppLayout.Content>
|
|
173
|
+
* <AppLayout.Header>
|
|
174
|
+
* <Sidebar.Trigger />
|
|
175
|
+
* <Breadcrumbs />
|
|
176
|
+
* </AppLayout.Header>
|
|
177
|
+
* <AppLayout.Body asChild>
|
|
178
|
+
* <Main>
|
|
179
|
+
* <Outlet />
|
|
180
|
+
* </Main>
|
|
181
|
+
* </AppLayout.Body>
|
|
182
|
+
* </AppLayout.Content>
|
|
183
|
+
* </AppLayout.Workspace>
|
|
184
|
+
* </AppLayout.Root>
|
|
185
|
+
* </Sidebar.Root>
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
declare const Content: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
189
|
+
/**
|
|
190
|
+
* The toolbar row at the top of the content card — render it as the **first
|
|
191
|
+
* child of `AppLayout.Content`**. The natural home for a `Sidebar.Trigger` in
|
|
192
|
+
* its top-left, followed by `Breadcrumb` navigation, search, or page-level
|
|
193
|
+
* actions.
|
|
194
|
+
*
|
|
195
|
+
* It is pinned by construction, not by `sticky`: as a `shrink-0` flex sibling
|
|
196
|
+
* *outside* the scrolling `AppLayout.Body`, it cannot scroll away, cannot be
|
|
197
|
+
* overlapped by a page's own `sticky top-0`, and does not translate sideways
|
|
198
|
+
* when the page scrolls horizontally. It also no longer steals height from a
|
|
199
|
+
* page that asks for `h-full`.
|
|
200
|
+
*
|
|
201
|
+
* Renders a `<div>`, not a `<header>`: the `Main` landmark is composed onto
|
|
202
|
+
* `AppLayout.Body`, so a `<header>` here would have no sectioning ancestor and
|
|
203
|
+
* would therefore *become* the ARIA `banner` landmark — which a card toolbar is
|
|
204
|
+
* not. Compose your own element with `asChild` if you need one.
|
|
205
|
+
*
|
|
206
|
+
* **Sidebar alignment is an invariant, not a coincidence:** standalone, the
|
|
207
|
+
* toolbar is `h-14`. When the shell contains a `Sidebar.Header` (detected via
|
|
208
|
+
* `:has()` from `AppLayout.Root`), the toolbar instead derives its height from
|
|
209
|
+
* the sidebar's public `--sidebar-header-height` token, subtracting twice the
|
|
210
|
+
* card gutter and twice the card's hairline border — which keeps the two rows'
|
|
211
|
+
* vertical centers on the same band by construction, for any header height.
|
|
212
|
+
* Override `--sidebar-header-height` on a common ancestor (e.g.
|
|
213
|
+
* `AppLayout.Root`'s `className`) and both rows move together.
|
|
214
|
+
*
|
|
215
|
+
* **CSS variables (public API):**
|
|
216
|
+
*
|
|
217
|
+
* | CSS Variable | Default | Description |
|
|
218
|
+
* | --- | --- | --- |
|
|
219
|
+
* | `--sidebar-header-height` | `4.5rem` | Read, not owned: `Sidebar.Header` owns this token and `AppLayout.Header` derives its own height from it whenever a sidebar header is present in the shell. Set it on a common ancestor of both rows (e.g. `AppLayout.Root`), never on one of them, since custom properties only inherit downward. |
|
|
220
|
+
* | `--app-layout-card-gutter` | `0.5rem` | Read, not owned: `AppLayout.Content` owns this token. The derived height subtracts twice its value, so changing the card gutter keeps the two rows aligned instead of drifting. |
|
|
221
|
+
*
|
|
222
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutheader
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```tsx
|
|
226
|
+
* <Sidebar.Root>
|
|
227
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
228
|
+
* <SkipToMainLink />
|
|
229
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
230
|
+
* <AppLayout.Workspace>
|
|
231
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
232
|
+
* <AppLayout.Content>
|
|
233
|
+
* <AppLayout.Header>
|
|
234
|
+
* <Sidebar.Trigger />
|
|
235
|
+
* <Breadcrumbs />
|
|
236
|
+
* </AppLayout.Header>
|
|
237
|
+
* <AppLayout.Body asChild>
|
|
238
|
+
* <Main>
|
|
239
|
+
* <Outlet />
|
|
240
|
+
* </Main>
|
|
241
|
+
* </AppLayout.Body>
|
|
242
|
+
* </AppLayout.Content>
|
|
243
|
+
* </AppLayout.Workspace>
|
|
244
|
+
* </AppLayout.Root>
|
|
245
|
+
* </Sidebar.Root>
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
declare const Header: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
249
|
+
/**
|
|
250
|
+
* The page region of the content card, and the shell's **only** scroll
|
|
251
|
+
* container (`overflow-y-auto overscroll-none`) — the page body never scrolls
|
|
252
|
+
* and scroll never bounces the shell. Render it after `AppLayout.Header` inside
|
|
253
|
+
* `AppLayout.Content`.
|
|
254
|
+
*
|
|
255
|
+
* In a real app shell this should almost always be mantle's `Main` landmark,
|
|
256
|
+
* composed via `asChild`, and paired with a `SkipToMainLink` as the first child
|
|
257
|
+
* of `AppLayout.Root` (`SkipToMainLink`'s default `targetId` matches `Main`'s
|
|
258
|
+
* `id="main"`). Composing `Main` here rather than onto the card is what makes
|
|
259
|
+
* the skip link actually useful: the focused landmark **is** the scroll
|
|
260
|
+
* container, so arrows, `Space`, and `PageDown` scroll the page immediately, and
|
|
261
|
+
* the skip really does jump past the sidebar *and* the toolbar. The plain
|
|
262
|
+
* `<div>` default exists for embedded usage (docs demos, tests) where the
|
|
263
|
+
* surrounding document already owns the Main landmark.
|
|
264
|
+
*
|
|
265
|
+
* It is a flex **item** that is **block inside**, and both halves are
|
|
266
|
+
* load-bearing:
|
|
267
|
+
*
|
|
268
|
+
* - `min-h-0 flex-1` gives it a definite height, so a page that asks for
|
|
269
|
+
* `h-full` fills exactly the card interior instead of overflowing it by the
|
|
270
|
+
* toolbar's height.
|
|
271
|
+
* - block layout inside — not flex — is why `mx-auto max-w-7xl` still centers a
|
|
272
|
+
* page at its max width. As a *flex child*, auto margins beat
|
|
273
|
+
* `align-items: stretch` and the same container shrink-to-fits, getting
|
|
274
|
+
* *narrower* as the viewport gets wider.
|
|
275
|
+
* - `w-full` states the width outright instead of leaning on the flex
|
|
276
|
+
* container's cross-axis `stretch`, so an `mx-auto` merged onto `Body` still
|
|
277
|
+
* leaves it full width — auto cross-axis margins would otherwise turn a
|
|
278
|
+
* stretched item into a shrink-to-fit one. It is no floor, though: `cx` is
|
|
279
|
+
* tailwind-merge-backed and the consumer's `className` wins, so a merged
|
|
280
|
+
* `w-*` replaces it outright, while a merged `max-w-*` — a separate conflict
|
|
281
|
+
* group — survives beside it and clamps the scrollport. Constrain the *page*
|
|
282
|
+
* inside `Body`, not `Body` itself.
|
|
283
|
+
*
|
|
284
|
+
* It is `relative` too, so page content positioned with `absolute` is contained
|
|
285
|
+
* by the scrollport the route author is already reasoning about.
|
|
286
|
+
*
|
|
287
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutbody
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* ```tsx
|
|
291
|
+
* <Sidebar.Root>
|
|
292
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
293
|
+
* <SkipToMainLink />
|
|
294
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
295
|
+
* <AppLayout.Workspace>
|
|
296
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
297
|
+
* <AppLayout.Content>
|
|
298
|
+
* <AppLayout.Header>
|
|
299
|
+
* <Sidebar.Trigger />
|
|
300
|
+
* <Breadcrumbs />
|
|
301
|
+
* </AppLayout.Header>
|
|
302
|
+
* <AppLayout.Body asChild>
|
|
303
|
+
* <Main>
|
|
304
|
+
* <Outlet />
|
|
305
|
+
* </Main>
|
|
306
|
+
* </AppLayout.Body>
|
|
307
|
+
* </AppLayout.Content>
|
|
308
|
+
* </AppLayout.Workspace>
|
|
309
|
+
* </AppLayout.Root>
|
|
310
|
+
* </Sidebar.Root>
|
|
311
|
+
* ```
|
|
312
|
+
*/
|
|
313
|
+
declare const Body: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
314
|
+
/**
|
|
315
|
+
* A viewport-locked application shell: an optional full-width
|
|
316
|
+
* `AppLayout.Notice` strip on top, then an `AppLayout.Workspace` row holding the
|
|
317
|
+
* app's columns — typically a `Sidebar.Nav` beside an `AppLayout.Content` card
|
|
318
|
+
* whose `AppLayout.Body` is the only thing that scrolls. It owns structure only
|
|
319
|
+
* and is deliberately unaware of any sidebar: compose `Sidebar.Root` around it
|
|
320
|
+
* and place `Sidebar.Trigger` in `AppLayout.Header` to connect the two.
|
|
321
|
+
*
|
|
322
|
+
* Reach for it when a signed-in application needs navigation chrome that
|
|
323
|
+
* persists across routes. When the page is a single centered task surface with
|
|
324
|
+
* no rail — sign in, sign up, onboarding, a standalone flow, a 404 — compose
|
|
325
|
+
* [`CenteredLayout`](https://mantle.ngrok.com/layouts/centered-layout) instead.
|
|
326
|
+
*
|
|
327
|
+
* The card reads exactly like the column beside it and like every other mantle
|
|
328
|
+
* surface — `Content > Header + Body`, the same shape as `Sidebar.Nav`,
|
|
329
|
+
* `Dialog.Content`, `Sheet.Content`, and `Card.Root`.
|
|
330
|
+
*
|
|
331
|
+
* There is deliberately no `Footer` part: a route rendering through an
|
|
332
|
+
* `<Outlet />` inside `AppLayout.Body` could never reach one, and a page-owned
|
|
333
|
+
* bottom bar is exactly what most consumers want. Make the page's root a flex
|
|
334
|
+
* column instead — see the docs' "Sizing a page to the card".
|
|
335
|
+
*
|
|
336
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
337
|
+
*
|
|
338
|
+
* @example
|
|
339
|
+
* Composition:
|
|
340
|
+
* ```
|
|
341
|
+
* AppLayout.Root
|
|
342
|
+
* ├── AppLayout.Notice
|
|
343
|
+
* └── AppLayout.Workspace
|
|
344
|
+
* └── AppLayout.Content
|
|
345
|
+
* ├── AppLayout.Header
|
|
346
|
+
* └── AppLayout.Body
|
|
347
|
+
* ```
|
|
348
|
+
*
|
|
349
|
+
* @example
|
|
350
|
+
* ```tsx
|
|
351
|
+
* <Sidebar.Root>
|
|
352
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
353
|
+
* <SkipToMainLink />
|
|
354
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
355
|
+
* <AppLayout.Workspace>
|
|
356
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
357
|
+
* <AppLayout.Content>
|
|
358
|
+
* <AppLayout.Header>
|
|
359
|
+
* <Sidebar.Trigger />
|
|
360
|
+
* <Breadcrumbs />
|
|
361
|
+
* </AppLayout.Header>
|
|
362
|
+
* <AppLayout.Body asChild>
|
|
363
|
+
* <Main>
|
|
364
|
+
* <Outlet />
|
|
365
|
+
* </Main>
|
|
366
|
+
* </AppLayout.Body>
|
|
367
|
+
* </AppLayout.Content>
|
|
368
|
+
* </AppLayout.Workspace>
|
|
369
|
+
* </AppLayout.Root>
|
|
370
|
+
* </Sidebar.Root>
|
|
371
|
+
* ```
|
|
372
|
+
*/
|
|
373
|
+
declare const AppLayout: {
|
|
374
|
+
/**
|
|
375
|
+
* The outer frame. Fills its nearest sized ancestor; merge
|
|
376
|
+
* `className="fixed inset-0"` to pin a real app shell to the viewport.
|
|
377
|
+
*
|
|
378
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutroot
|
|
379
|
+
*
|
|
380
|
+
* @example
|
|
381
|
+
* ```tsx
|
|
382
|
+
* <Sidebar.Root>
|
|
383
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
384
|
+
* <SkipToMainLink />
|
|
385
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
386
|
+
* <AppLayout.Workspace>
|
|
387
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
388
|
+
* <AppLayout.Content>
|
|
389
|
+
* <AppLayout.Header>
|
|
390
|
+
* <Sidebar.Trigger />
|
|
391
|
+
* <Breadcrumbs />
|
|
392
|
+
* </AppLayout.Header>
|
|
393
|
+
* <AppLayout.Body asChild>
|
|
394
|
+
* <Main>
|
|
395
|
+
* <Outlet />
|
|
396
|
+
* </Main>
|
|
397
|
+
* </AppLayout.Body>
|
|
398
|
+
* </AppLayout.Content>
|
|
399
|
+
* </AppLayout.Workspace>
|
|
400
|
+
* </AppLayout.Root>
|
|
401
|
+
* </Sidebar.Root>
|
|
402
|
+
* ```
|
|
403
|
+
*/
|
|
404
|
+
readonly Root: typeof Root;
|
|
405
|
+
/**
|
|
406
|
+
* A full-window-width strip above everything (maintenance notices,
|
|
407
|
+
* environment warnings). Unstyled; collapses when empty.
|
|
408
|
+
*
|
|
409
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutnotice
|
|
410
|
+
*
|
|
411
|
+
* @example
|
|
412
|
+
* ```tsx
|
|
413
|
+
* <Sidebar.Root>
|
|
414
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
415
|
+
* <SkipToMainLink />
|
|
416
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
417
|
+
* <AppLayout.Workspace>
|
|
418
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
419
|
+
* <AppLayout.Content>
|
|
420
|
+
* <AppLayout.Header>
|
|
421
|
+
* <Sidebar.Trigger />
|
|
422
|
+
* <Breadcrumbs />
|
|
423
|
+
* </AppLayout.Header>
|
|
424
|
+
* <AppLayout.Body asChild>
|
|
425
|
+
* <Main>
|
|
426
|
+
* <Outlet />
|
|
427
|
+
* </Main>
|
|
428
|
+
* </AppLayout.Body>
|
|
429
|
+
* </AppLayout.Content>
|
|
430
|
+
* </AppLayout.Workspace>
|
|
431
|
+
* </AppLayout.Root>
|
|
432
|
+
* </Sidebar.Root>
|
|
433
|
+
* ```
|
|
434
|
+
*/
|
|
435
|
+
readonly Notice: typeof Notice;
|
|
436
|
+
/**
|
|
437
|
+
* The row below the notice where the user works — place a `Sidebar.Nav`
|
|
438
|
+
* beside an `AppLayout.Content` card here.
|
|
439
|
+
*
|
|
440
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutworkspace
|
|
441
|
+
*
|
|
442
|
+
* @example
|
|
443
|
+
* ```tsx
|
|
444
|
+
* <Sidebar.Root>
|
|
445
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
446
|
+
* <SkipToMainLink />
|
|
447
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
448
|
+
* <AppLayout.Workspace>
|
|
449
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
450
|
+
* <AppLayout.Content>
|
|
451
|
+
* <AppLayout.Header>
|
|
452
|
+
* <Sidebar.Trigger />
|
|
453
|
+
* <Breadcrumbs />
|
|
454
|
+
* </AppLayout.Header>
|
|
455
|
+
* <AppLayout.Body asChild>
|
|
456
|
+
* <Main>
|
|
457
|
+
* <Outlet />
|
|
458
|
+
* </Main>
|
|
459
|
+
* </AppLayout.Body>
|
|
460
|
+
* </AppLayout.Content>
|
|
461
|
+
* </AppLayout.Workspace>
|
|
462
|
+
* </AppLayout.Root>
|
|
463
|
+
* </Sidebar.Root>
|
|
464
|
+
* ```
|
|
465
|
+
*/
|
|
466
|
+
readonly Workspace: typeof Workspace;
|
|
467
|
+
/**
|
|
468
|
+
* The rounded `bg-card` surface beside the sidebar, holding the toolbar and
|
|
469
|
+
* the page region. Insets itself with `--app-layout-card-gutter`; does not
|
|
470
|
+
* scroll — `AppLayout.Body` does.
|
|
471
|
+
*
|
|
472
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutcontent
|
|
473
|
+
*
|
|
474
|
+
* @example
|
|
475
|
+
* ```tsx
|
|
476
|
+
* <Sidebar.Root>
|
|
477
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
478
|
+
* <SkipToMainLink />
|
|
479
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
480
|
+
* <AppLayout.Workspace>
|
|
481
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
482
|
+
* <AppLayout.Content>
|
|
483
|
+
* <AppLayout.Header>
|
|
484
|
+
* <Sidebar.Trigger />
|
|
485
|
+
* <Breadcrumbs />
|
|
486
|
+
* </AppLayout.Header>
|
|
487
|
+
* <AppLayout.Body asChild>
|
|
488
|
+
* <Main>
|
|
489
|
+
* <Outlet />
|
|
490
|
+
* </Main>
|
|
491
|
+
* </AppLayout.Body>
|
|
492
|
+
* </AppLayout.Content>
|
|
493
|
+
* </AppLayout.Workspace>
|
|
494
|
+
* </AppLayout.Root>
|
|
495
|
+
* </Sidebar.Root>
|
|
496
|
+
* ```
|
|
497
|
+
*/
|
|
498
|
+
readonly Content: typeof Content;
|
|
499
|
+
/**
|
|
500
|
+
* The toolbar row at the top of the content card — `AppLayout.Content`'s
|
|
501
|
+
* first child, with `Sidebar.Trigger` in its top-left followed by
|
|
502
|
+
* breadcrumbs. Pinned by `shrink-0`, not `sticky`.
|
|
503
|
+
*
|
|
504
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutheader
|
|
505
|
+
*
|
|
506
|
+
* @example
|
|
507
|
+
* ```tsx
|
|
508
|
+
* <Sidebar.Root>
|
|
509
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
510
|
+
* <SkipToMainLink />
|
|
511
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
512
|
+
* <AppLayout.Workspace>
|
|
513
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
514
|
+
* <AppLayout.Content>
|
|
515
|
+
* <AppLayout.Header>
|
|
516
|
+
* <Sidebar.Trigger />
|
|
517
|
+
* <Breadcrumbs />
|
|
518
|
+
* </AppLayout.Header>
|
|
519
|
+
* <AppLayout.Body asChild>
|
|
520
|
+
* <Main>
|
|
521
|
+
* <Outlet />
|
|
522
|
+
* </Main>
|
|
523
|
+
* </AppLayout.Body>
|
|
524
|
+
* </AppLayout.Content>
|
|
525
|
+
* </AppLayout.Workspace>
|
|
526
|
+
* </AppLayout.Root>
|
|
527
|
+
* </Sidebar.Root>
|
|
528
|
+
* ```
|
|
529
|
+
*/
|
|
530
|
+
readonly Header: typeof Header;
|
|
531
|
+
/**
|
|
532
|
+
* The page region and the shell's only scroll container. A flex item that is
|
|
533
|
+
* block inside, so `h-full` pages fit the card and `mx-auto max-w-7xl` pages
|
|
534
|
+
* still center. Compose `Main` here via `asChild` when the shell owns the
|
|
535
|
+
* document.
|
|
536
|
+
*
|
|
537
|
+
* @see https://mantle.ngrok.com/layouts/app-layout#applayoutbody
|
|
538
|
+
*
|
|
539
|
+
* @example
|
|
540
|
+
* ```tsx
|
|
541
|
+
* <Sidebar.Root>
|
|
542
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
543
|
+
* <SkipToMainLink />
|
|
544
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
545
|
+
* <AppLayout.Workspace>
|
|
546
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
547
|
+
* <AppLayout.Content>
|
|
548
|
+
* <AppLayout.Header>
|
|
549
|
+
* <Sidebar.Trigger />
|
|
550
|
+
* <Breadcrumbs />
|
|
551
|
+
* </AppLayout.Header>
|
|
552
|
+
* <AppLayout.Body asChild>
|
|
553
|
+
* <Main>
|
|
554
|
+
* <Outlet />
|
|
555
|
+
* </Main>
|
|
556
|
+
* </AppLayout.Body>
|
|
557
|
+
* </AppLayout.Content>
|
|
558
|
+
* </AppLayout.Workspace>
|
|
559
|
+
* </AppLayout.Root>
|
|
560
|
+
* </Sidebar.Root>
|
|
561
|
+
* ```
|
|
562
|
+
*/
|
|
563
|
+
readonly Body: typeof Body;
|
|
564
|
+
};
|
|
565
|
+
//#endregion
|
|
566
|
+
export { AppLayout };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./data-slot-EM6s2WEU.js";import{t as n}from"./slot-DpNWVci8.js";import{jsx as r}from"react/jsx-runtime";const i={Root:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`app-layout`),className:e(`group/app-layout bg-base relative isolate flex h-full w-full flex-col`,`overflow-clip`,o),...c,children:a}),Notice:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`app-layout-notice`),className:e(`flex w-full shrink-0 flex-col`,o),...c,children:a}),Workspace:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`app-layout-workspace`),className:e(`flex min-h-0 flex-1`,o),...c,children:a}),Content:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`app-layout-content`),className:e(`bg-card border-card-muted relative flex min-w-0 flex-1 flex-col rounded-xl border shadow-sm`,`m-[var(--app-layout-card-gutter,0.5rem)]`,`overflow-clip`,o),...c,children:a}),Header:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`app-layout-header`),className:e(`border-card-muted flex h-14 shrink-0 items-center gap-2 border-b px-4`,`group-has-[[data-slot~=sidebar-header]]/app-layout:h-[calc(var(--sidebar-header-height,4.5rem)-2*var(--app-layout-card-gutter,0.5rem)-2px)]`,o),...c,children:a}),Body:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`app-layout-body`),className:e(`scrollbar relative min-h-0 w-full flex-1 overflow-y-auto overscroll-none`,o),...c,children:a})};export{i as AppLayout};
|
package/dist/area-chart.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./chart-
|
|
1
|
+
import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./chart-B3pAvmkk.js";import{jsx as l}from"react/jsx-runtime";const u={Root:e=>l(o,{kind:`area`,componentName:`AreaChart`,slotName:`area-chart`,...e}),Area:e=>a(`AreaChart.Area`,`area`,e),Grid:e=>n(`AreaChart.Grid`,e),XAxis:e=>t(`AreaChart.XAxis`,e),YAxis:e=>r(`AreaChart.YAxis`,e),ReferenceLine:t=>e(`AreaChart.ReferenceLine`,t),Tooltip:e=>s(`AreaChart.Tooltip`,e),Legend:e=>l(i,{partName:`AreaChart.Legend`,slotName:`area-chart`,...e}),CopyButton:e=>l(c,{partName:`AreaChart.CopyButton`,slotName:`area-chart`,...e})};export{u as AreaChart};
|
package/dist/badge.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./icon-d-nMCfAI.js";import{t as n}from"./slot-
|
|
1
|
+
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./icon-d-nMCfAI.js";import{t as n}from"./slot-DpNWVci8.js";import{Children as r,cloneElement as i,isValidElement as a}from"react";import o from"tiny-invariant";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";const u=({appearance:u,asChild:d=!1,children:p,className:h,color:g=`neutral`,icon:_,...v})=>{let y=f(g,u),b=m(g,u),x=e(`inline-flex w-fit shrink-0 cursor-default items-center gap-1 rounded px-1.5 py-0.5 font-medium text-xs font-sans`,_&&`ps-1`,y,b,h);if(d){let e=r.only(p);o(a(e),"When using `asChild`, Badge must be passed a single child as a JSX tag.");let u=e.props?.children;return c(n,{"data-slot":`badge`,className:x,...v,children:i(e,{},l(s,{children:[_&&c(t,{className:`size-4`,svg:_}),u]}))})}return l(`span`,{"data-slot":`badge`,className:x,...v,children:[_&&c(t,{className:`size-4`,svg:_}),p]})},d={amber:`bg-amber-500/20`,blue:`bg-blue-500/20`,cyan:`bg-cyan-500/20`,emerald:`bg-emerald-500/20`,fuchsia:`bg-fuchsia-500/20`,gray:`bg-gray-500/20`,green:`bg-green-500/20`,indigo:`bg-indigo-500/20`,lime:`bg-lime-500/20`,orange:`bg-orange-500/20`,pink:`bg-pink-500/20`,purple:`bg-purple-500/20`,red:`bg-red-500/20`,rose:`bg-rose-500/20`,sky:`bg-sky-500/20`,teal:`bg-teal-500/20`,violet:`bg-violet-500/20`,yellow:`bg-yellow-500/20`,accent:`bg-accent-500/20`,danger:`bg-danger-500/20`,important:`bg-important-500/20`,info:`bg-info-500/20`,neutral:`bg-neutral-500/20`,success:`bg-success-500/20`,warning:`bg-warning-500/20`};function f(e,t){switch(t){case`muted`:return d[e];default:o(!1,`Invalid appearance: ${String(t)}`)}}const p={amber:`text-amber-700`,blue:`text-blue-700`,cyan:`text-cyan-700`,emerald:`text-emerald-700`,fuchsia:`text-fuchsia-700`,gray:`text-gray-700`,green:`text-green-700`,indigo:`text-indigo-700`,lime:`text-lime-700`,orange:`text-orange-700`,pink:`text-pink-700`,purple:`text-purple-700`,red:`text-red-700`,rose:`text-rose-700`,sky:`text-sky-700`,teal:`text-teal-700`,violet:`text-violet-700`,yellow:`text-yellow-700`,accent:`text-accent-700`,danger:`text-danger-700`,important:`text-important-700`,info:`text-info-700`,neutral:`text-neutral-700`,success:`text-success-700`,warning:`text-warning-700`};function m(e,t){switch(t){case`muted`:return p[e];default:o(!1,`Invalid appearance: ${String(t)}`)}}export{u as Badge};
|
package/dist/bar-chart.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./chart-
|
|
1
|
+
import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./chart-B3pAvmkk.js";import{jsx as l}from"react/jsx-runtime";const u={Root:e=>l(o,{kind:`bar`,componentName:`BarChart`,slotName:`bar-chart`,...e}),Bar:e=>a(`BarChart.Bar`,`bar`,e),Grid:e=>n(`BarChart.Grid`,e),XAxis:e=>t(`BarChart.XAxis`,e),YAxis:e=>r(`BarChart.YAxis`,e),ReferenceLine:t=>e(`BarChart.ReferenceLine`,t),Tooltip:e=>s(`BarChart.Tooltip`,e),Legend:e=>l(i,{partName:`BarChart.Legend`,slotName:`bar-chart`,...e}),CopyButton:e=>l(c,{partName:`BarChart.CopyButton`,slotName:`bar-chart`,...e})};export{u as BarChart};
|
package/dist/breadcrumb.d.ts
CHANGED
|
@@ -189,7 +189,7 @@ type BreadcrumbSeparatorProps = Omit<ComponentProps<"li">, "children"> & ({
|
|
|
189
189
|
* </Breadcrumb.Root>
|
|
190
190
|
* ```
|
|
191
191
|
*/
|
|
192
|
-
declare const Separator: ({ asChild, children,
|
|
192
|
+
declare const Separator: ({ asChild, children, "data-slot": dataSlot, ref, ...props }: BreadcrumbSeparatorProps & WithDataSlot) => import("react").JSX.Element;
|
|
193
193
|
/**
|
|
194
194
|
* Compound component for WAI-ARIA breadcrumb navigation — the path from a
|
|
195
195
|
* root to the current page as an ordered list of links inside a labeled
|
package/dist/breadcrumb.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./icon-lZ48P8Nn.js";import{n
|
|
1
|
+
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./icon-lZ48P8Nn.js";import{t as n}from"./data-slot-EM6s2WEU.js";import{t as r}from"./slot-DpNWVci8.js";import{cloneElement as i,isValidElement as a}from"react";import{jsx as o}from"react/jsx-runtime";import{CaretRightIcon as s}from"@phosphor-icons/react/CaretRight";const c={Root:({asChild:e,children:t,"data-slot":i,ref:a,...s})=>o(e?r:`nav`,{ref:a,"data-slot":n(i,`breadcrumb`),"aria-label":`Breadcrumb`,...s,children:t}),List:({asChild:t,children:i,className:a,"data-slot":s,ref:c,...l})=>o(t?r:`ol`,{ref:c,"data-slot":n(s,`breadcrumb-list`),className:e(`text-muted flex flex-wrap items-center gap-1.5 text-sm`,a),...l,children:i}),Item:({asChild:t,children:i,className:a,"data-slot":s,ref:c,...l})=>o(t?r:`li`,{ref:c,"data-slot":n(s,`breadcrumb-item`),className:e(`inline-flex items-center gap-1.5`,a),...l,children:i}),Link:({asChild:t,children:i,className:a,"data-slot":s,ref:c,...l})=>o(t?r:`a`,{ref:c,"data-slot":n(s,`breadcrumb-link`),className:e(`hover:text-strong transition-colors`,a),...l,children:i}),Page:({asChild:t,children:s,className:c,"data-slot":l,ref:u,...d})=>{let f=t?r:`span`,p=t&&a(s)?i(s,{"aria-current":`page`}):s;return o(f,{ref:u,"data-slot":n(l,`breadcrumb-page`),className:e(`text-muted`,c),...d,"aria-current":`page`,children:p})},Separator:({asChild:e,children:c,"data-slot":l,ref:u,...d})=>{let f=e?r:`li`,p=e&&a(c)?i(c,{role:`presentation`,"aria-hidden":`true`}):c??o(t,{svg:o(s,{}),className:`size-3.5`});return o(f,{ref:u,"data-slot":n(l,`breadcrumb-separator`),...d,role:`presentation`,"aria-hidden":`true`,children:p})}};export{c as Breadcrumb};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./use-is-hydrated-DDCqXmju.js";function t({children:t,fallback:n=null}){return e()?t():n}function n(){return typeof window<`u`&&typeof document<`u`}export{n,t};
|
package/dist/browser-only.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./browser-only-
|
|
1
|
+
import{n as e,t}from"./browser-only-CmEEzfU3.js";export{t as BrowserOnly,e as canUseDOM};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./icon-lZ48P8Nn.js";import{t as n}from"./slot-
|
|
1
|
+
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./icon-lZ48P8Nn.js";import{t as n}from"./slot-DpNWVci8.js";import{t as r}from"./booleanish-BfvnW6vy.js";import{t as i}from"./clsx-DUGZgXfJ.js";import{Children as a,cloneElement as o,isValidElement as s}from"react";import c from"tiny-invariant";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";import{cva as f}from"class-variance-authority";import{CircleNotchIcon as p}from"@phosphor-icons/react/CircleNotch";const m=f(``,{variants:{appearance:{filled:`bg-filled-accent text-white focus-visible:ring-focus-accent not-disabled:hover:bg-filled-accent-hover border border-transparent text-sm font-medium`,ghost:`text-accent-600 focus-visible:ring-focus-accent not-disabled:hover:bg-accent-500/10 not-disabled:hover:text-accent-700 border border-transparent text-sm font-medium`,outlined:`border-accent-600 bg-form text-accent-600 focus-visible:ring-focus-accent not-disabled:hover:border-accent-700 not-disabled:hover:bg-accent-500/10 not-disabled:hover:text-accent-700 border text-sm font-medium`,link:`text-accent-600 focus-visible:ring-focus-accent not-disabled:hover:underline group/button-link border-transparent`},isLoading:{false:``,true:`opacity-50`},intent:{accent:``,danger:``,neutral:``},size:{xs:``,sm:``,md:``,lg:``,xl:``}},defaultVariants:{isLoading:!1,size:`md`},compoundVariants:[{appearance:[`filled`,`ghost`,`outlined`],size:`xs`,class:`h-6 px-2`},{appearance:[`filled`,`ghost`,`outlined`],size:`sm`,class:`h-7 px-2.5`},{appearance:[`filled`,`ghost`,`outlined`],size:`md`,class:`h-9 px-3`},{appearance:[`filled`,`ghost`,`outlined`],size:`lg`,class:`h-10 px-3.5`},{appearance:[`filled`,`ghost`,`outlined`],size:`xl`,class:`h-12 px-4`},{appearance:`ghost`,intent:`danger`,class:`text-danger-600 focus-visible:ring-focus-danger not-disabled:hover:bg-danger-500/10 not-disabled:hover:text-danger-700 border-transparent`},{appearance:`outlined`,intent:`danger`,class:`border-danger-600 bg-form text-danger-600 focus-visible:ring-focus-danger not-disabled:hover:border-danger-700 not-disabled:hover:bg-danger-500/10 not-disabled:hover:text-danger-700`},{appearance:`filled`,intent:`danger`,class:`bg-filled-danger focus-visible:ring-focus-danger not-disabled:hover:bg-filled-danger-hover border-transparent`},{appearance:`link`,intent:`danger`,class:`text-danger-600 focus-visible:ring-focus-danger`},{appearance:`ghost`,intent:`neutral`,class:`text-strong focus-visible:ring-focus-accent not-disabled:hover:bg-neutral-500/10 not-disabled:hover:text-strong border-transparent`},{appearance:`outlined`,intent:`neutral`,class:`border-form bg-form text-strong focus-visible:border-accent-600 focus-visible:ring-focus-accent not-disabled:hover:border-neutral-400 not-disabled:hover:bg-form-hover not-disabled:hover:text-strong focus-visible:not-disabled:hover:border-accent-600`},{appearance:`filled`,intent:`neutral`,class:`bg-filled-neutral not-disabled:hover:bg-filled-neutral-hover border-transparent focus-visible:border-transparent text-neutral-50`},{appearance:`link`,intent:`neutral`,class:`text-strong focus-visible:ring-focus-accent`}]}),h={xs:`ps-1.5`,sm:`ps-2`,md:`ps-2.5`,lg:`ps-3`,xl:`ps-3.5`},g={xs:`pe-1.5`,sm:`pe-2`,md:`pe-2.5`,lg:`pe-3`,xl:`pe-3.5`},_=({"aria-disabled":f,appearance:_,asChild:v,children:y,className:b,disabled:x,icon:S,iconPlacement:C=`start`,intent:w,isLoading:T=!1,ref:E,size:D=`md`,type:O,...k})=>{let A=r(f??x??T),j=T?u(p,{className:`animate-spin`}):S,M=j&&_!==`link`,N={"aria-disabled":A,"data-slot":`button`,className:e(`inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-md`,`focus:outline-hidden focus-visible:ring-4`,`disabled:cursor-default disabled:opacity-50`,`not-disabled:active:scale-97 ease-out transition-transform duration-150`,m({appearance:_,intent:w,isLoading:T,size:D}),_!==`link`&&`font-sans`,M&&C===`start`&&h[D],M&&C===`end`&&g[D],b),"data-appearance":_,"data-disabled":A,"data-intent":w,"data-loading":T,"data-size":_===`link`?void 0:D,disabled:A,ref:E,...k};return v?(c(s(y)&&a.only(y),"When using `asChild`, Button must be passed a single child as a JSX tag."),u(n,{...N,children:o(y,{},d(l,{children:[j&&u(t,{svg:j,className:i(C===`end`&&`order-last`)}),y.props.children]}))})):d(`button`,{...N,type:O??`button`,children:[j&&u(t,{svg:j,className:i(C===`end`&&`order-last`)}),y]})};export{_ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./slot-
|
|
1
|
+
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./slot-DpNWVci8.js";import{jsx as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";const i=r(`border-form inline-flex items-center rounded-md`,{variants:{appearance:{panel:`bg-form gap-0.5 border p-0.75 [--icon-button-border-radius:0.125rem] [&>.separator]:mx-px`,ghost:`gap-0.5`,outlined:``}}}),a=({appearance:r,asChild:a,className:o,children:s,ref:c,...l})=>n(a?t:`div`,{"data-slot":`button-group`,className:e(i({appearance:r}),o),ref:c,...l,children:s});export{a as t};
|