@contractspec/lib.design-system 3.9.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 (547) hide show
  1. package/README.md +192 -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.d.ts +3 -0
  278. package/dist/components/data-table/DataTableToolbar.js +1 -0
  279. package/dist/components/data-table/DataTableToolbar.mobile.d.ts +3 -0
  280. package/dist/components/data-table/DataTableToolbar.mobile.js +1 -0
  281. package/dist/components/data-table/DataTableToolbar.shared.d.ts +23 -0
  282. package/dist/components/data-table/DataTableToolbar.shared.js +1 -0
  283. package/dist/components/data-view/DataViewDetail.js +1 -0
  284. package/dist/components/data-view/DataViewList.js +1 -0
  285. package/dist/components/data-view/DataViewRenderer.d.ts +3 -1
  286. package/dist/components/data-view/DataViewRenderer.js +1 -0
  287. package/dist/components/data-view/DataViewRenderer.mobile.d.ts +3 -1
  288. package/dist/components/data-view/DataViewRenderer.mobile.js +1 -0
  289. package/dist/components/data-view/DataViewTable.d.ts +4 -2
  290. package/dist/components/data-view/DataViewTable.js +1 -0
  291. package/dist/components/data-view/DataViewTable.mobile.d.ts +4 -2
  292. package/dist/components/data-view/DataViewTable.mobile.js +1 -0
  293. package/dist/components/data-view/utils.js +1 -0
  294. package/dist/components/forms/ActionForm.js +1 -0
  295. package/dist/components/forms/FormCardLayout.js +1 -0
  296. package/dist/components/forms/FormDialog.js +1 -0
  297. package/dist/components/forms/FormLayout.js +1 -0
  298. package/dist/components/forms/FormOneByOneLayout.js +1 -0
  299. package/dist/components/forms/FormStepsLayout.js +1 -0
  300. package/dist/components/forms/ZodForm.js +1 -0
  301. package/dist/components/forms/controls/Autocomplete.d.ts +17 -0
  302. package/dist/components/forms/controls/Autocomplete.js +1 -0
  303. package/dist/components/forms/controls/Autocomplete.mobile.d.ts +17 -0
  304. package/dist/components/forms/controls/Autocomplete.mobile.js +1 -0
  305. package/dist/components/forms/controls/ChoiceControls.d.ts +26 -0
  306. package/dist/components/forms/controls/ChoiceControls.js +1 -0
  307. package/dist/components/forms/controls/ChoiceControls.mobile.d.ts +26 -0
  308. package/dist/components/forms/controls/ChoiceControls.mobile.js +1 -0
  309. package/dist/components/forms/controls/Combobox.d.ts +4 -0
  310. package/dist/components/forms/controls/Combobox.js +1 -0
  311. package/dist/components/forms/controls/Combobox.mobile.d.ts +2 -0
  312. package/dist/components/forms/controls/Combobox.mobile.js +1 -0
  313. package/dist/components/forms/controls/DateTimeControls.d.ts +20 -0
  314. package/dist/components/forms/controls/DateTimeControls.js +1 -0
  315. package/dist/components/forms/controls/DateTimeControls.mobile.d.ts +20 -0
  316. package/dist/components/forms/controls/DateTimeControls.mobile.js +1 -0
  317. package/dist/components/forms/controls/DropdownMenu.d.ts +1 -0
  318. package/dist/components/forms/controls/DropdownMenu.js +1 -0
  319. package/dist/components/forms/controls/DropdownMenu.mobile.d.ts +1 -0
  320. package/dist/components/forms/controls/DropdownMenu.mobile.js +1 -0
  321. package/dist/components/forms/controls/Field.d.ts +27 -0
  322. package/dist/components/forms/controls/Field.js +1 -0
  323. package/dist/components/forms/controls/Field.mobile.d.ts +2 -0
  324. package/dist/components/forms/controls/Field.mobile.js +1 -0
  325. package/dist/components/forms/controls/InputGroup.d.ts +1 -0
  326. package/dist/components/forms/controls/InputGroup.js +1 -0
  327. package/dist/components/forms/controls/InputGroup.mobile.d.ts +5 -0
  328. package/dist/components/forms/controls/InputGroup.mobile.js +1 -0
  329. package/dist/components/forms/controls/InputOTP.d.ts +1 -0
  330. package/dist/components/forms/controls/InputOTP.js +1 -0
  331. package/dist/components/forms/controls/InputOTP.mobile.d.ts +2 -0
  332. package/dist/components/forms/controls/InputOTP.mobile.js +1 -0
  333. package/dist/components/forms/controls/LoadingButton.d.ts +4 -0
  334. package/dist/components/forms/controls/LoadingButton.js +1 -0
  335. package/dist/components/forms/controls/LoadingButton.mobile.d.ts +4 -0
  336. package/dist/components/forms/controls/LoadingButton.mobile.js +1 -0
  337. package/dist/components/forms/controls/NativeSelect.d.ts +7 -0
  338. package/dist/components/forms/controls/NativeSelect.js +1 -0
  339. package/dist/components/forms/controls/NativeSelect.mobile.d.ts +2 -0
  340. package/dist/components/forms/controls/NativeSelect.mobile.js +1 -0
  341. package/dist/components/forms/controls/Select.d.ts +15 -0
  342. package/dist/components/forms/controls/Select.js +1 -0
  343. package/dist/components/forms/controls/Select.mobile.d.ts +13 -0
  344. package/dist/components/forms/controls/Select.mobile.js +1 -0
  345. package/dist/components/forms/controls/index.d.ts +11 -0
  346. package/dist/components/forms/controls/index.js +1 -0
  347. package/dist/components/forms/index.d.ts +8 -0
  348. package/dist/components/forms/index.js +1 -0
  349. package/dist/components/layout/Stack.d.ts +9 -0
  350. package/dist/components/layout/Stack.js +1 -0
  351. package/dist/components/layout/Stack.mobile.d.ts +13 -0
  352. package/dist/components/layout/Stack.mobile.js +1 -0
  353. package/dist/components/layout/index.d.ts +1 -0
  354. package/dist/components/layout/index.js +1 -0
  355. package/dist/components/legal/atoms/DefinitionList.js +1 -0
  356. package/dist/components/legal/atoms/KeyValueList.js +1 -0
  357. package/dist/components/legal/atoms/LegalCallout.d.ts +1 -1
  358. package/dist/components/legal/atoms/LegalCallout.js +1 -0
  359. package/dist/components/legal/atoms/LegalHeading.js +1 -0
  360. package/dist/components/legal/atoms/LegalList.d.ts +1 -1
  361. package/dist/components/legal/atoms/LegalList.js +1 -0
  362. package/dist/components/legal/atoms/LegalSection.d.ts +1 -1
  363. package/dist/components/legal/atoms/LegalSection.js +1 -0
  364. package/dist/components/legal/atoms/LegalText.js +1 -0
  365. package/dist/components/legal/molecules/Consent.js +1 -0
  366. package/dist/components/legal/molecules/ContactFields.js +1 -0
  367. package/dist/components/legal/molecules/LegalMeta.js +1 -0
  368. package/dist/components/legal/molecules/LegalTOC.js +1 -0
  369. package/dist/components/legal/organisms/ContactForm.js +1 -0
  370. package/dist/components/legal/organisms/GDPRDataRequest.js +1 -0
  371. package/dist/components/legal/organisms/GDPRRights.js +1 -0
  372. package/dist/components/legal/organisms/LegalPageLayout.js +1 -0
  373. package/dist/components/legal/templates/ContactTemplate.js +1 -0
  374. package/dist/components/legal/templates/CookiesTemplate.js +1 -0
  375. package/dist/components/legal/templates/PrivacyTemplate.js +1 -0
  376. package/dist/components/legal/templates/SalesTermsTemplate.js +1 -0
  377. package/dist/components/legal/templates/TermsTemplate.js +1 -0
  378. package/dist/components/marketing/MarketingCard.js +1 -0
  379. package/dist/components/marketing/MarketingCardsSection.js +1 -0
  380. package/dist/components/marketing/MarketingComparisonSection.js +1 -0
  381. package/dist/components/marketing/MarketingIconCard.js +1 -0
  382. package/dist/components/marketing/MarketingSection.js +1 -0
  383. package/dist/components/marketing/MarketingStepCard.js +1 -0
  384. package/dist/components/molecules/AiLinkButton.js +1 -0
  385. package/dist/components/molecules/Breadcrumbs.js +1 -0
  386. package/dist/components/molecules/CodeBlock/CodeBlock.js +1 -0
  387. package/dist/components/molecules/CodeBlock/index.js +1 -0
  388. package/dist/components/molecules/CodeBlock/types.js +0 -0
  389. package/dist/components/molecules/CommandPalette.js +1 -0
  390. package/dist/components/molecules/CommandSearchTrigger.js +1 -0
  391. package/dist/components/molecules/CommandTabs/CommandTabs.js +1 -0
  392. package/dist/components/molecules/CommandTabs/index.js +1 -0
  393. package/dist/components/molecules/CommandTabs/types.js +0 -0
  394. package/dist/components/molecules/CopyButton/CopyButton.js +1 -0
  395. package/dist/components/molecules/CopyButton/index.js +1 -0
  396. package/dist/components/molecules/CopyButton/types.js +0 -0
  397. package/dist/components/molecules/DimensionScoresCard.js +1 -0
  398. package/dist/components/molecules/DropdownMenu.js +0 -0
  399. package/dist/components/molecules/EntityCard.js +1 -0
  400. package/dist/components/molecules/FiltersToolbar.js +1 -0
  401. package/dist/components/molecules/FiltersToolbar.mobile.d.ts +1 -1
  402. package/dist/components/molecules/FiltersToolbar.mobile.js +1 -0
  403. package/dist/components/molecules/HoverPreview.js +1 -0
  404. package/dist/components/molecules/InstallCommand/InstallCommand.js +1 -0
  405. package/dist/components/molecules/InstallCommand/index.js +1 -0
  406. package/dist/components/molecules/InstallCommand/types.js +0 -0
  407. package/dist/components/molecules/LangSwitch.js +1 -0
  408. package/dist/components/molecules/LangSwitchDropdown.js +1 -0
  409. package/dist/components/molecules/LoaderBlock.js +1 -0
  410. package/dist/components/molecules/LoaderBlock.mobile.js +1 -0
  411. package/dist/components/molecules/MarkdownRenderer/MarkdownRenderer.js +2 -0
  412. package/dist/components/molecules/MarkdownRenderer/formatInlineMarkdown.js +1 -0
  413. package/dist/components/molecules/MarkdownRenderer/index.js +1 -0
  414. package/dist/components/molecules/MarkdownRenderer/renderMarkdownTable.js +1 -0
  415. package/dist/components/molecules/MarkdownRenderer/types.js +0 -0
  416. package/dist/components/molecules/MobileNavMenu.js +1 -0
  417. package/dist/components/molecules/NavItemCard.js +1 -0
  418. package/dist/components/molecules/NavMain.js +1 -0
  419. package/dist/components/molecules/NavUser.js +1 -0
  420. package/dist/components/molecules/OverviewCard.js +1 -0
  421. package/dist/components/molecules/SkeletonBlock/index.js +1 -0
  422. package/dist/components/molecules/SkeletonBlock/index.mobile.js +1 -0
  423. package/dist/components/molecules/SkeletonBlock/index.web.js +1 -0
  424. package/dist/components/molecules/SkeletonBlock/types.js +0 -0
  425. package/dist/components/molecules/SkeletonCircle/index.js +1 -0
  426. package/dist/components/molecules/SkeletonCircle/index.mobile.js +1 -0
  427. package/dist/components/molecules/SkeletonCircle/index.web.js +1 -0
  428. package/dist/components/molecules/SkeletonCircle/types.js +0 -0
  429. package/dist/components/molecules/SkeletonList/index.js +1 -0
  430. package/dist/components/molecules/SkeletonList/index.mobile.js +1 -0
  431. package/dist/components/molecules/SkeletonList/index.web.js +1 -0
  432. package/dist/components/molecules/SkeletonList/types.js +0 -0
  433. package/dist/components/molecules/StatCard.js +1 -0
  434. package/dist/components/molecules/StatusChip.d.ts +1 -1
  435. package/dist/components/molecules/StatusChip.js +1 -0
  436. package/dist/components/molecules/hover-previews/Doc.js +1 -0
  437. package/dist/components/molecules/hover-previews/Media.js +1 -0
  438. package/dist/components/molecules/hover-previews/Simple.js +1 -0
  439. package/dist/components/molecules/hover-previews/Stats.js +1 -0
  440. package/dist/components/molecules/hover-previews/User.js +1 -0
  441. package/dist/components/native/BottomTabs.mobile.js +1 -0
  442. package/dist/components/native/FlatListScreen.mobile.js +1 -0
  443. package/dist/components/native/SheetMenu.mobile.js +1 -0
  444. package/dist/components/organisms/AcademyLayout.js +1 -0
  445. package/dist/components/organisms/AppHeader.js +1 -0
  446. package/dist/components/organisms/AppHeader.mobile.js +1 -0
  447. package/dist/components/organisms/AppLayout.js +1 -0
  448. package/dist/components/organisms/AppSidebar.js +1 -0
  449. package/dist/components/organisms/AppSidebar.mobile.js +0 -0
  450. package/dist/components/organisms/EmptyDataList.js +1 -0
  451. package/dist/components/organisms/EmptyDataList.mobile.js +1 -0
  452. package/dist/components/organisms/EmptyDataList.types.js +0 -0
  453. package/dist/components/organisms/EmptySearchResult.js +1 -0
  454. package/dist/components/organisms/FAQSection.js +1 -0
  455. package/dist/components/organisms/FeatureCarousel.js +1 -0
  456. package/dist/components/organisms/FeaturesSection.js +1 -0
  457. package/dist/components/organisms/Footer.js +1 -0
  458. package/dist/components/organisms/GridLayout.js +1 -0
  459. package/dist/components/organisms/Header.js +1 -0
  460. package/dist/components/organisms/Header.mobile.js +1 -0
  461. package/dist/components/organisms/HeroResponsive.js +1 -0
  462. package/dist/components/organisms/HeroSection.js +1 -0
  463. package/dist/components/organisms/ListCardPage.js +1 -0
  464. package/dist/components/organisms/ListGridPage.js +1 -0
  465. package/dist/components/organisms/ListPageResponsive.js +1 -0
  466. package/dist/components/organisms/ListTablePage.js +1 -0
  467. package/dist/components/organisms/ListTablePage.mobile.js +1 -0
  468. package/dist/components/organisms/MarketingHeader.js +1 -0
  469. package/dist/components/organisms/MarketingHeaderDesktop.js +1 -0
  470. package/dist/components/organisms/MarketingHeaderMobile.js +1 -0
  471. package/dist/components/organisms/MarketingLayout.js +1 -0
  472. package/dist/components/organisms/ModelComparisonView.js +1 -0
  473. package/dist/components/organisms/PageHeaderResponsive.js +1 -0
  474. package/dist/components/organisms/PageHeaderResponsive.mobile.js +1 -0
  475. package/dist/components/organisms/PricingCarousel.js +1 -0
  476. package/dist/components/organisms/PricingSection.js +1 -0
  477. package/dist/components/organisms/TestimonialCarousel.js +1 -0
  478. package/dist/components/primitives/control.d.ts +894 -0
  479. package/dist/components/primitives/control.js +1 -0
  480. package/dist/components/primitives/themed.d.ts +881 -0
  481. package/dist/components/primitives/themed.js +1 -0
  482. package/dist/components/providers/PackageManagerProvider.js +1 -0
  483. package/dist/components/templates/lists/ListPageTemplate/index.js +1 -0
  484. package/dist/components/templates/lists/ListPageTemplate/index.mobile.js +1 -0
  485. package/dist/components/templates/lists/ListPageTemplate/index.web.js +1 -0
  486. package/dist/components/templates/lists/ListPageTemplate/types.js +0 -0
  487. package/dist/components/visualization/ComparisonView.js +1 -0
  488. package/dist/components/visualization/ComparisonView.mobile.js +1 -0
  489. package/dist/components/visualization/TimelineView.js +1 -0
  490. package/dist/components/visualization/TimelineView.mobile.js +1 -0
  491. package/dist/components/visualization/VisualizationCard.js +1 -0
  492. package/dist/components/visualization/VisualizationCard.mobile.js +1 -0
  493. package/dist/components/visualization/VisualizationGrid.js +1 -0
  494. package/dist/components/visualization/VisualizationGrid.mobile.js +1 -0
  495. package/dist/components/visualization/VisualizationRenderer.js +1 -0
  496. package/dist/components/visualization/VisualizationRenderer.mobile.js +1 -0
  497. package/dist/components/visualization/types.js +0 -0
  498. package/dist/contracts.typecheck.js +1 -0
  499. package/dist/design-system.feature.d.ts +1 -0
  500. package/dist/design-system.feature.js +1 -0
  501. package/dist/hooks/useListUrlState.js +1 -0
  502. package/dist/i18n/translation.js +1 -0
  503. package/dist/index.d.ts +5 -11
  504. package/dist/index.js +1 -2
  505. package/dist/lib/keyboard.js +1 -0
  506. package/dist/lib/utils.js +1 -0
  507. package/dist/platform/useColorScheme.js +1 -0
  508. package/dist/platform/useColorScheme.mobile.js +1 -0
  509. package/dist/platform/useReducedMotion.js +1 -0
  510. package/dist/platform/useReducedMotion.mobile.js +1 -0
  511. package/dist/platform/useResponsive.js +1 -0
  512. package/dist/platform/useResponsive.mobile.js +1 -0
  513. package/dist/platform/withPlatformUI.js +1 -0
  514. package/dist/renderers/form-contract/renderer.d.ts +3 -0
  515. package/dist/renderers/form-contract/renderer.js +1 -0
  516. package/dist/renderers/form-contract/rich-fields.d.ts +23 -0
  517. package/dist/renderers/form-contract/rich-fields.js +1 -0
  518. package/dist/renderers/form-contract/shell.d.ts +35 -0
  519. package/dist/renderers/form-contract/shell.js +1 -0
  520. package/dist/renderers/form-contract/values.d.ts +27 -0
  521. package/dist/renderers/form-contract/values.js +1 -0
  522. package/dist/renderers/form-contract.d.ts +1 -3
  523. package/dist/renderers/form-contract.js +1 -0
  524. package/dist/renderers/index.js +1 -0
  525. package/dist/theme/contracts.d.ts +3 -0
  526. package/dist/theme/contracts.js +1 -0
  527. package/dist/theme/index.d.ts +6 -0
  528. package/dist/theme/index.js +1 -0
  529. package/dist/theme/runtime-resolvers.d.ts +26 -0
  530. package/dist/theme/runtime-resolvers.js +1 -0
  531. package/dist/theme/runtime.d.ts +34 -0
  532. package/dist/theme/runtime.js +1 -0
  533. package/dist/theme/tailwind-config.d.ts +15 -0
  534. package/dist/theme/tailwind-config.js +1 -0
  535. package/dist/theme/tailwind-css.d.ts +2 -0
  536. package/dist/theme/tailwind-css.js +9 -0
  537. package/dist/theme/tailwind-variables.d.ts +19 -0
  538. package/dist/theme/tailwind-variables.js +1 -0
  539. package/dist/theme/tailwind.d.ts +3 -0
  540. package/dist/theme/tailwind.js +1 -0
  541. package/dist/theme/tokenBridge.js +1 -0
  542. package/dist/theme/tokens.js +1 -0
  543. package/dist/theme/variants.d.ts +1 -1
  544. package/dist/theme/variants.js +1 -0
  545. package/dist/types/nativewind-env.d.js +0 -0
  546. package/dist/types/navigation.js +0 -0
  547. package/package.json +70 -9
@@ -0,0 +1 @@
1
+ export{MarkdownRenderer}from"./MarkdownRenderer";
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as c}from"react/jsx-runtime";import{formatInlineMarkdown as p}from"./formatInlineMarkdown";export function renderMarkdownTable(o,d){if(o.length<2)return null;const a=(r)=>r.split("|").slice(1,-1).map((t)=>t.trim()),m=a(o[0]??""),l=o.slice(2).map(a);return e("div",{className:"my-4 overflow-x-auto",children:c("table",{className:"min-w-full border-collapse border border-border text-sm",children:[e("thead",{children:e("tr",{className:"bg-muted/50",children:m.map((r,t)=>e("th",{className:"border border-border px-3 py-2 text-left font-semibold",children:r},t))})}),e("tbody",{children:l.map((r,t)=>e("tr",{className:"hover:bg-muted/30",children:r.map((b,n)=>e("td",{className:"border border-border px-3 py-2",children:p(b)},n))},t))})]})},`table-${d}`)}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as F}from"react/jsx-runtime";import{cn as D}from"@contractspec/lib.ui-kit-web/ui/utils";import{NavItemCard as E}from"./NavItemCard";export function MobileNavMenu({items:A,className:B}){return q("nav",{className:D("flex flex-col gap-3",B),children:A.map((g)=>F("div",{className:"flex flex-col gap-2",children:[q("a",{href:g.href||"#",className:"font-semibold text-base",children:g.label}),g.items&&g.items.length>0&&q("div",{className:"grid grid-cols-1 gap-2",children:g.items.map((z)=>q(E,{item:z},z.href))})]},String(g.key??g.href??g.label)))})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as q}from"react/jsx-runtime";import{cn as B}from"@contractspec/lib.ui-kit-web/ui/utils";export function NavItemCard({item:d,className:v}){return g("a",{href:d.href,className:B("block rounded-md p-2 transition-colors hover:bg-accent",v),"aria-label":typeof d.label==="string"?d.label:d.ariaLabel,target:d.target,rel:d.external?"noopener noreferrer":void 0,onClick:d.onClick,children:q("div",{className:"flex items-center gap-3",children:[d.imageSrc?g("img",{src:d.imageSrc,alt:d.imageAlt||"",className:"h-12 w-12 rounded-xs object-cover"}):d.icon||null,q("div",{className:"min-w-0",children:[q("div",{className:"flex items-center gap-2 font-medium text-base",children:[d.label,d.badge&&g("span",{className:"ml-1 text-muted-foreground text-xs",children:d.badge})]}),d.description&&g("div",{className:"line-clamp-2 text-muted-foreground text-sm",children:d.description}),d.categories&&d.categories.length>0&&g("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:d.categories.map((z,A)=>g("span",{className:"rounded-xs bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:z},A))})]})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as d,jsxs as E,Fragment as V}from"react/jsx-runtime";import{NavigationMenu as K,NavigationMenuContent as M,NavigationMenuItem as O,NavigationMenuLink as D,NavigationMenuList as P,NavigationMenuTrigger as Q}from"@contractspec/lib.ui-kit-web/ui/navigation-menu";import{HStack as R}from"@contractspec/lib.ui-kit-web/ui/stack";import{Text as B}from"@contractspec/lib.ui-kit-web/ui/text";import{cn as U}from"@contractspec/lib.ui-kit-web/ui/utils";export function NavMain({items:G,className:J}){return d(K,{className:U("hidden md:flex",J),children:d(P,{children:G.map((z)=>d(O,{children:z.items&&z.items.length>0?E(V,{children:[d(Q,{children:d(B,{children:z.label})}),d(M,{children:d(R,{className:"grid w-[500px] grid-cols-2 gap-3 p-3",children:z.items.map((A)=>E(D,{href:A.href,className:"block rounded-md p-2 hover:bg-accent",children:[d(B,{className:"font-medium text-base",children:A.label}),A.badge&&d(B,{className:"ml-2 text-muted-foreground text-xs",children:A.badge})]},A.href))})})]}):d(D,{href:z.href||"#",children:z.label})},String(z.key??z.href??z.label)))})})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as G,Fragment as C}from"react/jsx-runtime";import{Avatar as P,AvatarFallback as Q,AvatarImage as R}from"@contractspec/lib.ui-kit-web/ui/avatar";import{DropdownMenu as V,DropdownMenuContent as W,DropdownMenuItem as X,DropdownMenuLabel as Y,DropdownMenuSeparator as Z,DropdownMenuTrigger as $}from"@contractspec/lib.ui-kit-web/ui/dropdown-menu";import{Button as q}from"../atoms/Button";export function NavUser({name:H,email:J,imageUrl:K,items:N}){return G(V,{children:[z($,{asChild:!0,children:z(q,{variant:"ghost",size:"icon","aria-label":"Account",children:z(P,{className:"h-8 w-8",children:K?z(R,{src:K,alt:H??"user"}):z(Q,{children:H?.[0]??"?"})})})}),G(W,{align:"end",className:"w-56",children:[(H||J)&&G(C,{children:[z(Y,{children:G("div",{className:"flex flex-col",children:[H&&z("span",{className:"font-medium",children:H}),J&&z("span",{className:"text-base text-muted-foreground",children:J})]})}),z(Z,{})]}),N.map((E,O)=>z(X,{onClick:E.onClick,asChild:!E.href,children:E.href?z("a",{href:E.href,className:E.danger?"text-destructive":void 0,children:G("span",{className:"inline-flex items-center gap-2",children:[E.icon,E.label]})}):z("span",{className:E.danger?"text-destructive":void 0,children:G("span",{className:"inline-flex items-center gap-2",children:[E.icon,E.label]})})},O))]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as z}from"react/jsx-runtime";import{Dialog as I,DialogContent as J,DialogHeader as K,DialogTitle as M,DialogTrigger as N}from"@contractspec/lib.ui-kit-web/ui/dialog";import O from"next/link";export function OverviewCard({title:A,summary:B,href:E,preview:F,ctaLabel:G}){return z(I,{children:[q(N,{asChild:!0,children:z("button",{className:"rounded-md border bg-background/50 p-4 text-left shadow-2xs transition hover:bg-accent/40",children:[q("div",{className:"font-medium text-lg",children:A}),q("div",{className:"text-foreground/80",children:B})]})}),z(J,{className:"max-h-[90vh] max-w-2xl overflow-y-auto sm:max-w-3xl",children:[q(K,{children:q(M,{children:A})}),z("div",{className:"space-y-4",children:[F,q("div",{children:q(O,{href:E,className:"inline-flex rounded-md bg-primary px-4 py-2 text-primary-foreground",children:G})})]})]})]})}
@@ -0,0 +1 @@
1
+ export{SkeletonBlock as default,SkeletonBlock}from"./index.web";export*from"./types";
@@ -0,0 +1 @@
1
+ import{jsx as d}from"react/jsx-runtime";import{View as t}from"react-native";export function SkeletonBlock({w:l="w-full",h:e="h-4",rounded:o="md",className:r}){return d(t,{className:[l,e,o==="full"?"rounded-full":o==="lg"?"rounded-lg":o==="sm"?"rounded-xs":"rounded-md","bg-muted",r].filter(Boolean).join(" ")})}export default SkeletonBlock;
@@ -0,0 +1 @@
1
+ import{jsx as C}from"react/jsx-runtime";import{Skeleton as A}from"@contractspec/lib.ui-kit-web/ui/skeleton";import{cn as B}from"@contractspec/lib.ui-kit-web/ui/utils";export function SkeletonBlock({w:q="w-full",h:v="h-4",rounded:g="md",className:z}){return C(A,{className:B(q,v,g==="full"?"rounded-full":g==="lg"?"rounded-lg":g==="sm"?"rounded-xs":"rounded-md",z)})}
@@ -0,0 +1 @@
1
+ export{SkeletonCircle as default,SkeletonCircle}from"./index.web";export*from"./types";
@@ -0,0 +1 @@
1
+ import{jsx as l}from"react/jsx-runtime";import{View as r}from"react-native";export function SkeletonCircle({size:e=32,sizeClass:o,className:t}){if(o)return l(r,{className:["rounded-full bg-muted",o,t].filter(Boolean).join(" ")});return l(r,{className:["rounded-full bg-muted",t].filter(Boolean).join(" "),style:{width:e,height:e}})}export default SkeletonCircle;
@@ -0,0 +1 @@
1
+ import{jsx as v}from"react/jsx-runtime";import{Skeleton as q}from"@contractspec/lib.ui-kit-web/ui/skeleton";export function SkeletonCircle({size:d=32,sizeClass:g,className:A}){const h=["rounded-full",g||void 0,A].filter(Boolean).join(" ");return g?v(q,{className:h}):v(q,{className:h,style:{width:d,height:d}})}
@@ -0,0 +1 @@
1
+ export{SkeletonList as default,SkeletonList}from"./index.web";export*from"./types";
@@ -0,0 +1 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{View as o}from"react-native";import{SkeletonBlock as p}from"../SkeletonBlock";export function SkeletonList({count:t=10,className:r}){return e(o,{className:r,children:Array.from({length:Math.max(1,t)}).map((i,m)=>e(o,{className:"mb-2",children:e(p,{h:"h-5",rounded:"md"})},m))})}export default SkeletonList;
@@ -0,0 +1 @@
1
+ import{jsx as q}from"react/jsx-runtime";import{SkeletonList as h}from"@contractspec/lib.ui-kit-web/ui/molecules/SkeletonList";export function SkeletonList({count:d=10,className:g}){return q(h,{count:d,className:g})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as D}from"react/jsx-runtime";import{Card as J,CardContent as K}from"@contractspec/lib.ui-kit-web/ui/card";import{cn as E}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as L}from"class-variance-authority";const M=L("",{variants:{emphasis:{default:"",subtle:"bg-muted/20",strong:"bg-primary/5"},density:{compact:"p-3",comfortable:"p-4 md:p-5"}},defaultVariants:{emphasis:"default",density:"comfortable"}});export function StatCard({label:q,value:z,hint:A,icon:B,emphasis:F,density:G,className:H,...I}){return g(J,{className:H,...I,children:D(K,{className:E("flex items-center gap-3",M({emphasis:F,density:G})),children:[B&&g("div",{className:"text-muted-foreground",children:B}),D("div",{className:"min-w-0",children:[g("div",{className:"text-base text-muted-foreground",children:q}),g("div",{className:"truncate font-semibold text-2xl",children:z}),A&&g("div",{className:"text-base text-muted-foreground",children:A})]})]})})}export function StatCardGroup({children:q,className:z}){return g("div",{className:E("grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-4",z),children:q})}
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  import * as React from 'react';
3
3
  declare const chipVariants: (props?: ({
4
- tone?: "success" | "neutral" | "danger" | "info" | "warning" | null | undefined;
4
+ tone?: "success" | "neutral" | "info" | "warning" | "danger" | null | undefined;
5
5
  size?: "sm" | "md" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export type StatusChipProps = React.HTMLAttributes<HTMLSpanElement> & VariantProps<typeof chipVariants> & {
@@ -0,0 +1 @@
1
+ var {require}=import.meta;import{jsx as A,jsxs as M}from"react/jsx-runtime";import{cn as J}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as K}from"class-variance-authority";const L=K("inline-flex items-center gap-1 rounded-md px-2 py-0.5 font-medium text-base",{variants:{tone:{neutral:"bg-muted/40 text-foreground",info:"bg-accent/15 text-accent",success:"bg-green-100 text-green-700",warning:"bg-warning/10 text-warning",danger:"bg-destructive/10 text-destructive"},size:{sm:"text-sm",md:"text-base"}},defaultVariants:{tone:"neutral",size:"md"}});export function StatusChip({tone:B,size:D,icon:g,label:E,className:F,hoverContent:q,...G}){const d=M("span",{className:J(L({tone:B,size:D}),F),...G,children:[g&&A("span",{className:"inline-flex h-4 w-4 items-center justify-center",children:g}),E]});if(!q)return d;try{const{HoverPreview:I}=require("./HoverPreview");return A(I,{trigger:d,content:q})}catch{return d}}
@@ -0,0 +1 @@
1
+ import{jsx as k,jsxs as g}from"react/jsx-runtime";export function HoverPreviewDoc({docType:D,number:q,title:z,meta:A=[],status:E,amount:B,className:F}){return g("div",{className:["space-y-2",F].filter(Boolean).join(" "),children:[g("div",{className:"flex items-center justify-between",children:[g("div",{className:"truncate font-medium text-sm",children:[D,q?` ${q}`:""]}),E]}),z&&k("div",{className:"truncate text-base text-muted-foreground",children:z}),A.length>0&&k("div",{className:"mt-1 space-y-1 text-base text-muted-foreground",children:A.map((C,G)=>g("div",{className:"flex items-center gap-2",children:[g("span",{className:"whitespace-nowrap",children:[C.label,":"]}),k("span",{className:"truncate",children:C.value})]},G))}),B&&k("div",{className:"pt-1 font-medium text-base",children:B})]})}
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";export function HoverPreviewMedia({title:t,subtitle:a,media:r,caption:d,className:i}){return o("div",{className:["space-y-2",i].filter(Boolean).join(" "),children:[t&&e("div",{className:"truncate font-medium text-sm",children:t}),a&&e("div",{className:"truncate text-base text-muted-foreground",children:a}),e("div",{className:"rounded-md border bg-card p-1",children:r}),d&&e("div",{className:"text-base text-muted-foreground",children:d})]})}
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as a,Fragment as n}from"react/jsx-runtime";export function HoverPreviewSimple({title:r,subtitle:i,lines:c=[],footer:o,className:d}){return a("div",{className:["space-y-2",d].filter(Boolean).join(" "),children:[e("div",{className:"truncate font-medium text-sm",children:r}),i&&e("div",{className:"truncate text-base text-muted-foreground",children:i}),c.length>0&&e("div",{className:"mt-2 space-y-1",children:c.map((t,l)=>a("div",{className:"flex items-center gap-2 text-base text-muted-foreground",children:[t.icon,t.label?a(n,{children:[a("span",{className:"whitespace-nowrap",children:[t.label,":"]}),e("span",{className:"truncate",children:t.value})]}):e("span",{className:"truncate",children:t.value})]},l))}),o&&e("div",{className:"pt-1 text-base text-muted-foreground",children:o})]})}
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as d}from"react/jsx-runtime";export function HoverPreviewStats({title:t,stats:o,footer:a,className:c}){return d("div",{className:["space-y-2",c].filter(Boolean).join(" "),children:[t&&e("div",{className:"truncate font-medium text-sm",children:t}),e("div",{className:"grid grid-cols-1 gap-2",children:o.map((i,v)=>d("div",{className:"flex items-baseline justify-between gap-3",children:[e("div",{className:"text-base text-muted-foreground",children:i.label}),e("div",{className:"truncate font-semibold text-sm",children:i.value})]},v))}),a&&e("div",{className:"pt-1 text-base text-muted-foreground",children:a})]})}
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as a}from"react/jsx-runtime";export function HoverPreviewUser({avatar:d,name:o,email:t,meta:i=[],actions:c,className:v}){return a("div",{className:["space-y-2",v].filter(Boolean).join(" "),children:[a("div",{className:"flex items-center gap-3",children:[d,a("div",{className:"min-w-0",children:[e("div",{className:"truncate font-medium text-sm",children:o}),t&&e("div",{className:"truncate text-base text-muted-foreground",children:t})]})]}),i.length>0&&e("div",{className:"space-y-1 text-base text-muted-foreground",children:i.map((r,l)=>a("div",{className:"flex items-center gap-2",children:[a("span",{className:"whitespace-nowrap",children:[r.label,":"]}),e("span",{className:"truncate",children:r.value})]},l))}),c&&e("div",{className:"pt-1",children:c})]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as E}from"react/jsx-runtime";import{cn as g}from"@contractspec/lib.ui-kit-web/ui/utils";import{Pressable as B,Text as C,View as D}from"react-native";export function BottomTabs({items:z,className:A}){return q(D,{className:g("flex flex-row items-stretch border-t bg-background",A),children:z.map((d)=>E(B,{className:g("flex-1 items-center justify-center py-2",d.active?"bg-muted":void 0),onPress:d.onPress,accessibilityRole:"tab",accessibilityState:{selected:!!d.active},accessibilityLabel:d.label,children:[d.icon,q(C,{className:g("mt-1 text-xs",d.active?"text-foreground":"text-muted-foreground"),children:d.label})]},d.key))})}
@@ -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,{})]})})}