gridsmith-ui 0.30.1 → 0.30.2

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 (55) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/dist/chat.js +14 -8
  3. package/dist/chat.js.map +1 -1
  4. package/dist/{chunk-R5QXMNW7.js → chunk-4HJDOZ2M.js} +107 -17
  5. package/dist/chunk-4HJDOZ2M.js.map +1 -0
  6. package/dist/{chunk-SJZWEBHL.js → chunk-ACLKDE5W.js} +6 -5
  7. package/dist/chunk-ACLKDE5W.js.map +1 -0
  8. package/dist/{chunk-OVHBQT3Z.js → chunk-BZRZENBS.js} +4 -4
  9. package/dist/{chunk-OVHBQT3Z.js.map → chunk-BZRZENBS.js.map} +1 -1
  10. package/dist/{chunk-ISONVOA7.js → chunk-HVGHGBKV.js} +4 -5
  11. package/dist/chunk-HVGHGBKV.js.map +1 -0
  12. package/dist/{chunk-KMKBOTFR.js → chunk-K6IDOCGE.js} +7 -9
  13. package/dist/chunk-K6IDOCGE.js.map +1 -0
  14. package/dist/{chunk-ULCACQSA.js → chunk-MIUSSYVE.js} +3 -3
  15. package/dist/{chunk-ULCACQSA.js.map → chunk-MIUSSYVE.js.map} +1 -1
  16. package/dist/{chunk-T52LAFKG.js → chunk-SIWERRP2.js} +7 -8
  17. package/dist/chunk-SIWERRP2.js.map +1 -0
  18. package/dist/{chunk-OX3NNMWG.js → chunk-SQHKC4HA.js} +8 -5
  19. package/dist/chunk-SQHKC4HA.js.map +1 -0
  20. package/dist/{chunk-SLRTSBCJ.js → chunk-USHW523V.js} +31 -10
  21. package/dist/chunk-USHW523V.js.map +1 -0
  22. package/dist/{chunk-UDJOIVKQ.js → chunk-WWN6CQKI.js} +34 -4
  23. package/dist/chunk-WWN6CQKI.js.map +1 -0
  24. package/dist/{chunk-NEUWZUK6.js → chunk-ZASGFL5D.js} +3 -3
  25. package/dist/{chunk-NEUWZUK6.js.map → chunk-ZASGFL5D.js.map} +1 -1
  26. package/dist/{chunk-IELIF4PJ.js → chunk-ZCDA74RQ.js} +3 -3
  27. package/dist/{chunk-IELIF4PJ.js.map → chunk-ZCDA74RQ.js.map} +1 -1
  28. package/dist/data-grid.js +6 -8
  29. package/dist/data-grid.js.map +1 -1
  30. package/dist/editor-mentions.js +2 -3
  31. package/dist/editor-mentions.js.map +1 -1
  32. package/dist/editor.js +2 -4
  33. package/dist/editor.js.map +1 -1
  34. package/dist/index.d.ts +14 -1
  35. package/dist/index.js +44 -38
  36. package/dist/index.js.map +1 -1
  37. package/dist/kanban.js +7 -9
  38. package/dist/kanban.js.map +1 -1
  39. package/dist/resizable.js +6 -8
  40. package/dist/resizable.js.map +1 -1
  41. package/dist/virtualized.js +6 -8
  42. package/dist/virtualized.js.map +1 -1
  43. package/package.json +1 -1
  44. package/dist/chunk-HTXP5BMM.js +0 -38
  45. package/dist/chunk-HTXP5BMM.js.map +0 -1
  46. package/dist/chunk-ISONVOA7.js.map +0 -1
  47. package/dist/chunk-KMKBOTFR.js.map +0 -1
  48. package/dist/chunk-OX3NNMWG.js.map +0 -1
  49. package/dist/chunk-R5QXMNW7.js.map +0 -1
  50. package/dist/chunk-SJZWEBHL.js.map +0 -1
  51. package/dist/chunk-SLRTSBCJ.js.map +0 -1
  52. package/dist/chunk-T52LAFKG.js.map +0 -1
  53. package/dist/chunk-UDJOIVKQ.js.map +0 -1
  54. package/dist/chunk-WIUGPZOH.js +0 -88
  55. package/dist/chunk-WIUGPZOH.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,23 +1,23 @@
1
1
  "use client";
2
- import { useAppShell, REACT_VERSION_PROBLEM, Breadcrumbs, useCrumbFollow, crumbGoes, useCornerInset, NAVBAR_INSET_PRIORITY, useOverlayMark, useDirtyGuard, useScrollbarInset, DrawerFooterCtx, OverlayMarkScope, OverlayCloseCtx, insetLessScrollbar, DiscardConfirm, OVERLAY_ROOT_ATTR, OverlayMarkCtx, useCompact, useElementWidth, DrawerPanel, useCloseSettle, besideRoom, PANEL_INSET_PRIORITY, Drawer, useRememberedWidth, pxOf, ResizeEdge, LAUNCHER_INSET_PRIORITY, defaultMaxWidth } from './chunk-KMKBOTFR.js';
3
- export { AppShell, Breadcrumbs, Drawer, SkipLink, useAppShell, useUnsavedChanges } from './chunk-KMKBOTFR.js';
2
+ import { useAppShell, REACT_VERSION_PROBLEM, Breadcrumbs, useCrumbFollow, crumbGoes, useCornerInset, NAVBAR_INSET_PRIORITY, useOverlayMark, useDirtyGuard, useScrollbarInset, DrawerFooterCtx, OverlayMarkScope, OverlayCloseCtx, insetLessScrollbar, DiscardConfirm, OVERLAY_ROOT_ATTR, OverlayMarkCtx, useCompact, useElementWidth, DrawerPanel, useCloseSettle, besideRoom, PANEL_INSET_PRIORITY, Drawer, useRememberedWidth, pxOf, ResizeEdge, LAUNCHER_INSET_PRIORITY, defaultMaxWidth } from './chunk-K6IDOCGE.js';
3
+ export { AppShell, Breadcrumbs, Drawer, SkipLink, useAppShell, useUnsavedChanges } from './chunk-K6IDOCGE.js';
4
4
  import { Skeleton, TITLE_TEXT } from './chunk-6C2IUMY7.js';
5
5
  export { Skeleton } from './chunk-6C2IUMY7.js';
6
6
  import { useScrollEdges, EDGE_FADE } from './chunk-3BRQRKDO.js';
7
- import { Avatar, foldForSearch, useActiveOptionInView, shownMentions, matchMentions, mentionOptionId, MentionList, initialsOf } from './chunk-NEUWZUK6.js';
8
- export { Avatar } from './chunk-NEUWZUK6.js';
9
- import { Link } from './chunk-OX3NNMWG.js';
10
- export { CodeBlock, Divider, Link } from './chunk-OX3NNMWG.js';
11
- import { DropdownMenu } from './chunk-ISONVOA7.js';
12
- export { DropdownMenu } from './chunk-ISONVOA7.js';
7
+ import { Avatar, foldForSearch, useActiveOptionInView, shownMentions, matchMentions, mentionOptionId, MentionList, initialsOf } from './chunk-ZASGFL5D.js';
8
+ export { Avatar } from './chunk-ZASGFL5D.js';
9
+ import { Link } from './chunk-SQHKC4HA.js';
10
+ export { CodeBlock, Divider, Link } from './chunk-SQHKC4HA.js';
11
+ import { DropdownMenu } from './chunk-HVGHGBKV.js';
12
+ export { DropdownMenu } from './chunk-HVGHGBKV.js';
13
13
  import { useFillHeight, FillContext } from './chunk-DBHVJ7Z3.js';
14
- import { useKeyboardScroll } from './chunk-SJZWEBHL.js';
15
- import { Badge } from './chunk-OVHBQT3Z.js';
16
- export { Badge } from './chunk-OVHBQT3Z.js';
17
- import { localeCache, startOfDay, addDays, useWeekStart, useDateWords, localeDayFirst, dayKey, moveDay, addMonths, DateSegmentFields, getMonthGrid, isSameMonth, isSameDay, DatePicker, timeSegments, pad2, inferColumnKinds, useCardsSwitch, CARDS_BELOW, kindOfRenderedText, Checkbox, CardValue, SortIndicator, startOfWeek, endOfWeek, addMonthsClamped, isExcludedDay, CutCell, CutEmail, stepValue, separatorMovesOn, TIME_SEPARATORS, typeDigit, getEventsForDay, layoutWeek, isWeekend, getWeekDays, isBarEvent, layoutPieces, dayPieces, groupEventsByDay, timeToFraction } from './chunk-T52LAFKG.js';
18
- export { Checkbox, CheckboxGroup, CheckboxGroupItem, DatePicker, HoverCard, TextOverflow } from './chunk-T52LAFKG.js';
19
- import { useWholeListCheck, pagerPart, Pagination, Input, CHECK_FILL, Dropdown, FilterRowContext, SWITCH_KNOB_ON, SWITCH_KNOB_OFF, SWITCH_KNOB_MOTION, SWITCH_TRACK_ON, SWITCH_TRACK_OFF, useFieldControl, useField, OutsideField, NumberInput, InlineFieldError, Label, AddAnotherRowCtx, Field } from './chunk-SLRTSBCJ.js';
20
- export { Dropdown, Field, InlineFieldError, Input, Label, NumberInput, Pagination, Popover, Textarea, Toggle, usePagination } from './chunk-SLRTSBCJ.js';
14
+ import { Badge } from './chunk-BZRZENBS.js';
15
+ export { Badge } from './chunk-BZRZENBS.js';
16
+ import { useKeyboardScroll } from './chunk-ACLKDE5W.js';
17
+ import { localeCache, startOfDay, addDays, useWeekStart, useDateWords, localeDayFirst, dayKey, moveDay, addMonths, DateSegmentFields, getMonthGrid, isSameMonth, isSameDay, DatePicker, timeSegments, pad2, inferColumnKinds, useCardsSwitch, CARDS_BELOW, kindOfRenderedText, Checkbox, CardValue, SortIndicator, startOfWeek, endOfWeek, addMonthsClamped, isExcludedDay, CutCell, CutEmail, stepValue, separatorMovesOn, TIME_SEPARATORS, typeDigit, getEventsForDay, layoutWeek, isWeekend, getWeekDays, isBarEvent, layoutPieces, dayPieces, groupEventsByDay, timeToFraction } from './chunk-SIWERRP2.js';
18
+ export { Checkbox, CheckboxGroup, CheckboxGroupItem, DatePicker, HoverCard, TextOverflow } from './chunk-SIWERRP2.js';
19
+ import { useWholeListCheck, pagerPart, Pagination, Input, CHECK_FILL, Dropdown, FilterRowContext, SWITCH_KNOB_ON, SWITCH_KNOB_OFF, SWITCH_KNOB_MOTION, SWITCH_TRACK_ON, SWITCH_TRACK_OFF, useFieldControl, useField, OutsideField, NumberInput, InlineFieldError, Label, AddAnotherRowCtx, Field } from './chunk-USHW523V.js';
20
+ export { Dropdown, Field, InlineFieldError, Input, Label, NumberInput, Pagination, Popover, Textarea, Toggle, usePagination } from './chunk-USHW523V.js';
21
21
  import { useShellPreferences, PREFERENCE_HOUSE_DEFAULTS, formatRelativeTime, thresholdOf, toMillis, formatFullTime, datedMillis, preferenceActionKey, DAY, HOUR, MINUTE } from './chunk-TYNDXMBV.js';
22
22
  export { PreferencesContext, formatFullTime, formatRelativeTime, preferenceActionKey, usePreferences } from './chunk-TYNDXMBV.js';
23
23
  import { useFormatLocale, useHydrated, useToday, LocaleContext } from './chunk-LJYSVZMI.js';
@@ -27,22 +27,19 @@ import { useInputModality, inputModality } from './chunk-7RKC5C7G.js';
27
27
  export { INPUT_MODALITY_ATTR, inputModality, installInputModality, useInputModality } from './chunk-7RKC5C7G.js';
28
28
  import { FormChangeCtx, useReportedChange, useOptionalFormContext, FormCtx } from './chunk-72SDAX54.js';
29
29
  export { useFormContext } from './chunk-72SDAX54.js';
30
- import { Button, CardSurfaceCtx, useScrollsInside, SplitPaneCtx, RowsCtx, PageActionsCtx, ControlSizeContext, triggerType, SurfaceBoundary, Spinner, useFramesItself, TableCardCtx } from './chunk-ULCACQSA.js';
31
- export { Button, ButtonSizeContext, ControlSizeContext, Spinner } from './chunk-ULCACQSA.js';
30
+ import { Button, CardSurfaceCtx, useScrollsInside, SplitPaneCtx, RowsCtx, PageActionsCtx, ControlSizeContext, triggerType, SurfaceBoundary, Spinner, useFramesItself, TableCardCtx } from './chunk-MIUSSYVE.js';
31
+ export { Button, ButtonSizeContext, ControlSizeContext, Spinner } from './chunk-MIUSSYVE.js';
32
32
  import { elementType } from './chunk-NKUCS67T.js';
33
33
  import { useBreakpoint, readBreakpointPx } from './chunk-ZHUVLBCC.js';
34
34
  export { BreakpointWidthProvider, useBreakpoint } from './chunk-ZHUVLBCC.js';
35
- import { useRevealFocus } from './chunk-HTXP5BMM.js';
36
- export { useRevealFocus } from './chunk-HTXP5BMM.js';
37
- import { focusAfterSelfRemoval, FOCUSABLE, useFocusKeptInList, FIELD, ZOOM_KEYS, rovingTabStop, useOverlayLayer, useFocusTrap, useFocusBeforeOpen, rememberOpener, focusInitial, OVERLAY_CLOSE_ATTR, usePopupFocus, CONTROL_ANCESTOR, useGridKeyboard, focusAfterRemoval, useNonModalDialog, useReturnFocus } from './chunk-R5QXMNW7.js';
38
- export { useGridKeyboard } from './chunk-R5QXMNW7.js';
39
- import { useTextOverflow } from './chunk-IELIF4PJ.js';
40
- export { useTextOverflow } from './chunk-IELIF4PJ.js';
41
- import { AutoTooltip } from './chunk-UDJOIVKQ.js';
42
- export { Tooltip } from './chunk-UDJOIVKQ.js';
35
+ import { useTextOverflow } from './chunk-ZCDA74RQ.js';
36
+ export { useTextOverflow } from './chunk-ZCDA74RQ.js';
37
+ import { AutoTooltip, useRevealFocus } from './chunk-WWN6CQKI.js';
38
+ export { Tooltip, useRevealFocus } from './chunk-WWN6CQKI.js';
43
39
  import { Icon, slotIcon, warnOnce } from './chunk-L6HWACK7.js';
44
40
  import { mergeRefs } from './chunk-7Q46JXSK.js';
45
- import { useLatest, usePosition } from './chunk-WIUGPZOH.js';
41
+ import { focusAfterSelfRemoval, FOCUSABLE, useFocusKeptInList, useLatest, FIELD, ZOOM_KEYS, rovingTabStop, useOverlayLayer, useFocusTrap, useFocusBeforeOpen, rememberOpener, focusInitial, OVERLAY_CLOSE_ATTR, usePopupFocus, usePosition, CONTROL_ANCESTOR, useGridKeyboard, focusAfterRemoval, useNonModalDialog, useReturnFocus } from './chunk-4HJDOZ2M.js';
42
+ export { useGridKeyboard } from './chunk-4HJDOZ2M.js';
46
43
  import { cn, FOCUS_RING, GLASS_SURFACE, FOCUS_INSET, PEER_FOCUS_RING, GLASS_BACKDROP, FOCUS_ROOM, lockBodyScroll, unlockBodyScroll, OVERLAY_SURFACE, GLASS_OVERLAY, ERROR_HAS_FOCUS_RING, FIELD_HAS_FOCUS_RING, GROUP_FOCUS_RING, ERROR_ACTIVE_RING, ACTIVE_RING, ERROR_FOCUS_WITHIN_RING, FIELD_FOCUS_WITHIN_RING, GLASS_DROPDOWN, ERROR_FOCUS_RING, FIELD_FOCUS_RING, atLeastFocusRoom } from './chunk-YL5KD5RC.js';
47
44
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
48
45
  import { forwardRef, useRef, useId, useEffect, useState, createContext, useCallback, useLayoutEffect, useMemo, useContext, isValidElement, memo, useImperativeHandle, useSyncExternalStore, Children, Fragment as Fragment$1, cloneElement, useReducer } from 'react';
@@ -8850,7 +8847,9 @@ function ExpandableDescription({ children, className }) {
8850
8847
  );
8851
8848
  }
8852
8849
  function HorizontalLayout({ items, minItemWidth, className }) {
8853
- return /* @__PURE__ */ jsx("div", { "data-timeline-row": "", className: cn("relative flex items-start overflow-x-auto snap-x", className), children: items.map((item, i) => {
8850
+ const [row, setRow] = useState(null);
8851
+ useKeyboardScroll(row, "Timeline", true, false, "x");
8852
+ return /* @__PURE__ */ jsx("div", { ref: setRow, "data-timeline-row": "", className: cn("relative flex items-start overflow-x-auto snap-x", FOCUS_INSET, className), children: items.map((item, i) => {
8854
8853
  const isFirst = i === 0;
8855
8854
  const isLast = i === items.length - 1;
8856
8855
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-1 shrink-0 flex-col items-center snap-start", style: { minWidth: minItemWidth }, children: [
@@ -12281,7 +12280,7 @@ function useScrollTrack(stopTab, enabled) {
12281
12280
  };
12282
12281
  }
12283
12282
  var SCROLL_TRACK = "overflow-x-auto overflow-y-hidden [scrollbar-width:none] [&::-webkit-scrollbar]:hidden";
12284
- function TabStrip({ overflow, fullWidth, track, className, children }) {
12283
+ function TabStrip({ overflow, fullWidth, track, label, className, children }) {
12285
12284
  const scrolls = overflow === "scroll";
12286
12285
  return /* @__PURE__ */ jsx("div", { className: cn("min-w-0 max-w-full", fullWidth && "w-full", className), children: /* @__PURE__ */ jsx(
12287
12286
  "div",
@@ -12289,7 +12288,7 @@ function TabStrip({ overflow, fullWidth, track, className, children }) {
12289
12288
  ...scrolls ? track : {},
12290
12289
  "data-gs-clip": scrolls ? void 0 : "",
12291
12290
  className: cn("relative -m-[4px] p-[4px] scroll-px-[4px]", scrolls ? SCROLL_TRACK : "overflow-hidden"),
12292
- children: /* @__PURE__ */ jsx("div", { role: "tablist", className: cn(trackClasses("horizontal"), scrolls ? "w-max min-w-full" : "w-full"), children })
12291
+ children: /* @__PURE__ */ jsx("div", { role: "tablist", "aria-label": label, className: cn(trackClasses("horizontal"), scrolls ? "w-max min-w-full" : "w-full"), children })
12293
12292
  }
12294
12293
  ) });
12295
12294
  }
@@ -12450,7 +12449,7 @@ function TabButton({
12450
12449
  return btn;
12451
12450
  }
12452
12451
  function TabsList({ children, className }) {
12453
- const { orientation, fullWidth, overflow, stopTab } = useTabsCtx();
12452
+ const { orientation, fullWidth, overflow, stopTab, label } = useTabsCtx();
12454
12453
  const track = useScrollTrack(stopTab, orientation === "horizontal" && overflow === "scroll");
12455
12454
  if (orientation === "vertical") {
12456
12455
  return /* @__PURE__ */ jsx(
@@ -12458,12 +12457,13 @@ function TabsList({ children, className }) {
12458
12457
  {
12459
12458
  role: "tablist",
12460
12459
  "aria-orientation": "vertical",
12460
+ "aria-label": label,
12461
12461
  className: cn(trackClasses("vertical"), className),
12462
12462
  children
12463
12463
  }
12464
12464
  );
12465
12465
  }
12466
- return /* @__PURE__ */ jsx(TabStrip, { overflow, fullWidth, track, className, children });
12466
+ return /* @__PURE__ */ jsx(TabStrip, { overflow, fullWidth, track, label, className, children });
12467
12467
  }
12468
12468
  function TabsTrigger({ value, children, count, icon, disabled, truncate, className }) {
12469
12469
  const { activeTab, onTabChange, orientation, fullWidth, overflow, activation, stopTab, setFocusedTab } = useTabsCtx();
@@ -12510,6 +12510,7 @@ function TabsRoot(props) {
12510
12510
  fullWidth = false,
12511
12511
  overflow = "scroll",
12512
12512
  activation = "automatic",
12513
+ "aria-label": ariaLabel,
12513
12514
  className
12514
12515
  } = props;
12515
12516
  const isMobile = useBreakpoint("md");
@@ -12533,6 +12534,7 @@ function TabsRoot(props) {
12533
12534
  options: tabs.filter((t) => !t.disabled).map((t) => ({ id: t.id, label: t.label, group: t.group })),
12534
12535
  value: activeTab,
12535
12536
  onChange: (v) => onTabChange(v),
12537
+ "aria-label": ariaLabel ?? "Contents",
12536
12538
  className
12537
12539
  }
12538
12540
  ) })
@@ -12544,6 +12546,7 @@ function TabsRoot(props) {
12544
12546
  {
12545
12547
  role: "tablist",
12546
12548
  "aria-orientation": "vertical",
12549
+ "aria-label": ariaLabel,
12547
12550
  className: cn(trackClasses("vertical"), className),
12548
12551
  children: tabs.map((tab, i) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
12549
12552
  tab.group && tab.group !== tabs[i - 1]?.group && /* @__PURE__ */ jsx(
@@ -12562,9 +12565,9 @@ function TabsRoot(props) {
12562
12565
  }
12563
12566
  );
12564
12567
  }
12565
- return /* @__PURE__ */ jsx(TabStrip, { overflow: arrayOverflow, fullWidth, track, className, children: tabs.map((tab, i) => /* @__PURE__ */ jsx(TabButton, { hasPanel: false, ...tab, orientation: effectiveOrientation, activeTab, onTabChange, fullWidth, isTabStop: i === stopIndex, setFocusedTab, onKeyDown: (e) => handleTabKeyDown(e, tab.id, () => tabs, effectiveOrientation, select) }, tab.id)) });
12568
+ return /* @__PURE__ */ jsx(TabStrip, { overflow: arrayOverflow, fullWidth, track, label: ariaLabel, className, children: tabs.map((tab, i) => /* @__PURE__ */ jsx(TabButton, { hasPanel: false, ...tab, orientation: effectiveOrientation, activeTab, onTabChange, fullWidth, isTabStop: i === stopIndex, setFocusedTab, onKeyDown: (e) => handleTabKeyDown(e, tab.id, () => tabs, effectiveOrientation, select) }, tab.id)) });
12566
12569
  }
12567
- return /* @__PURE__ */ jsx(TabsContext.Provider, { value: { activeTab, onTabChange, orientation: effectiveOrientation, fullWidth, overflow, activation, stopTab, setFocusedTab }, children: /* @__PURE__ */ jsx("div", { className, children: props.children }) });
12570
+ return /* @__PURE__ */ jsx(TabsContext.Provider, { value: { activeTab, onTabChange, orientation: effectiveOrientation, fullWidth, overflow, activation, stopTab, setFocusedTab, label: ariaLabel }, children: /* @__PURE__ */ jsx("div", { className, children: props.children }) });
12568
12571
  }
12569
12572
  var Tabs = Object.assign(TabsRoot, {
12570
12573
  List: TabsList,
@@ -12614,7 +12617,7 @@ function SettingsLayout({
12614
12617
  const stickyTop = shell ? "var(--ds-sticky-offset, 0px)" : "calc(var(--ds-navbar-height) + var(--ds-sticky-offset, 0px))";
12615
12618
  if (layout === "tabs") {
12616
12619
  return /* @__PURE__ */ jsxs("div", { ref: rootRef, "data-settings-layout": "tabs", className: cn("flex flex-col gap-ds-6", className), children: [
12617
- /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(Tabs, { orientation: "horizontal", mobile: "dropdown", tabs, activeTab: value, onTabChange: onChange }) }),
12620
+ /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(Tabs, { orientation: "horizontal", mobile: "dropdown", tabs, activeTab: value, onTabChange: onChange, "aria-label": ariaLabel }) }),
12618
12621
  /* @__PURE__ */ jsx("div", { "data-settings-panel": "", className: PANEL_CLASSES, style: PANEL_STYLE, children })
12619
12622
  ] });
12620
12623
  }
@@ -12636,7 +12639,7 @@ function SettingsLayout({
12636
12639
  );
12637
12640
  }
12638
12641
  return /* @__PURE__ */ jsxs("div", { ref: rootRef, "data-settings-layout": "sidebar", className: cn("flex flex-row items-start gap-ds-8", className), children: [
12639
- /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, className: "sticky self-start shrink-0", style: { width: `${railWidth}px`, top: stickyTop }, children: /* @__PURE__ */ jsx(Tabs, { orientation: "vertical", tabs, activeTab: value, onTabChange: onChange, className: "w-full" }) }),
12642
+ /* @__PURE__ */ jsx("nav", { "aria-label": ariaLabel, className: "sticky self-start shrink-0", style: { width: `${railWidth}px`, top: stickyTop }, children: /* @__PURE__ */ jsx(Tabs, { orientation: "vertical", tabs, activeTab: value, onTabChange: onChange, "aria-label": ariaLabel, className: "w-full" }) }),
12640
12643
  /* @__PURE__ */ jsx("div", { "data-settings-panel": "", className: cn("flex-1", PANEL_CLASSES), style: PANEL_STYLE, children })
12641
12644
  ] });
12642
12645
  }
@@ -12842,11 +12845,12 @@ function ScrollArea({
12842
12845
  className,
12843
12846
  orientation = "vertical",
12844
12847
  maxHeight,
12845
- maxWidth
12848
+ maxWidth,
12849
+ "aria-label": ariaLabel = "Scrollable content"
12846
12850
  }) {
12847
12851
  const viewportRef = useRef(null);
12848
12852
  const [viewport, setViewport] = useState(null);
12849
- useRevealFocus(viewport);
12853
+ useKeyboardScroll(viewport, ariaLabel, true, false, orientation === "horizontal" ? "x" : orientation === "both" ? "both" : "y");
12850
12854
  const viewportRefs = useCallback((node) => {
12851
12855
  viewportRef.current = node;
12852
12856
  setViewport(node);
@@ -12941,7 +12945,9 @@ function ScrollArea({
12941
12945
  ref: viewportRefs,
12942
12946
  onScroll: updateThumbs,
12943
12947
  className: cn(
12944
- "h-full w-full scroll-p-[4px]",
12948
+ // the frame's corners, so the inset ring follows them rather than being cut by them (as the Table's region)
12949
+ "h-full w-full scroll-p-[4px] rounded-[inherit]",
12950
+ FOCUS_INSET,
12945
12951
  orientation === "vertical" && "overflow-y-auto overflow-x-hidden",
12946
12952
  orientation === "horizontal" && "overflow-x-auto overflow-y-hidden",
12947
12953
  orientation === "both" && "overflow-auto",