@datum-cloud/datum-ui 2.7.0 → 2.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/{calendar-date-picker-bpTUcGu_.mjs → calendar-date-picker-DW31tDSa.mjs} +1 -1
- package/dist/card/index.mjs +2 -2
- package/dist/card-save-bar-Dub71HRf.mjs +281 -0
- package/dist/components/base/card/card-save-bar.d.ts +29 -0
- package/dist/components/base/card/card.d.ts +83 -6
- package/dist/components/base/card/index.d.ts +1 -0
- package/dist/components/base/index.d.ts +1 -0
- package/dist/components/base/settings-nav/index.d.ts +2 -0
- package/dist/components/base/settings-nav/settings-nav-variants.d.ts +3 -0
- package/dist/components/base/settings-nav/settings-nav.d.ts +28 -0
- package/dist/components/base/switch/switch.d.ts +9 -3
- package/dist/components/base/tabs/tabs.d.ts +12 -4
- package/dist/data-table/index.mjs +1 -1
- package/dist/{data-table-BaWOHdZX.mjs → data-table-CW3-xqkg.mjs} +2 -2
- package/dist/date-picker/index.mjs +3 -3
- package/dist/date-time-picker/index.mjs +1 -1
- package/dist/{date-time-picker-Bd7qSZVr.mjs → date-time-picker-BVvWQXMt.mjs} +1 -1
- package/dist/{date-time-range-picker-DlFTh3DF.mjs → date-time-range-picker-BEulotVf.mjs} +1 -1
- package/dist/form/index.mjs +1 -1
- package/dist/{form-BKxvdIKB.mjs → form-DB5MbJ2U.mjs} +6 -6
- package/dist/grouped-table/index.mjs +1 -1
- package/dist/{grouped-table-DWtEx18V.mjs → grouped-table-DKUsSHpe.mjs} +1 -1
- package/dist/index.mjs +14 -13
- package/dist/logs/index.mjs +1 -1
- package/dist/picker/index.mjs +2 -2
- package/dist/{picker-DbKukBkk.mjs → picker-Cke6cfsb.mjs} +1 -1
- package/dist/select/index.mjs +1 -1
- package/dist/{select-CQsG8Kju.mjs → select-D4pk9e2d.mjs} +1 -1
- package/dist/settings-nav/index.mjs +2 -0
- package/dist/settings-nav-BCL1lMTM.mjs +84 -0
- package/dist/switch/index.mjs +1 -1
- package/dist/switch-BaR-Vna4.mjs +34 -0
- package/dist/tabs/index.mjs +75 -19
- package/dist/textarea/index.mjs +1 -1
- package/dist/{textarea-B6YhjFVC.mjs → textarea-DiSGxCBO.mjs} +1 -1
- package/dist/time-picker/index.mjs +1 -1
- package/dist/{time-picker-rVTkmbIG.mjs → time-picker-BzNSUazl.mjs} +1 -1
- package/dist/{to-api-format-Bm1VcKkS.mjs → to-api-format-W3qJE68W.mjs} +2 -2
- package/package.json +6 -1
- package/dist/card-Cphn2nA3.mjs +0 -59
- package/dist/switch-Z2pJMckf.mjs +0 -28
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as useDeprecationWarning } from "./use-deprecation-warning-DXrGc0jX.mjs";
|
|
2
|
-
import { a as DateRangePicker } from "./picker-
|
|
2
|
+
import { a as DateRangePicker } from "./picker-Cke6cfsb.mjs";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/features/calendar-date-picker/calendar-date-picker.tsx
|
|
5
5
|
/**
|
package/dist/card/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
|
|
1
|
+
import { a as CardField, c as CardFooter, d as CardTitle, i as CardContent, l as CardHeader, n as Card, o as CardFieldLabel, r as CardAction, s as CardFieldValue, t as CardSaveBar, u as CardDescription } from "../card-save-bar-Dub71HRf.mjs";
|
|
2
|
+
export { Card, CardAction, CardContent, CardDescription, CardField, CardFieldLabel, CardFieldValue, CardFooter, CardHeader, CardSaveBar, CardTitle };
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { t as cn } from "./utils-Bu32wN-x.mjs";
|
|
2
|
+
import { t as Button } from "./button-DoMqfQLu.mjs";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import "react";
|
|
5
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region ../shadcn/ui/card.tsx
|
|
7
|
+
function CardTitle({ className, ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx("div", {
|
|
9
|
+
"data-slot": "card-title",
|
|
10
|
+
className: cn("leading-none font-semibold", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function CardDescription({ className, ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsx("div", {
|
|
16
|
+
"data-slot": "card-description",
|
|
17
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region src/components/base/card/card.tsx
|
|
23
|
+
/**
|
|
24
|
+
* Datum Card
|
|
25
|
+
*
|
|
26
|
+
* Extends the shadcn Card with layout variants so consumers can build dense
|
|
27
|
+
* dashboard tiles, sectioned settings cards, and flush lists/tables without
|
|
28
|
+
* fighting the default padding with className overrides.
|
|
29
|
+
*
|
|
30
|
+
* Spacing model
|
|
31
|
+
* -------------
|
|
32
|
+
* The root publishes two CSS variables that every slot reads:
|
|
33
|
+
*
|
|
34
|
+
* --card-px horizontal inset shared by header, content, and footer
|
|
35
|
+
* --card-py vertical inset used by header/footer/content in sectioned cards
|
|
36
|
+
*
|
|
37
|
+
* Both are equal for a given `size` (1rem for `sm`, 1.5rem for `md`), so the
|
|
38
|
+
* card frame is uniform; `CardHeader size` only nudges the header's own inset.
|
|
39
|
+
*
|
|
40
|
+
* Consumers building their own rows inside a flush `CardContent` can use
|
|
41
|
+
* `px-(--card-px)` to line up with the card chrome regardless of `size`.
|
|
42
|
+
*
|
|
43
|
+
* Layouts
|
|
44
|
+
* -------
|
|
45
|
+
* - Stacked (default): the root carries vertical padding and a gap between
|
|
46
|
+
* slots; slots only carry horizontal padding. This is the historical
|
|
47
|
+
* behaviour and the default visuals are unchanged.
|
|
48
|
+
* - Sectioned (`sectioned`): the root carries no padding or gap; each slot
|
|
49
|
+
* owns its own vertical inset and slots are separated by dividers
|
|
50
|
+
* (`CardHeader bordered`, `CardFooter bordered`). Use for headers that sit
|
|
51
|
+
* above flush lists/tables, and for settings cards with a sticky footer.
|
|
52
|
+
*/
|
|
53
|
+
const cardVariants = cva("group/card bg-card text-card-foreground border-card-border flex flex-col rounded-xl border", {
|
|
54
|
+
variants: {
|
|
55
|
+
size: {
|
|
56
|
+
sm: "[--card-px:1rem] [--card-py:1rem]",
|
|
57
|
+
md: "[--card-px:1.5rem] [--card-py:1.5rem]"
|
|
58
|
+
},
|
|
59
|
+
sectioned: {
|
|
60
|
+
true: "gap-0 py-0",
|
|
61
|
+
false: ""
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
compoundVariants: [{
|
|
65
|
+
size: "sm",
|
|
66
|
+
sectioned: false,
|
|
67
|
+
className: "gap-3 py-4"
|
|
68
|
+
}, {
|
|
69
|
+
size: "md",
|
|
70
|
+
sectioned: false,
|
|
71
|
+
className: "gap-4 py-6"
|
|
72
|
+
}],
|
|
73
|
+
defaultVariants: {
|
|
74
|
+
size: "md",
|
|
75
|
+
sectioned: false
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
function Card({ className, size, sectioned, ...props }) {
|
|
79
|
+
return /* @__PURE__ */ jsx("div", {
|
|
80
|
+
"data-slot": "card",
|
|
81
|
+
"data-size": size ?? "md",
|
|
82
|
+
"data-layout": sectioned ? "sectioned" : "stacked",
|
|
83
|
+
className: cn(cardVariants({
|
|
84
|
+
size,
|
|
85
|
+
sectioned
|
|
86
|
+
}), className),
|
|
87
|
+
...props
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const cardHeaderVariants = cva("@container/card-header group/card-header border-card-border grid auto-rows-min grid-rows-[auto_auto] content-center items-center px-(--card-px) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:items-start", {
|
|
91
|
+
variants: {
|
|
92
|
+
/**
|
|
93
|
+
* Header density. Controls the gap between title and description and,
|
|
94
|
+
* in sectioned cards, the header's minimum height (`lg` also grows the
|
|
95
|
+
* vertical inset). Stacked cards take their vertical spacing from the
|
|
96
|
+
* root.
|
|
97
|
+
*/
|
|
98
|
+
size: {
|
|
99
|
+
sm: "has-data-[slot=card-description]:gap-1 group-data-[layout=sectioned]/card:min-h-12 group-data-[layout=sectioned]/card:py-(--card-py)",
|
|
100
|
+
md: "has-data-[slot=card-description]:gap-3 group-data-[layout=sectioned]/card:min-h-14 group-data-[layout=sectioned]/card:py-(--card-py)",
|
|
101
|
+
lg: "has-data-[slot=card-description]:gap-3 group-data-[layout=sectioned]/card:min-h-16 group-data-[layout=sectioned]/card:py-[calc(var(--card-py)*1.25)]"
|
|
102
|
+
},
|
|
103
|
+
/** Draw a divider under the header. Pairs with `sectioned` cards. */
|
|
104
|
+
bordered: {
|
|
105
|
+
true: "border-b",
|
|
106
|
+
false: ""
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
defaultVariants: {
|
|
110
|
+
size: "md",
|
|
111
|
+
bordered: false
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
function CardHeader({ className, size, bordered, ...props }) {
|
|
115
|
+
return /* @__PURE__ */ jsx("div", {
|
|
116
|
+
"data-slot": "card-header",
|
|
117
|
+
className: cn(cardHeaderVariants({
|
|
118
|
+
size,
|
|
119
|
+
bordered
|
|
120
|
+
}), className),
|
|
121
|
+
...props
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Trailing header action (button, link, badge). Renders in the header's
|
|
126
|
+
* second grid column. With a description it spans both rows and top-aligns;
|
|
127
|
+
* title-only it shares the title's row and centres against it.
|
|
128
|
+
*/
|
|
129
|
+
function CardAction({ className, ...props }) {
|
|
130
|
+
return /* @__PURE__ */ jsx("div", {
|
|
131
|
+
"data-slot": "card-action",
|
|
132
|
+
className: cn("col-start-2 row-start-1 flex items-center gap-2 self-center justify-self-end", "group-has-data-[slot=card-description]/card-header:row-end-3 group-has-data-[slot=card-description]/card-header:self-start", className),
|
|
133
|
+
...props
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
const cardContentVariants = cva("", {
|
|
137
|
+
variants: {
|
|
138
|
+
/**
|
|
139
|
+
* - `default`: inset to match the card chrome.
|
|
140
|
+
* - `x-none`: no horizontal inset — rows, tables, and dividers run to
|
|
141
|
+
* the card edge while the header stays inset.
|
|
142
|
+
* - `none`: no inset at all.
|
|
143
|
+
*/
|
|
144
|
+
padding: {
|
|
145
|
+
"default": "px-(--card-px) group-data-[layout=sectioned]/card:py-(--card-py)",
|
|
146
|
+
"x-none": "px-0 group-data-[layout=sectioned]/card:py-(--card-py)",
|
|
147
|
+
"none": "p-0"
|
|
148
|
+
} },
|
|
149
|
+
defaultVariants: { padding: "default" }
|
|
150
|
+
});
|
|
151
|
+
function CardContent({ className, padding, ...props }) {
|
|
152
|
+
return /* @__PURE__ */ jsx("div", {
|
|
153
|
+
"data-slot": "card-content",
|
|
154
|
+
className: cn(cardContentVariants({ padding }), className),
|
|
155
|
+
...props
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
const cardFooterVariants = cva("border-card-border", {
|
|
159
|
+
variants: {
|
|
160
|
+
padding: {
|
|
161
|
+
"default": "px-(--card-px) group-data-[layout=sectioned]/card:py-(--card-py)",
|
|
162
|
+
"x-none": "px-0 group-data-[layout=sectioned]/card:py-(--card-py)",
|
|
163
|
+
"none": "p-0"
|
|
164
|
+
},
|
|
165
|
+
/** Draw a divider above the footer. Pairs with `sectioned` cards. */
|
|
166
|
+
bordered: {
|
|
167
|
+
true: "border-t",
|
|
168
|
+
false: ""
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
defaultVariants: {
|
|
172
|
+
padding: "default",
|
|
173
|
+
bordered: false
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
function CardFooter({ className, padding, bordered, ...props }) {
|
|
177
|
+
return /* @__PURE__ */ jsx("div", {
|
|
178
|
+
"data-slot": "card-footer",
|
|
179
|
+
className: cn(cardFooterVariants({
|
|
180
|
+
padding,
|
|
181
|
+
bordered
|
|
182
|
+
}), className),
|
|
183
|
+
...props
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Label | value definition row for sectioned settings cards.
|
|
188
|
+
*
|
|
189
|
+
* Two equal columns from `sm` up (stacked below), so labels, values, inline
|
|
190
|
+
* inputs, and status chips share the same midline down a card and across
|
|
191
|
+
* neighbouring cards. Both columns are `minmax(0, 1fr)` so long mono values
|
|
192
|
+
* can truncate instead of pushing the value column out. Pair with
|
|
193
|
+
* `CardContent padding="none"`: the row insets itself with `mx-(--card-px)`
|
|
194
|
+
* (not padding) so the divider between rows runs only as wide as the content,
|
|
195
|
+
* while the card header's own divider still spans the full card.
|
|
196
|
+
* Compose a help control inside `CardFieldLabel`; keep Tooltip/icons in the
|
|
197
|
+
* consumer, not here.
|
|
198
|
+
*/
|
|
199
|
+
function CardField({ className, ...props }) {
|
|
200
|
+
return /* @__PURE__ */ jsx("div", {
|
|
201
|
+
"data-slot": "card-field",
|
|
202
|
+
className: cn("border-card-border mx-(--card-px) grid grid-cols-1 items-start gap-1 border-b py-3.5 last:border-b-0 sm:grid-cols-2 sm:items-center sm:gap-x-6", className),
|
|
203
|
+
...props
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
function CardFieldLabel({ className, ...props }) {
|
|
207
|
+
return /* @__PURE__ */ jsx("div", {
|
|
208
|
+
"data-slot": "card-field-label",
|
|
209
|
+
className: cn("flex min-w-0 items-center gap-1.5 text-sm font-medium", className),
|
|
210
|
+
...props
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
function CardFieldValue({ className, ...props }) {
|
|
214
|
+
return /* @__PURE__ */ jsx("div", {
|
|
215
|
+
"data-slot": "card-field-value",
|
|
216
|
+
className: cn("min-w-0 text-sm", className),
|
|
217
|
+
...props
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
//#endregion
|
|
221
|
+
//#region src/components/base/card/card-save-bar.tsx
|
|
222
|
+
function pluralize(count, noun) {
|
|
223
|
+
return `${count} ${noun}${count === 1 ? "" : "s"}`;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Save / cancel bar for inline-editable settings cards.
|
|
227
|
+
*
|
|
228
|
+
* Renders in a bordered `CardFooter` and owns the pattern every settings card
|
|
229
|
+
* repeats: a live status line ("2 unsaved changes · 1 error must be fixed"),
|
|
230
|
+
* a Cancel button, and a Save button that is disabled until something has
|
|
231
|
+
* changed and nothing is invalid. Buttons use the `xs` size to match the
|
|
232
|
+
* `CardAction` controls in the header of a `size="sm"` sectioned card.
|
|
233
|
+
*/
|
|
234
|
+
function CardSaveBar({ changeCount, errorCount = 0, saving = false, onCancel, onSave, cancelLabel = "Cancel", saveLabel = "Save changes", children, className, ...props }) {
|
|
235
|
+
const status = children ?? (changeCount === 0 ? "No unsaved changes" : pluralize(changeCount, "unsaved change"));
|
|
236
|
+
return /* @__PURE__ */ jsxs(CardFooter, {
|
|
237
|
+
bordered: true,
|
|
238
|
+
"data-slot": "card-save-bar",
|
|
239
|
+
role: "status",
|
|
240
|
+
"aria-live": "polite",
|
|
241
|
+
className: cn("flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", className),
|
|
242
|
+
...props,
|
|
243
|
+
children: [/* @__PURE__ */ jsxs("p", {
|
|
244
|
+
className: "text-muted-foreground flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-0.5 text-sm",
|
|
245
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
246
|
+
className: "text-foreground font-medium",
|
|
247
|
+
children: status
|
|
248
|
+
}), errorCount > 0 ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
249
|
+
"aria-hidden": true,
|
|
250
|
+
children: "·"
|
|
251
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
252
|
+
className: "text-destructive",
|
|
253
|
+
children: [
|
|
254
|
+
pluralize(errorCount, "error"),
|
|
255
|
+
" ",
|
|
256
|
+
"must be fixed before saving"
|
|
257
|
+
]
|
|
258
|
+
})] }) : null]
|
|
259
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
260
|
+
className: "flex shrink-0 items-center gap-2",
|
|
261
|
+
children: [/* @__PURE__ */ jsx(Button, {
|
|
262
|
+
type: "secondary",
|
|
263
|
+
theme: "outline",
|
|
264
|
+
size: "xs",
|
|
265
|
+
disabled: saving,
|
|
266
|
+
onClick: onCancel,
|
|
267
|
+
children: cancelLabel
|
|
268
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
269
|
+
type: "primary",
|
|
270
|
+
theme: "solid",
|
|
271
|
+
size: "xs",
|
|
272
|
+
disabled: changeCount === 0 || errorCount > 0 || saving,
|
|
273
|
+
loading: saving,
|
|
274
|
+
onClick: onSave,
|
|
275
|
+
children: saveLabel
|
|
276
|
+
})]
|
|
277
|
+
})]
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
//#endregion
|
|
281
|
+
export { CardField as a, CardFooter as c, CardTitle as d, CardContent as i, CardHeader as l, Card as n, CardFieldLabel as o, CardAction as r, CardFieldValue as s, CardSaveBar as t, CardDescription as u };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface CardSaveBarProps extends Omit<React.ComponentProps<'div'>, 'children'> {
|
|
3
|
+
/** Number of fields that differ from their saved value. */
|
|
4
|
+
changeCount: number;
|
|
5
|
+
/** Number of fields that currently fail validation. Save is blocked while > 0. */
|
|
6
|
+
errorCount?: number;
|
|
7
|
+
/** A save is in flight: Save shows a spinner and both buttons are disabled. */
|
|
8
|
+
saving?: boolean;
|
|
9
|
+
onCancel: () => void;
|
|
10
|
+
onSave: () => void;
|
|
11
|
+
cancelLabel?: string;
|
|
12
|
+
saveLabel?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Replaces the generated "N unsaved changes" status. The error summary is
|
|
15
|
+
* still appended when `errorCount` is non-zero.
|
|
16
|
+
*/
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Save / cancel bar for inline-editable settings cards.
|
|
21
|
+
*
|
|
22
|
+
* Renders in a bordered `CardFooter` and owns the pattern every settings card
|
|
23
|
+
* repeats: a live status line ("2 unsaved changes · 1 error must be fixed"),
|
|
24
|
+
* a Cancel button, and a Save button that is disabled until something has
|
|
25
|
+
* changed and nothing is invalid. Buttons use the `xs` size to match the
|
|
26
|
+
* `CardAction` controls in the header of a `size="sm"` sectioned card.
|
|
27
|
+
*/
|
|
28
|
+
declare function CardSaveBar({ changeCount, errorCount, saving, onCancel, onSave, cancelLabel, saveLabel, children, className, ...props }: CardSaveBarProps): React.JSX.Element;
|
|
29
|
+
export { CardSaveBar };
|
|
@@ -1,7 +1,84 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import { CardDescription, CardTitle } from '../../../_shadcn/ui/card';
|
|
2
3
|
import * as React from 'react';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Datum Card
|
|
6
|
+
*
|
|
7
|
+
* Extends the shadcn Card with layout variants so consumers can build dense
|
|
8
|
+
* dashboard tiles, sectioned settings cards, and flush lists/tables without
|
|
9
|
+
* fighting the default padding with className overrides.
|
|
10
|
+
*
|
|
11
|
+
* Spacing model
|
|
12
|
+
* -------------
|
|
13
|
+
* The root publishes two CSS variables that every slot reads:
|
|
14
|
+
*
|
|
15
|
+
* --card-px horizontal inset shared by header, content, and footer
|
|
16
|
+
* --card-py vertical inset used by header/footer/content in sectioned cards
|
|
17
|
+
*
|
|
18
|
+
* Both are equal for a given `size` (1rem for `sm`, 1.5rem for `md`), so the
|
|
19
|
+
* card frame is uniform; `CardHeader size` only nudges the header's own inset.
|
|
20
|
+
*
|
|
21
|
+
* Consumers building their own rows inside a flush `CardContent` can use
|
|
22
|
+
* `px-(--card-px)` to line up with the card chrome regardless of `size`.
|
|
23
|
+
*
|
|
24
|
+
* Layouts
|
|
25
|
+
* -------
|
|
26
|
+
* - Stacked (default): the root carries vertical padding and a gap between
|
|
27
|
+
* slots; slots only carry horizontal padding. This is the historical
|
|
28
|
+
* behaviour and the default visuals are unchanged.
|
|
29
|
+
* - Sectioned (`sectioned`): the root carries no padding or gap; each slot
|
|
30
|
+
* owns its own vertical inset and slots are separated by dividers
|
|
31
|
+
* (`CardHeader bordered`, `CardFooter bordered`). Use for headers that sit
|
|
32
|
+
* above flush lists/tables, and for settings cards with a sticky footer.
|
|
33
|
+
*/
|
|
34
|
+
declare const cardVariants: (props?: ({
|
|
35
|
+
size?: "sm" | "md" | null | undefined;
|
|
36
|
+
sectioned?: boolean | null | undefined;
|
|
37
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
38
|
+
export interface CardProps extends React.ComponentProps<'div'>, VariantProps<typeof cardVariants> {
|
|
39
|
+
}
|
|
40
|
+
declare function Card({ className, size, sectioned, ...props }: CardProps): React.JSX.Element;
|
|
41
|
+
declare const cardHeaderVariants: (props?: ({
|
|
42
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
43
|
+
bordered?: boolean | null | undefined;
|
|
44
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
45
|
+
export interface CardHeaderProps extends React.ComponentProps<'div'>, VariantProps<typeof cardHeaderVariants> {
|
|
46
|
+
}
|
|
47
|
+
declare function CardHeader({ className, size, bordered, ...props }: CardHeaderProps): React.JSX.Element;
|
|
48
|
+
/**
|
|
49
|
+
* Trailing header action (button, link, badge). Renders in the header's
|
|
50
|
+
* second grid column. With a description it spans both rows and top-aligns;
|
|
51
|
+
* title-only it shares the title's row and centres against it.
|
|
52
|
+
*/
|
|
53
|
+
declare function CardAction({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
54
|
+
declare const cardContentVariants: (props?: ({
|
|
55
|
+
padding?: "default" | "none" | "x-none" | null | undefined;
|
|
56
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
57
|
+
export interface CardContentProps extends React.ComponentProps<'div'>, VariantProps<typeof cardContentVariants> {
|
|
58
|
+
}
|
|
59
|
+
declare function CardContent({ className, padding, ...props }: CardContentProps): React.JSX.Element;
|
|
60
|
+
declare const cardFooterVariants: (props?: ({
|
|
61
|
+
padding?: "default" | "none" | "x-none" | null | undefined;
|
|
62
|
+
bordered?: boolean | null | undefined;
|
|
63
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
64
|
+
export interface CardFooterProps extends React.ComponentProps<'div'>, VariantProps<typeof cardFooterVariants> {
|
|
65
|
+
}
|
|
66
|
+
declare function CardFooter({ className, padding, bordered, ...props }: CardFooterProps): React.JSX.Element;
|
|
67
|
+
/**
|
|
68
|
+
* Label | value definition row for sectioned settings cards.
|
|
69
|
+
*
|
|
70
|
+
* Two equal columns from `sm` up (stacked below), so labels, values, inline
|
|
71
|
+
* inputs, and status chips share the same midline down a card and across
|
|
72
|
+
* neighbouring cards. Both columns are `minmax(0, 1fr)` so long mono values
|
|
73
|
+
* can truncate instead of pushing the value column out. Pair with
|
|
74
|
+
* `CardContent padding="none"`: the row insets itself with `mx-(--card-px)`
|
|
75
|
+
* (not padding) so the divider between rows runs only as wide as the content,
|
|
76
|
+
* while the card header's own divider still spans the full card.
|
|
77
|
+
* Compose a help control inside `CardFieldLabel`; keep Tooltip/icons in the
|
|
78
|
+
* consumer, not here.
|
|
79
|
+
*/
|
|
80
|
+
declare function CardField({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
81
|
+
declare function CardFieldLabel({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
82
|
+
declare function CardFieldValue({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
83
|
+
export { CardDescription, CardTitle };
|
|
84
|
+
export { Card, CardAction, CardContent, CardField, CardFieldLabel, CardFieldValue, CardFooter, CardHeader };
|
|
@@ -30,6 +30,7 @@ export * from './responsive-dropdown';
|
|
|
30
30
|
export * from './responsive-popover';
|
|
31
31
|
export * from './select';
|
|
32
32
|
export * from './separator';
|
|
33
|
+
export * from './settings-nav';
|
|
33
34
|
export * from './sheet';
|
|
34
35
|
export * from './sidebar';
|
|
35
36
|
export * from './skeleton';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { settingsNavItemVariants } from './settings-nav-variants';
|
|
4
|
+
/**
|
|
5
|
+
* Compact inset settings navigation for configuration pages.
|
|
6
|
+
*
|
|
7
|
+
* Deliberately separate from `NavMenu` / sidebar primitives — those are bound
|
|
8
|
+
* to the app chrome context. SettingsNav is a page-local list: a SETTINGS
|
|
9
|
+
* eyebrow, icon items with an active fill, optional error dots, Soon badges,
|
|
10
|
+
* and a danger item for destructive sections.
|
|
11
|
+
*/
|
|
12
|
+
declare function SettingsNav({ className, ...props }: React.ComponentProps<'nav'>): React.JSX.Element;
|
|
13
|
+
declare function SettingsNavLabel({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
14
|
+
export interface SettingsNavItemProps extends React.AnchorHTMLAttributes<HTMLAnchorElement>, VariantProps<typeof settingsNavItemVariants> {
|
|
15
|
+
/** When true, renders via Radix Slot so a router `Link` can own the element. */
|
|
16
|
+
asChild?: boolean;
|
|
17
|
+
/** Leading icon (lucide or custom). Coloured by the active / danger state. */
|
|
18
|
+
icon?: React.ReactNode;
|
|
19
|
+
/** Marks the item as the current section. */
|
|
20
|
+
active?: boolean;
|
|
21
|
+
/** Small status dot (e.g. validation error on that section). */
|
|
22
|
+
indicator?: boolean;
|
|
23
|
+
/** Trailing badge content, typically "Soon". */
|
|
24
|
+
badge?: React.ReactNode;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
}
|
|
27
|
+
declare function SettingsNavItem({ className, variant, asChild, icon, active, indicator, badge, disabled, children, href, onClick, ...props }: SettingsNavItemProps): React.JSX.Element;
|
|
28
|
+
export { SettingsNav, SettingsNavItem, SettingsNavLabel };
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Switch renders the Radix primitive directly rather than wrapping the shadcn
|
|
5
|
+
* one, because its state glyphs go inside the thumb. Building it here keeps the
|
|
6
|
+
* shadcn base untouched, so that base can be regenerated from upstream without
|
|
7
|
+
* losing anything of ours.
|
|
8
|
+
*/
|
|
9
|
+
declare function Switch({ ref, className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root> & {
|
|
10
|
+
ref?: React.RefObject<React.ElementRef<typeof SwitchPrimitive.Root> | null>;
|
|
5
11
|
}): React.JSX.Element;
|
|
6
12
|
declare namespace Switch {
|
|
7
13
|
var displayName: string;
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
+
import type { VariantProps } from 'class-variance-authority';
|
|
1
2
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
2
3
|
import * as React from 'react';
|
|
3
4
|
/**
|
|
4
5
|
* Datum Tabs Component
|
|
5
6
|
* Extends shadcn Tabs with:
|
|
6
7
|
* - TabsLinkTrigger for router-agnostic link integration
|
|
8
|
+
* - A `line` variant (underline page tabs) with a sliding active indicator
|
|
7
9
|
* - Dark mode customizations
|
|
8
10
|
*/
|
|
9
|
-
|
|
10
|
-
declare function
|
|
11
|
-
declare
|
|
11
|
+
type TabsVariant = 'default' | 'line';
|
|
12
|
+
declare function Tabs({ className, value: valueProp, defaultValue, onValueChange, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>): React.JSX.Element;
|
|
13
|
+
declare const tabsListVariants: (props?: ({
|
|
14
|
+
variant?: "default" | "line" | null | undefined;
|
|
15
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
|
+
export interface TabsListProps extends React.ComponentProps<typeof TabsPrimitive.List>, VariantProps<typeof tabsListVariants> {
|
|
17
|
+
}
|
|
18
|
+
declare function TabsList({ className, variant, ...props }: TabsListProps): React.JSX.Element;
|
|
19
|
+
declare function TabsTrigger({ className, value, children, asChild, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>): React.JSX.Element;
|
|
12
20
|
declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): React.JSX.Element;
|
|
13
21
|
interface TabsLinkTriggerProps extends React.ComponentProps<typeof TabsPrimitive.Trigger> {
|
|
14
22
|
/** Destination URL — mapped to `href` for native `<a>`, `to` for router Links */
|
|
@@ -18,4 +26,4 @@ interface TabsLinkTriggerProps extends React.ComponentProps<typeof TabsPrimitive
|
|
|
18
26
|
}
|
|
19
27
|
declare function TabsLinkTrigger({ value, href, linkComponent: LinkComp, children, className, ...props }: TabsLinkTriggerProps): React.JSX.Element;
|
|
20
28
|
export { Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger };
|
|
21
|
-
export type { TabsLinkTriggerProps };
|
|
29
|
+
export type { TabsLinkTriggerProps, TabsVariant };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as useNuqsAdapter, a as useDataTablePagination, b as DEFAULT_PAGE_SIZE, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, i as useDataTableLoading, l as useDataTableSorting, m as DataTableRowActions, n as useDataTableFilters, o as useDataTableRows, p as dataTableFeatures, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_DEBOUNCE_MS, x as DEFAULT_PAGE_SIZES, y as DEFAULT_LOADING_ROWS } from "../data-table-
|
|
1
|
+
import { _ as useNuqsAdapter, a as useDataTablePagination, b as DEFAULT_PAGE_SIZE, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, i as useDataTableLoading, l as useDataTableSorting, m as DataTableRowActions, n as useDataTableFilters, o as useDataTableRows, p as dataTableFeatures, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_DEBOUNCE_MS, x as DEFAULT_PAGE_SIZES, y as DEFAULT_LOADING_ROWS } from "../data-table-CW3-xqkg.mjs";
|
|
2
2
|
export { DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DataTable, DataTableColumnHeader, DataTableRowActions, createDataTableStore, createSelectionColumn, dataTableFeatures, resolvePath, rowMatchesSearch, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useNuqsAdapter };
|
|
@@ -4,11 +4,11 @@ import { t as Button } from "./button-DoMqfQLu.mjs";
|
|
|
4
4
|
import { t as Checkbox } from "./checkbox-C6P12fio.mjs";
|
|
5
5
|
import { t as Input } from "./input-j4tbmYYz.mjs";
|
|
6
6
|
import { t as ResponsiveDropdown } from "./responsive-dropdown-C_KKgLbH.mjs";
|
|
7
|
-
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-
|
|
7
|
+
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-D4pk9e2d.mjs";
|
|
8
8
|
import { Skeleton } from "./skeleton/index.mjs";
|
|
9
9
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "./table/index.mjs";
|
|
10
10
|
import { t as Autocomplete } from "./autocomplete-BxtzndxZ.mjs";
|
|
11
|
-
import { t as CalendarDatePicker } from "./calendar-date-picker-
|
|
11
|
+
import { t as CalendarDatePicker } from "./calendar-date-picker-DW31tDSa.mjs";
|
|
12
12
|
import { t as ActionRow } from "./action-row-DTvs91_3.mjs";
|
|
13
13
|
import { n as useDebouncedSearchInput } from "./use-debounced-search-input-yu_F0QBt.mjs";
|
|
14
14
|
import { t as MultiSelect } from "./multi-select-CH8KERkt.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as getBrowserTimezone, N as getTimezoneOffset, j as formatTimezoneLabel } from "../date-time-range-picker-
|
|
2
|
-
import { t as CalendarDatePicker } from "../calendar-date-picker-
|
|
3
|
-
import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "../to-api-format-
|
|
1
|
+
import { M as getBrowserTimezone, N as getTimezoneOffset, j as formatTimezoneLabel } from "../date-time-range-picker-BEulotVf.mjs";
|
|
2
|
+
import { t as CalendarDatePicker } from "../calendar-date-picker-DW31tDSa.mjs";
|
|
3
|
+
import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "../to-api-format-W3qJE68W.mjs";
|
|
4
4
|
export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, CalendarDatePicker, DEFAULT_PRESETS, QuickRangesPanel, TimeRangePicker, TimezoneSelector, createTimezoneOption, formatDateForInput, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, getBrowserTimezone, getDefaultPreset, getDefaultTimezoneOptions, getPresetByKey, getPresetByShortcut, getPresetRange, getShortTimezoneDisplay, getTimezoneOffset, localInputStringToUtc, toApiTimeRange, utcStringToZonedDate, utcToLocalInputString, zonedDateToUtcString };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as DateTimePicker } from "../date-time-picker-
|
|
1
|
+
import { t as DateTimePicker } from "../date-time-picker-BVvWQXMt.mjs";
|
|
2
2
|
export { DateTimePicker };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as useDeprecationWarning } from "./use-deprecation-warning-DXrGc0jX.mjs";
|
|
2
|
-
import { r as DateTimePicker$1 } from "./picker-
|
|
2
|
+
import { r as DateTimePicker$1 } from "./picker-Cke6cfsb.mjs";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/features/date-time-picker/date-time-picker.tsx
|
|
5
5
|
/**
|
|
@@ -1309,7 +1309,7 @@ function PickerTrigger({ placeholder = "Pick a date", clearable = false, disable
|
|
|
1309
1309
|
if (state.open) actions.close();
|
|
1310
1310
|
else actions.open();
|
|
1311
1311
|
},
|
|
1312
|
-
className: cn("w-full justify-between gap-2 font-normal", triggerClassName, className),
|
|
1312
|
+
className: cn("w-full justify-between gap-2 rounded-lg font-normal", triggerClassName, className),
|
|
1313
1313
|
...slotProps,
|
|
1314
1314
|
children: [/* @__PURE__ */ jsxs("span", {
|
|
1315
1315
|
className: "flex flex-1 items-center gap-2 truncate",
|
package/dist/form/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "../form-
|
|
1
|
+
import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "../form-DB5MbJ2U.mjs";
|
|
2
2
|
import { n as useAdapter, t as FormAdapterProvider } from "../adapter-context-h0jCVqGO.mjs";
|
|
3
3
|
export { Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, useAdapter, useField, useFieldContext, useFormContext, useFormState, useWatch, useWatchAll };
|
|
@@ -7,20 +7,20 @@ import { t as useControllableState } from "./use-controllable-state-Dna7u3r9.mjs
|
|
|
7
7
|
import { t as Input } from "./input-j4tbmYYz.mjs";
|
|
8
8
|
import { t as Label } from "./label-Bk6FXsju.mjs";
|
|
9
9
|
import { n as RadioGroupItem, t as RadioGroup } from "./radio-group-LduBVTnh.mjs";
|
|
10
|
-
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-
|
|
10
|
+
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-D4pk9e2d.mjs";
|
|
11
11
|
import { t as Tooltip } from "./tooltip-DhbN1BDK.mjs";
|
|
12
|
-
import { t as Switch } from "./switch-
|
|
13
|
-
import { t as Textarea } from "./textarea-
|
|
12
|
+
import { t as Switch } from "./switch-BaR-Vna4.mjs";
|
|
13
|
+
import { t as Textarea } from "./textarea-DiSGxCBO.mjs";
|
|
14
14
|
import { t as Autocomplete } from "./autocomplete-BxtzndxZ.mjs";
|
|
15
15
|
import { Autosearch } from "./autosearch/index.mjs";
|
|
16
|
-
import { t as CalendarDatePicker } from "./calendar-date-picker-
|
|
16
|
+
import { t as CalendarDatePicker } from "./calendar-date-picker-DW31tDSa.mjs";
|
|
17
17
|
import { t as toast } from "./toast-BUPlDkN3.mjs";
|
|
18
|
-
import { t as DateTimePicker } from "./date-time-picker-
|
|
18
|
+
import { t as DateTimePicker } from "./date-time-picker-BVvWQXMt.mjs";
|
|
19
19
|
import { n as useFormContext$1, t as FormProvider } from "./form-context-DzB2a-dw.mjs";
|
|
20
20
|
import { t as useCopyToClipboard } from "./use-copy-to-clipboard-DZDq_85T.mjs";
|
|
21
21
|
import { n as useAdapter } from "./adapter-context-h0jCVqGO.mjs";
|
|
22
22
|
import { InputWithAddons } from "./input-with-addons/index.mjs";
|
|
23
|
-
import { t as TimePicker } from "./time-picker-
|
|
23
|
+
import { t as TimePicker } from "./time-picker-BzNSUazl.mjs";
|
|
24
24
|
import { t as Transfer } from "./transfer-DsshYgIk.mjs";
|
|
25
25
|
import { CheckIcon, CircleHelp, CopyIcon } from "lucide-react";
|
|
26
26
|
import * as React from "react";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as GroupedTable } from "../grouped-table-
|
|
1
|
+
import { t as GroupedTable } from "../grouped-table-DKUsSHpe.mjs";
|
|
2
2
|
export { GroupedTable };
|
|
@@ -6,7 +6,7 @@ import { t as useControllableState } from "./use-controllable-state-Dna7u3r9.mjs
|
|
|
6
6
|
import { Skeleton } from "./skeleton/index.mjs";
|
|
7
7
|
import { TableBody, TableCell, TableHead, TableHeader, TableRow } from "./table/index.mjs";
|
|
8
8
|
import { n as EASE } from "./motion-DvGRWdsm.mjs";
|
|
9
|
-
import { f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, m as DataTableRowActions, p as dataTableFeatures } from "./data-table-
|
|
9
|
+
import { f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, m as DataTableRowActions, p as dataTableFeatures } from "./data-table-CW3-xqkg.mjs";
|
|
10
10
|
import { n as useDebouncedSearchInput } from "./use-debounced-search-input-yu_F0QBt.mjs";
|
|
11
11
|
import { InputWithAddons } from "./input-with-addons/index.mjs";
|
|
12
12
|
import { ChevronRight, Search, X } from "lucide-react";
|
package/dist/index.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import { t as Separator } from "./separator-vbPD_WFQ.mjs";
|
|
|
10
10
|
import { i as buttonGroupVariants, n as ButtonGroupSeparator, r as ButtonGroupText, t as ButtonGroup } from "./button-group-DFrTH4L8.mjs";
|
|
11
11
|
import { t as Icon } from "./icon-wrapper-DKfJlJd0.mjs";
|
|
12
12
|
import { Calendar, CalendarDayButton } from "./calendar/index.mjs";
|
|
13
|
-
import { a as
|
|
13
|
+
import { a as CardField, c as CardFooter, d as CardTitle, i as CardContent, l as CardHeader, n as Card, o as CardFieldLabel, r as CardAction, s as CardFieldValue, t as CardSaveBar, u as CardDescription } from "./card-save-bar-Dub71HRf.mjs";
|
|
14
14
|
import { a as ChartTooltip, i as ChartStyle, n as ChartLegend, o as ChartTooltipContent, r as ChartLegendContent, t as ChartContainer } from "./chart-EgzTS28l.mjs";
|
|
15
15
|
import { t as Checkbox } from "./checkbox-C6P12fio.mjs";
|
|
16
16
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./collapsible/index.mjs";
|
|
@@ -32,14 +32,15 @@ import { n as RadioGroupItem, t as RadioGroup } from "./radio-group-LduBVTnh.mjs
|
|
|
32
32
|
import { t as useBreakpoint } from "./use-breakpoint-CwiUJSmk.mjs";
|
|
33
33
|
import { t as ResponsiveDropdown } from "./responsive-dropdown-C_KKgLbH.mjs";
|
|
34
34
|
import { t as ResponsivePopover } from "./responsive-popover-8VcjBM2d.mjs";
|
|
35
|
-
import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "./select-
|
|
35
|
+
import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "./select-D4pk9e2d.mjs";
|
|
36
|
+
import { i as settingsNavItemVariants, n as SettingsNavItem, r as SettingsNavLabel, t as SettingsNav } from "./settings-nav-BCL1lMTM.mjs";
|
|
36
37
|
import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "./sidebar-BeWEEu7P.mjs";
|
|
37
38
|
import { t as Tooltip } from "./tooltip-DhbN1BDK.mjs";
|
|
38
39
|
import { Skeleton } from "./skeleton/index.mjs";
|
|
39
|
-
import { t as Switch } from "./switch-
|
|
40
|
+
import { t as Switch } from "./switch-BaR-Vna4.mjs";
|
|
40
41
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table/index.mjs";
|
|
41
42
|
import { Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger } from "./tabs/index.mjs";
|
|
42
|
-
import { t as Textarea } from "./textarea-
|
|
43
|
+
import { t as Textarea } from "./textarea-DiSGxCBO.mjs";
|
|
43
44
|
import { a as ListItem, c as Title, d as titleVariants, i as List, l as paragraphVariants, n as Code, o as Paragraph, r as Link, s as Text, t as Blockquote, u as textVariants } from "./typography-BXIBvq3-.mjs";
|
|
44
45
|
import { t as VisuallyHidden } from "./visuallyhidden-D7L_qs8b.mjs";
|
|
45
46
|
import { a as hasActiveDescendant, i as findItemByHref, n as NavMenu, o as isNavItemActive, r as NavMenuItem, s as normalizePath, t as AppNavigation } from "./app-navigation-DhPaPFnN.mjs";
|
|
@@ -48,29 +49,29 @@ import { t as LoaderOverlay } from "./loader-overlay-DD94azZX.mjs";
|
|
|
48
49
|
import { t as Autocomplete } from "./autocomplete-BxtzndxZ.mjs";
|
|
49
50
|
import { Autosearch, defaultAutosearchValue } from "./autosearch/index.mjs";
|
|
50
51
|
import { n as avatarStackVariants, t as AvatarStack } from "./avatar-stack-BUcsjhA6.mjs";
|
|
51
|
-
import { M as getBrowserTimezone, N as getTimezoneOffset, j as formatTimezoneLabel } from "./date-time-range-picker-
|
|
52
|
-
import { t as CalendarDatePicker } from "./calendar-date-picker-
|
|
52
|
+
import { M as getBrowserTimezone, N as getTimezoneOffset, j as formatTimezoneLabel } from "./date-time-range-picker-BEulotVf.mjs";
|
|
53
|
+
import { t as CalendarDatePicker } from "./calendar-date-picker-DW31tDSa.mjs";
|
|
53
54
|
import { i as ClientOnly, n as useTheme, r as ThemeScript, t as ThemeProvider } from "./themes-Ba2bajuF.mjs";
|
|
54
55
|
import { a as formatJson, c as isValidYaml, d as CodeEditor, i as CodeEditorTabs, l as jsonToYaml, n as jsonSchema, o as formatYaml, r as yamlSchema, s as isValidJson, t as createCodeEditorSchema, u as yamlToJson } from "./types-agDpVXBG.mjs";
|
|
55
56
|
import { t as toast } from "./toast-BUPlDkN3.mjs";
|
|
56
57
|
import { n as Toaster, t as useToast } from "./use-toast-Bpq0yJIT.mjs";
|
|
57
|
-
import { _ as useNuqsAdapter, a as useDataTablePagination, b as DEFAULT_PAGE_SIZE, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, i as useDataTableLoading, l as useDataTableSorting, m as DataTableRowActions, n as useDataTableFilters, o as useDataTableRows, p as dataTableFeatures, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_DEBOUNCE_MS, x as DEFAULT_PAGE_SIZES, y as DEFAULT_LOADING_ROWS } from "./data-table-
|
|
58
|
+
import { _ as useNuqsAdapter, a as useDataTablePagination, b as DEFAULT_PAGE_SIZE, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, i as useDataTableLoading, l as useDataTableSorting, m as DataTableRowActions, n as useDataTableFilters, o as useDataTableRows, p as dataTableFeatures, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_DEBOUNCE_MS, x as DEFAULT_PAGE_SIZES, y as DEFAULT_LOADING_ROWS } from "./data-table-CW3-xqkg.mjs";
|
|
58
59
|
import { t as ActionRow } from "./action-row-DTvs91_3.mjs";
|
|
59
60
|
import { n as useDebouncedSearchInput, t as DEFAULT_SEARCH_DEBOUNCE_MS } from "./use-debounced-search-input-yu_F0QBt.mjs";
|
|
60
61
|
import { t as MultiSelect } from "./multi-select-CH8KERkt.mjs";
|
|
61
62
|
import { a as formatRelativeDate, d as parseDate, i as formatCombinedDate, l as getTimestamp, n as DEFAULT_DATE_FORMAT, o as formatTimezoneDate, r as formatAbsoluteDate, s as formatUTCDate, t as DateTime, u as getTimezoneAbbreviation } from "./date-time-lZdefM4H.mjs";
|
|
62
|
-
import { t as DateTimePicker } from "./date-time-picker-
|
|
63
|
+
import { t as DateTimePicker } from "./date-time-picker-BVvWQXMt.mjs";
|
|
63
64
|
import { a as DropdownMenuItem, c as DropdownMenuRadioGroup, d as DropdownMenuShortcut, f as DropdownMenuSub, h as DropdownMenuTrigger, i as DropdownMenuGroup, l as DropdownMenuRadioItem, m as DropdownMenuSubTrigger, n as DropdownMenuCheckboxItem, o as DropdownMenuLabel, p as DropdownMenuSubContent, r as DropdownMenuContent, s as DropdownMenuPortal, t as DropdownMenu, u as DropdownMenuSeparator } from "./dropdown-Xvduih96.mjs";
|
|
64
65
|
import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "./dropzone-ihksfjN2.mjs";
|
|
65
66
|
import { t as EmptyContent } from "./empty-content-CmuVcU0P.mjs";
|
|
66
|
-
import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "./form-
|
|
67
|
+
import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "./form-DB5MbJ2U.mjs";
|
|
67
68
|
import { t as useCopyToClipboard } from "./use-copy-to-clipboard-DZDq_85T.mjs";
|
|
68
69
|
import { n as useAdapter, t as FormAdapterProvider } from "./adapter-context-h0jCVqGO.mjs";
|
|
69
70
|
import { InputWithAddons } from "./input-with-addons/index.mjs";
|
|
70
|
-
import { t as TimePicker } from "./time-picker-
|
|
71
|
+
import { t as TimePicker } from "./time-picker-BzNSUazl.mjs";
|
|
71
72
|
import { t as Transfer } from "./transfer-DsshYgIk.mjs";
|
|
72
73
|
import { a as getResponsiveValue, c as GRID_COLUMNS, d as RESPONSIVE_MAP, i as getGutter, l as GRID_PREFIX, n as Row, o as registerMediaQuery, r as RowContext, s as GRID_BREAKPOINTS, t as Col, u as RESPONSIVE_ARRAY } from "./col-BYGWTB4j.mjs";
|
|
73
|
-
import { t as GroupedTable } from "./grouped-table-
|
|
74
|
+
import { t as GroupedTable } from "./grouped-table-DKUsSHpe.mjs";
|
|
74
75
|
import { t as InputNumber } from "./input-number-TXmW-X9o.mjs";
|
|
75
76
|
import { a as logoStyles, i as LogoFlat, n as LogoStacked, r as LogoIcon, t as LogoText } from "./logo-text-Dpm5O6Kg.mjs";
|
|
76
77
|
import { t as Logo } from "./logo-C3FxD7jb.mjs";
|
|
@@ -81,7 +82,7 @@ import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } fro
|
|
|
81
82
|
import { t as defineStepper } from "./stepper-dNvkipop.mjs";
|
|
82
83
|
import { t as TagsInput } from "./tag-input-Ctxtcpwy.mjs";
|
|
83
84
|
import { _ as RedisTaskStorage, a as TaskPanelItem, b as createProjectMetadata, c as TaskPanelHeader, d as useCurrentScope, f as useTasksWithLabels, g as detectStorage, h as TaskQueue, i as TaskPanel, l as getContextLabel, m as TaskQueueProvider, n as TaskSummaryDialog, o as TaskPanelCounter, p as useTaskQueue, r as TaskQueueTrigger, s as TaskPanelActions, t as TaskQueueDropdown, u as matchesCurrentScope, v as LocalTaskStorage, x as createUserMetadata, y as createOrgMetadata } from "./task-queue-dropdown-BJS3snfZ.mjs";
|
|
84
|
-
import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "./to-api-format-
|
|
85
|
+
import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "./to-api-format-W3qJE68W.mjs";
|
|
85
86
|
import { t as useDebounce } from "./hooks-CwZ6hyI1.mjs";
|
|
86
87
|
import { n as toUTCTimestampStartOfDay, t as toUTCTimestampEndOfDay } from "./utils-CA4QEIJ8.mjs";
|
|
87
|
-
export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, ActionRow, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Autosearch, Avatar, AvatarFallback, AvatarImage, AvatarStack, Badge, Blockquote, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDatePicker, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, ClientOnly, CloseIcon, Code, CodeEditor, CodeEditorTabs, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_DATE_FORMAT, DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DEFAULT_PRESETS, DEFAULT_SEARCH_DEBOUNCE_MS, DURATION, DataTable, DataTableColumnHeader, DataTableRowActions, DateTime, DateTimePicker, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EASE, EmptyContent, FileInputButton, Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, GroupedTable, HoverCard, HoverCardContent, HoverCardTrigger, Icon, InSheetContext, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Logo, LogoFlat, LogoIcon, LogoStacked, LogoText, Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, MobileSheet, MoreActions, MultiSelect, NavMenu, NavMenuItem, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, ResponsiveDropdown, ResponsivePopover, ResponsiveSheetTrigger, RichTextContent, RichTextEditor, Row, RowContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, SpinnerIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger, TagsInput, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, Text, Textarea, ThemeProvider, ThemeScript, TimePicker, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, Transfer, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createDataTableStore, createOrgMetadata, createProjectMetadata, createSelectionColumn, createTimezoneOption, createUserMetadata, dataTableFeatures, defaultAutosearchValue, defineStepper, detectStorage, findItemByHref, formatAbsoluteDate, formatCombinedDate, formatDateForInput, formatJson, formatRelativeDate, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneDate, formatTimezoneLabel, formatUTCDate, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimestamp, getTimezoneAbbreviation, getTimezoneOffset, hasActiveDescendant, isNavItemActive, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, logoStyles, matchesCurrentScope, normalizePath, paragraphVariants, parseDate, registerMediaQuery, resolvePath, rowMatchesSearch, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toUTCTimestampEndOfDay, toUTCTimestampStartOfDay, toast, useAdapter, useBreakpoint, useControllableState, useCopyToClipboard, useCurrentScope, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useDebounce, useDebouncedSearchInput, useField, useFieldContext, useFormContext, useFormState, useInSheet, useLeaflet, useNuqsAdapter, useRichTextEditor, useSidebar, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
|
|
88
|
+
export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, ActionRow, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Autosearch, Avatar, AvatarFallback, AvatarImage, AvatarStack, Badge, Blockquote, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDatePicker, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardField, CardFieldLabel, CardFieldValue, CardFooter, CardHeader, CardSaveBar, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, ClientOnly, CloseIcon, Code, CodeEditor, CodeEditorTabs, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_DATE_FORMAT, DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DEFAULT_PRESETS, DEFAULT_SEARCH_DEBOUNCE_MS, DURATION, DataTable, DataTableColumnHeader, DataTableRowActions, DateTime, DateTimePicker, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EASE, EmptyContent, FileInputButton, Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, GroupedTable, HoverCard, HoverCardContent, HoverCardTrigger, Icon, InSheetContext, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Logo, LogoFlat, LogoIcon, LogoStacked, LogoText, Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, MobileSheet, MoreActions, MultiSelect, NavMenu, NavMenuItem, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, ResponsiveDropdown, ResponsivePopover, ResponsiveSheetTrigger, RichTextContent, RichTextEditor, Row, RowContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsNav, SettingsNavItem, SettingsNavLabel, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, SpinnerIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger, TagsInput, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, Text, Textarea, ThemeProvider, ThemeScript, TimePicker, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, Transfer, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createDataTableStore, createOrgMetadata, createProjectMetadata, createSelectionColumn, createTimezoneOption, createUserMetadata, dataTableFeatures, defaultAutosearchValue, defineStepper, detectStorage, findItemByHref, formatAbsoluteDate, formatCombinedDate, formatDateForInput, formatJson, formatRelativeDate, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneDate, formatTimezoneLabel, formatUTCDate, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimestamp, getTimezoneAbbreviation, getTimezoneOffset, hasActiveDescendant, isNavItemActive, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, logoStyles, matchesCurrentScope, normalizePath, paragraphVariants, parseDate, registerMediaQuery, resolvePath, rowMatchesSearch, settingsNavItemVariants, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toUTCTimestampEndOfDay, toUTCTimestampStartOfDay, toast, useAdapter, useBreakpoint, useControllableState, useCopyToClipboard, useCurrentScope, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useDebounce, useDebouncedSearchInput, useField, useFieldContext, useFormContext, useFormState, useInSheet, useLeaflet, useNuqsAdapter, useRichTextEditor, useSidebar, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
|
package/dist/logs/index.mjs
CHANGED
|
@@ -9,7 +9,7 @@ import { t as Sheet } from "../sheet-DHn6C_rs.mjs";
|
|
|
9
9
|
import { t as useBreakpoint } from "../use-breakpoint-CwiUJSmk.mjs";
|
|
10
10
|
import { Skeleton } from "../skeleton/index.mjs";
|
|
11
11
|
import { TableBody, TableCell, TableHead, TableHeader, TableRow } from "../table/index.mjs";
|
|
12
|
-
import { t as DateTimeRangePicker } from "../date-time-range-picker-
|
|
12
|
+
import { t as DateTimeRangePicker } from "../date-time-range-picker-BEulotVf.mjs";
|
|
13
13
|
import { c as getBrowserTimezone, t as DateTime, u as getTimezoneAbbreviation } from "../date-time-lZdefM4H.mjs";
|
|
14
14
|
import { t as useCopyToClipboard } from "../use-copy-to-clipboard-DZDq_85T.mjs";
|
|
15
15
|
import { Bot, ChevronDown, ChevronUp, Clock, Copy, Download, HelpCircle, Inbox, Monitor, RefreshCw, Search, SlidersHorizontal, Smartphone, Tablet, TriangleAlert, X } from "lucide-react";
|
package/dist/picker/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as formatInTimezone, B as isDateBearingMode, C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, I as ALLOWED_STEPS, L as DATE_BEARING_MODES, M as getBrowserTimezone, N as getTimezoneOffset, O as PickerContext, P as isoToZonedDate, R as RANGE_MODES, S as PickerCancel, T as PickerReset, V as isRangeMode, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, d as DATE_PRESETS, f as getDefaultPresets, g as isValidTimeString, h as formatTimeLabel, i as PickerTrigger, j as formatTimezoneLabel, k as usePickerContext, l as usePresets, m as dateToYYYYMMDD, o as PickerTimeInput, p as usePickerState, r as formatPickerValue, s as useTimeSlots, t as DateTimeRangePicker, u as DATETIME_PRESETS, v as resolveCommit, w as PickerFooter, x as PickerApply, y as useKeyboardShortcuts, z as TIME_BEARING_MODES } from "../date-time-range-picker-
|
|
2
|
-
import { a as DateRangePicker, c as getDaysDifference, d as isSameDateRange, f as isSameStringRange, i as DateRangeTimePicker, l as isRangeValid, m as PickerTimezoneSelect, n as TimePicker, o as DatePicker, p as Picker, r as DateTimePicker, s as clampRange, t as TimeRangePicker, u as isSameDate } from "../picker-
|
|
1
|
+
import { A as formatInTimezone, B as isDateBearingMode, C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, I as ALLOWED_STEPS, L as DATE_BEARING_MODES, M as getBrowserTimezone, N as getTimezoneOffset, O as PickerContext, P as isoToZonedDate, R as RANGE_MODES, S as PickerCancel, T as PickerReset, V as isRangeMode, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, d as DATE_PRESETS, f as getDefaultPresets, g as isValidTimeString, h as formatTimeLabel, i as PickerTrigger, j as formatTimezoneLabel, k as usePickerContext, l as usePresets, m as dateToYYYYMMDD, o as PickerTimeInput, p as usePickerState, r as formatPickerValue, s as useTimeSlots, t as DateTimeRangePicker, u as DATETIME_PRESETS, v as resolveCommit, w as PickerFooter, x as PickerApply, y as useKeyboardShortcuts, z as TIME_BEARING_MODES } from "../date-time-range-picker-BEulotVf.mjs";
|
|
2
|
+
import { a as DateRangePicker, c as getDaysDifference, d as isSameDateRange, f as isSameStringRange, i as DateRangeTimePicker, l as isRangeValid, m as PickerTimezoneSelect, n as TimePicker, o as DatePicker, p as Picker, r as DateTimePicker, s as clampRange, t as TimeRangePicker, u as isSameDate } from "../picker-Cke6cfsb.mjs";
|
|
3
3
|
export { ALLOWED_STEPS, DATETIME_PRESETS, DATE_BEARING_MODES, DATE_PRESETS, DatePicker, DateRangePicker, DateRangeTimePicker, DateTimePicker, DateTimeRangePicker, Picker, PickerApply, PickerCalendar, PickerCancel, PickerClear, PickerContent, PickerContext, PickerFooter, PickerPresets, PickerReset, PickerTimeInput, PickerTimezoneIndicator, PickerTimezoneSelect, PickerTrigger, RANGE_MODES, TIME_BEARING_MODES, TimePicker, TimeRangePicker, clampRange, dateToYYYYMMDD, formatInTimezone, formatPickerValue, formatTimeLabel, formatTimezoneLabel, getBrowserTimezone, getDaysDifference, getDefaultPresets, getTimezoneOffset, isDateBearingMode, isRangeMode, isRangeValid, isSameDate, isSameDateRange, isSameStringRange, isTimeBearingMode, isValidTimeString, isoToZonedDate, parseTimeString, resolveCommit, useKeyboardShortcuts, usePickerContext, usePickerState, usePresets, useTimeSlots, zonedDateToIso };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cn } from "./utils-Bu32wN-x.mjs";
|
|
2
2
|
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-daE2Nn0Z.mjs";
|
|
3
|
-
import { C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, P as isoToZonedDate, S as PickerCancel, T as PickerReset, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, c as Picker$1, i as PickerTrigger, k as usePickerContext, n as DefaultFooter, o as PickerTimeInput, r as formatPickerValue, w as PickerFooter, x as PickerApply } from "./date-time-range-picker-
|
|
3
|
+
import { C as PickerClear, D as PickerCalendar, E as PickerContent, F as zonedDateToIso, H as isTimeBearingMode, P as isoToZonedDate, S as PickerCancel, T as PickerReset, _ as parseTimeString, a as PickerTimezoneIndicator, b as PickerPresets, c as Picker$1, i as PickerTrigger, k as usePickerContext, n as DefaultFooter, o as PickerTimeInput, r as formatPickerValue, w as PickerFooter, x as PickerApply } from "./date-time-range-picker-BEulotVf.mjs";
|
|
4
4
|
import { Clock, Globe } from "lucide-react";
|
|
5
5
|
import { useEffect, useState } from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
package/dist/select/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "../select-
|
|
1
|
+
import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "../select-D4pk9e2d.mjs";
|
|
2
2
|
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
|
|
@@ -16,7 +16,7 @@ SelectGroup.displayName = "SelectGroup";
|
|
|
16
16
|
function SelectTrigger({ ref, className, ...props }) {
|
|
17
17
|
return /* @__PURE__ */ jsx(SelectTrigger$1, {
|
|
18
18
|
ref,
|
|
19
|
-
className: cn("rounded-lg", "bg-input-background/50", "text-input-foreground", "border-input-border", "placeholder:text-input-placeholder", "focus-visible:ring-0 focus-visible:ring-offset-0", "focus-visible:border-input-focus-border", "focus-visible:shadow-(--input-focus-shadow)", "aria-invalid:border-destructive", className),
|
|
19
|
+
className: cn("rounded-lg", "bg-input-background/50", "text-input-foreground", "border-input-border", "placeholder:text-input-placeholder", "shadow-none", "focus-visible:ring-0 focus-visible:ring-offset-0", "focus-visible:border-input-focus-border", "focus-visible:shadow-(--input-focus-shadow)", "aria-invalid:border-destructive", className),
|
|
20
20
|
...props
|
|
21
21
|
});
|
|
22
22
|
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { t as cn } from "./utils-Bu32wN-x.mjs";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
6
|
+
//#region src/components/base/settings-nav/settings-nav-variants.ts
|
|
7
|
+
const settingsNavItemVariants = cva("group/settings-nav-item relative flex w-full items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm font-normal transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50", {
|
|
8
|
+
variants: { variant: {
|
|
9
|
+
default: "text-foreground hover:bg-primary/5 hover:text-primary data-[active=true]:bg-primary/10 data-[active=true]:text-primary",
|
|
10
|
+
danger: "text-destructive hover:bg-destructive/10 data-[active=true]:bg-destructive/10 data-[active=true]:text-destructive"
|
|
11
|
+
} },
|
|
12
|
+
defaultVariants: { variant: "default" }
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/components/base/settings-nav/settings-nav.tsx
|
|
16
|
+
/**
|
|
17
|
+
* Compact inset settings navigation for configuration pages.
|
|
18
|
+
*
|
|
19
|
+
* Deliberately separate from `NavMenu` / sidebar primitives — those are bound
|
|
20
|
+
* to the app chrome context. SettingsNav is a page-local list: a SETTINGS
|
|
21
|
+
* eyebrow, icon items with an active fill, optional error dots, Soon badges,
|
|
22
|
+
* and a danger item for destructive sections.
|
|
23
|
+
*/
|
|
24
|
+
function SettingsNav({ className, ...props }) {
|
|
25
|
+
return /* @__PURE__ */ jsx("nav", {
|
|
26
|
+
"data-slot": "settings-nav",
|
|
27
|
+
"aria-label": "Settings",
|
|
28
|
+
className: cn("flex w-full flex-col gap-1", className),
|
|
29
|
+
...props
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function SettingsNavLabel({ className, ...props }) {
|
|
33
|
+
return /* @__PURE__ */ jsx("div", {
|
|
34
|
+
"data-slot": "settings-nav-label",
|
|
35
|
+
className: cn("text-muted-foreground px-2.5 pt-1 pb-2 text-[11px] font-semibold tracking-wide uppercase", className),
|
|
36
|
+
...props
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function SettingsNavItem({ className, variant, asChild = false, icon, active = false, indicator = false, badge, disabled = false, children, href, onClick, ...props }) {
|
|
40
|
+
const Comp = asChild ? Slot : "a";
|
|
41
|
+
const handleClick = (event) => {
|
|
42
|
+
if (disabled) {
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
onClick?.(event);
|
|
47
|
+
};
|
|
48
|
+
return /* @__PURE__ */ jsxs(Comp, {
|
|
49
|
+
"data-slot": "settings-nav-item",
|
|
50
|
+
"data-active": active || void 0,
|
|
51
|
+
"data-variant": variant ?? "default",
|
|
52
|
+
"aria-current": active ? "page" : void 0,
|
|
53
|
+
"aria-disabled": disabled || void 0,
|
|
54
|
+
tabIndex: disabled ? -1 : void 0,
|
|
55
|
+
href: disabled ? void 0 : href,
|
|
56
|
+
onClick: handleClick,
|
|
57
|
+
className: cn(settingsNavItemVariants({ variant }), className),
|
|
58
|
+
...props,
|
|
59
|
+
children: [
|
|
60
|
+
icon ? /* @__PURE__ */ jsx("span", {
|
|
61
|
+
"data-slot": "settings-nav-item-icon",
|
|
62
|
+
className: cn("flex size-4 shrink-0 items-center justify-center [&_svg]:size-4", variant === "danger" ? "text-destructive" : "text-muted-foreground transition-colors group-hover/settings-nav-item:text-primary group-data-[active=true]/settings-nav-item:text-primary"),
|
|
63
|
+
"aria-hidden": "true",
|
|
64
|
+
children: icon
|
|
65
|
+
}) : null,
|
|
66
|
+
/* @__PURE__ */ jsx("span", {
|
|
67
|
+
className: "min-w-0 flex-1 truncate text-left",
|
|
68
|
+
children
|
|
69
|
+
}),
|
|
70
|
+
indicator ? /* @__PURE__ */ jsx("span", {
|
|
71
|
+
"data-slot": "settings-nav-item-indicator",
|
|
72
|
+
className: "bg-destructive size-1.5 shrink-0 rounded-full",
|
|
73
|
+
"aria-label": "Needs attention"
|
|
74
|
+
}) : null,
|
|
75
|
+
badge != null ? /* @__PURE__ */ jsx("span", {
|
|
76
|
+
"data-slot": "settings-nav-item-badge",
|
|
77
|
+
className: "bg-muted text-muted-foreground rounded-md px-1.5 py-0.5 text-[10px] font-semibold tracking-wide uppercase",
|
|
78
|
+
children: badge
|
|
79
|
+
}) : null
|
|
80
|
+
]
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
export { settingsNavItemVariants as i, SettingsNavItem as n, SettingsNavLabel as r, SettingsNav as t };
|
package/dist/switch/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Switch } from "../switch-
|
|
1
|
+
import { t as Switch } from "../switch-BaR-Vna4.mjs";
|
|
2
2
|
export { Switch };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { t as cn } from "./utils-Bu32wN-x.mjs";
|
|
2
|
+
import { CheckIcon, XIcon } from "lucide-react";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
6
|
+
//#region src/components/base/switch/switch.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Switch renders the Radix primitive directly rather than wrapping the shadcn
|
|
9
|
+
* one, because its state glyphs go inside the thumb. Building it here keeps the
|
|
10
|
+
* shadcn base untouched, so that base can be regenerated from upstream without
|
|
11
|
+
* losing anything of ours.
|
|
12
|
+
*/
|
|
13
|
+
function Switch({ ref, className, ...props }) {
|
|
14
|
+
return /* @__PURE__ */ jsx(SwitchPrimitive.Root, {
|
|
15
|
+
ref,
|
|
16
|
+
"data-slot": "switch",
|
|
17
|
+
className: cn("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-6 w-11 shrink-0 items-center rounded-full border border-transparent shadow-xs outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", "transition-[background-color,border-color,box-shadow] duration-[var(--duration-fast)] ease-out", className),
|
|
18
|
+
...props,
|
|
19
|
+
children: /* @__PURE__ */ jsxs(SwitchPrimitive.Thumb, {
|
|
20
|
+
"data-slot": "switch-thumb",
|
|
21
|
+
className: cn("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground text-muted-foreground dark:data-[state=unchecked]:text-background dark:data-[state=checked]:text-primary group pointer-events-none flex size-5 items-center justify-center rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%+2px)] data-[state=unchecked]:translate-x-0"),
|
|
22
|
+
children: [/* @__PURE__ */ jsx(XIcon, {
|
|
23
|
+
"aria-hidden": true,
|
|
24
|
+
className: "size-3 group-data-[state=checked]:hidden"
|
|
25
|
+
}), /* @__PURE__ */ jsx(CheckIcon, {
|
|
26
|
+
"aria-hidden": true,
|
|
27
|
+
className: "hidden size-3 group-data-[state=checked]:block"
|
|
28
|
+
})]
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
Switch.displayName = "Switch";
|
|
33
|
+
//#endregion
|
|
34
|
+
export { Switch as t };
|
package/dist/tabs/index.mjs
CHANGED
|
@@ -1,30 +1,86 @@
|
|
|
1
1
|
import { t as cn } from "../utils-Bu32wN-x.mjs";
|
|
2
|
-
import "
|
|
3
|
-
import
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
4
5
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
6
|
+
import { motion } from "motion/react";
|
|
5
7
|
//#region src/components/base/tabs/tabs.tsx
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
const TabsContext = React.createContext({
|
|
9
|
+
value: void 0,
|
|
10
|
+
indicatorId: "tabs"
|
|
11
|
+
});
|
|
12
|
+
const TabsVariantContext = React.createContext("default");
|
|
13
|
+
function Tabs({ className, value: valueProp, defaultValue, onValueChange, ...props }) {
|
|
14
|
+
const [uncontrolled, setUncontrolled] = React.useState(defaultValue);
|
|
15
|
+
const value = valueProp ?? uncontrolled;
|
|
16
|
+
const indicatorId = React.useId();
|
|
17
|
+
const handleValueChange = React.useCallback((next) => {
|
|
18
|
+
setUncontrolled(next);
|
|
19
|
+
onValueChange?.(next);
|
|
20
|
+
}, [onValueChange]);
|
|
21
|
+
const ctx = React.useMemo(() => ({
|
|
22
|
+
value,
|
|
23
|
+
indicatorId
|
|
24
|
+
}), [value, indicatorId]);
|
|
25
|
+
return /* @__PURE__ */ jsx(TabsContext, {
|
|
26
|
+
value: ctx,
|
|
27
|
+
children: /* @__PURE__ */ jsx(TabsPrimitive.Root, {
|
|
28
|
+
className: cn("flex flex-col gap-2", className),
|
|
29
|
+
value: valueProp,
|
|
30
|
+
defaultValue,
|
|
31
|
+
onValueChange: handleValueChange,
|
|
32
|
+
...props
|
|
33
|
+
})
|
|
16
34
|
});
|
|
17
35
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
36
|
+
const tabsListVariants = cva("inline-flex items-center", {
|
|
37
|
+
variants: { variant: {
|
|
38
|
+
default: "bg-muted text-muted-foreground h-9 w-fit justify-center rounded-lg p-1",
|
|
39
|
+
line: "text-foreground h-auto w-full justify-start gap-7 overflow-x-auto rounded-none bg-transparent p-0 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"
|
|
40
|
+
} },
|
|
41
|
+
defaultVariants: { variant: "default" }
|
|
42
|
+
});
|
|
43
|
+
function TabsList({ className, variant, ...props }) {
|
|
44
|
+
const resolved = variant ?? "default";
|
|
45
|
+
return /* @__PURE__ */ jsx(TabsVariantContext, {
|
|
46
|
+
value: resolved,
|
|
47
|
+
children: /* @__PURE__ */ jsx(TabsPrimitive.List, {
|
|
48
|
+
"data-variant": resolved,
|
|
49
|
+
className: cn(tabsListVariants({ variant: resolved }), className),
|
|
50
|
+
...props
|
|
51
|
+
})
|
|
22
52
|
});
|
|
23
53
|
}
|
|
24
|
-
|
|
54
|
+
const tabsTriggerVariants = cva("focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex items-center justify-center gap-1.5 whitespace-nowrap font-medium transition-[color,box-shadow,transform,border-color] duration-[var(--duration-fast)] ease-out focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
55
|
+
variants: { variant: {
|
|
56
|
+
default: "data-[state=active]:bg-background dark:data-[state=active]:text-foreground data-[state=active]:text-foreground dark:hover:text-foreground flex-1 rounded-md px-2 py-1 text-sm active:scale-[0.98] disabled:active:scale-100 data-[state=active]:shadow-sm",
|
|
57
|
+
line: "text-foreground hover:text-primary data-[state=active]:text-primary relative flex-none rounded-none px-0 py-2.5 text-sm font-normal data-[state=active]:font-medium focus-visible:ring-0 focus-visible:outline-hidden"
|
|
58
|
+
} },
|
|
59
|
+
defaultVariants: { variant: "default" }
|
|
60
|
+
});
|
|
61
|
+
function TabsTrigger({ className, value, children, asChild, ...props }) {
|
|
62
|
+
const variant = React.use(TabsVariantContext);
|
|
63
|
+
const { value: activeValue, indicatorId } = React.use(TabsContext);
|
|
64
|
+
const indicator = variant === "line" && activeValue === value ? /* @__PURE__ */ jsx(motion.span, {
|
|
65
|
+
"aria-hidden": true,
|
|
66
|
+
"data-slot": "tabs-indicator",
|
|
67
|
+
layoutId: `tabs-indicator-${indicatorId}`,
|
|
68
|
+
className: "bg-primary absolute inset-x-0 bottom-0 h-0.5",
|
|
69
|
+
transition: {
|
|
70
|
+
type: "spring",
|
|
71
|
+
stiffness: 380,
|
|
72
|
+
damping: 30
|
|
73
|
+
}
|
|
74
|
+
}) : null;
|
|
75
|
+
let content;
|
|
76
|
+
if (asChild && React.isValidElement(children)) content = React.cloneElement(children, void 0, children.props.children, indicator);
|
|
77
|
+
else content = /* @__PURE__ */ jsxs(Fragment$1, { children: [children, indicator] });
|
|
25
78
|
return /* @__PURE__ */ jsx(TabsPrimitive.Trigger, {
|
|
26
|
-
|
|
27
|
-
|
|
79
|
+
value,
|
|
80
|
+
asChild,
|
|
81
|
+
className: cn(tabsTriggerVariants({ variant }), className),
|
|
82
|
+
...props,
|
|
83
|
+
children: content
|
|
28
84
|
});
|
|
29
85
|
}
|
|
30
86
|
function TabsContent({ className, ...props }) {
|
package/dist/textarea/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Textarea } from "../textarea-
|
|
1
|
+
import { t as Textarea } from "../textarea-DiSGxCBO.mjs";
|
|
2
2
|
export { Textarea };
|
|
@@ -6,7 +6,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
6
6
|
function Textarea({ ref, className, ...props }) {
|
|
7
7
|
return /* @__PURE__ */ jsx(Textarea$1, {
|
|
8
8
|
ref,
|
|
9
|
-
className: cn("rounded-lg", "bg-input-background/50", "text-input-foreground", "border-input-border", "placeholder:text-input-placeholder", "focus-visible:ring-0 focus-visible:ring-offset-0", "focus-visible:border-input-focus-border", "focus-visible:shadow-(--input-focus-shadow)", "aria-invalid:border-destructive", className),
|
|
9
|
+
className: cn("rounded-lg", "bg-input-background/50", "text-input-foreground", "border-input-border", "placeholder:text-input-placeholder", "shadow-none", "focus-visible:ring-0 focus-visible:ring-offset-0", "focus-visible:border-input-focus-border", "focus-visible:shadow-(--input-focus-shadow)", "aria-invalid:border-destructive", className),
|
|
10
10
|
...props
|
|
11
11
|
});
|
|
12
12
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as TimePicker } from "../time-picker-
|
|
1
|
+
import { t as TimePicker } from "../time-picker-BzNSUazl.mjs";
|
|
2
2
|
export { TimePicker };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as useDeprecationWarning } from "./use-deprecation-warning-DXrGc0jX.mjs";
|
|
2
|
-
import { n as TimePicker$1 } from "./picker-
|
|
2
|
+
import { n as TimePicker$1 } from "./picker-Cke6cfsb.mjs";
|
|
3
3
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/features/time-picker/time-picker.tsx
|
|
5
5
|
const STEP_VALUES = [
|
|
@@ -3,8 +3,8 @@ import { t as Button } from "./button-DoMqfQLu.mjs";
|
|
|
3
3
|
import { Calendar } from "./calendar/index.mjs";
|
|
4
4
|
import { t as Input } from "./input-j4tbmYYz.mjs";
|
|
5
5
|
import { t as ResponsivePopover } from "./responsive-popover-8VcjBM2d.mjs";
|
|
6
|
-
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-
|
|
7
|
-
import { F as zonedDateToIso, M as getBrowserTimezone, N as getTimezoneOffset, P as isoToZonedDate, U as endOfDayInTz, W as startOfDayInTz, j as formatTimezoneLabel, t as DateTimeRangePicker } from "./date-time-range-picker-
|
|
6
|
+
import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-D4pk9e2d.mjs";
|
|
7
|
+
import { F as zonedDateToIso, M as getBrowserTimezone, N as getTimezoneOffset, P as isoToZonedDate, U as endOfDayInTz, W as startOfDayInTz, j as formatTimezoneLabel, t as DateTimeRangePicker } from "./date-time-range-picker-BEulotVf.mjs";
|
|
8
8
|
import { t as useDeprecationWarning } from "./use-deprecation-warning-DXrGc0jX.mjs";
|
|
9
9
|
import { CalendarIcon, Globe } from "lucide-react";
|
|
10
10
|
import { useCallback, useEffect, useId, useRef, useState } from "react";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datum-cloud/datum-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.9.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/datum-cloud/datum-ui"
|
|
@@ -173,6 +173,11 @@
|
|
|
173
173
|
"types": "./dist/components/base/separator/index.d.ts",
|
|
174
174
|
"default": "./dist/separator/index.mjs"
|
|
175
175
|
},
|
|
176
|
+
"./settings-nav": {
|
|
177
|
+
"source": "./src/components/base/settings-nav/index.ts",
|
|
178
|
+
"types": "./dist/components/base/settings-nav/index.d.ts",
|
|
179
|
+
"default": "./dist/settings-nav/index.mjs"
|
|
180
|
+
},
|
|
176
181
|
"./sheet": {
|
|
177
182
|
"source": "./src/components/base/sheet/index.ts",
|
|
178
183
|
"types": "./dist/components/base/sheet/index.d.ts",
|
package/dist/card-Cphn2nA3.mjs
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { t as cn } from "./utils-Bu32wN-x.mjs";
|
|
2
|
-
import "react";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
//#region ../shadcn/ui/card.tsx
|
|
5
|
-
function CardTitle({ className, ...props }) {
|
|
6
|
-
return /* @__PURE__ */ jsx("div", {
|
|
7
|
-
"data-slot": "card-title",
|
|
8
|
-
className: cn("leading-none font-semibold", className),
|
|
9
|
-
...props
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
function CardDescription({ className, ...props }) {
|
|
13
|
-
return /* @__PURE__ */ jsx("div", {
|
|
14
|
-
"data-slot": "card-description",
|
|
15
|
-
className: cn("text-muted-foreground text-sm", className),
|
|
16
|
-
...props
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
function CardContent({ className, ...props }) {
|
|
20
|
-
return /* @__PURE__ */ jsx("div", {
|
|
21
|
-
"data-slot": "card-content",
|
|
22
|
-
className: cn("px-6", className),
|
|
23
|
-
...props
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
//#endregion
|
|
27
|
-
//#region src/components/base/card/card.tsx
|
|
28
|
-
/**
|
|
29
|
-
* Datum Card Component
|
|
30
|
-
* Extends shadcn Card with custom default className
|
|
31
|
-
*
|
|
32
|
-
* This component replaces the default className of shadcn Card without modifying
|
|
33
|
-
* the original shadcn component. All sub-components (CardHeader, CardTitle, etc.)
|
|
34
|
-
* are re-exported from shadcn as-is.
|
|
35
|
-
*/
|
|
36
|
-
const DEFAULT_CARD_CLASSNAME = "bg-card text-card-foreground flex flex-col gap-4 rounded-xl border border-card-border py-6 shadow";
|
|
37
|
-
function Card({ className, ...props }) {
|
|
38
|
-
return /* @__PURE__ */ jsx("div", {
|
|
39
|
-
"data-slot": "card",
|
|
40
|
-
className: cn(DEFAULT_CARD_CLASSNAME, className),
|
|
41
|
-
...props
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
function CardHeader({ className, ...props }) {
|
|
45
|
-
return /* @__PURE__ */ jsx("div", {
|
|
46
|
-
"data-slot": "card-header",
|
|
47
|
-
className: cn("border-card-border flex flex-col gap-3 px-6", className),
|
|
48
|
-
...props
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
function CardFooter({ className, ...props }) {
|
|
52
|
-
return /* @__PURE__ */ jsx("div", {
|
|
53
|
-
"data-slot": "card-footer",
|
|
54
|
-
className: cn("border-card-border px-6", className),
|
|
55
|
-
...props
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
//#endregion
|
|
59
|
-
export { CardDescription as a, CardContent as i, CardFooter as n, CardTitle as o, CardHeader as r, Card as t };
|
package/dist/switch-Z2pJMckf.mjs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { t as cn } from "./utils-Bu32wN-x.mjs";
|
|
2
|
-
import "react";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
5
|
-
//#region ../shadcn/ui/switch.tsx
|
|
6
|
-
function Switch$1({ className, ...props }) {
|
|
7
|
-
return /* @__PURE__ */ jsx(SwitchPrimitive.Root, {
|
|
8
|
-
"data-slot": "switch",
|
|
9
|
-
className: cn("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
10
|
-
...props,
|
|
11
|
-
children: /* @__PURE__ */ jsx(SwitchPrimitive.Thumb, {
|
|
12
|
-
"data-slot": "switch-thumb",
|
|
13
|
-
className: cn("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")
|
|
14
|
-
})
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region src/components/base/switch/switch.tsx
|
|
19
|
-
function Switch({ ref, className, ...props }) {
|
|
20
|
-
return /* @__PURE__ */ jsx(Switch$1, {
|
|
21
|
-
ref,
|
|
22
|
-
className: cn("transition-[background-color,border-color,box-shadow] duration-[var(--duration-fast)] ease-out", className),
|
|
23
|
-
...props
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
Switch.displayName = "Switch";
|
|
27
|
-
//#endregion
|
|
28
|
-
export { Switch as t };
|