@lssm/lib.design-system 1.7.4 → 1.9.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 (340) hide show
  1. package/README.md +99 -0
  2. package/dist/_virtual/rolldown_runtime.js +21 -12
  3. package/dist/components/agent/AgentMonitor.d.ts +29 -0
  4. package/dist/components/agent/AgentMonitor.d.ts.map +1 -0
  5. package/dist/components/agent/AgentMonitor.js +79 -0
  6. package/dist/components/agent/AgentMonitor.js.map +1 -0
  7. package/dist/components/agent/ApprovalQueue.d.ts +26 -0
  8. package/dist/components/agent/ApprovalQueue.d.ts.map +1 -0
  9. package/dist/components/agent/ApprovalQueue.js +89 -0
  10. package/dist/components/agent/ApprovalQueue.js.map +1 -0
  11. package/dist/components/atoms/ActionButtons.d.ts +7 -7
  12. package/dist/components/atoms/ActionButtons.js +2 -2
  13. package/dist/components/atoms/ActionButtons.js.map +1 -1
  14. package/dist/components/atoms/Button.d.ts +2 -2
  15. package/dist/components/atoms/Button.d.ts.map +1 -1
  16. package/dist/components/atoms/Button.js +1 -1
  17. package/dist/components/atoms/Button.js.map +1 -1
  18. package/dist/components/atoms/Button.mobile.d.ts +2 -2
  19. package/dist/components/atoms/Button.mobile.js +1 -1
  20. package/dist/components/atoms/Button.mobile.js.map +1 -1
  21. package/dist/components/atoms/ButtonLink.d.ts +2 -2
  22. package/dist/components/atoms/ButtonLink.d.ts.map +1 -1
  23. package/dist/components/atoms/ButtonLink.js +1 -2
  24. package/dist/components/atoms/ButtonLink.js.map +1 -1
  25. package/dist/components/atoms/ButtonLink.mobile.d.ts +2 -2
  26. package/dist/components/atoms/ButtonLink.mobile.d.ts.map +1 -1
  27. package/dist/components/atoms/ButtonLink.mobile.js +1 -1
  28. package/dist/components/atoms/ButtonLink.mobile.js.map +1 -1
  29. package/dist/components/atoms/Cta.d.ts +1 -1
  30. package/dist/components/atoms/Cta.js +1 -1
  31. package/dist/components/atoms/Cta.js.map +1 -1
  32. package/dist/components/atoms/Cta.mobile.js +1 -2
  33. package/dist/components/atoms/Cta.mobile.js.map +1 -1
  34. package/dist/components/atoms/DataChips.d.ts +5 -5
  35. package/dist/components/atoms/DataChips.js +4 -4
  36. package/dist/components/atoms/DataChips.js.map +1 -1
  37. package/dist/components/atoms/EmptyState.d.ts +2 -2
  38. package/dist/components/atoms/EmptyState.js +0 -1
  39. package/dist/components/atoms/EmptyState.js.map +1 -1
  40. package/dist/components/atoms/ErrorState.d.ts +2 -2
  41. package/dist/components/atoms/ErrorState.d.ts.map +1 -1
  42. package/dist/components/atoms/ErrorState.mobile.d.ts +2 -2
  43. package/dist/components/atoms/Input.d.ts +2 -2
  44. package/dist/components/atoms/Input.js +1 -1
  45. package/dist/components/atoms/Input.js.map +1 -1
  46. package/dist/components/atoms/Input.mobile.d.ts +2 -2
  47. package/dist/components/atoms/Input.mobile.d.ts.map +1 -1
  48. package/dist/components/atoms/Input.mobile.js +1 -1
  49. package/dist/components/atoms/Input.mobile.js.map +1 -1
  50. package/dist/components/atoms/Link.d.ts +2 -2
  51. package/dist/components/atoms/Link.d.ts.map +1 -1
  52. package/dist/components/atoms/Link.js +1 -1
  53. package/dist/components/atoms/Link.js.map +1 -1
  54. package/dist/components/atoms/Link.web.d.ts +2 -2
  55. package/dist/components/atoms/Link.web.d.ts.map +1 -1
  56. package/dist/components/atoms/Link.web.js +1 -1
  57. package/dist/components/atoms/Link.web.js.map +1 -1
  58. package/dist/components/atoms/LoaderCircular.d.ts +4 -4
  59. package/dist/components/atoms/LoaderCircular.d.ts.map +1 -1
  60. package/dist/components/atoms/LoaderCircular.js +1 -1
  61. package/dist/components/atoms/LoaderCircular.js.map +1 -1
  62. package/dist/components/atoms/LoaderCircular.mobile.d.ts +2 -2
  63. package/dist/components/atoms/LoaderCircular.mobile.d.ts.map +1 -1
  64. package/dist/components/atoms/NavBrand.d.ts +2 -2
  65. package/dist/components/atoms/NavBrand.js +0 -1
  66. package/dist/components/atoms/NavBrand.js.map +1 -1
  67. package/dist/components/atoms/Stepper.d.ts +2 -2
  68. package/dist/components/atoms/Stepper.js +0 -1
  69. package/dist/components/atoms/Stepper.js.map +1 -1
  70. package/dist/components/atoms/Textarea.d.ts +2 -2
  71. package/dist/components/atoms/Textarea.js +1 -1
  72. package/dist/components/atoms/Textarea.js.map +1 -1
  73. package/dist/components/atoms/Textarea.mobile.d.ts +2 -2
  74. package/dist/components/atoms/Textarea.mobile.js +1 -1
  75. package/dist/components/atoms/Textarea.mobile.js.map +1 -1
  76. package/dist/components/data-view/DataViewDetail.d.ts +2 -2
  77. package/dist/components/data-view/DataViewDetail.js +9 -10
  78. package/dist/components/data-view/DataViewDetail.js.map +1 -1
  79. package/dist/components/data-view/DataViewList.d.ts +2 -2
  80. package/dist/components/data-view/DataViewList.js +5 -6
  81. package/dist/components/data-view/DataViewList.js.map +1 -1
  82. package/dist/components/data-view/DataViewRenderer.d.ts +19 -3
  83. package/dist/components/data-view/DataViewRenderer.d.ts.map +1 -1
  84. package/dist/components/data-view/DataViewRenderer.js +128 -50
  85. package/dist/components/data-view/DataViewRenderer.js.map +1 -1
  86. package/dist/components/data-view/DataViewTable.d.ts +2 -2
  87. package/dist/components/data-view/DataViewTable.js +9 -10
  88. package/dist/components/data-view/DataViewTable.js.map +1 -1
  89. package/dist/components/data-view/utils.js +0 -1
  90. package/dist/components/data-view/utils.js.map +1 -1
  91. package/dist/components/forms/FormCardLayout.d.ts +2 -2
  92. package/dist/components/forms/FormDialog.d.ts +2 -2
  93. package/dist/components/forms/FormDialog.js +0 -1
  94. package/dist/components/forms/FormDialog.js.map +1 -1
  95. package/dist/components/forms/FormLayout.d.ts +4 -4
  96. package/dist/components/forms/FormLayout.js +0 -1
  97. package/dist/components/forms/FormLayout.js.map +1 -1
  98. package/dist/components/forms/FormOneByOneLayout.d.ts +2 -2
  99. package/dist/components/forms/FormStepsLayout.d.ts +2 -2
  100. package/dist/components/forms/FormStepsLayout.d.ts.map +1 -1
  101. package/dist/components/forms/ZodForm.d.ts +2 -2
  102. package/dist/components/forms/ZodForm.js +0 -1
  103. package/dist/components/forms/ZodForm.js.map +1 -1
  104. package/dist/components/legal/atoms/DefinitionList.d.ts +2 -2
  105. package/dist/components/legal/atoms/KeyValueList.d.ts +2 -2
  106. package/dist/components/legal/atoms/LegalCallout.d.ts +4 -4
  107. package/dist/components/legal/atoms/LegalCallout.d.ts.map +1 -1
  108. package/dist/components/legal/atoms/LegalCallout.js +1 -1
  109. package/dist/components/legal/atoms/LegalCallout.js.map +1 -1
  110. package/dist/components/legal/atoms/LegalHeading.d.ts +5 -5
  111. package/dist/components/legal/atoms/LegalHeading.d.ts.map +1 -1
  112. package/dist/components/legal/atoms/LegalHeading.js +1 -1
  113. package/dist/components/legal/atoms/LegalHeading.js.map +1 -1
  114. package/dist/components/legal/atoms/LegalList.d.ts +4 -4
  115. package/dist/components/legal/atoms/LegalList.js +1 -1
  116. package/dist/components/legal/atoms/LegalList.js.map +1 -1
  117. package/dist/components/legal/atoms/LegalSection.d.ts +4 -4
  118. package/dist/components/legal/atoms/LegalSection.d.ts.map +1 -1
  119. package/dist/components/legal/atoms/LegalSection.js +1 -1
  120. package/dist/components/legal/atoms/LegalSection.js.map +1 -1
  121. package/dist/components/legal/atoms/LegalText.d.ts +6 -6
  122. package/dist/components/legal/atoms/LegalText.d.ts.map +1 -1
  123. package/dist/components/legal/atoms/LegalText.js +1 -1
  124. package/dist/components/legal/atoms/LegalText.js.map +1 -1
  125. package/dist/components/legal/molecules/Consent.d.ts +3 -3
  126. package/dist/components/legal/molecules/Consent.d.ts.map +1 -1
  127. package/dist/components/legal/molecules/ContactFields.d.ts +2 -2
  128. package/dist/components/legal/molecules/LegalMeta.d.ts +2 -2
  129. package/dist/components/legal/molecules/LegalMeta.d.ts.map +1 -1
  130. package/dist/components/legal/molecules/LegalTOC.d.ts +4 -4
  131. package/dist/components/legal/molecules/LegalTOC.d.ts.map +1 -1
  132. package/dist/components/legal/molecules/LegalTOC.js +1 -1
  133. package/dist/components/legal/molecules/LegalTOC.js.map +1 -1
  134. package/dist/components/legal/organisms/ContactForm.d.ts +2 -2
  135. package/dist/components/legal/organisms/ContactForm.d.ts.map +1 -1
  136. package/dist/components/legal/organisms/GDPRDataRequest.d.ts +2 -2
  137. package/dist/components/legal/organisms/GDPRDataRequest.d.ts.map +1 -1
  138. package/dist/components/legal/organisms/GDPRRights.d.ts +2 -2
  139. package/dist/components/legal/organisms/GDPRRights.d.ts.map +1 -1
  140. package/dist/components/legal/organisms/LegalPageLayout.d.ts +2 -2
  141. package/dist/components/legal/templates/ContactTemplate.d.ts +2 -2
  142. package/dist/components/legal/templates/ContactTemplate.d.ts.map +1 -1
  143. package/dist/components/legal/templates/CookiesTemplate.d.ts +2 -2
  144. package/dist/components/legal/templates/PrivacyTemplate.d.ts +2 -2
  145. package/dist/components/legal/templates/SalesTermsTemplate.d.ts +2 -2
  146. package/dist/components/legal/templates/SalesTermsTemplate.d.ts.map +1 -1
  147. package/dist/components/legal/templates/TermsTemplate.d.ts +2 -2
  148. package/dist/components/legal/templates/TermsTemplate.d.ts.map +1 -1
  149. package/dist/components/legal/templates/TermsTemplate.js +0 -1
  150. package/dist/components/legal/templates/TermsTemplate.js.map +1 -1
  151. package/dist/components/molecules/AiLinkButton.d.ts +2 -2
  152. package/dist/components/molecules/AiLinkButton.d.ts.map +1 -1
  153. package/dist/components/molecules/Breadcrumbs.d.ts +2 -2
  154. package/dist/components/molecules/Breadcrumbs.js +0 -1
  155. package/dist/components/molecules/Breadcrumbs.js.map +1 -1
  156. package/dist/components/molecules/CommandPalette.d.ts +2 -2
  157. package/dist/components/molecules/CommandPalette.js +0 -1
  158. package/dist/components/molecules/CommandPalette.js.map +1 -1
  159. package/dist/components/molecules/CommandSearchTrigger.d.ts +2 -2
  160. package/dist/components/molecules/CommandSearchTrigger.js +0 -1
  161. package/dist/components/molecules/CommandSearchTrigger.js.map +1 -1
  162. package/dist/components/molecules/EntityCard.d.ts +5 -5
  163. package/dist/components/molecules/EntityCard.js +1 -2
  164. package/dist/components/molecules/EntityCard.js.map +1 -1
  165. package/dist/components/molecules/FiltersToolbar.d.ts +2 -2
  166. package/dist/components/molecules/FiltersToolbar.mobile.d.ts +2 -2
  167. package/dist/components/molecules/HoverPreview.d.ts +2 -2
  168. package/dist/components/molecules/HoverPreview.js +0 -1
  169. package/dist/components/molecules/HoverPreview.js.map +1 -1
  170. package/dist/components/molecules/LangSwitch.d.ts +2 -2
  171. package/dist/components/molecules/LangSwitch.js +0 -1
  172. package/dist/components/molecules/LangSwitch.js.map +1 -1
  173. package/dist/components/molecules/LangSwitchDropdown.d.ts +2 -2
  174. package/dist/components/molecules/LoaderBlock.d.ts +2 -2
  175. package/dist/components/molecules/LoaderBlock.mobile.d.ts +2 -2
  176. package/dist/components/molecules/MobileNavMenu.d.ts +2 -2
  177. package/dist/components/molecules/MobileNavMenu.js +0 -1
  178. package/dist/components/molecules/MobileNavMenu.js.map +1 -1
  179. package/dist/components/molecules/NavItemCard.d.ts +2 -2
  180. package/dist/components/molecules/NavItemCard.d.ts.map +1 -1
  181. package/dist/components/molecules/NavItemCard.js +0 -1
  182. package/dist/components/molecules/NavItemCard.js.map +1 -1
  183. package/dist/components/molecules/NavMain.d.ts +2 -2
  184. package/dist/components/molecules/NavUser.d.ts +2 -2
  185. package/dist/components/molecules/OverviewCard.d.ts +2 -2
  186. package/dist/components/molecules/OverviewCard.d.ts.map +1 -1
  187. package/dist/components/molecules/OverviewCard.js +0 -1
  188. package/dist/components/molecules/OverviewCard.js.map +1 -1
  189. package/dist/components/molecules/SkeletonBlock/index.mobile.d.ts +2 -2
  190. package/dist/components/molecules/SkeletonBlock/index.web.d.ts +2 -2
  191. package/dist/components/molecules/SkeletonCircle/index.mobile.d.ts +2 -2
  192. package/dist/components/molecules/SkeletonCircle/index.web.d.ts +2 -2
  193. package/dist/components/molecules/SkeletonList/index.mobile.d.ts +2 -2
  194. package/dist/components/molecules/SkeletonList/index.web.d.ts +2 -2
  195. package/dist/components/molecules/StatCard.d.ts +6 -6
  196. package/dist/components/molecules/StatCard.d.ts.map +1 -1
  197. package/dist/components/molecules/StatCard.js +1 -2
  198. package/dist/components/molecules/StatCard.js.map +1 -1
  199. package/dist/components/molecules/StatusChip.d.ts +4 -4
  200. package/dist/components/molecules/StatusChip.d.ts.map +1 -1
  201. package/dist/components/molecules/StatusChip.js +1 -2
  202. package/dist/components/molecules/StatusChip.js.map +1 -1
  203. package/dist/components/molecules/hover-previews/Doc.d.ts +2 -2
  204. package/dist/components/molecules/hover-previews/Doc.js +0 -1
  205. package/dist/components/molecules/hover-previews/Doc.js.map +1 -1
  206. package/dist/components/molecules/hover-previews/Media.d.ts +2 -2
  207. package/dist/components/molecules/hover-previews/Media.js +0 -1
  208. package/dist/components/molecules/hover-previews/Media.js.map +1 -1
  209. package/dist/components/molecules/hover-previews/Simple.d.ts +2 -2
  210. package/dist/components/molecules/hover-previews/Simple.js +0 -1
  211. package/dist/components/molecules/hover-previews/Simple.js.map +1 -1
  212. package/dist/components/molecules/hover-previews/Stats.d.ts +2 -2
  213. package/dist/components/molecules/hover-previews/Stats.js +0 -1
  214. package/dist/components/molecules/hover-previews/Stats.js.map +1 -1
  215. package/dist/components/molecules/hover-previews/User.d.ts +2 -2
  216. package/dist/components/molecules/hover-previews/User.js +0 -1
  217. package/dist/components/molecules/hover-previews/User.js.map +1 -1
  218. package/dist/components/native/BottomTabs.mobile.d.ts +2 -2
  219. package/dist/components/native/BottomTabs.mobile.d.ts.map +1 -1
  220. package/dist/components/native/BottomTabs.mobile.js +0 -1
  221. package/dist/components/native/BottomTabs.mobile.js.map +1 -1
  222. package/dist/components/native/FlatListScreen.mobile.d.ts +5 -5
  223. package/dist/components/native/FlatListScreen.mobile.d.ts.map +1 -1
  224. package/dist/components/native/FlatListScreen.mobile.js +1 -2
  225. package/dist/components/native/FlatListScreen.mobile.js.map +1 -1
  226. package/dist/components/native/SheetMenu.mobile.d.ts +2 -2
  227. package/dist/components/native/SheetMenu.mobile.d.ts.map +1 -1
  228. package/dist/components/native/SheetMenu.mobile.js +0 -1
  229. package/dist/components/native/SheetMenu.mobile.js.map +1 -1
  230. package/dist/components/organisms/AcademyLayout.d.ts +2 -2
  231. package/dist/components/organisms/AcademyLayout.js +0 -1
  232. package/dist/components/organisms/AcademyLayout.js.map +1 -1
  233. package/dist/components/organisms/AppHeader.d.ts +2 -2
  234. package/dist/components/organisms/AppHeader.d.ts.map +1 -1
  235. package/dist/components/organisms/AppHeader.js +1 -2
  236. package/dist/components/organisms/AppHeader.js.map +1 -1
  237. package/dist/components/organisms/AppHeader.mobile.d.ts +2 -2
  238. package/dist/components/organisms/AppHeader.mobile.d.ts.map +1 -1
  239. package/dist/components/organisms/AppHeader.mobile.js +0 -1
  240. package/dist/components/organisms/AppHeader.mobile.js.map +1 -1
  241. package/dist/components/organisms/AppLayout.d.ts +2 -2
  242. package/dist/components/organisms/AppLayout.js +0 -1
  243. package/dist/components/organisms/AppLayout.js.map +1 -1
  244. package/dist/components/organisms/AppSidebar.d.ts +2 -2
  245. package/dist/components/organisms/EmptyDataList.d.ts +2 -2
  246. package/dist/components/organisms/EmptyDataList.d.ts.map +1 -1
  247. package/dist/components/organisms/EmptyDataList.mobile.d.ts +2 -2
  248. package/dist/components/organisms/EmptySearchResult.d.ts +2 -2
  249. package/dist/components/organisms/FAQSection.d.ts +2 -2
  250. package/dist/components/organisms/FeatureCarousel.d.ts +2 -2
  251. package/dist/components/organisms/FeatureCarousel.js +1 -1
  252. package/dist/components/organisms/FeaturesSection.d.ts +2 -2
  253. package/dist/components/organisms/Footer.d.ts +2 -2
  254. package/dist/components/organisms/GridLayout.d.ts +4 -4
  255. package/dist/components/organisms/GridLayout.d.ts.map +1 -1
  256. package/dist/components/organisms/Header.d.ts +4 -4
  257. package/dist/components/organisms/Header.d.ts.map +1 -1
  258. package/dist/components/organisms/Header.js +0 -1
  259. package/dist/components/organisms/Header.js.map +1 -1
  260. package/dist/components/organisms/Header.mobile.d.ts +2 -2
  261. package/dist/components/organisms/Header.mobile.js +0 -1
  262. package/dist/components/organisms/Header.mobile.js.map +1 -1
  263. package/dist/components/organisms/HeroResponsive.d.ts +2 -2
  264. package/dist/components/organisms/HeroResponsive.d.ts.map +1 -1
  265. package/dist/components/organisms/HeroResponsive.js +0 -1
  266. package/dist/components/organisms/HeroResponsive.js.map +1 -1
  267. package/dist/components/organisms/HeroSection.d.ts +2 -2
  268. package/dist/components/organisms/HeroSection.d.ts.map +1 -1
  269. package/dist/components/organisms/ListCardPage.d.ts +5 -5
  270. package/dist/components/organisms/ListCardPage.js +0 -1
  271. package/dist/components/organisms/ListCardPage.js.map +1 -1
  272. package/dist/components/organisms/ListGridPage.d.ts +2 -2
  273. package/dist/components/organisms/ListGridPage.js +0 -1
  274. package/dist/components/organisms/ListGridPage.js.map +1 -1
  275. package/dist/components/organisms/ListPageResponsive.d.ts +2 -2
  276. package/dist/components/organisms/ListPageResponsive.d.ts.map +1 -1
  277. package/dist/components/organisms/ListPageResponsive.js +0 -1
  278. package/dist/components/organisms/ListPageResponsive.js.map +1 -1
  279. package/dist/components/organisms/ListTablePage.d.ts +4 -4
  280. package/dist/components/organisms/ListTablePage.d.ts.map +1 -1
  281. package/dist/components/organisms/ListTablePage.js +0 -1
  282. package/dist/components/organisms/ListTablePage.js.map +1 -1
  283. package/dist/components/organisms/MarketingHeader.d.ts +2 -2
  284. package/dist/components/organisms/MarketingHeader.js +0 -1
  285. package/dist/components/organisms/MarketingHeader.js.map +1 -1
  286. package/dist/components/organisms/MarketingHeaderDesktop.d.ts +2 -2
  287. package/dist/components/organisms/MarketingHeaderDesktop.js +0 -1
  288. package/dist/components/organisms/MarketingHeaderDesktop.js.map +1 -1
  289. package/dist/components/organisms/MarketingHeaderMobile.d.ts +2 -2
  290. package/dist/components/organisms/MarketingHeaderMobile.d.ts.map +1 -1
  291. package/dist/components/organisms/MarketingHeaderMobile.js +0 -1
  292. package/dist/components/organisms/MarketingHeaderMobile.js.map +1 -1
  293. package/dist/components/organisms/MarketingLayout.d.ts +2 -2
  294. package/dist/components/organisms/MarketingLayout.js +0 -1
  295. package/dist/components/organisms/MarketingLayout.js.map +1 -1
  296. package/dist/components/organisms/PageHeaderResponsive.d.ts +2 -2
  297. package/dist/components/organisms/PageHeaderResponsive.js +0 -1
  298. package/dist/components/organisms/PageHeaderResponsive.js.map +1 -1
  299. package/dist/components/organisms/PageHeaderResponsive.mobile.d.ts +2 -2
  300. package/dist/components/organisms/PageHeaderResponsive.mobile.js +0 -1
  301. package/dist/components/organisms/PageHeaderResponsive.mobile.js.map +1 -1
  302. package/dist/components/organisms/PricingCarousel.d.ts +2 -2
  303. package/dist/components/organisms/PricingCarousel.js +1 -1
  304. package/dist/components/organisms/PricingSection.d.ts +2 -2
  305. package/dist/components/organisms/PricingSection.d.ts.map +1 -1
  306. package/dist/components/organisms/TestimonialCarousel.d.ts +2 -2
  307. package/dist/components/organisms/TestimonialCarousel.js +1 -1
  308. package/dist/components/templates/lists/ListPageTemplate/index.mobile.d.ts +2 -2
  309. package/dist/components/templates/lists/ListPageTemplate/index.mobile.d.ts.map +1 -1
  310. package/dist/components/templates/lists/ListPageTemplate/index.web.d.ts +2 -2
  311. package/dist/components/templates/lists/ListPageTemplate/index.web.d.ts.map +1 -1
  312. package/dist/index.d.ts +3 -1
  313. package/dist/index.js +3 -1
  314. package/dist/index.js.map +1 -1
  315. package/dist/platform/useColorScheme.js +0 -1
  316. package/dist/platform/useColorScheme.js.map +1 -1
  317. package/dist/platform/useColorScheme.mobile.js +0 -1
  318. package/dist/platform/useColorScheme.mobile.js.map +1 -1
  319. package/dist/platform/useReducedMotion.js +0 -1
  320. package/dist/platform/useReducedMotion.js.map +1 -1
  321. package/dist/platform/useReducedMotion.mobile.js +0 -1
  322. package/dist/platform/useReducedMotion.mobile.js.map +1 -1
  323. package/dist/platform/useResponsive.js +0 -1
  324. package/dist/platform/useResponsive.js.map +1 -1
  325. package/dist/platform/useResponsive.mobile.js +0 -1
  326. package/dist/platform/useResponsive.mobile.js.map +1 -1
  327. package/dist/platform/withPlatformUI.js +0 -1
  328. package/dist/platform/withPlatformUI.js.map +1 -1
  329. package/dist/renderers/form-contract.d.ts +2 -2
  330. package/dist/renderers/form-contract.js +1 -2
  331. package/dist/renderers/form-contract.js.map +1 -1
  332. package/dist/theme/tokenBridge.d.ts.map +1 -1
  333. package/dist/theme/tokenBridge.js +0 -1
  334. package/dist/theme/tokenBridge.js.map +1 -1
  335. package/dist/theme/tokens.js +0 -1
  336. package/dist/theme/tokens.js.map +1 -1
  337. package/dist/theme/variants.d.ts +1 -1
  338. package/dist/theme/variants.js +0 -1
  339. package/dist/theme/variants.js.map +1 -1
  340. package/package.json +11 -8
@@ -1,5 +1,5 @@
1
1
  import { KeyboardOptions } from "../../lib/keyboard.js";
2
- import * as react_jsx_runtime12 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime30 from "react/jsx-runtime";
3
3
  import { TextareaProps as TextareaProps$1 } from "@lssm/lib.ui-kit-web/ui/textarea";
4
4
 
5
5
  //#region src/components/atoms/Textarea.d.ts
@@ -36,7 +36,7 @@ declare function Textarea({
36
36
  rows,
37
37
  keyboard,
38
38
  ...rest
39
- }: TextareaProps): react_jsx_runtime12.JSX.Element;
39
+ }: TextareaProps): react_jsx_runtime30.JSX.Element;
40
40
  //#endregion
41
41
  export { Textarea, Textarea as default, TextareaProps };
42
42
  //# sourceMappingURL=Textarea.d.ts.map
@@ -4,7 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
  import { Textarea as Textarea$1 } from "@lssm/lib.ui-kit-web/ui/textarea";
5
5
 
6
6
  //#region src/components/atoms/Textarea.tsx
7
- function Textarea({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, name, className, rows, keyboard,...rest }) {
7
+ function Textarea({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, name, className, rows, keyboard, ...rest }) {
8
8
  const webKeyboard = mapKeyboardToWeb(keyboard);
9
9
  const handleChange = React$1.useCallback((e) => onChange?.(e.target.value), [onChange]);
10
10
  const handleKeyDown = React$1.useCallback((e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","names":["React","WebTextarea"],"sources":["../../../src/components/atoms/Textarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Textarea as WebTextarea,\n type TextareaProps as WebTextareaProps,\n} from '@lssm/lib.ui-kit-web/ui/textarea';\nimport { type KeyboardOptions, mapKeyboardToWeb } from '../../lib/keyboard';\n\ninterface BaseFieldProps {\n value?: string;\n defaultValue?: string;\n onChange?: (text: string) => void;\n onSubmit?: () => void;\n onFocus?: () => void;\n onBlur?: () => void;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n maxLength?: number;\n name?: string;\n className?: string;\n rows?: number;\n keyboard?: KeyboardOptions;\n}\n\nexport type TextareaProps = Omit<\n WebTextareaProps,\n 'onChange' | 'value' | 'defaultValue'\n> &\n BaseFieldProps;\n\nexport function Textarea({\n value,\n defaultValue,\n onChange,\n onSubmit,\n onFocus,\n onBlur,\n placeholder,\n disabled,\n readOnly,\n maxLength,\n name,\n className,\n rows,\n keyboard,\n ...rest\n}: TextareaProps) {\n const webKeyboard = mapKeyboardToWeb(keyboard);\n\n const handleChange = React.useCallback<\n React.ChangeEventHandler<HTMLTextAreaElement>\n >((e) => onChange?.(e.target.value), [onChange]);\n\n const handleKeyDown = React.useCallback<\n React.KeyboardEventHandler<HTMLTextAreaElement>\n >(\n (e) => {\n if (e.key === 'Enter' && webKeyboard.type !== 'search') {\n // For textarea, Enter inserts newline; onSubmit could be used with modifier\n if (e.metaKey || e.ctrlKey) onSubmit?.();\n }\n },\n [onSubmit, webKeyboard.type]\n );\n\n return (\n <WebTextarea\n {...(rest as any)}\n className={className}\n value={value as any}\n defaultValue={defaultValue as any}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onFocus={onFocus as any}\n onBlur={onBlur as any}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n maxLength={maxLength}\n name={name}\n rows={rows}\n {...webKeyboard}\n />\n );\n}\n\nexport default Textarea;\n"],"mappings":";;;;;;AA8BA,SAAgB,SAAS,EACvB,OACA,cACA,UACA,UACA,SACA,QACA,aACA,UACA,UACA,WACA,MACA,WACA,MACA,SACA,GAAG,QACa;CAChB,MAAM,cAAc,iBAAiB,SAAS;CAE9C,MAAM,eAAeA,QAAM,aAExB,MAAM,WAAW,EAAE,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC;CAEhD,MAAM,gBAAgBA,QAAM,aAGzB,MAAM;AACL,MAAI,EAAE,QAAQ,WAAW,YAAY,SAAS,UAE5C;OAAI,EAAE,WAAW,EAAE,QAAS,aAAY;;IAG5C,CAAC,UAAU,YAAY,KAAK,CAC7B;AAED,QACE,oBAACC;EACC,GAAK;EACM;EACJ;EACO;EACd,UAAU;EACV,WAAW;EACF;EACD;EACK;EACH;EACA;EACC;EACL;EACA;EACN,GAAI;GACJ;;AAIN,uBAAe"}
1
+ {"version":3,"file":"Textarea.js","names":["React","WebTextarea"],"sources":["../../../src/components/atoms/Textarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Textarea as WebTextarea,\n type TextareaProps as WebTextareaProps,\n} from '@lssm/lib.ui-kit-web/ui/textarea';\nimport { type KeyboardOptions, mapKeyboardToWeb } from '../../lib/keyboard';\n\ninterface BaseFieldProps {\n value?: string;\n defaultValue?: string;\n onChange?: (text: string) => void;\n onSubmit?: () => void;\n onFocus?: () => void;\n onBlur?: () => void;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n maxLength?: number;\n name?: string;\n className?: string;\n rows?: number;\n keyboard?: KeyboardOptions;\n}\n\nexport type TextareaProps = Omit<\n WebTextareaProps,\n 'onChange' | 'value' | 'defaultValue'\n> &\n BaseFieldProps;\n\nexport function Textarea({\n value,\n defaultValue,\n onChange,\n onSubmit,\n onFocus,\n onBlur,\n placeholder,\n disabled,\n readOnly,\n maxLength,\n name,\n className,\n rows,\n keyboard,\n ...rest\n}: TextareaProps) {\n const webKeyboard = mapKeyboardToWeb(keyboard);\n\n const handleChange = React.useCallback<\n React.ChangeEventHandler<HTMLTextAreaElement>\n >((e) => onChange?.(e.target.value), [onChange]);\n\n const handleKeyDown = React.useCallback<\n React.KeyboardEventHandler<HTMLTextAreaElement>\n >(\n (e) => {\n if (e.key === 'Enter' && webKeyboard.type !== 'search') {\n // For textarea, Enter inserts newline; onSubmit could be used with modifier\n if (e.metaKey || e.ctrlKey) onSubmit?.();\n }\n },\n [onSubmit, webKeyboard.type]\n );\n\n return (\n <WebTextarea\n {...(rest as any)}\n className={className}\n value={value as any}\n defaultValue={defaultValue as any}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onFocus={onFocus as any}\n onBlur={onBlur as any}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n maxLength={maxLength}\n name={name}\n rows={rows}\n {...webKeyboard}\n />\n );\n}\n\nexport default Textarea;\n"],"mappings":";;;;;;AA8BA,SAAgB,SAAS,EACvB,OACA,cACA,UACA,UACA,SACA,QACA,aACA,UACA,UACA,WACA,MACA,WACA,MACA,UACA,GAAG,QACa;CAChB,MAAM,cAAc,iBAAiB,SAAS;CAE9C,MAAM,eAAeA,QAAM,aAExB,MAAM,WAAW,EAAE,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC;CAEhD,MAAM,gBAAgBA,QAAM,aAGzB,MAAM;AACL,MAAI,EAAE,QAAQ,WAAW,YAAY,SAAS,UAE5C;OAAI,EAAE,WAAW,EAAE,QAAS,aAAY;;IAG5C,CAAC,UAAU,YAAY,KAAK,CAC7B;AAED,QACE,oBAACC;EACC,GAAK;EACM;EACJ;EACO;EACd,UAAU;EACV,WAAW;EACF;EACD;EACK;EACH;EACA;EACC;EACL;EACA;EACN,GAAI;GACJ;;AAIN,uBAAe"}
@@ -1,6 +1,6 @@
1
1
  import { KeyboardOptions } from "../../lib/keyboard.js";
2
2
  import * as React$1 from "react";
3
- import * as react_jsx_runtime18 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime29 from "react/jsx-runtime";
4
4
  import { Textarea as Textarea$1 } from "@lssm/lib.ui-kit/ui/textarea";
5
5
 
6
6
  //#region src/components/atoms/Textarea.mobile.d.ts
@@ -32,7 +32,7 @@ declare function Textarea({
32
32
  className,
33
33
  keyboard,
34
34
  ...rest
35
- }: TextareaProps): react_jsx_runtime18.JSX.Element;
35
+ }: TextareaProps): react_jsx_runtime29.JSX.Element;
36
36
  //#endregion
37
37
  export { Textarea, Textarea as default, TextareaProps };
38
38
  //# sourceMappingURL=Textarea.mobile.d.ts.map
@@ -4,7 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
  import { Textarea as Textarea$1 } from "@lssm/lib.ui-kit/ui/textarea";
5
5
 
6
6
  //#region src/components/atoms/Textarea.mobile.tsx
7
- function Textarea({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, maxLength, className, keyboard,...rest }) {
7
+ function Textarea({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, maxLength, className, keyboard, ...rest }) {
8
8
  const nativeKeyboard = mapKeyboardToNative(keyboard);
9
9
  return /* @__PURE__ */ jsx(Textarea$1, {
10
10
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.mobile.js","names":["NativeTextarea"],"sources":["../../../src/components/atoms/Textarea.mobile.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Textarea as NativeTextarea } from '@lssm/lib.ui-kit/ui/textarea';\nimport { mapKeyboardToNative, type KeyboardOptions } from '../../lib/keyboard';\n\ninterface BaseFieldProps {\n value?: string;\n defaultValue?: string;\n onChange?: (text: string) => void;\n onSubmit?: () => void;\n onFocus?: () => void;\n onBlur?: () => void;\n placeholder?: string;\n disabled?: boolean;\n maxLength?: number;\n className?: string;\n keyboard?: KeyboardOptions;\n}\n\ntype NativeTextareaComponentProps = React.ComponentProps<typeof NativeTextarea>;\nexport type TextareaProps = Omit<\n NativeTextareaComponentProps,\n 'onChangeText' | 'value' | 'defaultValue'\n> &\n BaseFieldProps;\n\nexport function Textarea({\n value,\n defaultValue,\n onChange,\n onSubmit,\n onFocus,\n onBlur,\n placeholder,\n disabled,\n maxLength,\n className,\n keyboard,\n ...rest\n}: TextareaProps) {\n const nativeKeyboard = mapKeyboardToNative(keyboard);\n\n return (\n <NativeTextarea\n {...(rest as any)}\n className={className as any}\n value={value as any}\n defaultValue={defaultValue as any}\n onChangeText={onChange as any}\n onSubmitEditing={onSubmit as any}\n onFocus={onFocus as any}\n onBlur={onBlur as any}\n placeholder={placeholder}\n editable={!disabled}\n maxLength={maxLength}\n {...(nativeKeyboard as any)}\n />\n );\n}\n\nexport default Textarea;\n"],"mappings":";;;;;;AAyBA,SAAgB,SAAS,EACvB,OACA,cACA,UACA,UACA,SACA,QACA,aACA,UACA,WACA,WACA,SACA,GAAG,QACa;CAChB,MAAM,iBAAiB,oBAAoB,SAAS;AAEpD,QACE,oBAACA;EACC,GAAK;EACM;EACJ;EACO;EACd,cAAc;EACd,iBAAiB;EACR;EACD;EACK;EACb,UAAU,CAAC;EACA;EACX,GAAK;GACL;;AAIN,8BAAe"}
1
+ {"version":3,"file":"Textarea.mobile.js","names":["NativeTextarea"],"sources":["../../../src/components/atoms/Textarea.mobile.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Textarea as NativeTextarea } from '@lssm/lib.ui-kit/ui/textarea';\nimport { mapKeyboardToNative, type KeyboardOptions } from '../../lib/keyboard';\n\ninterface BaseFieldProps {\n value?: string;\n defaultValue?: string;\n onChange?: (text: string) => void;\n onSubmit?: () => void;\n onFocus?: () => void;\n onBlur?: () => void;\n placeholder?: string;\n disabled?: boolean;\n maxLength?: number;\n className?: string;\n keyboard?: KeyboardOptions;\n}\n\ntype NativeTextareaComponentProps = React.ComponentProps<typeof NativeTextarea>;\nexport type TextareaProps = Omit<\n NativeTextareaComponentProps,\n 'onChangeText' | 'value' | 'defaultValue'\n> &\n BaseFieldProps;\n\nexport function Textarea({\n value,\n defaultValue,\n onChange,\n onSubmit,\n onFocus,\n onBlur,\n placeholder,\n disabled,\n maxLength,\n className,\n keyboard,\n ...rest\n}: TextareaProps) {\n const nativeKeyboard = mapKeyboardToNative(keyboard);\n\n return (\n <NativeTextarea\n {...(rest as any)}\n className={className as any}\n value={value as any}\n defaultValue={defaultValue as any}\n onChangeText={onChange as any}\n onSubmitEditing={onSubmit as any}\n onFocus={onFocus as any}\n onBlur={onBlur as any}\n placeholder={placeholder}\n editable={!disabled}\n maxLength={maxLength}\n {...(nativeKeyboard as any)}\n />\n );\n}\n\nexport default Textarea;\n"],"mappings":";;;;;;AAyBA,SAAgB,SAAS,EACvB,OACA,cACA,UACA,UACA,SACA,QACA,aACA,UACA,WACA,WACA,UACA,GAAG,QACa;CAChB,MAAM,iBAAiB,oBAAoB,SAAS;AAEpD,QACE,oBAACA;EACC,GAAK;EACM;EACJ;EACO;EACd,cAAc;EACd,iBAAiB;EACR;EACD;EACK;EACb,UAAU,CAAC;EACA;EACX,GAAK;GACL;;AAIN,8BAAe"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime33 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime34 from "react/jsx-runtime";
3
3
  import { DataViewSpec } from "@lssm/lib.contracts/data-views";
4
4
 
5
5
  //#region src/components/data-view/DataViewDetail.d.ts
@@ -16,7 +16,7 @@ declare function DataViewDetail({
16
16
  className,
17
17
  emptyState,
18
18
  headerActions
19
- }: DataViewDetailProps): react_jsx_runtime33.JSX.Element;
19
+ }: DataViewDetailProps): react_jsx_runtime34.JSX.Element;
20
20
  //#endregion
21
21
  export { DataViewDetail, DataViewDetailProps };
22
22
  //# sourceMappingURL=DataViewDetail.d.ts.map
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import { cn } from "../../lib/utils.js";
5
4
  import { formatValue, getAtPath } from "./utils.js";
6
5
  import "react";
@@ -16,11 +15,11 @@ function DataViewDetail({ spec, item, className, emptyState, headerActions }) {
16
15
  children: [/* @__PURE__ */ jsxs("div", {
17
16
  className: "flex items-center justify-between",
18
17
  children: [/* @__PURE__ */ jsx("h3", {
19
- className: "text-base font-semibold text-foreground",
18
+ className: "text-foreground text-base font-semibold",
20
19
  children: spec.meta.title
21
20
  }), headerActions]
22
21
  }), emptyState ?? /* @__PURE__ */ jsx("div", {
23
- className: "rounded-md border border-dashed border-muted-foreground/40 p-8 text-center text-sm text-muted-foreground",
22
+ className: "border-muted-foreground/40 text-muted-foreground rounded-md border border-dashed p-8 text-center text-sm",
24
23
  children: "Select a record to view details."
25
24
  })]
26
25
  });
@@ -30,23 +29,23 @@ function DataViewDetail({ spec, item, className, emptyState, headerActions }) {
30
29
  children: [/* @__PURE__ */ jsxs("div", {
31
30
  className: "flex items-center justify-between",
32
31
  children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
33
- className: "text-xl font-semibold text-foreground",
32
+ className: "text-foreground text-xl font-semibold",
34
33
  children: spec.meta.title
35
34
  }), /* @__PURE__ */ jsx("p", {
36
- className: "text-sm text-muted-foreground",
35
+ className: "text-muted-foreground text-sm",
37
36
  children: spec.meta.description
38
37
  })] }), headerActions]
39
38
  }), /* @__PURE__ */ jsx("div", {
40
39
  className: "flex flex-col gap-6",
41
40
  children: sections.map((section, idx) => /* @__PURE__ */ jsxs("div", {
42
- className: "rounded-lg border border-border bg-card p-4 shadow-sm",
41
+ className: "border-border bg-card rounded-lg border p-4 shadow-sm",
43
42
  children: [
44
43
  section.title ? /* @__PURE__ */ jsx("h4", {
45
- className: "mb-2 text-sm font-semibold uppercase tracking-wide text-muted-foreground",
44
+ className: "text-muted-foreground mb-2 text-sm font-semibold tracking-wide uppercase",
46
45
  children: section.title
47
46
  }) : null,
48
47
  section.description ? /* @__PURE__ */ jsx("p", {
49
- className: "mb-4 text-sm text-muted-foreground",
48
+ className: "text-muted-foreground mb-4 text-sm",
50
49
  children: section.description
51
50
  }) : null,
52
51
  /* @__PURE__ */ jsx("dl", {
@@ -58,10 +57,10 @@ function DataViewDetail({ spec, item, className, emptyState, headerActions }) {
58
57
  return /* @__PURE__ */ jsxs("div", {
59
58
  className: "flex flex-col gap-1",
60
59
  children: [/* @__PURE__ */ jsx("dt", {
61
- className: "text-xs font-semibold uppercase text-muted-foreground/80",
60
+ className: "text-muted-foreground/80 text-xs font-semibold uppercase",
62
61
  children: field.label
63
62
  }), /* @__PURE__ */ jsx("dd", {
64
- className: "text-sm text-foreground",
63
+ className: "text-foreground text-sm",
65
64
  children: formatValue(value, field.format)
66
65
  })]
67
66
  }, field.key);
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewDetail.js","names":[],"sources":["../../../src/components/data-view/DataViewDetail.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type {\n DataViewSpec,\n DataViewDetailConfig,\n DataViewField,\n} from '@lssm/lib.contracts/data-views';\nimport { cn } from '../../lib/utils';\nimport { getAtPath, formatValue } from './utils';\n\nexport interface DataViewDetailProps {\n spec: DataViewSpec;\n item: Record<string, unknown> | null;\n className?: string;\n emptyState?: React.ReactNode;\n headerActions?: React.ReactNode;\n}\n\nexport function DataViewDetail({\n spec,\n item,\n className,\n emptyState,\n headerActions,\n}: DataViewDetailProps) {\n if (spec.view.kind !== 'detail') {\n throw new Error(\n `DataViewDetail received view kind \"${spec.view.kind}\", expected \"detail\".`\n );\n }\n\n const view = spec.view as DataViewDetailConfig;\n const fields = view.fields;\n\n if (!item) {\n return (\n <div className={cn('flex w-full flex-col gap-4', className)}>\n <div className=\"flex items-center justify-between\">\n <h3 className=\"text-base font-semibold text-foreground\">\n {spec.meta.title}\n </h3>\n {headerActions}\n </div>\n {emptyState ?? (\n <div className=\"rounded-md border border-dashed border-muted-foreground/40 p-8 text-center text-sm text-muted-foreground\">\n Select a record to view details.\n </div>\n )}\n </div>\n );\n }\n\n const sections =\n view.sections && view.sections.length > 0\n ? view.sections\n : [{ fields: fields.map((field) => field.key) }];\n\n return (\n <div className={cn('flex w-full flex-col gap-6', className)}>\n <div className=\"flex items-center justify-between\">\n <div>\n <h3 className=\"text-xl font-semibold text-foreground\">\n {spec.meta.title}\n </h3>\n <p className=\"text-sm text-muted-foreground\">{spec.meta.description}</p>\n </div>\n {headerActions}\n </div>\n <div className=\"flex flex-col gap-6\">\n {sections.map((section, idx) => (\n <div\n key={idx}\n className=\"rounded-lg border border-border bg-card p-4 shadow-sm\"\n >\n {section.title ? (\n <h4 className=\"mb-2 text-sm font-semibold uppercase tracking-wide text-muted-foreground\">\n {section.title}\n </h4>\n ) : null}\n {section.description ? (\n <p className=\"mb-4 text-sm text-muted-foreground\">\n {section.description}\n </p>\n ) : null}\n <dl className=\"grid gap-4 md:grid-cols-2\">\n {section.fields.map((fieldKey) => {\n const field = fieldByKey(fields, fieldKey);\n if (!field) return null;\n const value = getAtPath(item, field.dataPath);\n return (\n <div key={field.key} className=\"flex flex-col gap-1\">\n <dt className=\"text-xs font-semibold uppercase text-muted-foreground/80\">\n {field.label}\n </dt>\n <dd className=\"text-sm text-foreground\">\n {formatValue(value, field.format)}\n </dd>\n </div>\n );\n })}\n </dl>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction fieldByKey(fields: DataViewField[], key: string) {\n return fields.find((field) => field.key === key);\n}\n\n"],"mappings":";;;;;;;;;AAmBA,SAAgB,eAAe,EAC7B,MACA,MACA,WACA,YACA,iBACsB;AACtB,KAAI,KAAK,KAAK,SAAS,SACrB,OAAM,IAAI,MACR,sCAAsC,KAAK,KAAK,KAAK,uBACtD;CAGH,MAAM,OAAO,KAAK;CAClB,MAAM,SAAS,KAAK;AAEpB,KAAI,CAAC,KACH,QACE,qBAAC;EAAI,WAAW,GAAG,8BAA8B,UAAU;aACzD,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cACX,KAAK,KAAK;KACR,EACJ;IACG,EACL,cACC,oBAAC;GAAI,WAAU;aAA2G;IAEpH;GAEJ;CAIV,MAAM,WACJ,KAAK,YAAY,KAAK,SAAS,SAAS,IACpC,KAAK,WACL,CAAC,EAAE,QAAQ,OAAO,KAAK,UAAU,MAAM,IAAI,EAAE,CAAC;AAEpD,QACE,qBAAC;EAAI,WAAW,GAAG,8BAA8B,UAAU;aACzD,qBAAC;GAAI,WAAU;cACb,qBAAC,oBACC,oBAAC;IAAG,WAAU;cACX,KAAK,KAAK;KACR,EACL,oBAAC;IAAE,WAAU;cAAiC,KAAK,KAAK;KAAgB,IACpE,EACL;IACG,EACN,oBAAC;GAAI,WAAU;aACZ,SAAS,KAAK,SAAS,QACtB,qBAAC;IAEC,WAAU;;KAET,QAAQ,QACP,oBAAC;MAAG,WAAU;gBACX,QAAQ;OACN,GACH;KACH,QAAQ,cACP,oBAAC;MAAE,WAAU;gBACV,QAAQ;OACP,GACF;KACJ,oBAAC;MAAG,WAAU;gBACX,QAAQ,OAAO,KAAK,aAAa;OAChC,MAAM,QAAQ,WAAW,QAAQ,SAAS;AAC1C,WAAI,CAAC,MAAO,QAAO;OACnB,MAAM,QAAQ,UAAU,MAAM,MAAM,SAAS;AAC7C,cACE,qBAAC;QAAoB,WAAU;mBAC7B,oBAAC;SAAG,WAAU;mBACX,MAAM;UACJ,EACL,oBAAC;SAAG,WAAU;mBACX,YAAY,OAAO,MAAM,OAAO;UAC9B;UANG,MAAM,IAOV;QAER;OACC;;MA7BA,IA8BD,CACN;IACE;GACF;;AAIV,SAAS,WAAW,QAAyB,KAAa;AACxD,QAAO,OAAO,MAAM,UAAU,MAAM,QAAQ,IAAI"}
1
+ {"version":3,"file":"DataViewDetail.js","names":[],"sources":["../../../src/components/data-view/DataViewDetail.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type {\n DataViewSpec,\n DataViewDetailConfig,\n DataViewField,\n} from '@lssm/lib.contracts/data-views';\nimport { cn } from '../../lib/utils';\nimport { getAtPath, formatValue } from './utils';\n\nexport interface DataViewDetailProps {\n spec: DataViewSpec;\n item: Record<string, unknown> | null;\n className?: string;\n emptyState?: React.ReactNode;\n headerActions?: React.ReactNode;\n}\n\nexport function DataViewDetail({\n spec,\n item,\n className,\n emptyState,\n headerActions,\n}: DataViewDetailProps) {\n if (spec.view.kind !== 'detail') {\n throw new Error(\n `DataViewDetail received view kind \"${spec.view.kind}\", expected \"detail\".`\n );\n }\n\n const view = spec.view as DataViewDetailConfig;\n const fields = view.fields;\n\n if (!item) {\n return (\n <div className={cn('flex w-full flex-col gap-4', className)}>\n <div className=\"flex items-center justify-between\">\n <h3 className=\"text-foreground text-base font-semibold\">\n {spec.meta.title}\n </h3>\n {headerActions}\n </div>\n {emptyState ?? (\n <div className=\"border-muted-foreground/40 text-muted-foreground rounded-md border border-dashed p-8 text-center text-sm\">\n Select a record to view details.\n </div>\n )}\n </div>\n );\n }\n\n const sections =\n view.sections && view.sections.length > 0\n ? view.sections\n : [{ fields: fields.map((field) => field.key) }];\n\n return (\n <div className={cn('flex w-full flex-col gap-6', className)}>\n <div className=\"flex items-center justify-between\">\n <div>\n <h3 className=\"text-foreground text-xl font-semibold\">\n {spec.meta.title}\n </h3>\n <p className=\"text-muted-foreground text-sm\">\n {spec.meta.description}\n </p>\n </div>\n {headerActions}\n </div>\n <div className=\"flex flex-col gap-6\">\n {sections.map((section, idx) => (\n <div\n key={idx}\n className=\"border-border bg-card rounded-lg border p-4 shadow-sm\"\n >\n {section.title ? (\n <h4 className=\"text-muted-foreground mb-2 text-sm font-semibold tracking-wide uppercase\">\n {section.title}\n </h4>\n ) : null}\n {section.description ? (\n <p className=\"text-muted-foreground mb-4 text-sm\">\n {section.description}\n </p>\n ) : null}\n <dl className=\"grid gap-4 md:grid-cols-2\">\n {section.fields.map((fieldKey) => {\n const field = fieldByKey(fields, fieldKey);\n if (!field) return null;\n const value = getAtPath(item, field.dataPath);\n return (\n <div key={field.key} className=\"flex flex-col gap-1\">\n <dt className=\"text-muted-foreground/80 text-xs font-semibold uppercase\">\n {field.label}\n </dt>\n <dd className=\"text-foreground text-sm\">\n {formatValue(value, field.format)}\n </dd>\n </div>\n );\n })}\n </dl>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction fieldByKey(fields: DataViewField[], key: string) {\n return fields.find((field) => field.key === key);\n}\n"],"mappings":";;;;;;;;AAmBA,SAAgB,eAAe,EAC7B,MACA,MACA,WACA,YACA,iBACsB;AACtB,KAAI,KAAK,KAAK,SAAS,SACrB,OAAM,IAAI,MACR,sCAAsC,KAAK,KAAK,KAAK,uBACtD;CAGH,MAAM,OAAO,KAAK;CAClB,MAAM,SAAS,KAAK;AAEpB,KAAI,CAAC,KACH,QACE,qBAAC;EAAI,WAAW,GAAG,8BAA8B,UAAU;aACzD,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cACX,KAAK,KAAK;KACR,EACJ;IACG,EACL,cACC,oBAAC;GAAI,WAAU;aAA2G;IAEpH;GAEJ;CAIV,MAAM,WACJ,KAAK,YAAY,KAAK,SAAS,SAAS,IACpC,KAAK,WACL,CAAC,EAAE,QAAQ,OAAO,KAAK,UAAU,MAAM,IAAI,EAAE,CAAC;AAEpD,QACE,qBAAC;EAAI,WAAW,GAAG,8BAA8B,UAAU;aACzD,qBAAC;GAAI,WAAU;cACb,qBAAC,oBACC,oBAAC;IAAG,WAAU;cACX,KAAK,KAAK;KACR,EACL,oBAAC;IAAE,WAAU;cACV,KAAK,KAAK;KACT,IACA,EACL;IACG,EACN,oBAAC;GAAI,WAAU;aACZ,SAAS,KAAK,SAAS,QACtB,qBAAC;IAEC,WAAU;;KAET,QAAQ,QACP,oBAAC;MAAG,WAAU;gBACX,QAAQ;OACN,GACH;KACH,QAAQ,cACP,oBAAC;MAAE,WAAU;gBACV,QAAQ;OACP,GACF;KACJ,oBAAC;MAAG,WAAU;gBACX,QAAQ,OAAO,KAAK,aAAa;OAChC,MAAM,QAAQ,WAAW,QAAQ,SAAS;AAC1C,WAAI,CAAC,MAAO,QAAO;OACnB,MAAM,QAAQ,UAAU,MAAM,MAAM,SAAS;AAC7C,cACE,qBAAC;QAAoB,WAAU;mBAC7B,oBAAC;SAAG,WAAU;mBACX,MAAM;UACJ,EACL,oBAAC;SAAG,WAAU;mBACX,YAAY,OAAO,MAAM,OAAO;UAC9B;UANG,MAAM,IAOV;QAER;OACC;;MA7BA,IA8BD,CACN;IACE;GACF;;AAIV,SAAS,WAAW,QAAyB,KAAa;AACxD,QAAO,OAAO,MAAM,UAAU,MAAM,QAAQ,IAAI"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime34 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime37 from "react/jsx-runtime";
3
3
  import { DataViewSpec } from "@lssm/lib.contracts/data-views";
4
4
 
5
5
  //#region src/components/data-view/DataViewList.d.ts
@@ -18,7 +18,7 @@ declare function DataViewList({
18
18
  renderActions,
19
19
  onSelect,
20
20
  emptyState
21
- }: DataViewListProps): react_jsx_runtime34.JSX.Element;
21
+ }: DataViewListProps): react_jsx_runtime37.JSX.Element;
22
22
  //#endregion
23
23
  export { DataViewList, DataViewListProps };
24
24
  //# sourceMappingURL=DataViewList.d.ts.map
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import { cn } from "../../lib/utils.js";
5
4
  import { formatValue, getAtPath } from "./utils.js";
6
5
  import "react";
@@ -15,7 +14,7 @@ function DataViewList({ spec, items, className, renderActions, onSelect, emptySt
15
14
  if (!items.length) return /* @__PURE__ */ jsx("div", {
16
15
  className: cn("flex w-full flex-col gap-4", className),
17
16
  children: emptyState ?? /* @__PURE__ */ jsx("div", {
18
- className: "rounded-md border border-dashed border-muted-foreground/40 p-8 text-center text-sm text-muted-foreground",
17
+ className: "border-muted-foreground/40 text-muted-foreground rounded-md border border-dashed p-8 text-center text-sm",
19
18
  children: "No records available."
20
19
  })
21
20
  });
@@ -23,19 +22,19 @@ function DataViewList({ spec, items, className, renderActions, onSelect, emptySt
23
22
  className: cn("flex w-full flex-col gap-4", className),
24
23
  children: items.map((item, idx) => /* @__PURE__ */ jsxs("button", {
25
24
  type: "button",
26
- className: cn("flex w-full flex-col gap-2 rounded-lg border border-muted bg-card p-4 text-left shadow-sm transition hover:border-primary/40 hover:shadow-md focus-visible:border-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40", view.layout === "compact" && "md:flex-row md:items-center md:gap-4"),
25
+ className: cn("border-muted bg-card hover:border-primary/40 focus-visible:border-primary focus-visible:ring-primary/40 flex w-full flex-col gap-2 rounded-lg border p-4 text-left shadow-sm transition hover:shadow-md focus-visible:ring-2 focus-visible:outline-none", view.layout === "compact" && "md:flex-row md:items-center md:gap-4"),
27
26
  onClick: () => onSelect?.(item),
28
27
  children: [/* @__PURE__ */ jsxs("div", {
29
28
  className: "flex flex-1 flex-col gap-1",
30
29
  children: [primaryField ? /* @__PURE__ */ jsx("span", {
31
- className: "text-base font-medium text-foreground",
30
+ className: "text-foreground text-base font-medium",
32
31
  children: displayValue(item, fields, primaryField)
33
32
  }) : null, /* @__PURE__ */ jsx("div", {
34
- className: "flex flex-wrap gap-x-4 gap-y-1 text-sm text-muted-foreground",
33
+ className: "text-muted-foreground flex flex-wrap gap-x-4 gap-y-1 text-sm",
35
34
  children: secondaryFieldKeys(view, primaryField).map((fieldKey) => /* @__PURE__ */ jsxs("span", {
36
35
  className: "flex items-center gap-1.5",
37
36
  children: [/* @__PURE__ */ jsx("span", {
38
- className: "font-medium text-foreground/80",
37
+ className: "text-foreground/80 font-medium",
39
38
  children: fieldLabel(fields, fieldKey)
40
39
  }), /* @__PURE__ */ jsx("span", { children: displayValue(item, fields, fieldKey) })]
41
40
  }, fieldKey))
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewList.js","names":[],"sources":["../../../src/components/data-view/DataViewList.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type {\n DataViewSpec,\n DataViewListConfig,\n DataViewField,\n} from '@lssm/lib.contracts/data-views';\nimport { cn } from '../../lib/utils';\nimport { getAtPath, formatValue } from './utils';\n\nexport interface DataViewListProps {\n spec: DataViewSpec;\n items: Record<string, unknown>[];\n className?: string;\n renderActions?: (item: Record<string, unknown>) => React.ReactNode;\n onSelect?: (item: Record<string, unknown>) => void;\n emptyState?: React.ReactNode;\n}\n\nexport function DataViewList({\n spec,\n items,\n className,\n renderActions,\n onSelect,\n emptyState,\n}: DataViewListProps) {\n if (spec.view.kind !== 'list') {\n throw new Error(\n `DataViewList received view kind \"${spec.view.kind}\", expected \"list\".`\n );\n }\n const view = spec.view as DataViewListConfig;\n const fields = view.fields;\n const primaryField =\n view.primaryField ??\n fields.find((field) => field.key === view.primaryField)?.key ??\n fields[0]?.key;\n\n if (!items.length) {\n return (\n <div className={cn('flex w-full flex-col gap-4', className)}>\n {emptyState ?? (\n <div className=\"rounded-md border border-dashed border-muted-foreground/40 p-8 text-center text-sm text-muted-foreground\">\n No records available.\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div className={cn('flex w-full flex-col gap-4', className)}>\n {items.map((item, idx) => (\n <button\n type=\"button\"\n key={idx}\n className={cn(\n 'flex w-full flex-col gap-2 rounded-lg border border-muted bg-card p-4 text-left shadow-sm transition hover:border-primary/40 hover:shadow-md focus-visible:border-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40',\n view.layout === 'compact' && 'md:flex-row md:items-center md:gap-4'\n )}\n onClick={() => onSelect?.(item)}\n >\n <div className=\"flex flex-1 flex-col gap-1\">\n {primaryField ? (\n <span className=\"text-base font-medium text-foreground\">\n {displayValue(item, fields, primaryField)}\n </span>\n ) : null}\n <div className=\"flex flex-wrap gap-x-4 gap-y-1 text-sm text-muted-foreground\">\n {secondaryFieldKeys(view, primaryField).map((fieldKey) => (\n <span key={fieldKey} className=\"flex items-center gap-1.5\">\n <span className=\"font-medium text-foreground/80\">\n {fieldLabel(fields, fieldKey)}\n </span>\n <span>{displayValue(item, fields, fieldKey)}</span>\n </span>\n ))}\n </div>\n </div>\n {renderActions ? (\n <div className=\"flex shrink-0 items-center gap-2\">\n {renderActions(item)}\n </div>\n ) : null}\n </button>\n ))}\n </div>\n );\n}\n\nfunction fieldLabel(fields: DataViewField[], key: string) {\n return fields.find((field) => field.key === key)?.label ?? key;\n}\n\nfunction fieldByKey(fields: DataViewField[], key?: string) {\n return fields.find((field) => field.key === key);\n}\n\nfunction displayValue(\n item: Record<string, unknown>,\n fields: DataViewField[],\n key: string\n) {\n const field = fieldByKey(fields, key);\n if (!field) return '';\n const value = getAtPath(item, field.dataPath);\n return formatValue(value, field.format);\n}\n\nfunction secondaryFieldKeys(view: DataViewListConfig, primaryField?: string) {\n if (view.secondaryFields?.length) return view.secondaryFields;\n return view.fields\n .map((field) => field.key)\n .filter((key) => key !== primaryField);\n}\n\n"],"mappings":";;;;;;;;;AAoBA,SAAgB,aAAa,EAC3B,MACA,OACA,WACA,eACA,UACA,cACoB;AACpB,KAAI,KAAK,KAAK,SAAS,OACrB,OAAM,IAAI,MACR,oCAAoC,KAAK,KAAK,KAAK,qBACpD;CAEH,MAAM,OAAO,KAAK;CAClB,MAAM,SAAS,KAAK;CACpB,MAAM,eACJ,KAAK,gBACL,OAAO,MAAM,UAAU,MAAM,QAAQ,KAAK,aAAa,EAAE,OACzD,OAAO,IAAI;AAEb,KAAI,CAAC,MAAM,OACT,QACE,oBAAC;EAAI,WAAW,GAAG,8BAA8B,UAAU;YACxD,cACC,oBAAC;GAAI,WAAU;aAA2G;IAEpH;GAEJ;AAIV,QACE,oBAAC;EAAI,WAAW,GAAG,8BAA8B,UAAU;YACxD,MAAM,KAAK,MAAM,QAChB,qBAAC;GACC,MAAK;GAEL,WAAW,GACT,2PACA,KAAK,WAAW,aAAa,uCAC9B;GACD,eAAe,WAAW,KAAK;cAE/B,qBAAC;IAAI,WAAU;eACZ,eACC,oBAAC;KAAK,WAAU;eACb,aAAa,MAAM,QAAQ,aAAa;MACpC,GACL,MACJ,oBAAC;KAAI,WAAU;eACZ,mBAAmB,MAAM,aAAa,CAAC,KAAK,aAC3C,qBAAC;MAAoB,WAAU;iBAC7B,oBAAC;OAAK,WAAU;iBACb,WAAW,QAAQ,SAAS;QACxB,EACP,oBAAC,oBAAM,aAAa,MAAM,QAAQ,SAAS,GAAQ;QAJ1C,SAKJ,CACP;MACE;KACF,EACL,gBACC,oBAAC;IAAI,WAAU;cACZ,cAAc,KAAK;KAChB,GACJ;KA5BC,IA6BE,CACT;GACE;;AAIV,SAAS,WAAW,QAAyB,KAAa;AACxD,QAAO,OAAO,MAAM,UAAU,MAAM,QAAQ,IAAI,EAAE,SAAS;;AAG7D,SAAS,WAAW,QAAyB,KAAc;AACzD,QAAO,OAAO,MAAM,UAAU,MAAM,QAAQ,IAAI;;AAGlD,SAAS,aACP,MACA,QACA,KACA;CACA,MAAM,QAAQ,WAAW,QAAQ,IAAI;AACrC,KAAI,CAAC,MAAO,QAAO;AAEnB,QAAO,YADO,UAAU,MAAM,MAAM,SAAS,EACnB,MAAM,OAAO;;AAGzC,SAAS,mBAAmB,MAA0B,cAAuB;AAC3E,KAAI,KAAK,iBAAiB,OAAQ,QAAO,KAAK;AAC9C,QAAO,KAAK,OACT,KAAK,UAAU,MAAM,IAAI,CACzB,QAAQ,QAAQ,QAAQ,aAAa"}
1
+ {"version":3,"file":"DataViewList.js","names":[],"sources":["../../../src/components/data-view/DataViewList.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type {\n DataViewSpec,\n DataViewListConfig,\n DataViewField,\n} from '@lssm/lib.contracts/data-views';\nimport { cn } from '../../lib/utils';\nimport { getAtPath, formatValue } from './utils';\n\nexport interface DataViewListProps {\n spec: DataViewSpec;\n items: Record<string, unknown>[];\n className?: string;\n renderActions?: (item: Record<string, unknown>) => React.ReactNode;\n onSelect?: (item: Record<string, unknown>) => void;\n emptyState?: React.ReactNode;\n}\n\nexport function DataViewList({\n spec,\n items,\n className,\n renderActions,\n onSelect,\n emptyState,\n}: DataViewListProps) {\n if (spec.view.kind !== 'list') {\n throw new Error(\n `DataViewList received view kind \"${spec.view.kind}\", expected \"list\".`\n );\n }\n const view = spec.view as DataViewListConfig;\n const fields = view.fields;\n const primaryField =\n view.primaryField ??\n fields.find((field) => field.key === view.primaryField)?.key ??\n fields[0]?.key;\n\n if (!items.length) {\n return (\n <div className={cn('flex w-full flex-col gap-4', className)}>\n {emptyState ?? (\n <div className=\"border-muted-foreground/40 text-muted-foreground rounded-md border border-dashed p-8 text-center text-sm\">\n No records available.\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div className={cn('flex w-full flex-col gap-4', className)}>\n {items.map((item, idx) => (\n <button\n type=\"button\"\n key={idx}\n className={cn(\n 'border-muted bg-card hover:border-primary/40 focus-visible:border-primary focus-visible:ring-primary/40 flex w-full flex-col gap-2 rounded-lg border p-4 text-left shadow-sm transition hover:shadow-md focus-visible:ring-2 focus-visible:outline-none',\n view.layout === 'compact' && 'md:flex-row md:items-center md:gap-4'\n )}\n onClick={() => onSelect?.(item)}\n >\n <div className=\"flex flex-1 flex-col gap-1\">\n {primaryField ? (\n <span className=\"text-foreground text-base font-medium\">\n {displayValue(item, fields, primaryField)}\n </span>\n ) : null}\n <div className=\"text-muted-foreground flex flex-wrap gap-x-4 gap-y-1 text-sm\">\n {secondaryFieldKeys(view, primaryField).map((fieldKey) => (\n <span key={fieldKey} className=\"flex items-center gap-1.5\">\n <span className=\"text-foreground/80 font-medium\">\n {fieldLabel(fields, fieldKey)}\n </span>\n <span>{displayValue(item, fields, fieldKey)}</span>\n </span>\n ))}\n </div>\n </div>\n {renderActions ? (\n <div className=\"flex shrink-0 items-center gap-2\">\n {renderActions(item)}\n </div>\n ) : null}\n </button>\n ))}\n </div>\n );\n}\n\nfunction fieldLabel(fields: DataViewField[], key: string) {\n return fields.find((field) => field.key === key)?.label ?? key;\n}\n\nfunction fieldByKey(fields: DataViewField[], key?: string) {\n return fields.find((field) => field.key === key);\n}\n\nfunction displayValue(\n item: Record<string, unknown>,\n fields: DataViewField[],\n key: string\n) {\n const field = fieldByKey(fields, key);\n if (!field) return '';\n const value = getAtPath(item, field.dataPath);\n return formatValue(value, field.format);\n}\n\nfunction secondaryFieldKeys(view: DataViewListConfig, primaryField?: string) {\n if (view.secondaryFields?.length) return view.secondaryFields;\n return view.fields\n .map((field) => field.key)\n .filter((key) => key !== primaryField);\n}\n"],"mappings":";;;;;;;;AAoBA,SAAgB,aAAa,EAC3B,MACA,OACA,WACA,eACA,UACA,cACoB;AACpB,KAAI,KAAK,KAAK,SAAS,OACrB,OAAM,IAAI,MACR,oCAAoC,KAAK,KAAK,KAAK,qBACpD;CAEH,MAAM,OAAO,KAAK;CAClB,MAAM,SAAS,KAAK;CACpB,MAAM,eACJ,KAAK,gBACL,OAAO,MAAM,UAAU,MAAM,QAAQ,KAAK,aAAa,EAAE,OACzD,OAAO,IAAI;AAEb,KAAI,CAAC,MAAM,OACT,QACE,oBAAC;EAAI,WAAW,GAAG,8BAA8B,UAAU;YACxD,cACC,oBAAC;GAAI,WAAU;aAA2G;IAEpH;GAEJ;AAIV,QACE,oBAAC;EAAI,WAAW,GAAG,8BAA8B,UAAU;YACxD,MAAM,KAAK,MAAM,QAChB,qBAAC;GACC,MAAK;GAEL,WAAW,GACT,2PACA,KAAK,WAAW,aAAa,uCAC9B;GACD,eAAe,WAAW,KAAK;cAE/B,qBAAC;IAAI,WAAU;eACZ,eACC,oBAAC;KAAK,WAAU;eACb,aAAa,MAAM,QAAQ,aAAa;MACpC,GACL,MACJ,oBAAC;KAAI,WAAU;eACZ,mBAAmB,MAAM,aAAa,CAAC,KAAK,aAC3C,qBAAC;MAAoB,WAAU;iBAC7B,oBAAC;OAAK,WAAU;iBACb,WAAW,QAAQ,SAAS;QACxB,EACP,oBAAC,oBAAM,aAAa,MAAM,QAAQ,SAAS,GAAQ;QAJ1C,SAKJ,CACP;MACE;KACF,EACL,gBACC,oBAAC;IAAI,WAAU;cACZ,cAAc,KAAK;KAChB,GACJ;KA5BC,IA6BE,CACT;GACE;;AAIV,SAAS,WAAW,QAAyB,KAAa;AACxD,QAAO,OAAO,MAAM,UAAU,MAAM,QAAQ,IAAI,EAAE,SAAS;;AAG7D,SAAS,WAAW,QAAyB,KAAc;AACzD,QAAO,OAAO,MAAM,UAAU,MAAM,QAAQ,IAAI;;AAGlD,SAAS,aACP,MACA,QACA,KACA;CACA,MAAM,QAAQ,WAAW,QAAQ,IAAI;AACrC,KAAI,CAAC,MAAO,QAAO;AAEnB,QAAO,YADO,UAAU,MAAM,MAAM,SAAS,EACnB,MAAM,OAAO;;AAGzC,SAAS,mBAAmB,MAA0B,cAAuB;AAC3E,KAAI,KAAK,iBAAiB,OAAQ,QAAO,KAAK;AAC9C,QAAO,KAAK,OACT,KAAK,UAAU,MAAM,IAAI,CACzB,QAAQ,QAAQ,QAAQ,aAAa"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime102 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime38 from "react/jsx-runtime";
3
3
  import { DataViewSpec } from "@lssm/lib.contracts/data-views";
4
4
 
5
5
  //#region src/components/data-view/DataViewRenderer.d.ts
@@ -14,6 +14,16 @@ interface DataViewRendererProps {
14
14
  headerActions?: React$1.ReactNode;
15
15
  emptyState?: React$1.ReactNode;
16
16
  footer?: React$1.ReactNode;
17
+ search?: string;
18
+ onSearchChange?: (value: string) => void;
19
+ filters?: Record<string, any>;
20
+ onFilterChange?: (filters: Record<string, any>) => void;
21
+ pagination?: {
22
+ page: number;
23
+ pageSize: number;
24
+ total: number;
25
+ };
26
+ onPageChange?: (page: number) => void;
17
27
  }
18
28
  declare function DataViewRenderer({
19
29
  spec,
@@ -25,8 +35,14 @@ declare function DataViewRenderer({
25
35
  onRowClick,
26
36
  headerActions,
27
37
  emptyState,
28
- footer
29
- }: DataViewRendererProps): react_jsx_runtime102.JSX.Element;
38
+ footer,
39
+ search,
40
+ onSearchChange,
41
+ filters,
42
+ onFilterChange,
43
+ pagination,
44
+ onPageChange
45
+ }: DataViewRendererProps): react_jsx_runtime38.JSX.Element;
30
46
  //#endregion
31
47
  export { DataViewRenderer, DataViewRendererProps };
32
48
  //# sourceMappingURL=DataViewRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewRenderer.d.ts","names":[],"sources":["../../../src/components/data-view/DataViewRenderer.tsx"],"sourcesContent":[],"mappings":";;;;;UAYiB,qBAAA;QACT;UACE;EAFO,IAAA,CAAA,EAGR,MAHQ,CAAA,MAAA,EAAA,OAAqB,CAAA,GAAA,IAAA;EAC9B,SAAA,CAAA,EAAA,MAAA;EACE,aAAA,CAAA,EAAA,CAAA,IAAA,EAGe,MAHf,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAG2C,OAAA,CAAM,SAHjD;EACD,QAAA,CAAA,EAAA,CAAA,IAAA,EAGW,MAHX,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAEgB,UAAA,CAAA,EAAA,CAAA,IAAA,EAEH,MAFG,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAA4B,aAAM,CAAA,EAGzC,OAAA,CAAM,SAHmC;EACvC,UAAA,CAAA,EAGL,OAAA,CAAM,SAHD;EACE,MAAA,CAAA,EAGX,OAAA,CAAM,SAHK;;AAEP,iBAIC,gBAAA,CAJK;EAAA,IAAA;EAAA,KAAA;EAAA,IAAA;EAAA,SAAA;EAAA,aAAA;EAAA,QAAA;EAAA,UAAA;EAAA,aAAA;EAAA,UAAA;EAAA;AAAA,CAAA,EAelB,qBAfkB,CAAA,EAeG,oBAAA,CAAA,GAAA,CAAA,OAfH"}
1
+ {"version":3,"file":"DataViewRenderer.d.ts","names":[],"sources":["../../../src/components/data-view/DataViewRenderer.tsx"],"sourcesContent":[],"mappings":";;;;;UAsBiB,qBAAA;QACT;UACE;EAFO,IAAA,CAAA,EAGR,MAHQ,CAAA,MAAA,EAAA,OAAqB,CAAA,GAAA,IAAA;EAC9B,SAAA,CAAA,EAAA,MAAA;EACE,aAAA,CAAA,EAAA,CAAA,IAAA,EAGe,MAHf,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAG2C,OAAA,CAAM,SAHjD;EACD,QAAA,CAAA,EAAA,CAAA,IAAA,EAGW,MAHX,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAEgB,UAAA,CAAA,EAAA,CAAA,IAAA,EAEH,MAFG,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,IAAA;EAA4B,aAAM,CAAA,EAGzC,OAAA,CAAM,SAHmC;EACvC,UAAA,CAAA,EAGL,OAAA,CAAM,SAHD;EACE,MAAA,CAAA,EAGX,OAAA,CAAM,SAHK;EACJ,MAAM,CAAA,EAAA,MAAA;EACT,cAAM,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EACV,OAAM,CAAA,EAKL,MALK,CAAA,MAAA,EAAA,GAAA,CAAA;EAKL,cAAA,CAAA,EAAA,CAAA,OAAA,EACiB,MADjB,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA;EACiB,UAAA,CAAA,EAAA;IAAM,IAAA,EAAA,MAAA;IAWnB,QAAA,EAAA,MAAgB;IAC9B,KAAA,EAAA,MAAA;EACA,CAAA;EACA,YAAA,CAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;AAEA,iBALc,gBAAA,CAKd;EAAA,IAAA;EAAA,KAAA;EAAA,IAAA;EAAA,SAAA;EAAA,aAAA;EAAA,QAAA;EAAA,UAAA;EAAA,aAAA;EAAA,UAAA;EAAA,MAAA;EAAA,MAAA;EAAA,cAAA;EAAA,OAAA;EAAA,cAAA;EAAA,UAAA;EAAA;AAAA,CAAA,EAYC,qBAZD,CAAA,EAYsB,mBAAA,CAAA,GAAA,CAAA,OAZtB"}
@@ -1,67 +1,145 @@
1
1
  'use client';
2
2
 
3
-
3
+ import { FiltersToolbar } from "../molecules/FiltersToolbar.js";
4
4
  import { DataViewList } from "./DataViewList.js";
5
5
  import { DataViewTable } from "./DataViewTable.js";
6
6
  import { DataViewDetail } from "./DataViewDetail.js";
7
- import "react";
8
- import { jsx } from "react/jsx-runtime";
7
+ import * as React$1 from "react";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ import { Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "@lssm/lib.ui-kit-web/ui/pagination";
9
10
 
10
11
  //#region src/components/data-view/DataViewRenderer.tsx
11
- function DataViewRenderer({ spec, items = [], item = null, className, renderActions, onSelect, onRowClick, headerActions, emptyState, footer }) {
12
- switch (spec.view.kind) {
13
- case "list": return /* @__PURE__ */ jsx(DataViewList, {
14
- spec,
15
- items,
16
- className,
17
- renderActions,
18
- onSelect,
19
- emptyState
20
- });
21
- case "table": return /* @__PURE__ */ jsx(DataViewTable, {
22
- spec,
23
- items,
24
- className,
25
- onRowClick,
26
- emptyState,
27
- headerActions,
28
- footer
29
- });
30
- case "detail": return /* @__PURE__ */ jsx(DataViewDetail, {
31
- spec,
32
- item,
33
- className,
34
- emptyState,
35
- headerActions
36
- });
37
- case "grid": {
38
- const grid = spec.view;
39
- const listView = {
40
- kind: "list",
41
- layout: "card",
42
- fields: grid.fields,
43
- filters: grid.filters,
44
- actions: grid.actions,
45
- primaryField: grid.primaryField,
46
- secondaryFields: grid.secondaryFields
47
- };
48
- return /* @__PURE__ */ jsx(DataViewList, {
49
- spec: {
50
- ...spec,
51
- view: listView
52
- },
12
+ function DataViewRenderer({ spec, items = [], item = null, className, renderActions, onSelect, onRowClick, headerActions, emptyState, footer, search, onSearchChange, filters, onFilterChange, pagination, onPageChange }) {
13
+ const viewContent = React$1.useMemo(() => {
14
+ switch (spec.view.kind) {
15
+ case "list": return /* @__PURE__ */ jsx(DataViewList, {
16
+ spec,
53
17
  items,
54
18
  className,
55
19
  renderActions,
56
20
  onSelect,
57
21
  emptyState
58
22
  });
23
+ case "table": return /* @__PURE__ */ jsx(DataViewTable, {
24
+ spec,
25
+ items,
26
+ className,
27
+ onRowClick,
28
+ emptyState,
29
+ headerActions,
30
+ footer
31
+ });
32
+ case "detail": return /* @__PURE__ */ jsx(DataViewDetail, {
33
+ spec,
34
+ item,
35
+ className,
36
+ emptyState,
37
+ headerActions
38
+ });
39
+ case "grid": {
40
+ const grid = spec.view;
41
+ const listView = {
42
+ kind: "list",
43
+ layout: "card",
44
+ fields: grid.fields,
45
+ filters: grid.filters,
46
+ actions: grid.actions,
47
+ primaryField: grid.primaryField,
48
+ secondaryFields: grid.secondaryFields
49
+ };
50
+ return /* @__PURE__ */ jsx(DataViewList, {
51
+ spec: {
52
+ ...spec,
53
+ view: listView
54
+ },
55
+ items,
56
+ className,
57
+ renderActions,
58
+ onSelect,
59
+ emptyState
60
+ });
61
+ }
62
+ default: return /* @__PURE__ */ jsx("div", {
63
+ className,
64
+ children: "Unsupported data view kind"
65
+ });
59
66
  }
60
- default: return /* @__PURE__ */ jsx("div", {
61
- className,
62
- children: "Unsupported data view kind"
63
- });
64
- }
67
+ }, [
68
+ spec,
69
+ items,
70
+ item,
71
+ className,
72
+ renderActions,
73
+ onSelect,
74
+ onRowClick,
75
+ headerActions,
76
+ emptyState,
77
+ footer
78
+ ]);
79
+ if (!(spec.view.kind === "list" || spec.view.kind === "table" || spec.view.kind === "grid")) return /* @__PURE__ */ jsx(Fragment, { children: viewContent });
80
+ return /* @__PURE__ */ jsxs("div", {
81
+ className: "space-y-4",
82
+ children: [
83
+ (spec.view.filters?.length || onSearchChange) && /* @__PURE__ */ jsx(FiltersToolbar, {
84
+ searchValue: search,
85
+ onSearchChange,
86
+ searchPlaceholder: "Search...",
87
+ activeChips: filters ? Object.entries(filters).map(([key, value]) => ({
88
+ key,
89
+ label: `${key}: ${value}`,
90
+ onRemove: () => {
91
+ const newFilters = { ...filters };
92
+ delete newFilters[key];
93
+ onFilterChange?.(newFilters);
94
+ }
95
+ })) : [],
96
+ onClearAll: filters && Object.keys(filters).length > 0 ? () => onFilterChange?.({}) : void 0,
97
+ right: headerActions
98
+ }),
99
+ viewContent,
100
+ pagination && pagination.total > 0 && /* @__PURE__ */ jsxs("div", {
101
+ className: "py-4",
102
+ children: [/* @__PURE__ */ jsx(Pagination, { children: /* @__PURE__ */ jsxs(PaginationContent, { children: [
103
+ /* @__PURE__ */ jsx(PaginationItem, { children: /* @__PURE__ */ jsx(PaginationPrevious, {
104
+ href: "#",
105
+ onClick: (e) => {
106
+ e.preventDefault();
107
+ if (pagination.page > 1) onPageChange?.(pagination.page - 1);
108
+ },
109
+ "aria-disabled": pagination.page <= 1,
110
+ className: pagination.page <= 1 ? "pointer-events-none opacity-50" : ""
111
+ }) }),
112
+ /* @__PURE__ */ jsx(PaginationItem, { children: /* @__PURE__ */ jsx(PaginationLink, {
113
+ href: "#",
114
+ isActive: true,
115
+ children: pagination.page
116
+ }) }),
117
+ /* @__PURE__ */ jsx(PaginationItem, { children: /* @__PURE__ */ jsx(PaginationNext, {
118
+ href: "#",
119
+ onClick: (e) => {
120
+ e.preventDefault();
121
+ const totalPages = Math.ceil(pagination.total / pagination.pageSize);
122
+ if (pagination.page < totalPages) onPageChange?.(pagination.page + 1);
123
+ },
124
+ "aria-disabled": pagination.page >= Math.ceil(pagination.total / pagination.pageSize),
125
+ className: pagination.page >= Math.ceil(pagination.total / pagination.pageSize) ? "pointer-events-none opacity-50" : ""
126
+ }) })
127
+ ] }) }), /* @__PURE__ */ jsxs("div", {
128
+ className: "text-muted-foreground mt-2 text-center text-sm",
129
+ children: [
130
+ "Page ",
131
+ pagination.page,
132
+ " of",
133
+ " ",
134
+ Math.ceil(pagination.total / pagination.pageSize),
135
+ " (",
136
+ pagination.total,
137
+ " items)"
138
+ ]
139
+ })]
140
+ })
141
+ ]
142
+ });
65
143
  }
66
144
 
67
145
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewRenderer.js","names":["listView: DataViewListConfig"],"sources":["../../../src/components/data-view/DataViewRenderer.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type {\n DataViewGridConfig,\n DataViewListConfig,\n DataViewSpec,\n} from '@lssm/lib.contracts/data-views';\nimport { DataViewList } from './DataViewList';\nimport { DataViewTable } from './DataViewTable';\nimport { DataViewDetail } from './DataViewDetail';\n\nexport interface DataViewRendererProps {\n spec: DataViewSpec;\n items?: Record<string, unknown>[];\n item?: Record<string, unknown> | null;\n className?: string;\n renderActions?: (item: Record<string, unknown>) => React.ReactNode;\n onSelect?: (item: Record<string, unknown>) => void;\n onRowClick?: (item: Record<string, unknown>) => void;\n headerActions?: React.ReactNode;\n emptyState?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nexport function DataViewRenderer({\n spec,\n items = [],\n item = null,\n className,\n renderActions,\n onSelect,\n onRowClick,\n headerActions,\n emptyState,\n footer,\n}: DataViewRendererProps) {\n switch (spec.view.kind) {\n case 'list':\n return (\n <DataViewList\n spec={spec}\n items={items}\n className={className}\n renderActions={renderActions}\n onSelect={onSelect}\n emptyState={emptyState}\n />\n );\n case 'table':\n return (\n <DataViewTable\n spec={spec}\n items={items}\n className={className}\n onRowClick={onRowClick}\n emptyState={emptyState}\n headerActions={headerActions}\n footer={footer}\n />\n );\n case 'detail':\n return (\n <DataViewDetail\n spec={spec}\n item={item}\n className={className}\n emptyState={emptyState}\n headerActions={headerActions}\n />\n );\n case 'grid': {\n const grid = spec.view as DataViewGridConfig;\n const listView: DataViewListConfig = {\n kind: 'list',\n layout: 'card',\n fields: grid.fields,\n filters: grid.filters,\n actions: grid.actions,\n primaryField: grid.primaryField,\n secondaryFields: grid.secondaryFields,\n };\n const listSpec = {\n ...spec,\n view: listView,\n } satisfies DataViewSpec;\n return (\n <DataViewList\n spec={listSpec}\n items={items}\n className={className}\n renderActions={renderActions}\n onSelect={onSelect}\n emptyState={emptyState}\n />\n );\n }\n default:\n return <div className={className}>Unsupported data view kind</div>;\n }\n}\n"],"mappings":";;;;;;;;;;AAyBA,SAAgB,iBAAiB,EAC/B,MACA,QAAQ,EAAE,EACV,OAAO,MACP,WACA,eACA,UACA,YACA,eACA,YACA,UACwB;AACxB,SAAQ,KAAK,KAAK,MAAlB;EACE,KAAK,OACH,QACE,oBAAC;GACO;GACC;GACI;GACI;GACL;GACE;IACZ;EAEN,KAAK,QACH,QACE,oBAAC;GACO;GACC;GACI;GACC;GACA;GACG;GACP;IACR;EAEN,KAAK,SACH,QACE,oBAAC;GACO;GACA;GACK;GACC;GACG;IACf;EAEN,KAAK,QAAQ;GACX,MAAM,OAAO,KAAK;GAClB,MAAMA,WAA+B;IACnC,MAAM;IACN,QAAQ;IACR,QAAQ,KAAK;IACb,SAAS,KAAK;IACd,SAAS,KAAK;IACd,cAAc,KAAK;IACnB,iBAAiB,KAAK;IACvB;AAKD,UACE,oBAAC;IACC,MANa;KACf,GAAG;KACH,MAAM;KACP;IAIU;IACI;IACI;IACL;IACE;KACZ;;EAGN,QACE,QAAO,oBAAC;GAAe;aAAW;IAAgC"}
1
+ {"version":3,"file":"DataViewRenderer.js","names":["React","listView: DataViewListConfig"],"sources":["../../../src/components/data-view/DataViewRenderer.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type {\n DataViewGridConfig,\n DataViewListConfig,\n DataViewSpec,\n} from '@lssm/lib.contracts/data-views';\nimport { DataViewList } from './DataViewList';\nimport { DataViewTable } from './DataViewTable';\nimport { DataViewDetail } from './DataViewDetail';\nimport { FiltersToolbar } from '../molecules/FiltersToolbar';\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n PaginationEllipsis,\n} from '@lssm/lib.ui-kit-web/ui/pagination';\n\nexport interface DataViewRendererProps {\n spec: DataViewSpec;\n items?: Record<string, unknown>[];\n item?: Record<string, unknown> | null;\n className?: string;\n renderActions?: (item: Record<string, unknown>) => React.ReactNode;\n onSelect?: (item: Record<string, unknown>) => void;\n onRowClick?: (item: Record<string, unknown>) => void;\n headerActions?: React.ReactNode;\n emptyState?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Filters & Search\n search?: string;\n onSearchChange?: (value: string) => void;\n filters?: Record<string, any>;\n onFilterChange?: (filters: Record<string, any>) => void;\n\n // Pagination\n pagination?: {\n page: number;\n pageSize: number;\n total: number;\n };\n onPageChange?: (page: number) => void;\n}\n\nexport function DataViewRenderer({\n spec,\n items = [],\n item = null,\n className,\n renderActions,\n onSelect,\n onRowClick,\n headerActions,\n emptyState,\n footer,\n search,\n onSearchChange,\n filters,\n onFilterChange,\n pagination,\n onPageChange,\n}: DataViewRendererProps) {\n const viewContent = React.useMemo(() => {\n switch (spec.view.kind) {\n case 'list':\n return (\n <DataViewList\n spec={spec}\n items={items}\n className={className}\n renderActions={renderActions}\n onSelect={onSelect}\n emptyState={emptyState}\n />\n );\n case 'table':\n return (\n <DataViewTable\n spec={spec}\n items={items}\n className={className}\n onRowClick={onRowClick}\n emptyState={emptyState}\n headerActions={headerActions}\n footer={footer}\n />\n );\n case 'detail':\n return (\n <DataViewDetail\n spec={spec}\n item={item}\n className={className}\n emptyState={emptyState}\n headerActions={headerActions}\n />\n );\n case 'grid': {\n const grid = spec.view as DataViewGridConfig;\n const listView: DataViewListConfig = {\n kind: 'list',\n layout: 'card',\n fields: grid.fields,\n filters: grid.filters,\n actions: grid.actions,\n primaryField: grid.primaryField,\n secondaryFields: grid.secondaryFields,\n };\n const listSpec = {\n ...spec,\n view: listView,\n } satisfies DataViewSpec;\n return (\n <DataViewList\n spec={listSpec}\n items={items}\n className={className}\n renderActions={renderActions}\n onSelect={onSelect}\n emptyState={emptyState}\n />\n );\n }\n default:\n return <div className={className}>Unsupported data view kind</div>;\n }\n }, [\n spec,\n items,\n item,\n className,\n renderActions,\n onSelect,\n onRowClick,\n headerActions,\n emptyState,\n footer,\n ]);\n\n // Only render toolbar/pagination if it's a collection view\n const isCollection =\n spec.view.kind === 'list' ||\n spec.view.kind === 'table' ||\n spec.view.kind === 'grid';\n\n if (!isCollection) {\n return <>{viewContent}</>;\n }\n\n return (\n <div className=\"space-y-4\">\n {(spec.view.filters?.length || onSearchChange) && (\n <FiltersToolbar\n searchValue={search}\n onSearchChange={onSearchChange}\n searchPlaceholder=\"Search...\"\n activeChips={\n filters\n ? Object.entries(filters).map(([key, value]) => ({\n key,\n label: `${key}: ${value}`,\n onRemove: () => {\n const newFilters = { ...filters };\n delete newFilters[key];\n onFilterChange?.(newFilters);\n },\n }))\n : []\n }\n onClearAll={\n filters && Object.keys(filters).length > 0\n ? () => onFilterChange?.({})\n : undefined\n }\n right={headerActions}\n >\n {/* Render filter dropdowns here if needed */}\n </FiltersToolbar>\n )}\n\n {viewContent}\n\n {pagination && pagination.total > 0 && (\n <div className=\"py-4\">\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (pagination.page > 1) {\n onPageChange?.(pagination.page - 1);\n }\n }}\n aria-disabled={pagination.page <= 1}\n className={\n pagination.page <= 1 ? 'pointer-events-none opacity-50' : ''\n }\n />\n </PaginationItem>\n\n {/* Simplified pagination: show current page */}\n <PaginationItem>\n <PaginationLink href=\"#\" isActive>\n {pagination.page}\n </PaginationLink>\n </PaginationItem>\n\n <PaginationItem>\n <PaginationNext\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n const totalPages = Math.ceil(\n pagination.total / pagination.pageSize\n );\n if (pagination.page < totalPages) {\n onPageChange?.(pagination.page + 1);\n }\n }}\n aria-disabled={\n pagination.page >=\n Math.ceil(pagination.total / pagination.pageSize)\n }\n className={\n pagination.page >=\n Math.ceil(pagination.total / pagination.pageSize)\n ? 'pointer-events-none opacity-50'\n : ''\n }\n />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n <div className=\"text-muted-foreground mt-2 text-center text-sm\">\n Page {pagination.page} of{' '}\n {Math.ceil(pagination.total / pagination.pageSize)} (\n {pagination.total} items)\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AAiDA,SAAgB,iBAAiB,EAC/B,MACA,QAAQ,EAAE,EACV,OAAO,MACP,WACA,eACA,UACA,YACA,eACA,YACA,QACA,QACA,gBACA,SACA,gBACA,YACA,gBACwB;CACxB,MAAM,cAAcA,QAAM,cAAc;AACtC,UAAQ,KAAK,KAAK,MAAlB;GACE,KAAK,OACH,QACE,oBAAC;IACO;IACC;IACI;IACI;IACL;IACE;KACZ;GAEN,KAAK,QACH,QACE,oBAAC;IACO;IACC;IACI;IACC;IACA;IACG;IACP;KACR;GAEN,KAAK,SACH,QACE,oBAAC;IACO;IACA;IACK;IACC;IACG;KACf;GAEN,KAAK,QAAQ;IACX,MAAM,OAAO,KAAK;IAClB,MAAMC,WAA+B;KACnC,MAAM;KACN,QAAQ;KACR,QAAQ,KAAK;KACb,SAAS,KAAK;KACd,SAAS,KAAK;KACd,cAAc,KAAK;KACnB,iBAAiB,KAAK;KACvB;AAKD,WACE,oBAAC;KACC,MANa;MACf,GAAG;MACH,MAAM;MACP;KAIU;KACI;KACI;KACL;KACE;MACZ;;GAGN,QACE,QAAO,oBAAC;IAAe;cAAW;KAAgC;;IAErE;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAQF,KAAI,EAJF,KAAK,KAAK,SAAS,UACnB,KAAK,KAAK,SAAS,WACnB,KAAK,KAAK,SAAS,QAGnB,QAAO,0CAAG,cAAe;AAG3B,QACE,qBAAC;EAAI,WAAU;;IACX,KAAK,KAAK,SAAS,UAAU,mBAC7B,oBAAC;IACC,aAAa;IACG;IAChB,mBAAkB;IAClB,aACE,UACI,OAAO,QAAQ,QAAQ,CAAC,KAAK,CAAC,KAAK,YAAY;KAC7C;KACA,OAAO,GAAG,IAAI,IAAI;KAClB,gBAAgB;MACd,MAAM,aAAa,EAAE,GAAG,SAAS;AACjC,aAAO,WAAW;AAClB,uBAAiB,WAAW;;KAE/B,EAAE,GACH,EAAE;IAER,YACE,WAAW,OAAO,KAAK,QAAQ,CAAC,SAAS,UAC/B,iBAAiB,EAAE,CAAC,GAC1B;IAEN,OAAO;KAGQ;GAGlB;GAEA,cAAc,WAAW,QAAQ,KAChC,qBAAC;IAAI,WAAU;eACb,oBAAC,wBACC,qBAAC;KACC,oBAAC,4BACC,oBAAC;MACC,MAAK;MACL,UAAU,MAAM;AACd,SAAE,gBAAgB;AAClB,WAAI,WAAW,OAAO,EACpB,gBAAe,WAAW,OAAO,EAAE;;MAGvC,iBAAe,WAAW,QAAQ;MAClC,WACE,WAAW,QAAQ,IAAI,mCAAmC;OAE5D,GACa;KAGjB,oBAAC,4BACC,oBAAC;MAAe,MAAK;MAAI;gBACtB,WAAW;OACG,GACF;KAEjB,oBAAC,4BACC,oBAAC;MACC,MAAK;MACL,UAAU,MAAM;AACd,SAAE,gBAAgB;OAClB,MAAM,aAAa,KAAK,KACtB,WAAW,QAAQ,WAAW,SAC/B;AACD,WAAI,WAAW,OAAO,WACpB,gBAAe,WAAW,OAAO,EAAE;;MAGvC,iBACE,WAAW,QACX,KAAK,KAAK,WAAW,QAAQ,WAAW,SAAS;MAEnD,WACE,WAAW,QACX,KAAK,KAAK,WAAW,QAAQ,WAAW,SAAS,GAC7C,mCACA;OAEN,GACa;QACC,GACT,EACb,qBAAC;KAAI,WAAU;;MAAiD;MACxD,WAAW;MAAK;MAAI;MACzB,KAAK,KAAK,WAAW,QAAQ,WAAW,SAAS;MAAC;MAClD,WAAW;MAAM;;MACd;KACF;;GAEJ"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime32 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime39 from "react/jsx-runtime";
3
3
  import { DataViewSpec } from "@lssm/lib.contracts/data-views";
4
4
 
5
5
  //#region src/components/data-view/DataViewTable.d.ts
@@ -20,7 +20,7 @@ declare function DataViewTable({
20
20
  emptyState,
21
21
  headerActions,
22
22
  footer
23
- }: DataViewTableProps): react_jsx_runtime32.JSX.Element;
23
+ }: DataViewTableProps): react_jsx_runtime39.JSX.Element;
24
24
  //#endregion
25
25
  export { DataViewTable, DataViewTableProps };
26
26
  //# sourceMappingURL=DataViewTable.d.ts.map