@dxos/react-ui 0.7.5-labs.e27f9b9 → 0.7.5-labs.f400bbc

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 (99) hide show
  1. package/dist/lib/browser/index.mjs +19 -17
  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 +19 -17
  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 +19 -17
  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 +1 -1
  11. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  12. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +11 -11
  13. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  14. package/dist/types/src/components/Avatars/AvatarGroup.d.ts +1 -1
  15. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +2 -2
  16. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  17. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +3 -3
  18. package/dist/types/src/components/Buttons/Button.stories.d.ts +2 -2
  19. package/dist/types/src/components/Buttons/IconButton.d.ts +1 -0
  20. package/dist/types/src/components/Buttons/IconButton.d.ts.map +1 -1
  21. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +2 -2
  22. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +2 -2
  23. package/dist/types/src/components/Buttons/ToggleGroup.d.ts +4 -4
  24. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +6 -6
  25. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts +1 -1
  26. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  27. package/dist/types/src/components/Clipboard/CopyButton.d.ts +6 -3
  28. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  29. package/dist/types/src/components/Clipboard/index.d.ts +8 -3
  30. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  31. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
  32. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  33. package/dist/types/src/components/Dialogs/AlertDialog.d.ts +1 -1
  34. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +1 -1
  35. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +2 -2
  36. package/dist/types/src/components/Dialogs/Dialog.d.ts +4 -2
  37. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +1 -1
  38. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +2 -2
  39. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
  40. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  41. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  42. package/dist/types/src/components/Input/Input.d.ts +1 -1
  43. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  44. package/dist/types/src/components/Input/Input.stories.d.ts +7 -7
  45. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  46. package/dist/types/src/components/Lists/List.stories.d.ts +5 -5
  47. package/dist/types/src/components/Lists/ListDropIndicator.d.ts +3 -2
  48. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +1 -1
  49. package/dist/types/src/components/Lists/Tree.stories.d.ts +3 -3
  50. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts +1 -2
  51. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +1 -1
  52. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +2 -2
  53. package/dist/types/src/components/Main/Main.d.ts +1 -1
  54. package/dist/types/src/components/Main/Main.stories.d.ts +3 -4
  55. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  56. package/dist/types/src/components/Menus/ContextMenu.d.ts +6 -6
  57. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +8 -8
  58. package/dist/types/src/components/Menus/DropdownMenu.d.ts +1 -1
  59. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +4 -4
  60. package/dist/types/src/components/Message/Message.stories.d.ts +2 -2
  61. package/dist/types/src/components/Popover/Popover.d.ts +1 -1
  62. package/dist/types/src/components/Popover/Popover.stories.d.ts +5 -5
  63. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +5 -5
  64. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +7 -7
  65. package/dist/types/src/components/Select/Select.d.ts +9 -9
  66. package/dist/types/src/components/Select/Select.stories.d.ts +2 -3
  67. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/Separator/Separator.d.ts +1 -1
  69. package/dist/types/src/components/Status/Status.stories.d.ts +3 -3
  70. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  71. package/dist/types/src/components/Tag/Tag.stories.d.ts +2 -2
  72. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
  73. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +2 -2
  74. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  75. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -1
  76. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  77. package/dist/types/src/components/Toast/Toast.d.ts +4 -4
  78. package/dist/types/src/components/Toast/Toast.stories.d.ts +8 -8
  79. package/dist/types/src/components/Toolbar/Toolbar.d.ts +6 -6
  80. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +12 -12
  81. package/dist/types/src/components/Tooltip/Tooltip.d.ts +2 -2
  82. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +4 -4
  83. package/dist/types/src/hooks/useThemeContext.d.ts +1 -1
  84. package/dist/types/src/hooks/useThemeContext.d.ts.map +1 -1
  85. package/dist/types/src/hooks/useTranslationsContext.d.ts +1 -1
  86. package/dist/types/src/playground/Controls.stories.d.ts +2 -3
  87. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  88. package/dist/types/src/playground/Typography.stories.d.ts +2 -3
  89. package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
  90. package/package.json +13 -12
  91. package/src/components/Avatars/Avatar.tsx +2 -7
  92. package/src/components/Buttons/IconButton.tsx +8 -1
  93. package/src/components/Clipboard/CopyButton.tsx +6 -2
  94. package/src/components/Dialogs/AlertDialog.tsx +3 -1
  95. package/src/components/Dialogs/Dialog.stories.tsx +1 -1
  96. package/src/components/Dialogs/Dialog.tsx +9 -4
  97. package/src/components/Icon/Icon.tsx +4 -1
  98. package/src/components/Lists/ListDropIndicator.tsx +15 -7
  99. package/src/components/Tag/Tag.stories.tsx +2 -5
@@ -14,6 +14,7 @@ type IconButtonProps = Omit<ButtonProps, 'children'> &
14
14
  Pick<IconProps, 'icon' | 'size'> & {
15
15
  label: NonNullable<ReactNode>;
16
16
  iconOnly?: boolean;
17
+ noTooltip?: boolean;
17
18
  caretDown?: boolean;
18
19
  // TODO(burdon): Create slots abstraction?
19
20
  iconClassNames?: ThemedClassName<any>['classNames'];
@@ -24,8 +25,14 @@ type IconButtonProps = Omit<ButtonProps, 'children'> &
24
25
  };
25
26
 
26
27
  const IconOnlyButton = forwardRef<HTMLButtonElement, IconButtonProps>(
27
- ({ tooltipPortal = true, tooltipZIndex: zIndex, tooltipSide, suppressNextTooltip, ...props }, forwardedRef) => {
28
+ (
29
+ { noTooltip, tooltipPortal = true, tooltipZIndex: zIndex, tooltipSide, suppressNextTooltip, ...props },
30
+ forwardedRef,
31
+ ) => {
28
32
  const [triggerTooltipOpen, setTriggerTooltipOpen] = useState(false);
33
+ if (noTooltip) {
34
+ return <LabelledIconButton {...props} ref={forwardedRef} />;
35
+ }
29
36
  const content = (
30
37
  <Tooltip.Content {...(zIndex && { style: { zIndex } })} side={tooltipSide}>
31
38
  {props.label}
@@ -44,11 +44,15 @@ export const CopyButton = ({ value, classNames, iconProps, ...props }: CopyButto
44
44
  );
45
45
  };
46
46
 
47
- export const CopyButtonIconOnly = ({ value, classNames, iconProps, variant, ...props }: CopyButtonProps) => {
47
+ type CopyButtonIconOnlyProps = CopyButtonProps & {
48
+ label?: string;
49
+ };
50
+
51
+ export const CopyButtonIconOnly = ({ value, classNames, iconProps, variant, ...props }: CopyButtonIconOnlyProps) => {
48
52
  const { t } = useTranslation('os');
49
53
  const { textValue, setTextValue } = useClipboard();
50
54
  const isCopied = textValue === value;
51
- const label = isCopied ? t('copy success label') : t('copy label');
55
+ const label = isCopied ? t('copy success label') : props.label ?? t('copy label');
52
56
  const [open, setOpen] = useState(false);
53
57
  return (
54
58
  <Tooltip.Root delayDuration={1500} open={open} onOpenChange={setOpen}>
@@ -95,7 +95,9 @@ const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLa
95
95
  },
96
96
  );
97
97
 
98
- type AlertDialogOverlayProps = ThemedClassName<AlertDialogOverlayPrimitiveProps> & { blockAlign?: 'center' | 'start' };
98
+ type AlertDialogOverlayProps = ThemedClassName<AlertDialogOverlayPrimitiveProps> & {
99
+ blockAlign?: 'center' | 'start' | 'end';
100
+ };
99
101
 
100
102
  const AlertDialogOverlay: ForwardRefExoticComponent<AlertDialogOverlayProps> = forwardRef<
101
103
  HTMLDivElement,
@@ -59,7 +59,7 @@ export const Default = {
59
59
  argTypes: {
60
60
  blockAlign: {
61
61
  type: 'select',
62
- options: ['center', 'start'],
62
+ options: ['center', 'start', 'end'],
63
63
  },
64
64
  },
65
65
  };
@@ -85,7 +85,7 @@ const [OverlayLayoutProvider, useOverlayLayoutContext] = createContext<OverlayLa
85
85
  inOverlayLayout: false,
86
86
  });
87
87
 
88
- type DialogOverlayProps = ThemedClassName<DialogOverlayPrimitiveProps> & { blockAlign?: 'center' | 'start' };
88
+ type DialogOverlayProps = ThemedClassName<DialogOverlayPrimitiveProps> & { blockAlign?: 'center' | 'start' | 'end' };
89
89
 
90
90
  const DialogOverlay: ForwardRefExoticComponent<DialogOverlayProps> = forwardRef<HTMLDivElement, DialogOverlayProps>(
91
91
  ({ classNames, children, blockAlign, ...props }, forwardedRef) => {
@@ -106,17 +106,22 @@ const DialogOverlay: ForwardRefExoticComponent<DialogOverlayProps> = forwardRef<
106
106
 
107
107
  DialogOverlay.displayName = DIALOG_OVERLAY_NAME;
108
108
 
109
- type DialogContentProps = ThemedClassName<DialogContentPrimitiveProps>;
109
+ type DialogContentProps = ThemedClassName<DialogContentPrimitiveProps> & { inOverlayLayout?: boolean };
110
110
 
111
111
  const DialogContent: ForwardRefExoticComponent<DialogContentProps> = forwardRef<HTMLDivElement, DialogContentProps>(
112
- ({ classNames, children, ...props }, forwardedRef) => {
112
+ ({ classNames, children, inOverlayLayout: propsInOverlayLayout, ...props }, forwardedRef) => {
113
113
  const { tx } = useThemeContext();
114
114
  const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);
115
115
 
116
116
  return (
117
117
  <DialogContentPrimitive
118
118
  {...props}
119
- className={tx('dialog.content', 'dialog', { inOverlayLayout }, classNames)}
119
+ className={tx(
120
+ 'dialog.content',
121
+ 'dialog',
122
+ { inOverlayLayout: propsInOverlayLayout || inOverlayLayout },
123
+ classNames,
124
+ )}
120
125
  ref={forwardedRef}
121
126
  >
122
127
  {children}
@@ -12,7 +12,10 @@ import { type ThemedClassName } from '../../util';
12
12
 
13
13
  const ICONS_URL = '/icons.svg';
14
14
 
15
- export type IconProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.svg>> & { icon: string; size?: Size };
15
+ export type IconProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.svg>> & {
16
+ icon: string;
17
+ size?: Size;
18
+ };
16
19
 
17
20
  export const Icon = memo(
18
21
  forwardRef<SVGSVGElement, IconProps>(({ icon, classNames, size, ...props }, forwardedRef) => {
@@ -15,8 +15,10 @@ const edgeToOrientationMap: Record<Edge, Orientation> = {
15
15
  };
16
16
 
17
17
  const orientationStyles: Record<Orientation, HTMLAttributes<HTMLElement>['className']> = {
18
- horizontal: 'h-[--line-thickness] left-[--terminal-radius] right-0 before:left-[--negative-terminal-size]',
19
- vertical: 'w-[--line-thickness] top-[--terminal-radius] bottom-0 before:top-[--negative-terminal-size]',
18
+ horizontal:
19
+ 'h-[--line-thickness] left-[calc(var(--line-inset)+var(--terminal-radius))] right-[--line-inset] before:left-[--terminal-inset]',
20
+ vertical:
21
+ 'w-[--line-thickness] top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-[--line-inset] before:top-[--terminal-inset]',
20
22
  };
21
23
 
22
24
  const edgeStyles: Record<Edge, HTMLAttributes<HTMLElement>['className']> = {
@@ -33,14 +35,19 @@ const offsetToAlignTerminalWithLine = (strokeSize - terminalSize) / 2;
33
35
  export type DropIndicatorProps = {
34
36
  edge: Edge;
35
37
  gap?: number;
38
+ terminalInset?: number;
39
+ lineInset?: number;
36
40
  };
37
41
 
38
42
  /**
39
43
  * This is a tailwind port of `@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box`
40
44
  */
41
- export const ListDropIndicator = ({ edge, gap = 0 }: DropIndicatorProps) => {
42
- const lineOffset = `calc(-0.5 * (${gap}px + ${strokeSize}px))`;
43
-
45
+ export const ListDropIndicator = ({
46
+ edge,
47
+ gap = 0,
48
+ lineInset = 0,
49
+ terminalInset = lineInset - terminalSize,
50
+ }: DropIndicatorProps) => {
44
51
  const orientation = edgeToOrientationMap[edge];
45
52
 
46
53
  return (
@@ -49,10 +56,11 @@ export const ListDropIndicator = ({ edge, gap = 0 }: DropIndicatorProps) => {
49
56
  style={
50
57
  {
51
58
  '--line-thickness': `${strokeSize}px`,
52
- '--line-offset': `${lineOffset}`,
59
+ '--line-offset': `calc(-0.5 * (${gap}px + ${strokeSize}px))`,
60
+ '--line-inset': `${lineInset}px`,
53
61
  '--terminal-size': `${terminalSize}px`,
54
62
  '--terminal-radius': `${terminalSize / 2}px`,
55
- '--negative-terminal-size': `-${terminalSize}px`,
63
+ '--terminal-inset': `${terminalInset}px`,
56
64
  '--offset-terminal': `${offsetToAlignTerminalWithLine}px`,
57
65
  } as CSSProperties
58
66
  }
@@ -3,17 +3,14 @@
3
3
  //
4
4
  import React from 'react';
5
5
 
6
- import { hueTokenThemes } from '@dxos/react-ui-theme';
6
+ import { hues } from '@dxos/react-ui-theme';
7
7
  import '@dxos-theme';
8
8
  import { type ChromaticPalette, type MessageValence } from '@dxos/react-ui-types';
9
9
 
10
10
  import { Tag } from './Tag';
11
11
  import { withTheme } from '../../testing';
12
12
 
13
- const palettes = ['neutral', 'success', 'info', 'warning', 'error', ...Object.keys(hueTokenThemes)] as (
14
- | ChromaticPalette
15
- | MessageValence
16
- )[];
13
+ const palettes = ['neutral', 'success', 'info', 'warning', 'error', ...hues] as (ChromaticPalette | MessageValence)[];
17
14
 
18
15
  export default {
19
16
  title: 'ui/react-ui-core/Tag',