@timbal-ai/timbal-react 1.4.0 → 1.5.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 (53) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +18 -4
  3. package/dist/app.cjs +3532 -1483
  4. package/dist/app.d.cts +75 -30
  5. package/dist/app.d.ts +75 -30
  6. package/dist/app.esm.js +29 -7
  7. package/dist/{chart-artifact-CMnDys2t.d.ts → chart-artifact-2OTDTRwM.d.ts} +194 -40
  8. package/dist/{chart-artifact-C8-Py6lc.d.cts → chart-artifact-CS3qyGIY.d.cts} +194 -40
  9. package/dist/chat.cjs +264 -107
  10. package/dist/chat.d.cts +2 -2
  11. package/dist/chat.d.ts +2 -2
  12. package/dist/chat.esm.js +4 -3
  13. package/dist/chunk-5ECRZ5O7.esm.js +899 -0
  14. package/dist/{chunk-QU7ET55D.esm.js → chunk-AZL2WANO.esm.js} +320 -177
  15. package/dist/{chunk-OH23AX2V.esm.js → chunk-B4XAC4G7.esm.js} +430 -780
  16. package/dist/chunk-EDEKQYSU.esm.js +10 -0
  17. package/dist/{chunk-GQBYZRD7.esm.js → chunk-IGHBLJV3.esm.js} +38 -27
  18. package/dist/{chunk-OFWC4MIY.esm.js → chunk-JYDJRGDE.esm.js} +5 -3
  19. package/dist/{chunk-VOWNCS3F.esm.js → chunk-SZDYIRMB.esm.js} +1567 -490
  20. package/dist/chunk-TZI3ID3C.esm.js +232 -0
  21. package/dist/{chunk-THBA27QY.esm.js → chunk-WMKPT5BV.esm.js} +242 -123
  22. package/dist/{chunk-VXMM2HX7.esm.js → chunk-ZNYAETFD.esm.js} +1 -1
  23. package/dist/{circular-progress-Ci8L-Hfa.d.cts → circular-progress-CDsJwIPF.d.cts} +19 -77
  24. package/dist/{circular-progress-Ci8L-Hfa.d.ts → circular-progress-CDsJwIPF.d.ts} +19 -77
  25. package/dist/index.cjs +5506 -3626
  26. package/dist/index.d.cts +7 -6
  27. package/dist/index.d.ts +7 -6
  28. package/dist/index.esm.js +45 -33
  29. package/dist/kanban-U5xNe9py.d.cts +212 -0
  30. package/dist/kanban-U5xNe9py.d.ts +212 -0
  31. package/dist/{layout-BTJyU8wd.d.ts → layout-B8r6Jbat.d.ts} +1 -1
  32. package/dist/{layout-C2G-FcER.d.cts → layout-Cu7Ijn04.d.cts} +1 -1
  33. package/dist/site.cjs +358 -0
  34. package/dist/site.d.cts +184 -0
  35. package/dist/site.d.ts +184 -0
  36. package/dist/site.esm.js +322 -0
  37. package/dist/studio.cjs +702 -343
  38. package/dist/studio.d.cts +1 -1
  39. package/dist/studio.d.ts +1 -1
  40. package/dist/studio.esm.js +7 -5
  41. package/dist/styles.css +56 -0
  42. package/dist/{timbal-v2-button-CNfdwGq4.d.cts → timbal-v2-button-B7vPs7gg.d.cts} +2 -2
  43. package/dist/{timbal-v2-button-CNfdwGq4.d.ts → timbal-v2-button-B7vPs7gg.d.ts} +2 -2
  44. package/dist/ui.cjs +1504 -659
  45. package/dist/ui.d.cts +11 -4
  46. package/dist/ui.d.ts +11 -4
  47. package/dist/ui.esm.js +35 -26
  48. package/dist/{welcome-DXqsGTwH.d.ts → welcome-DduQAC4K.d.ts} +4 -0
  49. package/dist/{welcome-BFGRoNfK.d.cts → welcome-NXZlcihe.d.cts} +4 -0
  50. package/package.json +9 -1
  51. package/dist/button-BoyX5pM_.d.cts +0 -18
  52. package/dist/button-BoyX5pM_.d.ts +0 -18
  53. package/dist/chunk-UCGVL7ZY.esm.js +0 -52
package/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@ All notable changes to `@timbal-ai/timbal-react` are documented here.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.5.0] — 2026-06-26
8
+
9
+ ### Added
10
+
11
+ - **`Kanban` board primitive** (`src/ui/kanban.tsx`) — A fully-featured, highly accessible Kanban board with column customization, drag-and-drop capabilities powered by `@dnd-kit`, and a read-only mode for static board rendering.
12
+ - **App density system** (`src/app/layout/app-density-context.tsx`, `src/design/app-density.ts`) — Context-driven density controls supporting "standard" and "compact" layouts. Compact mode cascades tighter padding, smaller text, and lower default heights to descendant components (pages, charts, tables).
13
+ - **Advanced filtering** (`src/app/data/FilterDropdown.tsx`, `src/app/data/FilterField.tsx`) — Rich multi-level filter dropdowns with searchable sub-menus and filter fields for complex data querying.
14
+ - **Site/Marketing primitives** (`src/site/`) — A brand new `./site` subpath export containing five high-quality interactive and marketing-grade components:
15
+ - **`Magnetic`** — magnetic hover effect that pulls elements toward the cursor.
16
+ - **`Marquee`** — high-performance, infinite scrolling marquee.
17
+ - **`Parallax`** — scroll-driven parallax container with custom speed factors.
18
+ - **`Reveal`** — scroll or entrance fade-in reveal with custom directions and delays.
19
+ - **`TextReveal`** — character-by-character or word-by-word scroll-reveal animations.
20
+
7
21
  ## [1.4.0] — 2026-06-05
8
22
 
9
23
  ### Added
package/README.md CHANGED
@@ -342,12 +342,26 @@ function MyShell() {
342
342
  To inset a main column that follows the sidebar as it collapses, use `AppShell`, which wires the tracking automatically:
343
343
 
344
344
  ```tsx
345
- import { AppShell, StudioSidebar } from "@timbal-ai/timbal-react";
345
+ import { AppShell, StudioSidebar, useAppShellNav } from "@timbal-ai/timbal-react";
346
+
347
+ // Rendered inside AppShell, so it can read the shell's mobile-nav controls and
348
+ // wire the drawer. The sidebar already closes itself on selection (mobile).
349
+ function Sidebar({ agent, onSelect }: { agent: string; onSelect: (id: string) => void }) {
350
+ const nav = useAppShellNav();
351
+ return (
352
+ <StudioSidebar
353
+ selectedId={agent}
354
+ onSelect={onSelect}
355
+ mobileOpen={nav.open}
356
+ onMobileOpenChange={nav.setOpen}
357
+ />
358
+ );
359
+ }
346
360
 
347
361
  function MyShell() {
348
362
  const [agent, setAgent] = useState("agent-a");
349
363
  return (
350
- <AppShell sidebar={<StudioSidebar selectedId={agent} onSelect={setAgent} />}>
364
+ <AppShell sidebar={<Sidebar agent={agent} onSelect={setAgent} />}>
351
365
  {/* main content insets + animates with the sidebar */}
352
366
  </AppShell>
353
367
  );
@@ -961,6 +975,7 @@ import { controlClass, overlaySurfaceClass, overlayItemClass } from "@timbal-ai/
961
975
  - **Layout / disclosure:** `Accordion` · `AccordionItem` · `AccordionTrigger` · `AccordionContent` · `Separator` · `AspectRatio`
962
976
  - **Input chrome:** `InputGroup` (+ addon/control/text) · `Spinner`
963
977
  - **More primitives:** `AvatarGroup` (overflow stack) · `Stepper` (wizard progress) · `Timeline` (event rail) · `Rating` (stars) · `NumberField` (stepper input) · `TagInput` (chips) · `Banner` (page notice) · `CopyButton` · `Snippet` (code + copy) · `CircularProgress` (SVG ring) — all dependency-free, on the shared tokens / control surface
978
+ - **`Kanban`** (drag-and-drop board) — accessible columns + cards on `@dnd-kit` (pointer **and** keyboard sensors, cross-column moves, empty-column drop zones, drag overlay). Controlled (`columns` + `onColumnsChange`) or uncontrolled (`defaultColumns`); `onMove` reports `{ card, from, to }`. Variants: `density`, column `tone`, `cardVariant`. Requires the peer deps `@dnd-kit/core`, `@dnd-kit/sortable`, `@dnd-kit/utilities`.
964
979
 
965
980
  **Motion is built in.** Dialog, AlertDialog, Sheet, Popover, DropdownMenu, Select, Tooltip, Toast, NavigationMenu, and Accordion / Collapsible animate out of the box (fade / zoom / slide / height). The animation engine is **inlined in `styles.css`** — no `tailwindcss-animate` / `tw-animate-css` dependency and no consumer config. Duration flows from any `duration-*` utility (`--tw-duration`, default 150ms). When composing a custom overlay, reuse `overlayAnimationClass` rather than adding another animation library.
966
981
 
@@ -1045,7 +1060,6 @@ Compose a data UI with a **floating** copilot — main content stays full width:
1045
1060
  ```tsx
1046
1061
  import {
1047
1062
  AppShell,
1048
- AppShellTopbar,
1049
1063
  AppCopilotProvider,
1050
1064
  AppChatPanel,
1051
1065
  Page,
@@ -1057,7 +1071,7 @@ export function OperationsApp() {
1057
1071
  <AppCopilotProvider value={{ page: "Operations", tab: "overview" }}>
1058
1072
  <AppShell
1059
1073
  sidebar={<StudioSidebar /* … */ />}
1060
- topbar={<AppShellTopbar actions={<ModeToggle />} />}
1074
+ topbar={<div className="flex justify-end p-4"><ModeToggle /></div>}
1061
1075
  chat={
1062
1076
  <AppChatPanel workforceId="your-workforce-id" />
1063
1077
  }