@dxos/react-ui-stack 0.8.4-main.1f223c7 → 0.8.4-main.21d9917

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 (112) hide show
  1. package/dist/lib/browser/index.mjs +923 -54
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/browser/playwright/index.mjs +10 -23
  5. package/dist/lib/browser/playwright/index.mjs.map +2 -2
  6. package/dist/lib/node-esm/index.mjs +924 -54
  7. package/dist/lib/node-esm/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/meta.json +1 -1
  9. package/dist/lib/node-esm/playwright/index.mjs +10 -23
  10. package/dist/lib/node-esm/playwright/index.mjs.map +2 -2
  11. package/dist/types/src/{exemplars → components}/CardStack/CardStack.d.ts +17 -13
  12. package/dist/types/src/components/CardStack/CardStack.d.ts.map +1 -0
  13. package/dist/types/src/{exemplars → components}/CardStack/CardStack.stories.d.ts +3 -1
  14. package/dist/types/src/components/CardStack/CardStack.stories.d.ts.map +1 -0
  15. package/dist/types/src/{exemplars → components}/CardStack/CardStackDragPreview.d.ts +1 -1
  16. package/dist/types/src/components/CardStack/CardStackDragPreview.d.ts.map +1 -0
  17. package/dist/types/src/components/CardStack/index.d.ts.map +1 -0
  18. package/dist/types/src/components/Stack/Stack.d.ts +7 -6
  19. package/dist/types/src/components/Stack/Stack.d.ts.map +1 -1
  20. package/dist/types/src/components/Stack/Stack.stories.d.ts +1 -2
  21. package/dist/types/src/components/Stack/Stack.stories.d.ts.map +1 -1
  22. package/dist/types/src/components/StackContext.d.ts +1 -1
  23. package/dist/types/src/components/StackContext.d.ts.map +1 -1
  24. package/dist/types/src/components/StackItem/StackItem.d.ts +7 -10
  25. package/dist/types/src/components/StackItem/StackItem.d.ts.map +1 -1
  26. package/dist/types/src/components/StackItem/StackItem.stories.d.ts +0 -1
  27. package/dist/types/src/components/StackItem/StackItem.stories.d.ts.map +1 -1
  28. package/dist/types/src/components/StackItem/StackItemContent.d.ts +4 -37
  29. package/dist/types/src/components/StackItem/StackItemContent.d.ts.map +1 -1
  30. package/dist/types/src/components/StackItem/StackItemHeading.d.ts.map +1 -1
  31. package/dist/types/src/components/StackItem/StackItemSigil.d.ts +2 -2
  32. package/dist/types/src/components/StackItem/StackItemSigil.d.ts.map +1 -1
  33. package/dist/types/src/components/deprecated/LayoutControls.d.ts +3 -0
  34. package/dist/types/src/components/deprecated/LayoutControls.d.ts.map +1 -1
  35. package/dist/types/src/components/index.d.ts +2 -2
  36. package/dist/types/src/components/index.d.ts.map +1 -1
  37. package/dist/types/src/components/{defs.d.ts → types.d.ts} +1 -1
  38. package/dist/types/src/components/types.d.ts.map +1 -0
  39. package/dist/types/src/hooks/useStackDropForElements.d.ts +8 -6
  40. package/dist/types/src/hooks/useStackDropForElements.d.ts.map +1 -1
  41. package/dist/types/src/index.d.ts +0 -1
  42. package/dist/types/src/index.d.ts.map +1 -1
  43. package/dist/types/src/translations.d.ts +2 -2
  44. package/dist/types/src/translations.d.ts.map +1 -1
  45. package/dist/types/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +41 -38
  47. package/src/{exemplars → components}/CardStack/CardStack.stories.tsx +14 -13
  48. package/src/{exemplars → components}/CardStack/CardStack.tsx +111 -54
  49. package/src/{exemplars → components}/CardStack/CardStackDragPreview.tsx +3 -3
  50. package/src/components/Stack/Stack.stories.tsx +3 -5
  51. package/src/components/Stack/Stack.tsx +97 -40
  52. package/src/components/StackContext.tsx +1 -1
  53. package/src/components/StackItem/StackItem.stories.tsx +6 -6
  54. package/src/components/StackItem/StackItem.tsx +35 -16
  55. package/src/components/StackItem/StackItemContent.tsx +17 -39
  56. package/src/components/StackItem/StackItemHeading.tsx +2 -6
  57. package/src/components/StackItem/StackItemSigil.tsx +3 -3
  58. package/src/components/deprecated/LayoutControls.tsx +3 -0
  59. package/src/components/index.ts +2 -2
  60. package/src/hooks/useStackDropForElements.ts +58 -44
  61. package/src/index.ts +0 -3
  62. package/src/playwright/playwright.config.ts +1 -1
  63. package/src/translations.ts +1 -1
  64. package/dist/lib/browser/chunk-3V2YUQK5.mjs +0 -1375
  65. package/dist/lib/browser/chunk-3V2YUQK5.mjs.map +0 -7
  66. package/dist/lib/browser/testing/index.mjs +0 -31
  67. package/dist/lib/browser/testing/index.mjs.map +0 -7
  68. package/dist/lib/node-esm/chunk-HE3BRF7A.mjs +0 -1377
  69. package/dist/lib/node-esm/chunk-HE3BRF7A.mjs.map +0 -7
  70. package/dist/lib/node-esm/testing/index.mjs +0 -32
  71. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  72. package/dist/types/src/components/Image/Image.d.ts +0 -11
  73. package/dist/types/src/components/Image/Image.d.ts.map +0 -1
  74. package/dist/types/src/components/Image/Image.stories.d.ts +0 -31
  75. package/dist/types/src/components/Image/Image.stories.d.ts.map +0 -1
  76. package/dist/types/src/components/Image/index.d.ts +0 -2
  77. package/dist/types/src/components/Image/index.d.ts.map +0 -1
  78. package/dist/types/src/components/defs.d.ts.map +0 -1
  79. package/dist/types/src/exemplars/Card/Card.d.ts +0 -58
  80. package/dist/types/src/exemplars/Card/Card.d.ts.map +0 -1
  81. package/dist/types/src/exemplars/Card/Card.stories.d.ts +0 -44
  82. package/dist/types/src/exemplars/Card/Card.stories.d.ts.map +0 -1
  83. package/dist/types/src/exemplars/Card/CardDragPreview.d.ts +0 -6
  84. package/dist/types/src/exemplars/Card/CardDragPreview.d.ts.map +0 -1
  85. package/dist/types/src/exemplars/Card/fragments.d.ts +0 -13
  86. package/dist/types/src/exemplars/Card/fragments.d.ts.map +0 -1
  87. package/dist/types/src/exemplars/Card/index.d.ts +0 -4
  88. package/dist/types/src/exemplars/Card/index.d.ts.map +0 -1
  89. package/dist/types/src/exemplars/CardStack/CardStack.d.ts.map +0 -1
  90. package/dist/types/src/exemplars/CardStack/CardStack.stories.d.ts.map +0 -1
  91. package/dist/types/src/exemplars/CardStack/CardStackDragPreview.d.ts.map +0 -1
  92. package/dist/types/src/exemplars/CardStack/index.d.ts.map +0 -1
  93. package/dist/types/src/exemplars/index.d.ts +0 -3
  94. package/dist/types/src/exemplars/index.d.ts.map +0 -1
  95. package/dist/types/src/testing/CardContainer.d.ts +0 -6
  96. package/dist/types/src/testing/CardContainer.d.ts.map +0 -1
  97. package/dist/types/src/testing/index.d.ts +0 -2
  98. package/dist/types/src/testing/index.d.ts.map +0 -1
  99. package/src/components/Image/Image.stories.tsx +0 -58
  100. package/src/components/Image/Image.tsx +0 -137
  101. package/src/components/Image/index.ts +0 -5
  102. package/src/exemplars/Card/Card.stories.tsx +0 -88
  103. package/src/exemplars/Card/Card.tsx +0 -186
  104. package/src/exemplars/Card/CardDragPreview.tsx +0 -22
  105. package/src/exemplars/Card/fragments.ts +0 -24
  106. package/src/exemplars/Card/index.ts +0 -7
  107. package/src/exemplars/index.ts +0 -6
  108. package/src/testing/CardContainer.tsx +0 -37
  109. package/src/testing/index.ts +0 -5
  110. /package/dist/types/src/{exemplars → components}/CardStack/index.d.ts +0 -0
  111. /package/src/{exemplars → components}/CardStack/index.ts +0 -0
  112. /package/src/components/{defs.ts → types.ts} +0 -0
@@ -10,68 +10,82 @@ import { useLayoutEffect, useState } from 'react';
10
10
 
11
11
  import { type Orientation, type StackItemData, type StackItemRearrangeHandler } from '../components';
12
12
 
13
+ const noop = () => {};
14
+
15
+ export type UseStackDropForElementsProps = {
16
+ id?: string;
17
+ element: HTMLDivElement | null;
18
+ scrollElement?: HTMLDivElement | null;
19
+ orientation: Orientation;
20
+ selfDroppable: boolean;
21
+ onRearrange?: StackItemRearrangeHandler;
22
+ };
23
+
24
+ export type UseStackDropForElements = {
25
+ dropping: boolean;
26
+ };
27
+
13
28
  /**
14
- * Hook to handle drag and drop functionality for Stack components.
29
+ * Hook to handle drag-and-drop functionality for Stack components.
15
30
  */
16
31
  export const useStackDropForElements = ({
17
32
  id,
18
33
  element,
19
34
  scrollElement = element,
20
- selfDroppable,
21
35
  orientation,
36
+ selfDroppable,
22
37
  onRearrange,
23
- }: {
24
- id?: string;
25
- element: HTMLDivElement | null;
26
- scrollElement?: HTMLDivElement | null;
27
- selfDroppable: boolean;
28
- orientation: Orientation;
29
- onRearrange?: StackItemRearrangeHandler;
30
- }) => {
38
+ }: UseStackDropForElementsProps): UseStackDropForElements => {
31
39
  const [dropping, setDropping] = useState(false);
32
40
 
33
41
  useLayoutEffect(() => {
34
- if (!element || !selfDroppable) {
42
+ if (!element) {
35
43
  return;
36
44
  }
37
45
 
38
46
  const acceptSourceType = orientation === 'horizontal' ? 'column' : 'card';
39
47
 
48
+ // TODO(burdon): Use monitor?
40
49
  return combine(
41
- dropTargetForElements({
42
- element,
43
- getData: ({ input, element }) => {
44
- return attachClosestEdge(
45
- { id, type: orientation === 'horizontal' ? 'card' : 'column' },
46
- { input, element, allowedEdges: [orientation === 'horizontal' ? 'left' : 'top'] },
47
- );
48
- },
49
- onDragEnter: ({ source }) => {
50
- if (source.data.type === acceptSourceType) {
51
- setDropping(true);
52
- }
53
- },
54
- onDrag: ({ source }) => {
55
- if (source.data.type === acceptSourceType) {
56
- setDropping(true);
57
- }
58
- },
59
- onDragLeave: () => {
60
- return setDropping(false);
61
- },
62
- onDrop: ({ self, source }) => {
63
- setDropping(false);
64
- if (source.data.type === acceptSourceType && selfDroppable && onRearrange) {
65
- onRearrange(source.data as StackItemData, self.data as StackItemData, extractClosestEdge(self.data));
66
- }
67
- },
68
- }),
69
- autoScrollForElements({
70
- element: scrollElement as Element,
71
- getAllowedAxis: () => orientation,
72
- }),
50
+ selfDroppable
51
+ ? dropTargetForElements({
52
+ element,
53
+ getData: ({ input, element }) => {
54
+ return attachClosestEdge(
55
+ { id, type: orientation === 'horizontal' ? 'card' : 'column' },
56
+ { input, element, allowedEdges: [orientation === 'horizontal' ? 'left' : 'top'] },
57
+ );
58
+ },
59
+ onDragEnter: ({ source }) => {
60
+ if (source.data.type === acceptSourceType) {
61
+ setDropping(true);
62
+ }
63
+ },
64
+ onDrag: ({ source }) => {
65
+ if (source.data.type === acceptSourceType) {
66
+ setDropping(true);
67
+ }
68
+ },
69
+ onDragLeave: () => {
70
+ return setDropping(false);
71
+ },
72
+ onDrop: ({ self, source }) => {
73
+ setDropping(false);
74
+ if (source.data.type === acceptSourceType && selfDroppable && onRearrange) {
75
+ onRearrange(source.data as StackItemData, self.data as StackItemData, extractClosestEdge(self.data));
76
+ }
77
+ },
78
+ })
79
+ : noop,
80
+
81
+ scrollElement
82
+ ? autoScrollForElements({
83
+ element: scrollElement,
84
+ getAllowedAxis: () => orientation,
85
+ })
86
+ : noop,
73
87
  );
74
- }, [element, scrollElement, selfDroppable, orientation, id, onRearrange]);
88
+ }, [id, element, scrollElement, selfDroppable, orientation, onRearrange]);
75
89
 
76
90
  return { dropping };
77
91
  };
package/src/index.ts CHANGED
@@ -2,8 +2,5 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- // TODO(thure): Consider exporting exemplars from separate endpoints.
6
-
7
5
  export * from './components';
8
- export * from './exemplars';
9
6
  export * from './translations';
@@ -10,7 +10,7 @@ export default defineConfig({
10
10
  ...e2ePreset(import.meta.dirname),
11
11
  // TODO(wittjosiah): Avoid hard-coding ports.
12
12
  webServer: {
13
- command: 'moon run storybook:serve-e2e -- --port=9003',
13
+ command: 'moon run storybook-react:serve-e2e -- --port=9003',
14
14
  port: 9003,
15
15
  reuseExistingServer: false,
16
16
  },
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { type Resource } from '@dxos/react-ui';
6
6
 
7
- export const translationKey = 'react-ui-stack';
7
+ export const translationKey = '@dxos/react-ui-stack';
8
8
 
9
9
  export const translations = [
10
10
  {