@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.
Files changed (278) hide show
  1. package/DESIGN.md +287 -0
  2. package/LICENSE +21 -0
  3. package/README.md +59 -0
  4. package/dist/accordion-parts.d.ts +9 -0
  5. package/dist/accordion-parts.js +37 -0
  6. package/dist/accordion.d.ts +10 -0
  7. package/dist/accordion.js +10 -0
  8. package/dist/alert-dialog-parts.d.ts +16 -0
  9. package/dist/alert-dialog-parts.js +33 -0
  10. package/dist/alert-dialog.d.ts +15 -0
  11. package/dist/alert-dialog.js +15 -0
  12. package/dist/alert.d.ts +48 -0
  13. package/dist/alert.js +51 -0
  14. package/dist/animated-size.d.ts +6 -0
  15. package/dist/animated-size.js +12 -0
  16. package/dist/avatar-parts.d.ts +10 -0
  17. package/dist/avatar-parts.js +20 -0
  18. package/dist/avatar.d.ts +9 -0
  19. package/dist/avatar.js +9 -0
  20. package/dist/badge.d.ts +38 -0
  21. package/dist/badge.js +22 -0
  22. package/dist/breadcrumbs.d.ts +18 -0
  23. package/dist/breadcrumbs.js +44 -0
  24. package/dist/bulk-bar.d.ts +13 -0
  25. package/dist/bulk-bar.js +27 -0
  26. package/dist/button.d.ts +40 -0
  27. package/dist/button.js +41 -0
  28. package/dist/calendar-parts.d.ts +17 -0
  29. package/dist/calendar-parts.js +90 -0
  30. package/dist/calendar.d.ts +17 -0
  31. package/dist/calendar.js +17 -0
  32. package/dist/card.d.ts +51 -0
  33. package/dist/card.js +63 -0
  34. package/dist/carousel-parts.d.ts +13 -0
  35. package/dist/carousel-parts.js +53 -0
  36. package/dist/carousel.d.ts +11 -0
  37. package/dist/carousel.js +11 -0
  38. package/dist/checkbox-parts.d.ts +8 -0
  39. package/dist/checkbox-parts.js +21 -0
  40. package/dist/checkbox.d.ts +8 -0
  41. package/dist/checkbox.js +8 -0
  42. package/dist/chip.d.ts +45 -0
  43. package/dist/chip.js +55 -0
  44. package/dist/collapsible-parts.d.ts +8 -0
  45. package/dist/collapsible-parts.js +22 -0
  46. package/dist/collapsible.d.ts +9 -0
  47. package/dist/collapsible.js +9 -0
  48. package/dist/combobox-parts.d.ts +22 -0
  49. package/dist/combobox-parts.js +54 -0
  50. package/dist/combobox.d.ts +26 -0
  51. package/dist/combobox.js +21 -0
  52. package/dist/command-palette-parts.d.ts +13 -0
  53. package/dist/command-palette-parts.js +19 -0
  54. package/dist/command-palette.d.ts +17 -0
  55. package/dist/command-palette.js +17 -0
  56. package/dist/composer.d.ts +12 -0
  57. package/dist/composer.js +21 -0
  58. package/dist/context-menu-parts.d.ts +15 -0
  59. package/dist/context-menu-parts.js +10 -0
  60. package/dist/context-menu.d.ts +20 -0
  61. package/dist/context-menu.js +13 -0
  62. package/dist/currency-input-parts.d.ts +8 -0
  63. package/dist/currency-input-parts.js +13 -0
  64. package/dist/currency-input.d.ts +8 -0
  65. package/dist/currency-input.js +8 -0
  66. package/dist/data-table-parts.d.ts +10 -0
  67. package/dist/data-table-parts.js +65 -0
  68. package/dist/data-table.d.ts +12 -0
  69. package/dist/data-table.js +12 -0
  70. package/dist/date-input-parts.d.ts +7 -0
  71. package/dist/date-input-parts.js +12 -0
  72. package/dist/date-input.d.ts +8 -0
  73. package/dist/date-input.js +8 -0
  74. package/dist/date-picker-parts.d.ts +11 -0
  75. package/dist/date-picker-parts.js +8 -0
  76. package/dist/date-picker.d.ts +20 -0
  77. package/dist/date-picker.js +15 -0
  78. package/dist/date-range-picker-parts.d.ts +11 -0
  79. package/dist/date-range-picker-parts.js +8 -0
  80. package/dist/date-range-picker.d.ts +20 -0
  81. package/dist/date-range-picker.js +15 -0
  82. package/dist/description-list.d.ts +12 -0
  83. package/dist/description-list.js +23 -0
  84. package/dist/dialog-parts.d.ts +15 -0
  85. package/dist/dialog-parts.js +32 -0
  86. package/dist/dialog.d.ts +15 -0
  87. package/dist/dialog.js +15 -0
  88. package/dist/divider.d.ts +6 -0
  89. package/dist/divider.js +12 -0
  90. package/dist/drawer-parts.d.ts +13 -0
  91. package/dist/drawer-parts.js +31 -0
  92. package/dist/drawer.d.ts +15 -0
  93. package/dist/drawer.js +15 -0
  94. package/dist/dropdown-menu-parts.d.ts +15 -0
  95. package/dist/dropdown-menu-parts.js +10 -0
  96. package/dist/dropdown-menu.d.ts +20 -0
  97. package/dist/dropdown-menu.js +13 -0
  98. package/dist/empty-state.d.ts +16 -0
  99. package/dist/empty-state.js +40 -0
  100. package/dist/field-parts.d.ts +10 -0
  101. package/dist/field-parts.js +25 -0
  102. package/dist/field.d.ts +11 -0
  103. package/dist/field.js +11 -0
  104. package/dist/file-dropzone-parts.d.ts +12 -0
  105. package/dist/file-dropzone-parts.js +32 -0
  106. package/dist/file-dropzone.d.ts +10 -0
  107. package/dist/file-dropzone.js +10 -0
  108. package/dist/heading.d.ts +31 -0
  109. package/dist/heading.js +26 -0
  110. package/dist/hover-card-parts.d.ts +8 -0
  111. package/dist/hover-card-parts.js +20 -0
  112. package/dist/hover-card.d.ts +9 -0
  113. package/dist/hover-card.js +9 -0
  114. package/dist/icon-button.d.ts +44 -0
  115. package/dist/icon-button.js +39 -0
  116. package/dist/icon.d.ts +30 -0
  117. package/dist/icon.js +27 -0
  118. package/dist/index.d.ts +96 -0
  119. package/dist/index.js +89 -0
  120. package/dist/input.d.ts +7 -0
  121. package/dist/input.js +14 -0
  122. package/dist/lib/cn.d.ts +6 -0
  123. package/dist/lib/cn.js +7 -0
  124. package/dist/lib/icon-tile.d.ts +32 -0
  125. package/dist/lib/icon-tile.js +23 -0
  126. package/dist/lib/interactive.d.ts +11 -0
  127. package/dist/lib/interactive.js +19 -0
  128. package/dist/lib/menu-parts.d.ts +25 -0
  129. package/dist/lib/menu-parts.js +41 -0
  130. package/dist/lib/modal-content.d.ts +10 -0
  131. package/dist/lib/modal-content.js +17 -0
  132. package/dist/lib/modal-parts.d.ts +7 -0
  133. package/dist/lib/modal-parts.js +15 -0
  134. package/dist/lib/overlay.d.ts +41 -0
  135. package/dist/lib/overlay.js +22 -0
  136. package/dist/lib/picker.d.ts +18 -0
  137. package/dist/lib/picker.js +25 -0
  138. package/dist/lib/text-styles.d.ts +25 -0
  139. package/dist/lib/text-styles.js +25 -0
  140. package/dist/lib/theme.d.ts +43 -0
  141. package/dist/lib/theme.js +45 -0
  142. package/dist/lib/tones.d.ts +52 -0
  143. package/dist/lib/tones.js +55 -0
  144. package/dist/lib/tv.d.ts +2 -0
  145. package/dist/lib/tv.js +2 -0
  146. package/dist/lib/use-enter.d.ts +15 -0
  147. package/dist/lib/use-enter.js +54 -0
  148. package/dist/link.d.ts +8 -0
  149. package/dist/link.js +13 -0
  150. package/dist/markdown.d.ts +10 -0
  151. package/dist/markdown.js +70 -0
  152. package/dist/message.d.ts +15 -0
  153. package/dist/message.js +25 -0
  154. package/dist/month-picker-parts.d.ts +2 -0
  155. package/dist/month-picker-parts.js +3 -0
  156. package/dist/month-picker.d.ts +15 -0
  157. package/dist/month-picker.js +15 -0
  158. package/dist/month-stepper-parts.d.ts +11 -0
  159. package/dist/month-stepper-parts.js +37 -0
  160. package/dist/month-stepper.d.ts +10 -0
  161. package/dist/month-stepper.js +10 -0
  162. package/dist/multiple-selector-parts.d.ts +18 -0
  163. package/dist/multiple-selector-parts.js +28 -0
  164. package/dist/multiple-selector.d.ts +28 -0
  165. package/dist/multiple-selector.js +23 -0
  166. package/dist/nav-bar.d.ts +10 -0
  167. package/dist/nav-bar.js +23 -0
  168. package/dist/navigation-menu-parts.d.ts +12 -0
  169. package/dist/navigation-menu-parts.js +47 -0
  170. package/dist/navigation-menu.d.ts +12 -0
  171. package/dist/navigation-menu.js +12 -0
  172. package/dist/otp-input-parts.d.ts +8 -0
  173. package/dist/otp-input-parts.js +17 -0
  174. package/dist/otp-input.d.ts +9 -0
  175. package/dist/otp-input.js +9 -0
  176. package/dist/page-header.d.ts +12 -0
  177. package/dist/page-header.js +23 -0
  178. package/dist/page.d.ts +45 -0
  179. package/dist/page.js +41 -0
  180. package/dist/pagination.d.ts +18 -0
  181. package/dist/pagination.js +49 -0
  182. package/dist/pill-select.d.ts +5 -0
  183. package/dist/pill-select.js +21 -0
  184. package/dist/popover-parts.d.ts +9 -0
  185. package/dist/popover-parts.js +21 -0
  186. package/dist/popover.d.ts +10 -0
  187. package/dist/popover.js +10 -0
  188. package/dist/portal.d.ts +2 -0
  189. package/dist/portal.js +2 -0
  190. package/dist/progress-parts.d.ts +38 -0
  191. package/dist/progress-parts.js +25 -0
  192. package/dist/progress.d.ts +8 -0
  193. package/dist/progress.js +8 -0
  194. package/dist/quantity-input-parts.d.ts +11 -0
  195. package/dist/quantity-input-parts.js +36 -0
  196. package/dist/quantity-input.d.ts +10 -0
  197. package/dist/quantity-input.js +10 -0
  198. package/dist/radio-parts.d.ts +7 -0
  199. package/dist/radio-parts.js +19 -0
  200. package/dist/radio.d.ts +8 -0
  201. package/dist/radio.js +8 -0
  202. package/dist/scroll-area-parts.d.ts +9 -0
  203. package/dist/scroll-area-parts.js +23 -0
  204. package/dist/scroll-area.d.ts +10 -0
  205. package/dist/scroll-area.js +10 -0
  206. package/dist/select-parts.d.ts +13 -0
  207. package/dist/select-parts.js +46 -0
  208. package/dist/select.d.ts +14 -0
  209. package/dist/select.js +14 -0
  210. package/dist/sheet-parts.d.ts +33 -0
  211. package/dist/sheet-parts.js +41 -0
  212. package/dist/sheet.d.ts +16 -0
  213. package/dist/sheet.js +16 -0
  214. package/dist/sidebar.d.ts +24 -0
  215. package/dist/sidebar.js +58 -0
  216. package/dist/skeleton.d.ts +5 -0
  217. package/dist/skeleton.js +11 -0
  218. package/dist/slider-parts.d.ts +9 -0
  219. package/dist/slider-parts.js +26 -0
  220. package/dist/slider.d.ts +10 -0
  221. package/dist/slider.js +10 -0
  222. package/dist/spinner.d.ts +5 -0
  223. package/dist/spinner.js +10 -0
  224. package/dist/stack-parts.d.ts +39 -0
  225. package/dist/stack-parts.js +35 -0
  226. package/dist/stack.d.ts +10 -0
  227. package/dist/stack.js +10 -0
  228. package/dist/stat.d.ts +14 -0
  229. package/dist/stat.js +29 -0
  230. package/dist/step-button.d.ts +10 -0
  231. package/dist/step-button.js +14 -0
  232. package/dist/stepper-parts.d.ts +10 -0
  233. package/dist/stepper-parts.js +33 -0
  234. package/dist/stepper.d.ts +11 -0
  235. package/dist/stepper.js +11 -0
  236. package/dist/styles.css +2 -0
  237. package/dist/switch-parts.d.ts +7 -0
  238. package/dist/switch-parts.js +19 -0
  239. package/dist/switch.d.ts +8 -0
  240. package/dist/switch.js +8 -0
  241. package/dist/table.d.ts +20 -0
  242. package/dist/table.js +48 -0
  243. package/dist/tabs-parts.d.ts +9 -0
  244. package/dist/tabs-parts.js +25 -0
  245. package/dist/tabs.d.ts +10 -0
  246. package/dist/tabs.js +10 -0
  247. package/dist/tag-input-parts.d.ts +15 -0
  248. package/dist/tag-input-parts.js +24 -0
  249. package/dist/tag-input.d.ts +10 -0
  250. package/dist/tag-input.js +10 -0
  251. package/dist/text-morph.d.ts +6 -0
  252. package/dist/text-morph.js +14 -0
  253. package/dist/text-shimmer.d.ts +9 -0
  254. package/dist/text-shimmer.js +12 -0
  255. package/dist/text.d.ts +38 -0
  256. package/dist/text.js +32 -0
  257. package/dist/textarea.d.ts +5 -0
  258. package/dist/textarea.js +12 -0
  259. package/dist/time-range-parts.d.ts +10 -0
  260. package/dist/time-range-parts.js +22 -0
  261. package/dist/time-range.d.ts +10 -0
  262. package/dist/time-range.js +10 -0
  263. package/dist/toast-parts.d.ts +11 -0
  264. package/dist/toast-parts.js +39 -0
  265. package/dist/toast.d.ts +13 -0
  266. package/dist/toast.js +12 -0
  267. package/dist/toggle-group-parts.d.ts +7 -0
  268. package/dist/toggle-group-parts.js +17 -0
  269. package/dist/toggle-group.d.ts +8 -0
  270. package/dist/toggle-group.js +8 -0
  271. package/dist/tokens.css +64 -0
  272. package/dist/tooltip-parts.d.ts +9 -0
  273. package/dist/tooltip-parts.js +21 -0
  274. package/dist/tooltip.d.ts +10 -0
  275. package/dist/tooltip.js +10 -0
  276. package/dist/touch-target.d.ts +7 -0
  277. package/dist/touch-target.js +10 -0
  278. 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,8 @@
1
+ import { Field } from "./date-input-parts.js";
2
+ //#region src/date-input.d.ts
3
+ declare const DateInput: {
4
+ Root: any;
5
+ Field: typeof Field;
6
+ };
7
+ //#endregion
8
+ export { DateInput };
@@ -0,0 +1,8 @@
1
+ import { Field, Root } from "./date-input-parts.js";
2
+ //#region src/date-input.tsx
3
+ const DateInput = {
4
+ Root,
5
+ Field
6
+ };
7
+ //#endregion
8
+ export { DateInput };
@@ -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 };
@@ -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 };
@@ -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 };
@@ -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 };