@lssm/lib.design-system 0.0.0-canary-20251217060804 → 0.0.0-canary-20251217062139

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 (244) hide show
  1. package/dist/_virtual/rolldown_runtime.js +1 -12
  2. package/dist/components/agent/AgentMonitor.js +3 -3
  3. package/dist/components/agent/ApprovalQueue.d.ts +2 -2
  4. package/dist/components/agent/ApprovalQueue.js +4 -5
  5. package/dist/components/atoms/ActionButtons.d.ts +3 -3
  6. package/dist/components/atoms/ActionButtons.js +3 -3
  7. package/dist/components/atoms/Button.d.ts +6 -6
  8. package/dist/components/atoms/Button.js +2 -2
  9. package/dist/components/atoms/ButtonLink.js +2 -2
  10. package/dist/components/atoms/Cta.d.ts +7 -7
  11. package/dist/components/atoms/Cta.js +2 -2
  12. package/dist/components/atoms/DataChips.d.ts +2 -2
  13. package/dist/components/atoms/DataChips.js +1 -1
  14. package/dist/components/atoms/EmptyState.d.ts +2 -2
  15. package/dist/components/atoms/EmptyState.js +1 -1
  16. package/dist/components/atoms/ErrorState.d.ts +8 -8
  17. package/dist/components/atoms/ErrorState.js +1 -1
  18. package/dist/components/atoms/Input.d.ts +2 -2
  19. package/dist/components/atoms/Input.js +1 -1
  20. package/dist/components/atoms/Link.web.d.ts +3 -3
  21. package/dist/components/atoms/Link.web.js +4 -6
  22. package/dist/components/atoms/LoaderCircular.d.ts +7 -7
  23. package/dist/components/atoms/LoaderCircular.js +2 -2
  24. package/dist/components/atoms/NavBrand.d.ts +5 -5
  25. package/dist/components/atoms/NavBrand.js +1 -1
  26. package/dist/components/atoms/Stepper.d.ts +2 -2
  27. package/dist/components/atoms/Stepper.js +1 -1
  28. package/dist/components/atoms/Textarea.d.ts +2 -2
  29. package/dist/components/atoms/Textarea.js +4 -4
  30. package/dist/components/data-view/DataViewDetail.d.ts +5 -5
  31. package/dist/components/data-view/DataViewList.d.ts +5 -5
  32. package/dist/components/data-view/DataViewRenderer.d.ts +7 -7
  33. package/dist/components/data-view/DataViewRenderer.js +3 -3
  34. package/dist/components/data-view/DataViewTable.d.ts +6 -6
  35. package/dist/components/forms/ActionForm.d.ts +5 -5
  36. package/dist/components/forms/ActionForm.js +1 -1
  37. package/dist/components/forms/FormCardLayout.d.ts +7 -7
  38. package/dist/components/forms/FormCardLayout.js +2 -2
  39. package/dist/components/forms/FormDialog.d.ts +7 -7
  40. package/dist/components/forms/FormDialog.js +1 -1
  41. package/dist/components/forms/FormLayout.d.ts +8 -8
  42. package/dist/components/forms/FormLayout.js +1 -1
  43. package/dist/components/forms/FormOneByOneLayout.d.ts +6 -6
  44. package/dist/components/forms/FormOneByOneLayout.js +4 -4
  45. package/dist/components/forms/FormStepsLayout.d.ts +6 -6
  46. package/dist/components/forms/FormStepsLayout.js +5 -5
  47. package/dist/components/forms/ZodForm.d.ts +6 -6
  48. package/dist/components/forms/ZodForm.js +1 -1
  49. package/dist/components/legal/atoms/DefinitionList.d.ts +5 -5
  50. package/dist/components/legal/atoms/DefinitionList.js +1 -1
  51. package/dist/components/legal/atoms/KeyValueList.d.ts +5 -5
  52. package/dist/components/legal/atoms/KeyValueList.js +1 -1
  53. package/dist/components/legal/atoms/LegalCallout.d.ts +6 -6
  54. package/dist/components/legal/atoms/LegalCallout.js +1 -1
  55. package/dist/components/legal/atoms/LegalHeading.d.ts +6 -6
  56. package/dist/components/legal/atoms/LegalHeading.js +1 -1
  57. package/dist/components/legal/atoms/LegalList.d.ts +6 -6
  58. package/dist/components/legal/atoms/LegalList.js +1 -1
  59. package/dist/components/legal/atoms/LegalSection.d.ts +6 -6
  60. package/dist/components/legal/atoms/LegalSection.js +1 -1
  61. package/dist/components/legal/atoms/LegalText.d.ts +6 -6
  62. package/dist/components/legal/atoms/LegalText.js +1 -1
  63. package/dist/components/legal/molecules/Consent.d.ts +8 -8
  64. package/dist/components/legal/molecules/Consent.js +2 -2
  65. package/dist/components/legal/molecules/ContactFields.d.ts +2 -2
  66. package/dist/components/legal/molecules/ContactFields.js +1 -1
  67. package/dist/components/legal/molecules/LegalMeta.d.ts +2 -2
  68. package/dist/components/legal/molecules/LegalMeta.js +1 -1
  69. package/dist/components/legal/molecules/LegalTOC.d.ts +7 -7
  70. package/dist/components/legal/molecules/LegalTOC.js +1 -1
  71. package/dist/components/legal/organisms/ContactForm.d.ts +4 -4
  72. package/dist/components/legal/organisms/ContactForm.js +3 -3
  73. package/dist/components/legal/organisms/GDPRDataRequest.d.ts +5 -5
  74. package/dist/components/legal/organisms/GDPRDataRequest.js +2 -2
  75. package/dist/components/legal/organisms/GDPRRights.d.ts +5 -5
  76. package/dist/components/legal/organisms/LegalPageLayout.d.ts +5 -5
  77. package/dist/components/legal/organisms/LegalPageLayout.js +1 -1
  78. package/dist/components/legal/templates/ContactTemplate.d.ts +4 -4
  79. package/dist/components/legal/templates/ContactTemplate.js +3 -3
  80. package/dist/components/legal/templates/CookiesTemplate.d.ts +9 -9
  81. package/dist/components/legal/templates/PrivacyTemplate.d.ts +9 -9
  82. package/dist/components/legal/templates/SalesTermsTemplate.d.ts +7 -7
  83. package/dist/components/legal/templates/TermsTemplate.d.ts +7 -7
  84. package/dist/components/marketing/MarketingCard.d.ts +4 -4
  85. package/dist/components/marketing/MarketingCard.js +3 -3
  86. package/dist/components/marketing/MarketingCardsSection.d.ts +2 -2
  87. package/dist/components/marketing/MarketingCardsSection.js +1 -1
  88. package/dist/components/marketing/MarketingComparisonSection.d.ts +5 -5
  89. package/dist/components/marketing/MarketingComparisonSection.js +3 -3
  90. package/dist/components/marketing/MarketingIconCard.d.ts +5 -5
  91. package/dist/components/marketing/MarketingIconCard.js +4 -3
  92. package/dist/components/marketing/MarketingSection.d.ts +5 -5
  93. package/dist/components/marketing/MarketingSection.js +3 -3
  94. package/dist/components/marketing/MarketingStepCard.d.ts +3 -3
  95. package/dist/components/marketing/MarketingStepCard.js +4 -3
  96. package/dist/components/molecules/AiLinkButton.d.ts +2 -2
  97. package/dist/components/molecules/AiLinkButton.js +5 -5
  98. package/dist/components/molecules/Breadcrumbs.d.ts +4 -4
  99. package/dist/components/molecules/Breadcrumbs.js +3 -3
  100. package/dist/components/molecules/CommandPalette.js +4 -4
  101. package/dist/components/molecules/CommandSearchTrigger.d.ts +2 -2
  102. package/dist/components/molecules/CommandSearchTrigger.js +5 -5
  103. package/dist/components/molecules/EntityCard.d.ts +11 -11
  104. package/dist/components/molecules/EntityCard.js +2 -2
  105. package/dist/components/molecules/FiltersToolbar.d.ts +6 -6
  106. package/dist/components/molecules/FiltersToolbar.js +6 -6
  107. package/dist/components/molecules/HoverPreview.d.ts +5 -5
  108. package/dist/components/molecules/HoverPreview.js +4 -2
  109. package/dist/components/molecules/LangSwitch.d.ts +4 -4
  110. package/dist/components/molecules/LangSwitchDropdown.js +4 -4
  111. package/dist/components/molecules/LoaderBlock.d.ts +5 -5
  112. package/dist/components/molecules/LoaderBlock.js +1 -1
  113. package/dist/components/molecules/MobileNavMenu.js +1 -1
  114. package/dist/components/molecules/NavItemCard.js +1 -1
  115. package/dist/components/molecules/NavMain.d.ts +2 -2
  116. package/dist/components/molecules/NavMain.js +4 -4
  117. package/dist/components/molecules/NavUser.js +2 -2
  118. package/dist/components/molecules/OverviewCard.d.ts +4 -4
  119. package/dist/components/molecules/OverviewCard.js +3 -5
  120. package/dist/components/molecules/SkeletonBlock/index.web.d.ts +2 -2
  121. package/dist/components/molecules/SkeletonBlock/index.web.js +2 -2
  122. package/dist/components/molecules/SkeletonCircle/index.web.js +1 -1
  123. package/dist/components/molecules/SkeletonList/index.web.d.ts +2 -2
  124. package/dist/components/molecules/SkeletonList/index.web.js +1 -1
  125. package/dist/components/molecules/StatCard.d.ts +11 -11
  126. package/dist/components/molecules/StatCard.js +2 -2
  127. package/dist/components/molecules/StatusChip.d.ts +7 -7
  128. package/dist/components/molecules/StatusChip.js +1 -1
  129. package/dist/components/molecules/hover-previews/Doc.d.ts +6 -6
  130. package/dist/components/molecules/hover-previews/Media.d.ts +7 -7
  131. package/dist/components/molecules/hover-previews/Simple.d.ts +9 -9
  132. package/dist/components/molecules/hover-previews/Stats.d.ts +8 -8
  133. package/dist/components/molecules/hover-previews/User.d.ts +9 -9
  134. package/dist/components/organisms/AcademyLayout.d.ts +9 -9
  135. package/dist/components/organisms/AcademyLayout.js +4 -4
  136. package/dist/components/organisms/AppHeader.d.ts +5 -5
  137. package/dist/components/organisms/AppHeader.js +2 -2
  138. package/dist/components/organisms/AppLayout.d.ts +6 -6
  139. package/dist/components/organisms/AppLayout.js +5 -5
  140. package/dist/components/organisms/AppSidebar.d.ts +3 -3
  141. package/dist/components/organisms/AppSidebar.js +2 -2
  142. package/dist/components/organisms/EmptyDataList.d.ts +2 -2
  143. package/dist/components/organisms/EmptyDataList.js +1 -1
  144. package/dist/components/organisms/EmptyDataList.types.d.ts +8 -8
  145. package/dist/components/organisms/EmptySearchResult.d.ts +7 -7
  146. package/dist/components/organisms/EmptySearchResult.js +3 -3
  147. package/dist/components/organisms/FAQSection.d.ts +8 -8
  148. package/dist/components/organisms/FAQSection.js +4 -4
  149. package/dist/components/organisms/FeatureCarousel.d.ts +4 -4
  150. package/dist/components/organisms/FeatureCarousel.js +2 -2
  151. package/dist/components/organisms/FeaturesSection.d.ts +6 -6
  152. package/dist/components/organisms/FeaturesSection.js +1 -1
  153. package/dist/components/organisms/Footer.d.ts +5 -5
  154. package/dist/components/organisms/Footer.js +2 -2
  155. package/dist/components/organisms/Header.d.ts +5 -5
  156. package/dist/components/organisms/Header.js +4 -4
  157. package/dist/components/organisms/HeroResponsive.d.ts +3 -3
  158. package/dist/components/organisms/HeroSection.d.ts +5 -5
  159. package/dist/components/organisms/HeroSection.js +1 -1
  160. package/dist/components/organisms/ListCardPage.d.ts +9 -9
  161. package/dist/components/organisms/ListCardPage.js +2 -2
  162. package/dist/components/organisms/ListGridPage.d.ts +9 -9
  163. package/dist/components/organisms/ListGridPage.js +1 -1
  164. package/dist/components/organisms/ListPageResponsive.d.ts +2 -2
  165. package/dist/components/organisms/ListPageResponsive.js +1 -1
  166. package/dist/components/organisms/ListTablePage.d.ts +10 -10
  167. package/dist/components/organisms/ListTablePage.js +2 -2
  168. package/dist/components/organisms/MarketingHeader.d.ts +4 -4
  169. package/dist/components/organisms/MarketingHeader.js +9 -9
  170. package/dist/components/organisms/MarketingHeaderDesktop.js +3 -3
  171. package/dist/components/organisms/MarketingHeaderMobile.js +6 -6
  172. package/dist/components/organisms/MarketingLayout.d.ts +4 -4
  173. package/dist/components/organisms/MarketingLayout.js +2 -2
  174. package/dist/components/organisms/PageHeaderResponsive.d.ts +2 -2
  175. package/dist/components/organisms/PageHeaderResponsive.js +1 -1
  176. package/dist/components/organisms/PricingCarousel.d.ts +2 -2
  177. package/dist/components/organisms/PricingCarousel.js +2 -2
  178. package/dist/components/organisms/PricingSection.d.ts +5 -5
  179. package/dist/components/organisms/PricingSection.js +1 -1
  180. package/dist/components/organisms/TestimonialCarousel.d.ts +7 -7
  181. package/dist/components/organisms/TestimonialCarousel.js +2 -2
  182. package/dist/components/templates/lists/ListPageTemplate/index.web.d.ts +2 -2
  183. package/dist/components/templates/lists/ListPageTemplate/index.web.js +5 -5
  184. package/dist/components/templates/lists/ListPageTemplate/types.d.ts +7 -7
  185. package/dist/contracts/dist/client/react/drivers/shadcn.js +7 -0
  186. package/dist/contracts/dist/client/react/form-render.js +261 -0
  187. package/dist/contracts/dist/forms.js +78 -0
  188. package/dist/hooks/useListUrlState.js +7 -7
  189. package/dist/index.js +2 -1
  190. package/dist/platform/useColorScheme.js +3 -3
  191. package/dist/platform/useReducedMotion.js +3 -3
  192. package/dist/platform/useResponsive.js +4 -4
  193. package/dist/renderers/form-contract.d.ts +3 -3
  194. package/dist/renderers/form-contract.js +13 -13
  195. package/dist/theme/variants.d.ts +2 -2
  196. package/dist/types/navigation.d.ts +10 -10
  197. package/dist/ui-kit-web/dist/ui/accordion.js +48 -0
  198. package/dist/ui-kit-web/dist/ui/atoms/FilterSelect/FilterSelect.js +52 -0
  199. package/dist/ui-kit-web/dist/ui/atoms/Pagination/Pagination.js +156 -0
  200. package/dist/ui-kit-web/dist/ui/atoms/SearchInput/SearchInput.js +49 -0
  201. package/dist/ui-kit-web/dist/ui/avatar.js +32 -0
  202. package/dist/ui-kit-web/dist/ui/badge.js +27 -0
  203. package/dist/ui-kit-web/dist/ui/breadcrumb.js +59 -0
  204. package/dist/ui-kit-web/dist/ui/button.js +55 -0
  205. package/dist/ui-kit-web/dist/ui/card.js +44 -0
  206. package/dist/ui-kit-web/dist/ui/carousel.js +135 -0
  207. package/dist/ui-kit-web/dist/ui/checkbox.js +25 -0
  208. package/dist/ui-kit-web/dist/ui/collapsible.js +27 -0
  209. package/dist/ui-kit-web/dist/ui/command.js +90 -0
  210. package/dist/ui-kit-web/dist/ui/dialog.js +84 -0
  211. package/dist/ui-kit-web/dist/ui/dropdown-menu.js +57 -0
  212. package/dist/ui-kit-web/dist/ui/empty-state.js +43 -0
  213. package/dist/ui-kit-web/dist/ui/empty.js +62 -0
  214. package/dist/ui-kit-web/dist/ui/field.js +78 -0
  215. package/dist/ui-kit-web/dist/ui/form.js +16 -0
  216. package/dist/ui-kit-web/dist/ui/hover-card.js +40 -0
  217. package/dist/ui-kit-web/dist/ui/input.js +17 -0
  218. package/dist/ui-kit-web/dist/ui/label.js +19 -0
  219. package/dist/ui-kit-web/dist/ui/marketing/Hero.js +52 -0
  220. package/dist/ui-kit-web/dist/ui/marketing/PricingTable.js +59 -0
  221. package/dist/ui-kit-web/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +102 -0
  222. package/dist/ui-kit-web/dist/ui/molecules/SkeletonList.js +14 -0
  223. package/dist/ui-kit-web/dist/ui/navigation-menu.js +75 -0
  224. package/dist/ui-kit-web/dist/ui/organisms/ListPage/ListPage.js +197 -0
  225. package/dist/ui-kit-web/dist/ui/page-header.js +40 -0
  226. package/dist/ui-kit-web/dist/ui/pagination.js +65 -0
  227. package/dist/ui-kit-web/dist/ui/radio-group.js +32 -0
  228. package/dist/ui-kit-web/dist/ui/select.js +86 -0
  229. package/dist/ui-kit-web/dist/ui/separator.js +21 -0
  230. package/dist/ui-kit-web/dist/ui/sheet.js +80 -0
  231. package/dist/ui-kit-web/dist/ui/sidebar.js +281 -0
  232. package/dist/ui-kit-web/dist/ui/skeleton.js +14 -0
  233. package/dist/ui-kit-web/dist/ui/stack.js +158 -0
  234. package/dist/ui-kit-web/dist/ui/stepper.js +37 -0
  235. package/dist/ui-kit-web/dist/ui/switch.js +24 -0
  236. package/dist/ui-kit-web/dist/ui/table.js +57 -0
  237. package/dist/ui-kit-web/dist/ui/text.js +16 -0
  238. package/dist/ui-kit-web/dist/ui/textarea.js +16 -0
  239. package/dist/ui-kit-web/dist/ui/tooltip.js +40 -0
  240. package/dist/ui-kit-web/dist/ui/typography.js +23 -0
  241. package/dist/ui-kit-web/dist/ui/use-mobile.js +20 -0
  242. package/dist/ui-kit-web/dist/ui/utils.js +10 -0
  243. package/dist/ui-kit-web/dist/ui-kit-core/dist/utils.js +13 -0
  244. package/package.json +7 -7
@@ -0,0 +1,261 @@
1
+ import { i, r } from "../../forms.js";
2
+ import React, { useEffect, useMemo, useState } from "react";
3
+ import { Controller, useFieldArray, useForm } from "react-hook-form";
4
+ import { zodResolver } from "@hookform/resolvers/zod";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
+
7
+ //#region ../contracts/dist/client/react/form-render.js
8
+ function p(e) {
9
+ if (e) return Array.isArray(e) ? {
10
+ kind: `static`,
11
+ options: e
12
+ } : e;
13
+ }
14
+ function m(e, t) {
15
+ if (!t) return;
16
+ let n = t.replace(/\[(\d+)\]/g, `.$1`).split(`.`).filter(Boolean), r$1 = e;
17
+ for (let e$1 of n) {
18
+ if (r$1 == null) return;
19
+ r$1 = r$1[e$1];
20
+ }
21
+ return r$1;
22
+ }
23
+ function h(e, t) {
24
+ if (!t || t.length === 0) return `[]`;
25
+ try {
26
+ return JSON.stringify(t.map((t$1) => m(e, t$1)));
27
+ } catch {
28
+ return `[]`;
29
+ }
30
+ }
31
+ function g(e, t, n) {
32
+ let [o, s] = useState([]);
33
+ return useEffect(() => {
34
+ let r$1 = !0;
35
+ return (async () => {
36
+ if (!t) return s([]);
37
+ if (t.kind === `static`) return s([...t.options ?? []]);
38
+ let i$1 = n?.[t.resolverKey];
39
+ if (!i$1) return s([]);
40
+ let a = await i$1(e, t.args);
41
+ r$1 && s([...a ?? []]);
42
+ })(), () => {
43
+ r$1 = !1;
44
+ };
45
+ }, [useMemo(() => t ? t.kind === `static` ? JSON.stringify(t.options ?? []) : h(e, t.deps) : `nil`, [t, e]), t && t.resolverKey]), o;
46
+ }
47
+ function _(e, t, n) {
48
+ if (!t) return e ?? ``;
49
+ let r$1 = typeof n == `number` ? `${t.replace(/^\$index$/, String(n))}` : t;
50
+ return e ? `${e}${typeof n == `number` ? `.${n}` : ``}.${r$1}`.replace(/\.+/g, `.`) : r$1;
51
+ }
52
+ function v(r$1) {
53
+ let a = r$1, { driver: m$1 } = a;
54
+ function h$1(r$2) {
55
+ let { spec: a$1, options: h$2, merged: v$1 } = r$2, y = useMemo(() => i(a$1), [a$1]), b = useForm({
56
+ ...v$1.formOptions,
57
+ resolver: zodResolver(y),
58
+ defaultValues: h$2?.defaultValues
59
+ }), x = b.watch(), S = (e, r$3, i$1) => {
60
+ let a$2 = m$1.Field, s = m$1.FieldLabel, c = m$1.FieldDescription, l = m$1.FieldError, h$3 = _(r$3, e.name, i$1), y$1 = r(x, e.visibleWhen), w$1 = r(x, e.enabledWhen), T$1 = !!b.getFieldState(h$3)?.invalid;
61
+ if (!y$1) return null;
62
+ let E = h$3?.replace(/\./g, `-`), D = {
63
+ "data-invalid": T$1,
64
+ hidden: !y$1,
65
+ disabled: !w$1
66
+ }, O = e.labelI18n ? jsx(s, {
67
+ htmlFor: E,
68
+ children: e.labelI18n
69
+ }) : null, k = e.descriptionI18n ? jsx(c, { children: e.descriptionI18n }) : null;
70
+ if (e.kind === `group`) {
71
+ let t = e.fields.map((e$1, t$1) => jsx(React.Fragment, { children: S(e$1, h$3, i$1) }, `${h$3}-${t$1}`));
72
+ return jsxs(a$2, {
73
+ ...D,
74
+ children: [
75
+ O,
76
+ t,
77
+ k
78
+ ]
79
+ });
80
+ }
81
+ return e.kind === `array` ? C(e, r$3) : jsx(Controller, {
82
+ name: h$3,
83
+ control: b.control,
84
+ render: ({ field: t, fieldState: n }) => {
85
+ let r$4 = n.error ? [n.error] : [], i$2 = n.invalid || void 0;
86
+ if (e.kind === `text`) {
87
+ let o = m$1.Input;
88
+ return jsxs(a$2, {
89
+ ...D,
90
+ children: [
91
+ O,
92
+ jsx(o, {
93
+ id: E,
94
+ "aria-invalid": i$2,
95
+ placeholder: e.placeholderI18n,
96
+ autoComplete: e.autoComplete,
97
+ inputMode: e.inputMode,
98
+ maxLength: e.maxLength,
99
+ minLength: e.minLength,
100
+ disabled: !w$1,
101
+ ...t,
102
+ ...e.uiProps,
103
+ keyboard: e.keyboard,
104
+ autoComplete: e.keyboard?.autoComplete ?? e.autoComplete
105
+ }),
106
+ k,
107
+ n.invalid ? jsx(l, { errors: r$4 }) : null
108
+ ]
109
+ });
110
+ }
111
+ if (e.kind === `textarea`) {
112
+ let o = m$1.Textarea;
113
+ return jsxs(a$2, {
114
+ ...D,
115
+ children: [
116
+ O,
117
+ jsx(o, {
118
+ id: E,
119
+ "aria-invalid": i$2,
120
+ placeholder: e.placeholderI18n,
121
+ rows: e.rows,
122
+ maxLength: e.maxLength,
123
+ disabled: !w$1,
124
+ ...t,
125
+ ...e.uiProps,
126
+ keyboard: e.keyboard,
127
+ autoComplete: e.keyboard?.autoComplete ?? e.autoComplete
128
+ }),
129
+ k,
130
+ n.invalid ? jsx(l, { errors: r$4 }) : null
131
+ ]
132
+ });
133
+ }
134
+ if (e.kind === `select`) {
135
+ let o = m$1.Select, s$1 = g(x, p(e.options), v$1.resolvers);
136
+ return jsxs(a$2, {
137
+ ...D,
138
+ children: [
139
+ O,
140
+ jsx(o, {
141
+ id: E,
142
+ name: h$3,
143
+ "aria-invalid": i$2,
144
+ disabled: !w$1,
145
+ value: t.value,
146
+ onChange: (e$1) => t.onChange(e$1),
147
+ options: s$1,
148
+ ...e.uiProps
149
+ }),
150
+ k,
151
+ n.invalid ? jsx(l, { errors: r$4 }) : null
152
+ ]
153
+ });
154
+ }
155
+ if (e.kind === `checkbox`) {
156
+ let i$3 = m$1.Checkbox;
157
+ return jsxs(a$2, {
158
+ ...D,
159
+ children: [
160
+ O,
161
+ jsx(i$3, {
162
+ id: E,
163
+ name: h$3,
164
+ disabled: !w$1,
165
+ checked: !!t.value,
166
+ onCheckedChange: (e$1) => t.onChange(e$1),
167
+ ...e.uiProps
168
+ }),
169
+ k,
170
+ n.invalid ? jsx(l, { errors: r$4 }) : null
171
+ ]
172
+ });
173
+ }
174
+ if (e.kind === `radio`) {
175
+ let i$3 = m$1.RadioGroup, o = g(x, p(e.options), v$1.resolvers);
176
+ return jsxs(a$2, {
177
+ ...D,
178
+ children: [
179
+ O,
180
+ jsx(i$3, {
181
+ id: E,
182
+ name: h$3,
183
+ disabled: !w$1,
184
+ value: t.value,
185
+ onValueChange: (e$1) => t.onChange(e$1),
186
+ options: o,
187
+ ...e.uiProps
188
+ }),
189
+ k,
190
+ n.invalid ? jsx(l, { errors: r$4 }) : null
191
+ ]
192
+ });
193
+ }
194
+ if (e.kind === `switch`) {
195
+ let i$3 = m$1.Switch;
196
+ return jsxs(a$2, {
197
+ ...D,
198
+ children: [
199
+ O,
200
+ jsx(i$3, {
201
+ id: E,
202
+ name: h$3,
203
+ disabled: !w$1,
204
+ checked: !!t.value,
205
+ onCheckedChange: (e$1) => t.onChange(e$1),
206
+ ...e.uiProps
207
+ }),
208
+ k,
209
+ n.invalid ? jsx(l, { errors: r$4 }) : null
210
+ ]
211
+ });
212
+ }
213
+ return jsx(Fragment, {});
214
+ }
215
+ }, h$3);
216
+ }, C = (e, t) => {
217
+ let n = _(t, e.name), { fields: r$3, append: i$1, remove: a$2 } = useFieldArray({
218
+ control: b.control,
219
+ name: n
220
+ }), o = e.max == null || r$3.length < e.max, c = (t$1) => (e.min == null ? r$3.length > 0 : r$3.length > e.min) && t$1 >= 0, l = m$1.Button, u = m$1.FieldLabel;
221
+ return jsxs(`div`, { children: [
222
+ e.labelI18n ? jsx(u, { children: e.labelI18n }) : null,
223
+ r$3.map((t$1, r$4) => jsxs(`div`, { children: [S(e.of, n, r$4), c(r$4) ? jsx(l, {
224
+ type: `button`,
225
+ variant: `ghost`,
226
+ size: `sm`,
227
+ onClick: () => a$2(r$4),
228
+ children: `Remove`
229
+ }) : null] }, t$1.id ?? r$4)),
230
+ o ? jsx(l, {
231
+ type: `button`,
232
+ variant: `outline`,
233
+ size: `sm`,
234
+ onClick: () => i$1({}),
235
+ children: `Add`
236
+ }) : null
237
+ ] }, n);
238
+ }, w = async (e) => {
239
+ let t = a$1.actions?.[0]?.key ?? `submit`;
240
+ if (v$1.onSubmitOverride) return v$1.onSubmitOverride(e, t);
241
+ }, T = m$1.Button;
242
+ return jsxs(`form`, {
243
+ onSubmit: b.handleSubmit(w),
244
+ children: [(a$1.fields || []).map((e, t) => jsx(React.Fragment, { children: S(e) }, t)), a$1.actions && a$1.actions.length ? jsx(`div`, { children: a$1.actions.map((e) => jsx(T, {
245
+ type: `submit`,
246
+ children: e.labelI18n
247
+ }, e.key)) }) : null]
248
+ });
249
+ }
250
+ return { render: (e, t) => jsx(h$1, {
251
+ spec: e,
252
+ options: t,
253
+ merged: {
254
+ ...a,
255
+ ...t?.overrides ?? {}
256
+ }
257
+ }) };
258
+ }
259
+
260
+ //#endregion
261
+ export { v };
@@ -0,0 +1,78 @@
1
+ //#region ../contracts/dist/forms.js
2
+ function n(e, t) {
3
+ if (!t) return;
4
+ let n$1 = t.replace(/\[(\d+)\]/g, `.$1`).split(`.`).filter(Boolean), r$1 = e;
5
+ for (let e$1 of n$1) {
6
+ if (r$1 == null) return;
7
+ r$1 = r$1[e$1];
8
+ }
9
+ return r$1;
10
+ }
11
+ function r(e, t) {
12
+ if (!t) return !0;
13
+ if (t.not) return !r(e, t.not);
14
+ if (t.all && t.all.length) return t.all.every((t$1) => r(e, t$1));
15
+ if (t.any && t.any.length) return t.any.some((t$1) => r(e, t$1));
16
+ if (t.when) {
17
+ let { path: r$1, op: i$1 = `truthy`, value: a } = t.when, o = n(e, r$1);
18
+ switch (i$1) {
19
+ case `equals`: return o === a;
20
+ case `notEquals`: return o !== a;
21
+ case `in`: return Array.isArray(a) && a.includes(o);
22
+ case `notIn`: return Array.isArray(a) && !a.includes(o);
23
+ case `gt`: return Number(o) > Number(a);
24
+ case `gte`: return Number(o) >= Number(a);
25
+ case `lt`: return Number(o) < Number(a);
26
+ case `lte`: return Number(o) <= Number(a);
27
+ case `empty`: return o == null || (Array.isArray(o) ? o.length === 0 : String(o).length === 0);
28
+ case `lengthGt`: return (Array.isArray(o) || typeof o == `string`) && o.length > Number(a ?? 0);
29
+ case `lengthGte`: return (Array.isArray(o) || typeof o == `string`) && o.length >= Number(a ?? 0);
30
+ case `lengthLt`: return (Array.isArray(o) || typeof o == `string`) && o.length < Number(a ?? 0);
31
+ case `lengthLte`: return (Array.isArray(o) || typeof o == `string`) && o.length <= Number(a ?? 0);
32
+ case `truthy`:
33
+ default: return !!o;
34
+ }
35
+ }
36
+ return !0;
37
+ }
38
+ function i(e, t) {
39
+ return e.model.getZod().superRefine((i$1, a) => {
40
+ let o = (e$1, t$1) => {
41
+ let s = e$1.name ? t$1 ? `${t$1}.${e$1.name}` : e$1.name : t$1 ?? ``;
42
+ if (e$1.requiredWhen && r(i$1, e$1.requiredWhen)) {
43
+ let e$2 = n(i$1, s);
44
+ (e$2 == null || typeof e$2 == `string` && e$2.trim().length === 0 || Array.isArray(e$2) && e$2.length === 0) && a.addIssue({
45
+ code: `custom`,
46
+ path: s.split(`.`),
47
+ message: `required`
48
+ });
49
+ }
50
+ if (e$1.kind === `array`) {
51
+ let t$2 = n(i$1, s);
52
+ e$1.min != null && Array.isArray(t$2) && t$2.length < e$1.min && a.addIssue({
53
+ code: `custom`,
54
+ path: s.split(`.`),
55
+ message: `min:${e$1.min}`
56
+ }), e$1.max != null && Array.isArray(t$2) && t$2.length > e$1.max && a.addIssue({
57
+ code: `custom`,
58
+ path: s.split(`.`),
59
+ message: `max:${e$1.max}`
60
+ }), o(e$1.of, s);
61
+ } else if (e$1.kind === `group`) for (let t$2 of e$1.fields) o(t$2, s);
62
+ };
63
+ for (let t$1 of e.fields) o(t$1);
64
+ if (e.constraints && t) for (let n$1 of e.constraints) {
65
+ let e$1 = t[n$1.key];
66
+ if (!e$1) continue;
67
+ let r$1 = e$1(i$1, n$1.paths, n$1.args);
68
+ r$1.ok || a.addIssue({
69
+ code: `custom`,
70
+ path: (r$1.path ?? n$1.paths[0] ?? ``).split(`.`).filter(Boolean),
71
+ message: r$1.message ?? n$1.messageI18n
72
+ });
73
+ }
74
+ });
75
+ }
76
+
77
+ //#endregion
78
+ export { i, r };
@@ -1,4 +1,4 @@
1
- import * as React from "react";
1
+ import * as React$1 from "react";
2
2
 
3
3
  //#region src/hooks/useListUrlState.ts
4
4
  function useListUrlState({ defaults, paramKeys = {
@@ -8,7 +8,7 @@ function useListUrlState({ defaults, paramKeys = {
8
8
  sort: "sort",
9
9
  filters: "f"
10
10
  }, replaceState = true }) {
11
- const read = React.useCallback(() => {
11
+ const read = React$1.useCallback(() => {
12
12
  if (typeof window === "undefined") return defaults;
13
13
  const qs = new URL(window.location.href).searchParams;
14
14
  const parseNum = (v, d) => {
@@ -30,8 +30,8 @@ function useListUrlState({ defaults, paramKeys = {
30
30
  filters
31
31
  };
32
32
  }, [defaults, paramKeys]);
33
- const [state, setState] = React.useState(read);
34
- const write = React.useCallback((next) => {
33
+ const [state, setState] = React$1.useState(read);
34
+ const write = React$1.useCallback((next) => {
35
35
  if (typeof window === "undefined") return;
36
36
  const url = new URL(window.location.href);
37
37
  const qs = url.searchParams;
@@ -60,19 +60,19 @@ function useListUrlState({ defaults, paramKeys = {
60
60
  paramKeys,
61
61
  replaceState
62
62
  ]);
63
- const setFilter = React.useCallback((key, value) => {
63
+ const setFilter = React$1.useCallback((key, value) => {
64
64
  write({ filters: {
65
65
  ...state.filters,
66
66
  [key]: value
67
67
  } });
68
68
  }, [state.filters, write]);
69
- const clearFilters = React.useCallback(() => {
69
+ const clearFilters = React$1.useCallback(() => {
70
70
  write({
71
71
  filters: {},
72
72
  page: 1
73
73
  });
74
74
  }, [write]);
75
- React.useEffect(() => {
75
+ React$1.useEffect(() => {
76
76
  const onPop = () => setState(read());
77
77
  window.addEventListener("popstate", onPop);
78
78
  return () => window.removeEventListener("popstate", onPop);
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ import { DeleteButton, EditButton, ToggleButton, ToggleLeftButton, ToggleRightBu
11
11
  import { DateChip, DurationChip, PlaceChip, TimeChip } from "./components/atoms/DataChips.js";
12
12
  import { NavMain } from "./components/molecules/NavMain.js";
13
13
  import { NavUser } from "./components/molecules/NavUser.js";
14
+ import { CardContent, CardDescription, CardHeader, CardTitle } from "./ui-kit-web/dist/ui/card.js";
14
15
  import { ApprovalQueue } from "./components/agent/ApprovalQueue.js";
15
16
  import { AgentMonitor } from "./components/agent/AgentMonitor.js";
16
17
  import { AppSidebar } from "./components/organisms/AppSidebar.js";
@@ -25,7 +26,7 @@ import { MarketingHeaderMobile } from "./components/organisms/MarketingHeaderMob
25
26
  import { MarketingLayout } from "./components/organisms/MarketingLayout.js";
26
27
  import { MarketingSection } from "./components/marketing/MarketingSection.js";
27
28
  import { MarketingCardsSection } from "./components/marketing/MarketingCardsSection.js";
28
- import { CardContent, CardDescription, CardHeader, CardTitle, MarketingCard } from "./components/marketing/MarketingCard.js";
29
+ import { MarketingCard } from "./components/marketing/MarketingCard.js";
29
30
  import { MarketingIconCard } from "./components/marketing/MarketingIconCard.js";
30
31
  import { MarketingStepCard } from "./components/marketing/MarketingStepCard.js";
31
32
  import { MarketingComparisonSection } from "./components/marketing/MarketingComparisonSection.js";
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
- import * as React from "react";
3
+ import * as React$1 from "react";
4
4
 
5
5
  //#region src/platform/useColorScheme.ts
6
6
  function useColorScheme() {
7
- const [scheme, setScheme] = React.useState("light");
8
- React.useEffect(() => {
7
+ const [scheme, setScheme] = React$1.useState("light");
8
+ React$1.useEffect(() => {
9
9
  if (typeof window === "undefined" || !window.matchMedia) return;
10
10
  const media = window.matchMedia("(prefers-color-scheme: dark)");
11
11
  const update = () => setScheme(media.matches ? "dark" : "light");
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
 
3
- import * as React from "react";
3
+ import * as React$1 from "react";
4
4
 
5
5
  //#region src/platform/useReducedMotion.ts
6
6
  function useReducedMotion() {
7
- const [reduced, setReduced] = React.useState(false);
8
- React.useEffect(() => {
7
+ const [reduced, setReduced] = React$1.useState(false);
8
+ React$1.useEffect(() => {
9
9
  if (typeof window === "undefined" || !window.matchMedia) return;
10
10
  const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
11
11
  const onChange = () => setReduced(mq.matches);
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import * as React from "react";
3
+ import * as React$1 from "react";
4
4
 
5
5
  //#region src/platform/useResponsive.ts
6
6
  const DEFAULT = {
@@ -10,12 +10,12 @@ const DEFAULT = {
10
10
  xl: 1280
11
11
  };
12
12
  function useResponsive(custom) {
13
- const bp = React.useMemo(() => ({
13
+ const bp = React$1.useMemo(() => ({
14
14
  ...DEFAULT,
15
15
  ...custom
16
16
  }), [custom]);
17
- const [width, setWidth] = React.useState(typeof window !== "undefined" ? window.innerWidth : bp.md);
18
- React.useEffect(() => {
17
+ const [width, setWidth] = React$1.useState(typeof window !== "undefined" ? window.innerWidth : bp.md);
18
+ React$1.useEffect(() => {
19
19
  if (typeof window === "undefined") return;
20
20
  const onResize = () => setWidth(window.innerWidth);
21
21
  window.addEventListener("resize", onResize);
@@ -1,11 +1,11 @@
1
- import * as _lssm_lib_contracts_client_react_form_render0 from "@lssm/lib.contracts/client/react/form-render";
2
- import * as react_jsx_runtime113 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime108 from "react/jsx-runtime";
3
2
  import * as _lssm_lib_schema0 from "@lssm/lib.schema";
4
3
  import * as _lssm_lib_contracts_forms0 from "@lssm/lib.contracts/forms";
4
+ import * as _lssm_lib_contracts_client_react_form_render0 from "@lssm/lib.contracts/client/react/form-render";
5
5
 
6
6
  //#region src/renderers/form-contract.d.ts
7
7
  declare const formRenderer: {
8
- render: (spec: _lssm_lib_contracts_forms0.FormSpec<_lssm_lib_schema0.AnySchemaModel>, options?: _lssm_lib_contracts_client_react_form_render0.RenderOptions<Record<string, any>> | undefined) => react_jsx_runtime113.JSX.Element;
8
+ render: (spec: _lssm_lib_contracts_forms0.FormSpec<_lssm_lib_schema0.AnySchemaModel>, options?: _lssm_lib_contracts_client_react_form_render0.RenderOptions<Record<string, any>> | undefined) => react_jsx_runtime108.JSX.Element;
9
9
  };
10
10
  //#endregion
11
11
  export { formRenderer };
@@ -1,25 +1,25 @@
1
1
  'use client';
2
2
 
3
+ import { v } from "../contracts/dist/client/react/form-render.js";
4
+ import { e } from "../contracts/dist/client/react/drivers/shadcn.js";
5
+ import { Label } from "../ui-kit-web/dist/ui/label.js";
6
+ import { Field, FieldDescription, FieldError, FieldGroup, FieldLabel } from "../ui-kit-web/dist/ui/field.js";
3
7
  import { Button } from "../components/atoms/Button.js";
4
8
  import { Input } from "../components/atoms/Input.js";
5
9
  import { Textarea } from "../components/atoms/Textarea.js";
6
- import "react";
7
- import { createFormRenderer } from "@lssm/lib.contracts/client/react/form-render";
8
- import { shadcnDriver } from "@lssm/lib.contracts/client/react/drivers/shadcn";
9
- import { Field, FieldDescription, FieldError, FieldGroup, FieldLabel } from "@lssm/lib.ui-kit-web/ui/field";
10
+ import { Switch } from "../ui-kit-web/dist/ui/switch.js";
11
+ import { RadioGroup, RadioGroupItem } from "../ui-kit-web/dist/ui/radio-group.js";
12
+ import { Checkbox } from "../ui-kit-web/dist/ui/checkbox.js";
13
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from "../ui-kit-web/dist/ui/select.js";
14
+ import React from "react";
10
15
  import { jsx, jsxs } from "react/jsx-runtime";
11
- import { Switch } from "@lssm/lib.ui-kit-web/ui/switch";
12
- import { RadioGroup, RadioGroupItem } from "@lssm/lib.ui-kit-web/ui/radio-group";
13
- import { Checkbox } from "@lssm/lib.ui-kit-web/ui/checkbox";
14
- import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from "@lssm/lib.ui-kit-web/ui/select";
15
- import { Label } from "@lssm/lib.ui-kit-web/ui/label";
16
16
 
17
17
  //#region src/renderers/form-contract.tsx
18
18
  const Select$1 = (props) => {
19
19
  const { options, value, onChange, ...rest } = props;
20
20
  return /* @__PURE__ */ jsxs(Select, {
21
21
  value: value ?? "",
22
- onValueChange: (v) => onChange?.(v),
22
+ onValueChange: (v$1) => onChange?.(v$1),
23
23
  ...rest,
24
24
  children: [/* @__PURE__ */ jsx(SelectTrigger, {
25
25
  className: "w-[180px]",
@@ -33,7 +33,7 @@ const Select$1 = (props) => {
33
33
  };
34
34
  const Checkbox$1 = (props) => /* @__PURE__ */ jsx(Checkbox, {
35
35
  checked: !!props.checked,
36
- onCheckedChange: (v) => props.onCheckedChange?.(v),
36
+ onCheckedChange: (v$1) => props.onCheckedChange?.(v$1),
37
37
  ...props
38
38
  });
39
39
  const RadioGroup$1 = (props) => /* @__PURE__ */ jsx(RadioGroup, {
@@ -51,10 +51,10 @@ const RadioGroup$1 = (props) => /* @__PURE__ */ jsx(RadioGroup, {
51
51
  });
52
52
  const Switch$1 = (props) => /* @__PURE__ */ jsx(Switch, {
53
53
  checked: !!props.checked,
54
- onCheckedChange: (v) => props.onCheckedChange?.(v),
54
+ onCheckedChange: (v$1) => props.onCheckedChange?.(v$1),
55
55
  ...props
56
56
  });
57
- const formRenderer = createFormRenderer({ driver: shadcnDriver({
57
+ const formRenderer = v({ driver: e({
58
58
  Field,
59
59
  FieldLabel,
60
60
  FieldDescription,
@@ -1,5 +1,5 @@
1
1
  import { VariantProps } from "class-variance-authority";
2
- import * as class_variance_authority_types16 from "class-variance-authority/types";
2
+ import * as class_variance_authority_types21 from "class-variance-authority/types";
3
3
 
4
4
  //#region src/theme/variants.d.ts
5
5
  type SizeVariant = 'sm' | 'md' | 'lg';
@@ -15,7 +15,7 @@ declare const dsBaseVariants: (props?: ({
15
15
  density?: "compact" | "comfortable" | null | undefined;
16
16
  tone?: "neutral" | "danger" | "info" | "success" | "warning" | null | undefined;
17
17
  emphasis?: "default" | "strong" | "subtle" | null | undefined;
18
- } & class_variance_authority_types16.ClassProp) | undefined) => string;
18
+ } & class_variance_authority_types21.ClassProp) | undefined) => string;
19
19
  type DSBaseVariantsProps = VariantProps<typeof dsBaseVariants>;
20
20
  //#endregion
21
21
  export { DSBaseVariantsProps, DensityVariant, EmphasisVariant, SizeVariant, ToneVariant, dsBaseVariants };
@@ -1,40 +1,40 @@
1
- import * as React from "react";
1
+ import * as React$1 from "react";
2
2
 
3
3
  //#region src/types/navigation.d.ts
4
4
  interface NavLink {
5
- label: React.ReactNode;
5
+ label: React$1.ReactNode;
6
6
  href: string;
7
- icon?: React.ReactNode;
7
+ icon?: React$1.ReactNode;
8
8
  badge?: string | number;
9
9
  target?: '_self' | '_blank';
10
10
  ariaLabel?: string;
11
11
  external?: boolean;
12
- description?: React.ReactNode;
12
+ description?: React$1.ReactNode;
13
13
  imageSrc?: string;
14
14
  imageAlt?: string;
15
15
  categories?: string[];
16
16
  }
17
17
  interface NavSection {
18
- title?: React.ReactNode;
18
+ title?: React$1.ReactNode;
19
19
  items: NavLink[];
20
20
  }
21
21
  interface UserMenuItem {
22
- label: React.ReactNode;
22
+ label: React$1.ReactNode;
23
23
  href?: string;
24
24
  onClick?: () => void;
25
- icon?: React.ReactNode;
25
+ icon?: React$1.ReactNode;
26
26
  danger?: boolean;
27
27
  }
28
28
  interface HeaderNavItem {
29
- label: React.ReactNode;
29
+ label: React$1.ReactNode;
30
30
  href?: string;
31
- description?: React.ReactNode;
31
+ description?: React$1.ReactNode;
32
32
  key?: string;
33
33
  items?: NavLink[];
34
34
  match?: 'exact' | 'startsWith';
35
35
  }
36
36
  interface CtaAction {
37
- label: React.ReactNode;
37
+ label: React$1.ReactNode;
38
38
  href?: string;
39
39
  onClick?: () => void;
40
40
  variant?: 'default' | 'secondary' | 'outline' | 'ghost' | 'destructive';
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+
3
+ import { cn, init_utils } from "../ui-kit-core/dist/utils.js";
4
+ import "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { ChevronDownIcon } from "lucide-react";
7
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
8
+
9
+ //#region ../ui-kit-web/dist/ui/accordion.js
10
+ init_utils();
11
+ function Accordion({ ...props }) {
12
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Root, {
13
+ "data-slot": "accordion",
14
+ ...props
15
+ });
16
+ }
17
+ function AccordionItem({ className, ...props }) {
18
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Item, {
19
+ "data-slot": "accordion-item",
20
+ className: cn("border-b last:border-b-0", className),
21
+ ...props
22
+ });
23
+ }
24
+ function AccordionTrigger({ className, children, ...props }) {
25
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Header, {
26
+ className: "flex",
27
+ children: /* @__PURE__ */ jsxs(AccordionPrimitive.Trigger, {
28
+ "data-slot": "accordion-trigger",
29
+ className: cn("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium outline-hidden transition-all hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180", className),
30
+ ...props,
31
+ children: [children, /* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })]
32
+ })
33
+ });
34
+ }
35
+ function AccordionContent({ className, children, ...props }) {
36
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Content, {
37
+ "data-slot": "accordion-content",
38
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
39
+ ...props,
40
+ children: /* @__PURE__ */ jsx("div", {
41
+ className: cn("pt-0 pb-4", className),
42
+ children
43
+ })
44
+ });
45
+ }
46
+
47
+ //#endregion
48
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };