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,24 @@
1
+ /**
2
+ * `cortena-ui/form` — the form area: the pieces that pull a form dependency.
3
+ *
4
+ * `Form` and `useForm` bring react-hook-form, `zodResolver` brings zod and
5
+ * `@hookform/resolvers`, the date components bring react-day-picker and
6
+ * `Dropzone` brings react-dropzone.
7
+ *
8
+ * The light controls a form is built from — `Field`, `Input`, `Select`,
9
+ * `Checkbox`, `RadioGroup`, `Switch`, `Textarea`, `Combobox`, `Label` — have no
10
+ * heavy dependency and therefore live in `cortena-ui/core`. Each component has
11
+ * exactly one home so the root barrel can re-export every entry without an
12
+ * ambiguous name.
13
+ */
14
+
15
+ export type { Accept, DropzoneProps, DropzoneState, FileListProps, FileRejection } from "@/components/dropzone";
16
+ export type { CalendarProps } from "@/components/calendar";
17
+ export type { DateFieldProps } from "@/components/date-field";
18
+ export type { DatePickerProps, DateRangePickerProps } from "@/components/date-picker";
19
+ export type { FormControlProps, FormDescriptionProps, FormItemProps, FormLabelProps, FormMessageProps, SubmitHandler, UseFormFieldReturn, UseFormReturn } from "@/components/form";
20
+ export { Calendar, CalendarDayButton } from "@/components/calendar";
21
+ export { DateField, formatDateISO, formatDateLong, formatDateShort, formatRelative, parseDateDefault, parseDateISO } from "@/components/date-field";
22
+ export { DatePicker, DateRangePicker, formatDateDefault } from "@/components/date-picker";
23
+ export { Dropzone, FileList, formatFileSize } from "@/components/dropzone";
24
+ export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useForm, useFormField, zodResolver } from "@/components/form";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `cortena-ui/markdown` — the Markdown renderer.
3
+ *
4
+ * Brings react-markdown, remark-gfm and rehype-sanitize, which together are
5
+ * larger than the rest of the package's primitives put together.
6
+ */
7
+
8
+ export type { CodeRendererProps, MarkdownComponents, MarkdownProps } from "@/components/markdown";
9
+ export { Markdown, markdownSanitizeSchema } from "@/components/markdown";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `cortena-ui/sortable-list` — the reorderable list.
3
+ *
4
+ * Its own entry for a specific reason: `@dnd-kit/core` and `@dnd-kit/sortable`
5
+ * declare no `"sideEffects"` in their package.json, so a bundler must assume
6
+ * importing them does something observable and keeps them even when nothing
7
+ * from them is used. Every other dependency here declares itself side-effect
8
+ * free and shakes out of the root barrel on its own; dnd-kit cannot, so it is
9
+ * quarantined behind an import you have to ask for.
10
+ */
11
+
12
+ export type { SortableHandleProps, SortableListProps, SortableRenderState, SortableReorderDetails } from "@/components/sortable-list";
13
+ export { SortableHandle, SortableList, arrayMove } from "@/components/sortable-list";
package/src/index.ts CHANGED
@@ -1,98 +1,32 @@
1
- // cortena-ui public surface. One export line per component file; every
2
- // component is styled from cortena-design tokens and built on Base UI.
3
- export { cn } from "@/lib/cn";
4
- // The A2UI catalogue and renderer: the vocabulary agents draw with (05-agent-ui.md).
5
- export * from "@/a2ui";
6
- export * from "@/components/chart";
7
- export * from "@/components/data-table";
8
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/accordion";
9
- export { Alert, AlertDescription, AlertIcon, AlertTitle, alertVariants } from "@/components/alert";
10
- export type { AlertProps } from "@/components/alert";
11
- export { Avatar, AvatarFallback, AvatarImage } from "@/components/avatar";
12
- export { Badge, badgeVariants } from "@/components/badge";
13
- export type { BadgeProps } from "@/components/badge";
14
- export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "@/components/breadcrumb";
15
- export type { BreadcrumbLinkProps } from "@/components/breadcrumb";
16
- export { ButtonLink } from "@/components/button-link";
17
- export type { ButtonLinkProps } from "@/components/button-link";
18
- export { Button, buttonVariants } from "@/components/button";
19
- export type { ButtonProps } from "@/components/button";
20
- export { Calendar, CalendarDayButton } from "@/components/calendar";
21
- export type { CalendarProps } from "@/components/calendar";
22
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/card";
23
- export type { CardProps } from "@/components/card";
24
- export { Checkbox } from "@/components/checkbox";
25
- export type { CheckboxProps } from "@/components/checkbox";
26
- export { Chip, chipVariants } from "@/components/chip";
27
- export type { ChipProps } from "@/components/chip";
28
- export { Combobox, ComboboxChip, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxFilter } from "@/components/combobox";
29
- export type { ComboboxChipProps, ComboboxChipsProps, ComboboxContentProps, ComboboxInputProps } from "@/components/combobox";
30
- export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut } from "@/components/command";
31
- export type { CommandDialogProps, CommandItemProps } from "@/components/command";
32
- export { DateField, formatDateISO, formatDateLong, formatDateShort, formatRelative, parseDateDefault, parseDateISO } from "@/components/date-field";
33
- export type { DateFieldProps } from "@/components/date-field";
34
- export { DatePicker, DateRangePicker, formatDateDefault } from "@/components/date-picker";
35
- export type { DatePickerProps, DateRangePickerProps } from "@/components/date-picker";
36
- export { Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "@/components/dialog";
37
- export type { DialogContentProps } from "@/components/dialog";
38
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "@/components/dropdown-menu";
39
- export type { DropdownMenuContentProps, DropdownMenuItemProps, DropdownMenuLabelProps, DropdownMenuSubTriggerProps } from "@/components/dropdown-menu";
40
- export { Dropzone, FileList, formatFileSize } from "@/components/dropzone";
41
- export type { Accept, DropzoneProps, DropzoneState, FileListProps, FileRejection } from "@/components/dropzone";
42
- export { EmptyState } from "@/components/empty-state";
43
- export type { EmptyStateProps } from "@/components/empty-state";
44
- export { ErrorBanner } from "@/components/error-banner";
45
- export type { ErrorBannerProps } from "@/components/error-banner";
46
- export { Field, FieldContent, FieldControl, FieldDescription, FieldError, FieldGroup, FieldLabel, Fieldset, FieldsetLegend, fieldVariants } from "@/components/field";
47
- export type { FieldControlProps, FieldDescriptionProps, FieldErrorItem, FieldErrorProps, FieldLabelProps, FieldProps, FieldsetLegendProps, FieldsetProps } from "@/components/field";
48
- export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useForm, useFormField, zodResolver } from "@/components/form";
49
- export type { FormControlProps, FormDescriptionProps, FormItemProps, FormLabelProps, FormMessageProps, SubmitHandler, UseFormFieldReturn, UseFormReturn } from "@/components/form";
50
- export { Input, inputClassName } from "@/components/input";
51
- export type { InputProps } from "@/components/input";
52
- export { Kbd } from "@/components/kbd";
53
- export { Label, labelVariants } from "@/components/label";
54
- export type { LabelProps } from "@/components/label";
55
- export { LoadingSkeleton } from "@/components/loading-skeleton";
56
- export type { LoadingSkeletonPreset, LoadingSkeletonProps } from "@/components/loading-skeleton";
57
- export { Markdown, markdownSanitizeSchema } from "@/components/markdown";
58
- export type { CodeRendererProps, MarkdownComponents, MarkdownProps } from "@/components/markdown";
59
- export { PageHeader } from "@/components/page-header";
60
- export type { PageHeaderProps } from "@/components/page-header";
61
- export { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger } from "@/components/popover";
62
- export type { PopoverContentProps } from "@/components/popover";
63
- export { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue } from "@/components/progress";
64
- export type { ProgressProps } from "@/components/progress";
65
- export { RadioGroup, RadioGroupItem } from "@/components/radio-group";
66
- export type { RadioGroupItemProps, RadioGroupProps } from "@/components/radio-group";
67
- export { ScrollArea, ScrollBar } from "@/components/scroll-area";
68
- export type { ScrollAreaProps } from "@/components/scroll-area";
69
- export { SectionCard } from "@/components/section-card";
70
- export type { SectionCardProps } from "@/components/section-card";
71
- export { Segmented } from "@/components/segmented";
72
- export type { SegmentedOption, SegmentedProps } from "@/components/segmented";
73
- export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue } from "@/components/select";
74
- export type { SelectContentProps, SelectProps, SelectTriggerProps } from "@/components/select";
75
- export { Separator } from "@/components/separator";
76
- export type { SeparatorProps } from "@/components/separator";
77
- export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, sheetVariants } from "@/components/sheet";
78
- export type { SheetContentProps, SheetProps } from "@/components/sheet";
79
- export { Skeleton } from "@/components/skeleton";
80
- export { SortableHandle, SortableList, arrayMove } from "@/components/sortable-list";
81
- export type { SortableHandleProps, SortableListProps, SortableRenderState, SortableReorderDetails } from "@/components/sortable-list";
82
- export { Spinner } from "@/components/spinner";
83
- export type { SpinnerProps } from "@/components/spinner";
84
- export { StatusDot } from "@/components/status-dot";
85
- export type { StatusDotProps, StatusDotTone } from "@/components/status-dot";
86
- export { Switch } from "@/components/switch";
87
- export type { SwitchProps } from "@/components/switch";
88
- export { Tabs, TabsContent, TabsIndicator, TabsList, TabsTrigger } from "@/components/tabs";
89
- export { Textarea, textareaClassName } from "@/components/textarea";
90
- export type { TextareaProps } from "@/components/textarea";
91
- export { Toast, Toaster, toastVariants, useToast } from "@/components/toast";
92
- export type { ToastProps, ToasterProps } from "@/components/toast";
93
- export { Toolbar, ToolbarEnd, ToolbarSeparator, ToolbarStart } from "@/components/toolbar";
94
- export type { ToolbarProps } from "@/components/toolbar";
95
- export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/tooltip";
96
- export type { TooltipContentProps } from "@/components/tooltip";
97
- export { DEFAULT_THEME_STORAGE_KEY, THEME_MESSAGE_TYPE, applyStoredTheme, applyTheme, getThemeInitScript, readStoredTheme, themeFromBackground, themeFromMessage, themeInitScript, useCortenaTheme } from "@/hooks/use-cortena-theme";
98
- export type { CortenaTheme, CortenaThemeMessage, ResolvedCortenaTheme, UseCortenaThemeOptions, UseCortenaThemeResult } from "@/hooks/use-cortena-theme";
1
+ /**
2
+ * cortena-ui public surface.
3
+ *
4
+ * The convenient path: everything the package exports, from one import. It is
5
+ * genuinely tree-shakeable — the package declares `"sideEffects": false` for
6
+ * JavaScript and no component module runs anything at import time — so an app
7
+ * that imports `Button` from here ships `Button`, not the library.
8
+ * `scripts/bundle-probe.mjs` measures that on every `pnpm test`, and the
9
+ * measured numbers are in CONSUMING.md.
10
+ *
11
+ * For a size-critical bundle — an MCP app inlined into a single HTML file, for
12
+ * instance — import the area entry instead and do not rely on the consumer's
13
+ * bundler getting tree-shaking right:
14
+ *
15
+ * cortena-ui/core primitives, overlays, light form controls, cn, theme hook
16
+ * cortena-ui/form Form, useForm, zodResolver, date pickers, Dropzone
17
+ * cortena-ui/data-table DataTable and its parts
18
+ * cortena-ui/chart Chart and the themed Recharts primitives
19
+ * cortena-ui/markdown Markdown
20
+ * cortena-ui/a2ui the A2UI catalogue and renderer
21
+ * cortena-ui/sortable-list SortableList (dnd-kit, which cannot be shaken)
22
+ *
23
+ * Each component has exactly one home, so these unions never collide. Adding a
24
+ * component means adding it to its area entry, not here.
25
+ */
26
+ export * from "@/entries/core";
27
+ export * from "@/entries/form";
28
+ export * from "@/entries/data-table";
29
+ export * from "@/entries/chart";
30
+ export * from "@/entries/markdown";
31
+ export * from "@/entries/a2ui";
32
+ export * from "@/entries/sortable-list";
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Evaluates `build` immediately and returns its value.
3
+ *
4
+ * A pass-through with exactly one job: to let a consumer's bundler delete what
5
+ * it wraps.
6
+ *
7
+ * The package is one ESM module tree with no side effects, so a bundler is free
8
+ * to drop anything an app does not reach. It can only do that for statements it
9
+ * can prove are safe to skip, and a top-level call it cannot see inside —
10
+ * `tableFeatures({ … })`, a `z.enum(...).describe(...)` chain, `Object.freeze`
11
+ * over a spread — is never provably safe. The statement is kept, and with it
12
+ * every module it can reach. That is how `import { Button } from "cortena-ui"`
13
+ * came to pull recharts, nivo, exceljs, dnd-kit, react-markdown, cmdk and
14
+ * react-day-picker into an app that renders one button: 2,479 kB of it.
15
+ *
16
+ * Wrapped in a thunk the same work is no longer a top-level expression, and the
17
+ * `@__PURE__` annotation each call site carries tells the bundler the call may
18
+ * be dropped when its result is unused. Runtime behaviour is unchanged — the
19
+ * thunk runs on the line it is written — so nothing is deferred, lazy or
20
+ * asynchronous. Only the bundler sees a difference.
21
+ *
22
+ * Use it for a module-scope constant built by a call. Prefer a bare
23
+ * `/* @__PURE__ *\/` annotation where the call's arguments are literals
24
+ * (`cva(...)`, `cn(...)`, `React.createContext(...)`); the thunk is for the
25
+ * cases where the arguments themselves contain calls, because a bundler
26
+ * evaluates arguments even when the call around them is annotated pure.
27
+ *
28
+ * `test/bundle-probe.test.mjs` measures a real consumer bundle, which is what
29
+ * stops any of this being quietly undone.
30
+ */
31
+ export function shakeable<T>(build: () => T): T {
32
+ return build();
33
+ }