@kismet-ux/constellation 1.13.0 → 1.15.0

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 (69) hide show
  1. package/README.md +219 -208
  2. package/dist/form/Checkbox/checkbox.js +4 -56
  3. package/dist/form/Checkbox/checkbox.js.map +1 -1
  4. package/dist/form/DatePicker/date-picker.d.ts +1 -1
  5. package/dist/form/DatePicker/date-picker.d.ts.map +1 -1
  6. package/dist/form/DatePicker/date-picker.js +7 -58
  7. package/dist/form/DatePicker/date-picker.js.map +1 -1
  8. package/dist/form/Input/input.css +42 -6
  9. package/dist/form/Input/input.d.ts +6 -0
  10. package/dist/form/Input/input.d.ts.map +1 -1
  11. package/dist/form/Input/input.js +3 -3
  12. package/dist/form/Input/input.js.map +1 -1
  13. package/dist/form/Input/input.module.scss.js +1 -1
  14. package/dist/form/Select/select.d.ts.map +1 -1
  15. package/dist/form/Select/select.js +5 -5
  16. package/dist/form/Select/select.js.map +1 -1
  17. package/dist/form.d.ts +2 -2
  18. package/dist/index-BG8HSyxu.d.ts +647 -0
  19. package/dist/index-BPKtGvrM.d.ts +200 -0
  20. package/dist/index-BaoN_cal.d.ts +647 -0
  21. package/dist/index-Bv5TTKOD.d.ts +647 -0
  22. package/dist/index-ByI9bvw8.d.ts +647 -0
  23. package/dist/index-C7SAfZfl.d.ts +647 -0
  24. package/dist/index-Cq8JgMRD.d.ts +354 -0
  25. package/dist/index-D8p7TX9C.d.ts +200 -0
  26. package/dist/index-DyDvelCa.d.ts +354 -0
  27. package/dist/index.d.ts +7 -7
  28. package/dist/index.js +31 -30
  29. package/dist/index.js.map +1 -1
  30. package/dist/input-BHmlHvYR.d.ts +58 -0
  31. package/dist/layout/AppSidebarHeader/app-sidebar-header.js +1 -30
  32. package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -1
  33. package/dist/layout.d.ts +3 -3
  34. package/dist/navigation/NavUser/nav-user.js +2 -2
  35. package/dist/navigation/Sheet/sheet.js +3 -29
  36. package/dist/navigation/Sheet/sheet.js.map +1 -1
  37. package/dist/settings/AppearanceTabs/appearance-tabs.js +1 -27
  38. package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -1
  39. package/dist/tooltip-Cw8p0qeV.d.ts +46 -0
  40. package/dist/types/form/date-picker.d.ts +2 -0
  41. package/dist/types/form/date-picker.d.ts.map +1 -1
  42. package/dist/types/form/select.d.ts +2 -0
  43. package/dist/types/form/select.d.ts.map +1 -1
  44. package/dist/types/form/theme.d.ts +9 -0
  45. package/dist/types/form/theme.d.ts.map +1 -1
  46. package/dist/typography/Typography/typography.css +21 -1
  47. package/dist/ui/Button/button-variants.d.ts +1 -1
  48. package/dist/ui/Button/button.css +1 -1
  49. package/dist/ui/Icon/icon-variants.d.ts +1 -1
  50. package/dist/ui/SwipeRow/index.d.ts +2 -0
  51. package/dist/ui/SwipeRow/index.d.ts.map +1 -0
  52. package/dist/ui/SwipeRow/swipe-row-variants.d.ts +4 -0
  53. package/dist/ui/SwipeRow/swipe-row-variants.d.ts.map +1 -0
  54. package/dist/ui/SwipeRow/swipe-row-variants.js +22 -0
  55. package/dist/ui/SwipeRow/swipe-row-variants.js.map +1 -0
  56. package/dist/ui/SwipeRow/swipe-row.css +77 -0
  57. package/dist/ui/SwipeRow/swipe-row.d.ts +14 -0
  58. package/dist/ui/SwipeRow/swipe-row.d.ts.map +1 -0
  59. package/dist/ui/SwipeRow/swipe-row.js +178 -0
  60. package/dist/ui/SwipeRow/swipe-row.js.map +1 -0
  61. package/dist/ui/SwipeRow/swipe-row.module.scss.js +6 -0
  62. package/dist/ui/SwipeRow/swipe-row.module.scss.js.map +1 -0
  63. package/dist/ui/Toggle/toggle-variants.d.ts +1 -1
  64. package/dist/ui/index.d.ts +1 -0
  65. package/dist/ui/index.d.ts.map +1 -1
  66. package/dist/ui.d.ts +2 -2
  67. package/dist/ui.js +1 -0
  68. package/dist/ui.js.map +1 -1
  69. package/package.json +216 -216
@@ -0,0 +1,178 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import cn from 'clsx';
3
+ import * as React from 'react';
4
+ import { swipeRowVariants } from './swipe-row-variants.js';
5
+ import s from './swipe-row.module.scss.js';
6
+
7
+ /*
8
+ * Swipe left to act on a row, the way a phone's own lists do.
9
+ *
10
+ * Short swipe: the row rests open on its action, and a tap on the action does
11
+ * it. Long swipe, past half the row: it is done on release. A tap anywhere
12
+ * else on an open row only closes it, so a swipe cannot also open what the row
13
+ * opens.
14
+ *
15
+ * Touch and pen only. A mouse drag is how text gets selected, and a desktop
16
+ * already has the row's own button one click away. A swipe row is an
17
+ * accelerator, never the only way to the action.
18
+ *
19
+ * ⚠️ No transform at rest. A transformed ancestor becomes the containing block
20
+ * for `position: fixed` children, so a card that lifts out of its row would
21
+ * centre itself in the row instead of on the screen. The offset is written
22
+ * only while the row is off centre and removed at zero.
23
+ *
24
+ * ⚠️ `touch-action: pan-y` gives vertical scrolling to the browser and leaves
25
+ * horizontal movement to us. A gesture is not claimed until it has clearly
26
+ * gone sideways, so a slightly diagonal scroll still scrolls.
27
+ */
28
+ const DECIDE_PX = 8;
29
+ const COMMIT_SHARE = 0.5;
30
+ const LEAVE_MS = 160;
31
+ const SWALLOW_MS = 350;
32
+ const FIELD_SELECTOR = 'input, textarea, select, [contenteditable]:not([contenteditable="false"])';
33
+ const SwipeRow = React.forwardRef(({ children, label = 'Delete', onAction, disabled, theme, className, ...props }, ref) => {
34
+ const root = React.useRef(null);
35
+ const content = React.useRef(null);
36
+ const gesture = React.useRef(null);
37
+ const swallowUntil = React.useRef(0);
38
+ const [offset, setOffset] = React.useState(0);
39
+ const [settling, setSettling] = React.useState(false);
40
+ const [leaving, setLeaving] = React.useState(false);
41
+ const setRoot = (el) => {
42
+ root.current = el;
43
+ if (typeof ref === 'function')
44
+ ref(el);
45
+ else if (ref)
46
+ ref.current = el;
47
+ };
48
+ const width = () => root.current?.offsetWidth || 320;
49
+ const moveTo = (x) => {
50
+ setOffset(x);
51
+ const el = content.current;
52
+ if (!el)
53
+ return;
54
+ if (x)
55
+ el.style.transform = `translateX(${x}px)`;
56
+ else
57
+ el.style.removeProperty('transform');
58
+ };
59
+ // A row resting open closes when anything else on the page is touched.
60
+ React.useEffect(() => {
61
+ if (!offset || gesture.current || leaving)
62
+ return undefined;
63
+ const away = (e) => {
64
+ if (root.current?.contains(e.target))
65
+ return;
66
+ setSettling(true);
67
+ moveTo(0);
68
+ };
69
+ document.addEventListener('pointerdown', away, true);
70
+ return () => document.removeEventListener('pointerdown', away, true);
71
+ }, [offset, leaving]);
72
+ React.useEffect(() => {
73
+ if (disabled && offset && !leaving)
74
+ moveTo(0);
75
+ }, [disabled, offset, leaving]);
76
+ // The action that runs is the one current when the slide ends, not the one
77
+ // the slide started under.
78
+ const action = React.useRef(onAction);
79
+ action.current = onAction;
80
+ // The host removes the row on action; if it keeps it instead (a staple
81
+ // marked out stays on its shelf), the row comes back to centre.
82
+ React.useEffect(() => {
83
+ if (!leaving)
84
+ return undefined;
85
+ const t = window.setTimeout(() => {
86
+ action.current();
87
+ setLeaving(false);
88
+ setSettling(false);
89
+ moveTo(0);
90
+ }, LEAVE_MS);
91
+ return () => window.clearTimeout(t);
92
+ }, [leaving]);
93
+ const commit = () => {
94
+ setSettling(true);
95
+ setLeaving(true);
96
+ moveTo(-width());
97
+ };
98
+ const onPointerDown = (e) => {
99
+ props.onPointerDown?.(e);
100
+ if (disabled || leaving || e.pointerType === 'mouse' || !e.isPrimary)
101
+ return;
102
+ // A drag inside a field moves its caret or selection; it is not a swipe.
103
+ if (e.target.closest?.(FIELD_SELECTOR))
104
+ return;
105
+ gesture.current = {
106
+ x: e.clientX,
107
+ y: e.clientY,
108
+ base: offset,
109
+ claimed: false,
110
+ id: e.pointerId,
111
+ };
112
+ setSettling(false);
113
+ };
114
+ const onPointerMove = (e) => {
115
+ props.onPointerMove?.(e);
116
+ const g = gesture.current;
117
+ if (!g || e.pointerId !== g.id)
118
+ return;
119
+ const dx = e.clientX - g.x;
120
+ const dy = e.clientY - g.y;
121
+ if (!g.claimed) {
122
+ if (Math.abs(dy) > DECIDE_PX && Math.abs(dy) > Math.abs(dx)) {
123
+ gesture.current = null;
124
+ return;
125
+ }
126
+ if (Math.abs(dx) < DECIDE_PX || Math.abs(dx) < Math.abs(dy) * 1.2)
127
+ return;
128
+ g.claimed = true;
129
+ root.current?.setPointerCapture?.(e.pointerId);
130
+ }
131
+ moveTo(Math.min(0, g.base + dx));
132
+ };
133
+ const onPointerEnd = (e) => {
134
+ if (e.type === 'pointerup')
135
+ props.onPointerUp?.(e);
136
+ else
137
+ props.onPointerCancel?.(e);
138
+ const g = gesture.current;
139
+ gesture.current = null;
140
+ if (!g || e.pointerId !== g.id)
141
+ return;
142
+ if (!g.claimed) {
143
+ // A plain tap on a row resting open closes it rather than opening it.
144
+ if (g.base) {
145
+ swallowUntil.current = performance.now() + SWALLOW_MS;
146
+ setSettling(true);
147
+ moveTo(0);
148
+ }
149
+ return;
150
+ }
151
+ swallowUntil.current = performance.now() + SWALLOW_MS;
152
+ setSettling(true);
153
+ if (e.type !== 'pointercancel' && offset < -width() * COMMIT_SHARE)
154
+ commit();
155
+ else
156
+ moveTo(offset < -56 ? -88 : 0);
157
+ };
158
+ // The click a swipe ends with belongs to the swipe, not to the row under it.
159
+ // ⚠️ Time-boxed, not a flag: a drag usually produces NO click, and a flag
160
+ // left standing ate the next real tap — the one on the action itself.
161
+ const onClickCapture = (e) => {
162
+ props.onClickCapture?.(e);
163
+ if (performance.now() > swallowUntil.current)
164
+ return;
165
+ swallowUntil.current = 0;
166
+ e.stopPropagation();
167
+ e.preventDefault();
168
+ };
169
+ return (jsxs("div", { ...props, ref: setRoot, className: cn(swipeRowVariants({ theme }), className), "data-slot": 'swipe-row', "data-open": offset ? '' : undefined, "data-settling": settling ? '' : undefined, "data-leaving": leaving ? '' : undefined, onPointerDown: onPointerDown, onPointerMove: onPointerMove, onPointerUp: onPointerEnd, onPointerCancel: onPointerEnd, onClickCapture: onClickCapture, children: [offset ? (jsx("button", { type: 'button', className: s['swipe-row__action'], "data-slot": 'swipe-row-action', "data-armed": offset < -width() * COMMIT_SHARE ? '' : undefined, onPointerDown: e => e.stopPropagation(), onClick: e => {
170
+ e.stopPropagation();
171
+ if (!leaving)
172
+ commit();
173
+ }, children: label })) : null, jsx("div", { ref: content, className: s['swipe-row__content'], "data-slot": 'swipe-row-content', onTransitionEnd: () => setSettling(false), children: children })] }));
174
+ });
175
+ SwipeRow.displayName = 'SwipeRow';
176
+
177
+ export { SwipeRow };
178
+ //# sourceMappingURL=swipe-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipe-row.js","sources":["../../../src/ui/SwipeRow/swipe-row.tsx"],"sourcesContent":["import { type VariantProps } from 'class-variance-authority';\nimport cn from 'clsx';\nimport * as React from 'react';\nimport { swipeRowVariants } from './swipe-row-variants';\nimport s from './swipe-row.module.scss';\n\n/*\n * Swipe left to act on a row, the way a phone's own lists do.\n *\n * Short swipe: the row rests open on its action, and a tap on the action does\n * it. Long swipe, past half the row: it is done on release. A tap anywhere\n * else on an open row only closes it, so a swipe cannot also open what the row\n * opens.\n *\n * Touch and pen only. A mouse drag is how text gets selected, and a desktop\n * already has the row's own button one click away. A swipe row is an\n * accelerator, never the only way to the action.\n *\n * ⚠️ No transform at rest. A transformed ancestor becomes the containing block\n * for `position: fixed` children, so a card that lifts out of its row would\n * centre itself in the row instead of on the screen. The offset is written\n * only while the row is off centre and removed at zero.\n *\n * ⚠️ `touch-action: pan-y` gives vertical scrolling to the browser and leaves\n * horizontal movement to us. A gesture is not claimed until it has clearly\n * gone sideways, so a slightly diagonal scroll still scrolls.\n */\nconst DECIDE_PX = 8;\nconst REST_PX = 88;\nconst OPEN_AT_PX = 56;\nconst COMMIT_SHARE = 0.5;\nconst LEAVE_MS = 160;\nconst SWALLOW_MS = 350;\nconst FIELD_SELECTOR = 'input, textarea, select, [contenteditable]:not([contenteditable=\"false\"])';\n\ntype Gesture = { x: number; y: number; base: number; claimed: boolean; id: number };\n\nexport interface SwipeRowProps\n extends\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>,\n VariantProps<typeof swipeRowVariants> {\n children: React.ReactNode;\n /** What the revealed action says. */\n label?: React.ReactNode;\n /** Runs once the row has slid away, from a long swipe or a tap on the action. */\n onAction: () => void;\n disabled?: boolean;\n}\n\nconst SwipeRow = React.forwardRef<HTMLDivElement, SwipeRowProps>(\n ({ children, label = 'Delete', onAction, disabled, theme, className, ...props }, ref) => {\n const root = React.useRef<HTMLDivElement | null>(null);\n const content = React.useRef<HTMLDivElement | null>(null);\n const gesture = React.useRef<Gesture | null>(null);\n const swallowUntil = React.useRef(0);\n const [offset, setOffset] = React.useState(0);\n const [settling, setSettling] = React.useState(false);\n const [leaving, setLeaving] = React.useState(false);\n\n const setRoot = (el: HTMLDivElement | null) => {\n root.current = el;\n if (typeof ref === 'function') ref(el);\n else if (ref) ref.current = el;\n };\n\n const width = () => root.current?.offsetWidth || 320;\n\n const moveTo = (x: number) => {\n setOffset(x);\n const el = content.current;\n if (!el) return;\n if (x) el.style.transform = `translateX(${x}px)`;\n else el.style.removeProperty('transform');\n };\n\n // A row resting open closes when anything else on the page is touched.\n React.useEffect(() => {\n if (!offset || gesture.current || leaving) return undefined;\n const away = (e: PointerEvent) => {\n if (root.current?.contains(e.target as Node)) return;\n setSettling(true);\n moveTo(0);\n };\n document.addEventListener('pointerdown', away, true);\n return () => document.removeEventListener('pointerdown', away, true);\n }, [offset, leaving]);\n\n React.useEffect(() => {\n if (disabled && offset && !leaving) moveTo(0);\n }, [disabled, offset, leaving]);\n\n // The action that runs is the one current when the slide ends, not the one\n // the slide started under.\n const action = React.useRef(onAction);\n action.current = onAction;\n\n // The host removes the row on action; if it keeps it instead (a staple\n // marked out stays on its shelf), the row comes back to centre.\n React.useEffect(() => {\n if (!leaving) return undefined;\n const t = window.setTimeout(() => {\n action.current();\n setLeaving(false);\n setSettling(false);\n moveTo(0);\n }, LEAVE_MS);\n return () => window.clearTimeout(t);\n }, [leaving]);\n\n const commit = () => {\n setSettling(true);\n setLeaving(true);\n moveTo(-width());\n };\n\n const onPointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n props.onPointerDown?.(e);\n if (disabled || leaving || e.pointerType === 'mouse' || !e.isPrimary) return;\n // A drag inside a field moves its caret or selection; it is not a swipe.\n if ((e.target as Element).closest?.(FIELD_SELECTOR)) return;\n gesture.current = {\n x: e.clientX,\n y: e.clientY,\n base: offset,\n claimed: false,\n id: e.pointerId,\n };\n setSettling(false);\n };\n\n const onPointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n props.onPointerMove?.(e);\n const g = gesture.current;\n if (!g || e.pointerId !== g.id) return;\n const dx = e.clientX - g.x;\n const dy = e.clientY - g.y;\n if (!g.claimed) {\n if (Math.abs(dy) > DECIDE_PX && Math.abs(dy) > Math.abs(dx)) {\n gesture.current = null;\n return;\n }\n if (Math.abs(dx) < DECIDE_PX || Math.abs(dx) < Math.abs(dy) * 1.2) return;\n g.claimed = true;\n root.current?.setPointerCapture?.(e.pointerId);\n }\n moveTo(Math.min(0, g.base + dx));\n };\n\n const onPointerEnd = (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.type === 'pointerup') props.onPointerUp?.(e);\n else props.onPointerCancel?.(e);\n const g = gesture.current;\n gesture.current = null;\n if (!g || e.pointerId !== g.id) return;\n if (!g.claimed) {\n // A plain tap on a row resting open closes it rather than opening it.\n if (g.base) {\n swallowUntil.current = performance.now() + SWALLOW_MS;\n setSettling(true);\n moveTo(0);\n }\n return;\n }\n swallowUntil.current = performance.now() + SWALLOW_MS;\n setSettling(true);\n if (e.type !== 'pointercancel' && offset < -width() * COMMIT_SHARE) commit();\n else moveTo(offset < -OPEN_AT_PX ? -REST_PX : 0);\n };\n\n // The click a swipe ends with belongs to the swipe, not to the row under it.\n // ⚠️ Time-boxed, not a flag: a drag usually produces NO click, and a flag\n // left standing ate the next real tap — the one on the action itself.\n const onClickCapture = (e: React.MouseEvent<HTMLDivElement>) => {\n props.onClickCapture?.(e);\n if (performance.now() > swallowUntil.current) return;\n swallowUntil.current = 0;\n e.stopPropagation();\n e.preventDefault();\n };\n\n return (\n <div\n {...props}\n ref={setRoot}\n className={cn(swipeRowVariants({ theme }), className)}\n data-slot={'swipe-row'}\n data-open={offset ? '' : undefined}\n data-settling={settling ? '' : undefined}\n data-leaving={leaving ? '' : undefined}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerEnd}\n onPointerCancel={onPointerEnd}\n onClickCapture={onClickCapture}\n >\n {offset ? (\n <button\n type={'button'}\n className={s['swipe-row__action']}\n data-slot={'swipe-row-action'}\n data-armed={offset < -width() * COMMIT_SHARE ? '' : undefined}\n onPointerDown={e => e.stopPropagation()}\n onClick={e => {\n e.stopPropagation();\n if (!leaving) commit();\n }}\n >\n {label}\n </button>\n ) : null}\n <div\n ref={content}\n className={s['swipe-row__content']}\n data-slot={'swipe-row-content'}\n onTransitionEnd={() => setSettling(false)}\n >\n {children}\n </div>\n </div>\n );\n },\n);\nSwipeRow.displayName = 'SwipeRow';\n\nexport { SwipeRow };\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import './swipe-row.css';
2
+
3
+ var s = {"swipe-row":"swipe-row-module_swipe-row__szPTg","swipe-row--primary":"swipe-row-module_swipe-row--primary__XMstW","swipe-row--secondary":"swipe-row-module_swipe-row--secondary__TfWxG","swipe-row--destructive":"swipe-row-module_swipe-row--destructive__NAjaS","swipe-row--warning":"swipe-row-module_swipe-row--warning__ZbWIk","swipe-row--success":"swipe-row-module_swipe-row--success__rRTCs","swipe-row--info":"swipe-row-module_swipe-row--info__-gMEY","swipe-row--slate":"swipe-row-module_swipe-row--slate__nhTJY","swipe-row__content":"swipe-row-module_swipe-row__content__NzX4E","swipe-row__action":"swipe-row-module_swipe-row__action__xQhsj"};
4
+
5
+ export { s as default };
6
+ //# sourceMappingURL=swipe-row.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipe-row.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,5 +1,5 @@
1
1
  export declare const toggleVariants: (props?: ({
2
- variant?: "ghost" | "contained" | "outlined" | null | undefined;
2
+ variant?: "outlined" | "ghost" | "contained" | null | undefined;
3
3
  theme?: "inherit" | "primary" | "secondary" | "destructive" | "warning" | "success" | "info" | "slate" | null | undefined;
4
4
  size?: "sm" | "md" | "lg" | "xs" | null | undefined;
5
5
  iconOnly?: boolean | null | undefined;
@@ -15,6 +15,7 @@ export * from './Separator';
15
15
  export * from './StatCard';
16
16
  export * from './StatusDot';
17
17
  export * from './StepProgress';
18
+ export * from './SwipeRow';
18
19
  export * from './Switch';
19
20
  export * from './Table';
20
21
  export * from './TableActionCell';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
package/dist/ui.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { a as Alert, b as AlertBanner, c as AlertBannerProps, d as AlertDescription, f as AlertProps, g as AlertProvider, i as AlertTitle, j as Avatar, k as AvatarFallback, l as AvatarFallbackProps, m as AvatarImage, n as AvatarImageProps, o as AvatarProps, C as Chip, p as ChipProps, q as ChipSelect, r as ChipSelectOption, s as ChipSelectProps, t as CodeBlock, u as CodeBlockProps, D as DevIndicator, v as DevIndicatorProps, w as Dialog, x as DialogClose, y as DialogCloseProps, z as DialogContent, B as DialogContentProps, E as DialogDescription, F as DialogFooter, G as DialogHeader, H as DialogOverlay, I as DialogPortal, J as DialogProps, K as DialogTitle, L as DialogTrigger, M as DialogTriggerProps, N as EmptyState, O as EmptyStateProps, P as Icon, Q as IconProps, R as List, T as ListItem, U as ListItemProps, V as ListProps, W as Pagination, Y as ProgressBar, Z as ProgressBarProps, $ as Separator, a0 as SeparatorProps, a3 as StatCard, a4 as StatCardDirection, a5 as StatCardProps, a6 as StatCardSize, a7 as StatCardTheme, a8 as StatCardVariant, a9 as StatusDot, aa as StatusDotProps, ab as Step, ac as StepProgress, ad as StepProgressProps, ae as Switch, af as SwitchProps, ag as Table, ah as TableActionCell, ai as TableActionCellProps, aj as TableActionItem, ak as TableBody, al as TableBodyProps, am as TableCard, an as TableCell, ao as TableFooter, ap as TableHead, aq as TableHeader, ar as TableRow, as as TableSortableHeader, at as TableSortableHeaderProps, au as TableToolbar, av as TableToolbarProps, aw as Toggle, ax as ToggleGroup, ay as ToggleGroupProps, az as ToggleProps, aA as TrendDirection, aB as persistAlert, aC as statusDotVariants } from './index-p7kVnzRy.js';
2
- export { B as Button, a as ButtonProps, T as Tooltip, b as TooltipContent, c as TooltipContentProps, d as TooltipProps, e as TooltipProvider, f as TooltipTrigger, g as TooltipTriggerProps } from './tooltip-DXoSckt9.js';
1
+ export { a as Alert, b as AlertBanner, c as AlertBannerProps, d as AlertDescription, f as AlertProps, g as AlertProvider, i as AlertTitle, j as Avatar, k as AvatarFallback, l as AvatarFallbackProps, m as AvatarImage, n as AvatarImageProps, o as AvatarProps, C as Chip, p as ChipProps, q as ChipSelect, r as ChipSelectOption, s as ChipSelectProps, t as CodeBlock, u as CodeBlockProps, D as DevIndicator, v as DevIndicatorProps, w as Dialog, x as DialogClose, y as DialogCloseProps, z as DialogContent, B as DialogContentProps, E as DialogDescription, F as DialogFooter, G as DialogHeader, H as DialogOverlay, I as DialogPortal, J as DialogProps, K as DialogTitle, L as DialogTrigger, M as DialogTriggerProps, N as EmptyState, O as EmptyStateProps, P as Icon, Q as IconProps, R as List, T as ListItem, U as ListItemProps, V as ListProps, W as Pagination, Y as ProgressBar, Z as ProgressBarProps, $ as Separator, a0 as SeparatorProps, a3 as StatCard, a4 as StatCardDirection, a5 as StatCardProps, a6 as StatCardSize, a7 as StatCardTheme, a8 as StatCardVariant, a9 as StatusDot, aa as StatusDotProps, ab as Step, ac as StepProgress, ad as StepProgressProps, ae as SwipeRow, af as SwipeRowProps, ag as Switch, ah as SwitchProps, ai as Table, aj as TableActionCell, ak as TableActionCellProps, al as TableActionItem, am as TableBody, an as TableBodyProps, ao as TableCard, ap as TableCell, aq as TableFooter, ar as TableHead, as as TableHeader, at as TableRow, au as TableSortableHeader, av as TableSortableHeaderProps, aw as TableToolbar, ax as TableToolbarProps, ay as Toggle, az as ToggleGroup, aA as ToggleGroupProps, aB as ToggleProps, aC as TrendDirection, aD as persistAlert, aE as statusDotVariants } from './index-C7SAfZfl.js';
2
+ export { B as Button, a as ButtonProps, T as Tooltip, b as TooltipContent, c as TooltipContentProps, d as TooltipProps, e as TooltipProvider, f as TooltipTrigger, g as TooltipTriggerProps } from './tooltip-ChpsbkOU.js';
3
3
  import 'class-variance-authority';
4
4
  import 'react';
5
5
  import 'class-variance-authority/types';
package/dist/ui.js CHANGED
@@ -18,6 +18,7 @@ export { StatCard } from './ui/StatCard/stat-card.js';
18
18
  export { StatusDot } from './ui/StatusDot/status-dot.js';
19
19
  export { statusDotVariants } from './ui/StatusDot/status-dot-variants.js';
20
20
  export { StepProgress } from './ui/StepProgress/step-progress.js';
21
+ export { SwipeRow } from './ui/SwipeRow/swipe-row.js';
21
22
  export { Switch } from './ui/Switch/switch.js';
22
23
  export { Table, TableBody, TableCard, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableSortableHeader } from './ui/Table/table.js';
23
24
  export { TableActionCell } from './ui/TableActionCell/table-action-cell.js';
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}