@lssm/lib.design-system 1.11.1 → 1.41.1
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.
- package/README.md +6 -1
- package/dist/_virtual/rolldown_runtime.js +9 -4
- package/dist/components/agent/ApprovalQueue.js +1 -1
- package/dist/components/atoms/Button.js +4 -5
- package/dist/components/atoms/ButtonLink.js +2 -2
- package/dist/components/atoms/Cta.js +4 -5
- package/dist/components/atoms/EmptyState.js +4 -4
- package/dist/components/atoms/ErrorState.js +1 -2
- package/dist/components/atoms/Input.js +5 -6
- package/dist/components/atoms/Link.js +1 -2
- package/dist/components/atoms/Link.web.js +4 -2
- package/dist/components/atoms/LoaderCircular.js +1 -2
- package/dist/components/atoms/Stepper.js +4 -4
- package/dist/components/atoms/Textarea.js +8 -9
- package/dist/components/data-view/DataViewRenderer.js +2 -2
- package/dist/components/forms/ActionForm.js +18 -0
- package/dist/components/forms/FormOneByOneLayout.js +3 -3
- package/dist/components/forms/FormStepsLayout.js +3 -3
- package/dist/components/forms/ZodForm.js +1 -1
- package/dist/components/legal/atoms/LegalCallout.js +1 -1
- package/dist/components/legal/atoms/LegalHeading.js +1 -1
- package/dist/components/legal/atoms/LegalList.js +1 -1
- package/dist/components/legal/atoms/LegalSection.js +1 -1
- package/dist/components/legal/atoms/LegalText.js +1 -1
- package/dist/components/legal/molecules/ContactFields.js +8 -8
- package/dist/components/legal/molecules/LegalTOC.js +1 -1
- package/dist/components/legal/organisms/ContactForm.js +3 -3
- package/dist/components/legal/organisms/GDPRDataRequest.js +2 -2
- package/dist/components/legal/templates/ContactTemplate.js +3 -3
- package/dist/components/marketing/MarketingCard.js +20 -0
- package/dist/components/marketing/MarketingCardsSection.js +28 -0
- package/dist/components/marketing/MarketingComparisonSection.js +52 -0
- package/dist/components/marketing/MarketingIconCard.js +73 -0
- package/dist/components/marketing/MarketingSection.js +61 -0
- package/dist/components/marketing/MarketingStepCard.js +36 -0
- package/dist/components/molecules/AiLinkButton.js +4 -4
- package/dist/components/molecules/Breadcrumbs.js +2 -2
- package/dist/components/molecules/CommandPalette.js +3 -3
- package/dist/components/molecules/CommandSearchTrigger.js +3 -3
- package/dist/components/molecules/FiltersToolbar.js +5 -5
- package/dist/components/molecules/HoverPreview.js +2 -2
- package/dist/components/molecules/LangSwitchDropdown.js +2 -2
- package/dist/components/molecules/LoaderBlock.js +1 -2
- package/dist/components/molecules/OverviewCard.js +5 -4
- package/dist/components/molecules/SkeletonBlock/index.web.js +1 -2
- package/dist/components/molecules/SkeletonCircle/index.web.js +1 -2
- package/dist/components/molecules/SkeletonList/index.web.js +4 -5
- package/dist/components/organisms/AcademyLayout.js +2 -2
- package/dist/components/organisms/AppLayout.js +2 -2
- package/dist/components/organisms/EmptySearchResult.js +5 -5
- package/dist/components/organisms/FAQSection.js +2 -2
- package/dist/components/organisms/Footer.js +2 -4
- package/dist/components/organisms/MarketingHeader.js +5 -5
- package/dist/components/organisms/MarketingHeaderMobile.js +2 -2
- package/dist/components/organisms/MarketingLayout.js +1 -0
- package/dist/components/templates/lists/ListPageTemplate/index.web.js +2 -2
- package/dist/hooks/useListUrlState.js +7 -7
- package/dist/index.js +9 -1
- package/dist/lib/keyboard.js +1 -172
- package/dist/platform/useColorScheme.js +3 -3
- package/dist/platform/useReducedMotion.js +3 -3
- package/dist/platform/useResponsive.js +4 -4
- package/dist/renderers/form-contract.js +1 -1
- package/package.json +14 -304
- package/dist/components/agent/AgentMonitor.d.ts +0 -28
- package/dist/components/agent/ApprovalQueue.d.ts +0 -25
- package/dist/components/atoms/ActionButtons.d.ts +0 -25
- package/dist/components/atoms/Button.d.ts +0 -39
- package/dist/components/atoms/Button.mobile.d.ts +0 -21
- package/dist/components/atoms/Button.mobile.js +0 -34
- package/dist/components/atoms/ButtonLink.d.ts +0 -21
- package/dist/components/atoms/ButtonLink.mobile.d.ts +0 -19
- package/dist/components/atoms/ButtonLink.mobile.js +0 -41
- package/dist/components/atoms/Cta.d.ts +0 -20
- package/dist/components/atoms/Cta.mobile.d.ts +0 -14
- package/dist/components/atoms/Cta.mobile.js +0 -38
- package/dist/components/atoms/DataChips.d.ts +0 -37
- package/dist/components/atoms/EmptyState.d.ts +0 -7
- package/dist/components/atoms/ErrorState.d.ts +0 -28
- package/dist/components/atoms/ErrorState.mobile.d.ts +0 -28
- package/dist/components/atoms/ErrorState.mobile.js +0 -41
- package/dist/components/atoms/Input.d.ts +0 -39
- package/dist/components/atoms/Input.mobile.d.ts +0 -37
- package/dist/components/atoms/Input.mobile.js +0 -27
- package/dist/components/atoms/Link.d.ts +0 -11
- package/dist/components/atoms/Link.native.d.ts +0 -1
- package/dist/components/atoms/Link.native.js +0 -0
- package/dist/components/atoms/Link.web.d.ts +0 -23
- package/dist/components/atoms/LoaderCircular.d.ts +0 -22
- package/dist/components/atoms/LoaderCircular.mobile.d.ts +0 -17
- package/dist/components/atoms/LoaderCircular.mobile.js +0 -26
- package/dist/components/atoms/NavBrand.d.ts +0 -18
- package/dist/components/atoms/Stepper.d.ts +0 -7
- package/dist/components/atoms/Textarea.d.ts +0 -41
- package/dist/components/atoms/Textarea.mobile.d.ts +0 -37
- package/dist/components/atoms/Textarea.mobile.js +0 -27
- package/dist/components/data-view/DataViewDetail.d.ts +0 -21
- package/dist/components/data-view/DataViewList.d.ts +0 -23
- package/dist/components/data-view/DataViewRenderer.d.ts +0 -47
- package/dist/components/data-view/DataViewTable.d.ts +0 -25
- package/dist/components/data-view/utils.d.ts +0 -5
- package/dist/components/forms/FormCardLayout.d.ts +0 -22
- package/dist/components/forms/FormDialog.d.ts +0 -24
- package/dist/components/forms/FormLayout.d.ts +0 -29
- package/dist/components/forms/FormOneByOneLayout.d.ts +0 -25
- package/dist/components/forms/FormStepsLayout.d.ts +0 -26
- package/dist/components/forms/ZodForm.d.ts +0 -21
- package/dist/components/legal/atoms/DefinitionList.d.ts +0 -16
- package/dist/components/legal/atoms/KeyValueList.d.ts +0 -16
- package/dist/components/legal/atoms/LegalCallout.d.ts +0 -17
- package/dist/components/legal/atoms/LegalHeading.d.ts +0 -24
- package/dist/components/legal/atoms/LegalList.d.ts +0 -20
- package/dist/components/legal/atoms/LegalSection.d.ts +0 -21
- package/dist/components/legal/atoms/LegalText.d.ts +0 -24
- package/dist/components/legal/molecules/Consent.d.ts +0 -35
- package/dist/components/legal/molecules/ContactFields.d.ts +0 -24
- package/dist/components/legal/molecules/LegalMeta.d.ts +0 -14
- package/dist/components/legal/molecules/LegalTOC.d.ts +0 -30
- package/dist/components/legal/organisms/ContactForm.d.ts +0 -29
- package/dist/components/legal/organisms/GDPRDataRequest.d.ts +0 -18
- package/dist/components/legal/organisms/GDPRRights.d.ts +0 -13
- package/dist/components/legal/organisms/LegalPageLayout.d.ts +0 -23
- package/dist/components/legal/templates/ContactTemplate.d.ts +0 -23
- package/dist/components/legal/templates/CookiesTemplate.d.ts +0 -32
- package/dist/components/legal/templates/PrivacyTemplate.d.ts +0 -32
- package/dist/components/legal/templates/SalesTermsTemplate.d.ts +0 -27
- package/dist/components/legal/templates/TermsTemplate.d.ts +0 -27
- package/dist/components/molecules/AiLinkButton.d.ts +0 -15
- package/dist/components/molecules/Breadcrumbs.d.ts +0 -15
- package/dist/components/molecules/CommandPalette.d.ts +0 -26
- package/dist/components/molecules/CommandSearchTrigger.d.ts +0 -18
- package/dist/components/molecules/DropdownMenu.d.ts +0 -1
- package/dist/components/molecules/DropdownMenu.js +0 -0
- package/dist/components/molecules/EntityCard.d.ts +0 -37
- package/dist/components/molecules/FiltersToolbar.d.ts +0 -35
- package/dist/components/molecules/FiltersToolbar.mobile.d.ts +0 -18
- package/dist/components/molecules/FiltersToolbar.mobile.js +0 -48
- package/dist/components/molecules/HoverPreview.d.ts +0 -20
- package/dist/components/molecules/LangSwitch.d.ts +0 -22
- package/dist/components/molecules/LangSwitchDropdown.d.ts +0 -21
- package/dist/components/molecules/LoaderBlock.d.ts +0 -18
- package/dist/components/molecules/LoaderBlock.mobile.d.ts +0 -18
- package/dist/components/molecules/LoaderBlock.mobile.js +0 -25
- package/dist/components/molecules/MobileNavMenu.d.ts +0 -13
- package/dist/components/molecules/NavItemCard.d.ts +0 -14
- package/dist/components/molecules/NavMain.d.ts +0 -13
- package/dist/components/molecules/NavUser.d.ts +0 -17
- package/dist/components/molecules/OverviewCard.d.ts +0 -20
- package/dist/components/molecules/SkeletonBlock/index.d.ts +0 -3
- package/dist/components/molecules/SkeletonBlock/index.js +0 -3
- package/dist/components/molecules/SkeletonBlock/index.mobile.d.ts +0 -12
- package/dist/components/molecules/SkeletonBlock/index.mobile.js +0 -18
- package/dist/components/molecules/SkeletonBlock/index.web.d.ts +0 -12
- package/dist/components/molecules/SkeletonBlock/types.d.ts +0 -9
- package/dist/components/molecules/SkeletonBlock/types.js +0 -0
- package/dist/components/molecules/SkeletonCircle/index.d.ts +0 -3
- package/dist/components/molecules/SkeletonCircle/index.js +0 -3
- package/dist/components/molecules/SkeletonCircle/index.mobile.d.ts +0 -11
- package/dist/components/molecules/SkeletonCircle/index.mobile.js +0 -23
- package/dist/components/molecules/SkeletonCircle/index.web.d.ts +0 -11
- package/dist/components/molecules/SkeletonCircle/types.d.ts +0 -8
- package/dist/components/molecules/SkeletonCircle/types.js +0 -0
- package/dist/components/molecules/SkeletonList/index.d.ts +0 -3
- package/dist/components/molecules/SkeletonList/index.js +0 -3
- package/dist/components/molecules/SkeletonList/index.mobile.d.ts +0 -10
- package/dist/components/molecules/SkeletonList/index.mobile.js +0 -22
- package/dist/components/molecules/SkeletonList/index.web.d.ts +0 -10
- package/dist/components/molecules/SkeletonList/types.d.ts +0 -7
- package/dist/components/molecules/SkeletonList/types.js +0 -0
- package/dist/components/molecules/StatCard.d.ts +0 -36
- package/dist/components/molecules/StatusChip.d.ts +0 -26
- package/dist/components/molecules/hover-previews/Doc.d.ts +0 -27
- package/dist/components/molecules/hover-previews/Media.d.ts +0 -20
- package/dist/components/molecules/hover-previews/Simple.d.ts +0 -25
- package/dist/components/molecules/hover-previews/Stats.d.ts +0 -22
- package/dist/components/molecules/hover-previews/User.d.ts +0 -25
- package/dist/components/native/BottomTabs.mobile.d.ts +0 -20
- package/dist/components/native/BottomTabs.mobile.js +0 -27
- package/dist/components/native/FlatListScreen.mobile.d.ts +0 -43
- package/dist/components/native/FlatListScreen.mobile.js +0 -63
- package/dist/components/native/SheetMenu.mobile.d.ts +0 -17
- package/dist/components/native/SheetMenu.mobile.js +0 -21
- package/dist/components/organisms/AcademyLayout.d.ts +0 -29
- package/dist/components/organisms/AppHeader.d.ts +0 -18
- package/dist/components/organisms/AppHeader.mobile.d.ts +0 -21
- package/dist/components/organisms/AppHeader.mobile.js +0 -52
- package/dist/components/organisms/AppLayout.d.ts +0 -28
- package/dist/components/organisms/AppSidebar.d.ts +0 -23
- package/dist/components/organisms/AppSidebar.mobile.d.ts +0 -1
- package/dist/components/organisms/AppSidebar.mobile.js +0 -0
- package/dist/components/organisms/EmptyDataList.d.ts +0 -20
- package/dist/components/organisms/EmptyDataList.mobile.d.ts +0 -20
- package/dist/components/organisms/EmptyDataList.mobile.js +0 -27
- package/dist/components/organisms/EmptyDataList.types.d.ts +0 -19
- package/dist/components/organisms/EmptyDataList.types.js +0 -1
- package/dist/components/organisms/EmptySearchResult.d.ts +0 -24
- package/dist/components/organisms/FAQSection.d.ts +0 -31
- package/dist/components/organisms/FeatureCarousel.d.ts +0 -18
- package/dist/components/organisms/FeaturesSection.d.ts +0 -19
- package/dist/components/organisms/Footer.d.ts +0 -25
- package/dist/components/organisms/GridLayout.d.ts +0 -25
- package/dist/components/organisms/GridLayout.js +0 -28
- package/dist/components/organisms/Header.d.ts +0 -37
- package/dist/components/organisms/Header.mobile.d.ts +0 -24
- package/dist/components/organisms/Header.mobile.js +0 -18
- package/dist/components/organisms/HeroResponsive.d.ts +0 -14
- package/dist/components/organisms/HeroSection.d.ts +0 -29
- package/dist/components/organisms/ListCardPage.d.ts +0 -36
- package/dist/components/organisms/ListGridPage.d.ts +0 -36
- package/dist/components/organisms/ListPageResponsive.d.ts +0 -7
- package/dist/components/organisms/ListTablePage.d.ts +0 -33
- package/dist/components/organisms/MarketingHeader.d.ts +0 -36
- package/dist/components/organisms/MarketingHeaderDesktop.d.ts +0 -15
- package/dist/components/organisms/MarketingHeaderMobile.d.ts +0 -12
- package/dist/components/organisms/MarketingLayout.d.ts +0 -18
- package/dist/components/organisms/PageHeaderResponsive.d.ts +0 -8
- package/dist/components/organisms/PageHeaderResponsive.mobile.d.ts +0 -22
- package/dist/components/organisms/PageHeaderResponsive.mobile.js +0 -32
- package/dist/components/organisms/PricingCarousel.d.ts +0 -24
- package/dist/components/organisms/PricingSection.d.ts +0 -18
- package/dist/components/organisms/TestimonialCarousel.d.ts +0 -19
- package/dist/components/templates/lists/ListPageTemplate/index.d.ts +0 -3
- package/dist/components/templates/lists/ListPageTemplate/index.js +0 -3
- package/dist/components/templates/lists/ListPageTemplate/index.mobile.d.ts +0 -21
- package/dist/components/templates/lists/ListPageTemplate/index.mobile.js +0 -32
- package/dist/components/templates/lists/ListPageTemplate/index.web.d.ts +0 -22
- package/dist/components/templates/lists/ListPageTemplate/types.d.ts +0 -25
- package/dist/components/templates/lists/ListPageTemplate/types.js +0 -1
- package/dist/hooks/useListUrlState.d.ts +0 -30
- package/dist/index.d.ts +0 -108
- package/dist/lib/keyboard.d.ts +0 -14
- package/dist/lib/utils.d.ts +0 -6
- package/dist/platform/useColorScheme.d.ts +0 -5
- package/dist/platform/useColorScheme.mobile.d.ts +0 -5
- package/dist/platform/useColorScheme.mobile.js +0 -20
- package/dist/platform/useReducedMotion.d.ts +0 -4
- package/dist/platform/useReducedMotion.mobile.d.ts +0 -4
- package/dist/platform/useReducedMotion.mobile.js +0 -28
- package/dist/platform/useResponsive.d.ts +0 -23
- package/dist/platform/useResponsive.mobile.d.ts +0 -23
- package/dist/platform/useResponsive.mobile.js +0 -42
- package/dist/platform/withPlatformUI.d.ts +0 -28
- package/dist/renderers/form-contract.d.ts +0 -11
- package/dist/renderers/index.d.ts +0 -2
- package/dist/renderers/index.js +0 -3
- package/dist/theme/tokenBridge.d.ts +0 -19
- package/dist/theme/tokens.d.ts +0 -50
- package/dist/theme/variants.d.ts +0 -21
- package/dist/types/nativewind-env.d.ts +0 -1
- package/dist/types/navigation.d.ts +0 -44
- package/dist/types/navigation.js +0 -1
package/README.md
CHANGED
|
@@ -72,7 +72,7 @@ export default function Layout({ children }) {
|
|
|
72
72
|
|
|
73
73
|
```tsx
|
|
74
74
|
import { ZodForm } from '@lssm/lib.design-system/components/forms/ZodForm';
|
|
75
|
-
import
|
|
75
|
+
import * as z from "zod";
|
|
76
76
|
|
|
77
77
|
const schema = z.object({
|
|
78
78
|
name: z.string().min(1),
|
|
@@ -104,6 +104,11 @@ export function SignupForm() {
|
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
107
112
|
|
|
108
113
|
|
|
109
114
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
//#region rolldown:runtime
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
};
|
|
8
|
+
var __esmMin = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
9
|
+
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
9
10
|
var __export = (all, symbols) => {
|
|
10
11
|
let target = {};
|
|
11
12
|
for (var name in all) {
|
|
@@ -33,6 +34,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
33
34
|
}
|
|
34
35
|
return to;
|
|
35
36
|
};
|
|
37
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
38
|
+
value: mod,
|
|
39
|
+
enumerable: true
|
|
40
|
+
}) : target, mod));
|
|
36
41
|
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
42
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
|
|
38
43
|
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
@@ -40,4 +45,4 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
40
45
|
});
|
|
41
46
|
|
|
42
47
|
//#endregion
|
|
43
|
-
export {
|
|
48
|
+
export { __commonJSMin, __esmMin, __export, __require, __toCommonJS, __toESM };
|
|
@@ -37,7 +37,7 @@ function ApprovalQueue({ title = "Approvals", description = "Requests escalated
|
|
|
37
37
|
] }) }), /* @__PURE__ */ jsx(TableBody, { children: requests.map((request) => /* @__PURE__ */ jsxs(TableRow, { children: [
|
|
38
38
|
/* @__PURE__ */ jsx(TableCell, {
|
|
39
39
|
className: "font-medium",
|
|
40
|
-
children: request.
|
|
40
|
+
children: request.agentId
|
|
41
41
|
}),
|
|
42
42
|
/* @__PURE__ */ jsx(TableCell, {
|
|
43
43
|
className: "max-w-sm truncate",
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import "react";
|
|
2
|
-
import { Button
|
|
2
|
+
import { Button } from "@lssm/lib.ui-kit-web/ui/button";
|
|
3
3
|
import { Loader2 } from "lucide-react";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
6
|
//#region src/components/atoms/Button.tsx
|
|
7
|
-
function Button({ children, loading, spinnerPlacement = "start", onPress, onPressIn, onPressOut, onLongPress, onTouchStart, onTouchEnd, onTouchCancel, onMouseDown, onMouseUp, onClick, className, disabled, ...rest }) {
|
|
7
|
+
function Button$1({ children, loading, spinnerPlacement = "start", onPress, onPressIn, onPressOut, onLongPress, onTouchStart, onTouchEnd, onTouchCancel, onMouseDown, onMouseUp, onClick, className, disabled, ...rest }) {
|
|
8
8
|
const isDisabled = Boolean(disabled || loading);
|
|
9
9
|
const content = !rest.asChild ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10
10
|
loading && spinnerPlacement === "start" ? /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }) : null,
|
|
11
11
|
children,
|
|
12
12
|
loading && spinnerPlacement === "end" ? /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }) : null
|
|
13
13
|
] }) : children;
|
|
14
|
-
return /* @__PURE__ */ jsx(Button
|
|
14
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
15
15
|
...rest,
|
|
16
16
|
className,
|
|
17
17
|
disabled: isDisabled,
|
|
@@ -28,7 +28,6 @@ function Button({ children, loading, spinnerPlacement = "start", onPress, onPres
|
|
|
28
28
|
children: content
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
var Button_default = Button;
|
|
32
31
|
|
|
33
32
|
//#endregion
|
|
34
|
-
export { Button
|
|
33
|
+
export { Button$1 as Button };
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Link } from "./Link.web.js";
|
|
5
|
-
import * as React
|
|
5
|
+
import * as React from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
|
|
8
8
|
//#region src/components/atoms/ButtonLink.tsx
|
|
9
9
|
function ButtonLink({ href, target, rel, replace, loading, disabled, children, onClick, ...btn }) {
|
|
10
10
|
const blocked = Boolean(disabled || loading);
|
|
11
|
-
const handleClick = React
|
|
11
|
+
const handleClick = React.useCallback((e) => {
|
|
12
12
|
if (blocked) {
|
|
13
13
|
e.preventDefault();
|
|
14
14
|
e.stopPropagation();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Button } from "./Button.js";
|
|
2
2
|
import { ButtonLink } from "./ButtonLink.js";
|
|
3
|
-
import * as React
|
|
3
|
+
import * as React from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
6
|
|
|
@@ -24,7 +24,7 @@ cva("", {
|
|
|
24
24
|
emphasis: "default"
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
|
-
const Cta = React
|
|
27
|
+
const Cta = React.forwardRef(({ capture, ctaName, as = "button", href, onClick, size = "touch", emphasis = "default", children, ...props }, ref) => {
|
|
28
28
|
const handleClick = (e) => {
|
|
29
29
|
if (ctaName) try {
|
|
30
30
|
if (capture) capture(ctaName);
|
|
@@ -40,14 +40,13 @@ const Cta = React$1.forwardRef(({ capture, ctaName, as = "button", href, onClick
|
|
|
40
40
|
variant: uiVariant,
|
|
41
41
|
...props,
|
|
42
42
|
href,
|
|
43
|
-
|
|
43
|
+
onClick: handleClick,
|
|
44
44
|
children
|
|
45
45
|
});
|
|
46
46
|
return /* @__PURE__ */ jsx(Button, {
|
|
47
47
|
size: uiSize,
|
|
48
48
|
variant: uiVariant,
|
|
49
|
-
|
|
50
|
-
ref,
|
|
49
|
+
onClick: handleClick,
|
|
51
50
|
...props,
|
|
52
51
|
children
|
|
53
52
|
});
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
import { EmptyState
|
|
5
|
+
import { EmptyState } from "@lssm/lib.ui-kit-web/ui/empty-state";
|
|
6
6
|
|
|
7
7
|
//#region src/components/atoms/EmptyState.tsx
|
|
8
|
-
function EmptyState(props) {
|
|
9
|
-
return /* @__PURE__ */ jsx(EmptyState
|
|
8
|
+
function EmptyState$1(props) {
|
|
9
|
+
return /* @__PURE__ */ jsx(EmptyState, { ...props });
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
|
-
export { EmptyState };
|
|
13
|
+
export { EmptyState$1 as EmptyState };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { mapKeyboardToWeb } from "../../lib/keyboard.js";
|
|
2
2
|
import "react";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import { Input
|
|
4
|
+
import { Input } from "@lssm/lib.ui-kit-web/ui/input";
|
|
5
5
|
|
|
6
6
|
//#region src/components/atoms/Input.tsx
|
|
7
|
-
function Input({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, name, className, keyboard, ...rest }) {
|
|
7
|
+
function Input$1({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, name, className, keyboard, ...rest }) {
|
|
8
8
|
const webKeyboard = mapKeyboardToWeb(keyboard);
|
|
9
|
-
return /* @__PURE__ */ jsx(Input
|
|
9
|
+
return /* @__PURE__ */ jsx(Input, {
|
|
10
10
|
...rest,
|
|
11
11
|
className,
|
|
12
12
|
value,
|
|
13
13
|
defaultValue,
|
|
14
|
-
onChange
|
|
14
|
+
onChange,
|
|
15
15
|
onFocus,
|
|
16
16
|
onBlur,
|
|
17
17
|
placeholder,
|
|
@@ -22,7 +22,6 @@ function Input({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, place
|
|
|
22
22
|
...webKeyboard
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
var Input_default = Input;
|
|
26
25
|
|
|
27
26
|
//#endregion
|
|
28
|
-
export { Input
|
|
27
|
+
export { Input$1 as Input };
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { __toESM } from "../../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { require_link } from "../../node_modules/next/link.js";
|
|
1
3
|
import "react";
|
|
2
4
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import NextLink from "next/link";
|
|
4
5
|
|
|
5
6
|
//#region src/components/atoms/Link.web.tsx
|
|
7
|
+
var import_link = /* @__PURE__ */ __toESM(require_link());
|
|
6
8
|
function Link({ href, children, ...props }) {
|
|
7
|
-
return /* @__PURE__ */ jsx(
|
|
9
|
+
return /* @__PURE__ */ jsx(import_link.default, {
|
|
8
10
|
href,
|
|
9
11
|
...props,
|
|
10
12
|
children
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
import { Stepper
|
|
5
|
+
import { Stepper } from "@lssm/lib.ui-kit-web/ui/stepper";
|
|
6
6
|
|
|
7
7
|
//#region src/components/atoms/Stepper.tsx
|
|
8
|
-
function Stepper(props) {
|
|
9
|
-
return /* @__PURE__ */ jsx(Stepper
|
|
8
|
+
function Stepper$1(props) {
|
|
9
|
+
return /* @__PURE__ */ jsx(Stepper, { ...props });
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
|
-
export { Stepper };
|
|
13
|
+
export { Stepper$1 as Stepper };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { mapKeyboardToWeb } from "../../lib/keyboard.js";
|
|
2
|
-
import * as React
|
|
2
|
+
import * as React from "react";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import { Textarea
|
|
4
|
+
import { Textarea } from "@lssm/lib.ui-kit-web/ui/textarea";
|
|
5
5
|
|
|
6
6
|
//#region src/components/atoms/Textarea.tsx
|
|
7
|
-
function Textarea({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, name, className, rows, keyboard, ...rest }) {
|
|
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
|
|
10
|
-
const handleKeyDown = React
|
|
9
|
+
const handleChange = React.useCallback((e) => onChange?.(e), [onChange]);
|
|
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
|
-
return /* @__PURE__ */ jsx(Textarea
|
|
15
|
+
return /* @__PURE__ */ jsx(Textarea, {
|
|
16
16
|
...rest,
|
|
17
17
|
className,
|
|
18
18
|
value,
|
|
@@ -30,7 +30,6 @@ function Textarea({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, pl
|
|
|
30
30
|
...webKeyboard
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
var Textarea_default = Textarea;
|
|
34
33
|
|
|
35
34
|
//#endregion
|
|
36
|
-
export { Textarea
|
|
35
|
+
export { Textarea$1 as Textarea };
|
|
@@ -4,13 +4,13 @@ import { FiltersToolbar } from "../molecules/FiltersToolbar.js";
|
|
|
4
4
|
import { DataViewList } from "./DataViewList.js";
|
|
5
5
|
import { DataViewTable } from "./DataViewTable.js";
|
|
6
6
|
import { DataViewDetail } from "./DataViewDetail.js";
|
|
7
|
-
import * as React
|
|
7
|
+
import * as React from "react";
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "@lssm/lib.ui-kit-web/ui/pagination";
|
|
10
10
|
|
|
11
11
|
//#region src/components/data-view/DataViewRenderer.tsx
|
|
12
12
|
function DataViewRenderer({ spec, items = [], item = null, className, renderActions, onSelect, onRowClick, headerActions, emptyState, footer, search, onSearchChange, filters, onFilterChange, pagination, onPageChange }) {
|
|
13
|
-
const viewContent = React
|
|
13
|
+
const viewContent = React.useMemo(() => {
|
|
14
14
|
switch (spec.view.kind) {
|
|
15
15
|
case "list": return /* @__PURE__ */ jsx(DataViewList, {
|
|
16
16
|
spec,
|
|
@@ -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 };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Button } from "../atoms/Button.js";
|
|
2
|
-
import * as React
|
|
2
|
+
import * as React from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
|
|
5
5
|
|
|
6
6
|
//#region src/components/forms/FormOneByOneLayout.tsx
|
|
7
7
|
function FormOneByOneLayout({ fields, initialKey, onComplete, className }) {
|
|
8
|
-
const indexByKey = React
|
|
9
|
-
const [idx, setIdx] = React
|
|
8
|
+
const indexByKey = React.useMemo(() => Object.fromEntries(fields.map((f, i) => [f.key, i])), [fields]);
|
|
9
|
+
const [idx, setIdx] = React.useState(() => {
|
|
10
10
|
if (initialKey && initialKey in indexByKey) return indexByKey[initialKey] || 0;
|
|
11
11
|
return 0;
|
|
12
12
|
});
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Button } from "../atoms/Button.js";
|
|
2
|
-
import * as React
|
|
2
|
+
import * as React from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
|
|
5
5
|
import { Separator } from "@lssm/lib.ui-kit-web/ui/separator";
|
|
6
6
|
|
|
7
7
|
//#region src/components/forms/FormStepsLayout.tsx
|
|
8
8
|
function FormStepsLayout({ steps, initialStepKey, onFinish, canNext, className }) {
|
|
9
|
-
const indexByKey = React
|
|
10
|
-
const [idx, setIdx] = React
|
|
9
|
+
const indexByKey = React.useMemo(() => Object.fromEntries(steps.map((s, i) => [s.key, i])), [steps]);
|
|
10
|
+
const [idx, setIdx] = React.useState(() => {
|
|
11
11
|
if (initialStepKey && initialStepKey in indexByKey) return indexByKey[initialStepKey] || 0;
|
|
12
12
|
return 0;
|
|
13
13
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { Form, useForm, zodResolver } from "@lssm/lib.ui-kit-web/ui/form";
|
|
6
|
-
import
|
|
6
|
+
import "zod";
|
|
7
7
|
|
|
8
8
|
//#region src/components/forms/ZodForm.tsx
|
|
9
9
|
function ZodForm({ schema, defaultValues, onSubmit, children }) {
|
|
@@ -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: (
|
|
16
|
+
onChange: (e) => onChange({
|
|
17
17
|
...value,
|
|
18
|
-
name:
|
|
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: (
|
|
28
|
+
onChange: (e) => onChange({
|
|
29
29
|
...value,
|
|
30
|
-
email:
|
|
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: (
|
|
39
|
+
onChange: (e) => onChange({
|
|
40
40
|
...value,
|
|
41
|
-
subject:
|
|
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: (
|
|
50
|
+
onChange: (e) => onChange({
|
|
51
51
|
...value,
|
|
52
|
-
message:
|
|
52
|
+
message: e.target.value
|
|
53
53
|
}),
|
|
54
54
|
disabled,
|
|
55
55
|
rows: 6
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Button } from "../../atoms/Button.js";
|
|
2
2
|
import { ContactFields } from "../molecules/ContactFields.js";
|
|
3
|
-
import * as React
|
|
3
|
+
import * as React from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
6
|
//#region src/components/legal/organisms/ContactForm.tsx
|
|
@@ -10,8 +10,8 @@ function ContactForm({ labels = { submit: "Envoyer" }, initialValue = {
|
|
|
10
10
|
subject: "",
|
|
11
11
|
message: ""
|
|
12
12
|
}, disabled, onSubmit }) {
|
|
13
|
-
const [value, setValue] = React
|
|
14
|
-
const [loading, setLoading] = React
|
|
13
|
+
const [value, setValue] = React.useState(initialValue);
|
|
14
|
+
const [loading, setLoading] = React.useState(false);
|
|
15
15
|
const handleSubmit = async (e) => {
|
|
16
16
|
e.preventDefault();
|
|
17
17
|
if (!onSubmit) return;
|
|
@@ -2,7 +2,7 @@ import { Button } from "../../atoms/Button.js";
|
|
|
2
2
|
import { LegalHeading } from "../atoms/LegalHeading.js";
|
|
3
3
|
import { LegalText } from "../atoms/LegalText.js";
|
|
4
4
|
import { LegalSection } from "../atoms/LegalSection.js";
|
|
5
|
-
import * as React
|
|
5
|
+
import * as React from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
|
|
8
8
|
//#region src/components/legal/organisms/GDPRDataRequest.tsx
|
|
@@ -10,7 +10,7 @@ function GDPRDataRequest({ onExport, onDelete, labels = {
|
|
|
10
10
|
export: "Demander une copie",
|
|
11
11
|
delete: "Demander la suppression"
|
|
12
12
|
} }) {
|
|
13
|
-
const [loading, setLoading] = React
|
|
13
|
+
const [loading, setLoading] = React.useState(null);
|
|
14
14
|
const handle = async (kind) => {
|
|
15
15
|
const fn = kind === "export" ? onExport : onDelete;
|
|
16
16
|
if (!fn) return;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { Button } from "../../atoms/Button.js";
|
|
2
2
|
import { ContactFields } from "../molecules/ContactFields.js";
|
|
3
3
|
import { LegalPageLayout } from "../organisms/LegalPageLayout.js";
|
|
4
|
-
import * as React
|
|
4
|
+
import * as React from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
|
|
7
7
|
//#region src/components/legal/templates/ContactTemplate.tsx
|
|
8
8
|
function ContactTemplate({ title = "Contact", meta, onSubmit }) {
|
|
9
|
-
const [value, setValue] = React
|
|
9
|
+
const [value, setValue] = React.useState({
|
|
10
10
|
name: "",
|
|
11
11
|
email: "",
|
|
12
12
|
subject: "",
|
|
13
13
|
message: ""
|
|
14
14
|
});
|
|
15
|
-
const [loading, setLoading] = React
|
|
15
|
+
const [loading, setLoading] = React.useState(false);
|
|
16
16
|
const handleSubmit = async (e) => {
|
|
17
17
|
e.preventDefault();
|
|
18
18
|
if (!onSubmit) return;
|
|
@@ -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 };
|