@vamos-ui/react 0.0.0-stage → 0.2.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 (665) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +27 -2
  3. package/dist/blocks/block-heading.d.ts +29 -0
  4. package/dist/blocks/block-heading.js +39 -0
  5. package/dist/blocks/block-image.d.ts +52 -0
  6. package/dist/blocks/block-image.js +48 -0
  7. package/dist/blocks/block-link.d.ts +30 -0
  8. package/dist/blocks/block-link.js +36 -0
  9. package/dist/blocks/create-blocks.d.ts +54 -0
  10. package/dist/blocks/create-blocks.js +52 -0
  11. package/dist/blocks/index.d.ts +55 -0
  12. package/dist/blocks/index.js +59 -0
  13. package/dist/blocks/json-ld.d.ts +18 -0
  14. package/dist/blocks/json-ld.js +44 -0
  15. package/dist/blocks/labels.d.ts +20 -0
  16. package/dist/blocks/labels.js +43 -0
  17. package/dist/blocks/rich-text.d.ts +36 -0
  18. package/dist/blocks/rich-text.js +106 -0
  19. package/dist/blocks/schema/define-block.d.ts +151 -0
  20. package/dist/blocks/schema/define-block.js +120 -0
  21. package/dist/blocks/schema/emphasis.d.ts +17 -0
  22. package/dist/blocks/schema/emphasis.js +69 -0
  23. package/dist/blocks/schema/fields.d.ts +497 -0
  24. package/dist/blocks/schema/fields.js +240 -0
  25. package/dist/blocks/schema/icons.d.ts +2 -0
  26. package/dist/blocks/schema/icons.js +26 -0
  27. package/dist/blocks/schema/index.d.ts +18 -0
  28. package/dist/blocks/schema/index.js +21 -0
  29. package/dist/blocks/schema/lint-types.d.ts +16 -0
  30. package/dist/blocks/schema/lint-types.js +2 -0
  31. package/dist/blocks/schema/lint.d.ts +32 -0
  32. package/dist/blocks/schema/lint.js +164 -0
  33. package/dist/blocks/schema/localize.d.ts +20 -0
  34. package/dist/blocks/schema/localize.js +29 -0
  35. package/dist/blocks/schema/localized.d.ts +25 -0
  36. package/dist/blocks/schema/localized.js +53 -0
  37. package/dist/blocks/schema/migrate.d.ts +24 -0
  38. package/dist/blocks/schema/migrate.js +75 -0
  39. package/dist/blocks/schema/nodes.d.ts +196 -0
  40. package/dist/blocks/schema/nodes.js +78 -0
  41. package/dist/blocks/schema/rich-doc-schema.d.ts +32 -0
  42. package/dist/blocks/schema/rich-doc-schema.js +66 -0
  43. package/dist/blocks/schema/rich-doc.d.ts +90 -0
  44. package/dist/blocks/schema/rich-doc.js +62 -0
  45. package/dist/blocks/schema/safety.d.ts +20 -0
  46. package/dist/blocks/schema/safety.js +49 -0
  47. package/dist/blocks/schema/types.d.ts +172 -0
  48. package/dist/blocks/schema/types.js +3 -0
  49. package/dist/blocks/schema/validate.d.ts +17 -0
  50. package/dist/blocks/schema/validate.js +32 -0
  51. package/dist/blocks/schema/walk.d.ts +22 -0
  52. package/dist/blocks/schema/walk.js +60 -0
  53. package/dist/blocks/section-header.d.ts +38 -0
  54. package/dist/blocks/section-header.js +22 -0
  55. package/dist/blocks/section.d.ts +59 -0
  56. package/dist/blocks/section.js +66 -0
  57. package/dist/blocks/site/_kit-1.d.ts +100 -0
  58. package/dist/blocks/site/_kit-1.js +135 -0
  59. package/dist/blocks/site/_site-icon-1.d.ts +6 -0
  60. package/dist/blocks/site/_site-icon-1.js +15 -0
  61. package/dist/blocks/site/announcement-bar.d.ts +42 -0
  62. package/dist/blocks/site/announcement-bar.js +38 -0
  63. package/dist/blocks/site/announcement-dismiss.d.ts +18 -0
  64. package/dist/blocks/site/announcement-dismiss.js +28 -0
  65. package/dist/blocks/site/article-layout.d.ts +65 -0
  66. package/dist/blocks/site/article-layout.js +88 -0
  67. package/dist/blocks/site/blog-list.d.ts +79 -0
  68. package/dist/blocks/site/blog-list.js +78 -0
  69. package/dist/blocks/site/comparison-table.d.ts +54 -0
  70. package/dist/blocks/site/comparison-table.js +38 -0
  71. package/dist/blocks/site/consent-banner.d.ts +52 -0
  72. package/dist/blocks/site/consent-banner.js +33 -0
  73. package/dist/blocks/site/contact-dock.d.ts +52 -0
  74. package/dist/blocks/site/contact-dock.js +55 -0
  75. package/dist/blocks/site/contact-form.d.ts +60 -0
  76. package/dist/blocks/site/contact-form.js +45 -0
  77. package/dist/blocks/site/cta-booking.d.ts +43 -0
  78. package/dist/blocks/site/cta-booking.js +69 -0
  79. package/dist/blocks/site/cta.d.ts +74 -0
  80. package/dist/blocks/site/cta.js +112 -0
  81. package/dist/blocks/site/embed-facade.d.ts +20 -0
  82. package/dist/blocks/site/embed-facade.js +21 -0
  83. package/dist/blocks/site/faq.d.ts +48 -0
  84. package/dist/blocks/site/faq.js +51 -0
  85. package/dist/blocks/site/feature-grid.d.ts +46 -0
  86. package/dist/blocks/site/feature-grid.js +49 -0
  87. package/dist/blocks/site/feature-tabs.d.ts +22 -0
  88. package/dist/blocks/site/feature-tabs.js +11 -0
  89. package/dist/blocks/site/footer.d.ts +68 -0
  90. package/dist/blocks/site/footer.js +61 -0
  91. package/dist/blocks/site/gallery-section.d.ts +42 -0
  92. package/dist/blocks/site/gallery-section.js +47 -0
  93. package/dist/blocks/site/hero-video.d.ts +15 -0
  94. package/dist/blocks/site/hero-video.js +31 -0
  95. package/dist/blocks/site/hero.d.ts +64 -0
  96. package/dist/blocks/site/hero.js +67 -0
  97. package/dist/blocks/site/logo-strip.d.ts +42 -0
  98. package/dist/blocks/site/logo-strip.js +26 -0
  99. package/dist/blocks/site/map-hours.d.ts +83 -0
  100. package/dist/blocks/site/map-hours.js +125 -0
  101. package/dist/blocks/site/media-text.d.ts +45 -0
  102. package/dist/blocks/site/media-text.js +55 -0
  103. package/dist/blocks/site/menu-list.d.ts +74 -0
  104. package/dist/blocks/site/menu-list.js +84 -0
  105. package/dist/blocks/site/navbar-submenu.d.ts +18 -0
  106. package/dist/blocks/site/navbar-submenu.js +51 -0
  107. package/dist/blocks/site/navbar.d.ts +67 -0
  108. package/dist/blocks/site/navbar.js +64 -0
  109. package/dist/blocks/site/not-found.d.ts +40 -0
  110. package/dist/blocks/site/not-found.js +38 -0
  111. package/dist/blocks/site/page-intro.d.ts +46 -0
  112. package/dist/blocks/site/page-intro.js +44 -0
  113. package/dist/blocks/site/pricing-table.d.ts +67 -0
  114. package/dist/blocks/site/pricing-table.js +82 -0
  115. package/dist/blocks/site/process.d.ts +36 -0
  116. package/dist/blocks/site/process.js +41 -0
  117. package/dist/blocks/site/registry-1.d.ts +720 -0
  118. package/dist/blocks/site/registry-1.js +783 -0
  119. package/dist/blocks/site/registry-2.d.ts +914 -0
  120. package/dist/blocks/site/registry-2.js +563 -0
  121. package/dist/blocks/site/rich-text-section.d.ts +34 -0
  122. package/dist/blocks/site/rich-text-section.js +32 -0
  123. package/dist/blocks/site/shared/brand-icons.d.ts +21 -0
  124. package/dist/blocks/site/shared/brand-icons.js +56 -0
  125. package/dist/blocks/site/shared/consent-gate.d.ts +41 -0
  126. package/dist/blocks/site/shared/consent-gate.js +43 -0
  127. package/dist/blocks/site/shared/consent-island.d.ts +38 -0
  128. package/dist/blocks/site/shared/consent-island.js +63 -0
  129. package/dist/blocks/site/shared/consent.d.ts +49 -0
  130. package/dist/blocks/site/shared/consent.js +130 -0
  131. package/dist/blocks/site/shared/contact-form-island.d.ts +41 -0
  132. package/dist/blocks/site/shared/contact-form-island.js +100 -0
  133. package/dist/blocks/site/shared/copy-link.d.ts +10 -0
  134. package/dist/blocks/site/shared/copy-link.js +25 -0
  135. package/dist/blocks/site/shared/dock-avoid.d.ts +15 -0
  136. package/dist/blocks/site/shared/dock-avoid.js +107 -0
  137. package/dist/blocks/site/shared/dock-hours.d.ts +13 -0
  138. package/dist/blocks/site/shared/dock-hours.js +25 -0
  139. package/dist/blocks/site/shared/gallery-lightbox.d.ts +12 -0
  140. package/dist/blocks/site/shared/gallery-lightbox.js +10 -0
  141. package/dist/blocks/site/shared/island-keys.d.ts +10 -0
  142. package/dist/blocks/site/shared/island-keys.js +44 -0
  143. package/dist/blocks/site/shared/kit-2.d.ts +55 -0
  144. package/dist/blocks/site/shared/kit-2.js +84 -0
  145. package/dist/blocks/site/shared/labels-2.d.ts +209 -0
  146. package/dist/blocks/site/shared/labels-2.js +427 -0
  147. package/dist/blocks/site/shared/open-now.d.ts +22 -0
  148. package/dist/blocks/site/shared/open-now.js +27 -0
  149. package/dist/blocks/site/shared/opening-hours.d.ts +117 -0
  150. package/dist/blocks/site/shared/opening-hours.js +245 -0
  151. package/dist/blocks/site/shared/site-accent.d.ts +48 -0
  152. package/dist/blocks/site/shared/site-accent.js +249 -0
  153. package/dist/blocks/site/shared/site-form.d.ts +79 -0
  154. package/dist/blocks/site/shared/site-form.js +111 -0
  155. package/dist/blocks/site/shared/site-routing.d.ts +54 -0
  156. package/dist/blocks/site/shared/site-routing.js +86 -0
  157. package/dist/blocks/site/shared/testimonials-carousel.d.ts +17 -0
  158. package/dist/blocks/site/shared/testimonials-carousel.js +64 -0
  159. package/dist/blocks/site/site-shell.d.ts +97 -0
  160. package/dist/blocks/site/site-shell.js +227 -0
  161. package/dist/blocks/site/stats-band.d.ts +40 -0
  162. package/dist/blocks/site/stats-band.js +41 -0
  163. package/dist/blocks/site/team.d.ts +44 -0
  164. package/dist/blocks/site/team.js +48 -0
  165. package/dist/blocks/site/testimonials.d.ts +68 -0
  166. package/dist/blocks/site/testimonials.js +65 -0
  167. package/dist/blocks/types.d.ts +63 -0
  168. package/dist/blocks/types.js +2 -0
  169. package/dist/business/approval-flow.d.ts +152 -0
  170. package/dist/business/approval-flow.js +221 -0
  171. package/dist/business/export-core.d.ts +55 -0
  172. package/dist/business/export-core.js +101 -0
  173. package/dist/business/export.d.ts +148 -0
  174. package/dist/business/export.js +264 -0
  175. package/dist/business/import-core.d.ts +104 -0
  176. package/dist/business/import-core.js +281 -0
  177. package/dist/business/import-wizard.d.ts +186 -0
  178. package/dist/business/import-wizard.js +401 -0
  179. package/dist/business/index.d.ts +11 -0
  180. package/dist/business/index.js +20 -0
  181. package/dist/business/line-items-core.d.ts +129 -0
  182. package/dist/business/line-items-core.js +183 -0
  183. package/dist/business/line-items.d.ts +119 -0
  184. package/dist/business/line-items.js +299 -0
  185. package/dist/business/multi-step-form.d.ts +131 -0
  186. package/dist/business/multi-step-form.js +337 -0
  187. package/dist/business/permission-core.d.ts +59 -0
  188. package/dist/business/permission-core.js +99 -0
  189. package/dist/business/permission-matrix.d.ts +158 -0
  190. package/dist/business/permission-matrix.js +341 -0
  191. package/dist/business/setup-checklist.d.ts +80 -0
  192. package/dist/business/setup-checklist.js +92 -0
  193. package/dist/charts/area-chart.d.ts +35 -0
  194. package/dist/charts/area-chart.js +33 -0
  195. package/dist/charts/bar-chart.d.ts +27 -0
  196. package/dist/charts/bar-chart.js +42 -0
  197. package/dist/charts/bar-list.d.ts +47 -0
  198. package/dist/charts/bar-list.js +60 -0
  199. package/dist/charts/chart-shell.d.ts +173 -0
  200. package/dist/charts/chart-shell.js +205 -0
  201. package/dist/charts/chart.d.ts +73 -0
  202. package/dist/charts/chart.js +106 -0
  203. package/dist/charts/combo-chart.d.ts +29 -0
  204. package/dist/charts/combo-chart.js +47 -0
  205. package/dist/charts/donut-chart.d.ts +33 -0
  206. package/dist/charts/donut-chart.js +113 -0
  207. package/dist/charts/funnel.d.ts +51 -0
  208. package/dist/charts/funnel.js +69 -0
  209. package/dist/charts/gauge.d.ts +62 -0
  210. package/dist/charts/gauge.js +104 -0
  211. package/dist/charts/heatmap.d.ts +81 -0
  212. package/dist/charts/heatmap.js +338 -0
  213. package/dist/charts/index.d.ts +12 -0
  214. package/dist/charts/index.js +14 -0
  215. package/dist/charts/line-chart.d.ts +21 -0
  216. package/dist/charts/line-chart.js +36 -0
  217. package/dist/charts/test-utils.d.ts +2 -0
  218. package/dist/charts/test-utils.js +38 -0
  219. package/dist/charts/utils.d.ts +130 -0
  220. package/dist/charts/utils.js +262 -0
  221. package/dist/components/accordion.d.ts +47 -0
  222. package/dist/components/accordion.js +70 -0
  223. package/dist/components/activity-timeline.d.ts +149 -0
  224. package/dist/components/activity-timeline.js +122 -0
  225. package/dist/components/address-field.d.ts +116 -0
  226. package/dist/components/address-field.js +219 -0
  227. package/dist/components/alert-dialog.d.ts +99 -0
  228. package/dist/components/alert-dialog.js +192 -0
  229. package/dist/components/alert.d.ts +42 -0
  230. package/dist/components/alert.js +82 -0
  231. package/dist/components/app-shell.d.ts +159 -0
  232. package/dist/components/app-shell.js +289 -0
  233. package/dist/components/attachment-list.d.ts +96 -0
  234. package/dist/components/attachment-list.js +196 -0
  235. package/dist/components/audit-log.d.ts +150 -0
  236. package/dist/components/audit-log.js +205 -0
  237. package/dist/components/avatar.d.ts +87 -0
  238. package/dist/components/avatar.js +126 -0
  239. package/dist/components/badge.d.ts +41 -0
  240. package/dist/components/badge.js +68 -0
  241. package/dist/components/breadcrumb.d.ts +78 -0
  242. package/dist/components/breadcrumb.js +106 -0
  243. package/dist/components/button-group.d.ts +52 -0
  244. package/dist/components/button-group.js +77 -0
  245. package/dist/components/button.d.ts +58 -0
  246. package/dist/components/button.js +107 -0
  247. package/dist/components/calendar.d.ts +240 -0
  248. package/dist/components/calendar.js +483 -0
  249. package/dist/components/card.d.ts +66 -0
  250. package/dist/components/card.js +76 -0
  251. package/dist/components/carousel.d.ts +170 -0
  252. package/dist/components/carousel.js +348 -0
  253. package/dist/components/checkbox.d.ts +78 -0
  254. package/dist/components/checkbox.js +138 -0
  255. package/dist/components/color-picker.d.ts +112 -0
  256. package/dist/components/color-picker.js +235 -0
  257. package/dist/components/combobox.d.ts +136 -0
  258. package/dist/components/combobox.js +294 -0
  259. package/dist/components/command.d.ts +275 -0
  260. package/dist/components/command.js +493 -0
  261. package/dist/components/comment-thread.d.ts +252 -0
  262. package/dist/components/comment-thread.js +449 -0
  263. package/dist/components/context-menu.d.ts +77 -0
  264. package/dist/components/context-menu.js +82 -0
  265. package/dist/components/currency-input.d.ts +43 -0
  266. package/dist/components/currency-input.js +85 -0
  267. package/dist/components/date-picker.d.ts +141 -0
  268. package/dist/components/date-picker.js +241 -0
  269. package/dist/components/date-range-picker.d.ts +91 -0
  270. package/dist/components/date-range-picker.js +251 -0
  271. package/dist/components/description-list.d.ts +92 -0
  272. package/dist/components/description-list.js +42 -0
  273. package/dist/components/dialog.d.ts +139 -0
  274. package/dist/components/dialog.js +185 -0
  275. package/dist/components/dropdown-menu.d.ts +100 -0
  276. package/dist/components/dropdown-menu.js +102 -0
  277. package/dist/components/editor-layout.d.ts +166 -0
  278. package/dist/components/editor-layout.js +237 -0
  279. package/dist/components/empty-state.d.ts +49 -0
  280. package/dist/components/empty-state.js +68 -0
  281. package/dist/components/entity-card.d.ts +83 -0
  282. package/dist/components/entity-card.js +92 -0
  283. package/dist/components/file-upload.d.ts +256 -0
  284. package/dist/components/file-upload.js +490 -0
  285. package/dist/components/formatted-input.d.ts +177 -0
  286. package/dist/components/formatted-input.js +399 -0
  287. package/dist/components/hierarchy-chart.d.ts +190 -0
  288. package/dist/components/hierarchy-chart.js +890 -0
  289. package/dist/components/hover-card.d.ts +21 -0
  290. package/dist/components/hover-card.js +32 -0
  291. package/dist/components/iban-input.d.ts +38 -0
  292. package/dist/components/iban-input.js +112 -0
  293. package/dist/components/id-input.d.ts +65 -0
  294. package/dist/components/id-input.js +130 -0
  295. package/dist/components/image.d.ts +130 -0
  296. package/dist/components/image.js +168 -0
  297. package/dist/components/input-otp.d.ts +62 -0
  298. package/dist/components/input-otp.js +73 -0
  299. package/dist/components/input.d.ts +141 -0
  300. package/dist/components/input.js +187 -0
  301. package/dist/components/item.d.ts +96 -0
  302. package/dist/components/item.js +113 -0
  303. package/dist/components/kbd.d.ts +64 -0
  304. package/dist/components/kbd.js +119 -0
  305. package/dist/components/list-layout.d.ts +144 -0
  306. package/dist/components/list-layout.js +210 -0
  307. package/dist/components/native-select.d.ts +33 -0
  308. package/dist/components/native-select.js +48 -0
  309. package/dist/components/navigation-menu.d.ts +127 -0
  310. package/dist/components/navigation-menu.js +129 -0
  311. package/dist/components/notification-center.d.ts +164 -0
  312. package/dist/components/notification-center.js +399 -0
  313. package/dist/components/page-header.d.ts +60 -0
  314. package/dist/components/page-header.js +60 -0
  315. package/dist/components/pagination.d.ts +121 -0
  316. package/dist/components/pagination.js +174 -0
  317. package/dist/components/phone-input.d.ts +49 -0
  318. package/dist/components/phone-input.js +266 -0
  319. package/dist/components/popover.d.ts +38 -0
  320. package/dist/components/popover.js +69 -0
  321. package/dist/components/progress.d.ts +79 -0
  322. package/dist/components/progress.js +97 -0
  323. package/dist/components/radio-group.d.ts +43 -0
  324. package/dist/components/radio-group.js +81 -0
  325. package/dist/components/record-detail-layout.d.ts +167 -0
  326. package/dist/components/record-detail-layout.js +233 -0
  327. package/dist/components/record-picker.d.ts +199 -0
  328. package/dist/components/record-picker.js +650 -0
  329. package/dist/components/resizable.d.ts +50 -0
  330. package/dist/components/resizable.js +88 -0
  331. package/dist/components/scroll-area.d.ts +40 -0
  332. package/dist/components/scroll-area.js +56 -0
  333. package/dist/components/select.d.ts +126 -0
  334. package/dist/components/select.js +137 -0
  335. package/dist/components/separator.d.ts +31 -0
  336. package/dist/components/separator.js +41 -0
  337. package/dist/components/settings-layout.d.ts +134 -0
  338. package/dist/components/settings-layout.js +180 -0
  339. package/dist/components/sheet.d.ts +103 -0
  340. package/dist/components/sheet.js +165 -0
  341. package/dist/components/sidebar.d.ts +171 -0
  342. package/dist/components/sidebar.js +421 -0
  343. package/dist/components/signature-pad.d.ts +85 -0
  344. package/dist/components/signature-pad.js +283 -0
  345. package/dist/components/skeleton.d.ts +64 -0
  346. package/dist/components/skeleton.js +53 -0
  347. package/dist/components/slider.d.ts +57 -0
  348. package/dist/components/slider.js +133 -0
  349. package/dist/components/slug-input.d.ts +69 -0
  350. package/dist/components/slug-input.js +201 -0
  351. package/dist/components/sparkline.d.ts +54 -0
  352. package/dist/components/sparkline.js +122 -0
  353. package/dist/components/spinner.d.ts +34 -0
  354. package/dist/components/spinner.js +34 -0
  355. package/dist/components/stat.d.ts +135 -0
  356. package/dist/components/stat.js +130 -0
  357. package/dist/components/status-picker.d.ts +107 -0
  358. package/dist/components/status-picker.js +175 -0
  359. package/dist/components/stepper.d.ts +86 -0
  360. package/dist/components/stepper.js +103 -0
  361. package/dist/components/switch.d.ts +34 -0
  362. package/dist/components/switch.js +70 -0
  363. package/dist/components/table.d.ts +101 -0
  364. package/dist/components/table.js +72 -0
  365. package/dist/components/tabs.d.ts +103 -0
  366. package/dist/components/tabs.js +173 -0
  367. package/dist/components/tag-input.d.ts +77 -0
  368. package/dist/components/tag-input.js +305 -0
  369. package/dist/components/task-list.d.ts +89 -0
  370. package/dist/components/task-list.js +238 -0
  371. package/dist/components/time-picker.d.ts +119 -0
  372. package/dist/components/time-picker.js +399 -0
  373. package/dist/components/toast.d.ts +87 -0
  374. package/dist/components/toast.js +142 -0
  375. package/dist/components/toggle.d.ts +77 -0
  376. package/dist/components/toggle.js +109 -0
  377. package/dist/components/tooltip.d.ts +69 -0
  378. package/dist/components/tooltip.js +105 -0
  379. package/dist/components/top-bar.d.ts +87 -0
  380. package/dist/components/top-bar.js +99 -0
  381. package/dist/components/tree-select.d.ts +89 -0
  382. package/dist/components/tree-select.js +243 -0
  383. package/dist/components/tree-view.d.ts +109 -0
  384. package/dist/components/tree-view.js +170 -0
  385. package/dist/components/typography.d.ts +107 -0
  386. package/dist/components/typography.js +128 -0
  387. package/dist/components/user-picker.d.ts +89 -0
  388. package/dist/components/user-picker.js +162 -0
  389. package/dist/components/version-history.d.ts +191 -0
  390. package/dist/components/version-history.js +431 -0
  391. package/dist/data-table/csv.d.ts +27 -0
  392. package/dist/data-table/csv.js +68 -0
  393. package/dist/data-table/data-table.d.ts +423 -0
  394. package/dist/data-table/data-table.js +1259 -0
  395. package/dist/data-table/filter-bar.d.ts +146 -0
  396. package/dist/data-table/filter-bar.js +569 -0
  397. package/dist/data-table/filter-fns.d.ts +65 -0
  398. package/dist/data-table/filter-fns.js +382 -0
  399. package/dist/data-table/index.d.ts +8 -0
  400. package/dist/data-table/index.js +9 -0
  401. package/dist/data-table/saved-views.d.ts +100 -0
  402. package/dist/data-table/saved-views.js +251 -0
  403. package/dist/data-table/types.d.ts +168 -0
  404. package/dist/data-table/types.js +87 -0
  405. package/dist/data-table/url-state.d.ts +94 -0
  406. package/dist/data-table/url-state.js +303 -0
  407. package/dist/data-table/view-state.d.ts +16 -0
  408. package/dist/data-table/view-state.js +81 -0
  409. package/dist/editor/_test-setup.d.ts +1 -0
  410. package/dist/editor/_test-setup.js +33 -0
  411. package/dist/editor/block-editor.d.ts +137 -0
  412. package/dist/editor/block-editor.js +280 -0
  413. package/dist/editor/commands.d.ts +31 -0
  414. package/dist/editor/commands.js +150 -0
  415. package/dist/editor/context.d.ts +108 -0
  416. package/dist/editor/context.js +30 -0
  417. package/dist/editor/convert.d.ts +66 -0
  418. package/dist/editor/convert.js +567 -0
  419. package/dist/editor/drag-handle.d.ts +10 -0
  420. package/dist/editor/drag-handle.js +69 -0
  421. package/dist/editor/extensions.d.ts +34 -0
  422. package/dist/editor/extensions.js +239 -0
  423. package/dist/editor/index.d.ts +14 -0
  424. package/dist/editor/index.js +17 -0
  425. package/dist/editor/inserter.d.ts +12 -0
  426. package/dist/editor/inserter.js +88 -0
  427. package/dist/editor/inspector.d.ts +17 -0
  428. package/dist/editor/inspector.js +65 -0
  429. package/dist/editor/items.d.ts +62 -0
  430. package/dist/editor/items.js +195 -0
  431. package/dist/editor/labels.d.ts +119 -0
  432. package/dist/editor/labels.js +130 -0
  433. package/dist/editor/markdown.d.ts +14 -0
  434. package/dist/editor/markdown.js +209 -0
  435. package/dist/editor/menus.d.ts +20 -0
  436. package/dist/editor/menus.js +236 -0
  437. package/dist/editor/nodes.d.ts +14 -0
  438. package/dist/editor/nodes.js +201 -0
  439. package/dist/editor/outline.d.ts +11 -0
  440. package/dist/editor/outline.js +52 -0
  441. package/dist/editor/schema-form.d.ts +64 -0
  442. package/dist/editor/schema-form.js +290 -0
  443. package/dist/editor/slash-menu.d.ts +15 -0
  444. package/dist/editor/slash-menu.js +119 -0
  445. package/dist/fonts/catalog.d.ts +53 -0
  446. package/dist/fonts/catalog.js +121 -0
  447. package/dist/fonts/font-picker.d.ts +70 -0
  448. package/dist/fonts/font-picker.js +225 -0
  449. package/dist/fonts/index.d.ts +6 -0
  450. package/dist/fonts/index.js +7 -0
  451. package/dist/fonts/loader.d.ts +66 -0
  452. package/dist/fonts/loader.js +161 -0
  453. package/dist/fonts/pairing-picker.d.ts +31 -0
  454. package/dist/fonts/pairing-picker.js +81 -0
  455. package/dist/fonts/pairings.d.ts +84 -0
  456. package/dist/fonts/pairings.js +149 -0
  457. package/dist/fonts/provider.d.ts +34 -0
  458. package/dist/fonts/provider.js +51 -0
  459. package/dist/form/index.d.ts +1 -0
  460. package/dist/form/index.js +1 -0
  461. package/dist/format/core.d.ts +149 -0
  462. package/dist/format/core.js +357 -0
  463. package/dist/format/index.d.ts +4 -0
  464. package/dist/format/index.js +5 -0
  465. package/dist/format/use-format.d.ts +1 -0
  466. package/dist/format/use-format.js +3 -0
  467. package/dist/index.d.ts +86 -0
  468. package/dist/index.js +87 -0
  469. package/dist/lib/cn.d.ts +3 -0
  470. package/dist/lib/cn.js +16 -0
  471. package/dist/lib/color.d.ts +64 -0
  472. package/dist/lib/color.js +177 -0
  473. package/dist/lib/compose-refs.d.ts +24 -0
  474. package/dist/lib/compose-refs.js +45 -0
  475. package/dist/lib/data-islands.d.ts +194 -0
  476. package/dist/lib/data-islands.js +368 -0
  477. package/dist/lib/date.d.ts +129 -0
  478. package/dist/lib/date.js +386 -0
  479. package/dist/lib/field-context.d.ts +64 -0
  480. package/dist/lib/field-context.js +62 -0
  481. package/dist/lib/floating-arrow.d.ts +18 -0
  482. package/dist/lib/floating-arrow.js +15 -0
  483. package/dist/lib/islands.d.ts +38 -0
  484. package/dist/lib/islands.js +40 -0
  485. package/dist/lib/labels.d.ts +51 -0
  486. package/dist/lib/labels.js +56 -0
  487. package/dist/lib/layer.d.ts +36 -0
  488. package/dist/lib/layer.js +42 -0
  489. package/dist/lib/locale.d.ts +85 -0
  490. package/dist/lib/locale.js +105 -0
  491. package/dist/lib/menu.d.ts +58 -0
  492. package/dist/lib/menu.js +99 -0
  493. package/dist/lib/message-format.d.ts +20 -0
  494. package/dist/lib/message-format.js +116 -0
  495. package/dist/lib/nav.d.ts +132 -0
  496. package/dist/lib/nav.js +178 -0
  497. package/dist/lib/provider.d.ts +100 -0
  498. package/dist/lib/provider.js +105 -0
  499. package/dist/lib/public.d.ts +22 -0
  500. package/dist/lib/public.js +33 -0
  501. package/dist/lib/sr-name.d.ts +18 -0
  502. package/dist/lib/sr-name.js +17 -0
  503. package/dist/lib/text.d.ts +100 -0
  504. package/dist/lib/text.js +233 -0
  505. package/dist/lib/theme-scope.d.ts +58 -0
  506. package/dist/lib/theme-scope.js +59 -0
  507. package/dist/lib/use-async-list.d.ts +60 -0
  508. package/dist/lib/use-async-list.js +119 -0
  509. package/dist/lib/use-container-width.d.ts +19 -0
  510. package/dist/lib/use-container-width.js +39 -0
  511. package/dist/lib/use-controllable-state.d.ts +33 -0
  512. package/dist/lib/use-controllable-state.js +56 -0
  513. package/dist/lib/use-edge-fade.d.ts +13 -0
  514. package/dist/lib/use-edge-fade.js +43 -0
  515. package/dist/lib/use-formatted-input.d.ts +69 -0
  516. package/dist/lib/use-formatted-input.js +152 -0
  517. package/dist/lib/use-hotkeys.d.ts +80 -0
  518. package/dist/lib/use-hotkeys.js +221 -0
  519. package/dist/lib/use-hover-intent.d.ts +44 -0
  520. package/dist/lib/use-hover-intent.js +119 -0
  521. package/dist/lib/use-media-query.d.ts +21 -0
  522. package/dist/lib/use-media-query.js +28 -0
  523. package/dist/lib/use-reduced-motion.d.ts +8 -0
  524. package/dist/lib/use-reduced-motion.js +13 -0
  525. package/dist/lib/use-tree.d.ts +153 -0
  526. package/dist/lib/use-tree.js +534 -0
  527. package/dist/lib/value-format.d.ts +25 -0
  528. package/dist/lib/value-format.js +56 -0
  529. package/dist/lib/variants.d.ts +131 -0
  530. package/dist/lib/variants.js +109 -0
  531. package/dist/locale-data/core/date.d.ts +24 -0
  532. package/dist/locale-data/core/date.js +68 -0
  533. package/dist/locale-data/core/decimal.d.ts +19 -0
  534. package/dist/locale-data/core/decimal.js +79 -0
  535. package/dist/locale-data/core/holidays.d.ts +30 -0
  536. package/dist/locale-data/core/holidays.js +79 -0
  537. package/dist/locale-data/core/iban.d.ts +29 -0
  538. package/dist/locale-data/core/iban.js +74 -0
  539. package/dist/locale-data/core/index.d.ts +7 -0
  540. package/dist/locale-data/core/index.js +6 -0
  541. package/dist/locale-data/core/types.d.ts +173 -0
  542. package/dist/locale-data/core/types.js +6 -0
  543. package/dist/locale-data/core/week-info.d.ts +23 -0
  544. package/dist/locale-data/core/week-info.js +85 -0
  545. package/dist/locale-data/core/working-days.d.ts +27 -0
  546. package/dist/locale-data/core/working-days.js +133 -0
  547. package/dist/locale-data/index.d.ts +2 -0
  548. package/dist/locale-data/index.js +4 -0
  549. package/dist/locale-data/tr/address-tr.json +1 -0
  550. package/dist/locale-data/tr/address.d.ts +23 -0
  551. package/dist/locale-data/tr/address.js +52 -0
  552. package/dist/locale-data/tr/holidays.d.ts +31 -0
  553. package/dist/locale-data/tr/holidays.js +81 -0
  554. package/dist/locale-data/tr/iban.d.ts +21 -0
  555. package/dist/locale-data/tr/iban.js +45 -0
  556. package/dist/locale-data/tr/id.d.ts +36 -0
  557. package/dist/locale-data/tr/id.js +120 -0
  558. package/dist/locale-data/tr/index.d.ts +12 -0
  559. package/dist/locale-data/tr/index.js +33 -0
  560. package/dist/locale-data/tr/kdv.d.ts +91 -0
  561. package/dist/locale-data/tr/kdv.js +222 -0
  562. package/dist/locales/en.d.ts +2102 -0
  563. package/dist/locales/en.js +2088 -0
  564. package/dist/locales/tr.d.ts +2086 -0
  565. package/dist/locales/tr.js +2087 -0
  566. package/dist/media/focal-point.d.ts +42 -0
  567. package/dist/media/focal-point.js +96 -0
  568. package/dist/media/gallery-layout.d.ts +19 -0
  569. package/dist/media/gallery-layout.js +61 -0
  570. package/dist/media/gallery.d.ts +64 -0
  571. package/dist/media/gallery.js +138 -0
  572. package/dist/media/image-cropper.d.ts +86 -0
  573. package/dist/media/image-cropper.js +170 -0
  574. package/dist/media/image-field.d.ts +115 -0
  575. package/dist/media/image-field.js +212 -0
  576. package/dist/media/index.d.ts +19 -0
  577. package/dist/media/index.js +23 -0
  578. package/dist/media/lightbox.d.ts +82 -0
  579. package/dist/media/lightbox.js +171 -0
  580. package/dist/media/link-preview.d.ts +97 -0
  581. package/dist/media/link-preview.js +177 -0
  582. package/dist/media/media-library.d.ts +244 -0
  583. package/dist/media/media-library.js +776 -0
  584. package/dist/media/media-picker.d.ts +96 -0
  585. package/dist/media/media-picker.js +209 -0
  586. package/dist/media/media-provider.d.ts +23 -0
  587. package/dist/media/media-provider.js +44 -0
  588. package/dist/media/media-utils.d.ts +39 -0
  589. package/dist/media/media-utils.js +145 -0
  590. package/dist/media/memory-adapter.d.ts +22 -0
  591. package/dist/media/memory-adapter.js +162 -0
  592. package/dist/media/rest-adapter.d.ts +90 -0
  593. package/dist/media/rest-adapter.js +208 -0
  594. package/dist/media/serp.d.ts +62 -0
  595. package/dist/media/serp.js +108 -0
  596. package/dist/media/test-fixtures.d.ts +3 -0
  597. package/dist/media/test-fixtures.js +37 -0
  598. package/dist/media/types.d.ts +183 -0
  599. package/dist/media/types.js +3 -0
  600. package/dist/media/use-pan-zoom.d.ts +51 -0
  601. package/dist/media/use-pan-zoom.js +156 -0
  602. package/dist/media/use-upload-queue.d.ts +64 -0
  603. package/dist/media/use-upload-queue.js +115 -0
  604. package/dist/media/video-player.d.ts +135 -0
  605. package/dist/media/video-player.js +319 -0
  606. package/dist/next/index.d.ts +42 -0
  607. package/dist/next/index.js +36 -0
  608. package/dist/render/block-renderer.d.ts +56 -0
  609. package/dist/render/block-renderer.js +137 -0
  610. package/dist/render/index.d.ts +6 -0
  611. package/dist/render/index.js +7 -0
  612. package/dist/render/prepare.d.ts +61 -0
  613. package/dist/render/prepare.js +119 -0
  614. package/dist/scheduler/core/duration.d.ts +83 -0
  615. package/dist/scheduler/core/duration.js +174 -0
  616. package/dist/scheduler/core/gantt.d.ts +63 -0
  617. package/dist/scheduler/core/gantt.js +226 -0
  618. package/dist/scheduler/core/index.d.ts +6 -0
  619. package/dist/scheduler/core/index.js +7 -0
  620. package/dist/scheduler/core/layout.d.ts +97 -0
  621. package/dist/scheduler/core/layout.js +249 -0
  622. package/dist/scheduler/core/time-scale.d.ts +89 -0
  623. package/dist/scheduler/core/time-scale.js +173 -0
  624. package/dist/scheduler/gantt.d.ts +125 -0
  625. package/dist/scheduler/gantt.js +532 -0
  626. package/dist/scheduler/index.d.ts +6 -0
  627. package/dist/scheduler/index.js +7 -0
  628. package/dist/scheduler/resource-calendar.d.ts +218 -0
  629. package/dist/scheduler/resource-calendar.js +661 -0
  630. package/dist/scheduler/scheduler.d.ts +168 -0
  631. package/dist/scheduler/scheduler.js +768 -0
  632. package/dist/scheduler/shared.d.ts +63 -0
  633. package/dist/scheduler/shared.js +145 -0
  634. package/dist/scheduler/time-tracker.d.ts +138 -0
  635. package/dist/scheduler/time-tracker.js +403 -0
  636. package/dist/sortable/core.d.ts +67 -0
  637. package/dist/sortable/core.js +167 -0
  638. package/dist/sortable/index.d.ts +8 -0
  639. package/dist/sortable/index.js +10 -0
  640. package/dist/sortable/kanban-core.d.ts +70 -0
  641. package/dist/sortable/kanban-core.js +67 -0
  642. package/dist/sortable/kanban.d.ts +147 -0
  643. package/dist/sortable/kanban.js +472 -0
  644. package/dist/sortable/sortable-list.d.ts +71 -0
  645. package/dist/sortable/sortable-list.js +76 -0
  646. package/dist/sortable/sortable-tree.d.ts +101 -0
  647. package/dist/sortable/sortable-tree.js +450 -0
  648. package/dist/sortable/sortable.d.ts +188 -0
  649. package/dist/sortable/sortable.js +485 -0
  650. package/dist/sortable/use-pointer-drag.d.ts +75 -0
  651. package/dist/sortable/use-pointer-drag.js +173 -0
  652. package/dist/sortable/use-time-scale.d.ts +11 -0
  653. package/dist/sortable/use-time-scale.js +19 -0
  654. package/dist/styles/base.css +51 -0
  655. package/dist/styles/blocks.css +949 -0
  656. package/dist/styles/calendar.css +642 -0
  657. package/dist/styles/charts.css +264 -0
  658. package/dist/styles/data.css +474 -0
  659. package/dist/styles/editors.css +1022 -0
  660. package/dist/styles/forms.css +406 -0
  661. package/dist/styles/media.css +515 -0
  662. package/dist/styles/navigation.css +293 -0
  663. package/dist/styles/overlays.css +244 -0
  664. package/dist/styles.css +742 -0
  665. package/package.json +156 -4
@@ -0,0 +1,38 @@
1
+ // Test helpers for the charts subpath: give Recharts a measurable box in jsdom.
2
+ import { vi } from "vitest";
3
+ /** Makes every ResizeObserver report a fixed size, so ResponsiveContainer renders its chart. */
4
+ export function mockChartSize(width = 640, height = 260) {
5
+ class SizedRO {
6
+ cb;
7
+ constructor(cb) {
8
+ this.cb = cb;
9
+ }
10
+ observe(target) {
11
+ const entry = { target, contentRect: { width, height, top: 0, left: 0, bottom: height, right: width, x: 0, y: 0 }, contentBoxSize: [{ inlineSize: width, blockSize: height }], borderBoxSize: [{ inlineSize: width, blockSize: height }] };
12
+ this.cb([entry], this);
13
+ }
14
+ unobserve() { }
15
+ disconnect() { }
16
+ }
17
+ const prevRO = globalThis.ResizeObserver;
18
+ globalThis.ResizeObserver = SizedRO;
19
+ // Only chart containers report a size; text measurement spans stay 0 so ticks are not culled.
20
+ const realRect = HTMLElement.prototype.getBoundingClientRect;
21
+ const rect = vi.spyOn(HTMLElement.prototype, "getBoundingClientRect").mockImplementation(function () {
22
+ if (this.classList.contains("recharts-responsive-container") || this.dataset.slot === "chart-frame")
23
+ return { width, height, top: 0, left: 0, bottom: height, right: width, x: 0, y: 0, toJSON() { } };
24
+ return realRect.call(this);
25
+ });
26
+ const ow = vi.spyOn(HTMLElement.prototype, "offsetWidth", "get").mockReturnValue(width);
27
+ const oh = vi.spyOn(HTMLElement.prototype, "offsetHeight", "get").mockReturnValue(height);
28
+ const cw = vi.spyOn(HTMLElement.prototype, "clientWidth", "get").mockReturnValue(width);
29
+ const ch = vi.spyOn(HTMLElement.prototype, "clientHeight", "get").mockReturnValue(height);
30
+ return () => {
31
+ globalThis.ResizeObserver = prevRO;
32
+ rect.mockRestore();
33
+ ow.mockRestore();
34
+ oh.mockRestore();
35
+ cw.mockRestore();
36
+ ch.mockRestore();
37
+ };
38
+ }
@@ -0,0 +1,130 @@
1
+ import type { ComponentType, ReactNode } from "react";
2
+ import type { DatePreset, Formatter } from "../format/core.js";
3
+ /** A colour token a series can use. Never a hex value — the token follows every theme axis. */
4
+ export type ChartColor = "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "chart-6" | "accent" | "accent-ink" | "success" | "warning" | "danger" | "info" | "fg-subtle" | "fg-muted";
5
+ /** Date presets for chart axes and tooltips (the format module's presets + short axis forms). */
6
+ export type ChartDatePreset = DatePreset | "day-month" | "month" | "month-short-year" | "hour" | "weekday-short";
7
+ /**
8
+ * How a value is written. Strings use the locale formatter; objects pick a currency or a date preset;
9
+ * a function gets the raw value and the locale.
10
+ */
11
+ export type FormatSpec = "number" | "integer" | "compact" | "percent" | "currency" | "duration" | "bytes" | {
12
+ currency: string;
13
+ compact?: boolean;
14
+ } | {
15
+ date: ChartDatePreset | Intl.DateTimeFormatOptions;
16
+ timeZoneName?: "short";
17
+ } | {
18
+ relative: true;
19
+ } | ((value: unknown, locale: string) => string);
20
+ export type SeriesPattern = "solid" | "dashed" | "dotted";
21
+ export interface SeriesConfig {
22
+ /** Shown in legend, tooltip, table header and summary. */
23
+ label: string;
24
+ /** Colour token. Default: chart-1…chart-6 in config order. */
25
+ color?: ChartColor;
26
+ /** How values of this series are written. Default `"number"`. */
27
+ format?: FormatSpec;
28
+ /** Value axis side (Combo). Logical: `start` is left in LTR, right in RTL. */
29
+ axis?: "start" | "end";
30
+ /** Stroke pattern. Auto-assigned when a chart has more than 3 series (colour-blind safety). */
31
+ pattern?: SeriesPattern;
32
+ /** Small icon before the legend label (a lucide icon or any component taking className). */
33
+ icon?: ComponentType<{
34
+ className?: string;
35
+ }>;
36
+ /** Start hidden (the legend can show it again). */
37
+ hidden?: boolean;
38
+ }
39
+ /** Series key → its settings. Key order is legend and colour order. */
40
+ export type ChartConfig = Record<string, SeriesConfig>;
41
+ export type ChartState = {
42
+ status: "ready";
43
+ } | {
44
+ status: "loading";
45
+ } | {
46
+ status: "refreshing";
47
+ } | {
48
+ status: "empty";
49
+ message?: ReactNode;
50
+ action?: ReactNode;
51
+ } | {
52
+ status: "error";
53
+ message?: ReactNode;
54
+ onRetry?: () => void;
55
+ };
56
+ export type ChartHeight = number | "sm" | "md" | "lg";
57
+ export declare const CHART_HEIGHTS: {
58
+ readonly sm: 160;
59
+ readonly md: 260;
60
+ readonly lg: 360;
61
+ };
62
+ /** `"chart-2"` → `"var(--chart-2)"`. */
63
+ export declare function resolveChartColor(color: ChartColor): string;
64
+ /** The first `n` palette tokens (wraps after 6). */
65
+ export declare function seriesPalette(n: number): ChartColor[];
66
+ /** A CSS-identifier-safe version of a series key, used in `--series-<key>` variables. */
67
+ export declare function seriesVarName(key: string): string;
68
+ /** `var(--series-<key>)` — the colour of a series inside a Chart. */
69
+ export declare function seriesColor(key: string): string;
70
+ export interface ResolvedSeries extends SeriesConfig {
71
+ key: string;
72
+ color: ChartColor;
73
+ pattern: SeriesPattern;
74
+ index: number;
75
+ }
76
+ /** Fills in colour and pattern defaults for every series of a config. */
77
+ export declare function resolveSeries(config: ChartConfig): ResolvedSeries[];
78
+ /** SVG dash array for a pattern. */
79
+ export declare function patternDash(pattern: SeriesPattern | undefined): string | undefined;
80
+ /**
81
+ * Writes a value with a FormatSpec. `compact` shortens numbers and money for axis ticks
82
+ * ("$1.2M", "₺1,2 Mn"); tooltips and tables use the full form. Missing values → "—".
83
+ */
84
+ export declare function formatValue(f: Formatter, spec: FormatSpec | undefined, value: unknown, options?: {
85
+ compact?: boolean;
86
+ compactFrom?: number;
87
+ }): string;
88
+ /** Default x formatter: `YYYY-MM-DD` strings become "Nov 1", everything else is printed as is. */
89
+ export declare function formatCategory(f: Formatter, spec: FormatSpec | undefined, value: unknown, long?: boolean): string;
90
+ /** Estimated pixel width of a y-axis from its longest formatted tick (11px tabular text). */
91
+ export declare function estimateAxisWidth(labels: string[], fontSize?: number): number;
92
+ /** Numeric min / max over some keys of the rows (stacked → per-row sums). */
93
+ export declare function extent(rows: Record<string, unknown>[], keys: string[], stacked?: boolean): [number, number];
94
+ /** Rounds a max up to a "nice" tick (1, 2, 2.5, 5 × 10ⁿ). */
95
+ export declare function niceCeil(v: number): number;
96
+ /** A "nice" tick step at or above `v` (1, 1.5, 2, 2.5, 3, 4, 5, 6, 8 × 10ⁿ). */
97
+ export declare function niceStep(v: number): number;
98
+ /**
99
+ * Two value-axis domains whose zero lines meet (Combo). Each input is a `[min, max]` extent.
100
+ * Returns domains with the same negative share, so neither axis exaggerates.
101
+ */
102
+ export declare function alignZeroDomains(a: [number, number], b: [number, number]): [[number, number], [number, number]];
103
+ export interface SeriesStats {
104
+ key: string;
105
+ min: number;
106
+ max: number;
107
+ avg: number;
108
+ minIndex: number;
109
+ maxIndex: number;
110
+ count: number;
111
+ }
112
+ /** Min / max / average of one series (nulls skipped). `null` when the series has no numbers. */
113
+ export declare function seriesStats(rows: Record<string, unknown>[], key: string): SeriesStats | null;
114
+ /**
115
+ * A one-paragraph text summary of a chart for screen readers:
116
+ * "Nov 1 – Nov 30. Visits: low 812 (Nov 3), high 1,402 (Nov 28), average 1,090."
117
+ */
118
+ export declare function summarizeSeries(options: {
119
+ f: Formatter;
120
+ rows: Record<string, unknown>[];
121
+ series: Pick<ResolvedSeries, "key" | "label" | "format">[];
122
+ x?: string;
123
+ xFormat?: FormatSpec;
124
+ templates?: {
125
+ range?: string;
126
+ series?: string;
127
+ };
128
+ }): string;
129
+ /** Equal-count (quantile) break points for `steps` buckets. Returns `steps - 1` thresholds. */
130
+ export declare function quantileBreaks(values: number[], steps: number): number[];
@@ -0,0 +1,262 @@
1
+ export const CHART_HEIGHTS = { sm: 160, md: 260, lg: 360 };
2
+ const PALETTE = ["chart-1", "chart-2", "chart-3", "chart-4", "chart-5", "chart-6"];
3
+ /** `"chart-2"` → `"var(--chart-2)"`. */
4
+ export function resolveChartColor(color) {
5
+ return `var(--${color})`;
6
+ }
7
+ /** The first `n` palette tokens (wraps after 6). */
8
+ export function seriesPalette(n) {
9
+ return Array.from({ length: n }, (_, i) => PALETTE[i % PALETTE.length]);
10
+ }
11
+ /** A CSS-identifier-safe version of a series key, used in `--series-<key>` variables. */
12
+ export function seriesVarName(key) {
13
+ return `--series-${key.replace(/[^a-zA-Z0-9_-]/g, "_")}`;
14
+ }
15
+ /** `var(--series-<key>)` — the colour of a series inside a Chart. */
16
+ export function seriesColor(key) {
17
+ return `var(${seriesVarName(key)})`;
18
+ }
19
+ const AUTO_PATTERNS = ["solid", "dashed", "dotted"];
20
+ /** Fills in colour and pattern defaults for every series of a config. */
21
+ export function resolveSeries(config) {
22
+ const keys = Object.keys(config);
23
+ const auto = keys.length > 3;
24
+ return keys.map((key, index) => {
25
+ const s = config[key];
26
+ return {
27
+ ...s,
28
+ key,
29
+ index,
30
+ color: s.color ?? PALETTE[index % PALETTE.length],
31
+ pattern: s.pattern ?? (auto ? AUTO_PATTERNS[index % AUTO_PATTERNS.length] : "solid"),
32
+ };
33
+ });
34
+ }
35
+ /** SVG dash array for a pattern. */
36
+ export function patternDash(pattern) {
37
+ if (pattern === "dashed")
38
+ return "6 4";
39
+ if (pattern === "dotted")
40
+ return "1.5 3.5";
41
+ return undefined;
42
+ }
43
+ const CHART_DATE_PRESETS = {
44
+ "day-month": { month: "short", day: "numeric" },
45
+ month: { month: "short" },
46
+ "month-short-year": { month: "short", year: "2-digit" },
47
+ hour: { hour: "numeric" },
48
+ "weekday-short": { weekday: "short" },
49
+ };
50
+ const isMissing = (v) => v === null || v === undefined || (typeof v === "number" && Number.isNaN(v));
51
+ /**
52
+ * Writes a value with a FormatSpec. `compact` shortens numbers and money for axis ticks
53
+ * ("$1.2M", "₺1,2 Mn"); tooltips and tables use the full form. Missing values → "—".
54
+ */
55
+ export function formatValue(f, spec, value, options = {}) {
56
+ if (isMissing(value))
57
+ return "—";
58
+ // compactFrom: plain numbers shorten from this size (axes whose top tick is ≥ 10K pass 1000 so every tick reads alike)
59
+ const { compact, compactFrom = 10000 } = options;
60
+ if (typeof spec === "function")
61
+ return spec(value, f.locale);
62
+ const num = typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" && !Number.isNaN(Number(value)) ? Number(value) : NaN;
63
+ if (spec && typeof spec === "object") {
64
+ if ("date" in spec) {
65
+ const preset = spec.date;
66
+ const o = typeof preset === "string" ? (CHART_DATE_PRESETS[preset] ?? {}) : preset;
67
+ const opts = { ...o, ...(spec.timeZoneName ? { timeZoneName: spec.timeZoneName } : {}) };
68
+ if (typeof preset === "string" && !CHART_DATE_PRESETS[preset])
69
+ return f.date(value, preset);
70
+ return f.date(value, opts);
71
+ }
72
+ if ("relative" in spec)
73
+ return f.relative(value);
74
+ if ("currency" in spec) {
75
+ const c = compact || spec.compact;
76
+ return f.currency(value, { currency: spec.currency, ...(c ? { notation: "compact", minimumFractionDigits: 0, maximumFractionDigits: 1 } : {}) });
77
+ }
78
+ }
79
+ if (Number.isNaN(num))
80
+ return String(value);
81
+ switch (spec) {
82
+ case "integer":
83
+ return compact && Math.abs(num) >= compactFrom ? f.compact(num) : f.number(num, { maximumFractionDigits: 0 });
84
+ case "compact":
85
+ return f.compact(num);
86
+ case "percent":
87
+ return f.percent(num);
88
+ case "currency":
89
+ return compact ? f.currency(num, { notation: "compact", minimumFractionDigits: 0, maximumFractionDigits: 1 }) : f.currency(num);
90
+ case "duration":
91
+ return f.duration(num, compact ? { maxParts: 1 } : undefined);
92
+ case "bytes":
93
+ return f.bytes(num);
94
+ case "number":
95
+ default:
96
+ return compact && Math.abs(num) >= compactFrom ? f.compact(num) : f.number(num, { maximumFractionDigits: 2 });
97
+ }
98
+ }
99
+ /** Default x formatter: `YYYY-MM-DD` strings become "Nov 1", everything else is printed as is. */
100
+ export function formatCategory(f, spec, value, long = false) {
101
+ if (spec)
102
+ return formatValue(f, spec, value);
103
+ if (typeof value === "string" && /^\d{4}-\d{2}-\d{2}$/.test(value))
104
+ return f.date(value, long ? "medium" : { month: "short", day: "numeric" });
105
+ return isMissing(value) ? "—" : String(value);
106
+ }
107
+ /** Estimated pixel width of a y-axis from its longest formatted tick (11px tabular text). */
108
+ export function estimateAxisWidth(labels, fontSize = 11) {
109
+ const longest = labels.reduce((m, s) => Math.max(m, s.length), 0);
110
+ return Math.min(128, Math.max(32, Math.ceil(longest * fontSize * 0.68) + 16));
111
+ }
112
+ /** Numeric min / max over some keys of the rows (stacked → per-row sums). */
113
+ export function extent(rows, keys, stacked = false) {
114
+ let min = Infinity;
115
+ let max = -Infinity;
116
+ for (const row of rows) {
117
+ if (stacked) {
118
+ let pos = 0;
119
+ let neg = 0;
120
+ for (const k of keys) {
121
+ const v = Number(row[k]);
122
+ if (!Number.isFinite(v))
123
+ continue;
124
+ if (v >= 0)
125
+ pos += v;
126
+ else
127
+ neg += v;
128
+ }
129
+ min = Math.min(min, neg);
130
+ max = Math.max(max, pos);
131
+ }
132
+ else {
133
+ for (const k of keys) {
134
+ const v = row[k];
135
+ if (v === null || v === undefined)
136
+ continue;
137
+ const n = Number(v);
138
+ if (!Number.isFinite(n))
139
+ continue;
140
+ min = Math.min(min, n);
141
+ max = Math.max(max, n);
142
+ }
143
+ }
144
+ }
145
+ if (min === Infinity)
146
+ return [0, 0];
147
+ return [min, max];
148
+ }
149
+ /** Rounds a max up to a "nice" tick (1, 2, 2.5, 5 × 10ⁿ). */
150
+ export function niceCeil(v) {
151
+ if (v <= 0)
152
+ return 0;
153
+ const exp = Math.floor(Math.log10(v));
154
+ const base = 10 ** exp;
155
+ const f = v / base;
156
+ const nice = f <= 1 ? 1 : f <= 2 ? 2 : f <= 2.5 ? 2.5 : f <= 5 ? 5 : 10;
157
+ return nice * base;
158
+ }
159
+ /** A "nice" tick step at or above `v` (1, 1.5, 2, 2.5, 3, 4, 5, 6, 8 × 10ⁿ). */
160
+ export function niceStep(v) {
161
+ if (v <= 0)
162
+ return 0;
163
+ const exp = Math.floor(Math.log10(v));
164
+ const base = 10 ** exp;
165
+ const f = v / base;
166
+ const steps = [1, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10];
167
+ const nice = steps.find((s) => f <= s + 1e-9) ?? 10;
168
+ return Number((nice * base).toPrecision(12));
169
+ }
170
+ /**
171
+ * Two value-axis domains whose zero lines meet (Combo). Each input is a `[min, max]` extent.
172
+ * Returns domains with the same negative share, so neither axis exaggerates.
173
+ */
174
+ export function alignZeroDomains(a, b) {
175
+ const norm = ([lo, hi]) => [Math.min(0, lo), Math.max(0, hi, lo < 0 && hi <= 0 ? 0 : hi)];
176
+ const [aLo, aHi] = norm(a);
177
+ const [bLo, bHi] = norm(b);
178
+ const share = (lo, hi) => (hi - lo === 0 ? 0 : -lo / (hi - lo));
179
+ const s = Math.max(share(aLo, aHi), share(bLo, bHi));
180
+ const fit = (lo, hi) => {
181
+ if (s === 0)
182
+ return [0, niceStep(hi / 4) * 4 || 1];
183
+ if (s >= 1)
184
+ return [lo || -1, 0];
185
+ const top = Math.max(hi, (-lo * (1 - s)) / s);
186
+ const bottom = -(top * s) / (1 - s);
187
+ return [Math.min(lo, bottom), top];
188
+ };
189
+ return [fit(aLo, aHi), fit(bLo, bHi)];
190
+ }
191
+ /** Min / max / average of one series (nulls skipped). `null` when the series has no numbers. */
192
+ export function seriesStats(rows, key) {
193
+ let min = Infinity;
194
+ let max = -Infinity;
195
+ let sum = 0;
196
+ let count = 0;
197
+ let minIndex = 0;
198
+ let maxIndex = 0;
199
+ rows.forEach((row, i) => {
200
+ const raw = row[key];
201
+ if (raw === null || raw === undefined)
202
+ return;
203
+ const v = Number(raw);
204
+ if (!Number.isFinite(v))
205
+ return;
206
+ if (v < min) {
207
+ min = v;
208
+ minIndex = i;
209
+ }
210
+ if (v > max) {
211
+ max = v;
212
+ maxIndex = i;
213
+ }
214
+ sum += v;
215
+ count++;
216
+ });
217
+ if (!count)
218
+ return null;
219
+ return { key, min, max, avg: sum / count, minIndex, maxIndex, count };
220
+ }
221
+ /**
222
+ * A one-paragraph text summary of a chart for screen readers:
223
+ * "Nov 1 – Nov 30. Visits: low 812 (Nov 3), high 1,402 (Nov 28), average 1,090."
224
+ */
225
+ export function summarizeSeries(options) {
226
+ const { f, rows, series, x, xFormat } = options;
227
+ if (!rows.length)
228
+ return "";
229
+ const xText = (i) => (x ? formatCategory(f, xFormat, rows[i]?.[x]) : String(i + 1));
230
+ const fill = (tpl, vars) => tpl.replace(/\{(\w+)\}/g, (_, k) => vars[k] ?? "");
231
+ const parts = [];
232
+ if (x && rows.length > 1)
233
+ parts.push(fill(options.templates?.range ?? "{from} – {to}.", { from: xText(0), to: xText(rows.length - 1) }));
234
+ for (const s of series) {
235
+ const st = seriesStats(rows, s.key);
236
+ if (!st)
237
+ continue;
238
+ const fmt = (v) => formatValue(f, s.format, v);
239
+ parts.push(fill(options.templates?.series ?? "{label}: low {min} ({minAt}), high {max} ({maxAt}), average {avg}.", {
240
+ label: s.label,
241
+ min: fmt(st.min),
242
+ minAt: xText(st.minIndex),
243
+ max: fmt(st.max),
244
+ maxAt: xText(st.maxIndex),
245
+ avg: fmt(Math.round(st.avg * 100) / 100),
246
+ }));
247
+ }
248
+ return parts.join(" ");
249
+ }
250
+ /** Equal-count (quantile) break points for `steps` buckets. Returns `steps - 1` thresholds. */
251
+ export function quantileBreaks(values, steps) {
252
+ const sorted = values.filter((v) => Number.isFinite(v) && v > 0).sort((a, b) => a - b);
253
+ if (!sorted.length)
254
+ return Array.from({ length: steps - 2 }, () => Infinity);
255
+ const out = [];
256
+ // bucket 0 is reserved for zero; the rest split the positive values.
257
+ for (let i = 1; i < steps - 1; i++) {
258
+ const q = sorted[Math.min(sorted.length - 1, Math.floor((i / (steps - 1)) * sorted.length))];
259
+ out.push(q);
260
+ }
261
+ return out;
262
+ }
@@ -0,0 +1,47 @@
1
+ import * as React from "react";
2
+ import { Accordion as RadixAccordion } from "radix-ui";
3
+ type AccordionVariant = "plain" | "separated" | "card";
4
+ type AccordionSize = "sm" | "md";
5
+ type AccordionRootProps = React.ComponentPropsWithoutRef<typeof RadixAccordion.Root>;
6
+ export type AccordionProps = AccordionRootProps & {
7
+ /** `plain` (ruled list, default) · `separated` (boxed items) · `card` (one panel). */
8
+ variant?: AccordionVariant;
9
+ size?: AccordionSize;
10
+ /** Heading level wrapping each trigger, to fit the page outline. Default 3. */
11
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
12
+ };
13
+ /**
14
+ * Collapsible sections (WAI-ARIA Accordion: a heading containing a button, arrow keys / Home / End
15
+ * move between headers). `type="single"` (add `collapsible` to allow closing the open one) or `type="multiple"`.
16
+ *
17
+ * ```tsx
18
+ * <Accordion type="single" collapsible defaultValue="refunds">
19
+ * <AccordionItem value="refunds">
20
+ * <AccordionTrigger>How do refunds work?</AccordionTrigger>
21
+ * <AccordionContent>Refunds go back to the original card within 5–10 business days.</AccordionContent>
22
+ * </AccordionItem>
23
+ * </Accordion>
24
+ * ```
25
+ *
26
+ * Persisting the open sections is the consumer's job: control `value` and store it.
27
+ */
28
+ export declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<HTMLDivElement>>;
29
+ export interface AccordionItemProps extends React.ComponentPropsWithoutRef<typeof RadixAccordion.Item> {
30
+ }
31
+ /** One section. `value` identifies it; `disabled` locks it. */
32
+ export declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
33
+ export interface AccordionTriggerProps extends React.ComponentPropsWithoutRef<typeof RadixAccordion.Trigger> {
34
+ /** Leading icon. */
35
+ icon?: React.ReactNode;
36
+ /** Right-side summary shown in the header, e.g. "3 selected" or "Scheduled". Part of the button's name. */
37
+ meta?: React.ReactNode;
38
+ /** Buttons next to the header (outside the toggle button, so they stay separate controls). */
39
+ actions?: React.ReactNode;
40
+ }
41
+ /** The section header: a heading with the toggle button (and optional actions beside it). */
42
+ export declare const AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>;
43
+ export interface AccordionContentProps extends React.ComponentPropsWithoutRef<typeof RadixAccordion.Content> {
44
+ }
45
+ /** The collapsible body. Animates its height (`ui-collapse`, reduced-motion safe). */
46
+ export declare const AccordionContent: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<HTMLDivElement>>;
47
+ export {};
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Accordion as RadixAccordion } from "radix-ui";
5
+ import { ChevronDown } from "lucide-react";
6
+ import { cva } from "class-variance-authority";
7
+ import { cn } from "../lib/cn.js";
8
+ const AccordionContext = React.createContext({
9
+ variant: "plain",
10
+ size: "md",
11
+ headingLevel: 3,
12
+ });
13
+ const rootVariants = cva("w-full", {
14
+ variants: {
15
+ variant: {
16
+ /** Ruled list: hairlines between items. */
17
+ plain: "",
18
+ /** Each item in its own inset box. */
19
+ separated: "flex flex-col gap-2",
20
+ /** All items inside one surface (panel style). */
21
+ card: "surface overflow-hidden rounded-ui-lg",
22
+ },
23
+ },
24
+ defaultVariants: { variant: "plain" },
25
+ });
26
+ /**
27
+ * Collapsible sections (WAI-ARIA Accordion: a heading containing a button, arrow keys / Home / End
28
+ * move between headers). `type="single"` (add `collapsible` to allow closing the open one) or `type="multiple"`.
29
+ *
30
+ * ```tsx
31
+ * <Accordion type="single" collapsible defaultValue="refunds">
32
+ * <AccordionItem value="refunds">
33
+ * <AccordionTrigger>How do refunds work?</AccordionTrigger>
34
+ * <AccordionContent>Refunds go back to the original card within 5–10 business days.</AccordionContent>
35
+ * </AccordionItem>
36
+ * </Accordion>
37
+ * ```
38
+ *
39
+ * Persisting the open sections is the consumer's job: control `value` and store it.
40
+ */
41
+ export const Accordion = React.forwardRef(function Accordion({ variant = "plain", size = "md", headingLevel = 3, className, ...props }, ref) {
42
+ const ctx = React.useMemo(() => ({ variant, size, headingLevel }), [variant, size, headingLevel]);
43
+ return (_jsx(AccordionContext.Provider, { value: ctx, children: _jsx(RadixAccordion.Root, { ref: ref, "data-slot": "accordion", "data-variant": variant, className: cn(rootVariants({ variant }), className), ...props }) }));
44
+ });
45
+ const accordionItemVariants = cva("group/acc-item", {
46
+ variants: {
47
+ variant: {
48
+ plain: "border-b border-line last:border-b-0",
49
+ separated: "surface-2 rounded-ui",
50
+ card: "border-b border-line last:border-b-0",
51
+ },
52
+ },
53
+ });
54
+ /** One section. `value` identifies it; `disabled` locks it. */
55
+ export const AccordionItem = React.forwardRef(function AccordionItem({ className, ...props }, ref) {
56
+ const { variant } = React.useContext(AccordionContext);
57
+ return _jsx(RadixAccordion.Item, { ref: ref, "data-slot": "accordion-item", className: cn(accordionItemVariants({ variant }), className), ...props });
58
+ });
59
+ const pad = { plain: "", separated: "px-4", card: "px-(--gap)" };
60
+ /** The section header: a heading with the toggle button (and optional actions beside it). */
61
+ export const AccordionTrigger = React.forwardRef(function AccordionTrigger({ icon, meta, actions, className, children, ...props }, ref) {
62
+ const { variant, size, headingLevel } = React.useContext(AccordionContext);
63
+ const Heading = `h${headingLevel}`;
64
+ return (_jsx(RadixAccordion.Header, { asChild: true, children: _jsxs(Heading, { "data-slot": "accordion-header", className: cn("flex items-center gap-1", pad[variant], actions && "pe-2"), children: [_jsxs(RadixAccordion.Trigger, { ref: ref, "data-slot": "accordion-trigger", className: cn("group/acc flex min-w-0 flex-1 items-center gap-3 rounded-ui-sm text-start font-medium text-fg outline-none transition-colors focus-ring", "disabled:cursor-not-allowed disabled:opacity-45", "hover:[&_[data-slot=accordion-title]]:underline hover:[&_[data-slot=accordion-title]]:decoration-line hover:[&_[data-slot=accordion-title]]:underline-offset-4", size === "sm" ? "py-2.5 text-[13px] [&_svg]:size-3.5" : "py-3.5 text-sm [&_svg]:size-4", variant === "plain" && (size === "sm" ? "py-2" : "py-3"), className), ...props, children: [icon ? _jsx("span", { "aria-hidden": true, className: "inline-flex shrink-0 text-fg-muted [&_svg]:shrink-0", children: icon }) : null, _jsx("span", { "data-slot": "accordion-title", className: "min-w-0 flex-1 text-pretty", children: children }), meta ? _jsx("span", { className: "sr-only", children: ", " }) : null, meta ? (_jsx("span", { "data-slot": "accordion-meta", className: "tabular shrink-0 truncate text-[13px] font-normal text-fg-subtle", children: meta })) : null, _jsx(ChevronDown, { "aria-hidden": true, className: "shrink-0 text-fg-subtle transition-transform duration-200 motion-reduce:transition-none group-data-[state=open]/acc:rotate-180" })] }), actions ? (_jsx("span", { "data-slot": "accordion-actions", className: "flex shrink-0 items-center gap-0.5", children: actions })) : null] }) }));
65
+ });
66
+ /** The collapsible body. Animates its height (`ui-collapse`, reduced-motion safe). */
67
+ export const AccordionContent = React.forwardRef(function AccordionContent({ className, children, ...props }, ref) {
68
+ const { variant, size } = React.useContext(AccordionContext);
69
+ return (_jsx(RadixAccordion.Content, { ref: ref, "data-slot": "accordion-content", className: "ui-collapse", ...props, children: _jsx("div", { className: cn("text-fg-muted", size === "sm" ? "pb-3 text-[13px]" : "pb-4 text-sm leading-relaxed", pad[variant], className), children: children }) }));
70
+ });