gridsmith-ui 0.28.0 → 0.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +47 -1
  2. package/dist/charts.d.ts +7 -2
  3. package/dist/charts.js +2 -2
  4. package/dist/charts.js.map +1 -1
  5. package/dist/chat.js +5 -5
  6. package/dist/{chunk-GXMTS3YD.js → chunk-37WOC7F7.js} +29 -12
  7. package/dist/chunk-37WOC7F7.js.map +1 -0
  8. package/dist/{chunk-OPFJEL3Z.js → chunk-4TUJXDRU.js} +96 -15
  9. package/dist/chunk-4TUJXDRU.js.map +1 -0
  10. package/dist/{chunk-EIWXVICU.js → chunk-6A5RHW2W.js} +3 -3
  11. package/dist/{chunk-EIWXVICU.js.map → chunk-6A5RHW2W.js.map} +1 -1
  12. package/dist/{chunk-XVB55M3N.js → chunk-72SDAX54.js} +2 -2
  13. package/dist/chunk-72SDAX54.js.map +1 -0
  14. package/dist/{chunk-YUTF2X6B.js → chunk-FUKSLQ77.js} +8 -8
  15. package/dist/{chunk-YUTF2X6B.js.map → chunk-FUKSLQ77.js.map} +1 -1
  16. package/dist/{chunk-DQCHCLEJ.js → chunk-I3MTQ3CS.js} +5 -5
  17. package/dist/{chunk-DQCHCLEJ.js.map → chunk-I3MTQ3CS.js.map} +1 -1
  18. package/dist/{chunk-66JJCQU3.js → chunk-JTU7OBYJ.js} +5 -3
  19. package/dist/chunk-JTU7OBYJ.js.map +1 -0
  20. package/dist/{chunk-2ROVDVLZ.js → chunk-MFAWJSMJ.js} +3 -3
  21. package/dist/{chunk-2ROVDVLZ.js.map → chunk-MFAWJSMJ.js.map} +1 -1
  22. package/dist/{chunk-TJEV7YAY.js → chunk-MKFWHWBK.js} +2 -2
  23. package/dist/{chunk-TJEV7YAY.js.map → chunk-MKFWHWBK.js.map} +1 -1
  24. package/dist/{chunk-BRAXJEEP.js → chunk-QNHVPE2B.js} +4 -4
  25. package/dist/{chunk-BRAXJEEP.js.map → chunk-QNHVPE2B.js.map} +1 -1
  26. package/dist/{chunk-TRDXWHD2.js → chunk-RECCCA7Z.js} +6 -6
  27. package/dist/chunk-RECCCA7Z.js.map +1 -0
  28. package/dist/{chunk-R4GXKH4U.js → chunk-RJEUQ7RL.js} +10 -8
  29. package/dist/chunk-RJEUQ7RL.js.map +1 -0
  30. package/dist/{chunk-CRQ6KCRD.js → chunk-ZHUVLBCC.js} +7 -4
  31. package/dist/chunk-ZHUVLBCC.js.map +1 -0
  32. package/dist/data-grid.d.ts +2 -2
  33. package/dist/data-grid.js +9 -9
  34. package/dist/data-grid.js.map +1 -1
  35. package/dist/editor-mentions.js +2 -2
  36. package/dist/editor.js +4 -4
  37. package/dist/icons.d.ts +9 -0
  38. package/dist/icons.js +1 -1
  39. package/dist/index.d.ts +45 -35
  40. package/dist/index.js +142 -164
  41. package/dist/index.js.map +1 -1
  42. package/dist/kanban.js +6 -6
  43. package/dist/kanban.js.map +1 -1
  44. package/dist/resizable.js +7 -7
  45. package/dist/roots.css +2 -0
  46. package/dist/{table-utils-BkjNEWts.d.ts → table-utils-CxnpFHRF.d.ts} +5 -4
  47. package/dist/{use-pagination-BxcRlNQG.d.ts → use-pagination-QykGSREv.d.ts} +7 -0
  48. package/dist/utils.js.map +1 -1
  49. package/dist/virtualized.d.ts +1 -1
  50. package/dist/virtualized.js +6 -6
  51. package/package.json +2 -2
  52. package/dist/chunk-66JJCQU3.js.map +0 -1
  53. package/dist/chunk-CRQ6KCRD.js.map +0 -1
  54. package/dist/chunk-GXMTS3YD.js.map +0 -1
  55. package/dist/chunk-OPFJEL3Z.js.map +0 -1
  56. package/dist/chunk-R4GXKH4U.js.map +0 -1
  57. package/dist/chunk-TRDXWHD2.js.map +0 -1
  58. package/dist/chunk-XVB55M3N.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -3,10 +3,10 @@ import { ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, LabelHTMLAttribut
3
3
  import { IconSlot, IconName } from './icons.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import { M as MentionSuggestion } from './MentionList-CoNBRFGR.js';
6
- import { C as ColumnKind, B as BreakpointKey } from './table-utils-BkjNEWts.js';
7
- export { a as BreakpointWidthProvider, u as useBreakpoint } from './table-utils-BkjNEWts.js';
8
- import { P as Pager, A as AppShellPreferences } from './use-pagination-BxcRlNQG.js';
9
- export { a as PaginationOptions, b as PreferencesContext, R as ResolvedPreferences, p as preferenceActionKey, u as usePagination, c as usePreferences } from './use-pagination-BxcRlNQG.js';
6
+ import { C as ColumnKind, B as BreakpointKey } from './table-utils-CxnpFHRF.js';
7
+ export { a as BreakpointWidthProvider, u as useBreakpoint } from './table-utils-CxnpFHRF.js';
8
+ import { P as Pager, A as AppShellPreferences } from './use-pagination-QykGSREv.js';
9
+ export { a as PaginationOptions, b as PreferencesContext, R as ResolvedPreferences, p as preferenceActionKey, u as usePagination, c as usePreferences } from './use-pagination-QykGSREv.js';
10
10
  export { B as BreadcrumbItem, a as Breadcrumbs, b as BreadcrumbsSeparator, c as BreadcrumbsSize, d as BreadcrumbsVariant } from './Breadcrumbs-CGS8GKl-.js';
11
11
 
12
12
  type ButtonVariant = "default" | "secondary" | "tertiary" | "outline" | "ghost" | "destructive" | "success" | "warning" | "link";
@@ -343,12 +343,8 @@ interface CheckboxGroupItemProps {
343
343
  value: string;
344
344
  label: string;
345
345
  disabled?: boolean;
346
- /** @deprecated Use CheckboxGroup's value/onChange via context instead. */
347
- groupValue?: string[];
348
- /** @deprecated Use CheckboxGroup's value/onChange via context instead. */
349
- onGroupChange?: (value: string[]) => void;
350
346
  }
351
- declare function CheckboxGroupItem({ value, label, disabled, groupValue, onGroupChange }: CheckboxGroupItemProps): react_jsx_runtime.JSX.Element;
347
+ declare function CheckboxGroupItem({ value, label, disabled }: CheckboxGroupItemProps): react_jsx_runtime.JSX.Element;
352
348
 
353
349
  interface RadioOption {
354
350
  value: string;
@@ -890,6 +886,11 @@ interface FormContextValue {
890
886
  */
891
887
  register: (field: string, check: FieldCheck) => () => void;
892
888
  }
889
+ /**
890
+ * The FormWrapper a field sits in: its errors with `setError` and `clearErrors`, the project's validation timing
891
+ * (`validationMode`, forms.validationTiming through FormWrapper), whether it has been submitted, and `register` for a
892
+ * field's own check, which the form runs on each submit. Throws outside a FormWrapper.
893
+ */
893
894
  declare function useFormContext(): FormContextValue;
894
895
 
895
896
  /** An invalid field as the form finds it in its own DOM after a submit. */
@@ -1485,11 +1486,6 @@ interface AvatarGroupItem {
1485
1486
  initials?: string;
1486
1487
  src?: string;
1487
1488
  alt?: string;
1488
- /**
1489
- * @deprecated Ignored: a group draws no status (the owner, 30 September 2026: dots on overlapping avatars read as
1490
- * broken). Show someone's status with a single Avatar.
1491
- */
1492
- status?: AvatarStatus;
1493
1489
  color?: AvatarColor;
1494
1490
  }
1495
1491
  interface AvatarGroupProps {
@@ -1937,7 +1933,7 @@ interface AsidePanelProps {
1937
1933
  navbarFloating?: boolean;
1938
1934
  /** Whether the sidebar is floating — a left-docked floating column then drops its outer gutter, because the sidebar's own gutter is the gap (as PageHeader does). */
1939
1935
  sidebarFloating?: boolean;
1940
- /** Below this breakpoint the page is too narrow to share: the panel renders as a non-modal Drawer instead (and as the modal Sheet at or below sm, as Drawer does). Default "lg". */
1936
+ /** Below this breakpoint the page is too narrow to share: the panel renders as a non-modal Drawer instead (and as the modal Sheet below sm, as Drawer does). Default "lg". */
1941
1937
  collapseBelow?: BreakpointKey;
1942
1938
  /** Keep the content mounted while closed (hidden) so drafts and scroll survive. Default true — the column exists for persistent assistants. */
1943
1939
  keepMounted?: boolean;
@@ -1994,10 +1990,6 @@ interface StackedListProps {
1994
1990
  /** The current row in a master-detail list. Its treatment follows the theme's in-page vertical active style (rail, tint or pill), like Tabs. */
1995
1991
  selectedId?: string | number;
1996
1992
  className?: string;
1997
- /** @deprecated Sprint 25.4: use variant="articles". Accepted for one version. */
1998
- flush?: boolean;
1999
- /** @deprecated Sprint 25.4: use variant="articles" (hover="title") — the default variant tints the row. */
2000
- hover?: "tint" | "title";
2001
1993
  /**
2002
1994
  * The list's pager (Sprint 25.13 A3), from `usePagination(items)` over the same items: the list draws the pager's
2003
1995
  * part of every item and, beneath it, the control in the project's style. Draw no <Pagination> of your own.
@@ -2873,6 +2865,10 @@ interface SidebarContextValue {
2873
2865
  navbarFloating: boolean;
2874
2866
  navSize?: "sm" | "md";
2875
2867
  }
2868
+ /**
2869
+ * The Sidebar around this component, or null outside one: whether it is collapsed (with `onCollapsedChange`), its type
2870
+ * and position, whether the navbar beside it floats, and the element its popovers portal into.
2871
+ */
2876
2872
  declare function useSidebar(): SidebarContextValue | null;
2877
2873
  type SidebarVariant = "default" | "dark";
2878
2874
  interface SidebarProps {
@@ -3078,7 +3074,7 @@ interface DockProps {
3078
3074
  declare function Dock({ items, magnification, baseSize, className, }: DockProps): react_jsx_runtime.JSX.Element;
3079
3075
 
3080
3076
  /** `tint` (soft accent fill), `underline`, `minimal`, `pill` (solid accent fill). `default` is the deprecated pre-20.8 name for `tint`. */
3081
- type NavbarType = "tint" | "underline" | "minimal" | "pill" | "default";
3077
+ type NavbarType = "tint" | "underline" | "minimal" | "pill";
3082
3078
  type NavbarAlign = "left" | "center" | "right";
3083
3079
  type NavbarVariant = "default" | "transparent" | "compact" | "elevated" | "blurred";
3084
3080
  type NavbarSize = "sm" | "md" | "lg";
@@ -3107,12 +3103,10 @@ interface NavbarProps {
3107
3103
  declare const Navbar: react.ForwardRefExoticComponent<NavbarProps & react.RefAttributes<HTMLElement>>;
3108
3104
 
3109
3105
  /**
3110
- * Navbar active style. `tint` is the soft accent fill (the pre-20.8 `default`),
3111
- * `underline` the bottom indicator, `minimal` a text-only change, `pill` a solid
3112
- * accent fill with on-primary text. `default` is accepted as a deprecated alias
3113
- * for `tint` for one release.
3106
+ * Navbar active style. `tint` is the soft accent fill, `underline` the bottom indicator, `minimal` a text-only
3107
+ * change, `pill` a solid accent fill with on-primary text.
3114
3108
  */
3115
- type NavItemType = "tint" | "underline" | "minimal" | "pill" | "default";
3109
+ type NavItemType = "tint" | "underline" | "minimal" | "pill";
3116
3110
  interface NavItemProps {
3117
3111
  label: string;
3118
3112
  icon?: IconName;
@@ -3147,8 +3141,8 @@ interface NavMenuProps {
3147
3141
  }
3148
3142
  declare function NavMenu({ label, items, active, type: typeProp, onItemClick, className, }: NavMenuProps): react_jsx_runtime.JSX.Element;
3149
3143
 
3150
- /** Mirrors NavbarType. `default` is the deprecated pre-20.8 name for `tint`. */
3151
- type MobileHeaderMenuType = "tint" | "underline" | "minimal" | "pill" | "default";
3144
+ /** Mirrors NavbarType. */
3145
+ type MobileHeaderMenuType = "tint" | "underline" | "minimal" | "pill";
3152
3146
  interface MobileHeaderMenuItemData {
3153
3147
  label: string;
3154
3148
  icon?: IconName;
@@ -3210,8 +3204,9 @@ interface DrawerProps {
3210
3204
  topOffset?: string;
3211
3205
  /**
3212
3206
  * What the drawer becomes at phone width (≤ the sm breakpoint).
3213
- * "sheet" (default for right and bottom): a draggable bottom Sheet with snap points.
3214
- * "panel" (default for left, which is the navigation convention): a full-height side panel.
3207
+ * "sheet" (default for right and bottom, and for a non-modal drawer on any side): a draggable bottom Sheet with snap
3208
+ * points, always modal.
3209
+ * "panel" (default for a modal left drawer, which is the navigation convention): a full-height side panel.
3215
3210
  * lightBackdrop and topOffset do not apply in sheet mode.
3216
3211
  */
3217
3212
  mobile?: "sheet" | "panel";
@@ -3268,7 +3263,7 @@ interface TooltipProps extends Omit<HTMLAttributes<HTMLElement>, "content"> {
3268
3263
  */
3269
3264
  ref?: Ref<HTMLElement>;
3270
3265
  }
3271
- declare function Tooltip({ content, children, side, delay, className, container, disabled, ref: forwardedRef, ...slotProps }: TooltipProps): react_jsx_runtime.JSX.Element;
3266
+ declare function Tooltip({ content, children, side, delay, className, container, disabled, ref, ...slotProps }: TooltipProps): react_jsx_runtime.JSX.Element;
3272
3267
 
3273
3268
  interface PopoverProps {
3274
3269
  open: boolean;
@@ -3533,6 +3528,13 @@ interface ToastProviderProps {
3533
3528
  /** Pause every toast's time while the stack is hovered (focus inside it always pauses). Default true. */
3534
3529
  pauseOnHover?: boolean;
3535
3530
  }
3531
+ /**
3532
+ * The app's toasts, from the shell's ToastProvider: `toast`, `success`, `warning` and `error` show one and return its id,
3533
+ * `update` changes one in place, `dismiss` and `dismissAll` remove them, and `promise` shows a loading toast that
3534
+ * resolves to success or error. The provider places every toast and times it by the project's preferences. For a
3535
+ * destructive action's Undo, use `useDestructiveAction`, which shows its own toast for the project's undo window.
3536
+ * Throws outside the ToastProvider.
3537
+ */
3536
3538
  declare function useToast(): ToastApi;
3537
3539
  /** The toast API when a ToastProvider is above, else null — for components that can do without one (useDestructiveAction in dialog mode). */
3538
3540
  declare function useToastOptional(): ToastApi | null;
@@ -3607,7 +3609,7 @@ interface AppShellContextValue {
3607
3609
  /**
3608
3610
  * Effective sidebar collapse for a traditional Sidebar rendered in the shell.
3609
3611
  * The user's explicit choice wins; otherwise the auto tier applies — collapsed
3610
- * to a rail at or below the `lg` breakpoint, expanded above it. Lives here rather
3612
+ * to a rail below the `lg` breakpoint, expanded from it. Lives here rather
3611
3613
  * than in Sidebar so it survives the sidebar unmounting in the drawer range.
3612
3614
  */
3613
3615
  sidebarCollapsed: boolean;
@@ -3642,8 +3644,10 @@ interface AppShellContextValue {
3642
3644
  registerChrome: (kind: "navbar" | "sidebar", position: ChromePosition) => () => void;
3643
3645
  /** True when the shell renders a Launcher above sm — PageContainer adjusts its bottom padding to clear the launcher. */
3644
3646
  hasLauncher: boolean;
3645
- /** The bottom corner that launcher occupies (a ribbon occupies none), so the container reads that corner's inset variable. */
3647
+ /** The bottom corner a bubble or pill launcher occupies, so the container's bottom padding reads that corner's inset variable. The page's padding ignores a ribbon, which hugs the window's edge (its claim keeps only toasts off it). */
3646
3648
  launcherCorner: "bottom-right" | "bottom-left" | null;
3649
+ /** Called by a Launcher inside the shell with the corner it occupies (null for a ribbon), so the padding follows the Launcher itself however the slot wraps it. Returns the unregister. */
3650
+ registerLauncher: (corner: "bottom-right" | "bottom-left" | null) => () => void;
3647
3651
  /** The shell renders an app footer under the page. Its children sit in a wrapper whose height is not definite, so a
3648
3652
  * `fill` SplitView reads `--ds-main-height` (published on the shell element) instead of `h-full`. */
3649
3653
  hasFooter: boolean;
@@ -3681,6 +3685,12 @@ interface AppShellFocus {
3681
3685
  /** What the exit control does: save and log out, or return to where the user came from. */
3682
3686
  onExit?: () => void;
3683
3687
  }
3688
+ /**
3689
+ * The app shell around this component, or null outside one: its layout state — whether it has a sidebar, a mobile menu
3690
+ * and a mobile nav, whether the sidebar is open or collapsed and the aside open (each with its setter), the viewport tier
3691
+ * (`isMobile`, `isTablet`), the theme it was given and whether its navbar and sidebar float. For telling the shell about
3692
+ * unsaved changes, use `useUnsavedChanges`.
3693
+ */
3684
3694
  declare function useAppShell(): AppShellContextValue | null;
3685
3695
  /**
3686
3696
  * Tells the shell this page has unsaved changes, so focus mode's Exit asks before it leaves (Sprint 25.7, C1). Pass the
@@ -3712,9 +3722,9 @@ interface AppShellProps {
3712
3722
  /** Which side of the content the aside sits on. Default "right". Pass the same value to the AsidePanel. */
3713
3723
  asideSide?: "right" | "left";
3714
3724
  /**
3715
- * A Launcher for the assistant. Rendered only above the sm breakpoint — a conditional render,
3716
- * because the Launcher portals out of any wrapper — so on phones the Navbar button is the entry point
3717
- * and it never collides with BottomNav.
3725
+ * A Launcher for the assistant. Rendered from the sm breakpoint up, where Tailwind's `sm:` starts — a conditional
3726
+ * render, because the Launcher portals out of any wrapper — so below it, on phones, the Navbar button is the entry
3727
+ * point and it never collides with BottomNav.
3718
3728
  */
3719
3729
  launcher?: ReactNode;
3720
3730
  children: ReactNode;