@rinzai/zen 0.8.5 → 0.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/dist/animated-number/index.d.ts.map +1 -1
- package/dist/animated-number/index.js +19 -18
- package/dist/breadcrumbs/index.d.ts +15 -0
- package/dist/breadcrumbs/index.d.ts.map +1 -0
- package/dist/breadcrumbs/index.js +39 -0
- package/dist/card/index.d.ts +3 -1
- package/dist/card/index.d.ts.map +1 -1
- package/dist/card/index.js +3 -2
- package/dist/chart/donut.d.ts.map +1 -1
- package/dist/chart/donut.js +72 -70
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart/index.js +154 -152
- package/dist/code-block/index.js +1 -1
- package/dist/code-input/index.d.ts +20 -0
- package/dist/code-input/index.d.ts.map +1 -0
- package/dist/code-input/index.js +44 -0
- package/dist/command-palette/index.d.ts +37 -0
- package/dist/command-palette/index.d.ts.map +1 -0
- package/dist/command-palette/index.js +120 -0
- package/dist/dialog/index.d.ts +9 -1
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +116 -32
- package/dist/empty-state/index.d.ts +14 -0
- package/dist/empty-state/index.d.ts.map +1 -0
- package/dist/empty-state/index.js +31 -0
- package/dist/file-drop/index.d.ts +18 -0
- package/dist/file-drop/index.d.ts.map +1 -0
- package/dist/file-drop/index.js +49 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib.js +75 -63
- package/dist/pagination/index.d.ts +26 -0
- package/dist/pagination/index.d.ts.map +1 -0
- package/dist/pagination/index.js +62 -0
- package/dist/skeleton/index.d.ts +12 -2
- package/dist/skeleton/index.d.ts.map +1 -1
- package/dist/skeleton/index.js +11 -5
- package/dist/sparkline/index.d.ts +15 -0
- package/dist/sparkline/index.d.ts.map +1 -0
- package/dist/sparkline/index.js +56 -0
- package/dist/stepper/index.d.ts +19 -0
- package/dist/stepper/index.d.ts.map +1 -0
- package/dist/stepper/index.js +53 -0
- package/dist/table/index.d.ts +6 -1
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +78 -46
- package/dist/table-of-contents/index.d.ts +1 -0
- package/dist/table-of-contents/index.d.ts.map +1 -1
- package/dist/table-of-contents/index.js +25 -23
- package/dist/tag-input/index.d.ts +19 -0
- package/dist/tag-input/index.d.ts.map +1 -0
- package/dist/tag-input/index.js +61 -0
- package/dist/theme.css +159 -0
- package/dist/timeline/index.d.ts +18 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +45 -0
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +68 -67
- package/dist/utils/indicator.d.ts.map +1 -1
- package/dist/utils/indicator.js +1 -1
- package/dist/utils/motion.d.ts +3 -0
- package/dist/utils/motion.d.ts.map +1 -0
- package/dist/utils/motion.js +7 -0
- package/dist/utils/section-link.d.ts +9 -0
- package/dist/utils/section-link.d.ts.map +1 -0
- package/dist/utils/section-link.js +10 -0
- package/dist/utils/theme-wave.d.ts.map +1 -1
- package/dist/utils/theme-wave.js +84 -83
- package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
- package/dist/utils/useAnchoredPopup.js +6 -1
- package/dist/utils/useSeen.d.ts +4 -0
- package/dist/utils/useSeen.d.ts.map +1 -0
- package/dist/utils/useSeen.js +17 -0
- package/dist/zen.css +1 -1
- package/package.json +1 -1
package/dist/lib.js
CHANGED
|
@@ -5,66 +5,78 @@ import { applyGraphicsMode as t, detectGraphicsMode as n } from "./utils/graphic
|
|
|
5
5
|
import { useAnchoredPopup as r } from "./utils/useAnchoredPopup.js";
|
|
6
6
|
import i, { MenuContent as a, MenuHeader as o, MenuItem as s, MenuSeparator as c, MenuTrigger as l } from "./menu/index.js";
|
|
7
7
|
import { MoneyParseError as u, currencySymbol as d, formatAmount as f, formatMoney as p, minorDigits as m, parseMoney as h, parseMoneyInput as g } from "./utils/money.js";
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import S from "./
|
|
11
|
-
import
|
|
12
|
-
import w from "./
|
|
13
|
-
import T
|
|
14
|
-
import D from "./
|
|
15
|
-
import O
|
|
16
|
-
import
|
|
17
|
-
import I from "./
|
|
18
|
-
import L from "./
|
|
19
|
-
import R
|
|
20
|
-
import H from "./
|
|
21
|
-
import U from "./
|
|
22
|
-
import W
|
|
23
|
-
import
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
import
|
|
29
|
-
import pe from "./
|
|
30
|
-
import
|
|
31
|
-
import
|
|
32
|
-
import ve from "./
|
|
33
|
-
import
|
|
34
|
-
import
|
|
35
|
-
import
|
|
36
|
-
import
|
|
37
|
-
import je from "./month
|
|
38
|
-
import
|
|
39
|
-
import
|
|
40
|
-
import {
|
|
41
|
-
import
|
|
42
|
-
import
|
|
43
|
-
import
|
|
44
|
-
import
|
|
45
|
-
import rt from "./
|
|
46
|
-
import
|
|
47
|
-
import
|
|
48
|
-
import
|
|
49
|
-
import
|
|
50
|
-
import gt, {
|
|
51
|
-
import yt from "./
|
|
52
|
-
import
|
|
53
|
-
import
|
|
54
|
-
import Ct, {
|
|
55
|
-
import
|
|
56
|
-
import At from "./
|
|
57
|
-
import
|
|
58
|
-
import
|
|
59
|
-
import Pt, {
|
|
60
|
-
import Kt from "./table
|
|
61
|
-
import
|
|
62
|
-
import
|
|
63
|
-
import
|
|
64
|
-
import rn from "./
|
|
65
|
-
import
|
|
66
|
-
import
|
|
67
|
-
import {
|
|
68
|
-
import
|
|
69
|
-
import {
|
|
70
|
-
|
|
8
|
+
import { reducedMotion as _ } from "./utils/motion.js";
|
|
9
|
+
import v, { AnimatedMoney as y } from "./animated-number/index.js";
|
|
10
|
+
import b, { ImageCropError as x, cropImageToSquare as S } from "./avatar/index.js";
|
|
11
|
+
import C from "./backdrop/index.js";
|
|
12
|
+
import { cva as w } from "./utils/cva.js";
|
|
13
|
+
import T from "./badge/index.js";
|
|
14
|
+
import E, { StatusPillAction as D } from "./status-pill/index.js";
|
|
15
|
+
import O from "./spinner/index.js";
|
|
16
|
+
import k, { buttonVariants as A } from "./button/index.js";
|
|
17
|
+
import j, { CardDescription as M, CardHeader as N, CardTitle as P, Stat as F, StatRow as I } from "./card/index.js";
|
|
18
|
+
import L from "./code-block/index.js";
|
|
19
|
+
import R from "./chip/index.js";
|
|
20
|
+
import z, { PopoverClose as B, PopoverContent as V, PopoverTrigger as H } from "./popover/index.js";
|
|
21
|
+
import U from "./collapse/index.js";
|
|
22
|
+
import W from "./alert/index.js";
|
|
23
|
+
import G, { FormMessage as K, useField as q, useFieldProps as J } from "./field/index.js";
|
|
24
|
+
import Y, { InputGroupAddon as X, InputGroupInput as Z } from "./input-group/index.js";
|
|
25
|
+
import { FieldChevron as Q } from "./utils/field-chevron.js";
|
|
26
|
+
import { useVirtualList as $ } from "./utils/useVirtualList.js";
|
|
27
|
+
import ee, { ComboboxCreate as te, ComboboxEmpty as ne, ComboboxItem as re, ComboboxList as ie, ComboboxPopup as ae, ComboboxSearch as oe, ComboboxTrigger as se } from "./combobox/index.js";
|
|
28
|
+
import ce, { useToast as le, useToastHost as ue } from "./toast/index.js";
|
|
29
|
+
import de, { DialogClose as fe, DialogFooter as pe, useModal as me } from "./dialog/index.js";
|
|
30
|
+
import he from "./confirm-dialog/index.js";
|
|
31
|
+
import ge from "./editable-cell/index.js";
|
|
32
|
+
import _e, { DisclosureContent as ve, DisclosureTrigger as ye } from "./disclosure/index.js";
|
|
33
|
+
import be from "./header/index.js";
|
|
34
|
+
import xe from "./inset/index.js";
|
|
35
|
+
import Se from "./input/index.js";
|
|
36
|
+
import Ce from "./meter/index.js";
|
|
37
|
+
import { addMonths as we, currentMonth as Te, formatMonth as Ee, fromMonthIndex as De, isMonth as Oe, monthIndex as ke, monthNames as Ae, monthRange as je, monthsBetween as Me } from "./utils/month.js";
|
|
38
|
+
import Ne from "./month-picker/index.js";
|
|
39
|
+
import Pe from "./checkbox/index.js";
|
|
40
|
+
import { paletteColor as Fe } from "./chart/palette.js";
|
|
41
|
+
import { ChartTooltipCard as Ie } from "./chart/tooltip.js";
|
|
42
|
+
import Le from "./chart/donut.js";
|
|
43
|
+
import Re, { ChartArea as ze, ChartBar as Be, ChartLine as Ve, ChartReference as He, niceTicks as Ue } from "./chart/index.js";
|
|
44
|
+
import We, { Radio as Ge } from "./radio-group/index.js";
|
|
45
|
+
import { addDays as Ke, addMonthsToDate as qe, dayIndex as Je, dayOfWeek as Ye, daysBetween as Xe, daysInMonth as Ze, formatDate as Qe, formatDateRange as $e, fromDayIndex as et, isDate as tt, today as nt, weekStart as rt, weekdayNames as it } from "./utils/date.js";
|
|
46
|
+
import at from "./calendar/index.js";
|
|
47
|
+
import ot, { DateRangePicker as st } from "./date-picker/index.js";
|
|
48
|
+
import { RateUnavailableError as ct, convertMinor as lt, isRateTable as ut, rateBetween as dt } from "./utils/fx.js";
|
|
49
|
+
import ft, { MoneyConversionHint as pt, MoneyCurrencyMenu as mt, useMoneyInput as ht } from "./money-input/index.js";
|
|
50
|
+
import gt, { RadioCard as _t } from "./radio-cards/index.js";
|
|
51
|
+
import vt, { Pill as yt, PillIndicator as bt } from "./pills/index.js";
|
|
52
|
+
import xt from "./page-header/index.js";
|
|
53
|
+
import St from "./progress-ring/index.js";
|
|
54
|
+
import Ct, { SegmentedItem as wt } from "./segmented/index.js";
|
|
55
|
+
import Tt, { SelectGroup as Et, SelectItem as Dt, SelectSeparator as Ot } from "./select/index.js";
|
|
56
|
+
import kt, { SideNavGroup as At, SideNavLink as jt } from "./side-nav/index.js";
|
|
57
|
+
import Mt from "./skeleton/index.js";
|
|
58
|
+
import Nt from "./slider/index.js";
|
|
59
|
+
import Pt, { TabBarItem as Ft } from "./tab-bar/index.js";
|
|
60
|
+
import It, { TableBody as Lt, TableCell as Rt, TableContainer as zt, TableEmpty as Bt, TableFooter as Vt, TableFooterCell as Ht, TableHead as Ut, TableHeader as Wt, TableRow as Gt, TableSpacerRow as Kt, useSort as qt } from "./table/index.js";
|
|
61
|
+
import { followSectionLink as Jt } from "./utils/section-link.js";
|
|
62
|
+
import Yt from "./table-of-contents/index.js";
|
|
63
|
+
import Xt, { Tab as Zt, TabList as Qt, TabPanel as $t } from "./tabs/index.js";
|
|
64
|
+
import { TreeCell as en, TreeLabel as tn, TreeRow as nn, TreeToggle as rn, useTree as an } from "./tree/index.js";
|
|
65
|
+
import on from "./textarea/index.js";
|
|
66
|
+
import sn from "./toggle/index.js";
|
|
67
|
+
import cn, { TooltipContent as ln, TooltipTrigger as un } from "./tooltip/index.js";
|
|
68
|
+
import { DEFAULT_THEME as dn, INTENSITIES as fn, PRESETS as pn, applyPreset as mn, applyTheme as hn, contrastRatio as gn, customize as _n, normalizeTheme as vn, oklchToLinearRgb as yn, resetTheme as bn, themeVars as xn } from "./utils/theme.js";
|
|
69
|
+
import { prepareThemeWave as Sn, themeWave as Cn } from "./utils/theme-wave.js";
|
|
70
|
+
import wn, { ThemeScript as Tn, themeScript as En } from "./theme-toggle/index.js";
|
|
71
|
+
import { useHydrated as Dn } from "./utils/useHydrated.js";
|
|
72
|
+
import On, { Breadcrumb as kn } from "./breadcrumbs/index.js";
|
|
73
|
+
import An from "./code-input/index.js";
|
|
74
|
+
import jn, { useCommandPaletteShortcut as Mn } from "./command-palette/index.js";
|
|
75
|
+
import Nn from "./empty-state/index.js";
|
|
76
|
+
import Pn, { accepts as Fn } from "./file-drop/index.js";
|
|
77
|
+
import In, { pageRange as Ln } from "./pagination/index.js";
|
|
78
|
+
import Rn from "./sparkline/index.js";
|
|
79
|
+
import zn, { Step as Bn } from "./stepper/index.js";
|
|
80
|
+
import Vn from "./tag-input/index.js";
|
|
81
|
+
import Hn, { TimelineItem as Un } from "./timeline/index.js";
|
|
82
|
+
export { W as Alert, y as AnimatedMoney, v as AnimatedNumber, b as Avatar, C as Backdrop, T as Badge, kn as Breadcrumb, On as Breadcrumbs, k as Button, at as Calendar, j as Card, M as CardDescription, N as CardHeader, P as CardTitle, Re as Chart, ze as ChartArea, Be as ChartBar, Ve as ChartLine, He as ChartReference, Ie as ChartTooltipCard, Pe as Checkbox, R as Chip, L as CodeBlock, An as CodeInput, U as Collapse, ee as Combobox, te as ComboboxCreate, ne as ComboboxEmpty, re as ComboboxItem, ie as ComboboxList, ae as ComboboxPopup, oe as ComboboxSearch, se as ComboboxTrigger, jn as CommandPalette, he as ConfirmDialog, dn as DEFAULT_THEME, ot as DatePicker, st as DateRangePicker, de as Dialog, fe as DialogClose, pe as DialogFooter, _e as Disclosure, ve as DisclosureContent, ye as DisclosureTrigger, Le as DonutChart, ge as EditableCell, Nn as EmptyState, G as Field, Q as FieldChevron, Pn as FileDrop, K as FormMessage, be as Header, fn as INTENSITIES, x as ImageCropError, Se as Input, Y as InputGroup, X as InputGroupAddon, Z as InputGroupInput, xe as Inset, i as Menu, a as MenuContent, o as MenuHeader, s as MenuItem, c as MenuSeparator, l as MenuTrigger, Ce as Meter, pt as MoneyConversionHint, mt as MoneyCurrencyMenu, ft as MoneyInput, u as MoneyParseError, Ne as MonthPicker, pn as PRESETS, xt as PageHeader, In as Pagination, yt as Pill, bt as PillIndicator, vt as Pills, z as Popover, B as PopoverClose, V as PopoverContent, H as PopoverTrigger, St as ProgressRing, Ge as Radio, _t as RadioCard, gt as RadioCards, We as RadioGroup, ct as RateUnavailableError, Ct as Segmented, wt as SegmentedItem, Tt as Select, Et as SelectGroup, Dt as SelectItem, Ot as SelectSeparator, kt as SideNav, At as SideNavGroup, jt as SideNavLink, Mt as Skeleton, Nt as Slider, Rn as Sparkline, O as Spinner, F as Stat, I as StatRow, E as StatusPill, D as StatusPillAction, Bn as Step, zn as Stepper, Zt as Tab, Pt as TabBar, Ft as TabBarItem, Qt as TabList, $t as TabPanel, It as Table, Lt as TableBody, Rt as TableCell, zt as TableContainer, Bt as TableEmpty, Vt as TableFooter, Ht as TableFooterCell, Ut as TableHead, Wt as TableHeader, Yt as TableOfContents, Gt as TableRow, Kt as TableSpacerRow, Xt as Tabs, Vn as TagInput, on as TextArea, Tn as ThemeScript, wn as ThemeToggle, Hn as Timeline, Un as TimelineItem, ce as ToastProvider, sn as Toggle, cn as Tooltip, ln as TooltipContent, un as TooltipTrigger, en as TreeCell, tn as TreeLabel, nn as TreeRow, rn as TreeToggle, Fn as accepts, Ke as addDays, we as addMonths, qe as addMonthsToDate, t as applyGraphicsMode, mn as applyPreset, hn as applyTheme, A as buttonVariants, gn as contrastRatio, lt as convertMinor, S as cropImageToSquare, d as currencySymbol, Te as currentMonth, _n as customize, w as cva, e as cx, Je as dayIndex, Ye as dayOfWeek, Xe as daysBetween, Ze as daysInMonth, n as detectGraphicsMode, Jt as followSectionLink, f as formatAmount, Qe as formatDate, $e as formatDateRange, p as formatMoney, Ee as formatMonth, et as fromDayIndex, De as fromMonthIndex, tt as isDate, Oe as isMonth, ut as isRateTable, m as minorDigits, ke as monthIndex, Ae as monthNames, je as monthRange, Me as monthsBetween, Ue as niceTicks, vn as normalizeTheme, yn as oklchToLinearRgb, Ln as pageRange, Fe as paletteColor, h as parseMoney, g as parseMoneyInput, Sn as prepareThemeWave, dt as rateBetween, _ as reducedMotion, bn as resetTheme, En as themeScript, xn as themeVars, Cn as themeWave, nt as today, r as useAnchoredPopup, Mn as useCommandPaletteShortcut, q as useField, J as useFieldProps, Dn as useHydrated, me as useModal, ht as useMoneyInput, qt as useSort, le as useToast, ue as useToastHost, an as useTree, $ as useVirtualList, rt as weekStart, it as weekdayNames };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The pages a long list is split into: previous and next, the first and last
|
|
4
|
+
* pages, and those around the current one (`page`, from 1). Pages are buttons
|
|
5
|
+
* calling `onPageChange`, or with `href`, links (render them with your router's
|
|
6
|
+
* Link through `renderLink`).
|
|
7
|
+
*/
|
|
8
|
+
export default function Pagination({ page, count, onPageChange, href, renderLink, siblings, className, 'aria-label': label, }: PaginationProps): import('react').JSX.Element | null;
|
|
9
|
+
/** The pages to show: the first, the last, `siblings` either side of `page`, and a gap where pages are skipped. */
|
|
10
|
+
export declare function pageRange(page: number, count: number, siblings?: number): (number | 'gap')[];
|
|
11
|
+
export interface PaginationProps {
|
|
12
|
+
/** The current page, from 1. */
|
|
13
|
+
page: number;
|
|
14
|
+
/** How many pages there are. With fewer than 2, nothing is shown. */
|
|
15
|
+
count: number;
|
|
16
|
+
onPageChange?: (page: number) => void;
|
|
17
|
+
/** Pages as links: the URL of each. */
|
|
18
|
+
href?: (page: number) => string;
|
|
19
|
+
/** Renders a page link, e.g. with your router's Link. */
|
|
20
|
+
renderLink?: (props: ComponentProps<'a'>, page: number) => ReactNode;
|
|
21
|
+
/** Pages shown either side of the current one. */
|
|
22
|
+
siblings?: number;
|
|
23
|
+
className?: string;
|
|
24
|
+
'aria-label'?: string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/pagination/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAC/B,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,UAAwC,EACxC,QAAY,EACZ,SAAS,EACT,YAAY,EAAE,KAAe,GAChC,EAAE,eAAe,sCA6CjB;AAED,mHAAmH;AACnH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAavF;AAED,MAAM,WAAW,eAAe;IAC5B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,uCAAuC;IACvC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,yDAAyD;IACzD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;IACrE,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import { buttonVariants as t } from "../button/index.js";
|
|
4
|
+
import n from "../icons/chevron-left.js";
|
|
5
|
+
import r from "../icons/chevron-right.js";
|
|
6
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
7
|
+
//#region packages/pagination/index.tsx
|
|
8
|
+
function o({ page: o, count: c, onPageChange: l, href: u, renderLink: d = (e) => /* @__PURE__ */ i("a", { ...e }), siblings: f = 1, className: p, "aria-label": m = "Pages" }) {
|
|
9
|
+
if (c < 2) return null;
|
|
10
|
+
let h = (n, r, a) => {
|
|
11
|
+
let o = n < 1 || n > c, s = e(t({
|
|
12
|
+
variant: "ghost",
|
|
13
|
+
size: "icon"
|
|
14
|
+
}), "min-w-9 w-auto px-2 tabular-nums", a.current && "bg-primary/15 text-foreground shadow-[inset_0_0_0_1px_oklch(var(--primary)/0.3),0_0_18px_-6px_oklch(var(--glow)/calc(0.6*var(--glow-k)))] hover:bg-primary/20"), f = {
|
|
15
|
+
"aria-label": a["aria-label"],
|
|
16
|
+
"aria-current": a.current ? "page" : void 0,
|
|
17
|
+
className: s
|
|
18
|
+
};
|
|
19
|
+
return u && !o ? d({
|
|
20
|
+
...f,
|
|
21
|
+
href: u(n),
|
|
22
|
+
onClick: l && (() => l(n)),
|
|
23
|
+
children: r
|
|
24
|
+
}, n) : /* @__PURE__ */ i("button", {
|
|
25
|
+
type: "button",
|
|
26
|
+
...f,
|
|
27
|
+
disabled: o,
|
|
28
|
+
onClick: () => !a.current && l?.(n),
|
|
29
|
+
children: r
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
return /* @__PURE__ */ i("nav", {
|
|
33
|
+
"aria-label": m,
|
|
34
|
+
className: e("zen__pagination", p),
|
|
35
|
+
children: /* @__PURE__ */ a("ul", {
|
|
36
|
+
className: "flex items-center gap-1",
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ i("li", { children: h(o - 1, /* @__PURE__ */ i(n, { className: "size-4" }), { "aria-label": "Previous page" }) }),
|
|
39
|
+
s(o, c, f).map((e, t) => /* @__PURE__ */ i("li", { children: e === "gap" ? /* @__PURE__ */ i("span", {
|
|
40
|
+
"aria-hidden": !0,
|
|
41
|
+
className: "text-muted-foreground grid w-6 place-items-center",
|
|
42
|
+
children: "…"
|
|
43
|
+
}) : h(e, e, {
|
|
44
|
+
"aria-label": `Page ${e}`,
|
|
45
|
+
current: e === o
|
|
46
|
+
}) }, e === "gap" ? `gap${t}` : e)),
|
|
47
|
+
/* @__PURE__ */ i("li", { children: h(o + 1, /* @__PURE__ */ i(r, { className: "size-4" }), { "aria-label": "Next page" }) })
|
|
48
|
+
]
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function s(e, t, n = 1) {
|
|
53
|
+
let r = /* @__PURE__ */ new Set([1, t]);
|
|
54
|
+
for (let i = e - n; i <= e + n; i++) i >= 1 && i <= t && r.add(i);
|
|
55
|
+
let i = [...r].sort((e, t) => e - t), a = [];
|
|
56
|
+
return i.forEach((e, t) => {
|
|
57
|
+
let n = e - (i[t - 1] ?? e);
|
|
58
|
+
n === 2 ? a.push(e - 1) : n > 2 && a.push("gap"), a.push(e);
|
|
59
|
+
}), a;
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { o as default, s as pageRange };
|
package/dist/skeleton/index.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Shimmering placeholder in the shape of content that's on its way. Size it with className.
|
|
4
|
+
*
|
|
5
|
+
* Give it the content as its child and `loading`: the placeholder shows while
|
|
6
|
+
* loading, then the content fades in where it was.
|
|
7
|
+
*/
|
|
8
|
+
export default function Skeleton({ className, loading, children }: SkeletonProps): import('react').JSX.Element;
|
|
3
9
|
export interface SkeletonProps {
|
|
4
10
|
className?: string;
|
|
11
|
+
/** With children: show the placeholder instead of them while true. */
|
|
12
|
+
loading?: boolean;
|
|
13
|
+
/** The content this stands in for, a single element. */
|
|
14
|
+
children?: ReactElement;
|
|
5
15
|
}
|
|
6
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/skeleton/index.tsx"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/skeleton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAY,MAAM,OAAO,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,aAAa,+BAK/E;AAED,MAAM,WAAW,aAAa;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B"}
|
package/dist/skeleton/index.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx as e } from "../utils/cx.js";
|
|
3
|
-
import {
|
|
3
|
+
import { Slot as t } from "../utils/slot.js";
|
|
4
|
+
import { useState as n } from "react";
|
|
5
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
4
6
|
//#region packages/skeleton/index.tsx
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
+
function i({ className: i, loading: a, children: o }) {
|
|
8
|
+
let [s, c] = n(!!a);
|
|
9
|
+
return a && !s && c(!0), o && !a ? s ? /* @__PURE__ */ r(t, {
|
|
10
|
+
className: "zen__reveal",
|
|
11
|
+
children: o
|
|
12
|
+
}) : o : /* @__PURE__ */ r("span", {
|
|
7
13
|
"aria-hidden": !0,
|
|
8
|
-
className: e("zen__skeleton block rounded-md",
|
|
14
|
+
className: e("zen__skeleton block rounded-md", i)
|
|
9
15
|
});
|
|
10
16
|
}
|
|
11
17
|
//#endregion
|
|
12
|
-
export {
|
|
18
|
+
export { i as default };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* A small line of how a number has moved (a balance over a month, spending by
|
|
4
|
+
* week), with no axes: for beside a figure in a Stat or a table row. It takes
|
|
5
|
+
* its size from className (e.g. h-8 w-24) and draws itself in.
|
|
6
|
+
*/
|
|
7
|
+
export default function Sparkline({ values, area, tone, className, ref, ...rest }: SparklineProps): import('react').JSX.Element | null;
|
|
8
|
+
export interface SparklineProps extends Omit<ComponentProps<'svg'>, 'values'> {
|
|
9
|
+
values: number[];
|
|
10
|
+
/** A soft fill under the line. */
|
|
11
|
+
area?: boolean;
|
|
12
|
+
/** The accent (`primary`), red (`negative`), or grey (`muted`). */
|
|
13
|
+
tone?: 'primary' | 'negative' | 'muted';
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/sparkline/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAiB,MAAM,OAAO,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,MAAM,EAAE,IAAW,EAAE,IAAgB,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,sCA0DnH;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;CAC3C"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import { useSeen as t } from "../utils/useSeen.js";
|
|
4
|
+
import { useId as n, useRef as r } from "react";
|
|
5
|
+
import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
|
+
//#region packages/sparkline/index.tsx
|
|
7
|
+
function s({ values: s, area: c = !0, tone: l = "primary", className: u, ref: d, ...f }) {
|
|
8
|
+
let p = n(), m = r(null), h = t(m);
|
|
9
|
+
if (s.length < 2) return null;
|
|
10
|
+
let g = Math.min(...s), _ = Math.max(...s) - g || 1, v = s.map((e, t) => [t / (s.length - 1) * 100, 38 - (e - g) / _ * 36]).map(([e, t], n) => `${n ? "L" : "M"}${e.toFixed(2)},${t.toFixed(2)}`).join(""), y = l === "primary" ? "var(--color-primary)" : l === "negative" ? "var(--color-destructive)" : "var(--color-muted-foreground)", b = s[0], x = s[s.length - 1];
|
|
11
|
+
return /* @__PURE__ */ o("svg", {
|
|
12
|
+
ref: (e) => {
|
|
13
|
+
if (m.current = e, typeof d == "function") return d(e);
|
|
14
|
+
d && (d.current = e);
|
|
15
|
+
},
|
|
16
|
+
"data-zen-unseen": h ? void 0 : "",
|
|
17
|
+
role: "img",
|
|
18
|
+
"aria-label": `From ${b} to ${x}`,
|
|
19
|
+
viewBox: "0 0 100 40",
|
|
20
|
+
preserveAspectRatio: "none",
|
|
21
|
+
className: e("zen__sparkline h-8 w-24 overflow-visible", u),
|
|
22
|
+
style: { color: y },
|
|
23
|
+
...f,
|
|
24
|
+
children: [c && /* @__PURE__ */ o(i, { children: [/* @__PURE__ */ a("defs", { children: /* @__PURE__ */ o("linearGradient", {
|
|
25
|
+
id: p,
|
|
26
|
+
x1: "0",
|
|
27
|
+
y1: "0",
|
|
28
|
+
x2: "0",
|
|
29
|
+
y2: "1",
|
|
30
|
+
children: [/* @__PURE__ */ a("stop", {
|
|
31
|
+
offset: "0",
|
|
32
|
+
stopColor: "currentColor",
|
|
33
|
+
stopOpacity: "0.25"
|
|
34
|
+
}), /* @__PURE__ */ a("stop", {
|
|
35
|
+
offset: "1",
|
|
36
|
+
stopColor: "currentColor",
|
|
37
|
+
stopOpacity: "0"
|
|
38
|
+
})]
|
|
39
|
+
}) }), /* @__PURE__ */ a("path", {
|
|
40
|
+
className: "zen__chart-fade",
|
|
41
|
+
d: `${v}L100,40L0,40Z`,
|
|
42
|
+
fill: `url(#${p})`
|
|
43
|
+
})] }), /* @__PURE__ */ a("path", {
|
|
44
|
+
className: "zen__sparkline-draw",
|
|
45
|
+
d: v,
|
|
46
|
+
fill: "none",
|
|
47
|
+
stroke: "currentColor",
|
|
48
|
+
strokeWidth: 2,
|
|
49
|
+
strokeLinecap: "round",
|
|
50
|
+
strokeLinejoin: "round",
|
|
51
|
+
vectorEffect: "non-scaling-stroke"
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { s as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The steps of a flow (sign-up, checkout, import), with where you are: steps
|
|
4
|
+
* before `value` (from 0) are done, the one at it is current. The line between
|
|
5
|
+
* them fills in as you go.
|
|
6
|
+
*/
|
|
7
|
+
export default function Stepper({ value, className, children, 'aria-label': label, ...rest }: StepperProps): import('react').JSX.Element;
|
|
8
|
+
/** One step's label, and optionally a line under it (`description`). */
|
|
9
|
+
export declare function Step({ description, className, children }: StepProps): import('react').JSX.Element;
|
|
10
|
+
export interface StepperProps extends ComponentProps<'ol'> {
|
|
11
|
+
/** The current step, from 0. Steps before it are done; past the last, all are. */
|
|
12
|
+
value: number;
|
|
13
|
+
}
|
|
14
|
+
export interface StepProps {
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
description?: ReactNode;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/stepper/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,cAAc,EAAkB,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5E;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EAAE,KAAkB,EAChC,GAAG,IAAI,EACV,EAAE,YAAY,+BAgDd;AAED,wEAAwE;AACxE,wBAAgB,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAS,+BASnE;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,IAAI,CAAC;IACtD,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import t from "../icons/micro/check.js";
|
|
4
|
+
import { Children as n, isValidElement as r } from "react";
|
|
5
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
//#region packages/stepper/index.tsx
|
|
7
|
+
function o({ value: o, className: s, children: c, "aria-label": l = "Progress", ...u }) {
|
|
8
|
+
let d = n.toArray(c).filter(r);
|
|
9
|
+
return /* @__PURE__ */ i("ol", {
|
|
10
|
+
"aria-label": l,
|
|
11
|
+
className: e("zen__stepper flex w-full items-start", s),
|
|
12
|
+
...u,
|
|
13
|
+
children: d.map((n, r) => {
|
|
14
|
+
let s = r < o ? "done" : r === o ? "current" : "upcoming";
|
|
15
|
+
return /* @__PURE__ */ a("li", {
|
|
16
|
+
"data-state": s,
|
|
17
|
+
"aria-current": s === "current" ? "step" : void 0,
|
|
18
|
+
className: "group/step relative flex flex-1 flex-col items-center gap-2 text-center",
|
|
19
|
+
children: [
|
|
20
|
+
r > 0 && /* @__PURE__ */ i("span", {
|
|
21
|
+
"aria-hidden": !0,
|
|
22
|
+
className: "bg-tint/10 absolute top-3.5 right-[calc(50%+1.25rem)] left-[calc(-50%+1.25rem)] h-px overflow-hidden",
|
|
23
|
+
children: /* @__PURE__ */ i("span", { className: e("bg-primary ease-out-soft block h-full origin-left transition-transform duration-500", s === "upcoming" && "scale-x-0") })
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ i("span", {
|
|
26
|
+
"aria-hidden": !0,
|
|
27
|
+
className: e("grid size-7 place-items-center rounded-full text-xs font-semibold tabular-nums transition-[background-color,color,box-shadow] duration-300", s === "upcoming" && "bg-tint/[0.05] text-muted-foreground shadow-[inset_0_0_0_1px_oklch(var(--tint)/0.12)]", s === "current" && "bg-primary/15 text-foreground shadow-[inset_0_0_0_1px_oklch(var(--primary)/0.5),0_0_18px_-2px_oklch(var(--glow)/calc(0.7*var(--glow-k)))]", s === "done" && "bg-primary text-primary-foreground"),
|
|
28
|
+
children: s === "done" ? /* @__PURE__ */ i(t, { className: "size-3.5" }) : r + 1
|
|
29
|
+
}),
|
|
30
|
+
n,
|
|
31
|
+
/* @__PURE__ */ i("span", {
|
|
32
|
+
className: "sr-only",
|
|
33
|
+
children: s === "done" ? ", done" : s === "upcoming" ? ", not started" : ""
|
|
34
|
+
})
|
|
35
|
+
]
|
|
36
|
+
}, n.key ?? r);
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function s({ description: t, className: n, children: r }) {
|
|
41
|
+
return /* @__PURE__ */ a("span", {
|
|
42
|
+
className: e("flex flex-col gap-0.5 px-1", n),
|
|
43
|
+
children: [/* @__PURE__ */ i("span", {
|
|
44
|
+
className: "text-muted-foreground group-data-[state=current]/step:text-foreground group-data-[state=done]/step:text-foreground text-sm font-medium",
|
|
45
|
+
children: r
|
|
46
|
+
}), t && /* @__PURE__ */ i("span", {
|
|
47
|
+
className: "text-muted-foreground text-xs max-sm:hidden",
|
|
48
|
+
children: t
|
|
49
|
+
})]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { s as Step, o as default };
|
package/dist/table/index.d.ts
CHANGED
|
@@ -11,7 +11,12 @@ export declare function TableContainer({ label, className, ref, onScroll, ...res
|
|
|
11
11
|
export default function Table({ className, ...rest }: ComponentProps<'table'>): import('react').JSX.Element;
|
|
12
12
|
/** The heading rows: they stay at the top while the body scrolls, frosted as one surface. */
|
|
13
13
|
export declare function TableHeader({ className, ...rest }: ComponentProps<'thead'>): import('react').JSX.Element;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The rows. When rows are added, removed or reordered (a sort), the others
|
|
16
|
+
* slide to their new places and new ones fade in. Not with spacer rows (a
|
|
17
|
+
* virtual list: rows come and go as it scrolls), nor with reduced motion.
|
|
18
|
+
*/
|
|
19
|
+
export declare function TableBody({ ref, ...rest }: ComponentProps<'tbody'>): import('react').JSX.Element;
|
|
15
20
|
/** Rows that stay at the bottom while the body scrolls (totals, balances). */
|
|
16
21
|
export declare function TableFooter({ className, ...rest }: ComponentProps<'tfoot'>): import('react').JSX.Element;
|
|
17
22
|
/** A row; its cells light up together on hover. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/table/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/table/index.tsx"],"names":[],"mappings":"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"}
|