@ngrok/mantle 0.81.1 → 0.82.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/accordion.js +1 -1
- package/dist/agent.json +4 -1
- package/dist/alert-BWwNPOMI.d.ts +391 -0
- package/dist/alert-QMs0PqMq.js +1 -0
- package/dist/alert-center.d.ts +449 -0
- package/dist/alert-center.js +1 -0
- package/dist/alert-dialog.js +1 -1
- package/dist/alert.d.ts +1 -390
- package/dist/alert.js +1 -1
- package/dist/{anchor-DfeXTpKW.js → anchor-DvbNsphX.js} +1 -1
- package/dist/anchor.js +1 -1
- package/dist/app-layout.d.ts +483 -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-D9n09xUg.js → button-BO2CKsz6.js} +1 -1
- package/dist/{button-DjpEKt2X.js → button-BUospUB3.js} +1 -1
- package/dist/{button-BAno7KIU.js → button-C0S8RbaJ.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-DdBQ3xwx.js +2 -0
- package/dist/{choice-BHwFSSyv.js → choice-C9gLKECf.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/{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-Bsj_dX6r.js} +1 -1
- package/dist/dialog.d.ts +1 -1
- package/dist/dialog.js +1 -1
- package/dist/dropdown-menu-fUMqjRC0.js +1 -0
- package/dist/dropdown-menu.js +1 -1
- package/dist/empty.js +1 -1
- package/dist/field.js +1 -1
- package/dist/hooks.js +1 -1
- package/dist/{icons-DLCs1hLP.js → icons-CPbOq7cF.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-CQFWx6Z8.js} +1 -1
- package/dist/list.js +1 -1
- package/dist/llms.txt +4 -1
- package/dist/main.d.ts +4 -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/{primitive-trJDqIXJ.js → primitive-Dv-3snU3.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-B-9yWrif.js} +1 -1
- package/dist/select.js +1 -1
- package/dist/selectable-list.js +1 -1
- package/dist/{separator-bpE_kooz.js → separator-BepAcFFy.js} +1 -1
- package/dist/separator.js +1 -1
- package/dist/sheet-_fXLjiq2.js +1 -0
- package/dist/sheet.d.ts +1 -1
- package/dist/sheet.js +1 -1
- package/dist/sidebar.d.ts +2084 -0
- package/dist/sidebar.js +1 -0
- package/dist/{skeleton-CsbUHbBA.js → skeleton-DsHXIa9j.js} +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/skip-to-main-link.js +1 -1
- package/dist/slot-Dpsqz16D.js +1 -0
- package/dist/slot.js +1 -1
- package/dist/split-button.js +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{theme-C26-Xolp.js → theme-IAnQ35bd.js} +1 -1
- package/dist/theme-switcher.js +1 -1
- package/dist/theme.js +1 -1
- package/dist/toast.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-CDk0Bb9z.js +0 -1
- package/dist/use-copy-to-clipboard-DqQ0_N3E.js +0 -1
|
@@ -0,0 +1,483 @@
|
|
|
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-hidden bg-base`, 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.Content` does.
|
|
13
|
+
*
|
|
14
|
+
* When the shell owns the document, render a `SkipToMainLink` as its first
|
|
15
|
+
* child and compose the `Main` landmark into `AppLayout.Content` via
|
|
16
|
+
* `asChild` so keyboard users can jump past the sidebar and toolbar straight
|
|
17
|
+
* into the content card.
|
|
18
|
+
*
|
|
19
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
24
|
+
* <SkipToMainLink />
|
|
25
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
26
|
+
* <AppLayout.Body>
|
|
27
|
+
* <AppLayout.Inset>
|
|
28
|
+
* <AppLayout.Content>
|
|
29
|
+
* <AppLayout.Header>
|
|
30
|
+
* <Breadcrumbs />
|
|
31
|
+
* </AppLayout.Header>
|
|
32
|
+
* <Outlet />
|
|
33
|
+
* </AppLayout.Content>
|
|
34
|
+
* </AppLayout.Inset>
|
|
35
|
+
* </AppLayout.Body>
|
|
36
|
+
* </AppLayout.Root>
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
declare const Root: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
40
|
+
/**
|
|
41
|
+
* A full-window-width strip pinned above everything else in the shell —
|
|
42
|
+
* including any sidebar — for maintenance notices, environment warnings,
|
|
43
|
+
* and similar app-wide messaging. It is a vertical composition slot: place an
|
|
44
|
+
* maintenance banner and an `AlertCenter.Bar` here, and each contributes its
|
|
45
|
+
* own row while the slot pushes the shell down. Renders an unstyled `<div>`
|
|
46
|
+
* (`flex w-full shrink-0 flex-col`): its children bring their own colors and
|
|
47
|
+
* layout, and the part collapses to nothing when empty. Deliberately not named
|
|
48
|
+
* `Banner` so it never reads as the ARIA `banner` landmark — it claims no
|
|
49
|
+
* landmark at all.
|
|
50
|
+
*
|
|
51
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* <Sidebar.Root>
|
|
56
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
57
|
+
* <SkipToMainLink />
|
|
58
|
+
* <AppLayout.Notice>
|
|
59
|
+
* {isUnderMaintenance && (
|
|
60
|
+
* <div className="bg-red-500 text-on-filled flex items-center gap-2 px-4 py-1 text-xs">
|
|
61
|
+
* The dashboard is read-only until {maintenanceEndsAt}.
|
|
62
|
+
* </div>
|
|
63
|
+
* )}
|
|
64
|
+
* </AppLayout.Notice>
|
|
65
|
+
* <AppLayout.Body>
|
|
66
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
67
|
+
* <AppLayout.Inset>
|
|
68
|
+
* <AppLayout.Content asChild>
|
|
69
|
+
* <Main>
|
|
70
|
+
* <AppLayout.Header>
|
|
71
|
+
* <Sidebar.Trigger />
|
|
72
|
+
* <Breadcrumbs />
|
|
73
|
+
* </AppLayout.Header>
|
|
74
|
+
* <Outlet />
|
|
75
|
+
* </Main>
|
|
76
|
+
* </AppLayout.Content>
|
|
77
|
+
* </AppLayout.Inset>
|
|
78
|
+
* </AppLayout.Body>
|
|
79
|
+
* </AppLayout.Root>
|
|
80
|
+
* </Sidebar.Root>
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
declare const Notice: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
84
|
+
/**
|
|
85
|
+
* The main horizontal region of the shell, below `AppLayout.Notice`. A flex
|
|
86
|
+
* row (`flex min-h-0 flex-1`) whose children are the app's columns — place a
|
|
87
|
+
* `Sidebar.Nav` (or any other rail) beside an `AppLayout.Inset`. The
|
|
88
|
+
* `min-h-0` is what lets `AppLayout.Content` scroll instead of the page.
|
|
89
|
+
*
|
|
90
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```tsx
|
|
94
|
+
* <Sidebar.Root>
|
|
95
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
96
|
+
* <SkipToMainLink />
|
|
97
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
98
|
+
* <AppLayout.Body>
|
|
99
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
100
|
+
* <AppLayout.Inset>
|
|
101
|
+
* <AppLayout.Content asChild>
|
|
102
|
+
* <Main>
|
|
103
|
+
* <AppLayout.Header>
|
|
104
|
+
* <Sidebar.Trigger />
|
|
105
|
+
* <Breadcrumbs />
|
|
106
|
+
* </AppLayout.Header>
|
|
107
|
+
* <Outlet />
|
|
108
|
+
* </Main>
|
|
109
|
+
* </AppLayout.Content>
|
|
110
|
+
* </AppLayout.Inset>
|
|
111
|
+
* </AppLayout.Body>
|
|
112
|
+
* </AppLayout.Root>
|
|
113
|
+
* </Sidebar.Root>
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
declare const Body: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
117
|
+
/**
|
|
118
|
+
* The content column of the shell: the flex column beside the sidebar that
|
|
119
|
+
* wraps the scrolling `AppLayout.Content` card. Owns the card gutter
|
|
120
|
+
* (`gap-2 p-2`), keeping a consistent gap beside a sidebar (invisible when
|
|
121
|
+
* both share `bg-base`).
|
|
122
|
+
*
|
|
123
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```tsx
|
|
127
|
+
* <Sidebar.Root>
|
|
128
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
129
|
+
* <SkipToMainLink />
|
|
130
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
131
|
+
* <AppLayout.Body>
|
|
132
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
133
|
+
* <AppLayout.Inset>
|
|
134
|
+
* <AppLayout.Content asChild>
|
|
135
|
+
* <Main>
|
|
136
|
+
* <AppLayout.Header>
|
|
137
|
+
* <Sidebar.Trigger />
|
|
138
|
+
* <Breadcrumbs />
|
|
139
|
+
* </AppLayout.Header>
|
|
140
|
+
* <Outlet />
|
|
141
|
+
* </Main>
|
|
142
|
+
* </AppLayout.Content>
|
|
143
|
+
* </AppLayout.Inset>
|
|
144
|
+
* </AppLayout.Body>
|
|
145
|
+
* </AppLayout.Root>
|
|
146
|
+
* </Sidebar.Root>
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
declare const Inset: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
150
|
+
/**
|
|
151
|
+
* The toolbar row pinned to the top of the content card — render it as the
|
|
152
|
+
* **first child of `AppLayout.Content`**. It is sticky (`top-0`) inside the
|
|
153
|
+
* card's scroll container with a hairline border beneath it, so page content
|
|
154
|
+
* scrolls under it. The natural home for a `Sidebar.Trigger` in its top-left,
|
|
155
|
+
* followed by `Breadcrumb` navigation, search, or page-level actions.
|
|
156
|
+
*
|
|
157
|
+
* Renders a semantic `<header>` scoped to the content region (inside `Main`
|
|
158
|
+
* it is deliberately not an ARIA `banner` landmark).
|
|
159
|
+
*
|
|
160
|
+
* **Sidebar alignment is an invariant, not a coincidence:** standalone, the
|
|
161
|
+
* toolbar is `h-14`. When the shell contains a `Sidebar.Header` (detected via
|
|
162
|
+
* `:has()` from `AppLayout.Root`), the toolbar instead derives its height from
|
|
163
|
+
* the sidebar's public `--sidebar-header-height` token as
|
|
164
|
+
* `calc(var(--sidebar-header-height, 4.5rem) - 1rem - 2px)` — subtracting
|
|
165
|
+
* twice the `AppLayout.Inset` gutter and twice the content card's hairline
|
|
166
|
+
* border — which keeps the two rows' vertical centers on the same band by
|
|
167
|
+
* construction. Override `--sidebar-header-height` on a common ancestor
|
|
168
|
+
* (e.g. `AppLayout.Root`'s `className`) and both rows move together.
|
|
169
|
+
*
|
|
170
|
+
* **CSS variables (public API):**
|
|
171
|
+
* - `--sidebar-header-height` — read, not owned: `Sidebar.Header` owns this
|
|
172
|
+
* token (default `4.5rem`) and `AppLayout.Header` derives its own height
|
|
173
|
+
* from it whenever a sidebar header is present in the shell. Set it on a
|
|
174
|
+
* common ancestor of both rows (e.g. `AppLayout.Root`), never on one of
|
|
175
|
+
* them, since custom properties only inherit downward.
|
|
176
|
+
*
|
|
177
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```tsx
|
|
181
|
+
* <Sidebar.Root>
|
|
182
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
183
|
+
* <SkipToMainLink />
|
|
184
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
185
|
+
* <AppLayout.Body>
|
|
186
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
187
|
+
* <AppLayout.Inset>
|
|
188
|
+
* <AppLayout.Content asChild>
|
|
189
|
+
* <Main>
|
|
190
|
+
* <AppLayout.Header>
|
|
191
|
+
* <Sidebar.Trigger />
|
|
192
|
+
* <Breadcrumbs />
|
|
193
|
+
* </AppLayout.Header>
|
|
194
|
+
* <Outlet />
|
|
195
|
+
* </Main>
|
|
196
|
+
* </AppLayout.Content>
|
|
197
|
+
* </AppLayout.Inset>
|
|
198
|
+
* </AppLayout.Body>
|
|
199
|
+
* </AppLayout.Root>
|
|
200
|
+
* </Sidebar.Root>
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
declare const Header: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"header"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
204
|
+
/**
|
|
205
|
+
* The scrolling content card of the shell: a rounded, bordered `bg-card`
|
|
206
|
+
* surface that fills the remaining space and scrolls internally
|
|
207
|
+
* (`overflow-y-auto overscroll-none`) — the page body never scrolls and
|
|
208
|
+
* scroll never bounces the shell. Render `AppLayout.Header` as its first
|
|
209
|
+
* child for a sticky in-card toolbar that content scrolls beneath. The card
|
|
210
|
+
* renders a `<div>` by default, but in a real
|
|
211
|
+
* app shell this should almost always be mantle's `Main` landmark, composed
|
|
212
|
+
* via `asChild` — pair it with a `SkipToMainLink` as the first child of
|
|
213
|
+
* `AppLayout.Root` so keyboard users can jump past the sidebar and toolbar
|
|
214
|
+
* straight into the content card (`SkipToMainLink`'s default `targetId`
|
|
215
|
+
* matches `Main`'s `id="main"`). The `<div>` default exists for embedded
|
|
216
|
+
* usage (docs demos, tests) where the surrounding document already owns the
|
|
217
|
+
* Main landmark.
|
|
218
|
+
*
|
|
219
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```tsx
|
|
223
|
+
* <Sidebar.Root>
|
|
224
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
225
|
+
* <SkipToMainLink />
|
|
226
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
227
|
+
* <AppLayout.Body>
|
|
228
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
229
|
+
* <AppLayout.Inset>
|
|
230
|
+
* <AppLayout.Content asChild>
|
|
231
|
+
* <Main>
|
|
232
|
+
* <AppLayout.Header>
|
|
233
|
+
* <Sidebar.Trigger />
|
|
234
|
+
* <Breadcrumbs />
|
|
235
|
+
* </AppLayout.Header>
|
|
236
|
+
* <Outlet />
|
|
237
|
+
* </Main>
|
|
238
|
+
* </AppLayout.Content>
|
|
239
|
+
* </AppLayout.Inset>
|
|
240
|
+
* </AppLayout.Body>
|
|
241
|
+
* </AppLayout.Root>
|
|
242
|
+
* </Sidebar.Root>
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
declare const Content: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
|
|
246
|
+
/**
|
|
247
|
+
* A viewport-locked application shell: an optional full-width
|
|
248
|
+
* `AppLayout.Notice` strip on top, then a row holding the app's columns —
|
|
249
|
+
* typically a `Sidebar.Nav` beside an `AppLayout.Inset` whose
|
|
250
|
+
* `AppLayout.Content` card is the only thing that scrolls. It owns structure
|
|
251
|
+
* only and is deliberately unaware of any sidebar: compose `Sidebar.Root`
|
|
252
|
+
* around it and place `Sidebar.Trigger` in `AppLayout.Header` to connect the
|
|
253
|
+
* two.
|
|
254
|
+
*
|
|
255
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* Composition:
|
|
259
|
+
* ```
|
|
260
|
+
* AppLayout.Root
|
|
261
|
+
* ├── AppLayout.Notice
|
|
262
|
+
* └── AppLayout.Body
|
|
263
|
+
* └── AppLayout.Inset
|
|
264
|
+
* └── AppLayout.Content
|
|
265
|
+
* └── AppLayout.Header
|
|
266
|
+
* ```
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* ```tsx
|
|
270
|
+
* <Sidebar.Root>
|
|
271
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
272
|
+
* <SkipToMainLink />
|
|
273
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
274
|
+
* <AppLayout.Body>
|
|
275
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
276
|
+
* <AppLayout.Inset>
|
|
277
|
+
* <AppLayout.Content asChild>
|
|
278
|
+
* <Main>
|
|
279
|
+
* <AppLayout.Header>
|
|
280
|
+
* <Sidebar.Trigger />
|
|
281
|
+
* <Breadcrumbs />
|
|
282
|
+
* </AppLayout.Header>
|
|
283
|
+
* <Outlet />
|
|
284
|
+
* </Main>
|
|
285
|
+
* </AppLayout.Content>
|
|
286
|
+
* </AppLayout.Inset>
|
|
287
|
+
* </AppLayout.Body>
|
|
288
|
+
* </AppLayout.Root>
|
|
289
|
+
* </Sidebar.Root>
|
|
290
|
+
* ```
|
|
291
|
+
*/
|
|
292
|
+
declare const AppLayout: {
|
|
293
|
+
/**
|
|
294
|
+
* The outer frame. Fills its nearest sized ancestor; merge
|
|
295
|
+
* `className="fixed inset-0"` to pin a real app shell to the viewport.
|
|
296
|
+
*
|
|
297
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
298
|
+
*
|
|
299
|
+
* @example
|
|
300
|
+
* ```tsx
|
|
301
|
+
* <Sidebar.Root>
|
|
302
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
303
|
+
* <SkipToMainLink />
|
|
304
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
305
|
+
* <AppLayout.Body>
|
|
306
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
307
|
+
* <AppLayout.Inset>
|
|
308
|
+
* <AppLayout.Content asChild>
|
|
309
|
+
* <Main>
|
|
310
|
+
* <AppLayout.Header>
|
|
311
|
+
* <Sidebar.Trigger />
|
|
312
|
+
* <Breadcrumbs />
|
|
313
|
+
* </AppLayout.Header>
|
|
314
|
+
* <Outlet />
|
|
315
|
+
* </Main>
|
|
316
|
+
* </AppLayout.Content>
|
|
317
|
+
* </AppLayout.Inset>
|
|
318
|
+
* </AppLayout.Body>
|
|
319
|
+
* </AppLayout.Root>
|
|
320
|
+
* </Sidebar.Root>
|
|
321
|
+
* ```
|
|
322
|
+
*/
|
|
323
|
+
readonly Root: typeof Root;
|
|
324
|
+
/**
|
|
325
|
+
* A full-window-width strip above everything (maintenance notices,
|
|
326
|
+
* environment warnings). Unstyled; collapses when empty.
|
|
327
|
+
*
|
|
328
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
329
|
+
*
|
|
330
|
+
* @example
|
|
331
|
+
* ```tsx
|
|
332
|
+
* <Sidebar.Root>
|
|
333
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
334
|
+
* <SkipToMainLink />
|
|
335
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
336
|
+
* <AppLayout.Body>
|
|
337
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
338
|
+
* <AppLayout.Inset>
|
|
339
|
+
* <AppLayout.Content asChild>
|
|
340
|
+
* <Main>
|
|
341
|
+
* <AppLayout.Header>
|
|
342
|
+
* <Sidebar.Trigger />
|
|
343
|
+
* <Breadcrumbs />
|
|
344
|
+
* </AppLayout.Header>
|
|
345
|
+
* <Outlet />
|
|
346
|
+
* </Main>
|
|
347
|
+
* </AppLayout.Content>
|
|
348
|
+
* </AppLayout.Inset>
|
|
349
|
+
* </AppLayout.Body>
|
|
350
|
+
* </AppLayout.Root>
|
|
351
|
+
* </Sidebar.Root>
|
|
352
|
+
* ```
|
|
353
|
+
*/
|
|
354
|
+
readonly Notice: typeof Notice;
|
|
355
|
+
/**
|
|
356
|
+
* The flex row below the notice — place a `Sidebar.Nav` beside an
|
|
357
|
+
* `AppLayout.Inset` here.
|
|
358
|
+
*
|
|
359
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
360
|
+
*
|
|
361
|
+
* @example
|
|
362
|
+
* ```tsx
|
|
363
|
+
* <Sidebar.Root>
|
|
364
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
365
|
+
* <SkipToMainLink />
|
|
366
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
367
|
+
* <AppLayout.Body>
|
|
368
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
369
|
+
* <AppLayout.Inset>
|
|
370
|
+
* <AppLayout.Content asChild>
|
|
371
|
+
* <Main>
|
|
372
|
+
* <AppLayout.Header>
|
|
373
|
+
* <Sidebar.Trigger />
|
|
374
|
+
* <Breadcrumbs />
|
|
375
|
+
* </AppLayout.Header>
|
|
376
|
+
* <Outlet />
|
|
377
|
+
* </Main>
|
|
378
|
+
* </AppLayout.Content>
|
|
379
|
+
* </AppLayout.Inset>
|
|
380
|
+
* </AppLayout.Body>
|
|
381
|
+
* </AppLayout.Root>
|
|
382
|
+
* </Sidebar.Root>
|
|
383
|
+
* ```
|
|
384
|
+
*/
|
|
385
|
+
readonly Body: typeof Body;
|
|
386
|
+
/**
|
|
387
|
+
* The content column: wraps the `AppLayout.Content` card and owns the
|
|
388
|
+
* card gutter.
|
|
389
|
+
*
|
|
390
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
391
|
+
*
|
|
392
|
+
* @example
|
|
393
|
+
* ```tsx
|
|
394
|
+
* <Sidebar.Root>
|
|
395
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
396
|
+
* <SkipToMainLink />
|
|
397
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
398
|
+
* <AppLayout.Body>
|
|
399
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
400
|
+
* <AppLayout.Inset>
|
|
401
|
+
* <AppLayout.Content asChild>
|
|
402
|
+
* <Main>
|
|
403
|
+
* <AppLayout.Header>
|
|
404
|
+
* <Sidebar.Trigger />
|
|
405
|
+
* <Breadcrumbs />
|
|
406
|
+
* </AppLayout.Header>
|
|
407
|
+
* <Outlet />
|
|
408
|
+
* </Main>
|
|
409
|
+
* </AppLayout.Content>
|
|
410
|
+
* </AppLayout.Inset>
|
|
411
|
+
* </AppLayout.Body>
|
|
412
|
+
* </AppLayout.Root>
|
|
413
|
+
* </Sidebar.Root>
|
|
414
|
+
* ```
|
|
415
|
+
*/
|
|
416
|
+
readonly Inset: typeof Inset;
|
|
417
|
+
/**
|
|
418
|
+
* The sticky toolbar `<header>` at the top of the content card — render
|
|
419
|
+
* it as `AppLayout.Content`'s first child, with `Sidebar.Trigger` in its
|
|
420
|
+
* top-left followed by breadcrumbs.
|
|
421
|
+
*
|
|
422
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
423
|
+
*
|
|
424
|
+
* @example
|
|
425
|
+
* ```tsx
|
|
426
|
+
* <Sidebar.Root>
|
|
427
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
428
|
+
* <SkipToMainLink />
|
|
429
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
430
|
+
* <AppLayout.Body>
|
|
431
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
432
|
+
* <AppLayout.Inset>
|
|
433
|
+
* <AppLayout.Content asChild>
|
|
434
|
+
* <Main>
|
|
435
|
+
* <AppLayout.Header>
|
|
436
|
+
* <Sidebar.Trigger />
|
|
437
|
+
* <Breadcrumbs />
|
|
438
|
+
* </AppLayout.Header>
|
|
439
|
+
* <Outlet />
|
|
440
|
+
* </Main>
|
|
441
|
+
* </AppLayout.Content>
|
|
442
|
+
* </AppLayout.Inset>
|
|
443
|
+
* </AppLayout.Body>
|
|
444
|
+
* </AppLayout.Root>
|
|
445
|
+
* </Sidebar.Root>
|
|
446
|
+
* ```
|
|
447
|
+
*/
|
|
448
|
+
readonly Header: typeof Header;
|
|
449
|
+
/**
|
|
450
|
+
* The rounded `bg-card` surface that is the shell's only scroll container
|
|
451
|
+
* (`overflow-y-auto overscroll-none`). `AppLayout.Header` is its first
|
|
452
|
+
* child; compose `Main` via `asChild` when the shell owns the document.
|
|
453
|
+
*
|
|
454
|
+
* @see https://mantle.ngrok.com/layouts/app-layout
|
|
455
|
+
*
|
|
456
|
+
* @example
|
|
457
|
+
* ```tsx
|
|
458
|
+
* <Sidebar.Root>
|
|
459
|
+
* <AppLayout.Root className="fixed inset-0">
|
|
460
|
+
* <SkipToMainLink />
|
|
461
|
+
* <AppLayout.Notice>{isUnderMaintenance && <MaintenanceBanner />}</AppLayout.Notice>
|
|
462
|
+
* <AppLayout.Body>
|
|
463
|
+
* <Sidebar.Nav aria-label="Main">…</Sidebar.Nav>
|
|
464
|
+
* <AppLayout.Inset>
|
|
465
|
+
* <AppLayout.Content asChild>
|
|
466
|
+
* <Main>
|
|
467
|
+
* <AppLayout.Header>
|
|
468
|
+
* <Sidebar.Trigger />
|
|
469
|
+
* <Breadcrumbs />
|
|
470
|
+
* </AppLayout.Header>
|
|
471
|
+
* <Outlet />
|
|
472
|
+
* </Main>
|
|
473
|
+
* </AppLayout.Content>
|
|
474
|
+
* </AppLayout.Inset>
|
|
475
|
+
* </AppLayout.Body>
|
|
476
|
+
* </AppLayout.Root>
|
|
477
|
+
* </Sidebar.Root>
|
|
478
|
+
* ```
|
|
479
|
+
*/
|
|
480
|
+
readonly Content: typeof Content;
|
|
481
|
+
};
|
|
482
|
+
//#endregion
|
|
483
|
+
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-Dpsqz16D.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-hidden`,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}),Body:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`app-layout-body`),className:e(`flex min-h-0 flex-1`,o),...c,children:a}),Inset:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`app-layout-inset`),className:e(`flex min-w-0 flex-1 flex-col gap-2 p-2`,o),...c,children:a}),Header:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`header`,{"data-slot":t(s,`app-layout-header`),className:e(`border-card-muted bg-card sticky top-0 z-10 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)-1rem-2px)]`,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 scrollbar min-h-0 flex-1 overflow-y-auto overscroll-none rounded-xl border shadow-sm`,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-DdBQ3xwx.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-Dpsqz16D.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-DdBQ3xwx.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-Dpsqz16D.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"./slot-
|
|
1
|
+
import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./slot-Dpsqz16D.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};
|
|
@@ -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-Dpsqz16D.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"./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-Dpsqz16D.js";import{t as r}from"./booleanish-BfvnW6vy.js";import{t as i}from"./button-DvHMWAPl.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{CircleNotchIcon as f}from"@phosphor-icons/react/CircleNotch";const p=({"aria-disabled":p,appearance:m,asChild:h=!1,children:g,className:_,disabled:v,icon:y,intent:b,isLoading:x=!1,label:S,ref:C,size:w=`md`,type:T,...E})=>{let D=r(p??v??x),O=x?u(f,{className:`animate-spin`}):y,k={"aria-disabled":D,"data-slot":`icon-button`,className:e(i({appearance:m,intent:b,isLoading:x,size:w}),_),"data-appearance":m,"data-disabled":D,"data-icon-button":!0,"data-intent":b,"data-loading":x,"data-size":w,disabled:D,ref:C,...E},A=d(l,{children:[u(`span`,{className:`sr-only`,children:S}),u(t,{svg:O})]});return h?(c(s(g)&&a.only(g),"When using `asChild`, IconButton must be passed a single child as a JSX tag."),u(n,{...k,children:o(g,{},A)})):u(`button`,{...k,type:T??`button`,children:A})};export{p as t};
|
package/dist/button.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./button-
|
|
1
|
+
import{t as e}from"./button-BUospUB3.js";import{t}from"./button-C0S8RbaJ.js";import{t as n}from"./button-BO2CKsz6.js";export{e as Button,n as ButtonGroup,t as IconButton};
|
package/dist/calendar.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ type CalendarProps = ComponentProps<typeof DayPicker>;
|
|
|
8
8
|
* @preview This component is in `preview` mode which means the API is not stable and may change.
|
|
9
9
|
* There may also be bugs! Please file an issue if you find any! <3
|
|
10
10
|
*
|
|
11
|
-
* @see https://mantle.ngrok.com/components/preview/calendar
|
|
11
|
+
* @see https://mantle.ngrok.com/components/preview/calendar
|
|
12
12
|
*
|
|
13
13
|
* @example
|
|
14
14
|
* ```tsx
|
package/dist/card.js
CHANGED
|
@@ -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-Dpsqz16D.js";import{jsx as n}from"react/jsx-runtime";const r={Root:({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card`,className:e(`border-card bg-card relative rounded-md border`,i),...s,children:a}),Body:({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-body`,className:e(`p-6 border-t border-card-muted first:border-t-0`,i),...s,children:a}),Footer:({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-footer`,className:e(`px-6 py-3 border-t border-card-muted first:border-t-0`,i),...s,children:a}),Header:({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-header`,className:e(`px-6 py-3 border-t border-card-muted first:border-t-0`,i),...s,children:a}),Title:({className:r,asChild:i,ref:a,...o})=>n(i?t:`h3`,{ref:a,"data-slot":`card-title`,className:e(`text-strong text-base font-medium`,r),...o})};export{r as Card};
|