@floegence/floe-webapp-core 0.86.58 → 0.86.62

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 (103) hide show
  1. package/dist/components/chat/blocks/BlockRenderer.js +1 -1
  2. package/dist/components/chat/blocks/CodeDiffBlock.js +56 -56
  3. package/dist/components/chat/blocks/ImageBlock.js +1 -1
  4. package/dist/components/chat/blocks/ToolCallBlock.js +57 -57
  5. package/dist/components/chat/status/ConnectionStatus.js +10 -10
  6. package/dist/components/deck/DeckCell.js +25 -25
  7. package/dist/components/deck/DeckContextMenu.js +20 -20
  8. package/dist/components/deck/DeckGrid.js +1 -1
  9. package/dist/components/deck/DeckTopBar.js +42 -42
  10. package/dist/components/deck/DropZonePreview.js +6 -6
  11. package/dist/components/deck/LayoutSelector.js +53 -53
  12. package/dist/components/deck/WidgetFrame.js +28 -28
  13. package/dist/components/deck/WidgetPalette.js +31 -31
  14. package/dist/components/deck/WidgetTypeSwitcher.js +31 -31
  15. package/dist/components/file-browser/Breadcrumb.js +27 -27
  16. package/dist/components/file-browser/DirectoryTree.js +15 -15
  17. package/dist/components/file-browser/DragPreview.js +58 -58
  18. package/dist/components/file-browser/FileBrowser.js +17 -17
  19. package/dist/components/file-browser/FileBrowserStatusBar.js +18 -18
  20. package/dist/components/file-browser/FileBrowserToolbar.js +27 -27
  21. package/dist/components/file-browser/FileContextMenu.js +47 -47
  22. package/dist/components/file-browser/FileGridView.js +53 -51
  23. package/dist/components/file-browser/FileItemDecorations.js +30 -27
  24. package/dist/components/file-browser/FileListView.js +114 -114
  25. package/dist/components/icons/index.js +1357 -1357
  26. package/dist/components/launchpad/Launchpad.js +14 -14
  27. package/dist/components/launchpad/LaunchpadGrid.js +7 -7
  28. package/dist/components/launchpad/LaunchpadItem.js +11 -11
  29. package/dist/components/launchpad/LaunchpadPagination.js +16 -16
  30. package/dist/components/launchpad/LaunchpadSearch.js +9 -9
  31. package/dist/components/layout/ActivityBar.js +52 -55
  32. package/dist/components/layout/BottomBar.js +17 -17
  33. package/dist/components/layout/MobileNavigationPanel.js +36 -36
  34. package/dist/components/layout/MobileTabBar.js +39 -39
  35. package/dist/components/layout/Panel.js +16 -16
  36. package/dist/components/layout/ResizeHandle.js +19 -19
  37. package/dist/components/layout/Shell.js +50 -50
  38. package/dist/components/layout/Sidebar.js +37 -36
  39. package/dist/components/layout/SidebarPane.js +19 -19
  40. package/dist/components/layout/TopBar.js +16 -16
  41. package/dist/components/layout/TopBarIconButton.js +15 -15
  42. package/dist/components/loading/LoadingOverlay.js +9 -9
  43. package/dist/components/loading/Skeleton.js +11 -11
  44. package/dist/components/ui/Button.js +36 -36
  45. package/dist/components/ui/Card.d.ts +11 -62
  46. package/dist/components/ui/Card.js +64 -237
  47. package/dist/components/ui/Checkbox.js +79 -79
  48. package/dist/components/ui/CommandPalette.js +56 -55
  49. package/dist/components/ui/Dialog.js +91 -93
  50. package/dist/components/ui/DirectoryInput.js +22 -22
  51. package/dist/components/ui/DirectoryPicker.js +8 -8
  52. package/dist/components/ui/Dropdown.js +89 -87
  53. package/dist/components/ui/FeedbackIndicator.js +57 -57
  54. package/dist/components/ui/FileOpenPicker.js +37 -37
  55. package/dist/components/ui/FileSavePicker.js +41 -41
  56. package/dist/components/ui/FloatingWindow.js +266 -261
  57. package/dist/components/ui/Form.js +76 -76
  58. package/dist/components/ui/HighlightBlock.js +14 -14
  59. package/dist/components/ui/Input.js +106 -109
  60. package/dist/components/ui/Pagination.js +86 -86
  61. package/dist/components/ui/Popover.d.ts +33 -0
  62. package/dist/components/ui/Popover.js +133 -0
  63. package/dist/components/ui/ProcessingIndicator.js +344 -345
  64. package/dist/components/ui/Progress.js +94 -97
  65. package/dist/components/ui/QuoteBlock.js +25 -25
  66. package/dist/components/ui/Radio.js +91 -91
  67. package/dist/components/ui/SegmentedControl.js +24 -24
  68. package/dist/components/ui/Stepper.js +68 -60
  69. package/dist/components/ui/Switch.js +25 -25
  70. package/dist/components/ui/Tabs.js +99 -87
  71. package/dist/components/ui/Tag.js +12 -9
  72. package/dist/components/ui/Tooltip.js +30 -30
  73. package/dist/components/ui/floatingPresence.d.ts +7 -0
  74. package/dist/components/ui/floatingPresence.js +80 -39
  75. package/dist/components/ui/index.d.ts +2 -1
  76. package/dist/components/ui/picker/DirectoryFavorites.js +27 -27
  77. package/dist/components/ui/picker/PickerBase.js +107 -107
  78. package/dist/context/NotificationContext.js +4 -4
  79. package/dist/context/ThemeContext.js +71 -70
  80. package/dist/floe.css +205 -43
  81. package/dist/full.js +650 -652
  82. package/dist/language.css +320 -0
  83. package/dist/primitives.css +23 -17
  84. package/dist/standalone.css +1 -0
  85. package/dist/styles/themes/classicSemanticTokens.d.ts +122 -122
  86. package/dist/styles/themes/classicSemanticTokens.js +140 -138
  87. package/dist/styles/themes/index.d.ts +3 -1
  88. package/dist/styles/themes/index.js +10 -10
  89. package/dist/styles/themes/presets.d.ts +2 -2
  90. package/dist/styles/themes/presets.js +34 -34
  91. package/dist/styles/tokens.d.ts +152 -68
  92. package/dist/styles/tokens.js +87 -49
  93. package/dist/styles.css +1 -1
  94. package/dist/surface.css +161 -116
  95. package/dist/themes/dark.css +64 -64
  96. package/dist/themes/light.css +64 -64
  97. package/dist/ui.css +171 -255
  98. package/dist/ui.js +176 -178
  99. package/dist/utils/hotInteraction.d.ts +7 -0
  100. package/dist/utils/hotInteraction.js +12 -12
  101. package/dist/widgets/TerminalWidget.js +28 -28
  102. package/dist/workbench-composition.css +15 -15
  103. package/package.json +1 -1
@@ -1,14 +1,14 @@
1
- import { createComponent as o, spread as i, mergeProps as s, insert as a, template as c } from "solid-js/web";
2
- import { splitProps as u, Show as p } from "solid-js";
3
- import { cn as d } from "../../utils/cn.js";
4
- import { Tooltip as b } from "../ui/Tooltip.js";
5
- var m = /* @__PURE__ */ c("<button type=button>");
6
- function y(n) {
7
- const [e, l] = u(n, ["label", "children", "tooltip", "tooltipPlacement", "tooltipDelay", "class", "disabled"]), r = () => (() => {
8
- var t = m();
9
- return i(t, s({
1
+ import { createComponent as r, spread as i, mergeProps as a, insert as s, template as c } from "solid-js/web";
2
+ import { splitProps as u, Show as d } from "solid-js";
3
+ import { cn as p } from "../../utils/cn.js";
4
+ import { Tooltip as f } from "../ui/Tooltip.js";
5
+ var b = /* @__PURE__ */ c("<button type=button>");
6
+ function y(l) {
7
+ const [e, n] = u(l, ["label", "children", "tooltip", "tooltipPlacement", "tooltipDelay", "class", "disabled"]), o = () => (() => {
8
+ var t = b();
9
+ return i(t, a({
10
10
  get class() {
11
- return d("inline-flex items-center justify-center", "w-8 h-8 rounded cursor-pointer", "hover:bg-muted/60 active:bg-muted/80 transition-colors", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset", "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed", e.class);
11
+ return p("inline-flex items-center justify-center", "w-[var(--floe-control-height-md)] h-[var(--floe-control-height-md)]", "rounded-control cursor-pointer", "text-[var(--floe-ink-soft)] hover:bg-[var(--floe-state-hover)]", "active:bg-[var(--floe-state-press)]", "transition-[background-color,color] duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset", "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed", e.class);
12
12
  },
13
13
  get "aria-label"() {
14
14
  return e.label;
@@ -16,17 +16,17 @@ function y(n) {
16
16
  get disabled() {
17
17
  return e.disabled;
18
18
  }
19
- }, l), !1, !0), a(t, () => e.children), t;
19
+ }, n), !1, !0), s(t, () => e.children), t;
20
20
  })();
21
- return o(p, {
21
+ return r(d, {
22
22
  get when() {
23
23
  return e.tooltip !== !1;
24
24
  },
25
25
  get fallback() {
26
- return r();
26
+ return o();
27
27
  },
28
28
  get children() {
29
- return o(b, {
29
+ return r(f, {
30
30
  get content() {
31
31
  return e.tooltip ?? e.label;
32
32
  },
@@ -37,7 +37,7 @@ function y(n) {
37
37
  return e.tooltipDelay ?? 0;
38
38
  },
39
39
  get children() {
40
- return r();
40
+ return o();
41
41
  }
42
42
  });
43
43
  }
@@ -1,12 +1,12 @@
1
- import { insert as n, createComponent as r, effect as o, className as d, Portal as m, template as c } from "solid-js/web";
1
+ import { insert as n, createComponent as r, effect as o, className as m, Portal as d, template as c } from "solid-js/web";
2
2
  import { Show as l } from "solid-js";
3
- import { cn as u } from "../../utils/cn.js";
4
- import { SnakeLoader as f } from "./SnakeLoader.js";
5
- var g = /* @__PURE__ */ c('<p class="text-sm text-muted-foreground processing-text-glow">'), b = /* @__PURE__ */ c('<div><div class=relative><div class="absolute -inset-8 rounded-full floe-loader-ambient"style="background:radial-gradient(circle, color-mix(in srgb, var(--primary) 12%, transparent) 0%, transparent 70%)">');
6
- function k(e) {
3
+ import { cn as f } from "../../utils/cn.js";
4
+ import { SnakeLoader as u } from "./SnakeLoader.js";
5
+ var g = /* @__PURE__ */ c('<p class="text-sm text-[var(--floe-ink-soft)] processing-text-glow">'), b = /* @__PURE__ */ c('<div><div class=relative><div class="absolute -inset-8 rounded-full floe-loader-ambient"style="background:radial-gradient(circle, color-mix(in srgb, var(--primary) 12%, transparent) 0%, transparent 70%)">');
6
+ function p(e) {
7
7
  const a = (() => {
8
8
  var t = b(), i = t.firstChild;
9
- return i.firstChild, n(i, r(f, {
9
+ return i.firstChild, n(i, r(u, {
10
10
  size: "lg"
11
11
  }), null), n(t, r(l, {
12
12
  get when() {
@@ -16,7 +16,7 @@ function k(e) {
16
16
  var s = g();
17
17
  return n(s, () => e.message), s;
18
18
  }
19
- }), null), o(() => d(t, u("flex flex-col items-center justify-center gap-4", "bg-background/80 backdrop-blur-sm", e.fullscreen ? "fixed inset-0 z-50" : "absolute inset-0", "animate-in fade-in", e.class))), t;
19
+ }), null), o(() => m(t, f("flex flex-col items-center justify-center gap-4", "bg-background/80 backdrop-blur-sm", e.fullscreen ? "fixed inset-0 z-50" : "absolute inset-0", "animate-in fade-in", e.class))), t;
20
20
  })();
21
21
  return r(l, {
22
22
  get when() {
@@ -29,7 +29,7 @@ function k(e) {
29
29
  },
30
30
  fallback: a,
31
31
  get children() {
32
- return r(m, {
32
+ return r(d, {
33
33
  children: a
34
34
  });
35
35
  }
@@ -38,5 +38,5 @@ function k(e) {
38
38
  });
39
39
  }
40
40
  export {
41
- k as LoadingOverlay
41
+ p as LoadingOverlay
42
42
  };
@@ -1,14 +1,14 @@
1
1
  import { effect as i, className as u, insert as s, createComponent as r, template as f } from "solid-js/web";
2
2
  import { For as h } from "solid-js";
3
3
  import { cn as o } from "../../utils/cn.js";
4
- var m = /* @__PURE__ */ f("<div>"), p = /* @__PURE__ */ f('<div><div class="flex items-center gap-3"><div class="space-y-2 flex-1">'), _ = /* @__PURE__ */ f('<div class="flex items-center gap-3"><div class="flex-1 space-y-1">');
4
+ var m = /* @__PURE__ */ f("<div>"), p = /* @__PURE__ */ f('<div><div class="flex items-center gap-3"><div class="space-y-2 flex-1">'), v = /* @__PURE__ */ f('<div class="flex items-center gap-3"><div class="flex-1 space-y-1">');
5
5
  function c(n) {
6
6
  return (() => {
7
7
  var l = m();
8
8
  return i(() => u(l, o("rounded-md floe-skeleton", n.class))), l;
9
9
  })();
10
10
  }
11
- function v(n) {
11
+ function _(n) {
12
12
  const l = () => n.lines ?? 3, a = () => Array.from({
13
13
  length: l()
14
14
  }, (e, t) => t);
@@ -26,7 +26,7 @@ function v(n) {
26
26
  })), i(() => u(e, o("space-y-2", n.class))), e;
27
27
  })();
28
28
  }
29
- function y(n) {
29
+ function x(n) {
30
30
  return (() => {
31
31
  var l = p(), a = l.firstChild, e = a.firstChild;
32
32
  return s(a, r(c, {
@@ -35,12 +35,12 @@ function y(n) {
35
35
  class: "h-4 w-1/3"
36
36
  }), null), s(e, r(c, {
37
37
  class: "h-3 w-1/4"
38
- }), null), s(l, r(v, {
38
+ }), null), s(l, r(_, {
39
39
  lines: 2
40
- }), null), i(() => u(l, o("rounded-lg border border-border p-4 space-y-4", n.class))), l;
40
+ }), null), i(() => u(l, o("rounded-control border border-[var(--floe-line)] p-4 space-y-4", n.class))), l;
41
41
  })();
42
42
  }
43
- function x(n) {
43
+ function y(n) {
44
44
  const l = () => n.count ?? 5, a = () => Array.from({
45
45
  length: l()
46
46
  }, (e, t) => t);
@@ -51,9 +51,9 @@ function x(n) {
51
51
  return a();
52
52
  },
53
53
  children: () => (() => {
54
- var t = _(), d = t.firstChild;
54
+ var t = v(), d = t.firstChild;
55
55
  return s(t, r(c, {
56
- class: "h-8 w-8 rounded"
56
+ class: "h-8 w-8 rounded-xs"
57
57
  }), d), s(d, r(c, {
58
58
  class: "h-4 w-2/3"
59
59
  }), null), s(d, r(c, {
@@ -65,7 +65,7 @@ function x(n) {
65
65
  }
66
66
  export {
67
67
  c as Skeleton,
68
- y as SkeletonCard,
69
- x as SkeletonList,
70
- v as SkeletonText
68
+ x as SkeletonCard,
69
+ y as SkeletonList,
70
+ _ as SkeletonText
71
71
  };
@@ -1,23 +1,23 @@
1
- import { spread as u, mergeProps as g, insert as n, createComponent as t, memo as m, Dynamic as h, effect as b, className as f, template as d } from "solid-js/web";
2
- import { splitProps as p, Show as i } from "solid-js";
3
- import { cn as s } from "../../utils/cn.js";
4
- import { Loader2 as v } from "../icons/index.js";
5
- var x = /* @__PURE__ */ d("<span aria-hidden=true>"), y = /* @__PURE__ */ d("<button type=button data-floe-control=button data-floe-surface-part=action>");
1
+ import { spread as g, mergeProps as f, insert as n, createComponent as o, memo as u, Dynamic as v, effect as h, className as m, template as s } from "solid-js/web";
2
+ import { splitProps as p, Show as l } from "solid-js";
3
+ import { cn as i } from "../../utils/cn.js";
4
+ import { Loader2 as b } from "../icons/index.js";
5
+ var x = /* @__PURE__ */ s("<span aria-hidden=true>"), y = /* @__PURE__ */ s("<button type=button data-floe-control=button data-floe-surface-part=action>");
6
6
  const w = {
7
- default: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 active:bg-primary/80",
8
- primary: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 active:bg-primary/80",
9
- secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 active:bg-secondary/70",
10
- outline: "border border-border bg-background shadow-sm hover:bg-accent hover:text-accent-foreground active:bg-accent/80",
11
- ghost: "hover:bg-accent hover:text-accent-foreground active:bg-accent/80",
12
- "ghost-destructive": "bg-transparent text-muted-foreground hover:bg-error hover:text-error-foreground active:bg-error/80",
13
- destructive: "bg-error text-error-foreground shadow-sm hover:bg-error/90 active:bg-error/80"
14
- }, z = {
15
- xs: "h-6 px-2 text-[11px] rounded",
16
- sm: "h-7 px-2.5 text-xs rounded",
17
- md: "h-8 px-3 text-xs rounded-md",
18
- lg: "h-9 px-4 text-sm rounded-md",
19
- icon: "h-8 w-8 rounded-md"
20
- }, S = {
7
+ default: "bg-primary text-primary-foreground hover:bg-[color-mix(in_srgb,var(--primary)_92%,var(--primary-foreground))]",
8
+ primary: "bg-primary text-primary-foreground hover:bg-[color-mix(in_srgb,var(--primary)_92%,var(--primary-foreground))]",
9
+ secondary: "bg-[var(--floe-well)] text-foreground hover:bg-[var(--floe-well-strong)]",
10
+ outline: "border border-[var(--floe-line-strong)] bg-transparent text-foreground hover:bg-[var(--floe-state-hover)] hover:border-[color-mix(in_srgb,var(--foreground)_26%,transparent)]",
11
+ ghost: "bg-transparent text-[var(--floe-ink-soft)] hover:bg-[var(--floe-state-hover)] hover:text-foreground",
12
+ "ghost-destructive": "bg-transparent text-[var(--floe-ink-soft)] hover:bg-[color-mix(in_srgb,var(--error)_12%,transparent)] hover:text-error",
13
+ destructive: "bg-error text-error-foreground hover:bg-[color-mix(in_srgb,var(--error)_88%,var(--foreground))]"
14
+ }, _ = {
15
+ xs: "h-[var(--floe-control-height-xs)] px-2 text-[length:var(--floe-type-caption)] rounded-sm",
16
+ sm: "h-[var(--floe-control-height-sm)] px-2.5 text-[length:var(--floe-type-control)] rounded-md",
17
+ md: "h-[var(--floe-control-height-md)] px-3 text-[length:var(--floe-type-control)] rounded-control",
18
+ lg: "h-[var(--floe-control-height-lg)] px-3.5 text-[length:var(--floe-type-control)] rounded-control",
19
+ icon: "h-[var(--floe-control-height-md)] w-[var(--floe-control-height-md)] rounded-control"
20
+ }, k = {
21
21
  xs: "w-3 h-3",
22
22
  sm: "w-3.5 h-3.5",
23
23
  md: "w-3.5 h-3.5",
@@ -25,48 +25,48 @@ const w = {
25
25
  icon: "w-4 h-4"
26
26
  };
27
27
  function P(a) {
28
- const [e, c] = p(a, ["variant", "size", "loading", "icon", "class", "children", "disabled"]), l = () => S[e.size ?? "md"];
28
+ const [r, c] = p(a, ["variant", "size", "loading", "icon", "class", "children", "disabled"]), d = () => k[r.size ?? "md"];
29
29
  return (() => {
30
- var r = y();
31
- return u(r, g({
30
+ var e = y();
31
+ return g(e, f({
32
32
  get "data-floe-surface"() {
33
- return e.variant === "ghost" || e.variant === "ghost-destructive" ? void 0 : "raised";
33
+ return r.variant === "ghost" || r.variant === "ghost-destructive" || r.variant === "outline" ? void 0 : "flat";
34
34
  },
35
35
  get class() {
36
- return s("inline-flex min-w-max items-center justify-center gap-1.5 whitespace-nowrap font-medium cursor-pointer", "transition-[color,background-color,border-color] duration-120", "focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed", w[e.variant ?? "default"], z[e.size ?? "md"], e.class);
36
+ return i("inline-flex min-w-max items-center justify-center gap-1.5 whitespace-nowrap font-medium cursor-pointer", "tracking-[var(--floe-tracking-normal)]", "transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", "active:scale-[var(--floe-press-scale)]", "focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--floe-plane)]", "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed", w[r.variant ?? "default"], _[r.size ?? "md"], r.class);
37
37
  },
38
38
  get disabled() {
39
- return e.disabled || e.loading;
39
+ return r.disabled || r.loading;
40
40
  },
41
41
  get "aria-busy"() {
42
- return e.loading || void 0;
42
+ return r.loading || void 0;
43
43
  }
44
- }, c), !1, !0), n(r, t(i, {
44
+ }, c), !1, !0), n(e, o(l, {
45
45
  get when() {
46
- return e.icon || "loading" in a;
46
+ return r.icon || "loading" in a;
47
47
  },
48
48
  get children() {
49
- var o = x();
50
- return n(o, t(i, {
49
+ var t = x();
50
+ return n(t, o(l, {
51
51
  get when() {
52
- return e.loading;
52
+ return r.loading;
53
53
  },
54
54
  get fallback() {
55
- return m(() => !!e.icon)() && t(h, {
55
+ return u(() => !!r.icon)() && o(v, {
56
56
  get component() {
57
- return e.icon;
57
+ return r.icon;
58
58
  },
59
59
  class: "h-full w-full"
60
60
  });
61
61
  },
62
62
  get children() {
63
- return t(v, {
63
+ return o(b, {
64
64
  class: "h-full w-full animate-spin"
65
65
  });
66
66
  }
67
- })), b(() => f(o, s("inline-flex shrink-0 items-center justify-center", l()))), o;
67
+ })), h(() => m(t, i("inline-flex shrink-0 items-center justify-center", d()))), t;
68
68
  }
69
- }), null), n(r, () => e.children, null), r;
69
+ }), null), n(e, () => r.children, null), e;
70
70
  })();
71
71
  }
72
72
  export {
@@ -1,79 +1,28 @@
1
1
  import { type JSX } from 'solid-js';
2
- export type CardVariant = 'default' | 'hover-lift' | 'gradient-border' | 'glass' | 'spotlight' | 'shimmer' | 'glow';
2
+ export type CardVariant = 'default' | 'interactive' | 'well';
3
3
  export interface CardProps extends JSX.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * `default` is a filled content plane on the canvas. `interactive` adds the
6
+ * language's hover lift and first elevation step for clickable cards.
7
+ * `well` recesses the card into its host, for grouped secondary content.
8
+ */
4
9
  variant?: CardVariant;
5
- /** Enable 3D perspective tilt on hover (works best with hover-lift and spotlight variants) */
6
- enableTilt?: boolean;
7
- /** Custom gradient colors for gradient-border variant */
8
- gradientColors?: string;
9
- /** Glow color for glow variant */
10
- glowColor?: string;
11
10
  }
12
11
  /**
13
- * Base Card component
12
+ * Card — a plane, not a box.
13
+ *
14
+ * Separation comes from the fill step against the canvas and from the gutter
15
+ * around it; the card itself carries no contour and no resting shadow. That is
16
+ * what keeps a page of cards calm instead of drawing a grid of rectangles.
14
17
  */
15
18
  export declare function Card(props: CardProps): JSX.Element;
16
- /**
17
- * Card header component
18
- */
19
19
  export type CardHeaderProps = JSX.HTMLAttributes<HTMLDivElement>;
20
20
  export declare function CardHeader(props: CardHeaderProps): JSX.Element;
21
- /**
22
- * Card title component
23
- */
24
21
  export type CardTitleProps = JSX.HTMLAttributes<HTMLHeadingElement>;
25
22
  export declare function CardTitle(props: CardTitleProps): JSX.Element;
26
- /**
27
- * Card description component
28
- */
29
23
  export type CardDescriptionProps = JSX.HTMLAttributes<HTMLParagraphElement>;
30
24
  export declare function CardDescription(props: CardDescriptionProps): JSX.Element;
31
- /**
32
- * Card content component
33
- */
34
25
  export type CardContentProps = JSX.HTMLAttributes<HTMLDivElement>;
35
26
  export declare function CardContent(props: CardContentProps): JSX.Element;
36
- /**
37
- * Card footer component
38
- */
39
27
  export type CardFooterProps = JSX.HTMLAttributes<HTMLDivElement>;
40
28
  export declare function CardFooter(props: CardFooterProps): JSX.Element;
41
- /**
42
- * Interactive 3D Card with mouse tracking
43
- */
44
- export interface Interactive3DCardProps extends JSX.HTMLAttributes<HTMLDivElement> {
45
- /** Intensity of the 3D effect (1-20, default 10) */
46
- intensity?: number;
47
- /** Enable shine effect */
48
- shine?: boolean;
49
- /** Border glow on hover */
50
- borderGlow?: boolean;
51
- }
52
- export declare function Interactive3DCard(props: Interactive3DCardProps): JSX.Element;
53
- /**
54
- * Animated Border Card with rotating gradient
55
- */
56
- export interface AnimatedBorderCardProps extends JSX.HTMLAttributes<HTMLDivElement> {
57
- /** Animation duration in seconds */
58
- duration?: number;
59
- /** Border width in pixels */
60
- borderWidth?: number;
61
- /** Gradient colors (Tailwind classes) */
62
- colors?: string;
63
- }
64
- export declare function AnimatedBorderCard(props: AnimatedBorderCardProps): JSX.Element;
65
- /**
66
- * Neon Glow Card
67
- */
68
- export interface NeonCardProps extends JSX.HTMLAttributes<HTMLDivElement> {
69
- /** Neon color (CSS color value) */
70
- color?: string;
71
- /** Pulse animation */
72
- pulse?: boolean;
73
- }
74
- export declare function NeonCard(props: NeonCardProps): JSX.Element;
75
- /**
76
- * Morphing Card with blob-like background
77
- */
78
- export type MorphCardProps = JSX.HTMLAttributes<HTMLDivElement>;
79
- export declare function MorphCard(props: MorphCardProps): JSX.Element;