@journ/bloom 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DESIGN.md +287 -0
- package/LICENSE +21 -0
- package/README.md +59 -0
- package/dist/accordion-parts.d.ts +9 -0
- package/dist/accordion-parts.js +37 -0
- package/dist/accordion.d.ts +10 -0
- package/dist/accordion.js +10 -0
- package/dist/alert-dialog-parts.d.ts +16 -0
- package/dist/alert-dialog-parts.js +33 -0
- package/dist/alert-dialog.d.ts +15 -0
- package/dist/alert-dialog.js +15 -0
- package/dist/alert.d.ts +48 -0
- package/dist/alert.js +51 -0
- package/dist/animated-size.d.ts +6 -0
- package/dist/animated-size.js +12 -0
- package/dist/avatar-parts.d.ts +10 -0
- package/dist/avatar-parts.js +20 -0
- package/dist/avatar.d.ts +9 -0
- package/dist/avatar.js +9 -0
- package/dist/badge.d.ts +38 -0
- package/dist/badge.js +22 -0
- package/dist/breadcrumbs.d.ts +18 -0
- package/dist/breadcrumbs.js +44 -0
- package/dist/bulk-bar.d.ts +13 -0
- package/dist/bulk-bar.js +27 -0
- package/dist/button.d.ts +40 -0
- package/dist/button.js +41 -0
- package/dist/calendar-parts.d.ts +17 -0
- package/dist/calendar-parts.js +90 -0
- package/dist/calendar.d.ts +17 -0
- package/dist/calendar.js +17 -0
- package/dist/card.d.ts +51 -0
- package/dist/card.js +63 -0
- package/dist/carousel-parts.d.ts +13 -0
- package/dist/carousel-parts.js +53 -0
- package/dist/carousel.d.ts +11 -0
- package/dist/carousel.js +11 -0
- package/dist/checkbox-parts.d.ts +8 -0
- package/dist/checkbox-parts.js +21 -0
- package/dist/checkbox.d.ts +8 -0
- package/dist/checkbox.js +8 -0
- package/dist/chip.d.ts +45 -0
- package/dist/chip.js +55 -0
- package/dist/collapsible-parts.d.ts +8 -0
- package/dist/collapsible-parts.js +22 -0
- package/dist/collapsible.d.ts +9 -0
- package/dist/collapsible.js +9 -0
- package/dist/combobox-parts.d.ts +22 -0
- package/dist/combobox-parts.js +54 -0
- package/dist/combobox.d.ts +26 -0
- package/dist/combobox.js +21 -0
- package/dist/command-palette-parts.d.ts +13 -0
- package/dist/command-palette-parts.js +19 -0
- package/dist/command-palette.d.ts +17 -0
- package/dist/command-palette.js +17 -0
- package/dist/composer.d.ts +12 -0
- package/dist/composer.js +21 -0
- package/dist/context-menu-parts.d.ts +15 -0
- package/dist/context-menu-parts.js +10 -0
- package/dist/context-menu.d.ts +20 -0
- package/dist/context-menu.js +13 -0
- package/dist/currency-input-parts.d.ts +8 -0
- package/dist/currency-input-parts.js +13 -0
- package/dist/currency-input.d.ts +8 -0
- package/dist/currency-input.js +8 -0
- package/dist/data-table-parts.d.ts +10 -0
- package/dist/data-table-parts.js +65 -0
- package/dist/data-table.d.ts +12 -0
- package/dist/data-table.js +12 -0
- package/dist/date-input-parts.d.ts +7 -0
- package/dist/date-input-parts.js +12 -0
- package/dist/date-input.d.ts +8 -0
- package/dist/date-input.js +8 -0
- package/dist/date-picker-parts.d.ts +11 -0
- package/dist/date-picker-parts.js +8 -0
- package/dist/date-picker.d.ts +20 -0
- package/dist/date-picker.js +15 -0
- package/dist/date-range-picker-parts.d.ts +11 -0
- package/dist/date-range-picker-parts.js +8 -0
- package/dist/date-range-picker.d.ts +20 -0
- package/dist/date-range-picker.js +15 -0
- package/dist/description-list.d.ts +12 -0
- package/dist/description-list.js +23 -0
- package/dist/dialog-parts.d.ts +15 -0
- package/dist/dialog-parts.js +32 -0
- package/dist/dialog.d.ts +15 -0
- package/dist/dialog.js +15 -0
- package/dist/divider.d.ts +6 -0
- package/dist/divider.js +12 -0
- package/dist/drawer-parts.d.ts +13 -0
- package/dist/drawer-parts.js +31 -0
- package/dist/drawer.d.ts +15 -0
- package/dist/drawer.js +15 -0
- package/dist/dropdown-menu-parts.d.ts +15 -0
- package/dist/dropdown-menu-parts.js +10 -0
- package/dist/dropdown-menu.d.ts +20 -0
- package/dist/dropdown-menu.js +13 -0
- package/dist/empty-state.d.ts +16 -0
- package/dist/empty-state.js +40 -0
- package/dist/field-parts.d.ts +10 -0
- package/dist/field-parts.js +25 -0
- package/dist/field.d.ts +11 -0
- package/dist/field.js +11 -0
- package/dist/file-dropzone-parts.d.ts +12 -0
- package/dist/file-dropzone-parts.js +32 -0
- package/dist/file-dropzone.d.ts +10 -0
- package/dist/file-dropzone.js +10 -0
- package/dist/heading.d.ts +31 -0
- package/dist/heading.js +26 -0
- package/dist/hover-card-parts.d.ts +8 -0
- package/dist/hover-card-parts.js +20 -0
- package/dist/hover-card.d.ts +9 -0
- package/dist/hover-card.js +9 -0
- package/dist/icon-button.d.ts +44 -0
- package/dist/icon-button.js +39 -0
- package/dist/icon.d.ts +30 -0
- package/dist/icon.js +27 -0
- package/dist/index.d.ts +96 -0
- package/dist/index.js +89 -0
- package/dist/input.d.ts +7 -0
- package/dist/input.js +14 -0
- package/dist/lib/cn.d.ts +6 -0
- package/dist/lib/cn.js +7 -0
- package/dist/lib/icon-tile.d.ts +32 -0
- package/dist/lib/icon-tile.js +23 -0
- package/dist/lib/interactive.d.ts +11 -0
- package/dist/lib/interactive.js +19 -0
- package/dist/lib/menu-parts.d.ts +25 -0
- package/dist/lib/menu-parts.js +41 -0
- package/dist/lib/modal-content.d.ts +10 -0
- package/dist/lib/modal-content.js +17 -0
- package/dist/lib/modal-parts.d.ts +7 -0
- package/dist/lib/modal-parts.js +15 -0
- package/dist/lib/overlay.d.ts +41 -0
- package/dist/lib/overlay.js +22 -0
- package/dist/lib/picker.d.ts +18 -0
- package/dist/lib/picker.js +25 -0
- package/dist/lib/text-styles.d.ts +25 -0
- package/dist/lib/text-styles.js +25 -0
- package/dist/lib/theme.d.ts +43 -0
- package/dist/lib/theme.js +45 -0
- package/dist/lib/tones.d.ts +52 -0
- package/dist/lib/tones.js +55 -0
- package/dist/lib/tv.d.ts +2 -0
- package/dist/lib/tv.js +2 -0
- package/dist/lib/use-enter.d.ts +15 -0
- package/dist/lib/use-enter.js +54 -0
- package/dist/link.d.ts +8 -0
- package/dist/link.js +13 -0
- package/dist/markdown.d.ts +10 -0
- package/dist/markdown.js +70 -0
- package/dist/message.d.ts +15 -0
- package/dist/message.js +25 -0
- package/dist/month-picker-parts.d.ts +2 -0
- package/dist/month-picker-parts.js +3 -0
- package/dist/month-picker.d.ts +15 -0
- package/dist/month-picker.js +15 -0
- package/dist/month-stepper-parts.d.ts +11 -0
- package/dist/month-stepper-parts.js +37 -0
- package/dist/month-stepper.d.ts +10 -0
- package/dist/month-stepper.js +10 -0
- package/dist/multiple-selector-parts.d.ts +18 -0
- package/dist/multiple-selector-parts.js +28 -0
- package/dist/multiple-selector.d.ts +28 -0
- package/dist/multiple-selector.js +23 -0
- package/dist/nav-bar.d.ts +10 -0
- package/dist/nav-bar.js +23 -0
- package/dist/navigation-menu-parts.d.ts +12 -0
- package/dist/navigation-menu-parts.js +47 -0
- package/dist/navigation-menu.d.ts +12 -0
- package/dist/navigation-menu.js +12 -0
- package/dist/otp-input-parts.d.ts +8 -0
- package/dist/otp-input-parts.js +17 -0
- package/dist/otp-input.d.ts +9 -0
- package/dist/otp-input.js +9 -0
- package/dist/page-header.d.ts +12 -0
- package/dist/page-header.js +23 -0
- package/dist/page.d.ts +45 -0
- package/dist/page.js +41 -0
- package/dist/pagination.d.ts +18 -0
- package/dist/pagination.js +49 -0
- package/dist/pill-select.d.ts +5 -0
- package/dist/pill-select.js +21 -0
- package/dist/popover-parts.d.ts +9 -0
- package/dist/popover-parts.js +21 -0
- package/dist/popover.d.ts +10 -0
- package/dist/popover.js +10 -0
- package/dist/portal.d.ts +2 -0
- package/dist/portal.js +2 -0
- package/dist/progress-parts.d.ts +38 -0
- package/dist/progress-parts.js +25 -0
- package/dist/progress.d.ts +8 -0
- package/dist/progress.js +8 -0
- package/dist/quantity-input-parts.d.ts +11 -0
- package/dist/quantity-input-parts.js +36 -0
- package/dist/quantity-input.d.ts +10 -0
- package/dist/quantity-input.js +10 -0
- package/dist/radio-parts.d.ts +7 -0
- package/dist/radio-parts.js +19 -0
- package/dist/radio.d.ts +8 -0
- package/dist/radio.js +8 -0
- package/dist/scroll-area-parts.d.ts +9 -0
- package/dist/scroll-area-parts.js +23 -0
- package/dist/scroll-area.d.ts +10 -0
- package/dist/scroll-area.js +10 -0
- package/dist/select-parts.d.ts +13 -0
- package/dist/select-parts.js +46 -0
- package/dist/select.d.ts +14 -0
- package/dist/select.js +14 -0
- package/dist/sheet-parts.d.ts +33 -0
- package/dist/sheet-parts.js +41 -0
- package/dist/sheet.d.ts +16 -0
- package/dist/sheet.js +16 -0
- package/dist/sidebar.d.ts +24 -0
- package/dist/sidebar.js +58 -0
- package/dist/skeleton.d.ts +5 -0
- package/dist/skeleton.js +11 -0
- package/dist/slider-parts.d.ts +9 -0
- package/dist/slider-parts.js +26 -0
- package/dist/slider.d.ts +10 -0
- package/dist/slider.js +10 -0
- package/dist/spinner.d.ts +5 -0
- package/dist/spinner.js +10 -0
- package/dist/stack-parts.d.ts +39 -0
- package/dist/stack-parts.js +35 -0
- package/dist/stack.d.ts +10 -0
- package/dist/stack.js +10 -0
- package/dist/stat.d.ts +14 -0
- package/dist/stat.js +29 -0
- package/dist/step-button.d.ts +10 -0
- package/dist/step-button.js +14 -0
- package/dist/stepper-parts.d.ts +10 -0
- package/dist/stepper-parts.js +33 -0
- package/dist/stepper.d.ts +11 -0
- package/dist/stepper.js +11 -0
- package/dist/styles.css +2 -0
- package/dist/switch-parts.d.ts +7 -0
- package/dist/switch-parts.js +19 -0
- package/dist/switch.d.ts +8 -0
- package/dist/switch.js +8 -0
- package/dist/table.d.ts +20 -0
- package/dist/table.js +48 -0
- package/dist/tabs-parts.d.ts +9 -0
- package/dist/tabs-parts.js +25 -0
- package/dist/tabs.d.ts +10 -0
- package/dist/tabs.js +10 -0
- package/dist/tag-input-parts.d.ts +15 -0
- package/dist/tag-input-parts.js +24 -0
- package/dist/tag-input.d.ts +10 -0
- package/dist/tag-input.js +10 -0
- package/dist/text-morph.d.ts +6 -0
- package/dist/text-morph.js +14 -0
- package/dist/text-shimmer.d.ts +9 -0
- package/dist/text-shimmer.js +12 -0
- package/dist/text.d.ts +38 -0
- package/dist/text.js +32 -0
- package/dist/textarea.d.ts +5 -0
- package/dist/textarea.js +12 -0
- package/dist/time-range-parts.d.ts +10 -0
- package/dist/time-range-parts.js +22 -0
- package/dist/time-range.d.ts +10 -0
- package/dist/time-range.js +10 -0
- package/dist/toast-parts.d.ts +11 -0
- package/dist/toast-parts.js +39 -0
- package/dist/toast.d.ts +13 -0
- package/dist/toast.js +12 -0
- package/dist/toggle-group-parts.d.ts +7 -0
- package/dist/toggle-group-parts.js +17 -0
- package/dist/toggle-group.d.ts +8 -0
- package/dist/toggle-group.js +8 -0
- package/dist/tokens.css +64 -0
- package/dist/tooltip-parts.d.ts +9 -0
- package/dist/tooltip-parts.js +21 -0
- package/dist/tooltip.d.ts +10 -0
- package/dist/tooltip.js +10 -0
- package/dist/touch-target.d.ts +7 -0
- package/dist/touch-target.js +10 -0
- package/package.json +71 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "./lib/cn.js";
|
|
3
|
+
import { BulkBar } from "./bulk-bar.js";
|
|
4
|
+
import { Button } from "./button.js";
|
|
5
|
+
import { Indicator, Root as Root$1 } from "./checkbox-parts.js";
|
|
6
|
+
import { Pagination } from "./pagination.js";
|
|
7
|
+
import { Content, Root as Root$2, Trigger } from "./popover-parts.js";
|
|
8
|
+
import { Table } from "./table.js";
|
|
9
|
+
import { ArrowDown, ArrowUp, ChevronLeft, ChevronRight, ChevronsUpDown, Columns3 } from "lucide-react";
|
|
10
|
+
import { jsx } from "react/jsx-runtime";
|
|
11
|
+
import * as Nude from "@journ/nude/data-table-parts";
|
|
12
|
+
//#region src/data-table-parts.tsx
|
|
13
|
+
const { dataTableColumns, selectColumn, useDataTable, ColumnPicker, View, Pager, SelectionBar } = Nude;
|
|
14
|
+
const OutlineButton = (props) => /* @__PURE__ */ jsx(Button, {
|
|
15
|
+
tone: "outline",
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
const GhostButton = (props) => /* @__PURE__ */ jsx(Button, {
|
|
19
|
+
tone: "ghost",
|
|
20
|
+
...props
|
|
21
|
+
});
|
|
22
|
+
const components = {
|
|
23
|
+
Table,
|
|
24
|
+
Checkbox: {
|
|
25
|
+
Root: Root$1,
|
|
26
|
+
Indicator
|
|
27
|
+
},
|
|
28
|
+
Popover: {
|
|
29
|
+
Root: Root$2,
|
|
30
|
+
Trigger,
|
|
31
|
+
Content
|
|
32
|
+
},
|
|
33
|
+
Pagination,
|
|
34
|
+
BulkBar,
|
|
35
|
+
TriggerButton: OutlineButton,
|
|
36
|
+
ActionButton: GhostButton
|
|
37
|
+
};
|
|
38
|
+
const classNames = {
|
|
39
|
+
sortButton: "focus-visible:outline-bloom-sky inline-flex cursor-default items-center gap-1 outline-none focus-visible:outline-2",
|
|
40
|
+
row: "data-[state=selected]:bg-current/5",
|
|
41
|
+
emptyCell: "py-10 text-center opacity-70",
|
|
42
|
+
columnPickerContent: "w-56 gap-1",
|
|
43
|
+
columnOption: "flex items-center gap-3 px-2 py-2 text-sm",
|
|
44
|
+
pagerStatus: "text-sm tabular-nums"
|
|
45
|
+
};
|
|
46
|
+
const icons = {
|
|
47
|
+
sortAscending: /* @__PURE__ */ jsx(ArrowUp, { className: "size-3" }),
|
|
48
|
+
sortDescending: /* @__PURE__ */ jsx(ArrowDown, { className: "size-3" }),
|
|
49
|
+
unsorted: /* @__PURE__ */ jsx(ChevronsUpDown, { className: "size-3 opacity-50" }),
|
|
50
|
+
columns: /* @__PURE__ */ jsx(Columns3, {}),
|
|
51
|
+
previous: /* @__PURE__ */ jsx(ChevronLeft, {}),
|
|
52
|
+
next: /* @__PURE__ */ jsx(ChevronRight, {})
|
|
53
|
+
};
|
|
54
|
+
const Root = (props) => /* @__PURE__ */ jsx(Nude.Root, {
|
|
55
|
+
...props,
|
|
56
|
+
components,
|
|
57
|
+
classNames,
|
|
58
|
+
icons
|
|
59
|
+
});
|
|
60
|
+
const Toolbar = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Toolbar, {
|
|
61
|
+
...props,
|
|
62
|
+
className: cn("flex flex-wrap items-center gap-2", className)
|
|
63
|
+
});
|
|
64
|
+
//#endregion
|
|
65
|
+
export { ColumnPicker, Pager, Root, SelectionBar, Toolbar, View, dataTableColumns, selectColumn, useDataTable };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DataTableColumn, Root, RootProps, Toolbar, dataTableColumns, selectColumn, useDataTable } from "./data-table-parts.js";
|
|
2
|
+
//#region src/data-table.d.ts
|
|
3
|
+
declare const DataTable: {
|
|
4
|
+
Root: typeof Root;
|
|
5
|
+
Toolbar: typeof Toolbar;
|
|
6
|
+
ColumnPicker: any;
|
|
7
|
+
Table: any;
|
|
8
|
+
Pager: any;
|
|
9
|
+
SelectionBar: any;
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { DataTable, type DataTableColumn, type RootProps as DataTableProps, dataTableColumns, selectColumn, useDataTable };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ColumnPicker, Pager, Root, SelectionBar, Toolbar, View, dataTableColumns, selectColumn, useDataTable } from "./data-table-parts.js";
|
|
2
|
+
//#region src/data-table.tsx
|
|
3
|
+
const DataTable = {
|
|
4
|
+
Root,
|
|
5
|
+
Toolbar,
|
|
6
|
+
ColumnPicker,
|
|
7
|
+
Table: View,
|
|
8
|
+
Pager,
|
|
9
|
+
SelectionBar
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { DataTable, dataTableColumns, selectColumn, useDataTable };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
import * as Nude from "@journ/nude/date-input-parts";
|
|
3
|
+
//#region src/date-input-parts.d.ts
|
|
4
|
+
declare const Root: any;
|
|
5
|
+
declare const Field: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Field>) => import("react").JSX.Element;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { Field, Root };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { input } from "./input.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import * as Nude from "@journ/nude/date-input-parts";
|
|
5
|
+
//#region src/date-input-parts.tsx
|
|
6
|
+
const Root = Nude.Root;
|
|
7
|
+
const Field = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Field, {
|
|
8
|
+
...props,
|
|
9
|
+
className: input(className)
|
|
10
|
+
});
|
|
11
|
+
//#endregion
|
|
12
|
+
export { Field, Root };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ButtonProps } from "./button.js";
|
|
2
|
+
import { DatePickerActions, DatePickerContextValue, DatePickerMeta, DatePickerState, RootProps } from "@journ/nude/date-picker-parts";
|
|
3
|
+
//#region src/date-picker-parts.d.ts
|
|
4
|
+
declare const Provider: any, Root: any, Calendar: any, useDatePicker: any;
|
|
5
|
+
declare const Trigger: ({ tone, className, children, ...props }: import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
6
|
+
tone?: ButtonProps['tone'];
|
|
7
|
+
}) => import("react").JSX.Element, Value: ({ className, ...props }: {
|
|
8
|
+
className?: string;
|
|
9
|
+
}) => import("react").JSX.Element;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Calendar, type DatePickerActions, type DatePickerContextValue, type DatePickerMeta, type DatePickerState, Provider, Root, type RootProps, Trigger, Value, useDatePicker };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { stylePicker } from "./lib/picker.js";
|
|
3
|
+
import * as Nude from "@journ/nude/date-picker-parts";
|
|
4
|
+
//#region src/date-picker-parts.tsx
|
|
5
|
+
const { Provider, Root, Calendar, useDatePicker } = Nude;
|
|
6
|
+
const { Trigger, Value } = stylePicker(Nude);
|
|
7
|
+
//#endregion
|
|
8
|
+
export { Calendar, Provider, Root, Trigger, Value, useDatePicker };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ButtonProps } from "./button.js";
|
|
2
|
+
import { Content, Description, Title } from "./drawer-parts.js";
|
|
3
|
+
import { DatePickerActions, DatePickerContextValue, DatePickerMeta, DatePickerState, RootProps, useDatePicker } from "./date-picker-parts.js";
|
|
4
|
+
//#region src/date-picker.d.ts
|
|
5
|
+
declare const DatePicker: {
|
|
6
|
+
Provider: any;
|
|
7
|
+
Root: any;
|
|
8
|
+
Trigger: ({ tone, className, children, ...props }: import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
9
|
+
tone?: ButtonProps['tone'];
|
|
10
|
+
}) => import("react").JSX.Element;
|
|
11
|
+
Value: ({ className, ...props }: {
|
|
12
|
+
className?: string;
|
|
13
|
+
}) => import("react").JSX.Element;
|
|
14
|
+
Content: typeof Content;
|
|
15
|
+
Title: typeof Title;
|
|
16
|
+
Description: typeof Description;
|
|
17
|
+
Calendar: any;
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { DatePicker, type DatePickerActions, type DatePickerContextValue, type DatePickerMeta, type RootProps as DatePickerProps, type DatePickerState, useDatePicker };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Content, Description, Title } from "./drawer-parts.js";
|
|
2
|
+
import { Calendar, Provider, Root, Trigger, Value, useDatePicker } from "./date-picker-parts.js";
|
|
3
|
+
//#region src/date-picker.tsx
|
|
4
|
+
const DatePicker = {
|
|
5
|
+
Provider,
|
|
6
|
+
Root,
|
|
7
|
+
Trigger,
|
|
8
|
+
Value,
|
|
9
|
+
Content,
|
|
10
|
+
Title,
|
|
11
|
+
Description,
|
|
12
|
+
Calendar
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { DatePicker, useDatePicker };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ButtonProps } from "./button.js";
|
|
2
|
+
import { DateRange, DateRangePickerActions, DateRangePickerContextValue, DateRangePickerMeta, DateRangePickerState, RootProps } from "@journ/nude/date-range-picker-parts";
|
|
3
|
+
//#region src/date-range-picker-parts.d.ts
|
|
4
|
+
declare const Provider: any, Root: any, Calendar: any, useDateRangePicker: any;
|
|
5
|
+
declare const Trigger: ({ tone, className, children, ...props }: import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
6
|
+
tone?: ButtonProps['tone'];
|
|
7
|
+
}) => import("react").JSX.Element, Value: ({ className, ...props }: {
|
|
8
|
+
className?: string;
|
|
9
|
+
}) => import("react").JSX.Element;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Calendar, type DateRange, type DateRangePickerActions, type DateRangePickerContextValue, type DateRangePickerMeta, type DateRangePickerState, Provider, Root, type RootProps, Trigger, Value, useDateRangePicker };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { stylePicker } from "./lib/picker.js";
|
|
3
|
+
import * as Nude from "@journ/nude/date-range-picker-parts";
|
|
4
|
+
//#region src/date-range-picker-parts.tsx
|
|
5
|
+
const { Provider, Root, Calendar, useDateRangePicker } = Nude;
|
|
6
|
+
const { Trigger, Value } = stylePicker(Nude);
|
|
7
|
+
//#endregion
|
|
8
|
+
export { Calendar, Provider, Root, Trigger, Value, useDateRangePicker };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ButtonProps } from "./button.js";
|
|
2
|
+
import { Content, Description, Title } from "./drawer-parts.js";
|
|
3
|
+
import { DateRange, DateRangePickerActions, DateRangePickerContextValue, DateRangePickerMeta, DateRangePickerState, RootProps, useDateRangePicker } from "./date-range-picker-parts.js";
|
|
4
|
+
//#region src/date-range-picker.d.ts
|
|
5
|
+
declare const DateRangePicker: {
|
|
6
|
+
Provider: any;
|
|
7
|
+
Root: any;
|
|
8
|
+
Trigger: ({ tone, className, children, ...props }: import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
9
|
+
tone?: ButtonProps['tone'];
|
|
10
|
+
}) => import("react").JSX.Element;
|
|
11
|
+
Value: ({ className, ...props }: {
|
|
12
|
+
className?: string;
|
|
13
|
+
}) => import("react").JSX.Element;
|
|
14
|
+
Content: typeof Content;
|
|
15
|
+
Title: typeof Title;
|
|
16
|
+
Description: typeof Description;
|
|
17
|
+
Calendar: any;
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { type DateRange, DateRangePicker, type DateRangePickerActions, type DateRangePickerContextValue, type DateRangePickerMeta, type RootProps as DateRangePickerProps, type DateRangePickerState, useDateRangePicker };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Content, Description, Title } from "./drawer-parts.js";
|
|
2
|
+
import { Calendar, Provider, Root, Trigger, Value, useDateRangePicker } from "./date-range-picker-parts.js";
|
|
3
|
+
//#region src/date-range-picker.tsx
|
|
4
|
+
const DateRangePicker = {
|
|
5
|
+
Provider,
|
|
6
|
+
Root,
|
|
7
|
+
Trigger,
|
|
8
|
+
Value,
|
|
9
|
+
Content,
|
|
10
|
+
Title,
|
|
11
|
+
Description,
|
|
12
|
+
Calendar
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { DateRangePicker, useDateRangePicker };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
//#region src/description-list.d.ts
|
|
3
|
+
declare const Root: ({ className, ...props }: ComponentPropsWithRef<'dl'>) => import("react").JSX.Element;
|
|
4
|
+
declare const Term: ({ className, ...props }: ComponentPropsWithRef<'dt'>) => import("react").JSX.Element;
|
|
5
|
+
declare const Details: ({ className, ...props }: ComponentPropsWithRef<'dd'>) => import("react").JSX.Element;
|
|
6
|
+
declare const DescriptionList: {
|
|
7
|
+
Root: typeof Root;
|
|
8
|
+
Term: typeof Term;
|
|
9
|
+
Details: typeof Details;
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { DescriptionList };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { cn } from "./lib/cn.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { DescriptionList as DescriptionList$1 } from "@journ/nude/description-list";
|
|
4
|
+
//#region src/description-list.tsx
|
|
5
|
+
const Root = ({ className, ...props }) => /* @__PURE__ */ jsx(DescriptionList$1.Root, {
|
|
6
|
+
...props,
|
|
7
|
+
className: cn("grid grid-cols-1 text-sm/6 sm:grid-cols-[minmax(8rem,1fr)_3fr]", className)
|
|
8
|
+
});
|
|
9
|
+
const Term = ({ className, ...props }) => /* @__PURE__ */ jsx(DescriptionList$1.Term, {
|
|
10
|
+
...props,
|
|
11
|
+
className: cn("border-t border-current/10 pt-3 opacity-60 sm:py-3", className)
|
|
12
|
+
});
|
|
13
|
+
const Details = ({ className, ...props }) => /* @__PURE__ */ jsx(DescriptionList$1.Details, {
|
|
14
|
+
...props,
|
|
15
|
+
className: cn("pb-3 sm:border-t sm:border-current/10 sm:py-3", className)
|
|
16
|
+
});
|
|
17
|
+
const DescriptionList = {
|
|
18
|
+
Root,
|
|
19
|
+
Term,
|
|
20
|
+
Details
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { DescriptionList };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Actions, Body } from "./lib/modal-parts.js";
|
|
2
|
+
import { centeredPanel } from "./lib/overlay.js";
|
|
3
|
+
import { VariantProps } from "./lib/tv.js";
|
|
4
|
+
import { ComponentPropsWithRef } from "react";
|
|
5
|
+
import * as Nude from "@journ/nude/dialog-parts";
|
|
6
|
+
//#region src/dialog-parts.d.ts
|
|
7
|
+
declare const Root: any;
|
|
8
|
+
declare const Trigger: any;
|
|
9
|
+
declare const Close: any;
|
|
10
|
+
type ContentProps = Omit<ComponentPropsWithRef<typeof Nude.Content>, 'classNames' | 'overlayRef'> & VariantProps<typeof centeredPanel>;
|
|
11
|
+
declare const Content: ({ tone, className, ...props }: ContentProps) => import("react").JSX.Element;
|
|
12
|
+
declare const Title: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Title>) => import("react").JSX.Element;
|
|
13
|
+
declare const Description: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Description>) => import("react").JSX.Element;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Actions, Body, Close, Content, Description, type ContentProps as DialogContentProps, Root, Title, Trigger };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "./lib/cn.js";
|
|
3
|
+
import { modalPanelEnter } from "./lib/use-enter.js";
|
|
4
|
+
import { displayTitle, mutedText } from "./lib/text-styles.js";
|
|
5
|
+
import { Actions, Body } from "./lib/modal-parts.js";
|
|
6
|
+
import { centeredPanel } from "./lib/overlay.js";
|
|
7
|
+
import { ModalContent } from "./lib/modal-content.js";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
import * as Nude from "@journ/nude/dialog-parts";
|
|
10
|
+
//#region src/dialog-parts.tsx
|
|
11
|
+
const Root = Nude.Root;
|
|
12
|
+
const Trigger = Nude.Trigger;
|
|
13
|
+
const Close = Nude.Close;
|
|
14
|
+
const Content = ({ tone, className, ...props }) => /* @__PURE__ */ jsx(ModalContent, {
|
|
15
|
+
content: Nude.Content,
|
|
16
|
+
enter: modalPanelEnter,
|
|
17
|
+
...props,
|
|
18
|
+
className: centeredPanel({
|
|
19
|
+
tone,
|
|
20
|
+
class: cn("max-h-[85dvh]", className)
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
const Title = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Title, {
|
|
24
|
+
...props,
|
|
25
|
+
className: cn(displayTitle, className)
|
|
26
|
+
});
|
|
27
|
+
const Description = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Description, {
|
|
28
|
+
...props,
|
|
29
|
+
className: cn(mutedText, className)
|
|
30
|
+
});
|
|
31
|
+
//#endregion
|
|
32
|
+
export { Actions, Body, Close, Content, Description, Root, Title, Trigger };
|
package/dist/dialog.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Actions, Body } from "./lib/modal-parts.js";
|
|
2
|
+
import { Content, Description, Title } from "./dialog-parts.js";
|
|
3
|
+
//#region src/dialog.d.ts
|
|
4
|
+
declare const Dialog: {
|
|
5
|
+
Root: any;
|
|
6
|
+
Trigger: any;
|
|
7
|
+
Close: any;
|
|
8
|
+
Content: typeof Content;
|
|
9
|
+
Title: typeof Title;
|
|
10
|
+
Description: typeof Description;
|
|
11
|
+
Body: typeof Body;
|
|
12
|
+
Actions: typeof Actions;
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Dialog };
|
package/dist/dialog.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Actions, Body } from "./lib/modal-parts.js";
|
|
2
|
+
import { Close, Content, Description, Root, Title, Trigger } from "./dialog-parts.js";
|
|
3
|
+
//#region src/dialog.tsx
|
|
4
|
+
const Dialog = {
|
|
5
|
+
Root,
|
|
6
|
+
Trigger,
|
|
7
|
+
Close,
|
|
8
|
+
Content,
|
|
9
|
+
Title,
|
|
10
|
+
Description,
|
|
11
|
+
Body,
|
|
12
|
+
Actions
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Dialog };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
import { Divider as Divider$1 } from "@journ/nude/divider";
|
|
3
|
+
//#region src/divider.d.ts
|
|
4
|
+
declare const Divider: ({ orientation, decorative, className, ...props }: ComponentPropsWithRef<typeof Divider$1>) => import("react").JSX.Element;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { Divider };
|
package/dist/divider.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { cn } from "./lib/cn.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Divider as Divider$1 } from "@journ/nude/divider";
|
|
4
|
+
//#region src/divider.tsx
|
|
5
|
+
const Divider = ({ orientation = "horizontal", decorative = true, className, ...props }) => /* @__PURE__ */ jsx(Divider$1, {
|
|
6
|
+
orientation,
|
|
7
|
+
decorative,
|
|
8
|
+
...props,
|
|
9
|
+
className: cn("shrink-0 bg-current/10 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className)
|
|
10
|
+
});
|
|
11
|
+
//#endregion
|
|
12
|
+
export { Divider };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Actions, Body } from "./lib/modal-parts.js";
|
|
2
|
+
import { ComponentPropsWithRef } from "react";
|
|
3
|
+
import * as Nude from "@journ/nude/drawer-parts";
|
|
4
|
+
//#region src/drawer-parts.d.ts
|
|
5
|
+
declare const Root: any;
|
|
6
|
+
declare const Trigger: any;
|
|
7
|
+
declare const Close: any;
|
|
8
|
+
type ContentProps = Omit<ComponentPropsWithRef<typeof Nude.Content>, 'classNames' | 'overlayRef'>;
|
|
9
|
+
declare const Content: ({ className, children, ...props }: ContentProps) => import("react").JSX.Element;
|
|
10
|
+
declare const Title: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Title>) => import("react").JSX.Element;
|
|
11
|
+
declare const Description: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Description>) => import("react").JSX.Element;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Actions, Body, Close, Content, Description, Root, Title, Trigger };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "./lib/cn.js";
|
|
3
|
+
import { displayTitle, mutedText } from "./lib/text-styles.js";
|
|
4
|
+
import { Actions, Body } from "./lib/modal-parts.js";
|
|
5
|
+
import { dim, faintBorder, surfaceFill } from "./lib/theme.js";
|
|
6
|
+
import { modalOverlay } from "./lib/overlay.js";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import * as Nude from "@journ/nude/drawer-parts";
|
|
9
|
+
//#region src/drawer-parts.tsx
|
|
10
|
+
const Root = Nude.Root;
|
|
11
|
+
const Trigger = Nude.Trigger;
|
|
12
|
+
const Close = Nude.Close;
|
|
13
|
+
const Content = ({ className, children, ...props }) => /* @__PURE__ */ jsxs(Nude.Content, {
|
|
14
|
+
...props,
|
|
15
|
+
classNames: { overlay: modalOverlay },
|
|
16
|
+
className: cn(surfaceFill, faintBorder, "fixed inset-x-0 bottom-0 mx-auto flex max-h-[90dvh] w-full max-w-sm flex-col gap-4 rounded-t-xl border-x border-t p-6 outline-none", className),
|
|
17
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
18
|
+
"data-slot": "drawer-handle",
|
|
19
|
+
className: cn(dim, "mx-auto h-2 w-24 shrink-0 rounded-full")
|
|
20
|
+
}), children]
|
|
21
|
+
});
|
|
22
|
+
const Title = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Title, {
|
|
23
|
+
...props,
|
|
24
|
+
className: cn(displayTitle, className)
|
|
25
|
+
});
|
|
26
|
+
const Description = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Description, {
|
|
27
|
+
...props,
|
|
28
|
+
className: cn(mutedText, className)
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
31
|
+
export { Actions, Body, Close, Content, Description, Root, Title, Trigger };
|
package/dist/drawer.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Actions, Body } from "./lib/modal-parts.js";
|
|
2
|
+
import { Content, Description, Title } from "./drawer-parts.js";
|
|
3
|
+
//#region src/drawer.d.ts
|
|
4
|
+
declare const Drawer: {
|
|
5
|
+
Root: any;
|
|
6
|
+
Trigger: any;
|
|
7
|
+
Close: any;
|
|
8
|
+
Content: typeof Content;
|
|
9
|
+
Title: typeof Title;
|
|
10
|
+
Description: typeof Description;
|
|
11
|
+
Body: typeof Body;
|
|
12
|
+
Actions: typeof Actions;
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Drawer };
|
package/dist/drawer.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Actions, Body } from "./lib/modal-parts.js";
|
|
2
|
+
import { Close, Content, Description, Root, Title, Trigger } from "./drawer-parts.js";
|
|
3
|
+
//#region src/drawer.tsx
|
|
4
|
+
const Drawer = {
|
|
5
|
+
Root,
|
|
6
|
+
Trigger,
|
|
7
|
+
Close,
|
|
8
|
+
Content,
|
|
9
|
+
Title,
|
|
10
|
+
Description,
|
|
11
|
+
Body,
|
|
12
|
+
Actions
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Drawer };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/dropdown-menu-parts.d.ts
|
|
2
|
+
declare const Root: any;
|
|
3
|
+
declare const Trigger: any;
|
|
4
|
+
declare const Group: any;
|
|
5
|
+
declare const Content: ({ className, ...props }: import("react").ComponentPropsWithRef<any> & {
|
|
6
|
+
className?: string;
|
|
7
|
+
}) => import("react").JSX.Element, Item: ({ className, ...props }: import("react").ComponentPropsWithRef<any> & {
|
|
8
|
+
className?: string;
|
|
9
|
+
}) => import("react").JSX.Element, Label: ({ className, ...props }: import("react").ComponentPropsWithRef<any> & {
|
|
10
|
+
className?: string;
|
|
11
|
+
}) => import("react").JSX.Element, Separator: ({ className, ...props }: import("react").ComponentPropsWithRef<any> & {
|
|
12
|
+
className?: string;
|
|
13
|
+
}) => import("react").JSX.Element;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Content, Group, Item, Label, Root, Separator, Trigger };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { styleMenuParts } from "./lib/menu-parts.js";
|
|
3
|
+
import * as Nude from "@journ/nude/dropdown-menu-parts";
|
|
4
|
+
//#region src/dropdown-menu-parts.tsx
|
|
5
|
+
const Root = Nude.Root;
|
|
6
|
+
const Trigger = Nude.Trigger;
|
|
7
|
+
const Group = Nude.Group;
|
|
8
|
+
const { Content, Item, Label, Separator } = styleMenuParts(Nude);
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Content, Group, Item, Label, Root, Separator, Trigger };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/dropdown-menu.d.ts
|
|
2
|
+
declare const DropdownMenu: {
|
|
3
|
+
Root: any;
|
|
4
|
+
Trigger: any;
|
|
5
|
+
Content: ({ className, ...props }: import("react").ComponentPropsWithRef<any> & {
|
|
6
|
+
className?: string;
|
|
7
|
+
}) => import("react").JSX.Element;
|
|
8
|
+
Group: any;
|
|
9
|
+
Label: ({ className, ...props }: import("react").ComponentPropsWithRef<any> & {
|
|
10
|
+
className?: string;
|
|
11
|
+
}) => import("react").JSX.Element;
|
|
12
|
+
Item: ({ className, ...props }: import("react").ComponentPropsWithRef<any> & {
|
|
13
|
+
className?: string;
|
|
14
|
+
}) => import("react").JSX.Element;
|
|
15
|
+
Separator: ({ className, ...props }: import("react").ComponentPropsWithRef<any> & {
|
|
16
|
+
className?: string;
|
|
17
|
+
}) => import("react").JSX.Element;
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { DropdownMenu };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Content, Group, Item, Label, Root, Separator, Trigger } from "./dropdown-menu-parts.js";
|
|
2
|
+
//#region src/dropdown-menu.tsx
|
|
3
|
+
const DropdownMenu = {
|
|
4
|
+
Root,
|
|
5
|
+
Trigger,
|
|
6
|
+
Content,
|
|
7
|
+
Group,
|
|
8
|
+
Label,
|
|
9
|
+
Item,
|
|
10
|
+
Separator
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { DropdownMenu };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
//#region src/empty-state.d.ts
|
|
3
|
+
declare const Root: ({ className, ...props }: ComponentPropsWithRef<'div'>) => import("react").JSX.Element;
|
|
4
|
+
declare const Icon: ({ className, ...props }: ComponentPropsWithRef<'span'>) => import("react").JSX.Element;
|
|
5
|
+
declare const Title: ({ className, ...props }: ComponentPropsWithRef<'h3'>) => import("react").JSX.Element;
|
|
6
|
+
declare const Description: ({ className, ...props }: ComponentPropsWithRef<'p'>) => import("react").JSX.Element;
|
|
7
|
+
declare const Actions: ({ className, ...props }: ComponentPropsWithRef<'div'>) => import("react").JSX.Element;
|
|
8
|
+
declare const EmptyState: {
|
|
9
|
+
Root: typeof Root;
|
|
10
|
+
Icon: typeof Icon;
|
|
11
|
+
Title: typeof Title;
|
|
12
|
+
Description: typeof Description;
|
|
13
|
+
Actions: typeof Actions;
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { EmptyState };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { cn } from "./lib/cn.js";
|
|
2
|
+
import { displayTitle, mutedText } from "./lib/text-styles.js";
|
|
3
|
+
import { iconTile } from "./lib/icon-tile.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { EmptyState as EmptyState$1 } from "@journ/nude/empty-state";
|
|
6
|
+
//#region src/empty-state.tsx
|
|
7
|
+
const Root = ({ className, ...props }) => /* @__PURE__ */ jsx(EmptyState$1.Root, {
|
|
8
|
+
...props,
|
|
9
|
+
className: cn("flex flex-col items-center gap-3 px-6 py-10 text-center", className)
|
|
10
|
+
});
|
|
11
|
+
const Icon = ({ className, ...props }) => /* @__PURE__ */ jsx(EmptyState$1.Icon, {
|
|
12
|
+
"aria-hidden": true,
|
|
13
|
+
...props,
|
|
14
|
+
className: iconTile({
|
|
15
|
+
size: "lg",
|
|
16
|
+
tone: "outline",
|
|
17
|
+
class: className
|
|
18
|
+
})
|
|
19
|
+
});
|
|
20
|
+
const Title = ({ className, ...props }) => /* @__PURE__ */ jsx(EmptyState$1.Title, {
|
|
21
|
+
...props,
|
|
22
|
+
className: cn(displayTitle, className)
|
|
23
|
+
});
|
|
24
|
+
const Description = ({ className, ...props }) => /* @__PURE__ */ jsx(EmptyState$1.Description, {
|
|
25
|
+
...props,
|
|
26
|
+
className: cn("max-w-xs", mutedText, className)
|
|
27
|
+
});
|
|
28
|
+
const Actions = ({ className, ...props }) => /* @__PURE__ */ jsx(EmptyState$1.Actions, {
|
|
29
|
+
...props,
|
|
30
|
+
className: cn("mt-2 flex items-center gap-2", className)
|
|
31
|
+
});
|
|
32
|
+
const EmptyState = {
|
|
33
|
+
Root,
|
|
34
|
+
Icon,
|
|
35
|
+
Title,
|
|
36
|
+
Description,
|
|
37
|
+
Actions
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
export { EmptyState };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
import * as Nude from "@journ/nude/field-parts";
|
|
3
|
+
//#region src/field-parts.d.ts
|
|
4
|
+
declare const Root: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Root>) => import("react").JSX.Element;
|
|
5
|
+
declare const Label: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Label>) => import("react").JSX.Element;
|
|
6
|
+
declare const Description: ({ className, ...props }: ComponentPropsWithRef<'p'>) => import("react").JSX.Element;
|
|
7
|
+
declare const FieldError: ({ className, ...props }: ComponentPropsWithRef<'p'>) => import("react").JSX.Element;
|
|
8
|
+
declare const Control: any;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Control, Description, FieldError as Error, Label, Root };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "./lib/cn.js";
|
|
3
|
+
import { mutedText } from "./lib/text-styles.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import * as Nude from "@journ/nude/field-parts";
|
|
6
|
+
//#region src/field-parts.tsx
|
|
7
|
+
const Root = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Root, {
|
|
8
|
+
...props,
|
|
9
|
+
className: cn("flex flex-col gap-2", className)
|
|
10
|
+
});
|
|
11
|
+
const Label = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Label, {
|
|
12
|
+
...props,
|
|
13
|
+
className: cn("text-base/6 font-medium sm:text-sm/6", className)
|
|
14
|
+
});
|
|
15
|
+
const Description = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Description, {
|
|
16
|
+
...props,
|
|
17
|
+
className: cn(mutedText, className)
|
|
18
|
+
});
|
|
19
|
+
const FieldError = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Error, {
|
|
20
|
+
...props,
|
|
21
|
+
className: cn("text-sm/5 font-medium text-bloom-coral", className)
|
|
22
|
+
});
|
|
23
|
+
const Control = Nude.Control;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { Control, Description, FieldError as Error, Label, Root };
|