@dxos/react-ui 0.7.5-main.9d2a38b → 0.7.5-main.ff8607b

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 (34) hide show
  1. package/dist/lib/browser/index.mjs +75 -76
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +76 -76
  5. package/dist/lib/node/index.cjs.map +3 -3
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +75 -76
  8. package/dist/lib/node-esm/index.mjs.map +3 -3
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/components/Avatars/Avatar.d.ts +5 -9
  11. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  12. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +1 -2
  13. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  14. package/dist/types/src/components/Buttons/IconButton.d.ts +2 -0
  15. package/dist/types/src/components/Buttons/IconButton.d.ts.map +1 -1
  16. package/dist/types/src/components/Lists/ListDropIndicator.d.ts +3 -1
  17. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +1 -1
  18. package/dist/types/src/components/Main/Main.d.ts +35 -22
  19. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  20. package/dist/types/src/components/Main/Main.stories.d.ts +1 -1
  21. package/dist/types/src/components/Menus/DropdownMenu.d.ts +2 -6
  22. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
  23. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
  24. package/dist/types/src/components/Tag/Tag.stories.d.ts +12 -5
  25. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  26. package/package.json +42 -42
  27. package/src/components/Avatars/Avatar.tsx +3 -6
  28. package/src/components/Buttons/IconButton.tsx +4 -3
  29. package/src/components/Input/Input.tsx +1 -1
  30. package/src/components/Lists/ListDropIndicator.tsx +15 -7
  31. package/src/components/Main/Main.stories.tsx +1 -1
  32. package/src/components/Main/Main.tsx +78 -72
  33. package/src/components/Tag/Tag.stories.tsx +20 -31
  34. package/src/components/Tag/Tag.tsx +15 -6
@@ -657,12 +657,15 @@ var Tooltip = {
657
657
  };
658
658
 
659
659
  // packages/ui/react-ui/src/components/Buttons/IconButton.tsx
660
- var IconOnlyButton = /* @__PURE__ */ forwardRef9(({ tooltipPortal = true, tooltipZIndex: zIndex, suppressNextTooltip, ...props }, forwardedRef) => {
660
+ var IconOnlyButton = /* @__PURE__ */ forwardRef9(({ tooltipPortal = true, tooltipZIndex: zIndex, tooltipSide, suppressNextTooltip, ...props }, forwardedRef) => {
661
661
  const [triggerTooltipOpen, setTriggerTooltipOpen] = useState4(false);
662
- const content = /* @__PURE__ */ React10.createElement(Tooltip.Content, zIndex && {
663
- style: {
664
- zIndex
665
- }
662
+ const content = /* @__PURE__ */ React10.createElement(Tooltip.Content, {
663
+ ...zIndex && {
664
+ style: {
665
+ zIndex
666
+ }
667
+ },
668
+ side: tooltipSide
666
669
  }, props.label, /* @__PURE__ */ React10.createElement(Tooltip.Arrow, null));
667
670
  return /* @__PURE__ */ React10.createElement(Tooltip.Root, {
668
671
  open: triggerTooltipOpen,
@@ -1668,7 +1671,7 @@ var Switch = /* @__PURE__ */ forwardRef16(({ __inputScope, checked: propsChecked
1668
1671
  const { id, validationValence, descriptionId, errorMessageId } = useInputContext(INPUT_NAME, __inputScope);
1669
1672
  return /* @__PURE__ */ React22.createElement("input", {
1670
1673
  type: "checkbox",
1671
- className: "ch-checkbox--switch ch-focus-ring",
1674
+ className: "dx-checkbox--switch dx-focus-ring",
1672
1675
  checked,
1673
1676
  onChange: (event) => {
1674
1677
  onCheckedChange(event.target.checked);
@@ -1711,8 +1714,8 @@ var edgeToOrientationMap = {
1711
1714
  right: "vertical"
1712
1715
  };
1713
1716
  var orientationStyles = {
1714
- horizontal: "h-[--line-thickness] left-[--terminal-radius] right-0 before:left-[--negative-terminal-size]",
1715
- vertical: "w-[--line-thickness] top-[--terminal-radius] bottom-0 before:top-[--negative-terminal-size]"
1717
+ horizontal: "h-[--line-thickness] left-[calc(var(--line-inset)+var(--terminal-radius))] right-[--line-inset] before:left-[--terminal-inset]",
1718
+ vertical: "w-[--line-thickness] top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-[--line-inset] before:top-[--terminal-inset]"
1716
1719
  };
1717
1720
  var edgeStyles = {
1718
1721
  top: "top-[--line-offset] before:top-[--offset-terminal]",
@@ -1723,17 +1726,17 @@ var edgeStyles = {
1723
1726
  var strokeSize = 2;
1724
1727
  var terminalSize = 8;
1725
1728
  var offsetToAlignTerminalWithLine = (strokeSize - terminalSize) / 2;
1726
- var ListDropIndicator = ({ edge, gap = 0 }) => {
1727
- const lineOffset = `calc(-0.5 * (${gap}px + ${strokeSize}px))`;
1729
+ var ListDropIndicator = ({ edge, gap = 0, lineInset = 0, terminalInset = lineInset - terminalSize }) => {
1728
1730
  const orientation = edgeToOrientationMap[edge];
1729
1731
  return /* @__PURE__ */ React23.createElement("div", {
1730
1732
  role: "none",
1731
1733
  style: {
1732
1734
  "--line-thickness": `${strokeSize}px`,
1733
- "--line-offset": `${lineOffset}`,
1735
+ "--line-offset": `calc(-0.5 * (${gap}px + ${strokeSize}px))`,
1736
+ "--line-inset": `${lineInset}px`,
1734
1737
  "--terminal-size": `${terminalSize}px`,
1735
1738
  "--terminal-radius": `${terminalSize / 2}px`,
1736
- "--negative-terminal-size": `-${terminalSize}px`,
1739
+ "--terminal-inset": `${terminalInset}px`,
1737
1740
  "--offset-terminal": `${offsetToAlignTerminalWithLine}px`
1738
1741
  },
1739
1742
  className: `absolute z-10 pointer-events-none bg-accentSurface before:content-[''] before:w-[--terminal-size] before:h-[--terminal-size] box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accentSurface before:rounded-full ${orientationStyles[orientation]} ${edgeStyles[edge]}`
@@ -2157,68 +2160,62 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
2157
2160
  };
2158
2161
  var [MainProvider, useMainContext] = createContext10(MAIN_NAME, {
2159
2162
  resizing: false,
2160
- navigationSidebarOpen: false,
2161
- setNavigationSidebarOpen: (nextOpen) => {
2163
+ navigationSidebarState: "closed",
2164
+ setNavigationSidebarState: (nextState) => {
2162
2165
  log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2163
2166
  F: __dxlog_file,
2164
- L: 79,
2167
+ L: 81,
2165
2168
  S: void 0,
2166
2169
  C: (f, a) => f(...a)
2167
2170
  });
2168
2171
  },
2169
- complementarySidebarOpen: false,
2170
- setComplementarySidebarOpen: (nextOpen) => {
2172
+ complementarySidebarState: "closed",
2173
+ setComplementarySidebarState: (nextState) => {
2171
2174
  log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2172
2175
  F: __dxlog_file,
2173
- L: 84,
2176
+ L: 86,
2174
2177
  S: void 0,
2175
2178
  C: (f, a) => f(...a)
2176
2179
  });
2177
2180
  }
2178
2181
  });
2179
2182
  var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
2180
- const { setNavigationSidebarOpen, navigationSidebarOpen, setComplementarySidebarOpen, complementarySidebarOpen } = useMainContext(consumerName);
2183
+ const { setNavigationSidebarState, navigationSidebarState, setComplementarySidebarState, complementarySidebarState } = useMainContext(consumerName);
2181
2184
  return {
2182
- navigationSidebarOpen,
2183
- setNavigationSidebarOpen,
2184
- toggleNavigationSidebar: useCallback7(() => setNavigationSidebarOpen(!navigationSidebarOpen), [
2185
- navigationSidebarOpen,
2186
- setNavigationSidebarOpen
2187
- ]),
2188
- openNavigationSidebar: useCallback7(() => setNavigationSidebarOpen(true), [
2189
- setNavigationSidebarOpen
2190
- ]),
2191
- closeNavigationSidebar: useCallback7(() => setNavigationSidebarOpen(false), [
2192
- setNavigationSidebarOpen
2185
+ navigationSidebarState,
2186
+ setNavigationSidebarState,
2187
+ toggleNavigationSidebar: useCallback7(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2188
+ navigationSidebarState,
2189
+ setNavigationSidebarState
2193
2190
  ]),
2194
- complementarySidebarOpen,
2195
- setComplementarySidebarOpen,
2196
- toggleComplementarySidebar: useCallback7(() => setComplementarySidebarOpen(!complementarySidebarOpen), [
2197
- complementarySidebarOpen,
2198
- setComplementarySidebarOpen
2191
+ openNavigationSidebar: useCallback7(() => setNavigationSidebarState("expanded"), []),
2192
+ collapseNavigationSidebar: useCallback7(() => setNavigationSidebarState("collapsed"), []),
2193
+ closeNavigationSidebar: useCallback7(() => setNavigationSidebarState("closed"), []),
2194
+ complementarySidebarState,
2195
+ setComplementarySidebarState,
2196
+ toggleComplementarySidebar: useCallback7(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2197
+ complementarySidebarState,
2198
+ setComplementarySidebarState
2199
2199
  ]),
2200
- openComplementarySidebar: useCallback7(() => setComplementarySidebarOpen(true), [
2201
- setComplementarySidebarOpen
2202
- ]),
2203
- closeComplementarySidebar: useCallback7(() => setComplementarySidebarOpen(false), [
2204
- setComplementarySidebarOpen
2205
- ])
2200
+ openComplementarySidebar: useCallback7(() => setComplementarySidebarState("expanded"), []),
2201
+ collapseComplementarySidebar: useCallback7(() => setComplementarySidebarState("collapsed"), []),
2202
+ closeComplementarySidebar: useCallback7(() => setComplementarySidebarState("closed"), [])
2206
2203
  };
2207
2204
  };
2208
2205
  var resizeDebounce = 3e3;
2209
- var MainRoot = ({ navigationSidebarOpen: propsNavigationSidebarOpen, defaultNavigationSidebarOpen, onNavigationSidebarOpenChange, complementarySidebarOpen: propsComplementarySidebarOpen, defaultComplementarySidebarOpen, onComplementarySidebarOpenChange, children, ...props }) => {
2206
+ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState, onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState, onComplementarySidebarStateChange, children, ...props }) => {
2210
2207
  const [isLg] = useMediaQuery("lg", {
2211
2208
  ssr: false
2212
2209
  });
2213
- const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = useControllableState4({
2214
- prop: propsNavigationSidebarOpen,
2215
- defaultProp: defaultNavigationSidebarOpen,
2216
- onChange: onNavigationSidebarOpenChange
2210
+ const [navigationSidebarState = isLg ? "expanded" : "collapsed", setNavigationSidebarState] = useControllableState4({
2211
+ prop: propsNavigationSidebarState,
2212
+ defaultProp: defaultNavigationSidebarState,
2213
+ onChange: onNavigationSidebarStateChange
2217
2214
  });
2218
- const [complementarySidebarOpen = false, setComplementarySidebarOpen] = useControllableState4({
2219
- prop: propsComplementarySidebarOpen,
2220
- defaultProp: defaultComplementarySidebarOpen,
2221
- onChange: onComplementarySidebarOpenChange
2215
+ const [complementarySidebarState = isLg ? "expanded" : "collapsed", setComplementarySidebarState] = useControllableState4({
2216
+ prop: propsComplementarySidebarState,
2217
+ defaultProp: defaultComplementarySidebarState,
2218
+ onChange: onComplementarySidebarStateChange
2222
2219
  });
2223
2220
  const [resizing, setResizing] = useState8(false);
2224
2221
  const resizeInterval = useRef2(null);
@@ -2240,10 +2237,10 @@ var MainRoot = ({ navigationSidebarOpen: propsNavigationSidebarOpen, defaultNavi
2240
2237
  ]);
2241
2238
  return /* @__PURE__ */ React28.createElement(MainProvider, {
2242
2239
  ...props,
2243
- navigationSidebarOpen,
2244
- setNavigationSidebarOpen,
2245
- complementarySidebarOpen,
2246
- setComplementarySidebarOpen,
2240
+ navigationSidebarState,
2241
+ setNavigationSidebarState,
2242
+ complementarySidebarState,
2243
+ setComplementarySidebarState,
2247
2244
  resizing
2248
2245
  }, children);
2249
2246
  };
@@ -2251,7 +2248,7 @@ MainRoot.displayName = MAIN_ROOT_NAME;
2251
2248
  var handleOpenAutoFocus = (event) => {
2252
2249
  !document.body.hasAttribute("data-is-keyboard") && event.preventDefault();
2253
2250
  };
2254
- var MainSidebar = /* @__PURE__ */ forwardRef20(({ classNames, children, swipeToDismiss, onOpenAutoFocus, open, resizing, setOpen, side, ...props }, forwardedRef) => {
2251
+ var MainSidebar = /* @__PURE__ */ forwardRef20(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, ...props }, forwardedRef) => {
2255
2252
  const [isLg] = useMediaQuery("lg", {
2256
2253
  ssr: false
2257
2254
  });
@@ -2259,7 +2256,7 @@ var MainSidebar = /* @__PURE__ */ forwardRef20(({ classNames, children, swipeToD
2259
2256
  const ref = useForwardedRef(forwardedRef);
2260
2257
  const noopRef = useRef2(null);
2261
2258
  useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
2262
- onDismiss: () => setOpen(false)
2259
+ onDismiss: () => onStateChange?.("closed")
2263
2260
  });
2264
2261
  const handleKeyDown = useCallback7((event) => {
2265
2262
  if (event.key === "Escape") {
@@ -2271,7 +2268,7 @@ var MainSidebar = /* @__PURE__ */ forwardRef20(({ classNames, children, swipeToD
2271
2268
  ]);
2272
2269
  const Root5 = isLg ? Primitive9.div : DialogContent2;
2273
2270
  return /* @__PURE__ */ React28.createElement(DialogRoot2, {
2274
- open,
2271
+ open: state !== "closed",
2275
2272
  modal: false
2276
2273
  }, /* @__PURE__ */ React28.createElement(Root5, {
2277
2274
  ...!isLg && {
@@ -2281,24 +2278,24 @@ var MainSidebar = /* @__PURE__ */ forwardRef20(({ classNames, children, swipeToD
2281
2278
  },
2282
2279
  ...props,
2283
2280
  "data-side": side === "inline-end" ? "ie" : "is",
2284
- "data-state": open ? "open" : "closed",
2281
+ "data-state": state,
2285
2282
  "data-resizing": resizing ? "true" : "false",
2286
2283
  className: tx("main.sidebar", "main__sidebar", {}, classNames),
2287
2284
  onKeyDown: handleKeyDown,
2288
- ...!open && {
2285
+ ...state === "closed" && {
2289
2286
  inert: "true"
2290
2287
  },
2291
2288
  ref
2292
2289
  }, children));
2293
2290
  });
2294
2291
  var MainNavigationSidebar = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2295
- const { navigationSidebarOpen, setNavigationSidebarOpen, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);
2292
+ const { navigationSidebarState, setNavigationSidebarState, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);
2296
2293
  const mover = useLandmarkMover(props.onKeyDown, "0");
2297
2294
  return /* @__PURE__ */ React28.createElement(MainSidebar, {
2298
2295
  ...mover,
2299
2296
  ...props,
2300
- open: navigationSidebarOpen,
2301
- setOpen: setNavigationSidebarOpen,
2297
+ state: navigationSidebarState,
2298
+ onStateChange: setNavigationSidebarState,
2302
2299
  resizing,
2303
2300
  side: "inline-start",
2304
2301
  ref: forwardedRef
@@ -2306,13 +2303,13 @@ var MainNavigationSidebar = /* @__PURE__ */ forwardRef20((props, forwardedRef) =
2306
2303
  });
2307
2304
  MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
2308
2305
  var MainComplementarySidebar = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2309
- const { complementarySidebarOpen, setComplementarySidebarOpen, resizing } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);
2306
+ const { complementarySidebarState, setComplementarySidebarState, resizing } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);
2310
2307
  const mover = useLandmarkMover(props.onKeyDown, "2");
2311
2308
  return /* @__PURE__ */ React28.createElement(MainSidebar, {
2312
2309
  ...mover,
2313
2310
  ...props,
2314
- open: complementarySidebarOpen,
2315
- setOpen: setComplementarySidebarOpen,
2311
+ state: complementarySidebarState,
2312
+ onStateChange: setComplementarySidebarState,
2316
2313
  resizing,
2317
2314
  side: "inline-end",
2318
2315
  ref: forwardedRef
@@ -2320,7 +2317,7 @@ var MainComplementarySidebar = /* @__PURE__ */ forwardRef20((props, forwardedRef
2320
2317
  });
2321
2318
  MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
2322
2319
  var MainContent = /* @__PURE__ */ forwardRef20(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
2323
- const { navigationSidebarOpen, complementarySidebarOpen } = useMainContext(MAIN_NAME);
2320
+ const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
2324
2321
  const { tx } = useThemeContext();
2325
2322
  const Root5 = asChild ? Slot10 : role ? "div" : "main";
2326
2323
  const mover = useLandmarkMover(props.onKeyDown, "1");
@@ -2330,8 +2327,8 @@ var MainContent = /* @__PURE__ */ forwardRef20(({ asChild, classNames, bounce, h
2330
2327
  ...mover
2331
2328
  },
2332
2329
  ...props,
2333
- "data-sidebar-inline-start-state": navigationSidebarOpen ? "open" : "closed",
2334
- "data-sidebar-inline-end-state": complementarySidebarOpen ? "open" : "closed",
2330
+ "data-sidebar-inline-start-state": navigationSidebarState,
2331
+ "data-sidebar-inline-end-state": complementarySidebarState,
2335
2332
  className: tx("main.content", "main", {
2336
2333
  bounce,
2337
2334
  handlesFocus
@@ -2344,20 +2341,20 @@ var MainOverlay = /* @__PURE__ */ forwardRef20(({ classNames, ...props }, forwar
2344
2341
  const [isLg] = useMediaQuery("lg", {
2345
2342
  ssr: false
2346
2343
  });
2347
- const { navigationSidebarOpen, setNavigationSidebarOpen, complementarySidebarOpen, setComplementarySidebarOpen } = useMainContext(MAIN_NAME);
2344
+ const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
2348
2345
  const { tx } = useThemeContext();
2349
2346
  return /* @__PURE__ */ React28.createElement("div", {
2350
2347
  onClick: () => {
2351
- setNavigationSidebarOpen(false);
2352
- setComplementarySidebarOpen(false);
2348
+ setNavigationSidebarState("collapsed");
2349
+ setComplementarySidebarState("collapsed");
2353
2350
  },
2354
2351
  ...props,
2355
2352
  className: tx("main.overlay", "main__overlay", {
2356
2353
  isLg,
2357
- inlineStartSidebarOpen: navigationSidebarOpen,
2358
- inlineEndSidebarOpen: complementarySidebarOpen
2354
+ inlineStartSidebarOpen: navigationSidebarState,
2355
+ inlineEndSidebarOpen: complementarySidebarState
2359
2356
  }, classNames),
2360
- "data-state": navigationSidebarOpen || complementarySidebarOpen ? "open" : "closed",
2357
+ "data-state": navigationSidebarState === "expanded" || complementarySidebarState === "expanded" ? "open" : "closed",
2361
2358
  "aria-hidden": "true",
2362
2359
  ref: forwardedRef
2363
2360
  });
@@ -2982,14 +2979,15 @@ var Separator4 = /* @__PURE__ */ forwardRef26(({ classNames, orientation = "hori
2982
2979
  import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
2983
2980
  import { Slot as Slot13 } from "@radix-ui/react-slot";
2984
2981
  import React35, { forwardRef as forwardRef27 } from "react";
2985
- var Tag = /* @__PURE__ */ forwardRef27(({ asChild, palette, classNames, ...props }, forwardedRef) => {
2982
+ var Tag = /* @__PURE__ */ forwardRef27(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
2986
2983
  const { tx } = useThemeContext();
2987
2984
  const Root5 = asChild ? Slot13 : Primitive12.span;
2988
2985
  return /* @__PURE__ */ React35.createElement(Root5, {
2989
2986
  ...props,
2990
- className: tx("tag.root", "tag", {
2987
+ className: tx("tag.root", "dx-tag", {
2991
2988
  palette
2992
2989
  }, classNames),
2990
+ "data-hue": palette,
2993
2991
  ref: forwardedRef
2994
2992
  });
2995
2993
  });
@@ -3230,6 +3228,7 @@ export {
3230
3228
  useDropdownMenuContext,
3231
3229
  useDropdownMenuMenuScope,
3232
3230
  useElevationContext,
3231
+ useLandmarkMover,
3233
3232
  useListContext,
3234
3233
  useListItemContext,
3235
3234
  useMainContext,