@dxos/react-ui-stack 0.8.2 → 0.8.3-main.672df60

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