@dxos/react-ui-stack 0.8.2 → 0.8.3-main.7f5a14c

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/dist/lib/browser/index.mjs +489 -5
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +490 -4
  5. package/dist/lib/node/index.cjs.map +4 -4
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +489 -5
  8. package/dist/lib/node-esm/index.mjs.map +4 -4
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/components/Stack/Stack.d.ts.map +1 -1
  11. package/dist/types/src/components/StackItem/StackItem.d.ts +1 -1
  12. package/dist/types/src/components/StackItem/StackItemDragHandle.d.ts +1 -1
  13. package/dist/types/src/components/StackItem/StackItemDragHandle.d.ts.map +1 -1
  14. package/dist/types/src/components/StackItem/StackItemHeading.d.ts +4 -2
  15. package/dist/types/src/components/StackItem/StackItemHeading.d.ts.map +1 -1
  16. package/dist/types/src/exemplars/Card/Card.d.ts +58 -0
  17. package/dist/types/src/exemplars/Card/Card.d.ts.map +1 -0
  18. package/dist/types/src/exemplars/Card/Card.stories-todo.d.ts +1 -0
  19. package/dist/types/src/exemplars/Card/Card.stories-todo.d.ts.map +1 -0
  20. package/dist/types/src/exemplars/Card/CardDragPreview.d.ts +6 -0
  21. package/dist/types/src/exemplars/Card/CardDragPreview.d.ts.map +1 -0
  22. package/dist/types/src/exemplars/Card/fragments.d.ts +7 -0
  23. package/dist/types/src/exemplars/Card/fragments.d.ts.map +1 -0
  24. package/dist/types/src/exemplars/Card/index.d.ts +3 -0
  25. package/dist/types/src/exemplars/Card/index.d.ts.map +1 -0
  26. package/dist/types/src/exemplars/CardStack/CardStack.d.ts +34 -0
  27. package/dist/types/src/exemplars/CardStack/CardStack.d.ts.map +1 -0
  28. package/dist/types/src/exemplars/CardStack/CardStack.stories-todo.d.ts +1 -0
  29. package/dist/types/src/exemplars/CardStack/CardStack.stories-todo.d.ts.map +1 -0
  30. package/dist/types/src/exemplars/CardStack/CardStackDragPreview.d.ts +9 -0
  31. package/dist/types/src/exemplars/CardStack/CardStackDragPreview.d.ts.map +1 -0
  32. package/dist/types/src/exemplars/CardStack/index.d.ts +3 -0
  33. package/dist/types/src/exemplars/CardStack/index.d.ts.map +1 -0
  34. package/dist/types/src/exemplars/index.d.ts +3 -0
  35. package/dist/types/src/exemplars/index.d.ts.map +1 -0
  36. package/dist/types/src/hooks/useStackDropForElements.d.ts +2 -1
  37. package/dist/types/src/hooks/useStackDropForElements.d.ts.map +1 -1
  38. package/dist/types/src/index.d.ts +1 -0
  39. package/dist/types/src/index.d.ts.map +1 -1
  40. package/dist/types/src/translations.d.ts +1 -0
  41. package/dist/types/src/translations.d.ts.map +1 -1
  42. package/package.json +20 -20
  43. package/src/components/Stack/Stack.tsx +18 -0
  44. package/src/components/StackItem/StackItemDragHandle.tsx +1 -1
  45. package/src/components/StackItem/StackItemHeading.tsx +7 -4
  46. package/src/exemplars/Card/Card.stories-todo.tsx +135 -0
  47. package/src/exemplars/Card/Card.tsx +178 -0
  48. package/src/exemplars/Card/CardDragPreview.tsx +22 -0
  49. package/src/exemplars/Card/fragments.ts +17 -0
  50. package/src/exemplars/Card/index.ts +6 -0
  51. package/src/exemplars/CardStack/CardStack.stories-todo.tsx +80 -0
  52. package/src/exemplars/CardStack/CardStack.tsx +118 -0
  53. package/src/exemplars/CardStack/CardStackDragPreview.tsx +61 -0
  54. package/src/exemplars/CardStack/index.ts +6 -0
  55. package/src/exemplars/index.ts +6 -0
  56. package/src/hooks/useStackDropForElements.ts +4 -2
  57. package/src/index.ts +4 -0
  58. package/src/translations.ts +1 -0
@@ -28,6 +28,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var node_exports = {};
30
30
  __export(node_exports, {
31
+ Card: () => Card,
32
+ CardDragPreview: () => CardDragPreview2,
33
+ CardStack: () => CardStack,
34
+ CardStackDragPreview: () => CardStackDragPreview,
31
35
  DEFAULT_EXTRINSIC_SIZE: () => DEFAULT_EXTRINSIC_SIZE,
32
36
  DEFAULT_HORIZONTAL_SIZE: () => DEFAULT_HORIZONTAL_SIZE,
33
37
  DEFAULT_VERTICAL_SIZE: () => DEFAULT_VERTICAL_SIZE,
@@ -36,6 +40,16 @@ __export(node_exports, {
36
40
  StackItem: () => StackItem,
37
41
  StackItemDragPreview: () => StackItemDragPreview,
38
42
  autoScrollRootAttributes: () => autoScrollRootAttributes,
43
+ cardChrome: () => cardChrome,
44
+ cardContent: () => cardContent,
45
+ cardHeading: () => cardHeading,
46
+ cardRoot: () => cardRoot,
47
+ cardSpacing: () => cardSpacing,
48
+ cardStackContent: () => cardStackContent,
49
+ cardStackFooter: () => cardStackFooter,
50
+ cardStackHeading: () => cardStackHeading,
51
+ cardStackRoot: () => cardStackRoot,
52
+ cardText: () => cardText,
39
53
  railGridHorizontal: () => railGridHorizontal,
40
54
  railGridHorizontalContainFitContent: () => railGridHorizontalContainFitContent,
41
55
  railGridVertical: () => railGridVertical,
@@ -76,6 +90,7 @@ var import_react_slot = require("@radix-ui/react-slot");
76
90
  var import_react6 = __toESM(require("react"));
77
91
  var import_tracking5 = require("@preact-signals/safe-react/tracking");
78
92
  var import_react_tabster3 = require("@fluentui/react-tabster");
93
+ var import_react_slot2 = require("@radix-ui/react-slot");
79
94
  var import_react7 = __toESM(require("react"));
80
95
  var import_react_ui_attention = require("@dxos/react-ui-attention");
81
96
  var import_react_ui_theme4 = require("@dxos/react-ui-theme");
@@ -91,7 +106,24 @@ var import_react_ui_theme5 = require("@dxos/react-ui-theme");
91
106
  var import_util = require("@dxos/util");
92
107
  var import_tracking8 = require("@preact-signals/safe-react/tracking");
93
108
  var import_react10 = __toESM(require("react"));
94
- var useStackDropForElements = ({ id, element, selfDroppable, orientation, onRearrange }) => {
109
+ var import_tracking9 = require("@preact-signals/safe-react/tracking");
110
+ var import_react_primitive = require("@radix-ui/react-primitive");
111
+ var import_react_slot3 = require("@radix-ui/react-slot");
112
+ var import_react11 = __toESM(require("react"));
113
+ var import_react_ui4 = require("@dxos/react-ui");
114
+ var import_react_ui_theme6 = require("@dxos/react-ui-theme");
115
+ var import_tracking10 = require("@preact-signals/safe-react/tracking");
116
+ var import_react12 = __toESM(require("react"));
117
+ var import_react_ui_theme7 = require("@dxos/react-ui-theme");
118
+ var import_tracking11 = require("@preact-signals/safe-react/tracking");
119
+ var import_react_slot4 = require("@radix-ui/react-slot");
120
+ var import_react13 = __toESM(require("react"));
121
+ var import_react_ui_theme8 = require("@dxos/react-ui-theme");
122
+ var import_tracking12 = require("@preact-signals/safe-react/tracking");
123
+ var import_react14 = __toESM(require("react"));
124
+ var import_react_ui5 = require("@dxos/react-ui");
125
+ var import_react_ui_theme9 = require("@dxos/react-ui-theme");
126
+ var useStackDropForElements = ({ id, element, scrollElement = element, selfDroppable, orientation, onRearrange }) => {
95
127
  const [dropping, setDropping] = (0, import_react2.useState)(false);
96
128
  (0, import_react2.useLayoutEffect)(() => {
97
129
  if (!element || !selfDroppable) {
@@ -132,11 +164,12 @@ var useStackDropForElements = ({ id, element, selfDroppable, orientation, onRear
132
164
  }
133
165
  }
134
166
  }), (0, import_element.autoScrollForElements)({
135
- element,
167
+ element: scrollElement,
136
168
  getAllowedAxis: () => orientation
137
169
  }));
138
170
  }, [
139
171
  element,
172
+ scrollElement,
140
173
  selfDroppable,
141
174
  orientation,
142
175
  id,
@@ -189,6 +222,7 @@ var Stack = /* @__PURE__ */ (0, import_react.forwardRef)(({ children, classNames
189
222
  const { dropping } = useStackDropForElements({
190
223
  id: props.id,
191
224
  element: getDropElement && stackElement ? getDropElement(stackElement) : stackElement,
225
+ scrollElement: stackElement,
192
226
  selfDroppable,
193
227
  orientation,
194
228
  onRearrange
@@ -223,6 +257,24 @@ var Stack = /* @__PURE__ */ (0, import_react.forwardRef)(({ children, classNames
223
257
  orientation,
224
258
  size
225
259
  ]);
260
+ (0, import_react.useEffect)(() => {
261
+ if (!(stackElement && Number.isFinite(separatorOnScroll))) {
262
+ return;
263
+ }
264
+ const observer = new MutationObserver(() => {
265
+ handleScroll();
266
+ });
267
+ observer.observe(stackElement, {
268
+ childList: true,
269
+ subtree: true
270
+ });
271
+ return () => {
272
+ observer.disconnect();
273
+ };
274
+ }, [
275
+ stackElement,
276
+ handleScroll
277
+ ]);
226
278
  return /* @__PURE__ */ import_react.default.createElement(StackContext.Provider, {
227
279
  value: {
228
280
  orientation,
@@ -290,14 +342,15 @@ var StackItemDragHandle = ({ asChild, children }) => {
290
342
  _effect.f();
291
343
  }
292
344
  };
293
- var StackItemHeading = ({ children, classNames, ...props }) => {
345
+ var StackItemHeading = ({ children, classNames, asChild, ...props }) => {
294
346
  var _effect = (0, import_tracking5.useSignals)();
295
347
  try {
296
348
  const { orientation } = useStack();
297
349
  const focusableGroupAttrs = (0, import_react_tabster3.useFocusableGroup)({
298
350
  tabBehavior: "limited"
299
351
  });
300
- return /* @__PURE__ */ import_react7.default.createElement("div", {
352
+ const Root = asChild ? import_react_slot2.Slot : "div";
353
+ return /* @__PURE__ */ import_react7.default.createElement(Root, {
301
354
  role: "heading",
302
355
  ...props,
303
356
  tabIndex: 0,
@@ -370,6 +423,7 @@ var translations_default = [
370
423
  "en-US": {
371
424
  [translationKey]: {
372
425
  "resize label": "Drag to resize",
426
+ "drag handle label": "Drag to rearrange",
373
427
  "pin start label": "Pin to the left sidebar",
374
428
  "pin end label": "Pin to the right sidebar",
375
429
  "increment start label": "Move to the left",
@@ -664,8 +718,430 @@ var StackItem = {
664
718
  SigilButton: StackItemSigilButton,
665
719
  DragPreview: StackItemDragPreview
666
720
  };
721
+ var cardRoot = "contain-layout pli-2 plb-1 first-of-type:pbs-0 last-of-type:pbe-0";
722
+ var cardContent = "rounded overflow-hidden bg-cardSurface border border-separator dark:border-subduedSeparator dx-focus-ring-group-y-indicator relative min-bs-[--rail-item] group/card";
723
+ var cardSpacing = "pli-card-spacing-inline mlb-card-spacing-block";
724
+ var cardText = cardSpacing;
725
+ var cardHeading = "text-lg font-medium line-clamp-2";
726
+ var cardChrome = "pli-[--dx-card-spacing-chrome] mlb-[--dx-card-spacing-chrome] [&_.dx-button]:text-start [&_.dx-button]:is-full";
727
+ var CardRoot = /* @__PURE__ */ (0, import_react11.forwardRef)(({ children, classNames, asChild, role = "none", ...props }, forwardedRef) => {
728
+ var _effect = (0, import_tracking9.useSignals)();
729
+ try {
730
+ const Root = asChild ? import_react_slot3.Slot : "div";
731
+ const rootProps = asChild ? {
732
+ classNames: [
733
+ cardRoot,
734
+ classNames
735
+ ]
736
+ } : {
737
+ className: (0, import_react_ui_theme6.mx)(cardRoot, classNames),
738
+ role
739
+ };
740
+ return /* @__PURE__ */ import_react11.default.createElement(Root, {
741
+ ...props,
742
+ ...rootProps,
743
+ ref: forwardedRef
744
+ }, children);
745
+ } finally {
746
+ _effect.f();
747
+ }
748
+ });
749
+ var CardContent = /* @__PURE__ */ (0, import_react11.forwardRef)(({ children, classNames, asChild, role = "group", ...props }, forwardedRef) => {
750
+ var _effect = (0, import_tracking9.useSignals)();
751
+ try {
752
+ const Root = asChild ? import_react_slot3.Slot : "div";
753
+ const rootProps = asChild ? {
754
+ classNames: [
755
+ cardContent,
756
+ classNames
757
+ ]
758
+ } : {
759
+ className: (0, import_react_ui_theme6.mx)(cardContent, classNames),
760
+ role
761
+ };
762
+ return /* @__PURE__ */ import_react11.default.createElement(Root, {
763
+ ...props,
764
+ ...rootProps,
765
+ ref: forwardedRef
766
+ }, children);
767
+ } finally {
768
+ _effect.f();
769
+ }
770
+ });
771
+ var CardConditionalContent = ({ role, children }) => {
772
+ var _effect = (0, import_tracking9.useSignals)();
773
+ try {
774
+ if ([
775
+ "popover",
776
+ "card--kanban"
777
+ ].includes(role ?? "never")) {
778
+ return /* @__PURE__ */ import_react11.default.createElement("div", {
779
+ className: role === "popover" ? "popover-card-width" : role === "card--kanban" ? "contents" : ""
780
+ }, children);
781
+ } else {
782
+ return /* @__PURE__ */ import_react11.default.createElement(CardContent, null, children);
783
+ }
784
+ } finally {
785
+ _effect.f();
786
+ }
787
+ };
788
+ var CardHeading = /* @__PURE__ */ (0, import_react11.forwardRef)(({ children, classNames, asChild, role = "heading", ...props }, forwardedRef) => {
789
+ var _effect = (0, import_tracking9.useSignals)();
790
+ try {
791
+ const Root = asChild ? import_react_slot3.Slot : "div";
792
+ const rootProps = asChild ? {
793
+ classNames: [
794
+ cardHeading,
795
+ cardText,
796
+ classNames
797
+ ]
798
+ } : {
799
+ className: (0, import_react_ui_theme6.mx)(cardHeading, cardText, classNames),
800
+ role
801
+ };
802
+ return /* @__PURE__ */ import_react11.default.createElement(Root, {
803
+ ...props,
804
+ ...rootProps,
805
+ ref: forwardedRef
806
+ }, children);
807
+ } finally {
808
+ _effect.f();
809
+ }
810
+ });
811
+ var CardToolbar = /* @__PURE__ */ (0, import_react11.forwardRef)(({ children, classNames, ...props }, forwardedRef) => {
812
+ var _effect = (0, import_tracking9.useSignals)();
813
+ try {
814
+ return /* @__PURE__ */ import_react11.default.createElement(import_react_ui4.Toolbar.Root, {
815
+ ...props,
816
+ classNames: [
817
+ "bg-transparent",
818
+ classNames
819
+ ],
820
+ ref: forwardedRef
821
+ }, children);
822
+ } finally {
823
+ _effect.f();
824
+ }
825
+ });
826
+ var CardToolbarIconButton = import_react_ui4.Toolbar.IconButton;
827
+ var CardToolbarSeparator = import_react_ui4.Toolbar.Separator;
828
+ var CardDragHandle = /* @__PURE__ */ (0, import_react11.forwardRef)(({ toolbarItem }, forwardedRef) => {
829
+ var _effect = (0, import_tracking9.useSignals)();
830
+ try {
831
+ const { t } = (0, import_react_ui4.useTranslation)(translationKey);
832
+ const Root = toolbarItem ? import_react_ui4.Toolbar.IconButton : import_react_ui4.IconButton;
833
+ return /* @__PURE__ */ import_react11.default.createElement(Root, {
834
+ iconOnly: true,
835
+ icon: "ph--dots-six-vertical--regular",
836
+ variant: "ghost",
837
+ label: t("card drag handle label"),
838
+ classNames: "pli-2",
839
+ ref: forwardedRef
840
+ });
841
+ } finally {
842
+ _effect.f();
843
+ }
844
+ });
845
+ var CardDragPreview = StackItem.DragPreview;
846
+ var CardMenu = import_react_primitive.Primitive.div;
847
+ var CardPoster = (props) => {
848
+ var _effect = (0, import_tracking9.useSignals)();
849
+ try {
850
+ const aspect = props.aspect === "auto" ? "aspect-auto" : "aspect-video";
851
+ if (props.image) {
852
+ return /* @__PURE__ */ import_react11.default.createElement("img", {
853
+ className: `dx-card__poster ${aspect} object-cover is-full bs-auto`,
854
+ src: props.image,
855
+ alt: props.alt
856
+ });
857
+ }
858
+ if (props.icon) {
859
+ return /* @__PURE__ */ import_react11.default.createElement("div", {
860
+ role: "image",
861
+ className: `dx-card__poster grid ${aspect} place-items-center bg-inputSurface text-subdued`,
862
+ "aria-label": props.alt
863
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui4.Icon, {
864
+ icon: props.icon,
865
+ size: 10
866
+ }));
867
+ }
868
+ } finally {
869
+ _effect.f();
870
+ }
871
+ };
872
+ var CardChrome = /* @__PURE__ */ (0, import_react11.forwardRef)(({ children, classNames, asChild, role = "none", ...props }, forwardedRef) => {
873
+ var _effect = (0, import_tracking9.useSignals)();
874
+ try {
875
+ const Root = asChild ? import_react_slot3.Slot : "div";
876
+ const rootProps = asChild ? {
877
+ classNames: [
878
+ cardChrome,
879
+ classNames
880
+ ]
881
+ } : {
882
+ className: (0, import_react_ui_theme6.mx)(cardChrome, classNames),
883
+ role
884
+ };
885
+ return /* @__PURE__ */ import_react11.default.createElement(Root, {
886
+ ...props,
887
+ ...rootProps,
888
+ ref: forwardedRef
889
+ }, children);
890
+ } finally {
891
+ _effect.f();
892
+ }
893
+ });
894
+ var CardText = /* @__PURE__ */ (0, import_react11.forwardRef)(({ children, classNames, asChild, role = "none", ...props }, forwardedRef) => {
895
+ var _effect = (0, import_tracking9.useSignals)();
896
+ try {
897
+ const Root = asChild ? import_react_slot3.Slot : "p";
898
+ const rootProps = asChild ? {
899
+ classNames: [
900
+ cardText,
901
+ classNames
902
+ ]
903
+ } : {
904
+ className: (0, import_react_ui_theme6.mx)(cardText, classNames),
905
+ role
906
+ };
907
+ return /* @__PURE__ */ import_react11.default.createElement(Root, {
908
+ ...props,
909
+ ...rootProps,
910
+ ref: forwardedRef
911
+ }, children);
912
+ } finally {
913
+ _effect.f();
914
+ }
915
+ });
916
+ var Card = {
917
+ Root: CardRoot,
918
+ Content: CardContent,
919
+ Container: CardConditionalContent,
920
+ Heading: CardHeading,
921
+ Toolbar: CardToolbar,
922
+ ToolbarIconButton: CardToolbarIconButton,
923
+ ToolbarSeparator: CardToolbarSeparator,
924
+ DragHandle: CardDragHandle,
925
+ DragPreview: CardDragPreview,
926
+ Menu: CardMenu,
927
+ Poster: CardPoster,
928
+ Chrome: CardChrome,
929
+ Text: CardText
930
+ };
931
+ var CardDragPreviewRoot = ({ children }) => {
932
+ var _effect = (0, import_tracking10.useSignals)();
933
+ try {
934
+ return /* @__PURE__ */ import_react12.default.createElement("div", {
935
+ className: "p-2"
936
+ }, children);
937
+ } finally {
938
+ _effect.f();
939
+ }
940
+ };
941
+ var CardDragPreviewContent = ({ children }) => {
942
+ var _effect = (0, import_tracking10.useSignals)();
943
+ try {
944
+ return /* @__PURE__ */ import_react12.default.createElement("div", {
945
+ className: (0, import_react_ui_theme7.mx)(cardContent, "ring-focusLine ring-neutralFocusIndicator")
946
+ }, children);
947
+ } finally {
948
+ _effect.f();
949
+ }
950
+ };
951
+ var CardDragPreview2 = {
952
+ Root: CardDragPreviewRoot,
953
+ Content: CardDragPreviewContent
954
+ };
955
+ var CardStackStack = /* @__PURE__ */ (0, import_react13.forwardRef)(({ children, classNames, itemsCount = 0, ...props }, forwardedRef) => {
956
+ var _effect = (0, import_tracking11.useSignals)();
957
+ try {
958
+ return /* @__PURE__ */ import_react13.default.createElement(Stack, {
959
+ orientation: "vertical",
960
+ size: "contain",
961
+ rail: false,
962
+ classNames: (
963
+ /* NOTE(thure): Do not let this element have zero intrinsic size, otherwise the drop indicator will not display. See #9035. */
964
+ [
965
+ "plb-1",
966
+ itemsCount > 0 && "plb-2",
967
+ classNames
968
+ ]
969
+ ),
970
+ itemsCount,
971
+ separatorOnScroll: 9,
972
+ ...props,
973
+ ref: forwardedRef
974
+ }, children);
975
+ } finally {
976
+ _effect.f();
977
+ }
978
+ });
979
+ var CardStackDragHandle = Card.DragHandle;
980
+ var cardStackHeading = "mli-2 order-first bg-transparent rounded-bs-md flex items-center";
981
+ var CardStackHeading = /* @__PURE__ */ (0, import_react13.forwardRef)(({ children, classNames, asChild, role = "heading", ...props }, forwardedRef) => {
982
+ var _effect = (0, import_tracking11.useSignals)();
983
+ try {
984
+ const Root = asChild ? import_react_slot4.Slot : "div";
985
+ const rootProps = asChild ? {
986
+ classNames: [
987
+ cardStackHeading,
988
+ classNames
989
+ ]
990
+ } : {
991
+ className: (0, import_react_ui_theme8.mx)(cardStackHeading, classNames),
992
+ role
993
+ };
994
+ return /* @__PURE__ */ import_react13.default.createElement(Root, {
995
+ ...props,
996
+ ...rootProps,
997
+ ref: forwardedRef
998
+ }, children);
999
+ } finally {
1000
+ _effect.f();
1001
+ }
1002
+ });
1003
+ var cardStackFooter = 'plb-2 mli-2 border-bs border-transparent [[data-scroll-separator-end="true"]_&]:border-subduedSeparator';
1004
+ var CardStackFooter = /* @__PURE__ */ (0, import_react13.forwardRef)(({ children, classNames, asChild, role = "none", ...props }, forwardedRef) => {
1005
+ var _effect = (0, import_tracking11.useSignals)();
1006
+ try {
1007
+ const Root = asChild ? import_react_slot4.Slot : "div";
1008
+ const rootProps = asChild ? {
1009
+ classNames: [
1010
+ cardStackFooter,
1011
+ classNames
1012
+ ]
1013
+ } : {
1014
+ className: (0, import_react_ui_theme8.mx)(cardStackFooter, classNames),
1015
+ role
1016
+ };
1017
+ return /* @__PURE__ */ import_react13.default.createElement(Root, {
1018
+ ...props,
1019
+ ...rootProps,
1020
+ ref: forwardedRef
1021
+ }, children);
1022
+ } finally {
1023
+ _effect.f();
1024
+ }
1025
+ });
1026
+ var cardStackContent = [
1027
+ "shrink min-bs-0 bg-baseSurface border border-separator rounded-md grid dx-focus-ring-group-x-indicator kanban-drop",
1028
+ railGridHorizontalContainFitContent
1029
+ ];
1030
+ var CardStackContent = /* @__PURE__ */ (0, import_react13.forwardRef)(({ children, classNames, asChild, role = "none", ...props }, forwardedRef) => {
1031
+ var _effect = (0, import_tracking11.useSignals)();
1032
+ try {
1033
+ const Root = asChild ? import_react_slot4.Slot : "div";
1034
+ const rootProps = asChild ? {
1035
+ classNames: [
1036
+ ...cardStackContent,
1037
+ classNames
1038
+ ]
1039
+ } : {
1040
+ className: (0, import_react_ui_theme8.mx)(...cardStackContent, classNames),
1041
+ role
1042
+ };
1043
+ return /* @__PURE__ */ import_react13.default.createElement(Root, {
1044
+ ...props,
1045
+ ...rootProps,
1046
+ "data-scroll-separator": "false",
1047
+ ref: forwardedRef
1048
+ }, children);
1049
+ } finally {
1050
+ _effect.f();
1051
+ }
1052
+ });
1053
+ var cardStackRoot = "flex flex-col pli-2 plb-2";
1054
+ var CardStackRoot = /* @__PURE__ */ (0, import_react13.forwardRef)(({ children, classNames, asChild, role = "none", ...props }, forwardedRef) => {
1055
+ var _effect = (0, import_tracking11.useSignals)();
1056
+ try {
1057
+ const Root = asChild ? import_react_slot4.Slot : "div";
1058
+ const rootProps = asChild ? {
1059
+ classNames: [
1060
+ cardStackRoot,
1061
+ classNames
1062
+ ]
1063
+ } : {
1064
+ className: (0, import_react_ui_theme8.mx)(cardStackRoot, classNames),
1065
+ role
1066
+ };
1067
+ return /* @__PURE__ */ import_react13.default.createElement(Root, {
1068
+ ...props,
1069
+ ...rootProps,
1070
+ ref: forwardedRef
1071
+ }, children);
1072
+ } finally {
1073
+ _effect.f();
1074
+ }
1075
+ });
1076
+ var CardStack = {
1077
+ Root: CardStackRoot,
1078
+ Content: CardStackContent,
1079
+ Stack: CardStackStack,
1080
+ Heading: CardStackHeading,
1081
+ Footer: CardStackFooter,
1082
+ DragHandle: CardStackDragHandle
1083
+ };
1084
+ var CardStackDragPreviewRoot = ({ children }) => {
1085
+ var _effect = (0, import_tracking12.useSignals)();
1086
+ try {
1087
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
1088
+ className: "p-2"
1089
+ }, /* @__PURE__ */ import_react14.default.createElement("div", {
1090
+ className: "rounded-md max-bs-[calc(100dvh-1rem)] overflow-hidden bg-baseSurface border border-separator ring-focusLine ring-neutralFocusIndicator flex flex-col"
1091
+ }, children));
1092
+ } finally {
1093
+ _effect.f();
1094
+ }
1095
+ };
1096
+ var CardStackDragPreviewHeading = ({ children }) => {
1097
+ var _effect = (0, import_tracking12.useSignals)();
1098
+ try {
1099
+ const { t } = (0, import_react_ui5.useTranslation)(translationKey);
1100
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
1101
+ className: "flex items-center p-2"
1102
+ }, /* @__PURE__ */ import_react14.default.createElement(import_react_ui5.IconButton, {
1103
+ iconOnly: true,
1104
+ icon: "ph--dots-six-vertical--regular",
1105
+ variant: "ghost",
1106
+ label: t("column drag handle label"),
1107
+ classNames: "pli-2"
1108
+ }), children);
1109
+ } finally {
1110
+ _effect.f();
1111
+ }
1112
+ };
1113
+ var CardStackDragPreviewContent = ({ children, itemsCount = 0 }) => {
1114
+ var _effect = (0, import_tracking12.useSignals)();
1115
+ try {
1116
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
1117
+ className: (0, import_react_ui_theme9.mx)("overflow-y-auto flex-1 pli-2 flex flex-col gap-2", "plb-1", itemsCount > 0 ? "plb-2" : "plb-1")
1118
+ }, children);
1119
+ } finally {
1120
+ _effect.f();
1121
+ }
1122
+ };
1123
+ var CardStackDragPreviewFooter = ({ children }) => {
1124
+ var _effect = (0, import_tracking12.useSignals)();
1125
+ try {
1126
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
1127
+ className: "p-2 border-t border-separator"
1128
+ }, children);
1129
+ } finally {
1130
+ _effect.f();
1131
+ }
1132
+ };
1133
+ var CardStackDragPreview = {
1134
+ Root: CardStackDragPreviewRoot,
1135
+ Heading: CardStackDragPreviewHeading,
1136
+ Content: CardStackDragPreviewContent,
1137
+ Footer: CardStackDragPreviewFooter
1138
+ };
667
1139
  // Annotate the CommonJS export names for ESM import in node:
668
1140
  0 && (module.exports = {
1141
+ Card,
1142
+ CardDragPreview,
1143
+ CardStack,
1144
+ CardStackDragPreview,
669
1145
  DEFAULT_EXTRINSIC_SIZE,
670
1146
  DEFAULT_HORIZONTAL_SIZE,
671
1147
  DEFAULT_VERTICAL_SIZE,
@@ -674,6 +1150,16 @@ var StackItem = {
674
1150
  StackItem,
675
1151
  StackItemDragPreview,
676
1152
  autoScrollRootAttributes,
1153
+ cardChrome,
1154
+ cardContent,
1155
+ cardHeading,
1156
+ cardRoot,
1157
+ cardSpacing,
1158
+ cardStackContent,
1159
+ cardStackFooter,
1160
+ cardStackHeading,
1161
+ cardStackRoot,
1162
+ cardText,
677
1163
  railGridHorizontal,
678
1164
  railGridHorizontalContainFitContent,
679
1165
  railGridVertical,