@lssm/lib.design-system 0.0.0-canary-20251210171026 → 0.0.0-canary-20251212210835

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.
@@ -11,7 +11,7 @@ function Input$1({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, pla
11
11
  className,
12
12
  value,
13
13
  defaultValue,
14
- onChange: onChange ? (e) => onChange?.(e.target.value) : void 0,
14
+ onChange,
15
15
  onFocus,
16
16
  onBlur,
17
17
  placeholder,
@@ -6,10 +6,10 @@ import { Textarea } from "@lssm/lib.ui-kit-web/ui/textarea";
6
6
  //#region src/components/atoms/Textarea.tsx
7
7
  function Textarea$1({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, name, className, rows, keyboard, ...rest }) {
8
8
  const webKeyboard = mapKeyboardToWeb(keyboard);
9
- const handleChange = React.useCallback((e) => onChange?.(e.target.value), [onChange]);
9
+ const handleChange = React.useCallback((e) => onChange?.(e), [onChange]);
10
10
  const handleKeyDown = React.useCallback((e) => {
11
11
  if (e.key === "Enter" && webKeyboard.type !== "search") {
12
- if (e.metaKey || e.ctrlKey) onSubmit?.();
12
+ if (e.metaKey || e.ctrlKey) onSubmit?.(e);
13
13
  }
14
14
  }, [onSubmit, webKeyboard.type]);
15
15
  return /* @__PURE__ */ jsx(Textarea, {
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+
3
+ import "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
6
+
7
+ //#region src/components/forms/ActionForm.tsx
8
+ function ActionForm({ action, children, className, ...rest }) {
9
+ return /* @__PURE__ */ jsx("form", {
10
+ action,
11
+ className: cn("space-y-3", className),
12
+ ...rest,
13
+ children
14
+ });
15
+ }
16
+
17
+ //#endregion
18
+ export { ActionForm };
@@ -13,9 +13,9 @@ function ContactFields({ value, onChange, disabled }) {
13
13
  className: "space-y-2",
14
14
  children: [/* @__PURE__ */ jsx(Label, { children: "Nom" }), /* @__PURE__ */ jsx(Input, {
15
15
  value: value.name,
16
- onChange: (v) => onChange({
16
+ onChange: (e) => onChange({
17
17
  ...value,
18
- name: v
18
+ name: e.target.value
19
19
  }),
20
20
  disabled
21
21
  })]
@@ -25,9 +25,9 @@ function ContactFields({ value, onChange, disabled }) {
25
25
  children: [/* @__PURE__ */ jsx(Label, { children: "Email" }), /* @__PURE__ */ jsx(Input, {
26
26
  type: "email",
27
27
  value: value.email,
28
- onChange: (v) => onChange({
28
+ onChange: (e) => onChange({
29
29
  ...value,
30
- email: v
30
+ email: e.target.value
31
31
  }),
32
32
  disabled
33
33
  })]
@@ -36,9 +36,9 @@ function ContactFields({ value, onChange, disabled }) {
36
36
  className: "space-y-2",
37
37
  children: [/* @__PURE__ */ jsx(Label, { children: "Objet" }), /* @__PURE__ */ jsx(Input, {
38
38
  value: value.subject,
39
- onChange: (v) => onChange({
39
+ onChange: (e) => onChange({
40
40
  ...value,
41
- subject: v
41
+ subject: e.target.value
42
42
  }),
43
43
  disabled
44
44
  })]
@@ -47,9 +47,9 @@ function ContactFields({ value, onChange, disabled }) {
47
47
  className: "space-y-2",
48
48
  children: [/* @__PURE__ */ jsx(Label, { children: "Message" }), /* @__PURE__ */ jsx(Textarea, {
49
49
  value: value.message,
50
- onChange: (v) => onChange({
50
+ onChange: (e) => onChange({
51
51
  ...value,
52
- message: v
52
+ message: e.target.value
53
53
  }),
54
54
  disabled,
55
55
  rows: 6
@@ -0,0 +1,20 @@
1
+ import "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
4
+ import { Card, CardContent as CardContent$1, CardDescription, CardHeader as CardHeader$1, CardTitle as CardTitle$1 } from "@lssm/lib.ui-kit-web/ui/card";
5
+
6
+ //#region src/components/marketing/MarketingCard.tsx
7
+ const toneClasses = {
8
+ default: "border-border/60 bg-card/90",
9
+ muted: "border-border/50 bg-muted/50",
10
+ elevated: "border-border/50 bg-card shadow-lg shadow-black/5"
11
+ };
12
+ function MarketingCard({ tone = "default", className, ...props }) {
13
+ return /* @__PURE__ */ jsx(Card, {
14
+ className: cn("backdrop-blur transition-shadow", toneClasses[tone], className),
15
+ ...props
16
+ });
17
+ }
18
+
19
+ //#endregion
20
+ export { CardContent$1 as CardContent, CardDescription, CardHeader$1 as CardHeader, CardTitle$1 as CardTitle, MarketingCard };
@@ -0,0 +1,28 @@
1
+ import { MarketingSection } from "./MarketingSection.js";
2
+ import "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
6
+
7
+ //#region src/components/marketing/MarketingCardsSection.tsx
8
+ const gridVariants = cva("grid gap-6", {
9
+ variants: { columns: {
10
+ 1: "grid-cols-1",
11
+ 2: "grid-cols-1 md:grid-cols-2",
12
+ 3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
13
+ 4: "grid-cols-1 md:grid-cols-2 lg:grid-cols-4"
14
+ } },
15
+ defaultVariants: { columns: 3 }
16
+ });
17
+ function MarketingCardsSection({ children, columns, gridClassName, ...sectionProps }) {
18
+ return /* @__PURE__ */ jsx(MarketingSection, {
19
+ ...sectionProps,
20
+ children: /* @__PURE__ */ jsx("div", {
21
+ className: cn(gridVariants({ columns }), gridClassName),
22
+ children
23
+ })
24
+ });
25
+ }
26
+
27
+ //#endregion
28
+ export { MarketingCardsSection };
@@ -0,0 +1,52 @@
1
+ import { MarketingSection } from "./MarketingSection.js";
2
+ import "react";
3
+ import { CheckCircle } from "lucide-react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { HStack, VStack } from "@lssm/lib.ui-kit-web/ui/stack";
6
+ import { Muted, Small } from "@lssm/lib.ui-kit-web/ui/typography";
7
+
8
+ //#region src/components/marketing/MarketingComparisonSection.tsx
9
+ function MarketingComparisonSection({ eyebrow, title, subtitle, left, right, tone = "default", padding = "comfortable" }) {
10
+ return /* @__PURE__ */ jsx(MarketingSection, {
11
+ tone,
12
+ padding,
13
+ eyebrow,
14
+ title,
15
+ subtitle,
16
+ align: "center",
17
+ children: /* @__PURE__ */ jsx("div", {
18
+ className: "grid gap-8 md:grid-cols-2",
19
+ children: [left, right].map((col) => /* @__PURE__ */ jsxs(VStack, {
20
+ gap: "md",
21
+ align: "start",
22
+ className: "border-border/50 bg-card/50 rounded-xl border p-6",
23
+ children: [/* @__PURE__ */ jsx(Small, {
24
+ className: "text-sm font-semibold",
25
+ children: col.title
26
+ }), /* @__PURE__ */ jsx(VStack, {
27
+ as: "div",
28
+ role: "list",
29
+ gap: "sm",
30
+ align: "start",
31
+ className: "list-none p-0",
32
+ children: col.items.map((item, idx) => /* @__PURE__ */ jsxs(HStack, {
33
+ as: "div",
34
+ role: "listitem",
35
+ gap: "sm",
36
+ align: "start",
37
+ children: [/* @__PURE__ */ jsx(CheckCircle, {
38
+ className: "mt-0.5 text-violet-400",
39
+ size: 18
40
+ }), /* @__PURE__ */ jsx(Muted, {
41
+ className: "text-sm leading-relaxed",
42
+ children: item
43
+ })]
44
+ }, idx))
45
+ })]
46
+ }, col.title))
47
+ })
48
+ });
49
+ }
50
+
51
+ //#endregion
52
+ export { MarketingComparisonSection };
@@ -0,0 +1,73 @@
1
+ import { CardContent, CardTitle, MarketingCard } from "./MarketingCard.js";
2
+ import "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { cva } from "class-variance-authority";
5
+ import { HStack, VStack } from "@lssm/lib.ui-kit-web/ui/stack";
6
+ import { Muted, Small } from "@lssm/lib.ui-kit-web/ui/typography";
7
+
8
+ //#region src/components/marketing/MarketingIconCard.tsx
9
+ const layoutVariants = cva("w-full", {
10
+ variants: { variant: {
11
+ iconFirst: "space-y-3",
12
+ listing: "",
13
+ support: ""
14
+ } },
15
+ defaultVariants: { variant: "iconFirst" }
16
+ });
17
+ function MarketingIconCard({ icon: Icon, title, description, tone = "default", iconClassName, headerAction, variant = "iconFirst", className }) {
18
+ return /* @__PURE__ */ jsx(MarketingCard, {
19
+ tone,
20
+ className,
21
+ children: /* @__PURE__ */ jsx(CardContent, {
22
+ className: layoutVariants({ variant }),
23
+ children: variant === "iconFirst" ? /* @__PURE__ */ jsxs(VStack, {
24
+ gap: "sm",
25
+ align: "start",
26
+ children: [
27
+ /* @__PURE__ */ jsxs(HStack, {
28
+ gap: "sm",
29
+ align: "center",
30
+ justify: "between",
31
+ className: "w-full",
32
+ children: [/* @__PURE__ */ jsx(Icon, {
33
+ className: iconClassName,
34
+ size: 24
35
+ }), headerAction]
36
+ }),
37
+ /* @__PURE__ */ jsx(CardTitle, {
38
+ className: "text-xl",
39
+ children: title
40
+ }),
41
+ description ? /* @__PURE__ */ jsx(Muted, {
42
+ className: "text-sm leading-relaxed",
43
+ children: description
44
+ }) : null
45
+ ]
46
+ }) : /* @__PURE__ */ jsxs(HStack, {
47
+ gap: "md",
48
+ align: "start",
49
+ children: [/* @__PURE__ */ jsx(Icon, {
50
+ className: iconClassName,
51
+ size: variant === "listing" ? 18 : 20
52
+ }), /* @__PURE__ */ jsxs(VStack, {
53
+ gap: "xs",
54
+ align: "start",
55
+ children: [
56
+ /* @__PURE__ */ jsx(CardTitle, {
57
+ className: "text-base font-semibold",
58
+ children: title
59
+ }),
60
+ description ? /* @__PURE__ */ jsx(Muted, {
61
+ className: "text-sm leading-relaxed",
62
+ children: description
63
+ }) : null,
64
+ headerAction ? /* @__PURE__ */ jsx(Small, { children: headerAction }) : null
65
+ ]
66
+ })]
67
+ })
68
+ })
69
+ });
70
+ }
71
+
72
+ //#endregion
73
+ export { MarketingIconCard };
@@ -0,0 +1,61 @@
1
+ import "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { VStack } from "@lssm/lib.ui-kit-web/ui/stack";
5
+ import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
6
+ import { Muted } from "@lssm/lib.ui-kit-web/ui/typography";
7
+
8
+ //#region src/components/marketing/MarketingSection.tsx
9
+ const sectionVariants = cva("w-full", {
10
+ variants: {
11
+ tone: {
12
+ default: "bg-background",
13
+ muted: "bg-muted/40 border-b border-border/60",
14
+ panel: "bg-card/60 shadow-[0_10px_60px_-45px_rgba(0,0,0,0.35)] backdrop-blur",
15
+ gradient: "bg-gradient-to-br from-violet-500/10 via-indigo-500/5 to-blue-500/5"
16
+ },
17
+ padding: {
18
+ compact: "py-10",
19
+ comfortable: "py-16 sm:py-20",
20
+ spacious: "py-20 sm:py-24"
21
+ }
22
+ },
23
+ defaultVariants: {
24
+ tone: "default",
25
+ padding: "comfortable"
26
+ }
27
+ });
28
+ function MarketingSection({ children, eyebrow, title, subtitle, align = "center", maxWidth = "xl", tone, padding, className }) {
29
+ const contentWidth = maxWidth === "lg" ? "max-w-5xl" : "max-w-6xl";
30
+ const headerAlign = align === "center" ? "items-center text-center" : "items-start text-left";
31
+ return /* @__PURE__ */ jsx("section", {
32
+ className: cn(sectionVariants({
33
+ tone,
34
+ padding
35
+ }), "transition-colors", className),
36
+ children: /* @__PURE__ */ jsxs("div", {
37
+ className: cn("mx-auto w-full px-4 sm:px-6 lg:px-8", contentWidth),
38
+ children: [(eyebrow || title || subtitle) && /* @__PURE__ */ jsxs(VStack, {
39
+ gap: "sm",
40
+ className: cn("mb-10", headerAlign),
41
+ children: [
42
+ eyebrow ? /* @__PURE__ */ jsx(Muted, {
43
+ className: "text-[11px] font-semibold tracking-[0.2em] uppercase",
44
+ children: eyebrow
45
+ }) : null,
46
+ title ? /* @__PURE__ */ jsx("div", {
47
+ className: "text-3xl leading-tight font-bold md:text-4xl",
48
+ children: title
49
+ }) : null,
50
+ subtitle ? /* @__PURE__ */ jsx(Muted, {
51
+ className: "text-base md:text-lg",
52
+ children: subtitle
53
+ }) : null
54
+ ]
55
+ }), children]
56
+ })
57
+ });
58
+ }
59
+
60
+ //#endregion
61
+ export { MarketingSection };
@@ -0,0 +1,36 @@
1
+ import { CardContent, CardHeader, CardTitle, MarketingCard } from "./MarketingCard.js";
2
+ import "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { HStack, VStack } from "@lssm/lib.ui-kit-web/ui/stack";
5
+ import { Muted, Small } from "@lssm/lib.ui-kit-web/ui/typography";
6
+
7
+ //#region src/components/marketing/MarketingStepCard.tsx
8
+ function MarketingStepCard({ step, title, description, tone = "default" }) {
9
+ return /* @__PURE__ */ jsxs(MarketingCard, {
10
+ tone,
11
+ children: [/* @__PURE__ */ jsx(CardHeader, { children: /* @__PURE__ */ jsxs(HStack, {
12
+ gap: "md",
13
+ align: "center",
14
+ className: "w-full",
15
+ children: [/* @__PURE__ */ jsx("div", {
16
+ className: "bg-primary/15 flex h-10 w-10 items-center justify-center rounded-lg",
17
+ children: /* @__PURE__ */ jsx(Small, {
18
+ className: "text-primary font-semibold",
19
+ children: step
20
+ })
21
+ }), /* @__PURE__ */ jsx(CardTitle, {
22
+ className: "text-lg",
23
+ children: title
24
+ })]
25
+ }) }), description ? /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx(VStack, {
26
+ gap: "sm",
27
+ children: /* @__PURE__ */ jsx(Muted, {
28
+ className: "text-sm leading-relaxed",
29
+ children: description
30
+ })
31
+ }) }) : null]
32
+ });
33
+ }
34
+
35
+ //#endregion
36
+ export { MarketingStepCard };
@@ -30,7 +30,7 @@ function FiltersToolbar({ className, children, right, searchPlaceholder, searchV
30
30
  className: "flex flex-1 items-center gap-2",
31
31
  children: [/* @__PURE__ */ jsx(Input, {
32
32
  value: q,
33
- onChange: setQ,
33
+ onChange: (e) => setQ(e.target.value),
34
34
  onKeyDown: (e) => {
35
35
  if (e.key === "Enter") onSearchSubmit?.();
36
36
  },
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+
3
+ import { __toESM } from "../../_virtual/rolldown_runtime.js";
4
+ import { require_link } from "../../node_modules/next/link.js";
5
+ import "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@lssm/lib.ui-kit-web/ui/dialog";
8
+
9
+ //#region src/components/molecules/OverviewCard.tsx
10
+ var import_link = /* @__PURE__ */ __toESM(require_link());
11
+ function OverviewCard({ title, summary, href, preview, ctaLabel }) {
12
+ return /* @__PURE__ */ jsxs(Dialog, { children: [/* @__PURE__ */ jsx(DialogTrigger, {
13
+ asChild: true,
14
+ children: /* @__PURE__ */ jsxs("button", {
15
+ className: "bg-background/50 hover:bg-accent/40 rounded-md border p-4 text-left shadow-2xs transition",
16
+ children: [/* @__PURE__ */ jsx("div", {
17
+ className: "text-lg font-medium",
18
+ children: title
19
+ }), /* @__PURE__ */ jsx("div", {
20
+ className: "text-foreground/80",
21
+ children: summary
22
+ })]
23
+ })
24
+ }), /* @__PURE__ */ jsxs(DialogContent, {
25
+ className: "max-h-[90vh] max-w-2xl overflow-y-auto sm:max-w-3xl",
26
+ children: [/* @__PURE__ */ jsx(DialogHeader, { children: /* @__PURE__ */ jsx(DialogTitle, { children: title }) }), /* @__PURE__ */ jsxs("div", {
27
+ className: "space-y-4",
28
+ children: [preview, /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(import_link.default, {
29
+ href,
30
+ className: "bg-primary text-primary-foreground inline-flex rounded-md px-4 py-2",
31
+ children: ctaLabel
32
+ }) })]
33
+ })]
34
+ })] });
35
+ }
36
+
37
+ //#endregion
38
+ export { OverviewCard };
@@ -13,9 +13,9 @@ function EmptySearchResult({ emptySearchTitle, emtptySearchTitle, emptySearchDes
13
13
  className,
14
14
  children: [/* @__PURE__ */ jsxs(EmptyHeader, { children: [/* @__PURE__ */ jsx(EmptyTitle, { children: title }), description ? /* @__PURE__ */ jsx(EmptyDescription, { children: description }) : null] }), /* @__PURE__ */ jsx(EmptyContent, { children: /* @__PURE__ */ jsx(Input, {
15
15
  value: q,
16
- onChange: (v) => {
17
- setQ(v);
18
- onChange?.(v);
16
+ onChange: (e) => {
17
+ setQ(e.target.value);
18
+ onChange?.(e.target.value);
19
19
  },
20
20
  placeholder: "Search…",
21
21
  keyboard: { kind: "search" }
@@ -1,6 +1,7 @@
1
1
  import "react";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { cva } from "class-variance-authority";
4
+ import { HStack, VStack } from "@lssm/lib.ui-kit-web/ui/stack";
4
5
  import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
5
6
 
6
7
  //#region src/components/organisms/Footer.tsx
@@ -34,10 +35,7 @@ function Footer({ left, center, right, links, className, variant }) {
34
35
  className: "text-muted-foreground text-center",
35
36
  children: center
36
37
  }),
37
- /* @__PURE__ */ jsx("div", {
38
- className: "flex items-center justify-end gap-3",
39
- children: right
40
- })
38
+ /* @__PURE__ */ jsx(VStack, { children: right })
41
39
  ]
42
40
  }), links && links.length > 0 && /* @__PURE__ */ jsx("div", {
43
41
  className: "text-muted-foreground mt-4 flex flex-wrap items-center justify-center gap-3 text-base",
@@ -51,7 +51,7 @@ function MarketingHeader({ logo, nav = [], userMenu, cta, className, density, ri
51
51
  side: "left",
52
52
  className: "w-[320px] p-4",
53
53
  children: [
54
- /* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(CommandSearchTrigger, { groups: commandPaletteGroups }) }),
54
+ !!commandPaletteGroups?.length && /* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(CommandSearchTrigger, { groups: commandPaletteGroups }) }),
55
55
  cta && /* @__PURE__ */ jsx(VStack, {
56
56
  className: "mb-3",
57
57
  children: /* @__PURE__ */ jsx(ButtonLink, {
@@ -87,11 +87,11 @@ function MarketingHeader({ logo, nav = [], userMenu, cta, className, density, ri
87
87
  /* @__PURE__ */ jsxs(HStack, {
88
88
  className: "flex items-center gap-2",
89
89
  children: [
90
- /* @__PURE__ */ jsx(Box, {
90
+ !!commandPaletteGroups?.length && /* @__PURE__ */ jsx(Box, {
91
91
  className: "hidden items-center gap-2 md:flex",
92
92
  children: /* @__PURE__ */ jsx(CommandSearchTrigger, { groups: commandPaletteGroups })
93
93
  }),
94
- /* @__PURE__ */ jsx(LangSwitchDropdown, {
94
+ !!(langSwitchProps?.options?.length > 1) && /* @__PURE__ */ jsx(LangSwitchDropdown, {
95
95
  value: langSwitchProps.value,
96
96
  onChange: langSwitchProps.onChange,
97
97
  options: langSwitchProps.options
@@ -8,6 +8,7 @@ import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
8
8
  //#region src/components/organisms/MarketingLayout.tsx
9
9
  function MarketingLayout({ header, children, footer, className }) {
10
10
  return /* @__PURE__ */ jsxs(VStack, {
11
+ gap: "none",
11
12
  className: cn("bg-background min-h-svh", className),
12
13
  children: [
13
14
  header,
package/dist/index.js CHANGED
@@ -23,6 +23,12 @@ import { MarketingHeader } from "./components/organisms/MarketingHeader.js";
23
23
  import { MarketingHeaderDesktop } from "./components/organisms/MarketingHeaderDesktop.js";
24
24
  import { MarketingHeaderMobile } from "./components/organisms/MarketingHeaderMobile.js";
25
25
  import { MarketingLayout } from "./components/organisms/MarketingLayout.js";
26
+ import { MarketingSection } from "./components/marketing/MarketingSection.js";
27
+ import { MarketingCardsSection } from "./components/marketing/MarketingCardsSection.js";
28
+ import { CardContent, CardDescription, CardHeader, CardTitle, MarketingCard } from "./components/marketing/MarketingCard.js";
29
+ import { MarketingIconCard } from "./components/marketing/MarketingIconCard.js";
30
+ import { MarketingStepCard } from "./components/marketing/MarketingStepCard.js";
31
+ import { MarketingComparisonSection } from "./components/marketing/MarketingComparisonSection.js";
26
32
  import { AppLayout } from "./components/organisms/AppLayout.js";
27
33
  import { AcademyLayout } from "./components/organisms/AcademyLayout.js";
28
34
  import { AppHeader } from "./components/organisms/AppHeader.js";
@@ -33,6 +39,7 @@ import { HoverPreview, init_HoverPreview } from "./components/molecules/HoverPre
33
39
  import { StatusChip } from "./components/molecules/StatusChip.js";
34
40
  import { EntityCard } from "./components/molecules/EntityCard.js";
35
41
  import { StatCard, StatCardGroup } from "./components/molecules/StatCard.js";
42
+ import { OverviewCard } from "./components/molecules/OverviewCard.js";
36
43
  import { HoverPreviewSimple } from "./components/molecules/hover-previews/Simple.js";
37
44
  import { HoverPreviewMedia } from "./components/molecules/hover-previews/Media.js";
38
45
  import { HoverPreviewDoc } from "./components/molecules/hover-previews/Doc.js";
@@ -95,6 +102,7 @@ import { FormGrid, FormRow, FormSection } from "./components/forms/FormLayout.js
95
102
  import { FormCardLayout } from "./components/forms/FormCardLayout.js";
96
103
  import { FormStepsLayout } from "./components/forms/FormStepsLayout.js";
97
104
  import { FormOneByOneLayout } from "./components/forms/FormOneByOneLayout.js";
105
+ import { ActionForm } from "./components/forms/ActionForm.js";
98
106
  import { DataViewList } from "./components/data-view/DataViewList.js";
99
107
  import { DataViewTable } from "./components/data-view/DataViewTable.js";
100
108
  import { DataViewDetail } from "./components/data-view/DataViewDetail.js";
@@ -104,4 +112,4 @@ import { DataViewRenderer } from "./components/data-view/DataViewRenderer.js";
104
112
  init_HoverPreview();
105
113
 
106
114
  //#endregion
107
- export { AcademyLayout, AgentMonitor, AiLinkButton, AppHeader, AppLayout, AppSidebar, ApprovalQueue, Breadcrumbs, Button, ButtonLink_default as ButtonLink, CommandPalette, CommandSearchTrigger, ConsentItem, ConsentList, ContactFields, ContactForm, ContactTemplate, CookiesTemplate, Cta, DEFAULT_BREAKPOINTS, DataViewDetail, DataViewList, DataViewRenderer, DataViewTable, DateChip, DefinitionList, DeleteButton, DesktopHeader, DurationChip, EditButton, EmptyDataList, EmptySearchResult, EmptyState, EntityCard, ErrorState, FAQSection, FeatureCarousel, FeaturesSection, FiltersToolbar, Footer, FormCardLayout, FormDialog, FormGrid, FormOneByOneLayout, FormRow, FormSection, FormStepsLayout, GDPRDataRequest, GDPRRights, Header, HeroResponsive, HeroSection, HoverPreview, HoverPreviewDoc, HoverPreviewMedia, HoverPreviewSimple, HoverPreviewStats, HoverPreviewUser, Input, KeyValueList, LangSwitch, LegalCallout, LegalHeading, LegalList, LegalMeta, LegalPageLayout, LegalSection, LegalTOC, LegalText, Link, ListCardPage, ListGridPage, ListPageResponsive, ListPageTemplate, ListTablePage, LoaderBlock, LoaderCircular, MarketingHeader, MarketingHeaderDesktop, MarketingHeaderMobile, MarketingLayout, MobileHeader, NavBrand, NavMain, NavUser, PageHeaderResponsive, PlaceChip, PricingCarousel, PricingSection, PrivacyTemplate, SalesTermsTemplate, SkeletonBlock, SkeletonCircle, SkeletonList, StatCard, StatCardGroup, StatusChip, Stepper, TermsTemplate, TestimonialCarousel, Textarea, TimeChip, ToggleButton, ToggleLeftButton, ToggleRightButton, ViewButton, ZodForm, defaultTokens, dsBaseVariants, formRenderer, mapTokensForPlatform, useColorScheme, useListUrlState, useReducedMotion, useResponsive, withPlatformUI };
115
+ export { AcademyLayout, ActionForm, AgentMonitor, AiLinkButton, AppHeader, AppLayout, AppSidebar, ApprovalQueue, Breadcrumbs, Button, ButtonLink_default as ButtonLink, CommandPalette, CommandSearchTrigger, ConsentItem, ConsentList, ContactFields, ContactForm, ContactTemplate, CookiesTemplate, Cta, DEFAULT_BREAKPOINTS, DataViewDetail, DataViewList, DataViewRenderer, DataViewTable, DateChip, DefinitionList, DeleteButton, DesktopHeader, DurationChip, EditButton, EmptyDataList, EmptySearchResult, EmptyState, EntityCard, ErrorState, FAQSection, FeatureCarousel, FeaturesSection, FiltersToolbar, Footer, FormCardLayout, FormDialog, FormGrid, FormOneByOneLayout, FormRow, FormSection, FormStepsLayout, GDPRDataRequest, GDPRRights, Header, HeroResponsive, HeroSection, HoverPreview, HoverPreviewDoc, HoverPreviewMedia, HoverPreviewSimple, HoverPreviewStats, HoverPreviewUser, Input, KeyValueList, LangSwitch, LegalCallout, LegalHeading, LegalList, LegalMeta, LegalPageLayout, LegalSection, LegalTOC, LegalText, Link, ListCardPage, ListGridPage, ListPageResponsive, ListPageTemplate, ListTablePage, LoaderBlock, LoaderCircular, MarketingCard, CardContent as MarketingCardContent, CardDescription as MarketingCardDescription, CardHeader as MarketingCardHeader, CardTitle as MarketingCardTitle, MarketingCardsSection, MarketingComparisonSection, MarketingHeader, MarketingHeaderDesktop, MarketingHeaderMobile, MarketingIconCard, MarketingLayout, MarketingSection, MarketingStepCard, MobileHeader, NavBrand, NavMain, NavUser, OverviewCard, PageHeaderResponsive, PlaceChip, PricingCarousel, PricingSection, PrivacyTemplate, SalesTermsTemplate, SkeletonBlock, SkeletonCircle, SkeletonList, StatCard, StatCardGroup, StatusChip, Stepper, TermsTemplate, TestimonialCarousel, Textarea, TimeChip, ToggleButton, ToggleLeftButton, ToggleRightButton, ViewButton, ZodForm, defaultTokens, dsBaseVariants, formRenderer, mapTokensForPlatform, useColorScheme, useListUrlState, useReducedMotion, useResponsive, withPlatformUI };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/lib.design-system",
3
- "version": "0.0.0-canary-20251210171026",
3
+ "version": "0.0.0-canary-20251212210835",
4
4
  "scripts": {
5
5
  "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
6
6
  "build": "bun build:bundle && bun build:types",