@contractspec/lib.design-system 3.10.0 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/README.md +116 -5
  2. package/dist/browser/components/agent/AgentMonitor.js +1 -0
  3. package/dist/browser/components/agent/ApprovalQueue.js +1 -0
  4. package/dist/browser/components/agent/ApprovalQueue.mobile.js +1 -0
  5. package/dist/browser/components/atoms/ActionButtons.js +1 -0
  6. package/dist/browser/components/atoms/Button.js +1 -0
  7. package/dist/browser/components/atoms/Button.mobile.js +1 -0
  8. package/dist/browser/components/atoms/ButtonLink.js +1 -0
  9. package/dist/browser/components/atoms/ButtonLink.mobile.js +1 -0
  10. package/dist/browser/components/atoms/Cta.js +1 -0
  11. package/dist/browser/components/atoms/Cta.mobile.js +1 -0
  12. package/dist/browser/components/atoms/DataChips.js +1 -0
  13. package/dist/browser/components/atoms/EmptyState.js +1 -0
  14. package/dist/browser/components/atoms/ErrorState.js +1 -0
  15. package/dist/browser/components/atoms/ErrorState.mobile.js +1 -0
  16. package/dist/browser/components/atoms/Input.js +1 -0
  17. package/dist/browser/components/atoms/Input.mobile.js +1 -0
  18. package/dist/browser/components/atoms/Link.js +1 -0
  19. package/dist/browser/components/atoms/Link.web.js +1 -0
  20. package/dist/browser/components/atoms/LoaderCircular.js +1 -0
  21. package/dist/browser/components/atoms/LoaderCircular.mobile.js +1 -0
  22. package/dist/browser/components/atoms/NavBrand.js +1 -0
  23. package/dist/browser/components/atoms/RankBadge.js +1 -0
  24. package/dist/browser/components/atoms/ScoreBar.js +1 -0
  25. package/dist/browser/components/atoms/Stepper.js +1 -0
  26. package/dist/browser/components/atoms/Textarea.js +1 -0
  27. package/dist/browser/components/atoms/Textarea.mobile.js +1 -0
  28. package/dist/browser/components/data-table/DataTable.js +1 -0
  29. package/dist/browser/components/data-table/DataTable.mobile.js +1 -0
  30. package/dist/browser/components/data-table/DataTableToolbar.js +1 -0
  31. package/dist/browser/components/data-table/DataTableToolbar.mobile.js +1 -0
  32. package/dist/browser/components/data-table/DataTableToolbar.shared.js +1 -0
  33. package/dist/browser/components/data-view/DataViewDetail.js +1 -0
  34. package/dist/browser/components/data-view/DataViewList.js +1 -0
  35. package/dist/browser/components/data-view/DataViewRenderer.js +1 -0
  36. package/dist/browser/components/data-view/DataViewRenderer.mobile.js +1 -0
  37. package/dist/browser/components/data-view/DataViewTable.js +1 -0
  38. package/dist/browser/components/data-view/DataViewTable.mobile.js +1 -0
  39. package/dist/browser/components/data-view/utils.js +1 -0
  40. package/dist/browser/components/forms/ActionForm.js +1 -0
  41. package/dist/browser/components/forms/FormCardLayout.js +1 -0
  42. package/dist/browser/components/forms/FormDialog.js +1 -0
  43. package/dist/browser/components/forms/FormLayout.js +1 -0
  44. package/dist/browser/components/forms/FormOneByOneLayout.js +1 -0
  45. package/dist/browser/components/forms/FormStepsLayout.js +1 -0
  46. package/dist/browser/components/forms/ZodForm.js +1 -0
  47. package/dist/browser/components/forms/controls/Autocomplete.js +1 -0
  48. package/dist/browser/components/forms/controls/Autocomplete.mobile.js +1 -0
  49. package/dist/browser/components/forms/controls/ChoiceControls.js +1 -0
  50. package/dist/browser/components/forms/controls/ChoiceControls.mobile.js +1 -0
  51. package/dist/browser/components/forms/controls/Combobox.js +1 -0
  52. package/dist/browser/components/forms/controls/Combobox.mobile.js +1 -0
  53. package/dist/browser/components/forms/controls/DateTimeControls.js +1 -0
  54. package/dist/browser/components/forms/controls/DateTimeControls.mobile.js +1 -0
  55. package/dist/browser/components/forms/controls/DropdownMenu.js +1 -0
  56. package/dist/browser/components/forms/controls/DropdownMenu.mobile.js +1 -0
  57. package/dist/browser/components/forms/controls/Field.js +1 -0
  58. package/dist/browser/components/forms/controls/Field.mobile.js +1 -0
  59. package/dist/browser/components/forms/controls/InputGroup.js +1 -0
  60. package/dist/browser/components/forms/controls/InputGroup.mobile.js +1 -0
  61. package/dist/browser/components/forms/controls/InputOTP.js +1 -0
  62. package/dist/browser/components/forms/controls/InputOTP.mobile.js +1 -0
  63. package/dist/browser/components/forms/controls/LoadingButton.js +1 -0
  64. package/dist/browser/components/forms/controls/LoadingButton.mobile.js +1 -0
  65. package/dist/browser/components/forms/controls/NativeSelect.js +1 -0
  66. package/dist/browser/components/forms/controls/NativeSelect.mobile.js +1 -0
  67. package/dist/browser/components/forms/controls/Select.js +1 -0
  68. package/dist/browser/components/forms/controls/Select.mobile.js +1 -0
  69. package/dist/browser/components/forms/controls/index.js +1 -0
  70. package/dist/browser/components/forms/index.js +1 -0
  71. package/dist/browser/components/layout/Stack.js +1 -0
  72. package/dist/browser/components/layout/Stack.mobile.js +1 -0
  73. package/dist/browser/components/layout/index.js +1 -0
  74. package/dist/browser/components/legal/atoms/DefinitionList.js +1 -0
  75. package/dist/browser/components/legal/atoms/KeyValueList.js +1 -0
  76. package/dist/browser/components/legal/atoms/LegalCallout.js +1 -0
  77. package/dist/browser/components/legal/atoms/LegalHeading.js +1 -0
  78. package/dist/browser/components/legal/atoms/LegalList.js +1 -0
  79. package/dist/browser/components/legal/atoms/LegalSection.js +1 -0
  80. package/dist/browser/components/legal/atoms/LegalText.js +1 -0
  81. package/dist/browser/components/legal/molecules/Consent.js +1 -0
  82. package/dist/browser/components/legal/molecules/ContactFields.js +1 -0
  83. package/dist/browser/components/legal/molecules/LegalMeta.js +1 -0
  84. package/dist/browser/components/legal/molecules/LegalTOC.js +1 -0
  85. package/dist/browser/components/legal/organisms/ContactForm.js +1 -0
  86. package/dist/browser/components/legal/organisms/GDPRDataRequest.js +1 -0
  87. package/dist/browser/components/legal/organisms/GDPRRights.js +1 -0
  88. package/dist/browser/components/legal/organisms/LegalPageLayout.js +1 -0
  89. package/dist/browser/components/legal/templates/ContactTemplate.js +1 -0
  90. package/dist/browser/components/legal/templates/CookiesTemplate.js +1 -0
  91. package/dist/browser/components/legal/templates/PrivacyTemplate.js +1 -0
  92. package/dist/browser/components/legal/templates/SalesTermsTemplate.js +1 -0
  93. package/dist/browser/components/legal/templates/TermsTemplate.js +1 -0
  94. package/dist/browser/components/marketing/MarketingCard.js +1 -0
  95. package/dist/browser/components/marketing/MarketingCardsSection.js +1 -0
  96. package/dist/browser/components/marketing/MarketingComparisonSection.js +1 -0
  97. package/dist/browser/components/marketing/MarketingIconCard.js +1 -0
  98. package/dist/browser/components/marketing/MarketingSection.js +1 -0
  99. package/dist/browser/components/marketing/MarketingStepCard.js +1 -0
  100. package/dist/browser/components/molecules/AiLinkButton.js +1 -0
  101. package/dist/browser/components/molecules/Breadcrumbs.js +1 -0
  102. package/dist/browser/components/molecules/CodeBlock/CodeBlock.js +1 -0
  103. package/dist/browser/components/molecules/CodeBlock/index.js +1 -0
  104. package/dist/browser/components/molecules/CodeBlock/types.js +0 -0
  105. package/dist/browser/components/molecules/CommandPalette.js +1 -0
  106. package/dist/browser/components/molecules/CommandSearchTrigger.js +1 -0
  107. package/dist/browser/components/molecules/CommandTabs/CommandTabs.js +1 -0
  108. package/dist/browser/components/molecules/CommandTabs/index.js +1 -0
  109. package/dist/browser/components/molecules/CommandTabs/types.js +0 -0
  110. package/dist/browser/components/molecules/CopyButton/CopyButton.js +1 -0
  111. package/dist/browser/components/molecules/CopyButton/index.js +1 -0
  112. package/dist/browser/components/molecules/CopyButton/types.js +0 -0
  113. package/dist/browser/components/molecules/DimensionScoresCard.js +1 -0
  114. package/dist/browser/components/molecules/DropdownMenu.js +0 -0
  115. package/dist/browser/components/molecules/EntityCard.js +1 -0
  116. package/dist/browser/components/molecules/FiltersToolbar.js +1 -0
  117. package/dist/browser/components/molecules/FiltersToolbar.mobile.js +1 -0
  118. package/dist/browser/components/molecules/HoverPreview.js +1 -0
  119. package/dist/browser/components/molecules/InstallCommand/InstallCommand.js +1 -0
  120. package/dist/browser/components/molecules/InstallCommand/index.js +1 -0
  121. package/dist/browser/components/molecules/InstallCommand/types.js +0 -0
  122. package/dist/browser/components/molecules/LangSwitch.js +1 -0
  123. package/dist/browser/components/molecules/LangSwitchDropdown.js +1 -0
  124. package/dist/browser/components/molecules/LoaderBlock.js +1 -0
  125. package/dist/browser/components/molecules/LoaderBlock.mobile.js +1 -0
  126. package/dist/browser/components/molecules/MarkdownRenderer/MarkdownRenderer.js +2 -0
  127. package/dist/browser/components/molecules/MarkdownRenderer/formatInlineMarkdown.js +1 -0
  128. package/dist/browser/components/molecules/MarkdownRenderer/index.js +1 -0
  129. package/dist/browser/components/molecules/MarkdownRenderer/renderMarkdownTable.js +1 -0
  130. package/dist/browser/components/molecules/MarkdownRenderer/types.js +0 -0
  131. package/dist/browser/components/molecules/MobileNavMenu.js +1 -0
  132. package/dist/browser/components/molecules/NavItemCard.js +1 -0
  133. package/dist/browser/components/molecules/NavMain.js +1 -0
  134. package/dist/browser/components/molecules/NavUser.js +1 -0
  135. package/dist/browser/components/molecules/OverviewCard.js +1 -0
  136. package/dist/browser/components/molecules/SkeletonBlock/index.js +1 -0
  137. package/dist/browser/components/molecules/SkeletonBlock/index.mobile.js +1 -0
  138. package/dist/browser/components/molecules/SkeletonBlock/index.web.js +1 -0
  139. package/dist/browser/components/molecules/SkeletonBlock/types.js +0 -0
  140. package/dist/browser/components/molecules/SkeletonCircle/index.js +1 -0
  141. package/dist/browser/components/molecules/SkeletonCircle/index.mobile.js +1 -0
  142. package/dist/browser/components/molecules/SkeletonCircle/index.web.js +1 -0
  143. package/dist/browser/components/molecules/SkeletonCircle/types.js +0 -0
  144. package/dist/browser/components/molecules/SkeletonList/index.js +1 -0
  145. package/dist/browser/components/molecules/SkeletonList/index.mobile.js +1 -0
  146. package/dist/browser/components/molecules/SkeletonList/index.web.js +1 -0
  147. package/dist/browser/components/molecules/SkeletonList/types.js +0 -0
  148. package/dist/browser/components/molecules/StatCard.js +1 -0
  149. package/dist/browser/components/molecules/StatusChip.js +1 -0
  150. package/dist/browser/components/molecules/hover-previews/Doc.js +1 -0
  151. package/dist/browser/components/molecules/hover-previews/Media.js +1 -0
  152. package/dist/browser/components/molecules/hover-previews/Simple.js +1 -0
  153. package/dist/browser/components/molecules/hover-previews/Stats.js +1 -0
  154. package/dist/browser/components/molecules/hover-previews/User.js +1 -0
  155. package/dist/browser/components/native/BottomTabs.mobile.js +1 -0
  156. package/dist/browser/components/native/FlatListScreen.mobile.js +1 -0
  157. package/dist/browser/components/native/SheetMenu.mobile.js +1 -0
  158. package/dist/browser/components/organisms/AcademyLayout.js +1 -0
  159. package/dist/browser/components/organisms/AppHeader.js +1 -0
  160. package/dist/browser/components/organisms/AppHeader.mobile.js +1 -0
  161. package/dist/browser/components/organisms/AppLayout.js +1 -0
  162. package/dist/browser/components/organisms/AppSidebar.js +1 -0
  163. package/dist/browser/components/organisms/AppSidebar.mobile.js +0 -0
  164. package/dist/browser/components/organisms/EmptyDataList.js +1 -0
  165. package/dist/browser/components/organisms/EmptyDataList.mobile.js +1 -0
  166. package/dist/browser/components/organisms/EmptyDataList.types.js +0 -0
  167. package/dist/browser/components/organisms/EmptySearchResult.js +1 -0
  168. package/dist/browser/components/organisms/FAQSection.js +1 -0
  169. package/dist/browser/components/organisms/FeatureCarousel.js +1 -0
  170. package/dist/browser/components/organisms/FeaturesSection.js +1 -0
  171. package/dist/browser/components/organisms/Footer.js +1 -0
  172. package/dist/browser/components/organisms/GridLayout.js +1 -0
  173. package/dist/browser/components/organisms/Header.js +1 -0
  174. package/dist/browser/components/organisms/Header.mobile.js +1 -0
  175. package/dist/browser/components/organisms/HeroResponsive.js +1 -0
  176. package/dist/browser/components/organisms/HeroSection.js +1 -0
  177. package/dist/browser/components/organisms/ListCardPage.js +1 -0
  178. package/dist/browser/components/organisms/ListGridPage.js +1 -0
  179. package/dist/browser/components/organisms/ListPageResponsive.js +1 -0
  180. package/dist/browser/components/organisms/ListTablePage.js +1 -0
  181. package/dist/browser/components/organisms/ListTablePage.mobile.js +1 -0
  182. package/dist/browser/components/organisms/MarketingHeader.js +1 -0
  183. package/dist/browser/components/organisms/MarketingHeaderDesktop.js +1 -0
  184. package/dist/browser/components/organisms/MarketingHeaderMobile.js +1 -0
  185. package/dist/browser/components/organisms/MarketingLayout.js +1 -0
  186. package/dist/browser/components/organisms/ModelComparisonView.js +1 -0
  187. package/dist/browser/components/organisms/PageHeaderResponsive.js +1 -0
  188. package/dist/browser/components/organisms/PageHeaderResponsive.mobile.js +1 -0
  189. package/dist/browser/components/organisms/PricingCarousel.js +1 -0
  190. package/dist/browser/components/organisms/PricingSection.js +1 -0
  191. package/dist/browser/components/organisms/TestimonialCarousel.js +1 -0
  192. package/dist/browser/components/primitives/control.js +1 -0
  193. package/dist/browser/components/primitives/themed.js +1 -0
  194. package/dist/browser/components/providers/PackageManagerProvider.js +1 -0
  195. package/dist/browser/components/templates/lists/ListPageTemplate/index.js +1 -0
  196. package/dist/browser/components/templates/lists/ListPageTemplate/index.mobile.js +1 -0
  197. package/dist/browser/components/templates/lists/ListPageTemplate/index.web.js +1 -0
  198. package/dist/browser/components/templates/lists/ListPageTemplate/types.js +0 -0
  199. package/dist/browser/components/visualization/ComparisonView.js +1 -0
  200. package/dist/browser/components/visualization/ComparisonView.mobile.js +1 -0
  201. package/dist/browser/components/visualization/TimelineView.js +1 -0
  202. package/dist/browser/components/visualization/TimelineView.mobile.js +1 -0
  203. package/dist/browser/components/visualization/VisualizationCard.js +1 -0
  204. package/dist/browser/components/visualization/VisualizationCard.mobile.js +1 -0
  205. package/dist/browser/components/visualization/VisualizationGrid.js +1 -0
  206. package/dist/browser/components/visualization/VisualizationGrid.mobile.js +1 -0
  207. package/dist/browser/components/visualization/VisualizationRenderer.js +1 -0
  208. package/dist/browser/components/visualization/VisualizationRenderer.mobile.js +1 -0
  209. package/dist/browser/components/visualization/types.js +0 -0
  210. package/dist/browser/contracts.typecheck.js +1 -0
  211. package/dist/browser/design-system.feature.js +1 -0
  212. package/dist/browser/hooks/useListUrlState.js +1 -0
  213. package/dist/browser/i18n/translation.js +1 -0
  214. package/dist/browser/index.js +1 -1
  215. package/dist/browser/lib/keyboard.js +1 -0
  216. package/dist/browser/lib/utils.js +1 -0
  217. package/dist/browser/platform/useColorScheme.js +1 -0
  218. package/dist/browser/platform/useColorScheme.mobile.js +1 -0
  219. package/dist/browser/platform/useReducedMotion.js +1 -0
  220. package/dist/browser/platform/useReducedMotion.mobile.js +1 -0
  221. package/dist/browser/platform/useResponsive.js +1 -0
  222. package/dist/browser/platform/useResponsive.mobile.js +1 -0
  223. package/dist/browser/platform/withPlatformUI.js +1 -0
  224. package/dist/browser/renderers/form-contract/renderer.js +1 -0
  225. package/dist/browser/renderers/form-contract/rich-fields.js +1 -0
  226. package/dist/browser/renderers/form-contract/shell.js +1 -0
  227. package/dist/browser/renderers/form-contract/values.js +1 -0
  228. package/dist/browser/renderers/form-contract.js +1 -0
  229. package/dist/browser/renderers/index.js +1 -0
  230. package/dist/browser/theme/contracts.js +1 -0
  231. package/dist/browser/theme/index.js +1 -0
  232. package/dist/browser/theme/runtime-resolvers.js +1 -0
  233. package/dist/browser/theme/runtime.js +1 -0
  234. package/dist/browser/theme/tailwind-config.js +1 -0
  235. package/dist/browser/theme/tailwind-css.js +9 -0
  236. package/dist/browser/theme/tailwind-variables.js +1 -0
  237. package/dist/browser/theme/tailwind.js +1 -0
  238. package/dist/browser/theme/tokenBridge.js +1 -0
  239. package/dist/browser/theme/tokens.js +1 -0
  240. package/dist/browser/theme/variants.js +1 -0
  241. package/dist/browser/types/nativewind-env.d.js +0 -0
  242. package/dist/browser/types/navigation.js +0 -0
  243. package/dist/components/agent/AgentMonitor.js +1 -0
  244. package/dist/components/agent/ApprovalQueue.js +1 -0
  245. package/dist/components/agent/ApprovalQueue.mobile.js +1 -0
  246. package/dist/components/atoms/ActionButtons.js +1 -0
  247. package/dist/components/atoms/Button.d.ts +3 -2
  248. package/dist/components/atoms/Button.js +1 -0
  249. package/dist/components/atoms/Button.mobile.d.ts +3 -2
  250. package/dist/components/atoms/Button.mobile.js +1 -0
  251. package/dist/components/atoms/ButtonLink.js +1 -0
  252. package/dist/components/atoms/ButtonLink.mobile.js +1 -0
  253. package/dist/components/atoms/Cta.js +1 -0
  254. package/dist/components/atoms/Cta.mobile.js +1 -0
  255. package/dist/components/atoms/DataChips.js +1 -0
  256. package/dist/components/atoms/EmptyState.js +1 -0
  257. package/dist/components/atoms/ErrorState.js +1 -0
  258. package/dist/components/atoms/ErrorState.mobile.js +1 -0
  259. package/dist/components/atoms/Input.d.ts +4 -12
  260. package/dist/components/atoms/Input.js +1 -0
  261. package/dist/components/atoms/Input.mobile.d.ts +4 -13
  262. package/dist/components/atoms/Input.mobile.js +1 -0
  263. package/dist/components/atoms/Link.js +1 -0
  264. package/dist/components/atoms/Link.web.js +1 -0
  265. package/dist/components/atoms/LoaderCircular.js +1 -0
  266. package/dist/components/atoms/LoaderCircular.mobile.js +1 -0
  267. package/dist/components/atoms/NavBrand.js +1 -0
  268. package/dist/components/atoms/RankBadge.js +1 -0
  269. package/dist/components/atoms/ScoreBar.js +1 -0
  270. package/dist/components/atoms/Stepper.js +1 -0
  271. package/dist/components/atoms/Textarea.d.ts +4 -10
  272. package/dist/components/atoms/Textarea.js +1 -0
  273. package/dist/components/atoms/Textarea.mobile.d.ts +4 -13
  274. package/dist/components/atoms/Textarea.mobile.js +1 -0
  275. package/dist/components/data-table/DataTable.js +1 -0
  276. package/dist/components/data-table/DataTable.mobile.js +1 -0
  277. package/dist/components/data-table/DataTableToolbar.js +1 -0
  278. package/dist/components/data-table/DataTableToolbar.mobile.js +1 -0
  279. package/dist/components/data-table/DataTableToolbar.shared.js +1 -0
  280. package/dist/components/data-view/DataViewDetail.js +1 -0
  281. package/dist/components/data-view/DataViewList.js +1 -0
  282. package/dist/components/data-view/DataViewRenderer.js +1 -0
  283. package/dist/components/data-view/DataViewRenderer.mobile.js +1 -0
  284. package/dist/components/data-view/DataViewTable.d.ts +1 -1
  285. package/dist/components/data-view/DataViewTable.js +1 -0
  286. package/dist/components/data-view/DataViewTable.mobile.d.ts +1 -1
  287. package/dist/components/data-view/DataViewTable.mobile.js +1 -0
  288. package/dist/components/data-view/utils.js +1 -0
  289. package/dist/components/forms/ActionForm.js +1 -0
  290. package/dist/components/forms/FormCardLayout.js +1 -0
  291. package/dist/components/forms/FormDialog.js +1 -0
  292. package/dist/components/forms/FormLayout.js +1 -0
  293. package/dist/components/forms/FormOneByOneLayout.js +1 -0
  294. package/dist/components/forms/FormStepsLayout.js +1 -0
  295. package/dist/components/forms/ZodForm.js +1 -0
  296. package/dist/components/forms/controls/Autocomplete.d.ts +17 -0
  297. package/dist/components/forms/controls/Autocomplete.js +1 -0
  298. package/dist/components/forms/controls/Autocomplete.mobile.d.ts +17 -0
  299. package/dist/components/forms/controls/Autocomplete.mobile.js +1 -0
  300. package/dist/components/forms/controls/ChoiceControls.d.ts +26 -0
  301. package/dist/components/forms/controls/ChoiceControls.js +1 -0
  302. package/dist/components/forms/controls/ChoiceControls.mobile.d.ts +26 -0
  303. package/dist/components/forms/controls/ChoiceControls.mobile.js +1 -0
  304. package/dist/components/forms/controls/Combobox.d.ts +4 -0
  305. package/dist/components/forms/controls/Combobox.js +1 -0
  306. package/dist/components/forms/controls/Combobox.mobile.d.ts +2 -0
  307. package/dist/components/forms/controls/Combobox.mobile.js +1 -0
  308. package/dist/components/forms/controls/DateTimeControls.d.ts +20 -0
  309. package/dist/components/forms/controls/DateTimeControls.js +1 -0
  310. package/dist/components/forms/controls/DateTimeControls.mobile.d.ts +20 -0
  311. package/dist/components/forms/controls/DateTimeControls.mobile.js +1 -0
  312. package/dist/components/forms/controls/DropdownMenu.d.ts +1 -0
  313. package/dist/components/forms/controls/DropdownMenu.js +1 -0
  314. package/dist/components/forms/controls/DropdownMenu.mobile.d.ts +1 -0
  315. package/dist/components/forms/controls/DropdownMenu.mobile.js +1 -0
  316. package/dist/components/forms/controls/Field.d.ts +27 -0
  317. package/dist/components/forms/controls/Field.js +1 -0
  318. package/dist/components/forms/controls/Field.mobile.d.ts +2 -0
  319. package/dist/components/forms/controls/Field.mobile.js +1 -0
  320. package/dist/components/forms/controls/InputGroup.d.ts +1 -0
  321. package/dist/components/forms/controls/InputGroup.js +1 -0
  322. package/dist/components/forms/controls/InputGroup.mobile.d.ts +5 -0
  323. package/dist/components/forms/controls/InputGroup.mobile.js +1 -0
  324. package/dist/components/forms/controls/InputOTP.d.ts +1 -0
  325. package/dist/components/forms/controls/InputOTP.js +1 -0
  326. package/dist/components/forms/controls/InputOTP.mobile.d.ts +2 -0
  327. package/dist/components/forms/controls/InputOTP.mobile.js +1 -0
  328. package/dist/components/forms/controls/LoadingButton.d.ts +4 -0
  329. package/dist/components/forms/controls/LoadingButton.js +1 -0
  330. package/dist/components/forms/controls/LoadingButton.mobile.d.ts +4 -0
  331. package/dist/components/forms/controls/LoadingButton.mobile.js +1 -0
  332. package/dist/components/forms/controls/NativeSelect.d.ts +7 -0
  333. package/dist/components/forms/controls/NativeSelect.js +1 -0
  334. package/dist/components/forms/controls/NativeSelect.mobile.d.ts +2 -0
  335. package/dist/components/forms/controls/NativeSelect.mobile.js +1 -0
  336. package/dist/components/forms/controls/Select.d.ts +15 -0
  337. package/dist/components/forms/controls/Select.js +1 -0
  338. package/dist/components/forms/controls/Select.mobile.d.ts +13 -0
  339. package/dist/components/forms/controls/Select.mobile.js +1 -0
  340. package/dist/components/forms/controls/index.d.ts +11 -0
  341. package/dist/components/forms/controls/index.js +1 -0
  342. package/dist/components/forms/index.d.ts +8 -0
  343. package/dist/components/forms/index.js +1 -0
  344. package/dist/components/layout/Stack.d.ts +9 -0
  345. package/dist/components/layout/Stack.js +1 -0
  346. package/dist/components/layout/Stack.mobile.d.ts +13 -0
  347. package/dist/components/layout/Stack.mobile.js +1 -0
  348. package/dist/components/layout/index.d.ts +1 -0
  349. package/dist/components/layout/index.js +1 -0
  350. package/dist/components/legal/atoms/DefinitionList.js +1 -0
  351. package/dist/components/legal/atoms/KeyValueList.js +1 -0
  352. package/dist/components/legal/atoms/LegalCallout.d.ts +1 -1
  353. package/dist/components/legal/atoms/LegalCallout.js +1 -0
  354. package/dist/components/legal/atoms/LegalHeading.js +1 -0
  355. package/dist/components/legal/atoms/LegalList.d.ts +1 -1
  356. package/dist/components/legal/atoms/LegalList.js +1 -0
  357. package/dist/components/legal/atoms/LegalSection.d.ts +1 -1
  358. package/dist/components/legal/atoms/LegalSection.js +1 -0
  359. package/dist/components/legal/atoms/LegalText.js +1 -0
  360. package/dist/components/legal/molecules/Consent.js +1 -0
  361. package/dist/components/legal/molecules/ContactFields.js +1 -0
  362. package/dist/components/legal/molecules/LegalMeta.js +1 -0
  363. package/dist/components/legal/molecules/LegalTOC.js +1 -0
  364. package/dist/components/legal/organisms/ContactForm.js +1 -0
  365. package/dist/components/legal/organisms/GDPRDataRequest.js +1 -0
  366. package/dist/components/legal/organisms/GDPRRights.js +1 -0
  367. package/dist/components/legal/organisms/LegalPageLayout.js +1 -0
  368. package/dist/components/legal/templates/ContactTemplate.js +1 -0
  369. package/dist/components/legal/templates/CookiesTemplate.js +1 -0
  370. package/dist/components/legal/templates/PrivacyTemplate.js +1 -0
  371. package/dist/components/legal/templates/SalesTermsTemplate.js +1 -0
  372. package/dist/components/legal/templates/TermsTemplate.js +1 -0
  373. package/dist/components/marketing/MarketingCard.js +1 -0
  374. package/dist/components/marketing/MarketingCardsSection.js +1 -0
  375. package/dist/components/marketing/MarketingComparisonSection.js +1 -0
  376. package/dist/components/marketing/MarketingIconCard.js +1 -0
  377. package/dist/components/marketing/MarketingSection.js +1 -0
  378. package/dist/components/marketing/MarketingStepCard.js +1 -0
  379. package/dist/components/molecules/AiLinkButton.js +1 -0
  380. package/dist/components/molecules/Breadcrumbs.js +1 -0
  381. package/dist/components/molecules/CodeBlock/CodeBlock.js +1 -0
  382. package/dist/components/molecules/CodeBlock/index.js +1 -0
  383. package/dist/components/molecules/CodeBlock/types.js +0 -0
  384. package/dist/components/molecules/CommandPalette.js +1 -0
  385. package/dist/components/molecules/CommandSearchTrigger.js +1 -0
  386. package/dist/components/molecules/CommandTabs/CommandTabs.js +1 -0
  387. package/dist/components/molecules/CommandTabs/index.js +1 -0
  388. package/dist/components/molecules/CommandTabs/types.js +0 -0
  389. package/dist/components/molecules/CopyButton/CopyButton.js +1 -0
  390. package/dist/components/molecules/CopyButton/index.js +1 -0
  391. package/dist/components/molecules/CopyButton/types.js +0 -0
  392. package/dist/components/molecules/DimensionScoresCard.js +1 -0
  393. package/dist/components/molecules/DropdownMenu.js +0 -0
  394. package/dist/components/molecules/EntityCard.js +1 -0
  395. package/dist/components/molecules/FiltersToolbar.js +1 -0
  396. package/dist/components/molecules/FiltersToolbar.mobile.js +1 -0
  397. package/dist/components/molecules/HoverPreview.js +1 -0
  398. package/dist/components/molecules/InstallCommand/InstallCommand.js +1 -0
  399. package/dist/components/molecules/InstallCommand/index.js +1 -0
  400. package/dist/components/molecules/InstallCommand/types.js +0 -0
  401. package/dist/components/molecules/LangSwitch.js +1 -0
  402. package/dist/components/molecules/LangSwitchDropdown.js +1 -0
  403. package/dist/components/molecules/LoaderBlock.js +1 -0
  404. package/dist/components/molecules/LoaderBlock.mobile.js +1 -0
  405. package/dist/components/molecules/MarkdownRenderer/MarkdownRenderer.js +2 -0
  406. package/dist/components/molecules/MarkdownRenderer/formatInlineMarkdown.js +1 -0
  407. package/dist/components/molecules/MarkdownRenderer/index.js +1 -0
  408. package/dist/components/molecules/MarkdownRenderer/renderMarkdownTable.js +1 -0
  409. package/dist/components/molecules/MarkdownRenderer/types.js +0 -0
  410. package/dist/components/molecules/MobileNavMenu.js +1 -0
  411. package/dist/components/molecules/NavItemCard.js +1 -0
  412. package/dist/components/molecules/NavMain.js +1 -0
  413. package/dist/components/molecules/NavUser.js +1 -0
  414. package/dist/components/molecules/OverviewCard.js +1 -0
  415. package/dist/components/molecules/SkeletonBlock/index.js +1 -0
  416. package/dist/components/molecules/SkeletonBlock/index.mobile.js +1 -0
  417. package/dist/components/molecules/SkeletonBlock/index.web.js +1 -0
  418. package/dist/components/molecules/SkeletonBlock/types.js +0 -0
  419. package/dist/components/molecules/SkeletonCircle/index.js +1 -0
  420. package/dist/components/molecules/SkeletonCircle/index.mobile.js +1 -0
  421. package/dist/components/molecules/SkeletonCircle/index.web.js +1 -0
  422. package/dist/components/molecules/SkeletonCircle/types.js +0 -0
  423. package/dist/components/molecules/SkeletonList/index.js +1 -0
  424. package/dist/components/molecules/SkeletonList/index.mobile.js +1 -0
  425. package/dist/components/molecules/SkeletonList/index.web.js +1 -0
  426. package/dist/components/molecules/SkeletonList/types.js +0 -0
  427. package/dist/components/molecules/StatCard.js +1 -0
  428. package/dist/components/molecules/StatusChip.d.ts +1 -1
  429. package/dist/components/molecules/StatusChip.js +1 -0
  430. package/dist/components/molecules/hover-previews/Doc.js +1 -0
  431. package/dist/components/molecules/hover-previews/Media.js +1 -0
  432. package/dist/components/molecules/hover-previews/Simple.js +1 -0
  433. package/dist/components/molecules/hover-previews/Stats.js +1 -0
  434. package/dist/components/molecules/hover-previews/User.js +1 -0
  435. package/dist/components/native/BottomTabs.mobile.js +1 -0
  436. package/dist/components/native/FlatListScreen.mobile.js +1 -0
  437. package/dist/components/native/SheetMenu.mobile.js +1 -0
  438. package/dist/components/organisms/AcademyLayout.js +1 -0
  439. package/dist/components/organisms/AppHeader.js +1 -0
  440. package/dist/components/organisms/AppHeader.mobile.js +1 -0
  441. package/dist/components/organisms/AppLayout.js +1 -0
  442. package/dist/components/organisms/AppSidebar.js +1 -0
  443. package/dist/components/organisms/AppSidebar.mobile.js +0 -0
  444. package/dist/components/organisms/EmptyDataList.js +1 -0
  445. package/dist/components/organisms/EmptyDataList.mobile.js +1 -0
  446. package/dist/components/organisms/EmptyDataList.types.js +0 -0
  447. package/dist/components/organisms/EmptySearchResult.js +1 -0
  448. package/dist/components/organisms/FAQSection.js +1 -0
  449. package/dist/components/organisms/FeatureCarousel.js +1 -0
  450. package/dist/components/organisms/FeaturesSection.js +1 -0
  451. package/dist/components/organisms/Footer.js +1 -0
  452. package/dist/components/organisms/GridLayout.js +1 -0
  453. package/dist/components/organisms/Header.js +1 -0
  454. package/dist/components/organisms/Header.mobile.js +1 -0
  455. package/dist/components/organisms/HeroResponsive.js +1 -0
  456. package/dist/components/organisms/HeroSection.js +1 -0
  457. package/dist/components/organisms/ListCardPage.js +1 -0
  458. package/dist/components/organisms/ListGridPage.js +1 -0
  459. package/dist/components/organisms/ListPageResponsive.js +1 -0
  460. package/dist/components/organisms/ListTablePage.js +1 -0
  461. package/dist/components/organisms/ListTablePage.mobile.js +1 -0
  462. package/dist/components/organisms/MarketingHeader.js +1 -0
  463. package/dist/components/organisms/MarketingHeaderDesktop.js +1 -0
  464. package/dist/components/organisms/MarketingHeaderMobile.js +1 -0
  465. package/dist/components/organisms/MarketingLayout.js +1 -0
  466. package/dist/components/organisms/ModelComparisonView.js +1 -0
  467. package/dist/components/organisms/PageHeaderResponsive.js +1 -0
  468. package/dist/components/organisms/PageHeaderResponsive.mobile.js +1 -0
  469. package/dist/components/organisms/PricingCarousel.js +1 -0
  470. package/dist/components/organisms/PricingSection.js +1 -0
  471. package/dist/components/organisms/TestimonialCarousel.js +1 -0
  472. package/dist/components/primitives/control.d.ts +894 -0
  473. package/dist/components/primitives/control.js +1 -0
  474. package/dist/components/primitives/themed.d.ts +881 -0
  475. package/dist/components/primitives/themed.js +1 -0
  476. package/dist/components/providers/PackageManagerProvider.js +1 -0
  477. package/dist/components/templates/lists/ListPageTemplate/index.js +1 -0
  478. package/dist/components/templates/lists/ListPageTemplate/index.mobile.js +1 -0
  479. package/dist/components/templates/lists/ListPageTemplate/index.web.js +1 -0
  480. package/dist/components/templates/lists/ListPageTemplate/types.js +0 -0
  481. package/dist/components/visualization/ComparisonView.js +1 -0
  482. package/dist/components/visualization/ComparisonView.mobile.js +1 -0
  483. package/dist/components/visualization/TimelineView.js +1 -0
  484. package/dist/components/visualization/TimelineView.mobile.js +1 -0
  485. package/dist/components/visualization/VisualizationCard.js +1 -0
  486. package/dist/components/visualization/VisualizationCard.mobile.js +1 -0
  487. package/dist/components/visualization/VisualizationGrid.js +1 -0
  488. package/dist/components/visualization/VisualizationGrid.mobile.js +1 -0
  489. package/dist/components/visualization/VisualizationRenderer.js +1 -0
  490. package/dist/components/visualization/VisualizationRenderer.mobile.js +1 -0
  491. package/dist/components/visualization/types.js +0 -0
  492. package/dist/contracts.typecheck.js +1 -0
  493. package/dist/design-system.feature.d.ts +1 -0
  494. package/dist/design-system.feature.js +1 -0
  495. package/dist/hooks/useListUrlState.js +1 -0
  496. package/dist/i18n/translation.js +1 -0
  497. package/dist/index.d.ts +4 -11
  498. package/dist/index.js +1 -2
  499. package/dist/lib/keyboard.js +1 -0
  500. package/dist/lib/utils.js +1 -0
  501. package/dist/platform/useColorScheme.js +1 -0
  502. package/dist/platform/useColorScheme.mobile.js +1 -0
  503. package/dist/platform/useReducedMotion.js +1 -0
  504. package/dist/platform/useReducedMotion.mobile.js +1 -0
  505. package/dist/platform/useResponsive.js +1 -0
  506. package/dist/platform/useResponsive.mobile.js +1 -0
  507. package/dist/platform/withPlatformUI.js +1 -0
  508. package/dist/renderers/form-contract/renderer.d.ts +3 -0
  509. package/dist/renderers/form-contract/renderer.js +1 -0
  510. package/dist/renderers/form-contract/rich-fields.d.ts +23 -0
  511. package/dist/renderers/form-contract/rich-fields.js +1 -0
  512. package/dist/renderers/form-contract/shell.d.ts +35 -0
  513. package/dist/renderers/form-contract/shell.js +1 -0
  514. package/dist/renderers/form-contract/values.d.ts +27 -0
  515. package/dist/renderers/form-contract/values.js +1 -0
  516. package/dist/renderers/form-contract.d.ts +1 -3
  517. package/dist/renderers/form-contract.js +1 -0
  518. package/dist/renderers/index.js +1 -0
  519. package/dist/theme/contracts.d.ts +3 -0
  520. package/dist/theme/contracts.js +1 -0
  521. package/dist/theme/index.d.ts +6 -0
  522. package/dist/theme/index.js +1 -0
  523. package/dist/theme/runtime-resolvers.d.ts +26 -0
  524. package/dist/theme/runtime-resolvers.js +1 -0
  525. package/dist/theme/runtime.d.ts +34 -0
  526. package/dist/theme/runtime.js +1 -0
  527. package/dist/theme/tailwind-config.d.ts +15 -0
  528. package/dist/theme/tailwind-config.js +1 -0
  529. package/dist/theme/tailwind-css.d.ts +2 -0
  530. package/dist/theme/tailwind-css.js +9 -0
  531. package/dist/theme/tailwind-variables.d.ts +19 -0
  532. package/dist/theme/tailwind-variables.js +1 -0
  533. package/dist/theme/tailwind.d.ts +3 -0
  534. package/dist/theme/tailwind.js +1 -0
  535. package/dist/theme/tokenBridge.js +1 -0
  536. package/dist/theme/tokens.js +1 -0
  537. package/dist/theme/variants.d.ts +1 -1
  538. package/dist/theme/variants.js +1 -0
  539. package/dist/types/nativewind-env.d.js +0 -0
  540. package/dist/types/navigation.js +0 -0
  541. package/package.json +70 -9
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as R}from"react/jsx-runtime";import{VStack as K}from"@contractspec/lib.ui-kit/ui/stack";import{Text as b}from"@contractspec/lib.ui-kit/ui/text";import{cva as v}from"class-variance-authority";import{FlatList as I,RefreshControl as L}from"react-native";import{SafeAreaView as P}from"react-native-safe-area-context";const k=v("",{variants:{padding:{none:"",sm:"px-3 py-3",md:"px-4 py-4",lg:"px-5 py-5"}},defaultVariants:{padding:"none"}});export function FlatListScreen({children:M,data:O,renderItem:Q,header:z,className:T,contentClassName:U,edges:W=["top","left","right"],showsVerticalScrollIndicator:X=!1,keyboardShouldPersistTaps:Y="handled",onRefresh:B,refreshing:D=!1,emptyComponent:G,emptyText:Z="No items found",padding:$,...A}){const E=()=>{if(G)return G;return q(K,{align:"center",justify:"center",className:"py-20",children:q(b,{className:"text-center text-muted-foreground",children:Z})})},F=z?q(K,{className:[k({padding:$}),U].filter(Boolean).join(" "),children:z}):void 0;return R(P,{style:{flex:1},edges:W,children:[q(I,{data:O,renderItem:Q,keyExtractor:(H,N)=>{const J=H;return J?.id?.toString()||J?.key?.toString()||String(N)},showsVerticalScrollIndicator:X,keyboardShouldPersistTaps:Y,ListHeaderComponent:F,ListEmptyComponent:E,refreshing:D,refreshControl:B?q(L,{refreshing:D,onRefresh:B}):void 0,...A}),M]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as M}from"react/jsx-runtime";import{Dialog as F,DialogContent as G,DialogHeader as I,DialogTitle as J}from"@contractspec/lib.ui-kit-web/ui/dialog";import{Text as K,View as L}from"react-native";export function SheetMenu({open:A,onOpenChange:B,title:E="Menu",children:z}){return M(F,{open:A,onOpenChange:B,children:[q(I,{children:q(J,{children:E})}),q(G,{children:q(L,{className:"gap-2",children:typeof z==="string"?q(K,{children:z}):z})})]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as A}from"react/jsx-runtime";import{Breadcrumb as K,BreadcrumbItem as M,BreadcrumbLink as O,BreadcrumbList as Q,BreadcrumbPage as T,BreadcrumbSeparator as U}from"@contractspec/lib.ui-kit-web/ui/breadcrumb";import{cn as V}from"@contractspec/lib.ui-kit-web/ui/utils";import*as W from"react";export function AcademyLayout({header:D,toc:E,breadcrumb:v,children:F,rightPanel:G,footer:H,className:J}){return A("div",{className:V("min-h-svh bg-background",J),children:[D,A("div",{className:"mx-auto grid w-full max-w-7xl grid-cols-1 gap-6 px-4 py-6 md:grid-cols-[220px_minmax(0,1fr)_240px]",children:[q("aside",{className:"sticky top-24 hidden self-start md:block",children:E}),A("main",{className:"min-w-0",children:[v&&v.items?.length?q("div",{className:"mb-4",children:q(K,{children:q(Q,{children:v.items.map((z,C)=>A(W.Fragment,{children:[q(M,{children:z.href?q(O,{href:z.href,children:z.label}):q(T,{children:z.label})}),C<v.items.length-1&&q(U,{})]},C))})})}):null,q("article",{className:"prose max-w-none text-foreground",children:F})]}),q("aside",{className:"sticky top-24 hidden self-start lg:block",children:G})]}),H]})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as A,Fragment as K}from"react/jsx-runtime";import{Separator as G}from"@contractspec/lib.ui-kit-web/ui/separator";import{cn as I}from"@contractspec/lib.ui-kit-web/ui/utils";import{Header as J}from"./Header";export function AppHeader({breadcrumb:B,toolbarRight:C,className:D,...E}){return z("div",{className:I("w-full border-b bg-background/95 backdrop-blur-xs supports-backdrop-filter:bg-background/60",D),children:A("div",{className:"mx-auto w-full max-w-7xl px-2 md:px-4",children:[z(J,{...E}),(B||C)&&A(K,{children:[z(G,{}),A("div",{className:"flex items-center justify-between gap-3 py-2",children:[z("div",{className:"min-w-0 overflow-hidden text-ellipsis",children:B}),z("div",{className:"flex items-center gap-2",children:C})]})]})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as d,jsxs as F}from"react/jsx-runtime";import{cn as K}from"@contractspec/lib.ui-kit/ui/utils";import*as L from"react";import{Pressable as Q,Text as E,View as q}from"react-native";import{BottomTabs as U}from"../native/BottomTabs.mobile";import{SheetMenu as W}from"../native/SheetMenu.mobile";export function AppHeader({logo:z,toolbarRight:G,className:H,menuContent:I,bottomTabs:A}){const[J,D]=L.useState(!1);return F(q,{className:K("border-b bg-background",H),children:[F(q,{className:"flex-row items-center justify-between px-3 py-2",children:[d(Q,{accessibilityLabel:"Open menu",onPress:()=>D(!0),children:d(E,{className:"text-lg",children:"\u2630"})}),d(q,{className:"px-2",children:typeof z==="string"?d(E,{className:"font-bold text-xl",children:z}):z}),d(q,{className:"flex-row items-center gap-2",children:G})]}),A&&A.length>0&&d(U,{items:A}),d(W,{open:J,onOpenChange:D,title:"Menu",children:I})]})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as D,Fragment as v}from"react/jsx-runtime";import{Breadcrumb as Q,BreadcrumbItem as T,BreadcrumbLink as U,BreadcrumbList as V,BreadcrumbPage as W,BreadcrumbSeparator as X}from"@contractspec/lib.ui-kit-web/ui/breadcrumb";import{Separator as Y}from"@contractspec/lib.ui-kit-web/ui/separator";import{cn as Z}from"@contractspec/lib.ui-kit-web/ui/utils";import*as $ from"react";import{AppSidebar as q}from"./AppSidebar";export function AppLayout({header:K,sidebar:C,breadcrumb:E,children:M,footer:H,className:O}){return D("div",{className:Z("min-h-svh bg-background",O),children:[K,D("div",{className:"mx-auto grid w-full max-w-7xl grid-cols-1 gap-4 px-4 py-4 md:grid-cols-[260px_minmax(0,1fr)]",children:[z("aside",{className:"hidden md:block",children:C?z(q,{sections:C.sections,top:C.top,bottom:C.bottom,className:C.className,density:C.density}):z("div",{})}),D("main",{className:"min-w-0",children:[E&&E.items?.length?z("div",{className:"mb-2",children:z(Q,{children:z(V,{children:E.items.map((G,J)=>D($.Fragment,{children:[z(T,{children:G.href?z(U,{href:G.href,children:G.label}):z(W,{children:G.label})}),J<E.items.length-1&&z(X,{})]},J))})})}):null,M]})]}),H&&D(v,{children:[z(Y,{className:"mt-4"}),H]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as A}from"react/jsx-runtime";import{Sidebar as X,SidebarContent as Y,SidebarFooter as Z,SidebarGroup as $,SidebarGroupContent as g,SidebarGroupLabel as k,SidebarHeader as F,SidebarInput as H,SidebarMenu as L,SidebarMenuBadge as R,SidebarMenuButton as V,SidebarMenuItem as B,SidebarProvider as C,SidebarRail as I}from"@contractspec/lib.ui-kit-web/ui/sidebar";import{cn as N}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as v}from"class-variance-authority";export function AppSidebar({sections:J,top:K,bottom:O,searchPlaceholder:E="Search\u2026",className:Q,density:T}){const U=v("",{variants:{density:{compact:"text-sm",comfortable:"text-base"}},defaultVariants:{density:"comfortable"}});return q(C,{children:A(X,{className:N(U({density:T}),Q),children:[q(I,{}),A(F,{children:[K,q(H,{placeholder:E,"aria-label":E})]}),q(Y,{children:J.map((D,W)=>A($,{children:[D.title&&q(k,{children:D.title}),q(g,{children:q(L,{children:D.items.map((z)=>A(B,{children:[q(V,{asChild:!!z.href,isActive:!1,children:A("a",{href:z.href,target:z.target,className:"inline-flex items-center gap-2",children:[z.icon,q("span",{children:z.label})]})}),z.badge!=null&&q(R,{children:String(z.badge)})]},z.href))})})]},W))}),q(Z,{children:O})]})})}
File without changes
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as v}from"react/jsx-runtime";import{Empty as W,EmptyContent as X,EmptyDescription as Y,EmptyHeader as Z,EmptyMedia as $,EmptyTitle as k}from"@contractspec/lib.ui-kit-web/ui/empty";import{Button as C}from"../atoms/Button";export function EmptyDataList({emptyListTitle:A,emptyListDescription:F,createButton:O,secondaryButton:P,media:G,mediaVariant:Q="icon",learnMoreHref:g,learnMoreLabel:z,learnMoreEndIcon:J,onLearnMore:R,handleLearnMore:S,className:U}){const K=R??S;return v(W,{className:U,children:[v(Z,{children:[G?q($,{variant:Q,children:G}):null,A?q(k,{children:A}):null,F?q(Y,{children:F}):null]}),q(X,{children:v("div",{className:"flex gap-2",children:[O,P]})}),(g||K)&&z?q(C,{variant:"link",asChild:Boolean(g),className:"text-muted-foreground",size:"sm",onPress:g?void 0:K,children:g?v("a",{href:g,children:[z," ",J]}):v("span",{children:[z," ",J]})}):null]})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as F}from"react/jsx-runtime";import{Empty as K,EmptyContent as O,EmptyDescription as P,EmptyHeader as Q,EmptyMedia as R,EmptyTitle as U}from"@contractspec/lib.ui-kit/ui/empty";import{HStack as W}from"@contractspec/lib.ui-kit-web/ui/stack";import{Text as A}from"@contractspec/lib.ui-kit-web/ui/text";export function EmptyDataList({emptyListTitle:q,emptyListDescription:v,createButton:G,secondaryButton:X,media:z,mediaVariant:I="icon",learnMoreHref:Y,learnMoreLabel:Z,learnMoreEndIcon:$,onLearnMore:C,handleLearnMore:M,className:J}){return F(K,{className:J,children:[F(Q,{children:[z?g(R,{variant:I,children:z}):null,q?g(U,{children:g(A,{children:q})}):null,v?g(P,{children:g(A,{children:v})}):null]}),g(O,{children:g(W,{className:"gap-2",children:G})})]})}export default EmptyDataList;
@@ -0,0 +1 @@
1
+ import{jsx as v,jsxs as B}from"react/jsx-runtime";import{Empty as X,EmptyContent as Y,EmptyDescription as Z,EmptyHeader as $,EmptyTitle as k}from"@contractspec/lib.ui-kit-web/ui/empty";import*as q from"react";import{Input as H}from"../atoms/Input";export function EmptySearchResult({emptySearchTitle:F,emtptySearchTitle:G,emptySearchDescription:J,emtptySearchDescription:K,onSearchChange:L,handleSearchChange:M,className:O}){const P=F??G??"No results",z=J??K??"Try another search.",U=L??M,[V,W]=q.useState("");return B(X,{className:O,children:[B($,{children:[v(k,{children:P}),z?v(Z,{children:z}):null]}),v(Y,{children:v(H,{value:V,onChange:(A)=>{W(A.target.value);U?.(A.target.value)},placeholder:"Search\u2026",keyboard:{kind:"search"}})})]})}
@@ -0,0 +1 @@
1
+ import{jsx as v,jsxs as E}from"react/jsx-runtime";import{Accordion as X,AccordionContent as Y,AccordionItem as Z,AccordionTrigger as $}from"@contractspec/lib.ui-kit-web/ui/accordion";import{VStack as K}from"@contractspec/lib.ui-kit-web/ui/stack";import*as R from"react";export function FAQSection({title:L,subtitle:F,children:M,className:P,items:z,accordionType:B="single",collapsible:Q=!0,defaultOpenIndex:G=0,accordionClassName:U}){const D=Array.isArray(z)&&z.length>0,W=R.useMemo(()=>{if(!D)return;if(B==="multiple")return;return`item-${Math.max(0,Math.min((z?.length??1)-1,G))}`},[D,B,G,z]);return v("section",{className:`py-12 sm:py-16 lg:py-24 ${P||""}`,children:E("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[E(K,{className:"gap-2 text-center",children:[v("h2",{className:"font-bold text-3xl md:text-4xl",children:L}),F?v("p",{className:"mx-auto max-w-2xl text-base text-muted-foreground",children:F}):null]}),v("div",{className:"mx-auto mt-8 max-w-3xl",children:D?v(K,{className:"mt-8",children:v(X,{type:B,collapsible:Q,defaultValue:W,className:U,children:z?.map((H,J)=>E(Z,{value:`item-${J}`,children:[v($,{className:"px-6",children:v("span",{className:"font-medium text-foreground text-lg",children:H.question})}),v(Y,{className:"px-6",children:v("p",{className:"text-muted-foreground",children:H.answer})})]},J))})}):M})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as z}from"react/jsx-runtime";import{Card as E,CardContent as F}from"@contractspec/lib.ui-kit-web/ui/card";import{Carousel as G,CarouselContent as H,CarouselItem as J,CarouselNext as K,CarouselPrevious as L}from"@contractspec/lib.ui-kit-web/ui/carousel";export function FeatureCarousel({slides:A,className:B}){return g("div",{className:B,children:z(G,{children:[g(H,{children:A.map((q,D)=>g(J,{children:g(E,{children:z(F,{className:"grid grid-cols-1 gap-4 p-6 md:grid-cols-2",children:[z("div",{className:"space-y-2",children:[g("div",{className:"font-semibold text-2xl",children:q.title}),q.description&&g("div",{className:"text-base text-muted-foreground",children:q.description})]}),g("div",{className:"flex items-center justify-center",children:q.media})]})})},D))}),g(L,{}),g(K,{})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as z}from"react/jsx-runtime";import{VStack as E}from"@contractspec/lib.ui-kit-web/ui/stack";import{cva as F}from"class-variance-authority";const G=F("",{variants:{density:{compact:"py-10",comfortable:"py-12 sm:py-16 lg:py-24"}},defaultVariants:{density:"comfortable"}});export function FeaturesSection({title:A,subtitle:q,children:B,className:C,density:D}){return g("section",{className:[G({density:D}),C].filter(Boolean).join(" "),children:z("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[z(E,{className:"gap-2 text-center",children:[g("h2",{className:"font-bold text-3xl md:text-4xl",children:A}),q?g("p",{className:"mx-auto max-w-2xl text-base text-muted-foreground",children:q}):null]}),g("div",{className:"mt-10",children:B})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as d,jsxs as A}from"react/jsx-runtime";import{VStack as G}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as H}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as I}from"class-variance-authority";const J=I("border-t px-4 text-base",{variants:{variant:{default:"",marketing:"bg-muted/30"},density:{compact:"py-4",comfortable:"py-6"}},defaultVariants:{density:"comfortable",variant:"default"}});export function Footer({left:B,center:C,right:D,links:q,className:E,variant:F}){return A("footer",{className:H(J({variant:F}),E),children:[A("div",{className:"grid grid-cols-1 items-center gap-3 sm:grid-cols-3",children:[d("div",{className:"flex items-center gap-3",children:B}),d("div",{className:"text-center text-muted-foreground",children:C}),d(G,{children:D})]}),q&&q.length>0&&d("div",{className:"mt-4 flex flex-wrap items-center justify-center gap-3 text-base text-muted-foreground",children:q.map((z)=>d("a",{href:z.href,className:"hover:text-foreground",children:z.label},String(z.href)))})]})}
@@ -0,0 +1 @@
1
+ import{jsx as M}from"react/jsx-runtime";import{cn as H}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as I}from"class-variance-authority";import{useResponsive as J}from"../../platform/useResponsive";const K=I("grid",{variants:{gap:{sm:"gap-3",md:"gap-4",lg:"gap-6"}},defaultVariants:{gap:"md"}});export function GridLayout({children:B,className:D,columns:z,gap:E}){const{screen:A}=J(),q=A==="desktop"?z?.desktop??1:A==="tablet"?z?.tablet??1:z?.mobile??1,F=q===1?"grid-cols-1":q===2?"grid-cols-2":q===3?"grid-cols-3":q===4?"grid-cols-4":"grid-cols-1";return M("div",{className:H(K({gap:E}),F,D),children:B})}export default GridLayout;
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as G,Fragment as U}from"react/jsx-runtime";import{Separator as X}from"@contractspec/lib.ui-kit-web/ui/separator";import{Sheet as Y,SheetContent as Z,SheetTitle as $,SheetTrigger as q}from"@contractspec/lib.ui-kit-web/ui/sheet";import{cn as P}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as Q}from"class-variance-authority";import{Menu as C}from"lucide-react";import{Button as D}from"../atoms/Button";import{ButtonLink as F}from"../atoms/ButtonLink";import{NavMain as A}from"../molecules/NavMain";import{NavUser as R}from"../molecules/NavUser";import{AppSidebar as L}from"./AppSidebar";const T=Q("hidden items-center justify-between gap-4 md:flex",{variants:{density:{compact:"px-3 py-1",comfortable:"px-4 py-2"}},defaultVariants:{density:"comfortable"}});const V=Q("flex items-center justify-between md:hidden",{variants:{density:{compact:"px-2 py-1",comfortable:"px-3 py-2"}},defaultVariants:{density:"comfortable"}});export function DesktopHeader({logo:I,nav:K,userMenu:E,cta:J,className:O,density:W}){return G("header",{className:P(T({density:W}),O),children:[G("div",{className:"flex items-center gap-4",children:[I,z(X,{orientation:"vertical",className:"h-6"}),z(A,{items:K})]}),G("div",{className:"flex items-center gap-2",children:[J&&z(F,{variant:J.variant,href:J.href,children:J.label}),E&&z(R,{...E})]})]})}export function MobileHeader({logo:I,userMenu:K,mobileSidebar:E,className:J,density:O}){return G("header",{className:P(V({density:O}),J),children:[G(Y,{children:[z(q,{asChild:!0,children:z(D,{variant:"ghost",size:"icon","aria-label":"Open menu",children:z(C,{className:"h-5 w-5"})})}),G(Z,{side:"left",className:"w-[300px] p-0",children:[z($,{className:"sr-only",children:"Menu"}),E?z(L,{sections:E.sections,top:E.top,bottom:E.bottom,className:"h-svh"}):z("div",{className:"p-4",children:"No sidebar configured"})]})]}),z("div",{className:"flex-1 px-2",children:I}),z("div",{className:"flex items-center gap-2",children:K&&z(R,{...K})})]})}export function Header(I){return G(U,{children:[z(MobileHeader,{...I}),z(DesktopHeader,{...I})]})}
@@ -0,0 +1 @@
1
+ import{jsx as v}from"react/jsx-runtime";import{VStack as q}from"@contractspec/lib.ui-kit/ui/stack";export function Header({logo:h}){return v(q,{className:"px-3 py-2",children:h})}export const DesktopHeader=Header;export const MobileHeader=Header;
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{useResponsive as a}from"../../platform/useResponsive";import{HeroSection as r}from"./HeroSection";export function HeroResponsive({title:o,subtitle:i,primaryCta:s,secondaryCta:n,className:p}){const{screen:e}=a();return t(r,{title:t("div",{className:`${e==="desktop"?"text-5xl":e==="tablet"?"text-4xl":"text-3xl"}`,children:o}),subtitle:i,primaryCta:s,secondaryCta:n,className:[p,e==="desktop"?"gap-6":e==="tablet"?"gap-4":"gap-3"].filter(Boolean).join(" ")})}
@@ -0,0 +1 @@
1
+ import{jsx as q}from"react/jsx-runtime";import{Hero as G}from"@contractspec/lib.ui-kit-web/ui/marketing/Hero";import{cva as I}from"class-variance-authority";const J=I("relative overflow-hidden bg-linear-to-b from-background to-muted/20",{variants:{density:{compact:"py-12",comfortable:"py-16 sm:py-24 lg:py-32"}},defaultVariants:{density:"comfortable"}});export function HeroSection({title:z,subtitle:A,primaryCta:B,secondaryCta:D,className:E,density:F}){return q("section",{className:[J({density:F}),E].filter(Boolean).join(" "),children:q("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:q(G,{title:z,subtitle:A,primaryCta:B,secondaryCta:D})})})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as H}from"react/jsx-runtime";import{Card as U,CardContent as W}from"@contractspec/lib.ui-kit-web/ui/card";import{VStack as G}from"@contractspec/lib.ui-kit-web/ui/stack";import{cva as I}from"class-variance-authority";import{useResponsive as X}from"../../platform/useResponsive";const Y=I("",{variants:{density:{compact:"gap-3",comfortable:"gap-4 md:gap-5"}},defaultVariants:{density:"comfortable"}});const Z=I("grid",{variants:{size:{sm:"gap-3",md:"gap-4",lg:"gap-6"}},defaultVariants:{size:"md"}});export function ListCardPage({title:J,subtitle:D,items:K,renderCard:L,className:M,columns:B,density:O,size:P}){const{screen:E}=X(),A=E==="desktop"?B?.desktop??3:E==="tablet"?B?.tablet??2:B?.mobile??1,Q=A===1?"grid-cols-1":A===2?"grid-cols-2":A===3?"grid-cols-3":A===4?"grid-cols-4":"grid-cols-3";return H(G,{className:[Y({density:O}),M].filter(Boolean).join(" "),children:[H(G,{className:"gap-1",children:[q("h1",{className:"font-bold text-2xl md:text-3xl",children:J}),D?q("p",{className:"text-base text-muted-foreground",children:D}):null]}),q("div",{className:[Z({size:P}),Q].join(" "),children:K.map((T,F)=>q(U,{className:"border-none shadow-2xs",children:q(W,{className:"p-4 md:p-5 lg:p-6",children:L(T,F)})},F))})]})}
@@ -0,0 +1 @@
1
+ import{jsx as A,jsxs as J}from"react/jsx-runtime";import{VStack as H}from"@contractspec/lib.ui-kit-web/ui/stack";import{cva as K}from"class-variance-authority";import{useResponsive as Y}from"../../platform/useResponsive";const Z=K("",{variants:{density:{compact:"gap-3",comfortable:"gap-4 md:gap-5 lg:gap-6"}},defaultVariants:{density:"comfortable"}});const $=K("",{variants:{size:{sm:"gap-3",md:"gap-4",lg:"gap-6"}},defaultVariants:{size:"md"}});export function ListGridPage({title:L,subtitle:D,items:M,renderItem:O,className:P,columns:B,density:Q,size:T}){const{screen:E}=Y(),q=E==="desktop"?B?.desktop??3:E==="tablet"?B?.tablet??2:B?.mobile??1,U=`grid ${$({size:T})}`,W=q===1?"grid-cols-1":q===2?"grid-cols-2":q===3?"grid-cols-3":q===4?"grid-cols-4":"grid-cols-3";return J(H,{className:[Z({density:Q}),P].filter(Boolean).join(" "),children:[J(H,{className:"gap-1",children:[A("h1",{className:"font-bold text-2xl md:text-3xl",children:L}),D?A("p",{className:"text-base text-muted-foreground",children:D}):null]}),A("div",{className:`${U} ${W}`,children:M.map((X,F)=>A("div",{children:O(X,F)},F))})]})}
@@ -0,0 +1 @@
1
+ import{jsx as B}from"react/jsx-runtime";import{ListPage as z}from"@contractspec/lib.ui-kit-web/ui/organisms/ListPage";import{useResponsive as A}from"../../platform/useResponsive";export function ListPageResponsive(d){const{screen:h}=A(),q=[d.className,h==="desktop"?"space-y-6":h==="tablet"?"space-y-5":"space-y-4"].filter(Boolean).join(" ");return B(z,{...d,className:q})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as H}from"react/jsx-runtime";import{useContractTable as U}from"@contractspec/lib.presentation-runtime-react";import{VStack as F}from"@contractspec/lib.ui-kit-web/ui/stack";import{Text as G}from"@contractspec/lib.ui-kit-web/ui/text";import{cva as W}from"class-variance-authority";import{DataTable as X}from"../data-table/DataTable";const Y=W("",{variants:{density:{compact:"gap-3",comfortable:"gap-4 md:gap-5"}},defaultVariants:{density:"comfortable"}});export function ListTablePage({title:J,subtitle:B,items:K,columns:L,className:M,density:O,renderActions:E}){const P=U({data:K,columns:[...L.map((g,q)=>({id:`column.${q}`,header:g.header,cell:({item:Q,rowIndex:R})=>g.cell(Q,R)})),...E?[{id:"actions",header:"Actions",label:"Actions",canSort:!1,canHide:!1,canResize:!1,cell:({item:g,rowIndex:q})=>E(g,q)}]:[]]});return H(F,{className:[Y({density:O}),M].filter(Boolean).join(" "),children:[H(F,{className:"gap-1",children:[z(G,{className:"font-bold text-2xl md:text-3xl",children:J}),B?z(G,{className:"text-base text-muted-foreground",children:B}):null]}),z(X,{controller:P})]})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as H}from"react/jsx-runtime";import{useContractTable as U}from"@contractspec/lib.presentation-runtime-react";import{VStack as F}from"@contractspec/lib.ui-kit/ui/stack";import{Text as G}from"@contractspec/lib.ui-kit/ui/text";import{cva as W}from"class-variance-authority";import{DataTable as X}from"../data-table/DataTable";const Y=W("",{variants:{density:{compact:"gap-3",comfortable:"gap-4 md:gap-5"}},defaultVariants:{density:"comfortable"}});export function ListTablePage({title:J,subtitle:B,items:K,columns:L,className:M,density:O,renderActions:E}){const P=U({data:K,columns:[...L.map((g,q)=>({id:`column.${q}`,header:g.header,cell:({item:Q,rowIndex:R})=>g.cell(Q,R)})),...E?[{id:"actions",header:"Actions",label:"Actions",canSort:!1,canHide:!1,canResize:!1,cell:({item:g,rowIndex:q})=>E(g,q)}]:[]]});return H(F,{className:[Y({density:O}),M].filter(Boolean).join(" "),children:[H(F,{className:"gap-1",children:[z(G,{className:"font-bold text-2xl md:text-3xl",children:J}),B?z(G,{className:"text-base text-muted-foreground",children:B}):null]}),z(X,{controller:P})]})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as J,Fragment as I}from"react/jsx-runtime";import{NavigationMenu as M,NavigationMenuContent as L,NavigationMenuItem as C,NavigationMenuLink as P,NavigationMenuList as k,NavigationMenuTrigger as N}from"@contractspec/lib.ui-kit-web/ui/navigation-menu";import{Separator as d}from"@contractspec/lib.ui-kit-web/ui/separator";import{Sheet as p,SheetContent as S,SheetHeader as v,SheetTrigger as h}from"@contractspec/lib.ui-kit-web/ui/sheet";import{Box as Y,HStack as W,VStack as b}from"@contractspec/lib.ui-kit-web/ui/stack";import{Text as q}from"@contractspec/lib.ui-kit-web/ui/text";import{cn as D}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as u}from"class-variance-authority";import{Menu as f}from"lucide-react";import*as g from"react";import{Button as y}from"../atoms/Button";import{ButtonLink as F}from"../atoms/ButtonLink";import{CommandSearchTrigger as U}from"../molecules/CommandSearchTrigger";import{LangSwitchDropdown as _}from"../molecules/LangSwitchDropdown";import{MobileNavMenu as l}from"../molecules/MobileNavMenu";import{NavItemCard as w}from"../molecules/NavItemCard";import{NavUser as j}from"../molecules/NavUser";const x=u("flex items-center justify-between gap-4",{variants:{density:{compact:"px-3 py-2",comfortable:"px-4 py-3"}},defaultVariants:{density:"comfortable"}});export function MarketingHeader({logo:V,nav:X=[],navLinkClassName:Z,userMenu:$,cta:A,className:H,density:B,right:O,commandPaletteGroups:K,langSwitchProps:Q}){const[T,G]=g.useState(!1);return z(W,{as:"header",className:D("sticky top-0 z-50 w-full border-b bg-background/95 backdrop-blur-xs supports-backdrop-filter:bg-background/60",H),children:J(W,{className:D("mx-auto w-full max-w-7xl items-center justify-center",x({density:B})),children:[z(b,{className:"flex items-center gap-2 md:hidden",children:J(p,{open:T,onOpenChange:G,children:[z(h,{asChild:!0,children:z(y,{variant:"ghost",size:"icon","aria-label":"Open menu",children:z(f,{className:"h-5 w-5"})})}),J(S,{side:"left",className:"w-[320px] p-4",children:[!!K?.length&&z(v,{children:z(U,{groups:K})}),A&&z(b,{className:"mb-3",children:z(F,{variant:A.variant,size:A.size,href:A.href,onClick:A.onClick,children:z(q,{children:A.label})})}),z(l,{items:X})]})]})}),V,z(W,{className:"hidden items-center gap-4 md:flex",children:X.length>0&&J(I,{children:[z(d,{orientation:"vertical",className:"h-6"}),z(M,{className:"hidden md:flex",children:z(k,{children:X.map((E)=>z(C,{children:E.items&&E.items.length>0?J(I,{children:[z(N,{className:Z,children:E.label}),z(L,{children:z("div",{className:"grid w-[760px] grid-cols-3 gap-3 p-3",children:E.items.map((R)=>z(w,{item:R},R.href))})})]}):z(P,{className:Z,href:E.href||"#",children:E.label})},String(E.key??E.href??E.label)))})})]})}),J(W,{className:"flex items-center gap-2",children:[!!K?.length&&z(Y,{className:"hidden items-center gap-2 md:flex",children:z(U,{groups:K})}),Q?.options?.length>1&&z(_,{value:Q.value,onChange:Q.onChange,options:Q.options}),O&&z(Y,{className:"hidden md:flex",children:O}),A&&z(Y,{className:"hidden md:flex",children:z(F,{variant:A.variant,size:A.size,href:A.href,onClick:A.onClick,children:z(q,{children:A.label})})}),$&&z(j,{...$})]})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as E,Fragment as O}from"react/jsx-runtime";import{NavigationMenu as X,NavigationMenuContent as Y,NavigationMenuItem as Z,NavigationMenuLink as $,NavigationMenuList as S,NavigationMenuTrigger as T}from"@contractspec/lib.ui-kit-web/ui/navigation-menu";import{Separator as V}from"@contractspec/lib.ui-kit-web/ui/separator";import{cn as K}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as b}from"class-variance-authority";import{ButtonLink as p}from"../atoms/ButtonLink";import{NavItemCard as q}from"../molecules/NavItemCard";import{NavUser as B}from"../molecules/NavUser";const F=b("hidden items-center justify-between gap-4 md:flex",{variants:{density:{compact:"px-3 py-2",comfortable:"px-4 py-3"}},defaultVariants:{density:"comfortable"}});export function MarketingHeaderDesktop({logo:P,nav:G=[],userMenu:H,cta:D,className:Q,density:R,right:W}){return z("div",{className:K("w-full border-b bg-background/95 backdrop-blur-xs supports-backdrop-filter:bg-background/60",Q),children:E("div",{className:K("mx-auto w-full max-w-7xl",F({density:R})),children:[E("div",{className:"flex items-center gap-4",children:[P,G.length>0&&E(O,{children:[z(V,{orientation:"vertical",className:"h-6"}),z(X,{children:z(S,{children:G.map((A)=>z(Z,{children:A.items&&A.items.length>0?E(O,{children:[z(T,{children:A.label}),z(Y,{children:z("div",{className:"grid w-[760px] grid-cols-3 gap-3 p-3",children:A.items.map((J)=>z(q,{item:J},J.href))})})]}):z($,{href:A.href||"#",children:A.label})},String(A.key??A.href??A.label)))})})]})]}),E("div",{className:"flex items-center gap-2",children:[W,D&&z(p,{variant:D.variant,size:D.size,href:D.href,onClick:D.onClick,children:D.label}),H&&z(B,{...H})]})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as z}from"react/jsx-runtime";import{Sheet as X,SheetContent as Y,SheetFooter as Z,SheetHeader as $,SheetTitle as k,SheetTrigger as B}from"@contractspec/lib.ui-kit-web/ui/sheet";import{VStack as F}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as H}from"@contractspec/lib.ui-kit-web/ui/utils";import{Menu as O}from"lucide-react";import*as R from"react";import{Button as V}from"../atoms/Button";import{CommandSearchTrigger as b}from"../molecules/CommandSearchTrigger";import{LangSwitchDropdown as D}from"../molecules/LangSwitchDropdown";import{MobileNavMenu as L}from"../molecules/MobileNavMenu";export function MarketingHeaderMobile({logo:I,nav:J=[],className:K,right:Q,commandPaletteGroups:E,langSwitchProps:A}){const[U,W]=R.useState(!1);return q("div",{className:H("w-full border-b bg-background/95 backdrop-blur-xs supports-backdrop-filter:bg-background/60 md:hidden",K),children:z("div",{className:"mx-auto flex w-full max-w-7xl items-center justify-between px-3 py-2",children:[z("div",{className:"flex items-center gap-2",children:[z(X,{open:U,onOpenChange:W,children:[q(B,{asChild:!0,children:q(V,{variant:"ghost",size:"icon","aria-label":"Open menu",children:q(O,{className:"h-5 w-5"})})}),z(Y,{side:"left",className:"w-[320px] p-4",children:[z($,{children:[q(k,{children:"Menu"}),!!E?.length&&q("div",{className:"mb-3",children:q(b,{groups:E,compact:!0})})]}),q(F,{children:q(L,{items:J})}),q(Z,{children:Q})]})]}),I]}),q("div",{className:"flex items-center gap-2",children:A?.options?.length>1&&q(D,{value:A.value,options:A.options,onChange:A.onChange})})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as C,jsxs as D}from"react/jsx-runtime";import{VStack as A}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as B}from"@contractspec/lib.ui-kit-web/ui/utils";export function MarketingLayout({header:g,children:q,footer:v,className:z}){return D(A,{gap:"none",className:B("min-h-svh bg-background",z),children:[g,C("main",{id:"main",className:"flex-1",children:q}),v]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as F}from"react/jsx-runtime";import{Card as K,CardContent as L,CardHeader as Q,CardTitle as U}from"@contractspec/lib.ui-kit-web/ui/card";import{cn as I}from"@contractspec/lib.ui-kit-web/ui/utils";import{RankBadge as V}from"../atoms/RankBadge";import{DimensionScoresCard as W}from"../molecules/DimensionScoresCard";import{StatCard as X}from"../molecules/StatCard";export function ModelComparisonView({models:A,title:G="Model Comparison",className:z}){if(A.length===0)return q(K,{className:z,children:q(L,{className:"py-8 text-center",children:q("p",{className:"text-muted-foreground",children:"No models selected for comparison."})})});return F("div",{className:I("flex flex-col gap-4",z),children:[q("h2",{className:"font-semibold text-xl",children:G}),q("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-4",children:A.map((v)=>q(X,{label:v.displayName??v.modelId,value:Math.round(v.compositeScore*10)/10,hint:v.providerKey,icon:q(V,{rank:v.rank,previousRank:v.previousRank,size:"sm"})},v.modelId))}),q("div",{className:I("grid gap-4",A.length===1&&"grid-cols-1",A.length===2&&"grid-cols-1 md:grid-cols-2",A.length>=3&&"grid-cols-1 md:grid-cols-2 lg:grid-cols-3"),children:A.map((v)=>q(W,{dimensionScores:v.dimensionScores,title:v.displayName??v.modelId,size:"sm"},v.modelId))}),A.length>=2&&q(Y,{models:A})]})}function Y({models:A}){const G=Array.from(new Set(A.flatMap((z)=>Object.keys(z.dimensionScores)))).sort();if(G.length===0)return null;return F(K,{children:[q(Q,{className:"pb-2",children:q(U,{className:"text-base",children:"Head-to-Head"})}),q(L,{className:"overflow-x-auto",children:F("table",{className:"w-full text-sm",children:[q("thead",{children:F("tr",{className:"border-b",children:[q("th",{className:"py-2 text-left font-medium text-muted-foreground",children:"Dimension"}),A.map((z)=>q("th",{className:"py-2 text-right font-medium text-muted-foreground",children:z.displayName??z.modelId},z.modelId))]})}),F("tbody",{children:[G.map((z)=>{const v=A.map((E)=>E.dimensionScores[z]?.score??null),M=Math.max(...v.filter((E)=>E!==null));return F("tr",{className:"border-b last:border-0",children:[q("td",{className:"py-2 capitalize",children:z}),v.map((E,O)=>{const J=A[O];if(!J)return null;return q("td",{className:I("py-2 text-right tabular-nums",E===M&&v.filter((P)=>P!==null).length>1?"font-semibold text-green-600 dark:text-green-400":""),children:E!=null?(Math.round(E*10)/10).toFixed(1):"\u2013"},J.modelId)})]},z)}),F("tr",{className:"border-t-2 font-semibold",children:[q("td",{className:"py-2",children:"Composite"}),A.map((z)=>q("td",{className:"py-2 text-right tabular-nums",children:(Math.round(z.compositeScore*10)/10).toFixed(1)},z.modelId))]})]})]})})]})}
@@ -0,0 +1 @@
1
+ import{jsx as D}from"react/jsx-runtime";import{PageHeader as B}from"@contractspec/lib.ui-kit-web/ui/page-header";import{useResponsive as C}from"../../platform/useResponsive";export function PageHeaderResponsive(q){const{screen:z}=C(),A=z==="desktop"?"lg":z==="tablet"?"md":"sm";return D(B,{...q,spacing:q.spacing??A})}
@@ -0,0 +1 @@
1
+ import{jsx as F,jsxs as A}from"react/jsx-runtime";import{HStack as L,VStack as D}from"@contractspec/lib.ui-kit/ui/stack";import{Text as E}from"@contractspec/lib.ui-kit/ui/text";import{useResponsive as M}from"../../platform/useResponsive.mobile";export function PageHeaderResponsive({title:z,subtitle:q,actions:G,breadcrumb:I,spacing:J,className:K}){const{screen:B}=M(),C=J??(B==="desktop"?"lg":B==="tablet"?"md":"sm");return A(D,{className:[C==="lg"?"gap-4":C==="md"?"gap-3":"gap-2",K].filter(Boolean).join(" "),children:[I,A(L,{className:"items-start justify-between",children:[A(D,{className:"gap-1",children:[typeof z==="string"?F(E,{className:"font-bold text-2xl",children:z}):z,q?typeof q==="string"?F(E,{className:"text-base text-muted-foreground",children:q}):q:null]}),G]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as z}from"react/jsx-runtime";import{Card as H,CardContent as J}from"@contractspec/lib.ui-kit-web/ui/card";import{Carousel as K,CarouselContent as M,CarouselItem as O,CarouselNext as Q,CarouselPrevious as R}from"@contractspec/lib.ui-kit-web/ui/carousel";import{Button as S}from"../atoms/Button";import{ButtonLink as T}from"../atoms/ButtonLink";export function PricingCarousel({tiers:A,className:D}){return g("div",{className:D,children:z(K,{children:[g(M,{children:A.map((q,E)=>g(O,{children:g(H,{className:q.highlighted?"border-primary shadow-lg":void 0,children:z(J,{className:"p-6",children:[g("div",{className:"mb-2 font-medium text-base text-muted-foreground",children:q.name}),g("div",{className:"font-semibold text-3xl",children:q.price}),q.tagline&&g("div",{className:"mt-1 text-base text-muted-foreground",children:q.tagline}),g("ul",{className:"mt-4 space-y-2 text-base",children:q.features.map((F,G)=>z("li",{className:"flex items-start gap-2",children:[g("span",{className:"mt-1 h-1.5 w-1.5 rounded-full bg-primary"}),g("span",{children:F})]},G))}),q.cta&&g("div",{className:"mt-6",children:q.cta.href?g(T,{className:"w-full",href:q.cta.href,children:q.cta.label}):g(S,{className:"w-full",onPress:q.cta.onPress,children:q.cta.label})})]})})},E))}),g(R,{}),g(Q,{})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as d,jsxs as z}from"react/jsx-runtime";import{PricingTable as C}from"@contractspec/lib.ui-kit-web/ui/marketing/PricingTable";export function PricingSection({tiers:A,title:q,subtitle:v,className:B}){return d("section",{className:`py-12 sm:py-16 lg:py-24 ${B||""}`,children:z("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[q?z("div",{className:"mb-8 text-center",children:[d("h2",{className:"font-bold text-3xl md:text-4xl",children:q}),v?d("p",{className:"mx-auto mt-2 max-w-2xl text-base text-muted-foreground",children:v}):null]}):null,d(C,{tiers:A})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as z}from"react/jsx-runtime";import{Card as E,CardContent as F}from"@contractspec/lib.ui-kit-web/ui/card";import{Carousel as G,CarouselContent as H,CarouselItem as J,CarouselNext as K,CarouselPrevious as L}from"@contractspec/lib.ui-kit-web/ui/carousel";export function TestimonialCarousel({testimonials:A,className:B}){return g("div",{className:B,children:z(G,{children:[g(H,{children:A.map((q,D)=>g(J,{children:g(E,{children:z(F,{className:"p-6",children:[g("div",{className:"text-lg",children:q.quote}),z("div",{className:"mt-4 flex items-center gap-3",children:[q.avatar,z("div",{className:"text-base",children:[g("div",{className:"font-medium",children:q.author}),q.role&&g("div",{className:"text-muted-foreground",children:q.role})]})]})]})})},D))}),g(L,{}),g(K,{})]})})}