cortena-ui 1.3.0 → 1.4.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.
Files changed (280) hide show
  1. package/README.md +74 -3
  2. package/dist/a2ui/catalogue-doc.d.ts +44 -0
  3. package/dist/a2ui/catalogue-doc.js +169 -0
  4. package/dist/a2ui/catalogue-doc.js.map +1 -0
  5. package/dist/a2ui/catalogue.d.ts +44 -0
  6. package/dist/a2ui/catalogue.js +942 -0
  7. package/dist/a2ui/catalogue.js.map +1 -0
  8. package/dist/a2ui/index.d.ts +7 -0
  9. package/dist/a2ui/message.d.ts +232 -0
  10. package/dist/a2ui/message.js +365 -0
  11. package/dist/a2ui/message.js.map +1 -0
  12. package/dist/a2ui/renderer.d.ts +46 -0
  13. package/dist/a2ui/renderer.js +252 -0
  14. package/dist/a2ui/renderer.js.map +1 -0
  15. package/dist/a2ui/views.d.ts +80 -0
  16. package/dist/a2ui/views.js +596 -0
  17. package/dist/a2ui/views.js.map +1 -0
  18. package/dist/a2ui.d.ts +8 -0
  19. package/dist/a2ui.js +7 -0
  20. package/dist/chart.d.ts +9 -0
  21. package/dist/chart.js +9 -0
  22. package/dist/components/accordion.d.ts +22 -0
  23. package/dist/components/accordion.js +63 -0
  24. package/dist/components/accordion.js.map +1 -0
  25. package/dist/components/alert.d.ts +15 -0
  26. package/dist/components/alert.js +64 -0
  27. package/dist/components/alert.js.map +1 -0
  28. package/dist/components/avatar.d.ts +18 -0
  29. package/dist/components/avatar.js +40 -0
  30. package/dist/components/avatar.js.map +1 -0
  31. package/dist/components/badge.d.ts +12 -0
  32. package/dist/components/badge.js +47 -0
  33. package/dist/components/badge.js.map +1 -0
  34. package/dist/components/breadcrumb.d.ts +71 -0
  35. package/dist/components/breadcrumb.js +123 -0
  36. package/dist/components/breadcrumb.js.map +1 -0
  37. package/dist/components/button-link.d.ts +28 -0
  38. package/dist/components/button-link.js +24 -0
  39. package/dist/components/button-link.js.map +1 -0
  40. package/dist/components/button.d.ts +24 -0
  41. package/dist/components/button.js +65 -0
  42. package/dist/components/button.js.map +1 -0
  43. package/dist/components/calendar.d.ts +28 -0
  44. package/dist/components/calendar.js +123 -0
  45. package/dist/components/calendar.js.map +1 -0
  46. package/dist/components/card.d.ts +32 -0
  47. package/dist/components/card.js +57 -0
  48. package/dist/components/card.js.map +1 -0
  49. package/dist/components/chart/chart.d.ts +71 -0
  50. package/dist/components/chart/chart.js +167 -0
  51. package/dist/components/chart/chart.js.map +1 -0
  52. package/dist/components/chart/container.d.ts +88 -0
  53. package/dist/components/chart/container.js +189 -0
  54. package/dist/components/chart/container.js.map +1 -0
  55. package/dist/components/chart/data.js +128 -0
  56. package/dist/components/chart/data.js.map +1 -0
  57. package/dist/components/chart/index.d.ts +9 -0
  58. package/dist/components/chart/index.js +10 -0
  59. package/dist/components/chart/nivo-charts.js +225 -0
  60. package/dist/components/chart/nivo-charts.js.map +1 -0
  61. package/dist/components/chart/nivo-lazy.js +50 -0
  62. package/dist/components/chart/nivo-lazy.js.map +1 -0
  63. package/dist/components/chart/nivo-theme.d.ts +156 -0
  64. package/dist/components/chart/nivo-theme.js +161 -0
  65. package/dist/components/chart/nivo-theme.js.map +1 -0
  66. package/dist/components/chart/recharts-charts.js +276 -0
  67. package/dist/components/chart/recharts-charts.js.map +1 -0
  68. package/dist/components/chart/recharts-lazy.js +58 -0
  69. package/dist/components/chart/recharts-lazy.js.map +1 -0
  70. package/dist/components/chart/recharts-parts.d.ts +10 -0
  71. package/dist/components/chart/recharts-parts.js +25 -0
  72. package/dist/components/chart/recharts-parts.js.map +1 -0
  73. package/dist/components/chart/tokens.d.ts +62 -0
  74. package/dist/components/chart/tokens.js +192 -0
  75. package/dist/components/chart/tokens.js.map +1 -0
  76. package/dist/components/chart/types.d.ts +114 -0
  77. package/dist/components/chart/types.js +27 -0
  78. package/dist/components/chart/types.js.map +1 -0
  79. package/dist/components/checkbox.d.ts +20 -0
  80. package/dist/components/checkbox.js +24 -0
  81. package/dist/components/checkbox.js.map +1 -0
  82. package/dist/components/chip.d.ts +17 -0
  83. package/dist/components/chip.js +47 -0
  84. package/dist/components/chip.js.map +1 -0
  85. package/dist/components/combobox.d.ts +76 -0
  86. package/dist/components/combobox.js +201 -0
  87. package/dist/components/combobox.js.map +1 -0
  88. package/dist/components/command.d.ts +50 -0
  89. package/dist/components/command.js +117 -0
  90. package/dist/components/command.js.map +1 -0
  91. package/dist/components/data-table/data-table.d.ts +65 -0
  92. package/dist/components/data-table/data-table.js +588 -0
  93. package/dist/components/data-table/data-table.js.map +1 -0
  94. package/dist/components/data-table/export.d.ts +23 -0
  95. package/dist/components/data-table/export.js +95 -0
  96. package/dist/components/data-table/export.js.map +1 -0
  97. package/dist/components/data-table/features.d.ts +66 -0
  98. package/dist/components/data-table/features.js +103 -0
  99. package/dist/components/data-table/features.js.map +1 -0
  100. package/dist/components/data-table/index.d.ts +8 -0
  101. package/dist/components/data-table/parts.d.ts +79 -0
  102. package/dist/components/data-table/parts.js +400 -0
  103. package/dist/components/data-table/parts.js.map +1 -0
  104. package/dist/components/data-table/system-columns.js +84 -0
  105. package/dist/components/data-table/system-columns.js.map +1 -0
  106. package/dist/components/data-table/types.d.ts +172 -0
  107. package/dist/components/data-table/use-data-table.d.ts +19 -0
  108. package/dist/components/data-table/use-data-table.js +171 -0
  109. package/dist/components/data-table/use-data-table.js.map +1 -0
  110. package/dist/components/data-table/use-server-source.js +200 -0
  111. package/dist/components/data-table/use-server-source.js.map +1 -0
  112. package/dist/components/date-field.d.ts +54 -0
  113. package/dist/components/date-field.js +235 -0
  114. package/dist/components/date-field.js.map +1 -0
  115. package/dist/components/date-picker.d.ts +42 -0
  116. package/dist/components/date-picker.js +125 -0
  117. package/dist/components/date-picker.js.map +1 -0
  118. package/dist/components/dialog.d.ts +36 -0
  119. package/dist/components/dialog.js +97 -0
  120. package/dist/components/dialog.js.map +1 -0
  121. package/dist/components/dropdown-menu.d.ts +54 -0
  122. package/dist/components/dropdown-menu.js +191 -0
  123. package/dist/components/dropdown-menu.js.map +1 -0
  124. package/dist/components/dropzone.d.ts +48 -0
  125. package/dist/components/dropzone.js +185 -0
  126. package/dist/components/dropzone.js.map +1 -0
  127. package/dist/components/empty-state.d.ts +22 -0
  128. package/dist/components/empty-state.js +46 -0
  129. package/dist/components/empty-state.js.map +1 -0
  130. package/dist/components/error-banner.d.ts +17 -0
  131. package/dist/components/error-banner.js +52 -0
  132. package/dist/components/error-banner.js.map +1 -0
  133. package/dist/components/field.d.ts +64 -0
  134. package/dist/components/field.js +133 -0
  135. package/dist/components/field.js.map +1 -0
  136. package/dist/components/form.d.ts +37 -0
  137. package/dist/components/form.js +103 -0
  138. package/dist/components/form.js.map +1 -0
  139. package/dist/components/input.d.ts +17 -0
  140. package/dist/components/input.js +26 -0
  141. package/dist/components/input.js.map +1 -0
  142. package/dist/components/kbd.d.ts +11 -0
  143. package/dist/components/kbd.js +20 -0
  144. package/dist/components/kbd.js.map +1 -0
  145. package/dist/components/label.d.ts +14 -0
  146. package/dist/components/label.js +28 -0
  147. package/dist/components/label.js.map +1 -0
  148. package/dist/components/loading-skeleton.d.ts +22 -0
  149. package/dist/components/loading-skeleton.js +123 -0
  150. package/dist/components/loading-skeleton.js.map +1 -0
  151. package/dist/components/markdown.d.ts +44 -0
  152. package/dist/components/markdown.js +231 -0
  153. package/dist/components/markdown.js.map +1 -0
  154. package/dist/components/page-header.d.ts +26 -0
  155. package/dist/components/page-header.js +53 -0
  156. package/dist/components/page-header.js.map +1 -0
  157. package/dist/components/popover.d.ts +29 -0
  158. package/dist/components/popover.js +74 -0
  159. package/dist/components/popover.js.map +1 -0
  160. package/dist/components/progress.d.ts +22 -0
  161. package/dist/components/progress.js +49 -0
  162. package/dist/components/progress.js.map +1 -0
  163. package/dist/components/radio-group.d.ts +20 -0
  164. package/dist/components/radio-group.js +29 -0
  165. package/dist/components/radio-group.js.map +1 -0
  166. package/dist/components/scroll-area.d.ts +25 -0
  167. package/dist/components/scroll-area.js +39 -0
  168. package/dist/components/scroll-area.js.map +1 -0
  169. package/dist/components/section-card.d.ts +29 -0
  170. package/dist/components/section-card.js +55 -0
  171. package/dist/components/section-card.js.map +1 -0
  172. package/dist/components/segmented.d.ts +27 -0
  173. package/dist/components/segmented.js +32 -0
  174. package/dist/components/segmented.js.map +1 -0
  175. package/dist/components/select.d.ts +62 -0
  176. package/dist/components/select.js +97 -0
  177. package/dist/components/select.js.map +1 -0
  178. package/dist/components/separator.d.ts +19 -0
  179. package/dist/components/separator.js +23 -0
  180. package/dist/components/separator.js.map +1 -0
  181. package/dist/components/sheet.d.ts +35 -0
  182. package/dist/components/sheet.js +131 -0
  183. package/dist/components/sheet.js.map +1 -0
  184. package/dist/components/skeleton.d.ts +12 -0
  185. package/dist/components/skeleton.js +22 -0
  186. package/dist/components/skeleton.js.map +1 -0
  187. package/dist/components/sortable-list.d.ts +67 -0
  188. package/dist/components/sortable-list.js +206 -0
  189. package/dist/components/sortable-list.js.map +1 -0
  190. package/dist/components/spinner.d.ts +29 -0
  191. package/dist/components/spinner.js +34 -0
  192. package/dist/components/spinner.js.map +1 -0
  193. package/dist/components/status-dot.d.ts +26 -0
  194. package/dist/components/status-dot.js +47 -0
  195. package/dist/components/status-dot.js.map +1 -0
  196. package/dist/components/switch.d.ts +21 -0
  197. package/dist/components/switch.js +21 -0
  198. package/dist/components/switch.js.map +1 -0
  199. package/dist/components/tabs.d.ts +24 -0
  200. package/dist/components/tabs.js +60 -0
  201. package/dist/components/tabs.js.map +1 -0
  202. package/dist/components/textarea.d.ts +19 -0
  203. package/dist/components/textarea.js +47 -0
  204. package/dist/components/textarea.js.map +1 -0
  205. package/dist/components/toast.d.ts +47 -0
  206. package/dist/components/toast.js +106 -0
  207. package/dist/components/toast.js.map +1 -0
  208. package/dist/components/toolbar.d.ts +19 -0
  209. package/dist/components/toolbar.js +45 -0
  210. package/dist/components/toolbar.js.map +1 -0
  211. package/dist/components/tooltip.d.ts +28 -0
  212. package/dist/components/tooltip.js +59 -0
  213. package/dist/components/tooltip.js.map +1 -0
  214. package/dist/core.d.ts +44 -0
  215. package/dist/core.js +44 -0
  216. package/dist/data-table.d.ts +9 -0
  217. package/dist/data-table.js +7 -0
  218. package/dist/form.d.ts +7 -0
  219. package/dist/form.js +7 -0
  220. package/dist/hooks/use-cortena-theme.d.ts +98 -0
  221. package/dist/hooks/use-cortena-theme.js +145 -0
  222. package/dist/hooks/use-cortena-theme.js.map +1 -0
  223. package/dist/index.d.ts +75 -2678
  224. package/dist/index.js +66 -8598
  225. package/dist/lib/cn.d.ts +10 -0
  226. package/dist/lib/cn.js +15 -0
  227. package/dist/lib/cn.js.map +1 -0
  228. package/dist/lib/render.d.ts +23 -0
  229. package/dist/lib/render.js +20 -0
  230. package/dist/lib/render.js.map +1 -0
  231. package/dist/lib/shakeable.js +39 -0
  232. package/dist/lib/shakeable.js.map +1 -0
  233. package/dist/markdown.d.ts +3 -0
  234. package/dist/markdown.js +3 -0
  235. package/dist/sortable-list.d.ts +3 -0
  236. package/dist/sortable-list.js +3 -0
  237. package/package.json +37 -14
  238. package/src/a2ui/catalogue.ts +140 -103
  239. package/src/a2ui/views.tsx +5 -2
  240. package/src/components/alert.tsx +1 -1
  241. package/src/components/badge.tsx +1 -1
  242. package/src/components/button.tsx +1 -1
  243. package/src/components/chart/chart.tsx +72 -25
  244. package/src/components/chart/container.tsx +24 -39
  245. package/src/components/chart/index.tsx +4 -2
  246. package/src/components/chart/nivo-charts.tsx +41 -13
  247. package/src/components/chart/nivo-lazy.tsx +52 -0
  248. package/src/components/chart/recharts-charts.tsx +98 -3
  249. package/src/components/chart/recharts-lazy.tsx +72 -0
  250. package/src/components/chart/recharts-parts.tsx +34 -0
  251. package/src/components/chart/tokens.ts +1 -1
  252. package/src/components/chart/types.ts +14 -0
  253. package/src/components/chip.tsx +1 -1
  254. package/src/components/combobox.tsx +2 -2
  255. package/src/components/data-table/export.ts +18 -2
  256. package/src/components/data-table/features.ts +77 -45
  257. package/src/components/data-table/parts.tsx +15 -0
  258. package/src/components/data-table/use-data-table.ts +7 -2
  259. package/src/components/data-table/use-server-source.ts +17 -4
  260. package/src/components/date-field.tsx +1 -1
  261. package/src/components/error-banner.tsx +1 -1
  262. package/src/components/field.tsx +2 -2
  263. package/src/components/form.tsx +2 -2
  264. package/src/components/input.tsx +1 -1
  265. package/src/components/label.tsx +1 -1
  266. package/src/components/markdown.tsx +5 -4
  267. package/src/components/sheet.tsx +2 -2
  268. package/src/components/sortable-list.tsx +2 -2
  269. package/src/components/textarea.tsx +1 -1
  270. package/src/components/toast.tsx +1 -1
  271. package/src/entries/a2ui.ts +11 -0
  272. package/src/entries/chart.ts +10 -0
  273. package/src/entries/core.ts +91 -0
  274. package/src/entries/data-table.ts +9 -0
  275. package/src/entries/form.ts +24 -0
  276. package/src/entries/markdown.ts +9 -0
  277. package/src/entries/sortable-list.ts +13 -0
  278. package/src/index.ts +32 -98
  279. package/src/lib/shakeable.ts +33 -0
  280. package/dist/index.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import * as React from "react";
4
+ import { Toast } from "@base-ui/react/toast";
5
+ //#region src/components/toast.d.ts
6
+ /**
7
+ * Toast.
8
+ *
9
+ * Base UI toasts are imperative: `useToast().add({ title, description, type })`
10
+ * from anywhere under the provider. `Toaster` mounts `Toast.Provider` and the
11
+ * `Toast.Viewport`, and renders every toast the manager holds, so it must wrap
12
+ * the part of the tree that calls `useToast` (usually the whole app).
13
+ *
14
+ * The `type` field on a toast picks the variant: `default`, `success`,
15
+ * `warning` or `destructive`, painted from the semantic soft tokens. Anything
16
+ * else falls back to `default`.
17
+ *
18
+ * sonner / Radix users: there is no `toast()` module singleton. Get the manager
19
+ * from `useToast()` inside a component, or build one with
20
+ * `createToastManager()` from `@base-ui/react/toast` and pass it as
21
+ * `toastManager` to `Toaster` when you need to fire toasts outside React.
22
+ */
23
+ declare const toastVariants: (props?: ({
24
+ variant?: "default" | "success" | "warning" | "destructive" | null | undefined;
25
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
26
+ /** The Base UI toast manager: `{ toasts, add, close, update, promise }`. */
27
+ declare const useToast: typeof Toast.useToastManager;
28
+ export interface ToastProps extends Omit<Toast.Root.Props, "toast">, VariantProps<typeof toastVariants> {
29
+ toast: Toast.Root.ToastObject;
30
+ }
31
+ /** One toast. Rendered by `Toaster`; exported for custom viewports. */
32
+ declare function Toast$1({ className, variant, toast, ...props }: ToastProps): React.JSX.Element;
33
+ export interface ToasterProps extends Toast.Provider.Props {
34
+ /** Corner of the screen the stack grows from. */
35
+ position?: "bottom-right" | "bottom-left" | "top-right" | "top-left";
36
+ /** Extra classes on the viewport. */
37
+ className?: string;
38
+ children?: React.ReactNode;
39
+ }
40
+ /**
41
+ * Provider + viewport. Wrap the app in it once; `useToast()` works anywhere
42
+ * beneath. Toasts render in a fixed corner as a flat stack (newest last).
43
+ */
44
+ declare function Toaster({ position, className, children, ...props }: ToasterProps): React.JSX.Element;
45
+ //#endregion
46
+ export { Toast$1 as Toast, Toaster, toastVariants, useToast };
47
+ //# sourceMappingURL=toast.d.ts.map
@@ -0,0 +1,106 @@
1
+ "use client";
2
+ "use client";
3
+ import { cn } from "../lib/cn.js";
4
+ import { X } from "lucide-react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { cva } from "class-variance-authority";
7
+ import { Toast } from "@base-ui/react/toast";
8
+ //#region src/components/toast.tsx
9
+ /**
10
+ * Toast.
11
+ *
12
+ * Base UI toasts are imperative: `useToast().add({ title, description, type })`
13
+ * from anywhere under the provider. `Toaster` mounts `Toast.Provider` and the
14
+ * `Toast.Viewport`, and renders every toast the manager holds, so it must wrap
15
+ * the part of the tree that calls `useToast` (usually the whole app).
16
+ *
17
+ * The `type` field on a toast picks the variant: `default`, `success`,
18
+ * `warning` or `destructive`, painted from the semantic soft tokens. Anything
19
+ * else falls back to `default`.
20
+ *
21
+ * sonner / Radix users: there is no `toast()` module singleton. Get the manager
22
+ * from `useToast()` inside a component, or build one with
23
+ * `createToastManager()` from `@base-ui/react/toast` and pass it as
24
+ * `toastManager` to `Toaster` when you need to fire toasts outside React.
25
+ */
26
+ const toastVariants = /* @__PURE__ */ cva([
27
+ "pointer-events-auto relative flex w-full items-start gap-3 p-4",
28
+ "rounded-[var(--ds-radius-lg)] border shadow-[var(--ds-shadow-lg)]",
29
+ "text-[length:var(--ds-text-caption-lg)]",
30
+ "open:animate-in open:fade-in-0 open:slide-in-from-bottom-2",
31
+ "closed:animate-out closed:fade-out-0 closed:slide-out-to-right-2",
32
+ "duration-[var(--ds-duration-base)] ease-[var(--ds-ease-out)]",
33
+ "data-[swiping]:transition-none data-[limited]:hidden"
34
+ ], {
35
+ variants: { variant: {
36
+ default: "border-[var(--ds-border)] bg-[var(--ds-popover)] text-[color:var(--ds-popover-foreground)]",
37
+ success: "border-[var(--ds-success)]/30 bg-[var(--ds-success-soft)] text-[color:var(--ds-success)]",
38
+ warning: "border-[var(--ds-warning)]/30 bg-[var(--ds-warning-soft)] text-[color:var(--ds-warning)]",
39
+ destructive: "border-[var(--ds-destructive)]/30 bg-[var(--ds-destructive-soft)] text-[color:var(--ds-destructive)]"
40
+ } },
41
+ defaultVariants: { variant: "default" }
42
+ });
43
+ const VARIANTS = [
44
+ "default",
45
+ "success",
46
+ "warning",
47
+ "destructive"
48
+ ];
49
+ function variantOf(type) {
50
+ return VARIANTS.includes(type ?? "") ? type : "default";
51
+ }
52
+ /** The Base UI toast manager: `{ toasts, add, close, update, promise }`. */
53
+ const useToast = Toast.useToastManager;
54
+ /** One toast. Rendered by `Toaster`; exported for custom viewports. */
55
+ function Toast$1({ className, variant, toast, ...props }) {
56
+ return /* @__PURE__ */ jsxs(Toast.Root, {
57
+ "data-slot": "toast",
58
+ toast,
59
+ className: cn(toastVariants({ variant: variant ?? variantOf(toast.type) }), className),
60
+ ...props,
61
+ children: [/* @__PURE__ */ jsxs(Toast.Content, {
62
+ "data-slot": "toast-content",
63
+ className: "flex min-w-0 flex-1 flex-col gap-1",
64
+ children: [toast.title ? /* @__PURE__ */ jsx(Toast.Title, {
65
+ "data-slot": "toast-title",
66
+ className: "text-[length:var(--ds-text-body-sm)] font-semibold leading-tight"
67
+ }) : null, toast.description ? /* @__PURE__ */ jsx(Toast.Description, {
68
+ "data-slot": "toast-description",
69
+ className: "text-[length:var(--ds-text-caption-lg)] opacity-90"
70
+ }) : null]
71
+ }), /* @__PURE__ */ jsx(Toast.Close, {
72
+ "data-slot": "toast-close",
73
+ "aria-label": "Close",
74
+ className: cn("-mr-1 -mt-1 flex size-7 shrink-0 items-center justify-center rounded-[var(--ds-radius-sm)]", "opacity-70 outline-none transition-[opacity,background-color] duration-[var(--ds-duration-fast)]", "hover:bg-[var(--ds-hover)] hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-[var(--ds-ring)]/40"),
75
+ children: /* @__PURE__ */ jsx(X, { className: "size-4" })
76
+ })]
77
+ });
78
+ }
79
+ function ToastList() {
80
+ const { toasts } = useToast();
81
+ return toasts.map((toast) => /* @__PURE__ */ jsx(Toast$1, { toast }, toast.id));
82
+ }
83
+ const positionClasses = {
84
+ "bottom-right": "bottom-4 right-4 flex-col",
85
+ "bottom-left": "bottom-4 left-4 flex-col",
86
+ "top-right": "top-4 right-4 flex-col-reverse",
87
+ "top-left": "top-4 left-4 flex-col-reverse"
88
+ };
89
+ /**
90
+ * Provider + viewport. Wrap the app in it once; `useToast()` works anywhere
91
+ * beneath. Toasts render in a fixed corner as a flat stack (newest last).
92
+ */
93
+ function Toaster({ position = "bottom-right", className, children, ...props }) {
94
+ return /* @__PURE__ */ jsxs(Toast.Provider, {
95
+ ...props,
96
+ children: [children, /* @__PURE__ */ jsx(Toast.Portal, { children: /* @__PURE__ */ jsx(Toast.Viewport, {
97
+ "data-slot": "toast-viewport",
98
+ className: cn("pointer-events-none fixed z-50 flex w-[calc(100vw-2rem)] max-w-sm gap-2 outline-none", positionClasses[position], className),
99
+ children: /* @__PURE__ */ jsx(ToastList, {})
100
+ }) })]
101
+ });
102
+ }
103
+ //#endregion
104
+ export { Toast$1 as Toast, Toaster, toastVariants, useToast };
105
+
106
+ //# sourceMappingURL=toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.js","names":["ToastPrimitive","Toast"],"sources":["../../src/components/toast.tsx"],"sourcesContent":["\"use client\";\n\nimport { Toast as ToastPrimitive } from \"@base-ui/react/toast\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"@/lib/cn\";\n\n/**\n * Toast.\n *\n * Base UI toasts are imperative: `useToast().add({ title, description, type })`\n * from anywhere under the provider. `Toaster` mounts `Toast.Provider` and the\n * `Toast.Viewport`, and renders every toast the manager holds, so it must wrap\n * the part of the tree that calls `useToast` (usually the whole app).\n *\n * The `type` field on a toast picks the variant: `default`, `success`,\n * `warning` or `destructive`, painted from the semantic soft tokens. Anything\n * else falls back to `default`.\n *\n * sonner / Radix users: there is no `toast()` module singleton. Get the manager\n * from `useToast()` inside a component, or build one with\n * `createToastManager()` from `@base-ui/react/toast` and pass it as\n * `toastManager` to `Toaster` when you need to fire toasts outside React.\n */\nconst toastVariants = /* @__PURE__ */ cva(\n [\n \"pointer-events-auto relative flex w-full items-start gap-3 p-4\",\n \"rounded-[var(--ds-radius-lg)] border shadow-[var(--ds-shadow-lg)]\",\n \"text-[length:var(--ds-text-caption-lg)]\",\n \"open:animate-in open:fade-in-0 open:slide-in-from-bottom-2\",\n \"closed:animate-out closed:fade-out-0 closed:slide-out-to-right-2\",\n \"duration-[var(--ds-duration-base)] ease-[var(--ds-ease-out)]\",\n \"data-[swiping]:transition-none data-[limited]:hidden\",\n ],\n {\n variants: {\n variant: {\n default:\n \"border-[var(--ds-border)] bg-[var(--ds-popover)] text-[color:var(--ds-popover-foreground)]\",\n success:\n \"border-[var(--ds-success)]/30 bg-[var(--ds-success-soft)] text-[color:var(--ds-success)]\",\n warning:\n \"border-[var(--ds-warning)]/30 bg-[var(--ds-warning-soft)] text-[color:var(--ds-warning)]\",\n destructive:\n \"border-[var(--ds-destructive)]/30 bg-[var(--ds-destructive-soft)] text-[color:var(--ds-destructive)]\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n);\n\ntype ToastVariant = NonNullable<VariantProps<typeof toastVariants>[\"variant\"]>;\n\nconst VARIANTS: readonly ToastVariant[] = [\"default\", \"success\", \"warning\", \"destructive\"];\n\nfunction variantOf(type: string | undefined): ToastVariant {\n return (VARIANTS as readonly string[]).includes(type ?? \"\") ? (type as ToastVariant) : \"default\";\n}\n\n/** The Base UI toast manager: `{ toasts, add, close, update, promise }`. */\nconst useToast = ToastPrimitive.useToastManager;\n\nexport interface ToastProps extends Omit<ToastPrimitive.Root.Props, \"toast\">, VariantProps<typeof toastVariants> {\n toast: ToastPrimitive.Root.ToastObject;\n}\n\n/** One toast. Rendered by `Toaster`; exported for custom viewports. */\nfunction Toast({ className, variant, toast, ...props }: ToastProps) {\n return (\n <ToastPrimitive.Root\n data-slot=\"toast\"\n toast={toast}\n className={cn(toastVariants({ variant: variant ?? variantOf(toast.type) }), className)}\n {...props}\n >\n <ToastPrimitive.Content data-slot=\"toast-content\" className=\"flex min-w-0 flex-1 flex-col gap-1\">\n {toast.title ? (\n <ToastPrimitive.Title\n data-slot=\"toast-title\"\n className=\"text-[length:var(--ds-text-body-sm)] font-semibold leading-tight\"\n />\n ) : null}\n {toast.description ? (\n <ToastPrimitive.Description\n data-slot=\"toast-description\"\n className=\"text-[length:var(--ds-text-caption-lg)] opacity-90\"\n />\n ) : null}\n </ToastPrimitive.Content>\n <ToastPrimitive.Close\n data-slot=\"toast-close\"\n aria-label=\"Close\"\n className={cn(\n \"-mr-1 -mt-1 flex size-7 shrink-0 items-center justify-center rounded-[var(--ds-radius-sm)]\",\n \"opacity-70 outline-none transition-[opacity,background-color] duration-[var(--ds-duration-fast)]\",\n \"hover:bg-[var(--ds-hover)] hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-[var(--ds-ring)]/40\",\n )}\n >\n <X className=\"size-4\" />\n </ToastPrimitive.Close>\n </ToastPrimitive.Root>\n );\n}\n\nfunction ToastList() {\n const { toasts } = useToast();\n return toasts.map((toast) => <Toast key={toast.id} toast={toast} />);\n}\n\nexport interface ToasterProps extends ToastPrimitive.Provider.Props {\n /** Corner of the screen the stack grows from. */\n position?: \"bottom-right\" | \"bottom-left\" | \"top-right\" | \"top-left\";\n /** Extra classes on the viewport. */\n className?: string;\n children?: React.ReactNode;\n}\n\nconst positionClasses: Record<NonNullable<ToasterProps[\"position\"]>, string> = {\n \"bottom-right\": \"bottom-4 right-4 flex-col\",\n \"bottom-left\": \"bottom-4 left-4 flex-col\",\n \"top-right\": \"top-4 right-4 flex-col-reverse\",\n \"top-left\": \"top-4 left-4 flex-col-reverse\",\n};\n\n/**\n * Provider + viewport. Wrap the app in it once; `useToast()` works anywhere\n * beneath. Toasts render in a fixed corner as a flat stack (newest last).\n */\nfunction Toaster({ position = \"bottom-right\", className, children, ...props }: ToasterProps) {\n return (\n <ToastPrimitive.Provider {...props}>\n {children}\n <ToastPrimitive.Portal>\n <ToastPrimitive.Viewport\n data-slot=\"toast-viewport\"\n className={cn(\n \"pointer-events-none fixed z-50 flex w-[calc(100vw-2rem)] max-w-sm gap-2 outline-none\",\n positionClasses[position],\n className,\n )}\n >\n <ToastList />\n </ToastPrimitive.Viewport>\n </ToastPrimitive.Portal>\n </ToastPrimitive.Provider>\n );\n}\n\nexport { Toaster, Toast, useToast, toastVariants };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,gBAAgC,oBACpC;CACE;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,SACE;EACF,SACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EAAE,SAAS,UAAU;AACxC,CACF;AAIA,MAAM,WAAoC;CAAC;CAAW;CAAW;CAAW;AAAa;AAEzF,SAAS,UAAU,MAAwC;CACzD,OAAQ,SAA+B,SAAS,QAAQ,EAAE,IAAK,OAAwB;AACzF;;AAGA,MAAM,WAAWA,MAAe;;AAOhC,SAASC,QAAM,EAAE,WAAW,SAAS,OAAO,GAAG,SAAqB;CAClE,OACE,qBAACD,MAAe,MAAhB;EACE,aAAU;EACH;EACP,WAAW,GAAG,cAAc,EAAE,SAAS,WAAW,UAAU,MAAM,IAAI,EAAE,CAAC,GAAG,SAAS;EACrF,GAAI;EAJN,UAAA,CAME,qBAACA,MAAe,SAAhB;GAAwB,aAAU;GAAgB,WAAU;GAA5D,UAAA,CACG,MAAM,QACL,oBAACA,MAAe,OAAhB;IACE,aAAU;IACV,WAAU;GACX,CAAA,IACC,MACH,MAAM,cACL,oBAACA,MAAe,aAAhB;IACE,aAAU;IACV,WAAU;GACX,CAAA,IACC,IACkB;EACxB,CAAA,GAAA,oBAACA,MAAe,OAAhB;GACE,aAAU;GACV,cAAW;GACX,WAAW,GACT,8FACA,oGACA,8GACF;GAEA,UAAA,oBAAC,GAAD,EAAG,WAAU,SAAU,CAAA;EACH,CAAA,CACH;;AAEzB;AAEA,SAAS,YAAY;CACnB,MAAM,EAAE,WAAW,SAAS;CAC5B,OAAO,OAAO,KAAK,UAAU,oBAACC,SAAD,EAA6B,MAAQ,GAAzB,MAAM,EAAmB,CAAC;AACrE;AAUA,MAAM,kBAAyE;CAC7E,gBAAgB;CAChB,eAAe;CACf,aAAa;CACb,YAAY;AACd;;;;;AAMA,SAAS,QAAQ,EAAE,WAAW,gBAAgB,WAAW,UAAU,GAAG,SAAuB;CAC3F,OACE,qBAACD,MAAe,UAAhB;EAAyB,GAAI;EAA7B,UAAA,CACG,UACD,oBAACA,MAAe,QAAhB,EAAA,UACE,oBAACA,MAAe,UAAhB;GACE,aAAU;GACV,WAAW,GACT,wFACA,gBAAgB,WAChB,SACF;GAEA,UAAA,oBAAC,WAAD,CAAY,CAAA;EACW,CAAA,EACJ,CAAA,CACA;;AAE7B"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ //#region src/components/toolbar.d.ts
4
+ export interface ToolbarProps extends React.ComponentProps<"div"> {
5
+ /** Draw a rule under the row, for a toolbar that sits above a table or list. */
6
+ bordered?: boolean;
7
+ }
8
+ /**
9
+ * Toolbar — a single flex row of controls above content. `ToolbarStart` and
10
+ * `ToolbarEnd` group the two ends; `ToolbarSeparator` is a short vertical rule
11
+ * between clusters of controls in the same group.
12
+ */
13
+ declare function Toolbar({ className, bordered, ...props }: ToolbarProps): React.JSX.Element;
14
+ declare function ToolbarStart({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
15
+ declare function ToolbarEnd({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
16
+ declare function ToolbarSeparator({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
17
+ //#endregion
18
+ export { Toolbar, ToolbarEnd, ToolbarSeparator, ToolbarStart };
19
+ //# sourceMappingURL=toolbar.d.ts.map
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ "use client";
3
+ import { cn } from "../lib/cn.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/toolbar.tsx
6
+ /**
7
+ * Toolbar — a single flex row of controls above content. `ToolbarStart` and
8
+ * `ToolbarEnd` group the two ends; `ToolbarSeparator` is a short vertical rule
9
+ * between clusters of controls in the same group.
10
+ */
11
+ function Toolbar({ className, bordered, ...props }) {
12
+ return /* @__PURE__ */ jsx("div", {
13
+ "data-slot": "toolbar",
14
+ role: "toolbar",
15
+ className: cn("flex min-h-10 flex-wrap items-center gap-2 text-[color:var(--ds-foreground)]", bordered && "border-b border-[var(--ds-border-subtle)] pb-3", className),
16
+ ...props
17
+ });
18
+ }
19
+ function ToolbarStart({ className, ...props }) {
20
+ return /* @__PURE__ */ jsx("div", {
21
+ "data-slot": "toolbar-start",
22
+ className: cn("flex min-w-0 flex-1 flex-wrap items-center gap-2", className),
23
+ ...props
24
+ });
25
+ }
26
+ function ToolbarEnd({ className, ...props }) {
27
+ return /* @__PURE__ */ jsx("div", {
28
+ "data-slot": "toolbar-end",
29
+ className: cn("ml-auto flex shrink-0 flex-wrap items-center gap-2", className),
30
+ ...props
31
+ });
32
+ }
33
+ function ToolbarSeparator({ className, ...props }) {
34
+ return /* @__PURE__ */ jsx("div", {
35
+ "data-slot": "toolbar-separator",
36
+ role: "none",
37
+ "aria-hidden": true,
38
+ className: cn("mx-1 h-5 w-px shrink-0 self-center bg-[var(--ds-border)]", className),
39
+ ...props
40
+ });
41
+ }
42
+ //#endregion
43
+ export { Toolbar, ToolbarEnd, ToolbarSeparator, ToolbarStart };
44
+
45
+ //# sourceMappingURL=toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.js","names":[],"sources":["../../src/components/toolbar.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport { cn } from \"@/lib/cn\";\n\nexport interface ToolbarProps extends React.ComponentProps<\"div\"> {\n /** Draw a rule under the row, for a toolbar that sits above a table or list. */\n bordered?: boolean;\n}\n\n/**\n * Toolbar — a single flex row of controls above content. `ToolbarStart` and\n * `ToolbarEnd` group the two ends; `ToolbarSeparator` is a short vertical rule\n * between clusters of controls in the same group.\n */\nfunction Toolbar({ className, bordered, ...props }: ToolbarProps) {\n return (\n <div\n data-slot=\"toolbar\"\n role=\"toolbar\"\n className={cn(\n \"flex min-h-10 flex-wrap items-center gap-2 text-[color:var(--ds-foreground)]\",\n bordered && \"border-b border-[var(--ds-border-subtle)] pb-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ToolbarStart({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"toolbar-start\"\n className={cn(\"flex min-w-0 flex-1 flex-wrap items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction ToolbarEnd({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"toolbar-end\"\n className={cn(\"ml-auto flex shrink-0 flex-wrap items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction ToolbarSeparator({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"toolbar-separator\"\n role=\"none\"\n aria-hidden\n className={cn(\"mx-1 h-5 w-px shrink-0 self-center bg-[var(--ds-border)]\", className)}\n {...props}\n />\n );\n}\n\nexport { Toolbar, ToolbarStart, ToolbarEnd, ToolbarSeparator };\n"],"mappings":";;;;;;;;;;AAeA,SAAS,QAAQ,EAAE,WAAW,UAAU,GAAG,SAAuB;CAChE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,WAAW,GACT,gFACA,YAAY,kDACZ,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,oDAAoD,SAAS;EAC3E,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,sDAAsD,SAAS;EAC7E,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAsC;CAC9E,OACE,oBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,eAAA;EACA,WAAW,GAAG,4DAA4D,SAAS;EACnF,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { Tooltip } from "@base-ui/react/tooltip";
3
+ //#region src/components/tooltip.d.ts
4
+ /**
5
+ * Tooltip.
6
+ *
7
+ * Base UI's Tooltip opens on hover and focus (never on click). Radix users:
8
+ * `asChild` on the trigger becomes `render={<Button />}`, and the delay moves
9
+ * from `delayDuration` on the Provider to `delay` on the Provider or Trigger.
10
+ * `TooltipContent` composes Portal + Positioner + Popup so the consumer still
11
+ * writes one element; `side`, `align` and `sideOffset` are forwarded to the
12
+ * Positioner where Base UI expects them. Base UI sets no ARIA role on the
13
+ * popup; `role="tooltip"` is added here so it reads like the Radix version.
14
+ */
15
+ declare function TooltipProvider(props: Tooltip.Provider.Props): import("react").JSX.Element;
16
+ declare function Tooltip$1(props: Tooltip.Root.Props): import("react").JSX.Element;
17
+ declare function TooltipTrigger(props: Tooltip.Trigger.Props): import("react").JSX.Element;
18
+ type PositionerProps = Pick<Tooltip.Positioner.Props, "side" | "align" | "sideOffset" | "alignOffset" | "anchor" | "collisionBoundary" | "collisionPadding" | "collisionAvoidance" | "sticky" | "positionMethod">;
19
+ export interface TooltipContentProps extends Tooltip.Popup.Props, PositionerProps {
20
+ /** Keep the popup mounted in the DOM while hidden. */
21
+ keepMounted?: boolean;
22
+ /** Where to portal the popup; defaults to `<body>`. */
23
+ container?: Tooltip.Portal.Props["container"];
24
+ }
25
+ declare function TooltipContent({ className, side, align, sideOffset, alignOffset, anchor, collisionBoundary, collisionPadding, collisionAvoidance, sticky, positionMethod, keepMounted, container, ...props }: TooltipContentProps): import("react").JSX.Element;
26
+ //#endregion
27
+ export { Tooltip$1 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
28
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ "use client";
3
+ import { cn } from "../lib/cn.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Tooltip } from "@base-ui/react/tooltip";
6
+ //#region src/components/tooltip.tsx
7
+ /**
8
+ * Tooltip.
9
+ *
10
+ * Base UI's Tooltip opens on hover and focus (never on click). Radix users:
11
+ * `asChild` on the trigger becomes `render={<Button />}`, and the delay moves
12
+ * from `delayDuration` on the Provider to `delay` on the Provider or Trigger.
13
+ * `TooltipContent` composes Portal + Positioner + Popup so the consumer still
14
+ * writes one element; `side`, `align` and `sideOffset` are forwarded to the
15
+ * Positioner where Base UI expects them. Base UI sets no ARIA role on the
16
+ * popup; `role="tooltip"` is added here so it reads like the Radix version.
17
+ */
18
+ function TooltipProvider(props) {
19
+ return /* @__PURE__ */ jsx(Tooltip.Provider, { ...props });
20
+ }
21
+ function Tooltip$1(props) {
22
+ return /* @__PURE__ */ jsx(Tooltip.Root, { ...props });
23
+ }
24
+ function TooltipTrigger(props) {
25
+ return /* @__PURE__ */ jsx(Tooltip.Trigger, {
26
+ "data-slot": "tooltip-trigger",
27
+ ...props
28
+ });
29
+ }
30
+ function TooltipContent({ className, side = "top", align = "center", sideOffset = 4, alignOffset, anchor, collisionBoundary, collisionPadding, collisionAvoidance, sticky, positionMethod, keepMounted, container, ...props }) {
31
+ return /* @__PURE__ */ jsx(Tooltip.Portal, {
32
+ keepMounted,
33
+ container,
34
+ children: /* @__PURE__ */ jsx(Tooltip.Positioner, {
35
+ "data-slot": "tooltip-positioner",
36
+ side,
37
+ align,
38
+ sideOffset,
39
+ alignOffset,
40
+ anchor,
41
+ collisionBoundary,
42
+ collisionPadding,
43
+ collisionAvoidance,
44
+ sticky,
45
+ positionMethod,
46
+ className: "isolate z-50",
47
+ children: /* @__PURE__ */ jsx(Tooltip.Popup, {
48
+ "data-slot": "tooltip-content",
49
+ role: "tooltip",
50
+ className: cn("overflow-hidden px-3 py-1.5", "rounded-[var(--ds-radius-sm)] border border-[var(--ds-border)]", "bg-[var(--ds-popover)] text-[color:var(--ds-popover-foreground)] shadow-[var(--ds-shadow-md)]", "text-[length:var(--ds-text-caption-lg)]", "open:animate-in open:fade-in-0 open:zoom-in-95", "closed:animate-out closed:fade-out-0 closed:zoom-out-95", "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", "duration-[var(--ds-duration-fast)] ease-[var(--ds-ease-out)]", className),
51
+ ...props
52
+ })
53
+ })
54
+ });
55
+ }
56
+ //#endregion
57
+ export { Tooltip$1 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
58
+
59
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","names":["TooltipPrimitive","Tooltip"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\";\nimport { cn } from \"@/lib/cn\";\n\n/**\n * Tooltip.\n *\n * Base UI's Tooltip opens on hover and focus (never on click). Radix users:\n * `asChild` on the trigger becomes `render={<Button />}`, and the delay moves\n * from `delayDuration` on the Provider to `delay` on the Provider or Trigger.\n * `TooltipContent` composes Portal + Positioner + Popup so the consumer still\n * writes one element; `side`, `align` and `sideOffset` are forwarded to the\n * Positioner where Base UI expects them. Base UI sets no ARIA role on the\n * popup; `role=\"tooltip\"` is added here so it reads like the Radix version.\n */\nfunction TooltipProvider(props: TooltipPrimitive.Provider.Props) {\n return <TooltipPrimitive.Provider {...props} />;\n}\n\nfunction Tooltip(props: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root {...props} />;\n}\n\nfunction TooltipTrigger(props: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\ntype PositionerProps = Pick<\n TooltipPrimitive.Positioner.Props,\n | \"side\"\n | \"align\"\n | \"sideOffset\"\n | \"alignOffset\"\n | \"anchor\"\n | \"collisionBoundary\"\n | \"collisionPadding\"\n | \"collisionAvoidance\"\n | \"sticky\"\n | \"positionMethod\"\n>;\n\nexport interface TooltipContentProps extends TooltipPrimitive.Popup.Props, PositionerProps {\n /** Keep the popup mounted in the DOM while hidden. */\n keepMounted?: boolean;\n /** Where to portal the popup; defaults to `<body>`. */\n container?: TooltipPrimitive.Portal.Props[\"container\"];\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n align = \"center\",\n sideOffset = 4,\n alignOffset,\n anchor,\n collisionBoundary,\n collisionPadding,\n collisionAvoidance,\n sticky,\n positionMethod,\n keepMounted,\n container,\n ...props\n}: TooltipContentProps) {\n return (\n <TooltipPrimitive.Portal keepMounted={keepMounted} container={container}>\n <TooltipPrimitive.Positioner\n data-slot=\"tooltip-positioner\"\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n anchor={anchor}\n collisionBoundary={collisionBoundary}\n collisionPadding={collisionPadding}\n collisionAvoidance={collisionAvoidance}\n sticky={sticky}\n positionMethod={positionMethod}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n role=\"tooltip\"\n className={cn(\n \"overflow-hidden px-3 py-1.5\",\n \"rounded-[var(--ds-radius-sm)] border border-[var(--ds-border)]\",\n \"bg-[var(--ds-popover)] text-[color:var(--ds-popover-foreground)] shadow-[var(--ds-shadow-md)]\",\n \"text-[length:var(--ds-text-caption-lg)]\",\n \"open:animate-in open:fade-in-0 open:zoom-in-95\",\n \"closed:animate-out closed:fade-out-0 closed:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n \"duration-[var(--ds-duration-fast)] ease-[var(--ds-ease-out)]\",\n className,\n )}\n {...props}\n />\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,SAAS,gBAAgB,OAAwC;CAC/D,OAAO,oBAACA,QAAiB,UAAlB,EAA2B,GAAI,MAAQ,CAAA;AAChD;AAEA,SAASC,UAAQ,OAAoC;CACnD,OAAO,oBAACD,QAAiB,MAAlB,EAAuB,GAAI,MAAQ,CAAA;AAC5C;AAEA,SAAS,eAAe,OAAuC;CAC7D,OAAO,oBAACA,QAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAuBA,SAAS,eAAe,EACtB,WACA,OAAO,OACP,QAAQ,UACR,aAAa,GACb,aACA,QACA,mBACA,kBACA,oBACA,QACA,gBACA,aACA,WACA,GAAG,SACmB;CACtB,OACE,oBAACA,QAAiB,QAAlB;EAAsC;EAAwB;EAC5D,UAAA,oBAACA,QAAiB,YAAlB;GACE,aAAU;GACJ;GACC;GACK;GACC;GACL;GACW;GACD;GACE;GACZ;GACQ;GAChB,WAAU;GAEV,UAAA,oBAACA,QAAiB,OAAlB;IACE,aAAU;IACV,MAAK;IACL,WAAW,GACT,+BACA,kEACA,iGACA,2CACA,kDACA,2DACA,+JACA,gEACA,SACF;IACA,GAAI;GACL,CAAA;EAC0B,CAAA;CACN,CAAA;AAE7B"}
package/dist/core.d.ts ADDED
@@ -0,0 +1,44 @@
1
+ "use client";
2
+ import { Alert, AlertDescription, AlertIcon, AlertProps, AlertTitle, alertVariants } from "./components/alert.js";
3
+ import { Badge, BadgeProps, badgeVariants } from "./components/badge.js";
4
+ import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbLinkProps, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/breadcrumb.js";
5
+ import { Button, ButtonProps, buttonVariants } from "./components/button.js";
6
+ import { ButtonLink, ButtonLinkProps } from "./components/button-link.js";
7
+ import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardProps, CardTitle } from "./components/card.js";
8
+ import { Checkbox, CheckboxProps } from "./components/checkbox.js";
9
+ import { Chip, ChipProps, chipVariants } from "./components/chip.js";
10
+ import { Combobox, ComboboxChip, ComboboxChipProps, ComboboxChips, ComboboxChipsProps, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxFilter } from "./components/combobox.js";
11
+ import { Dialog, DialogBody, DialogClose, DialogContent, DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./components/dialog.js";
12
+ import { Command, CommandDialog, CommandDialogProps, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandItemProps, CommandList, CommandLoading, CommandSeparator, CommandShortcut } from "./components/command.js";
13
+ import { CortenaTheme, CortenaThemeMessage, DEFAULT_THEME_STORAGE_KEY, ResolvedCortenaTheme, THEME_MESSAGE_TYPE, UseCortenaThemeOptions, UseCortenaThemeResult, applyStoredTheme, applyTheme, getThemeInitScript, readStoredTheme, themeFromBackground, themeFromMessage, themeInitScript, useCortenaTheme } from "./hooks/use-cortena-theme.js";
14
+ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuSubTriggerProps, DropdownMenuTrigger } from "./components/dropdown-menu.js";
15
+ import { EmptyState, EmptyStateProps } from "./components/empty-state.js";
16
+ import { ErrorBanner, ErrorBannerProps } from "./components/error-banner.js";
17
+ import { Field, FieldContent, FieldControl, FieldControlProps, FieldDescription, FieldDescriptionProps, FieldError, FieldErrorItem, FieldErrorProps, FieldGroup, FieldLabel, FieldLabelProps, FieldProps, Fieldset, FieldsetLegend, FieldsetLegendProps, FieldsetProps, fieldVariants } from "./components/field.js";
18
+ import { Input, InputProps, inputClassName } from "./components/input.js";
19
+ import { Label, LabelProps, labelVariants } from "./components/label.js";
20
+ import { LoadingSkeleton, LoadingSkeletonPreset, LoadingSkeletonProps } from "./components/loading-skeleton.js";
21
+ import { PageHeader, PageHeaderProps } from "./components/page-header.js";
22
+ import { Popover, PopoverClose, PopoverContent, PopoverContentProps, PopoverDescription, PopoverTitle, PopoverTrigger } from "./components/popover.js";
23
+ import { Progress, ProgressIndicator, ProgressLabel, ProgressProps, ProgressTrack, ProgressValue } from "./components/progress.js";
24
+ import { RadioGroup, RadioGroupItem, RadioGroupItemProps, RadioGroupProps } from "./components/radio-group.js";
25
+ import { ScrollArea, ScrollAreaProps, ScrollBar } from "./components/scroll-area.js";
26
+ import { SectionCard, SectionCardProps } from "./components/section-card.js";
27
+ import { Segmented, SegmentedOption, SegmentedProps } from "./components/segmented.js";
28
+ import { Select, SelectContent, SelectContentProps, SelectGroup, SelectItem, SelectLabel, SelectProps, SelectSeparator, SelectTrigger, SelectTriggerProps, SelectValue } from "./components/select.js";
29
+ import { Separator, SeparatorProps } from "./components/separator.js";
30
+ import { Sheet, SheetClose, SheetContent, SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetProps, SheetTitle, SheetTrigger, sheetVariants } from "./components/sheet.js";
31
+ import { Spinner, SpinnerProps } from "./components/spinner.js";
32
+ import { StatusDot, StatusDotProps, StatusDotTone } from "./components/status-dot.js";
33
+ import { Switch, SwitchProps } from "./components/switch.js";
34
+ import { Textarea, TextareaProps, textareaClassName } from "./components/textarea.js";
35
+ import { Toast, ToastProps, Toaster, ToasterProps, toastVariants, useToast } from "./components/toast.js";
36
+ import { Toolbar, ToolbarEnd, ToolbarProps, ToolbarSeparator, ToolbarStart } from "./components/toolbar.js";
37
+ import { Tooltip, TooltipContent, TooltipContentProps, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
38
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./components/accordion.js";
39
+ import { Avatar, AvatarFallback, AvatarImage } from "./components/avatar.js";
40
+ import { Kbd } from "./components/kbd.js";
41
+ import { Skeleton } from "./components/skeleton.js";
42
+ import { Tabs, TabsContent, TabsIndicator, TabsList, TabsTrigger } from "./components/tabs.js";
43
+ import { cn } from "./lib/cn.js";
44
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertIcon, type AlertProps, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, Chip, type ChipProps, Combobox, ComboboxChip, type ComboboxChipProps, ComboboxChips, type ComboboxChipsProps, ComboboxClear, ComboboxCollection, ComboboxContent, type ComboboxContentProps, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, type ComboboxInputProps, ComboboxItem, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, CommandInput, CommandItem, type CommandItemProps, CommandList, CommandLoading, CommandSeparator, CommandShortcut, type CortenaTheme, type CortenaThemeMessage, DEFAULT_THEME_STORAGE_KEY, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, type DropdownMenuSubTriggerProps, DropdownMenuTrigger, EmptyState, type EmptyStateProps, ErrorBanner, type ErrorBannerProps, Field, FieldContent, FieldControl, type FieldControlProps, FieldDescription, type FieldDescriptionProps, FieldError, type FieldErrorItem, type FieldErrorProps, FieldGroup, FieldLabel, type FieldLabelProps, type FieldProps, Fieldset, FieldsetLegend, type FieldsetLegendProps, type FieldsetProps, Input, type InputProps, Kbd, Label, type LabelProps, LoadingSkeleton, type LoadingSkeletonPreset, type LoadingSkeletonProps, PageHeader, type PageHeaderProps, Popover, PopoverClose, PopoverContent, type PopoverContentProps, PopoverDescription, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type ResolvedCortenaTheme, ScrollArea, type ScrollAreaProps, ScrollBar, SectionCard, type SectionCardProps, Segmented, type SegmentedOption, type SegmentedProps, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, SelectLabel, type SelectProps, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, type SeparatorProps, Sheet, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, type SheetProps, SheetTitle, SheetTrigger, Skeleton, Spinner, type SpinnerProps, StatusDot, type StatusDotProps, type StatusDotTone, Switch, type SwitchProps, THEME_MESSAGE_TYPE, Tabs, TabsContent, TabsIndicator, TabsList, TabsTrigger, Textarea, type TextareaProps, Toast, type ToastProps, Toaster, type ToasterProps, Toolbar, ToolbarEnd, type ToolbarProps, ToolbarSeparator, ToolbarStart, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type UseCortenaThemeOptions, type UseCortenaThemeResult, alertVariants, applyStoredTheme, applyTheme, badgeVariants, buttonVariants, chipVariants, cn, fieldVariants, getThemeInitScript, inputClassName, labelVariants, readStoredTheme, sheetVariants, textareaClassName, themeFromBackground, themeFromMessage, themeInitScript, toastVariants, useComboboxFilter, useCortenaTheme, useToast };
package/dist/core.js ADDED
@@ -0,0 +1,44 @@
1
+ "use client";
2
+ import { cn } from "./lib/cn.js";
3
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./components/accordion.js";
4
+ import { Alert, AlertDescription, AlertIcon, AlertTitle, alertVariants } from "./components/alert.js";
5
+ import { Avatar, AvatarFallback, AvatarImage } from "./components/avatar.js";
6
+ import { Badge, badgeVariants } from "./components/badge.js";
7
+ import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/breadcrumb.js";
8
+ import { Button, buttonVariants } from "./components/button.js";
9
+ import { ButtonLink } from "./components/button-link.js";
10
+ import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./components/card.js";
11
+ import { Checkbox } from "./components/checkbox.js";
12
+ import { Chip, chipVariants } from "./components/chip.js";
13
+ import { Input, inputClassName } from "./components/input.js";
14
+ import { Combobox, ComboboxChip, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxFilter } from "./components/combobox.js";
15
+ import { Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./components/dialog.js";
16
+ import { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut } from "./components/command.js";
17
+ import { DEFAULT_THEME_STORAGE_KEY, THEME_MESSAGE_TYPE, applyStoredTheme, applyTheme, getThemeInitScript, readStoredTheme, themeFromBackground, themeFromMessage, themeInitScript, useCortenaTheme } from "./hooks/use-cortena-theme.js";
18
+ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./components/dropdown-menu.js";
19
+ import { EmptyState } from "./components/empty-state.js";
20
+ import { ErrorBanner } from "./components/error-banner.js";
21
+ import { Label, labelVariants } from "./components/label.js";
22
+ import { Field, FieldContent, FieldControl, FieldDescription, FieldError, FieldGroup, FieldLabel, Fieldset, FieldsetLegend, fieldVariants } from "./components/field.js";
23
+ import { Kbd } from "./components/kbd.js";
24
+ import { Skeleton } from "./components/skeleton.js";
25
+ import { LoadingSkeleton } from "./components/loading-skeleton.js";
26
+ import { PageHeader } from "./components/page-header.js";
27
+ import { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger } from "./components/popover.js";
28
+ import { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue } from "./components/progress.js";
29
+ import { RadioGroup, RadioGroupItem } from "./components/radio-group.js";
30
+ import { ScrollArea, ScrollBar } from "./components/scroll-area.js";
31
+ import { SectionCard } from "./components/section-card.js";
32
+ import { Segmented } from "./components/segmented.js";
33
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue } from "./components/select.js";
34
+ import { Separator } from "./components/separator.js";
35
+ import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, sheetVariants } from "./components/sheet.js";
36
+ import { Spinner } from "./components/spinner.js";
37
+ import { StatusDot } from "./components/status-dot.js";
38
+ import { Switch } from "./components/switch.js";
39
+ import { Tabs, TabsContent, TabsIndicator, TabsList, TabsTrigger } from "./components/tabs.js";
40
+ import { Textarea, textareaClassName } from "./components/textarea.js";
41
+ import { Toast, Toaster, toastVariants, useToast } from "./components/toast.js";
42
+ import { Toolbar, ToolbarEnd, ToolbarSeparator, ToolbarStart } from "./components/toolbar.js";
43
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
44
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertIcon, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonLink, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Chip, Combobox, ComboboxChip, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut, DEFAULT_THEME_STORAGE_KEY, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, ErrorBanner, Field, FieldContent, FieldControl, FieldDescription, FieldError, FieldGroup, FieldLabel, Fieldset, FieldsetLegend, Input, Kbd, Label, LoadingSkeleton, PageHeader, Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, SectionCard, Segmented, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Spinner, StatusDot, Switch, THEME_MESSAGE_TYPE, Tabs, TabsContent, TabsIndicator, TabsList, TabsTrigger, Textarea, Toast, Toaster, Toolbar, ToolbarEnd, ToolbarSeparator, ToolbarStart, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants, applyStoredTheme, applyTheme, badgeVariants, buttonVariants, chipVariants, cn, fieldVariants, getThemeInitScript, inputClassName, labelVariants, readStoredTheme, sheetVariants, textareaClassName, themeFromBackground, themeFromMessage, themeInitScript, toastVariants, useComboboxFilter, useCortenaTheme, useToast };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { DataTableFeatures, createColumnHelper, dataTableFeatures } from "./components/data-table/features.js";
3
+ import { ClientSource, DataSource, DataTableCell, DataTableColumn, DataTableColumnDef, DataTableColumnMeta, DataTableEditable, DataTableEditingCell, DataTableInstance, DataTablePaginationMode, DataTableRow, DataTableState, DataTableTable, ServerSource, TableQuery, TableResult, UseDataTableOptions } from "./components/data-table/types.js";
4
+ import { DataTable, DataTableProps, DataTableView, DataTableViewProps } from "./components/data-table/data-table.js";
5
+ import { DataTableColumnHeader, DataTableColumnHeaderProps, DataTableExportMenu, DataTableExportMenuProps, DataTableFacetedFilter, DataTableFacetedFilterOption, DataTableFacetedFilterProps, DataTablePagination, DataTablePaginationProps, DataTableToolbar, DataTableToolbarProps, DataTableViewOptions, DataTableViewOptionsProps } from "./components/data-table/parts.js";
6
+ import { useDataTable } from "./components/data-table/use-data-table.js";
7
+ import { ExportCell, ExportSheet, downloadCsv, downloadExcel, toCsv, toSheet } from "./components/data-table/export.js";
8
+ import "./components/data-table/index.js";
9
+ export { type ClientSource, type DataSource, DataTable, type DataTableCell, type DataTableColumn, type DataTableColumnDef, DataTableColumnHeader, type DataTableColumnHeaderProps, type DataTableColumnMeta, type DataTableEditable, type DataTableEditingCell, DataTableExportMenu, type DataTableExportMenuProps, DataTableFacetedFilter, type DataTableFacetedFilterOption, type DataTableFacetedFilterProps, type DataTableFeatures, type DataTableInstance, DataTablePagination, type DataTablePaginationMode, type DataTablePaginationProps, type DataTableProps, type DataTableRow, type DataTableState, type DataTableTable, DataTableToolbar, type DataTableToolbarProps, DataTableView, DataTableViewOptions, type DataTableViewOptionsProps, type DataTableViewProps, type ExportCell, type ExportSheet, type ServerSource, type TableQuery, type TableResult, type UseDataTableOptions, createColumnHelper, dataTableFeatures, downloadCsv, downloadExcel, toCsv, toSheet, useDataTable };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { downloadCsv, downloadExcel, toCsv, toSheet } from "./components/data-table/export.js";
3
+ import { DataTableColumnHeader, DataTableExportMenu, DataTableFacetedFilter, DataTablePagination, DataTableToolbar, DataTableViewOptions } from "./components/data-table/parts.js";
4
+ import { createColumnHelper, dataTableFeatures } from "./components/data-table/features.js";
5
+ import { useDataTable } from "./components/data-table/use-data-table.js";
6
+ import { DataTable, DataTableView } from "./components/data-table/data-table.js";
7
+ export { DataTable, DataTableColumnHeader, DataTableExportMenu, DataTableFacetedFilter, DataTablePagination, DataTableToolbar, DataTableView, DataTableViewOptions, createColumnHelper, dataTableFeatures, downloadCsv, downloadExcel, toCsv, toSheet, useDataTable };
package/dist/form.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { Accept, Dropzone, DropzoneProps, DropzoneState, FileList, FileListProps, FileRejection, formatFileSize } from "./components/dropzone.js";
3
+ import { Calendar, CalendarDayButton, CalendarProps } from "./components/calendar.js";
4
+ import { DateField, DateFieldProps, formatDateISO, formatDateLong, formatDateShort, formatRelative, parseDateDefault, parseDateISO } from "./components/date-field.js";
5
+ import { DatePicker, DatePickerProps, DateRangePicker, DateRangePickerProps, formatDateDefault } from "./components/date-picker.js";
6
+ import { Form, FormControl, FormControlProps, FormDescription, FormDescriptionProps, FormField, FormItem, FormItemProps, FormLabel, FormLabelProps, FormMessage, FormMessageProps, SubmitHandler, UseFormFieldReturn, UseFormReturn, useForm, useFormField, zodResolver } from "./components/form.js";
7
+ export { type Accept, Calendar, CalendarDayButton, type CalendarProps, DateField, type DateFieldProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dropzone, type DropzoneProps, type DropzoneState, FileList, type FileListProps, type FileRejection, Form, FormControl, type FormControlProps, FormDescription, type FormDescriptionProps, FormField, FormItem, type FormItemProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, type SubmitHandler, type UseFormFieldReturn, type UseFormReturn, formatDateDefault, formatDateISO, formatDateLong, formatDateShort, formatFileSize, formatRelative, parseDateDefault, parseDateISO, useForm, useFormField, zodResolver };
package/dist/form.js ADDED
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { Calendar, CalendarDayButton } from "./components/calendar.js";
3
+ import { DateField, formatDateISO, formatDateLong, formatDateShort, formatRelative, parseDateDefault, parseDateISO } from "./components/date-field.js";
4
+ import { DatePicker, DateRangePicker, formatDateDefault } from "./components/date-picker.js";
5
+ import { Dropzone, FileList, formatFileSize } from "./components/dropzone.js";
6
+ import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useForm, useFormField, zodResolver } from "./components/form.js";
7
+ export { Calendar, CalendarDayButton, DateField, DatePicker, DateRangePicker, Dropzone, FileList, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, formatDateDefault, formatDateISO, formatDateLong, formatDateShort, formatFileSize, formatRelative, parseDateDefault, parseDateISO, useForm, useFormField, zodResolver };
@@ -0,0 +1,98 @@
1
+ "use client";
2
+ //#region src/hooks/use-cortena-theme.d.ts
3
+ /**
4
+ * useCortenaTheme — the one theme bridge for every Cortena surface.
5
+ *
6
+ * cortena-design drives dark mode off `data-theme="light" | "dark"` on <html>
7
+ * and falls back to `prefers-color-scheme` when the attribute is absent. So the
8
+ * hook has exactly three jobs, consolidated from the flux and engram copies:
9
+ *
10
+ * 1. Remember the last choice in localStorage and put it back before the
11
+ * first paint (`applyStoredTheme`, or `themeInitScript` as a blocking
12
+ * <script> for apps that cannot run a module that early).
13
+ * 2. Listen for the message cortenaweb posts into an extension iframe on load
14
+ * and on every theme change:
15
+ *
16
+ * iframe.contentWindow.postMessage({ type: "cortena-theme", colors }, "*")
17
+ *
18
+ * and apply the *mode* it implies. The host may say `mode` or `theme`
19
+ * explicitly; otherwise the background colour's luminance decides.
20
+ * 3. Expose `{ theme, resolvedTheme, setTheme }` so a settings toggle can
21
+ * drive the same state.
22
+ *
23
+ * What it deliberately does NOT do is apply the individual colours in the
24
+ * host's message. The palette comes from cortena-design tokens, the single
25
+ * source of truth; writing the host's raw values onto `--ds-*` or `--color-*`
26
+ * would silently override every token the design system publishes. The
27
+ * `colors` object is read for its luminance only, never written to the DOM.
28
+ */
29
+ export type CortenaTheme = "light" | "dark" | "system";
30
+ export type ResolvedCortenaTheme = "light" | "dark";
31
+ /** The message cortenaweb posts into an embedded iframe. */
32
+ export interface CortenaThemeMessage {
33
+ type: "cortena-theme";
34
+ /** Explicit mode. Preferred when present. */
35
+ theme?: CortenaTheme;
36
+ /** Older name for `theme`, sent by some hosts. */
37
+ mode?: CortenaTheme;
38
+ /** Raw palette. Only `background` is read, and only to infer the mode. */
39
+ colors?: Record<string, unknown>;
40
+ }
41
+ export interface UseCortenaThemeOptions {
42
+ /** localStorage key the choice persists under. Defaults to `"cortena.theme"`. */
43
+ storageKey?: string;
44
+ /**
45
+ * Origins allowed to push a theme via postMessage. When omitted or empty,
46
+ * every origin is accepted — matching cortenaweb, which posts with `"*"`
47
+ * to cross-origin extensions. A same-origin embed should pass
48
+ * `[window.location.origin]`.
49
+ */
50
+ allowedOrigins?: readonly string[];
51
+ /** Set false to keep the state and DOM sync but ignore host messages. */
52
+ listen?: boolean;
53
+ }
54
+ export interface UseCortenaThemeResult {
55
+ /** The stored choice; `"system"` when nothing has been chosen. */
56
+ theme: CortenaTheme;
57
+ /** What is actually painted: `theme`, or the OS scheme when `theme` is `"system"`. */
58
+ resolvedTheme: ResolvedCortenaTheme;
59
+ setTheme: (theme: CortenaTheme) => void;
60
+ }
61
+ export declare const DEFAULT_THEME_STORAGE_KEY = "cortena.theme";
62
+ export declare const THEME_MESSAGE_TYPE = "cortena-theme";
63
+ /**
64
+ * Write the mode onto <html>. `"system"` removes the attribute so
65
+ * cortena-design's `:root:not([data-theme])` fallback follows the OS.
66
+ */
67
+ export declare function applyTheme(theme: CortenaTheme, root?: HTMLElement): void;
68
+ export declare function readStoredTheme(storageKey?: string): CortenaTheme;
69
+ /**
70
+ * Put the remembered mode back on <html>. Tiny and synchronous on purpose:
71
+ * call it at the top of the app entry, before `createRoot`, so a reload does
72
+ * not flash the light palette at somebody reading in the dark. Returns what
73
+ * it applied.
74
+ */
75
+ export declare function applyStoredTheme(storageKey?: string): CortenaTheme;
76
+ /**
77
+ * The same logic as `applyStoredTheme` as a self-contained IIFE string, for
78
+ * consumers that inject a blocking `<script>` into <head> (Next.js
79
+ * `dangerouslySetInnerHTML`, or a Vite index.html). It cannot import anything,
80
+ * which is why it is duplicated rather than derived.
81
+ */
82
+ export declare function getThemeInitScript(storageKey?: string): string;
83
+ /** `getThemeInitScript()` for the default storage key. */
84
+ export declare const themeInitScript: string;
85
+ /**
86
+ * Infer the mode from a hex background colour by relative luminance. Any
87
+ * other colour syntax is ignored, since the host only ever sends hex and a
88
+ * wrong guess is worse than no change.
89
+ */
90
+ export declare function themeFromBackground(background: unknown): ResolvedCortenaTheme | null;
91
+ /**
92
+ * The mode a host message asks for, or null when it does not carry one.
93
+ * Explicit `theme` / `mode` win; otherwise the background luminance decides.
94
+ */
95
+ export declare function themeFromMessage(data: unknown): CortenaTheme | null;
96
+ export declare function useCortenaTheme(options?: UseCortenaThemeOptions): UseCortenaThemeResult;
97
+ //#endregion
98
+ //# sourceMappingURL=use-cortena-theme.d.ts.map