@activecollab/components 2.0.372 → 2.0.374

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 (46) hide show
  1. package/dist/cjs/components/StackedCard/StackedCard.js +103 -19
  2. package/dist/cjs/components/StackedCard/StackedCard.js.map +1 -1
  3. package/dist/cjs/components/StackedCard/Styles.js +22 -17
  4. package/dist/cjs/components/StackedCard/Styles.js.map +1 -1
  5. package/dist/cjs/components/StackedCard/index.js +22 -0
  6. package/dist/cjs/components/StackedCard/index.js.map +1 -1
  7. package/dist/cjs/components/StackedCard/resizePolicy.js +238 -0
  8. package/dist/cjs/components/StackedCard/resizePolicy.js.map +1 -0
  9. package/dist/cjs/components/StackedCard/resizePolicy.test.js +474 -0
  10. package/dist/cjs/components/StackedCard/resizePolicy.test.js.map +1 -0
  11. package/dist/cjs/components/StackedCard/useStackedCardResize.js +145 -0
  12. package/dist/cjs/components/StackedCard/useStackedCardResize.js.map +1 -0
  13. package/dist/esm/components/StackedCard/StackedCard.d.ts +44 -3
  14. package/dist/esm/components/StackedCard/StackedCard.d.ts.map +1 -1
  15. package/dist/esm/components/StackedCard/StackedCard.js +102 -19
  16. package/dist/esm/components/StackedCard/StackedCard.js.map +1 -1
  17. package/dist/esm/components/StackedCard/Styles.d.ts +4 -1
  18. package/dist/esm/components/StackedCard/Styles.d.ts.map +1 -1
  19. package/dist/esm/components/StackedCard/Styles.js +22 -17
  20. package/dist/esm/components/StackedCard/Styles.js.map +1 -1
  21. package/dist/esm/components/StackedCard/index.d.ts +2 -0
  22. package/dist/esm/components/StackedCard/index.d.ts.map +1 -1
  23. package/dist/esm/components/StackedCard/index.js +2 -0
  24. package/dist/esm/components/StackedCard/index.js.map +1 -1
  25. package/dist/esm/components/StackedCard/resizePolicy.d.ts +111 -0
  26. package/dist/esm/components/StackedCard/resizePolicy.d.ts.map +1 -0
  27. package/dist/esm/{presentation/stackedCard → components/StackedCard}/resizePolicy.js +93 -48
  28. package/dist/esm/components/StackedCard/resizePolicy.js.map +1 -0
  29. package/dist/esm/components/StackedCard/resizePolicy.test.d.ts +2 -0
  30. package/dist/esm/components/StackedCard/resizePolicy.test.d.ts.map +1 -0
  31. package/dist/esm/components/StackedCard/resizePolicy.test.js +470 -0
  32. package/dist/esm/components/StackedCard/resizePolicy.test.js.map +1 -0
  33. package/dist/esm/components/StackedCard/useStackedCardResize.d.ts +62 -0
  34. package/dist/esm/components/StackedCard/useStackedCardResize.d.ts.map +1 -0
  35. package/dist/esm/components/StackedCard/useStackedCardResize.js +137 -0
  36. package/dist/esm/components/StackedCard/useStackedCardResize.js.map +1 -0
  37. package/dist/index.js +500 -36
  38. package/dist/index.js.map +1 -1
  39. package/dist/index.min.js +1 -1
  40. package/dist/index.min.js.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/cjs/presentation/stackedCard/resizePolicy.js +0 -183
  43. package/dist/cjs/presentation/stackedCard/resizePolicy.js.map +0 -1
  44. package/dist/esm/presentation/stackedCard/resizePolicy.d.ts +0 -97
  45. package/dist/esm/presentation/stackedCard/resizePolicy.d.ts.map +0 -1
  46. package/dist/esm/presentation/stackedCard/resizePolicy.js.map +0 -1
@@ -8,8 +8,9 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _constants = require("./constants");
10
10
  var _Glyphs = require("./Glyphs");
11
+ var _resizePolicy = require("./resizePolicy");
11
12
  var _Styles = require("./Styles");
12
- var _excluded = ["selected", "disabled", "pending", "isDragSource", "isDragPreview", "entered", "forceHover", "resizable", "priorityColor", "onResizeDelta", "className", "children"];
13
+ var _excluded = ["selected", "disabled", "pending", "isDragSource", "isDragPreview", "entered", "forceHover", "resizable", "resizeAxis", "resizeLabel", "priorityColor", "onResizeStart", "onResizeDelta", "onResizeCommit", "resizeHandleProps", "className", "children"];
13
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
15
16
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
@@ -40,6 +41,24 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
40
41
  * `isDragPreview`. The shell forwards its ref and spreads DOM props, so a host
41
42
  * can attach `tabIndex`, ARIA, pointer and keyboard handlers to it.
42
43
  *
44
+ * ── Resize ────────────────────────────────────────────────────────────────
45
+ * The grip is opt-in (`resizable`) and reports intent as a gesture: one
46
+ * `onResizeStart`, a stream of `onResizeDelta` previews measured FROM THE
47
+ * GESTURE START, and one `onResizeCommit` at the end — and only if the gesture
48
+ * moved anything. A host applies previews for live feedback and records an undo
49
+ * entry on the commit alone (spec §7e).
50
+ *
51
+ * Because the deltas are gesture-relative rather than incremental, a host can
52
+ * resolve every event against the size it snapshotted on start, and never has
53
+ * to keep a running accumulator. That is what makes a slow, few-pixels-at-a-time
54
+ * drag keep growing instead of stalling under a snap step.
55
+ *
56
+ * The grip itself is a focusable `role="separator"` and handles arrow keys
57
+ * (Shift for a coarse nudge). For the full policy — bounds, proportional mode,
58
+ * step snapping, content minimums, Home/End and the live `aria-valuenow` — use
59
+ * `useStackedCardResize` and spread its result through `resizeHandleProps`;
60
+ * those handlers then own the grip and the three callbacks above stay quiet.
61
+ *
43
62
  * ── Theming ───────────────────────────────────────────────────────────────
44
63
  * Colours resolve through `--sc-*` custom properties with built-in fallbacks:
45
64
  * `--sc-selection-ring` (selection / focus / entered) and the cover scrim
@@ -56,31 +75,89 @@ var StackedCard = exports.StackedCard = /*#__PURE__*/_react.default.forwardRef(f
56
75
  entered = _ref.entered,
57
76
  forceHover = _ref.forceHover,
58
77
  resizable = _ref.resizable,
78
+ _ref$resizeAxis = _ref.resizeAxis,
79
+ resizeAxis = _ref$resizeAxis === void 0 ? "both" : _ref$resizeAxis,
80
+ _ref$resizeLabel = _ref.resizeLabel,
81
+ resizeLabel = _ref$resizeLabel === void 0 ? "Resize card" : _ref$resizeLabel,
59
82
  priorityColor = _ref.priorityColor,
83
+ onResizeStart = _ref.onResizeStart,
60
84
  onResizeDelta = _ref.onResizeDelta,
85
+ onResizeCommit = _ref.onResizeCommit,
86
+ resizeHandleProps = _ref.resizeHandleProps,
61
87
  className = _ref.className,
62
88
  children = _ref.children,
63
89
  rest = _objectWithoutProperties(_ref, _excluded);
64
- var dragOrigin = (0, _react.useRef)(null);
90
+ /**
91
+ * One live gesture. `x`/`y` anchor a pointer drag; `dx`/`dy` carry the
92
+ * running total a keyboard gesture has nudged. `moved` gates the commit, so
93
+ * a click that never travelled is not a change.
94
+ */
95
+ var gesture = (0, _react.useRef)(null);
96
+ var emitDelta = (0, _react.useCallback)(function (dx, dy) {
97
+ var g = gesture.current;
98
+ if (!g) return;
99
+ if (dx !== 0 || dy !== 0) g.moved = true;
100
+ onResizeDelta === null || onResizeDelta === void 0 || onResizeDelta(dx, dy, g.source);
101
+ }, [onResizeDelta]);
102
+ var endGesture = (0, _react.useCallback)(function () {
103
+ var g = gesture.current;
104
+ if (!g) return;
105
+ gesture.current = null;
106
+ if (g.moved) onResizeCommit === null || onResizeCommit === void 0 || onResizeCommit(g.source);
107
+ }, [onResizeCommit]);
65
108
  var handlePointerDown = (0, _react.useCallback)(function (e) {
66
- dragOrigin.current = {
109
+ var _setPointerCapture, _ref2;
110
+ gesture.current = {
111
+ source: "pointer",
67
112
  x: e.clientX,
68
- y: e.clientY
113
+ y: e.clientY,
114
+ dx: 0,
115
+ dy: 0,
116
+ moved: false
69
117
  };
70
- e.target.setPointerCapture(e.pointerId);
118
+ (_setPointerCapture = (_ref2 = e.target).setPointerCapture) === null || _setPointerCapture === void 0 || _setPointerCapture.call(_ref2, e.pointerId);
71
119
  e.preventDefault();
72
- }, []);
120
+ onResizeStart === null || onResizeStart === void 0 || onResizeStart("pointer");
121
+ }, [onResizeStart]);
73
122
  var handlePointerMove = (0, _react.useCallback)(function (e) {
74
- if (!dragOrigin.current || !onResizeDelta) return;
75
- onResizeDelta(e.clientX - dragOrigin.current.x, e.clientY - dragOrigin.current.y);
76
- dragOrigin.current = {
77
- x: e.clientX,
78
- y: e.clientY
79
- };
80
- }, [onResizeDelta]);
81
- var handlePointerUp = (0, _react.useCallback)(function () {
82
- dragOrigin.current = null;
83
- }, []);
123
+ var g = gesture.current;
124
+ if (!g || g.source !== "pointer") return;
125
+ // Measured from the gesture start, so the host resolves every event
126
+ // against one snapshot instead of accumulating.
127
+ emitDelta(e.clientX - g.x, e.clientY - g.y);
128
+ }, [emitDelta]);
129
+
130
+ /**
131
+ * Arrows nudge the running total; Shift makes it coarse. Home and End need
132
+ * bounds to resolve, which the bare shell does not have — they fall through
133
+ * to `useStackedCardResize`, or to the browser.
134
+ */
135
+ var handleKeyDown = (0, _react.useCallback)(function (e) {
136
+ var step = _resizePolicy.DEFAULT_KEYBOARD_STEP * (e.shiftKey ? _resizePolicy.SHIFT_STEP_MULTIPLIER : 1);
137
+ var dx = 0;
138
+ var dy = 0;
139
+ if (e.key === "ArrowRight") dx = step;else if (e.key === "ArrowLeft") dx = -step;else if (e.key === "ArrowDown") dy = step;else if (e.key === "ArrowUp") dy = -step;else return;
140
+ e.preventDefault();
141
+ if (!gesture.current || gesture.current.source !== "keyboard") {
142
+ gesture.current = {
143
+ source: "keyboard",
144
+ x: 0,
145
+ y: 0,
146
+ dx: 0,
147
+ dy: 0,
148
+ moved: false
149
+ };
150
+ onResizeStart === null || onResizeStart === void 0 || onResizeStart("keyboard");
151
+ }
152
+ var g = gesture.current;
153
+ g.dx += dx;
154
+ g.dy += dy;
155
+ emitDelta(g.dx, g.dy);
156
+ }, [emitDelta, onResizeStart]);
157
+ var handleKeyUp = (0, _react.useCallback)(function (e) {
158
+ // One commit per hold, mirroring pointer-up after a stream of moves.
159
+ if ((0, _resizePolicy.isResizeKey)(e.key)) endGesture();
160
+ }, [endGesture]);
84
161
  return /*#__PURE__*/_react.default.createElement(_Styles.StyledStackedCard, _extends({
85
162
  ref: ref,
86
163
  $selected: selected,
@@ -92,12 +169,19 @@ var StackedCard = exports.StackedCard = /*#__PURE__*/_react.default.forwardRef(f
92
169
  $forceHover: forceHover,
93
170
  $priorityColor: priorityColor,
94
171
  className: (0, _classnames.default)("c-stacked-card", className)
95
- }, rest), children, resizable ? /*#__PURE__*/_react.default.createElement(_Styles.StyledStackedCardResizeHandle, {
172
+ }, rest), children, resizable ? /*#__PURE__*/_react.default.createElement(_Styles.StyledStackedCardResizeHandle, _extends({
173
+ $axis: resizeAxis,
96
174
  className: (0, _classnames.default)("c-stacked-card__resize-handle", _constants.STACKED_CARD_CONTROL_CLASS),
175
+ role: "separator",
176
+ tabIndex: 0,
177
+ "aria-label": resizeLabel,
97
178
  onPointerDown: handlePointerDown,
98
179
  onPointerMove: handlePointerMove,
99
- onPointerUp: handlePointerUp
100
- }, /*#__PURE__*/_react.default.createElement(_Glyphs.StackedCardResizeHandleGlyph, null)) : null);
180
+ onPointerUp: endGesture,
181
+ onLostPointerCapture: endGesture,
182
+ onKeyDown: handleKeyDown,
183
+ onKeyUp: handleKeyUp
184
+ }, resizeHandleProps), /*#__PURE__*/_react.default.createElement(_Glyphs.StackedCardResizeHandleGlyph, null)) : null);
101
185
  });
102
186
  StackedCard.displayName = "StackedCard";
103
187
  //# sourceMappingURL=StackedCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StackedCard.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_constants","_Glyphs","_Styles","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","StackedCard","exports","React","forwardRef","_ref","ref","selected","disabled","pending","isDragSource","isDragPreview","entered","forceHover","resizable","priorityColor","onResizeDelta","className","children","rest","dragOrigin","useRef","handlePointerDown","useCallback","current","x","clientX","y","clientY","target","setPointerCapture","pointerId","preventDefault","handlePointerMove","handlePointerUp","createElement","StyledStackedCard","$selected","$disabled","$pending","$isDragSource","$isDragPreview","$entered","$forceHover","$priorityColor","classnames","StyledStackedCardResizeHandle","STACKED_CARD_CONTROL_CLASS","onPointerDown","onPointerMove","onPointerUp","StackedCardResizeHandleGlyph","displayName"],"sources":["../../../../src/components/StackedCard/StackedCard.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useCallback, useRef } from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { STACKED_CARD_CONTROL_CLASS } from \"./constants\";\nimport { StackedCardResizeHandleGlyph } from \"./Glyphs\";\nimport { StyledStackedCard, StyledStackedCardResizeHandle } from \"./Styles\";\n\n/**\n * StackedCard — the hollow shell for cards on drag-and-drop surfaces.\n *\n * This is NOT the base for cards in lists. It is the card for surfaces where\n * dragging is a primary interaction: column boards and canvases. Content is\n * laid out top to bottom in `StackedCardRow`s, which makes every card a\n * portrait presentation of its data.\n *\n * ── The rule the whole subsystem hangs on ──────────────────────────────────\n * THE SHELL STAYS HOLLOW. There is no `contentType` enum here, no per-type\n * prop soup, no `if task …`. The shell owns only VISUAL STATES (selected,\n * disabled, pending, priority, drag source/preview, entered) and one intent\n * callback (`onResizeDelta`). Content is passed as `children` and composes the\n * layout primitives. Typed cards — an ImageCard, a LinkCard, a TaskCard — are\n * facades built on top of it in the consuming app, and adding one requires\n * ZERO changes in this file.\n *\n * ── What the shell does NOT do ────────────────────────────────────────────\n * It implements no drag-and-drop, no selection bookkeeping, no resize policy\n * and no keyboard navigation. The card reports; the host decides. Drag\n * choreography (the drag layer, the landing indicator, the drop) belongs to\n * the host surface, which then feeds the result back as `isDragSource` /\n * `isDragPreview`. The shell forwards its ref and spreads DOM props, so a host\n * can attach `tabIndex`, ARIA, pointer and keyboard handlers to it.\n *\n * ── Theming ───────────────────────────────────────────────────────────────\n * Colours resolve through `--sc-*` custom properties with built-in fallbacks:\n * `--sc-selection-ring` (selection / focus / entered) and the cover scrim\n * family `--sc-scrim`, `--sc-scrim-strong`, `--sc-scrim-fg`. Declare any of\n * them on an ancestor to retint a whole surface.\n */\n\nexport interface IStackedCardProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onResize\"> {\n /** Host-owned selection state — a ring around the card. */\n selected?: boolean;\n /** Policy state: the card cannot be acted on. Dimmed, inert. */\n disabled?: boolean;\n /**\n * Optimistic in-flight state — created or moved, not yet confirmed. Dimmed,\n * non-interactive and not draggable, but distinct from `disabled`: it is\n * transient, not a policy.\n */\n pending?: boolean;\n /**\n * The full-size outline placeholder left behind in the source position while\n * a drag is in flight. Content is hidden but keeps its box, so neighbouring\n * cards never move.\n */\n isDragSource?: boolean;\n /**\n * The 1:1 copy the host floats in its drag layer. Elevated shadow only — no\n * tilt, no scale, no translate.\n */\n isDragPreview?: boolean;\n /** Focus model: the card has been entered and focus is on an inner control. */\n entered?: boolean;\n /** Pin the hover treatment on, including revealed controls. For docs and specs. */\n forceHover?: boolean;\n /** Show the bottom-right resize grip. Opt-in, off by default. */\n resizable?: boolean;\n /**\n * Draws the emphasis border down the left edge. A data colour, passed in by\n * the caller (high priority, a label colour) — never baked into the shell.\n */\n priorityColor?: string;\n /**\n * Fired while the resize grip is dragged, with the pointer delta since the\n * last event. The card reports the deltas; the host decides what they mean.\n */\n onResizeDelta?: (dx: number, dy: number) => void;\n children: ReactNode;\n}\n\nexport const StackedCard = React.forwardRef<HTMLDivElement, IStackedCardProps>(\n (\n {\n selected,\n disabled,\n pending,\n isDragSource,\n isDragPreview,\n entered,\n forceHover,\n resizable,\n priorityColor,\n onResizeDelta,\n className,\n children,\n ...rest\n },\n ref\n ): ReactElement => {\n const dragOrigin = useRef<{ x: number; y: number } | null>(null);\n\n const handlePointerDown = useCallback((e: React.PointerEvent) => {\n dragOrigin.current = { x: e.clientX, y: e.clientY };\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n e.preventDefault();\n }, []);\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (!dragOrigin.current || !onResizeDelta) return;\n onResizeDelta(\n e.clientX - dragOrigin.current.x,\n e.clientY - dragOrigin.current.y\n );\n dragOrigin.current = { x: e.clientX, y: e.clientY };\n },\n [onResizeDelta]\n );\n\n const handlePointerUp = useCallback(() => {\n dragOrigin.current = null;\n }, []);\n\n return (\n <StyledStackedCard\n ref={ref}\n $selected={selected}\n $disabled={disabled}\n $pending={pending}\n $isDragSource={isDragSource}\n $isDragPreview={isDragPreview}\n $entered={entered}\n $forceHover={forceHover}\n $priorityColor={priorityColor}\n className={classnames(\"c-stacked-card\", className)}\n {...rest}\n >\n {children}\n {resizable ? (\n <StyledStackedCardResizeHandle\n className={classnames(\n \"c-stacked-card__resize-handle\",\n STACKED_CARD_CONTROL_CLASS\n )}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n >\n <StackedCardResizeHandleGlyph />\n </StyledStackedCardResizeHandle>\n ) : null}\n </StyledStackedCard>\n );\n }\n);\n\nStackedCard.displayName = \"StackedCard\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"StackedCard.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_constants","_Glyphs","_resizePolicy","_Styles","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","StackedCard","exports","React","forwardRef","_ref","ref","selected","disabled","pending","isDragSource","isDragPreview","entered","forceHover","resizable","_ref$resizeAxis","resizeAxis","_ref$resizeLabel","resizeLabel","priorityColor","onResizeStart","onResizeDelta","onResizeCommit","resizeHandleProps","className","children","rest","gesture","useRef","emitDelta","useCallback","dx","dy","g","current","moved","source","endGesture","handlePointerDown","_setPointerCapture","_ref2","x","clientX","y","clientY","target","setPointerCapture","pointerId","preventDefault","handlePointerMove","handleKeyDown","step","DEFAULT_KEYBOARD_STEP","shiftKey","SHIFT_STEP_MULTIPLIER","key","handleKeyUp","isResizeKey","createElement","StyledStackedCard","$selected","$disabled","$pending","$isDragSource","$isDragPreview","$entered","$forceHover","$priorityColor","classnames","StyledStackedCardResizeHandle","$axis","STACKED_CARD_CONTROL_CLASS","role","tabIndex","onPointerDown","onPointerMove","onPointerUp","onLostPointerCapture","onKeyDown","onKeyUp","StackedCardResizeHandleGlyph","displayName"],"sources":["../../../../src/components/StackedCard/StackedCard.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useCallback, useRef } from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { STACKED_CARD_CONTROL_CLASS } from \"./constants\";\nimport { StackedCardResizeHandleGlyph } from \"./Glyphs\";\nimport {\n DEFAULT_KEYBOARD_STEP,\n SHIFT_STEP_MULTIPLIER,\n StackedCardResizeAxis,\n StackedCardResizeSource,\n isResizeKey,\n} from \"./resizePolicy\";\nimport { StyledStackedCard, StyledStackedCardResizeHandle } from \"./Styles\";\n\n/**\n * StackedCard — the hollow shell for cards on drag-and-drop surfaces.\n *\n * This is NOT the base for cards in lists. It is the card for surfaces where\n * dragging is a primary interaction: column boards and canvases. Content is\n * laid out top to bottom in `StackedCardRow`s, which makes every card a\n * portrait presentation of its data.\n *\n * ── The rule the whole subsystem hangs on ──────────────────────────────────\n * THE SHELL STAYS HOLLOW. There is no `contentType` enum here, no per-type\n * prop soup, no `if task …`. The shell owns only VISUAL STATES (selected,\n * disabled, pending, priority, drag source/preview, entered) and one intent\n * callback (`onResizeDelta`). Content is passed as `children` and composes the\n * layout primitives. Typed cards — an ImageCard, a LinkCard, a TaskCard — are\n * facades built on top of it in the consuming app, and adding one requires\n * ZERO changes in this file.\n *\n * ── What the shell does NOT do ────────────────────────────────────────────\n * It implements no drag-and-drop, no selection bookkeeping, no resize policy\n * and no keyboard navigation. The card reports; the host decides. Drag\n * choreography (the drag layer, the landing indicator, the drop) belongs to\n * the host surface, which then feeds the result back as `isDragSource` /\n * `isDragPreview`. The shell forwards its ref and spreads DOM props, so a host\n * can attach `tabIndex`, ARIA, pointer and keyboard handlers to it.\n *\n * ── Resize ────────────────────────────────────────────────────────────────\n * The grip is opt-in (`resizable`) and reports intent as a gesture: one\n * `onResizeStart`, a stream of `onResizeDelta` previews measured FROM THE\n * GESTURE START, and one `onResizeCommit` at the end — and only if the gesture\n * moved anything. A host applies previews for live feedback and records an undo\n * entry on the commit alone (spec §7e).\n *\n * Because the deltas are gesture-relative rather than incremental, a host can\n * resolve every event against the size it snapshotted on start, and never has\n * to keep a running accumulator. That is what makes a slow, few-pixels-at-a-time\n * drag keep growing instead of stalling under a snap step.\n *\n * The grip itself is a focusable `role=\"separator\"` and handles arrow keys\n * (Shift for a coarse nudge). For the full policy — bounds, proportional mode,\n * step snapping, content minimums, Home/End and the live `aria-valuenow` — use\n * `useStackedCardResize` and spread its result through `resizeHandleProps`;\n * those handlers then own the grip and the three callbacks above stay quiet.\n *\n * ── Theming ───────────────────────────────────────────────────────────────\n * Colours resolve through `--sc-*` custom properties with built-in fallbacks:\n * `--sc-selection-ring` (selection / focus / entered) and the cover scrim\n * family `--sc-scrim`, `--sc-scrim-strong`, `--sc-scrim-fg`. Declare any of\n * them on an ancestor to retint a whole surface.\n */\n\nexport interface IStackedCardProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onResize\"> {\n /** Host-owned selection state — a ring around the card. */\n selected?: boolean;\n /** Policy state: the card cannot be acted on. Dimmed, inert. */\n disabled?: boolean;\n /**\n * Optimistic in-flight state — created or moved, not yet confirmed. Dimmed,\n * non-interactive and not draggable, but distinct from `disabled`: it is\n * transient, not a policy.\n */\n pending?: boolean;\n /**\n * The full-size outline placeholder left behind in the source position while\n * a drag is in flight. Content is hidden but keeps its box, so neighbouring\n * cards never move.\n */\n isDragSource?: boolean;\n /**\n * The 1:1 copy the host floats in its drag layer. Elevated shadow only — no\n * tilt, no scale, no translate.\n */\n isDragPreview?: boolean;\n /** Focus model: the card has been entered and focus is on an inner control. */\n entered?: boolean;\n /** Pin the hover treatment on, including revealed controls. For docs and specs. */\n forceHover?: boolean;\n /** Show the bottom-right resize grip. Opt-in, off by default. */\n resizable?: boolean;\n /**\n * Which axes the grip offers, as a cursor: `width` reads as a horizontal\n * handle for an auto-height card. Purely the affordance — what a delta means\n * is still the host's call. Defaults to `both`.\n */\n resizeAxis?: StackedCardResizeAxis;\n /** Accessible name for the resize grip. Defaults to \"Resize card\". */\n resizeLabel?: string;\n /**\n * Draws the emphasis border down the left edge. A data colour, passed in by\n * the caller (high priority, a label colour) — never baked into the shell.\n */\n priorityColor?: string;\n /** Fired once when a resize gesture begins, before the first delta. */\n onResizeStart?: (source: StackedCardResizeSource) => void;\n /**\n * Fired throughout a resize gesture with the delta measured FROM THE GESTURE\n * START — not from the previous event. The card reports; the host decides what\n * a delta means. Previews are live feedback, never an undoable change.\n */\n onResizeDelta?: (\n dx: number,\n dy: number,\n source: StackedCardResizeSource\n ) => void;\n /**\n * Fired once when the gesture ends (pointer up, lost pointer capture, key up),\n * and only if it moved the card. A bare click on the grip is not a change.\n */\n onResizeCommit?: (source: StackedCardResizeSource) => void;\n /**\n * Props spread onto the grip, overriding the built-in behaviour entirely —\n * this is where `useStackedCardResize`'s return value goes when a host wants\n * the full policy instead of raw deltas.\n */\n resizeHandleProps?: React.HTMLAttributes<HTMLSpanElement>;\n children: ReactNode;\n}\n\nexport const StackedCard = React.forwardRef<HTMLDivElement, IStackedCardProps>(\n (\n {\n selected,\n disabled,\n pending,\n isDragSource,\n isDragPreview,\n entered,\n forceHover,\n resizable,\n resizeAxis = \"both\",\n resizeLabel = \"Resize card\",\n priorityColor,\n onResizeStart,\n onResizeDelta,\n onResizeCommit,\n resizeHandleProps,\n className,\n children,\n ...rest\n },\n ref\n ): ReactElement => {\n /**\n * One live gesture. `x`/`y` anchor a pointer drag; `dx`/`dy` carry the\n * running total a keyboard gesture has nudged. `moved` gates the commit, so\n * a click that never travelled is not a change.\n */\n const gesture = useRef<{\n source: StackedCardResizeSource;\n x: number;\n y: number;\n dx: number;\n dy: number;\n moved: boolean;\n } | null>(null);\n\n const emitDelta = useCallback(\n (dx: number, dy: number) => {\n const g = gesture.current;\n if (!g) return;\n if (dx !== 0 || dy !== 0) g.moved = true;\n onResizeDelta?.(dx, dy, g.source);\n },\n [onResizeDelta]\n );\n\n const endGesture = useCallback(() => {\n const g = gesture.current;\n if (!g) return;\n gesture.current = null;\n if (g.moved) onResizeCommit?.(g.source);\n }, [onResizeCommit]);\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n gesture.current = {\n source: \"pointer\",\n x: e.clientX,\n y: e.clientY,\n dx: 0,\n dy: 0,\n moved: false,\n };\n (e.target as HTMLElement).setPointerCapture?.(e.pointerId);\n e.preventDefault();\n onResizeStart?.(\"pointer\");\n },\n [onResizeStart]\n );\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n const g = gesture.current;\n if (!g || g.source !== \"pointer\") return;\n // Measured from the gesture start, so the host resolves every event\n // against one snapshot instead of accumulating.\n emitDelta(e.clientX - g.x, e.clientY - g.y);\n },\n [emitDelta]\n );\n\n /**\n * Arrows nudge the running total; Shift makes it coarse. Home and End need\n * bounds to resolve, which the bare shell does not have — they fall through\n * to `useStackedCardResize`, or to the browser.\n */\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const step =\n DEFAULT_KEYBOARD_STEP * (e.shiftKey ? SHIFT_STEP_MULTIPLIER : 1);\n let dx = 0;\n let dy = 0;\n\n if (e.key === \"ArrowRight\") dx = step;\n else if (e.key === \"ArrowLeft\") dx = -step;\n else if (e.key === \"ArrowDown\") dy = step;\n else if (e.key === \"ArrowUp\") dy = -step;\n else return;\n\n e.preventDefault();\n if (!gesture.current || gesture.current.source !== \"keyboard\") {\n gesture.current = {\n source: \"keyboard\",\n x: 0,\n y: 0,\n dx: 0,\n dy: 0,\n moved: false,\n };\n onResizeStart?.(\"keyboard\");\n }\n const g = gesture.current;\n g.dx += dx;\n g.dy += dy;\n emitDelta(g.dx, g.dy);\n },\n [emitDelta, onResizeStart]\n );\n\n const handleKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n // One commit per hold, mirroring pointer-up after a stream of moves.\n if (isResizeKey(e.key)) endGesture();\n },\n [endGesture]\n );\n\n return (\n <StyledStackedCard\n ref={ref}\n $selected={selected}\n $disabled={disabled}\n $pending={pending}\n $isDragSource={isDragSource}\n $isDragPreview={isDragPreview}\n $entered={entered}\n $forceHover={forceHover}\n $priorityColor={priorityColor}\n className={classnames(\"c-stacked-card\", className)}\n {...rest}\n >\n {children}\n {resizable ? (\n <StyledStackedCardResizeHandle\n $axis={resizeAxis}\n className={classnames(\n \"c-stacked-card__resize-handle\",\n STACKED_CARD_CONTROL_CLASS\n )}\n role=\"separator\"\n tabIndex={0}\n aria-label={resizeLabel}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={endGesture}\n onLostPointerCapture={endGesture}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...resizeHandleProps}\n >\n <StackedCardResizeHandleGlyph />\n </StyledStackedCardResizeHandle>\n ) : null}\n </StyledStackedCard>\n );\n }\n);\n\nStackedCard.displayName = \"StackedCard\";\n"],"mappings":"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","ignoreList":[]}
@@ -149,10 +149,15 @@ StyledStackedCardCoverButton.displayName = "StyledStackedCardCoverButton";
149
149
  /* Resize (opt-in): handle on hover, the card only reports deltas */
150
150
  /* ------------------------------------------------------------------ */
151
151
 
152
+ /* The grip is a focusable separator, so it needs a focus ring of its own — a
153
+ keyboard user has no pointer to tell them where they are. */
152
154
  var StyledStackedCardResizeHandle = exports.StyledStackedCardResizeHandle = _styledComponents.default.span.withConfig({
153
155
  displayName: "Styles__StyledStackedCardResizeHandle",
154
156
  componentId: "sc-vnqm9x-10"
155
- })(["position:absolute;right:2px;bottom:2px;width:14px;height:14px;cursor:nwse-resize;color:var(--color-theme-600);z-index:2;svg{display:block;}"]);
157
+ })(["position:absolute;right:2px;bottom:2px;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:4px;cursor:", ";color:var(--color-theme-600);z-index:2;&:hover{color:var(--color-theme-900);}&:focus-visible{outline:2px solid ", ";outline-offset:1px;color:var(--color-theme-900);}svg{display:block;}"], function (_ref8) {
158
+ var $axis = _ref8.$axis;
159
+ return $axis === "width" ? "ew-resize" : "nwse-resize";
160
+ }, SELECTION_RING);
156
161
  StyledStackedCardResizeHandle.displayName = "StyledStackedCardResizeHandle";
157
162
 
158
163
  /* ------------------------------------------------------------------ */
@@ -163,29 +168,29 @@ var hoverStyle = (0, _styledComponents.css)(["box-shadow:0 4px 12px rgba(0,0,0,0
163
168
  var StyledStackedCard = exports.StyledStackedCard = _styledComponents.default.div.withConfig({
164
169
  displayName: "Styles__StyledStackedCard",
165
170
  componentId: "sc-vnqm9x-11"
166
- })(["", " position:relative;display:flex;flex-direction:column;width:", "px;border-radius:", "px;background-color:var(--page-paper-main);border:1px solid var(--border-primary);box-shadow:0 1px 3px rgba(0,0,0,0.08);overflow:hidden;transition:box-shadow 150ms ease,border-color 150ms ease;", " &:hover{", "}&:focus-visible{outline:none;", " box-shadow:0 0 0 2px ", ";}", " ", " ", " ", " ", " ", " ", " ", ""], _BoxSizingStyle.BoxSizingStyle, _constants.STACKED_CARD_WIDTH, _constants.STACKED_CARD_RADIUS, revealControls, hoverStyle, hoverStyle, SELECTION_RING, function (_ref8) {
167
- var $forceHover = _ref8.$forceHover;
171
+ })(["", " position:relative;display:flex;flex-direction:column;width:", "px;border-radius:", "px;background-color:var(--page-paper-main);border:1px solid var(--border-primary);box-shadow:0 1px 3px rgba(0,0,0,0.08);overflow:hidden;transition:box-shadow 150ms ease,border-color 150ms ease;", " &:hover{", "}&:focus-visible{outline:none;", " box-shadow:0 0 0 2px ", ";}", " ", " ", " ", " ", " ", " ", " ", ""], _BoxSizingStyle.BoxSizingStyle, _constants.STACKED_CARD_WIDTH, _constants.STACKED_CARD_RADIUS, revealControls, hoverStyle, hoverStyle, SELECTION_RING, function (_ref9) {
172
+ var $forceHover = _ref9.$forceHover;
168
173
  return $forceHover && (0, _styledComponents.css)(["", " && ", "{opacity:1;}"], hoverStyle, CONTROL);
169
- }, function (_ref9) {
170
- var $priorityColor = _ref9.$priorityColor;
171
- return $priorityColor && (0, _styledComponents.css)(["&::before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px;background:", ";z-index:2;}"], $priorityColor);
172
174
  }, function (_ref0) {
173
- var $selected = _ref0.$selected;
174
- return $selected && (0, _styledComponents.css)(["&&{border-color:", ";box-shadow:0 0 0 2px ", ";}"], SELECTION_RING, SELECTION_RING);
175
+ var $priorityColor = _ref0.$priorityColor;
176
+ return $priorityColor && (0, _styledComponents.css)(["&::before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px;background:", ";z-index:2;}"], $priorityColor);
175
177
  }, function (_ref1) {
176
- var $disabled = _ref1.$disabled;
177
- return $disabled && (0, _styledComponents.css)(["opacity:0.5;pointer-events:none;"]);
178
+ var $selected = _ref1.$selected;
179
+ return $selected && (0, _styledComponents.css)(["&&{border-color:", ";box-shadow:0 0 0 2px ", ";}"], SELECTION_RING, SELECTION_RING);
178
180
  }, function (_ref10) {
179
- var $pending = _ref10.$pending;
180
- return $pending && (0, _styledComponents.css)(["opacity:0.6;pointer-events:none;cursor:progress;"]);
181
+ var $disabled = _ref10.$disabled;
182
+ return $disabled && (0, _styledComponents.css)(["opacity:0.5;pointer-events:none;"]);
181
183
  }, function (_ref11) {
182
- var $isDragSource = _ref11.$isDragSource;
183
- return $isDragSource && (0, _styledComponents.css)(["background:transparent;border:1px dashed var(--color-theme-500);box-shadow:none;&:hover{box-shadow:none;border-color:var(--color-theme-500);}> *{visibility:hidden;}"]);
184
+ var $pending = _ref11.$pending;
185
+ return $pending && (0, _styledComponents.css)(["opacity:0.6;pointer-events:none;cursor:progress;"]);
184
186
  }, function (_ref12) {
185
- var $isDragPreview = _ref12.$isDragPreview;
186
- return $isDragPreview && (0, _styledComponents.css)(["box-shadow:0 12px 28px rgba(0,0,0,0.24);cursor:grabbing;"]);
187
+ var $isDragSource = _ref12.$isDragSource;
188
+ return $isDragSource && (0, _styledComponents.css)(["background:transparent;border:1px dashed var(--color-theme-500);box-shadow:none;&:hover{box-shadow:none;border-color:var(--color-theme-500);}> *{visibility:hidden;}"]);
187
189
  }, function (_ref13) {
188
- var $entered = _ref13.$entered;
190
+ var $isDragPreview = _ref13.$isDragPreview;
191
+ return $isDragPreview && (0, _styledComponents.css)(["box-shadow:0 12px 28px rgba(0,0,0,0.24);cursor:grabbing;"]);
192
+ }, function (_ref14) {
193
+ var $entered = _ref14.$entered;
189
194
  return $entered && (0, _styledComponents.css)(["&&{border-color:", ";box-shadow:inset 0 0 0 2px ", ",0 0 0 2px ", ";}"], SELECTION_RING, SELECTION_RING, SELECTION_RING);
190
195
  });
191
196
  StyledStackedCard.displayName = "StyledStackedCard";
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["_styledComponents","_interopRequireWildcard","require","_constants","_BoxSizingStyle","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SELECTION_RING","SCRIM","SCRIM_STRONG","SCRIM_FG","CONTROL","concat","STACKED_CARD_CONTROL_CLASS","revealControls","css","StyledStackedCardStack","exports","styled","div","withConfig","displayName","componentId","BoxSizingStyle","StyledStackedCardRow","_ref","$direction","_ref2","_ref3","_ref4","$role","$bleed","STACKED_CARD_ROLE_PADDING","_ref5","$background","_ref6","STACKED_CARD_FIXED_ATTR","StyledStackedCardCoverMedia","_ref7","$aspectRatio","StyledStackedCardCoverFill","StyledStackedCardCoverCenter","StyledStackedCardCoverTopRight","StyledStackedCardCollapsedStrip","button","StyledStackedCardStripExpand","span","StyledStackedCardPlayBadge","StyledStackedCardCoverButton","StyledStackedCardResizeHandle","hoverStyle","StyledStackedCard","STACKED_CARD_WIDTH","STACKED_CARD_RADIUS","_ref8","$forceHover","_ref9","$priorityColor","_ref0","$selected","_ref1","$disabled","_ref10","$pending","_ref11","$isDragSource","_ref12","$isDragPreview","_ref13","$entered"],"sources":["../../../../src/components/StackedCard/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\nimport {\n STACKED_CARD_CONTROL_CLASS,\n STACKED_CARD_FIXED_ATTR,\n STACKED_CARD_RADIUS,\n STACKED_CARD_ROLE_PADDING,\n STACKED_CARD_WIDTH,\n StackedCardRowDirection,\n StackedCardRowRole,\n} from \"./constants\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\n\n/**\n * Theming hooks.\n *\n * Every colour a StackedCard part needs is read through a `--sc-*` custom\n * property with a built-in fallback, so the component looks right standing on\n * its own and a host surface can still retint it by declaring the variable on\n * any ancestor. No rgba/hex is baked into a rule; data colours (a swatch value,\n * a priority colour) are always passed in by the caller.\n */\nconst SELECTION_RING = \"var(--sc-selection-ring, var(--color-primary-500))\";\nconst SCRIM = \"var(--sc-scrim, rgba(0, 0, 0, 0.55))\";\nconst SCRIM_STRONG = \"var(--sc-scrim-strong, rgba(0, 0, 0, 0.72))\";\nconst SCRIM_FG = \"var(--sc-scrim-fg, #ffffff)\";\n\n/** Selector for anything carrying the control class. */\nconst CONTROL = `.${STACKED_CARD_CONTROL_CLASS}`;\n\n/**\n * The one reveal rule the whole subsystem shares: controls are hidden until the\n * card (or the cover) is hovered OR holds focus. The focus path is what keeps\n * them reachable by keyboard instead of mouse-only.\n */\nconst revealControls = css`\n ${CONTROL} {\n opacity: 0;\n transition: opacity 120ms ease;\n }\n\n &:hover ${CONTROL}, &:focus-within ${CONTROL} {\n opacity: 1;\n }\n`;\n\n/* ------------------------------------------------------------------ */\n/* Stack — the vertical column. A card is a Stack of rows. */\n/* ------------------------------------------------------------------ */\n\nexport const StyledStackedCardStack = styled.div`\n ${BoxSizingStyle}\n\n position: relative;\n display: flex;\n flex-direction: column;\n`;\nStyledStackedCardStack.displayName = \"StyledStackedCardStack\";\n\n/* ------------------------------------------------------------------ */\n/* Row — the only layout primitive, differentiated by `role`. */\n/* ------------------------------------------------------------------ */\n\ninterface IStyledRowProps {\n $role: StackedCardRowRole;\n $bleed?: boolean;\n $direction: StackedCardRowDirection;\n $background?: string;\n}\n\nexport const StyledStackedCardRow = styled.div<IStyledRowProps>`\n ${BoxSizingStyle}\n\n position: relative;\n display: flex;\n flex-direction: ${({ $direction }) => $direction};\n align-items: ${({ $direction }) =>\n $direction === \"column\" ? \"stretch\" : \"center\"};\n gap: ${({ $direction }) => ($direction === \"column\" ? \"4px\" : \"8px\")};\n\n /* bleed overrides any role and runs the row edge to edge. */\n padding: ${({ $role, $bleed }) =>\n $bleed ? \"0\" : STACKED_CARD_ROLE_PADDING[$role]};\n\n ${({ $background }) =>\n $background &&\n css`\n background: ${$background};\n `}\n\n /* Distribution (row direction only): fixed-width children keep their width,\n the rest share what remains evenly; drop an empty spacer to push items. */\n ${({ $direction }) =>\n $direction === \"row\" &&\n css`\n > * {\n flex: 1 1 0;\n min-width: 0;\n }\n\n > [${STACKED_CARD_FIXED_ATTR}] {\n flex: 0 0 auto;\n }\n `}\n`;\nStyledStackedCardRow.displayName = \"StyledStackedCardRow\";\n\n/* ------------------------------------------------------------------ */\n/* Cover — a bleed row that holds media. */\n/* ------------------------------------------------------------------ */\n\n/**\n * The media box reserves its height with `aspect-ratio` so the image (or the\n * skeleton standing in for it) never reflows the card when it arrives.\n */\nexport const StyledStackedCardCoverMedia = styled.div<{ $aspectRatio: string }>`\n position: relative;\n width: 100%;\n aspect-ratio: ${({ $aspectRatio }) => $aspectRatio};\n overflow: hidden;\n\n ${revealControls}\n`;\nStyledStackedCardCoverMedia.displayName = \"StyledStackedCardCoverMedia\";\n\n/* The fill (an <img>, an inline <svg> wrapper, or a solid-colour box) is laid\n over the reserved box and made to cover it. */\nexport const StyledStackedCardCoverFill = styled.div`\n position: absolute;\n inset: 0;\n\n > * {\n width: 100%;\n height: 100%;\n }\n\n > img {\n display: block;\n object-fit: cover;\n }\n\n /* Media must never be natively draggable. An <img> is a browser drag source\n by default, so grabbing the cover would start an image drag and swallow the\n mousemove/mouseup the HOST's drag depends on — the card would stay put and\n then jump on the next pointer move. The host owns dragging; the cover must\n not compete with it. */\n > img,\n > svg {\n -webkit-user-drag: none;\n user-select: none;\n pointer-events: none;\n }\n`;\nStyledStackedCardCoverFill.displayName = \"StyledStackedCardCoverFill\";\n\nexport const StyledStackedCardCoverCenter = styled.div`\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\nStyledStackedCardCoverCenter.displayName = \"StyledStackedCardCoverCenter\";\n\nexport const StyledStackedCardCoverTopRight = styled.div`\n position: absolute;\n top: 8px;\n right: 8px;\n display: flex;\n gap: 6px;\n`;\nStyledStackedCardCoverTopRight.displayName = \"StyledStackedCardCoverTopRight\";\n\n/**\n * Collapsed cover — the media box gives way to a thin strip. The strip IS the\n * expand affordance: the whole bar is a button and a chevron hint is revealed\n * on hover or focus. It reserves no height of its own; the caller's\n * `collapsedStrip` (an ~8px colour bar, a favicon + domain row) sets how tall\n * it reads.\n */\nexport const StyledStackedCardCollapsedStrip = styled.button`\n ${BoxSizingStyle}\n\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n min-height: 16px;\n padding: 0;\n border: 0;\n background: transparent;\n cursor: pointer;\n text-align: left;\n\n ${CONTROL} {\n opacity: 0;\n transition: opacity 120ms ease;\n }\n\n &:hover ${CONTROL}, &:focus-visible ${CONTROL} {\n opacity: 1;\n }\n\n &:focus-visible {\n outline: 2px solid ${SELECTION_RING};\n outline-offset: -2px;\n }\n`;\nStyledStackedCardCollapsedStrip.displayName = \"StyledStackedCardCollapsedStrip\";\n\n/* The expand chevron sits at the right, vertically centred, so it reads the\n same whether the strip is a hairline colour bar or a taller favicon row. */\nexport const StyledStackedCardStripExpand = styled.span`\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n display: inline-flex;\n width: 16px;\n height: 16px;\n color: var(--color-theme-600);\n\n svg {\n width: 14px;\n height: 14px;\n }\n`;\nStyledStackedCardStripExpand.displayName = \"StyledStackedCardStripExpand\";\n\n/* ------------------------------------------------------------------ */\n/* Cover chrome — scrim-backed controls that sit over media */\n/* ------------------------------------------------------------------ */\n\n/** Centered media control (a play button). The caller drops the glyph inside. */\nexport const StyledStackedCardPlayBadge = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border-radius: 12px;\n background: ${SCRIM};\n color: ${SCRIM_FG};\n\n svg {\n fill: currentColor;\n width: 20px;\n height: 20px;\n margin-left: 2px;\n }\n`;\nStyledStackedCardPlayBadge.displayName = \"StyledStackedCardPlayBadge\";\n\n/** Top-right cover-management button (collapse, remove …). */\nexport const StyledStackedCardCoverButton = styled.button`\n ${BoxSizingStyle}\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n padding: 0;\n border: 0;\n border-radius: 8px;\n cursor: pointer;\n color: ${SCRIM_FG};\n background: ${SCRIM};\n\n svg {\n width: 16px;\n height: 16px;\n display: block;\n }\n\n &:hover {\n background: ${SCRIM_STRONG};\n }\n`;\nStyledStackedCardCoverButton.displayName = \"StyledStackedCardCoverButton\";\n\n/* ------------------------------------------------------------------ */\n/* Resize (opt-in): handle on hover, the card only reports deltas */\n/* ------------------------------------------------------------------ */\n\nexport const StyledStackedCardResizeHandle = styled.span`\n position: absolute;\n right: 2px;\n bottom: 2px;\n width: 14px;\n height: 14px;\n cursor: nwse-resize;\n color: var(--color-theme-600);\n z-index: 2;\n\n svg {\n display: block;\n }\n`;\nStyledStackedCardResizeHandle.displayName = \"StyledStackedCardResizeHandle\";\n\n/* ------------------------------------------------------------------ */\n/* The shell */\n/* ------------------------------------------------------------------ */\n\nexport interface IStyledStackedCardProps {\n $selected?: boolean;\n $disabled?: boolean;\n $pending?: boolean;\n $isDragSource?: boolean;\n $isDragPreview?: boolean;\n $entered?: boolean;\n $forceHover?: boolean;\n $priorityColor?: string;\n}\n\nconst hoverStyle = css`\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n border-color: var(--color-theme-500);\n`;\n\nexport const StyledStackedCard = styled.div<IStyledStackedCardProps>`\n ${BoxSizingStyle}\n\n position: relative;\n display: flex;\n flex-direction: column;\n width: ${STACKED_CARD_WIDTH}px;\n border-radius: ${STACKED_CARD_RADIUS}px;\n background-color: var(--page-paper-main);\n border: 1px solid var(--border-primary);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n overflow: hidden;\n transition: box-shadow 150ms ease, border-color 150ms ease;\n\n ${revealControls}\n\n &:hover {\n ${hoverStyle}\n }\n\n &:focus-visible {\n outline: none;\n ${hoverStyle}\n box-shadow: 0 0 0 2px ${SELECTION_RING};\n }\n\n /* Forced hover — for docs, snapshots and \"this is what hover looks like\"\n demos. The doubled ampersand gives it the specificity to beat the cover's\n own reveal rule. */\n ${({ $forceHover }) =>\n $forceHover &&\n css`\n ${hoverStyle}\n && ${CONTROL} {\n opacity: 1;\n }\n `}\n\n ${({ $priorityColor }) =>\n $priorityColor &&\n css`\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 4px;\n background: ${$priorityColor};\n z-index: 2;\n }\n `}\n\n /* Selection outranks hover: a selected card must keep its ring while the\n pointer is over it — which, right after the click that selected it, is\n always. The doubled ampersand buys the specificity to beat the hover rule\n above (same reason the entered state below does it). */\n ${({ $selected }) =>\n $selected &&\n css`\n && {\n border-color: ${SELECTION_RING};\n box-shadow: 0 0 0 2px ${SELECTION_RING};\n }\n `}\n\n ${({ $disabled }) =>\n $disabled &&\n css`\n opacity: 0.5;\n pointer-events: none;\n `}\n\n /* Pending / optimistic — created or moved, not yet confirmed by the server.\n Dimmed, non-interactive and NOT draggable, but distinct from disabled: a\n transient in-flight state, not a policy. */\n ${({ $pending }) =>\n $pending &&\n css`\n opacity: 0.6;\n pointer-events: none;\n cursor: progress;\n `}\n\n /* Drag SOURCE — full-size outline placeholder. Content is hidden but keeps\n its box (visibility, not display) so the card holds identical dimensions\n and the surrounding cards never move. */\n ${({ $isDragSource }) =>\n $isDragSource &&\n css`\n background: transparent;\n border: 1px dashed var(--color-theme-500);\n box-shadow: none;\n\n &:hover {\n box-shadow: none;\n border-color: var(--color-theme-500);\n }\n\n > * {\n visibility: hidden;\n }\n `}\n\n /* Drag PREVIEW — the 1:1 copy the host floats in its drag layer. Elevated\n shadow ONLY: no rotate, no scale, no translate. */\n ${({ $isDragPreview }) =>\n $isDragPreview &&\n css`\n box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);\n cursor: grabbing;\n `}\n\n /* Entered (focus model) — focus has moved inside, onto an inner control. */\n ${({ $entered }) =>\n $entered &&\n css`\n && {\n border-color: ${SELECTION_RING};\n box-shadow: inset 0 0 0 2px ${SELECTION_RING},\n 0 0 0 2px ${SELECTION_RING};\n }\n `}\n`;\nStyledStackedCard.displayName = \"StyledStackedCard\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Styles.js","names":["_styledComponents","_interopRequireWildcard","require","_constants","_BoxSizingStyle","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SELECTION_RING","SCRIM","SCRIM_STRONG","SCRIM_FG","CONTROL","concat","STACKED_CARD_CONTROL_CLASS","revealControls","css","StyledStackedCardStack","exports","styled","div","withConfig","displayName","componentId","BoxSizingStyle","StyledStackedCardRow","_ref","$direction","_ref2","_ref3","_ref4","$role","$bleed","STACKED_CARD_ROLE_PADDING","_ref5","$background","_ref6","STACKED_CARD_FIXED_ATTR","StyledStackedCardCoverMedia","_ref7","$aspectRatio","StyledStackedCardCoverFill","StyledStackedCardCoverCenter","StyledStackedCardCoverTopRight","StyledStackedCardCollapsedStrip","button","StyledStackedCardStripExpand","span","StyledStackedCardPlayBadge","StyledStackedCardCoverButton","StyledStackedCardResizeHandle","_ref8","$axis","hoverStyle","StyledStackedCard","STACKED_CARD_WIDTH","STACKED_CARD_RADIUS","_ref9","$forceHover","_ref0","$priorityColor","_ref1","$selected","_ref10","$disabled","_ref11","$pending","_ref12","$isDragSource","_ref13","$isDragPreview","_ref14","$entered"],"sources":["../../../../src/components/StackedCard/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\nimport {\n STACKED_CARD_CONTROL_CLASS,\n STACKED_CARD_FIXED_ATTR,\n STACKED_CARD_RADIUS,\n STACKED_CARD_ROLE_PADDING,\n STACKED_CARD_WIDTH,\n StackedCardRowDirection,\n StackedCardRowRole,\n} from \"./constants\";\nimport { StackedCardResizeAxis } from \"./resizePolicy\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\n\n/**\n * Theming hooks.\n *\n * Every colour a StackedCard part needs is read through a `--sc-*` custom\n * property with a built-in fallback, so the component looks right standing on\n * its own and a host surface can still retint it by declaring the variable on\n * any ancestor. No rgba/hex is baked into a rule; data colours (a swatch value,\n * a priority colour) are always passed in by the caller.\n */\nconst SELECTION_RING = \"var(--sc-selection-ring, var(--color-primary-500))\";\nconst SCRIM = \"var(--sc-scrim, rgba(0, 0, 0, 0.55))\";\nconst SCRIM_STRONG = \"var(--sc-scrim-strong, rgba(0, 0, 0, 0.72))\";\nconst SCRIM_FG = \"var(--sc-scrim-fg, #ffffff)\";\n\n/** Selector for anything carrying the control class. */\nconst CONTROL = `.${STACKED_CARD_CONTROL_CLASS}`;\n\n/**\n * The one reveal rule the whole subsystem shares: controls are hidden until the\n * card (or the cover) is hovered OR holds focus. The focus path is what keeps\n * them reachable by keyboard instead of mouse-only.\n */\nconst revealControls = css`\n ${CONTROL} {\n opacity: 0;\n transition: opacity 120ms ease;\n }\n\n &:hover ${CONTROL}, &:focus-within ${CONTROL} {\n opacity: 1;\n }\n`;\n\n/* ------------------------------------------------------------------ */\n/* Stack — the vertical column. A card is a Stack of rows. */\n/* ------------------------------------------------------------------ */\n\nexport const StyledStackedCardStack = styled.div`\n ${BoxSizingStyle}\n\n position: relative;\n display: flex;\n flex-direction: column;\n`;\nStyledStackedCardStack.displayName = \"StyledStackedCardStack\";\n\n/* ------------------------------------------------------------------ */\n/* Row — the only layout primitive, differentiated by `role`. */\n/* ------------------------------------------------------------------ */\n\ninterface IStyledRowProps {\n $role: StackedCardRowRole;\n $bleed?: boolean;\n $direction: StackedCardRowDirection;\n $background?: string;\n}\n\nexport const StyledStackedCardRow = styled.div<IStyledRowProps>`\n ${BoxSizingStyle}\n\n position: relative;\n display: flex;\n flex-direction: ${({ $direction }) => $direction};\n align-items: ${({ $direction }) =>\n $direction === \"column\" ? \"stretch\" : \"center\"};\n gap: ${({ $direction }) => ($direction === \"column\" ? \"4px\" : \"8px\")};\n\n /* bleed overrides any role and runs the row edge to edge. */\n padding: ${({ $role, $bleed }) =>\n $bleed ? \"0\" : STACKED_CARD_ROLE_PADDING[$role]};\n\n ${({ $background }) =>\n $background &&\n css`\n background: ${$background};\n `}\n\n /* Distribution (row direction only): fixed-width children keep their width,\n the rest share what remains evenly; drop an empty spacer to push items. */\n ${({ $direction }) =>\n $direction === \"row\" &&\n css`\n > * {\n flex: 1 1 0;\n min-width: 0;\n }\n\n > [${STACKED_CARD_FIXED_ATTR}] {\n flex: 0 0 auto;\n }\n `}\n`;\nStyledStackedCardRow.displayName = \"StyledStackedCardRow\";\n\n/* ------------------------------------------------------------------ */\n/* Cover — a bleed row that holds media. */\n/* ------------------------------------------------------------------ */\n\n/**\n * The media box reserves its height with `aspect-ratio` so the image (or the\n * skeleton standing in for it) never reflows the card when it arrives.\n */\nexport const StyledStackedCardCoverMedia = styled.div<{ $aspectRatio: string }>`\n position: relative;\n width: 100%;\n aspect-ratio: ${({ $aspectRatio }) => $aspectRatio};\n overflow: hidden;\n\n ${revealControls}\n`;\nStyledStackedCardCoverMedia.displayName = \"StyledStackedCardCoverMedia\";\n\n/* The fill (an <img>, an inline <svg> wrapper, or a solid-colour box) is laid\n over the reserved box and made to cover it. */\nexport const StyledStackedCardCoverFill = styled.div`\n position: absolute;\n inset: 0;\n\n > * {\n width: 100%;\n height: 100%;\n }\n\n > img {\n display: block;\n object-fit: cover;\n }\n\n /* Media must never be natively draggable. An <img> is a browser drag source\n by default, so grabbing the cover would start an image drag and swallow the\n mousemove/mouseup the HOST's drag depends on — the card would stay put and\n then jump on the next pointer move. The host owns dragging; the cover must\n not compete with it. */\n > img,\n > svg {\n -webkit-user-drag: none;\n user-select: none;\n pointer-events: none;\n }\n`;\nStyledStackedCardCoverFill.displayName = \"StyledStackedCardCoverFill\";\n\nexport const StyledStackedCardCoverCenter = styled.div`\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\nStyledStackedCardCoverCenter.displayName = \"StyledStackedCardCoverCenter\";\n\nexport const StyledStackedCardCoverTopRight = styled.div`\n position: absolute;\n top: 8px;\n right: 8px;\n display: flex;\n gap: 6px;\n`;\nStyledStackedCardCoverTopRight.displayName = \"StyledStackedCardCoverTopRight\";\n\n/**\n * Collapsed cover — the media box gives way to a thin strip. The strip IS the\n * expand affordance: the whole bar is a button and a chevron hint is revealed\n * on hover or focus. It reserves no height of its own; the caller's\n * `collapsedStrip` (an ~8px colour bar, a favicon + domain row) sets how tall\n * it reads.\n */\nexport const StyledStackedCardCollapsedStrip = styled.button`\n ${BoxSizingStyle}\n\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n min-height: 16px;\n padding: 0;\n border: 0;\n background: transparent;\n cursor: pointer;\n text-align: left;\n\n ${CONTROL} {\n opacity: 0;\n transition: opacity 120ms ease;\n }\n\n &:hover ${CONTROL}, &:focus-visible ${CONTROL} {\n opacity: 1;\n }\n\n &:focus-visible {\n outline: 2px solid ${SELECTION_RING};\n outline-offset: -2px;\n }\n`;\nStyledStackedCardCollapsedStrip.displayName = \"StyledStackedCardCollapsedStrip\";\n\n/* The expand chevron sits at the right, vertically centred, so it reads the\n same whether the strip is a hairline colour bar or a taller favicon row. */\nexport const StyledStackedCardStripExpand = styled.span`\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n display: inline-flex;\n width: 16px;\n height: 16px;\n color: var(--color-theme-600);\n\n svg {\n width: 14px;\n height: 14px;\n }\n`;\nStyledStackedCardStripExpand.displayName = \"StyledStackedCardStripExpand\";\n\n/* ------------------------------------------------------------------ */\n/* Cover chrome — scrim-backed controls that sit over media */\n/* ------------------------------------------------------------------ */\n\n/** Centered media control (a play button). The caller drops the glyph inside. */\nexport const StyledStackedCardPlayBadge = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border-radius: 12px;\n background: ${SCRIM};\n color: ${SCRIM_FG};\n\n svg {\n fill: currentColor;\n width: 20px;\n height: 20px;\n margin-left: 2px;\n }\n`;\nStyledStackedCardPlayBadge.displayName = \"StyledStackedCardPlayBadge\";\n\n/** Top-right cover-management button (collapse, remove …). */\nexport const StyledStackedCardCoverButton = styled.button`\n ${BoxSizingStyle}\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n padding: 0;\n border: 0;\n border-radius: 8px;\n cursor: pointer;\n color: ${SCRIM_FG};\n background: ${SCRIM};\n\n svg {\n width: 16px;\n height: 16px;\n display: block;\n }\n\n &:hover {\n background: ${SCRIM_STRONG};\n }\n`;\nStyledStackedCardCoverButton.displayName = \"StyledStackedCardCoverButton\";\n\n/* ------------------------------------------------------------------ */\n/* Resize (opt-in): handle on hover, the card only reports deltas */\n/* ------------------------------------------------------------------ */\n\n/* The grip is a focusable separator, so it needs a focus ring of its own — a\n keyboard user has no pointer to tell them where they are. */\nexport const StyledStackedCardResizeHandle = styled.span<{\n $axis: StackedCardResizeAxis;\n}>`\n position: absolute;\n right: 2px;\n bottom: 2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n border-radius: 4px;\n cursor: ${({ $axis }) => ($axis === \"width\" ? \"ew-resize\" : \"nwse-resize\")};\n color: var(--color-theme-600);\n z-index: 2;\n\n &:hover {\n color: var(--color-theme-900);\n }\n\n &:focus-visible {\n outline: 2px solid ${SELECTION_RING};\n outline-offset: 1px;\n color: var(--color-theme-900);\n }\n\n svg {\n display: block;\n }\n`;\nStyledStackedCardResizeHandle.displayName = \"StyledStackedCardResizeHandle\";\n\n/* ------------------------------------------------------------------ */\n/* The shell */\n/* ------------------------------------------------------------------ */\n\nexport interface IStyledStackedCardProps {\n $selected?: boolean;\n $disabled?: boolean;\n $pending?: boolean;\n $isDragSource?: boolean;\n $isDragPreview?: boolean;\n $entered?: boolean;\n $forceHover?: boolean;\n $priorityColor?: string;\n}\n\nconst hoverStyle = css`\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n border-color: var(--color-theme-500);\n`;\n\nexport const StyledStackedCard = styled.div<IStyledStackedCardProps>`\n ${BoxSizingStyle}\n\n position: relative;\n display: flex;\n flex-direction: column;\n width: ${STACKED_CARD_WIDTH}px;\n border-radius: ${STACKED_CARD_RADIUS}px;\n background-color: var(--page-paper-main);\n border: 1px solid var(--border-primary);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n overflow: hidden;\n transition: box-shadow 150ms ease, border-color 150ms ease;\n\n ${revealControls}\n\n &:hover {\n ${hoverStyle}\n }\n\n &:focus-visible {\n outline: none;\n ${hoverStyle}\n box-shadow: 0 0 0 2px ${SELECTION_RING};\n }\n\n /* Forced hover — for docs, snapshots and \"this is what hover looks like\"\n demos. The doubled ampersand gives it the specificity to beat the cover's\n own reveal rule. */\n ${({ $forceHover }) =>\n $forceHover &&\n css`\n ${hoverStyle}\n && ${CONTROL} {\n opacity: 1;\n }\n `}\n\n ${({ $priorityColor }) =>\n $priorityColor &&\n css`\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 4px;\n background: ${$priorityColor};\n z-index: 2;\n }\n `}\n\n /* Selection outranks hover: a selected card must keep its ring while the\n pointer is over it — which, right after the click that selected it, is\n always. The doubled ampersand buys the specificity to beat the hover rule\n above (same reason the entered state below does it). */\n ${({ $selected }) =>\n $selected &&\n css`\n && {\n border-color: ${SELECTION_RING};\n box-shadow: 0 0 0 2px ${SELECTION_RING};\n }\n `}\n\n ${({ $disabled }) =>\n $disabled &&\n css`\n opacity: 0.5;\n pointer-events: none;\n `}\n\n /* Pending / optimistic — created or moved, not yet confirmed by the server.\n Dimmed, non-interactive and NOT draggable, but distinct from disabled: a\n transient in-flight state, not a policy. */\n ${({ $pending }) =>\n $pending &&\n css`\n opacity: 0.6;\n pointer-events: none;\n cursor: progress;\n `}\n\n /* Drag SOURCE — full-size outline placeholder. Content is hidden but keeps\n its box (visibility, not display) so the card holds identical dimensions\n and the surrounding cards never move. */\n ${({ $isDragSource }) =>\n $isDragSource &&\n css`\n background: transparent;\n border: 1px dashed var(--color-theme-500);\n box-shadow: none;\n\n &:hover {\n box-shadow: none;\n border-color: var(--color-theme-500);\n }\n\n > * {\n visibility: hidden;\n }\n `}\n\n /* Drag PREVIEW — the 1:1 copy the host floats in its drag layer. Elevated\n shadow ONLY: no rotate, no scale, no translate. */\n ${({ $isDragPreview }) =>\n $isDragPreview &&\n css`\n box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);\n cursor: grabbing;\n `}\n\n /* Entered (focus model) — focus has moved inside, onto an inner control. */\n ${({ $entered }) =>\n $entered &&\n css`\n && {\n border-color: ${SELECTION_RING};\n box-shadow: inset 0 0 0 2px ${SELECTION_RING},\n 0 0 0 2px ${SELECTION_RING};\n }\n `}\n`;\nStyledStackedCard.displayName = \"StyledStackedCard\";\n"],"mappings":"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","ignoreList":[]}
@@ -47,4 +47,26 @@ Object.keys(_constants).forEach(function (key) {
47
47
  }
48
48
  });
49
49
  });
50
+ var _resizePolicy = require("./resizePolicy");
51
+ Object.keys(_resizePolicy).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _resizePolicy[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _resizePolicy[key];
58
+ }
59
+ });
60
+ });
61
+ var _useStackedCardResize = require("./useStackedCardResize");
62
+ Object.keys(_useStackedCardResize).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _useStackedCardResize[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function get() {
68
+ return _useStackedCardResize[key];
69
+ }
70
+ });
71
+ });
50
72
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_StackedCard","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Primitives","_Glyphs","_constants"],"sources":["../../../../src/components/StackedCard/index.ts"],"sourcesContent":["export * from \"./StackedCard\";\nexport * from \"./Primitives\";\nexport * from \"./Glyphs\";\nexport * from \"./constants\";\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,WAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,WAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,WAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,WAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,OAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,OAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,OAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,OAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,UAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,UAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,UAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,UAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_StackedCard","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Primitives","_Glyphs","_constants","_resizePolicy","_useStackedCardResize"],"sources":["../../../../src/components/StackedCard/index.ts"],"sourcesContent":["export * from \"./StackedCard\";\nexport * from \"./Primitives\";\nexport * from \"./Glyphs\";\nexport * from \"./constants\";\nexport * from \"./resizePolicy\";\nexport * from \"./useStackedCardResize\";\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,WAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,WAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,WAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,WAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,OAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,OAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,OAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,OAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,UAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,UAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,UAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,UAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,aAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,aAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,aAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,aAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,qBAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,qBAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,qBAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAK,qBAAA,CAAAT,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}