@vamos-ui/react 0.0.0-stage → 0.3.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 (704) 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 +101 -0
  58. package/dist/blocks/site/_kit-1.js +137 -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 +113 -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 +52 -0
  85. package/dist/blocks/site/feature-grid.d.ts +46 -0
  86. package/dist/blocks/site/feature-grid.js +50 -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 +48 -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 +73 -0
  97. package/dist/blocks/site/logo-strip.d.ts +44 -0
  98. package/dist/blocks/site/logo-strip.js +27 -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 +56 -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 +83 -0
  115. package/dist/blocks/site/process.d.ts +36 -0
  116. package/dist/blocks/site/process.js +42 -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 +108 -0
  160. package/dist/blocks/site/site-shell.js +254 -0
  161. package/dist/blocks/site/stats-band.d.ts +42 -0
  162. package/dist/blocks/site/stats-band.js +45 -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 +66 -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 +12 -0
  180. package/dist/business/index.js +22 -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/business/signer-status.d.ts +53 -0
  194. package/dist/business/signer-status.js +76 -0
  195. package/dist/charts/area-chart.d.ts +35 -0
  196. package/dist/charts/area-chart.js +33 -0
  197. package/dist/charts/bar-chart.d.ts +27 -0
  198. package/dist/charts/bar-chart.js +46 -0
  199. package/dist/charts/bar-list.d.ts +47 -0
  200. package/dist/charts/bar-list.js +60 -0
  201. package/dist/charts/chart-shell.d.ts +173 -0
  202. package/dist/charts/chart-shell.js +205 -0
  203. package/dist/charts/chart.d.ts +73 -0
  204. package/dist/charts/chart.js +106 -0
  205. package/dist/charts/combo-chart.d.ts +29 -0
  206. package/dist/charts/combo-chart.js +47 -0
  207. package/dist/charts/donut-chart.d.ts +33 -0
  208. package/dist/charts/donut-chart.js +113 -0
  209. package/dist/charts/funnel.d.ts +51 -0
  210. package/dist/charts/funnel.js +69 -0
  211. package/dist/charts/gauge.d.ts +62 -0
  212. package/dist/charts/gauge.js +104 -0
  213. package/dist/charts/heatmap.d.ts +81 -0
  214. package/dist/charts/heatmap.js +338 -0
  215. package/dist/charts/index.d.ts +12 -0
  216. package/dist/charts/index.js +14 -0
  217. package/dist/charts/line-chart.d.ts +21 -0
  218. package/dist/charts/line-chart.js +36 -0
  219. package/dist/charts/test-utils.d.ts +2 -0
  220. package/dist/charts/test-utils.js +38 -0
  221. package/dist/charts/utils.d.ts +130 -0
  222. package/dist/charts/utils.js +262 -0
  223. package/dist/components/_qr-core.d.ts +26 -0
  224. package/dist/components/_qr-core.js +376 -0
  225. package/dist/components/accordion.d.ts +47 -0
  226. package/dist/components/accordion.js +70 -0
  227. package/dist/components/activity-timeline.d.ts +149 -0
  228. package/dist/components/activity-timeline.js +122 -0
  229. package/dist/components/address-field.d.ts +116 -0
  230. package/dist/components/address-field.js +219 -0
  231. package/dist/components/alert-dialog.d.ts +99 -0
  232. package/dist/components/alert-dialog.js +192 -0
  233. package/dist/components/alert.d.ts +42 -0
  234. package/dist/components/alert.js +82 -0
  235. package/dist/components/app-shell.d.ts +159 -0
  236. package/dist/components/app-shell.js +289 -0
  237. package/dist/components/attachment-list.d.ts +96 -0
  238. package/dist/components/attachment-list.js +196 -0
  239. package/dist/components/audit-log.d.ts +150 -0
  240. package/dist/components/audit-log.js +205 -0
  241. package/dist/components/avatar.d.ts +87 -0
  242. package/dist/components/avatar.js +126 -0
  243. package/dist/components/backup-codes.d.ts +42 -0
  244. package/dist/components/backup-codes.js +67 -0
  245. package/dist/components/badge.d.ts +41 -0
  246. package/dist/components/badge.js +68 -0
  247. package/dist/components/breadcrumb.d.ts +78 -0
  248. package/dist/components/breadcrumb.js +106 -0
  249. package/dist/components/button-group.d.ts +52 -0
  250. package/dist/components/button-group.js +77 -0
  251. package/dist/components/button.d.ts +58 -0
  252. package/dist/components/button.js +107 -0
  253. package/dist/components/calendar.d.ts +240 -0
  254. package/dist/components/calendar.js +483 -0
  255. package/dist/components/card.d.ts +66 -0
  256. package/dist/components/card.js +76 -0
  257. package/dist/components/carousel.d.ts +170 -0
  258. package/dist/components/carousel.js +348 -0
  259. package/dist/components/checkbox.d.ts +78 -0
  260. package/dist/components/checkbox.js +138 -0
  261. package/dist/components/color-picker.d.ts +112 -0
  262. package/dist/components/color-picker.js +235 -0
  263. package/dist/components/combobox.d.ts +136 -0
  264. package/dist/components/combobox.js +294 -0
  265. package/dist/components/command.d.ts +281 -0
  266. package/dist/components/command.js +498 -0
  267. package/dist/components/comment-thread.d.ts +252 -0
  268. package/dist/components/comment-thread.js +449 -0
  269. package/dist/components/context-menu.d.ts +77 -0
  270. package/dist/components/context-menu.js +82 -0
  271. package/dist/components/currency-input.d.ts +43 -0
  272. package/dist/components/currency-input.js +85 -0
  273. package/dist/components/date-picker.d.ts +141 -0
  274. package/dist/components/date-picker.js +241 -0
  275. package/dist/components/date-range-picker.d.ts +91 -0
  276. package/dist/components/date-range-picker.js +251 -0
  277. package/dist/components/description-list.d.ts +92 -0
  278. package/dist/components/description-list.js +42 -0
  279. package/dist/components/dialog.d.ts +139 -0
  280. package/dist/components/dialog.js +185 -0
  281. package/dist/components/dropdown-menu.d.ts +100 -0
  282. package/dist/components/dropdown-menu.js +102 -0
  283. package/dist/components/editor-layout.d.ts +166 -0
  284. package/dist/components/editor-layout.js +237 -0
  285. package/dist/components/empty-state.d.ts +49 -0
  286. package/dist/components/empty-state.js +68 -0
  287. package/dist/components/entity-card.d.ts +83 -0
  288. package/dist/components/entity-card.js +92 -0
  289. package/dist/components/file-upload.d.ts +256 -0
  290. package/dist/components/file-upload.js +490 -0
  291. package/dist/components/formatted-input.d.ts +177 -0
  292. package/dist/components/formatted-input.js +399 -0
  293. package/dist/components/hierarchy-chart.d.ts +190 -0
  294. package/dist/components/hierarchy-chart.js +890 -0
  295. package/dist/components/hover-card.d.ts +21 -0
  296. package/dist/components/hover-card.js +32 -0
  297. package/dist/components/iban-input.d.ts +38 -0
  298. package/dist/components/iban-input.js +112 -0
  299. package/dist/components/id-input.d.ts +65 -0
  300. package/dist/components/id-input.js +130 -0
  301. package/dist/components/image.d.ts +130 -0
  302. package/dist/components/image.js +168 -0
  303. package/dist/components/input-otp.d.ts +62 -0
  304. package/dist/components/input-otp.js +73 -0
  305. package/dist/components/input.d.ts +141 -0
  306. package/dist/components/input.js +187 -0
  307. package/dist/components/item.d.ts +96 -0
  308. package/dist/components/item.js +113 -0
  309. package/dist/components/kbd.d.ts +64 -0
  310. package/dist/components/kbd.js +119 -0
  311. package/dist/components/list-layout.d.ts +144 -0
  312. package/dist/components/list-layout.js +210 -0
  313. package/dist/components/native-select.d.ts +33 -0
  314. package/dist/components/native-select.js +48 -0
  315. package/dist/components/navigation-menu.d.ts +127 -0
  316. package/dist/components/navigation-menu.js +129 -0
  317. package/dist/components/notification-center.d.ts +164 -0
  318. package/dist/components/notification-center.js +399 -0
  319. package/dist/components/page-header.d.ts +60 -0
  320. package/dist/components/page-header.js +60 -0
  321. package/dist/components/pagination.d.ts +121 -0
  322. package/dist/components/pagination.js +174 -0
  323. package/dist/components/phone-input.d.ts +49 -0
  324. package/dist/components/phone-input.js +266 -0
  325. package/dist/components/pin-map.d.ts +58 -0
  326. package/dist/components/pin-map.js +167 -0
  327. package/dist/components/popover.d.ts +38 -0
  328. package/dist/components/popover.js +69 -0
  329. package/dist/components/progress.d.ts +79 -0
  330. package/dist/components/progress.js +97 -0
  331. package/dist/components/qr-code.d.ts +36 -0
  332. package/dist/components/qr-code.js +27 -0
  333. package/dist/components/radio-group.d.ts +43 -0
  334. package/dist/components/radio-group.js +81 -0
  335. package/dist/components/record-detail-layout.d.ts +167 -0
  336. package/dist/components/record-detail-layout.js +233 -0
  337. package/dist/components/record-picker.d.ts +199 -0
  338. package/dist/components/record-picker.js +650 -0
  339. package/dist/components/resizable.d.ts +50 -0
  340. package/dist/components/resizable.js +88 -0
  341. package/dist/components/scroll-area.d.ts +40 -0
  342. package/dist/components/scroll-area.js +56 -0
  343. package/dist/components/select.d.ts +126 -0
  344. package/dist/components/select.js +137 -0
  345. package/dist/components/separator.d.ts +31 -0
  346. package/dist/components/separator.js +41 -0
  347. package/dist/components/settings-layout.d.ts +134 -0
  348. package/dist/components/settings-layout.js +180 -0
  349. package/dist/components/sheet.d.ts +103 -0
  350. package/dist/components/sheet.js +165 -0
  351. package/dist/components/sidebar.d.ts +171 -0
  352. package/dist/components/sidebar.js +421 -0
  353. package/dist/components/signature-pad.d.ts +85 -0
  354. package/dist/components/signature-pad.js +283 -0
  355. package/dist/components/skeleton.d.ts +64 -0
  356. package/dist/components/skeleton.js +53 -0
  357. package/dist/components/sla-timer.d.ts +75 -0
  358. package/dist/components/sla-timer.js +142 -0
  359. package/dist/components/slider.d.ts +57 -0
  360. package/dist/components/slider.js +133 -0
  361. package/dist/components/slug-input.d.ts +69 -0
  362. package/dist/components/slug-input.js +201 -0
  363. package/dist/components/sparkline.d.ts +54 -0
  364. package/dist/components/sparkline.js +122 -0
  365. package/dist/components/spinner.d.ts +34 -0
  366. package/dist/components/spinner.js +34 -0
  367. package/dist/components/stat.d.ts +135 -0
  368. package/dist/components/stat.js +130 -0
  369. package/dist/components/status-picker.d.ts +107 -0
  370. package/dist/components/status-picker.js +175 -0
  371. package/dist/components/stepper.d.ts +86 -0
  372. package/dist/components/stepper.js +103 -0
  373. package/dist/components/switch.d.ts +34 -0
  374. package/dist/components/switch.js +70 -0
  375. package/dist/components/table.d.ts +101 -0
  376. package/dist/components/table.js +72 -0
  377. package/dist/components/tabs.d.ts +103 -0
  378. package/dist/components/tabs.js +173 -0
  379. package/dist/components/tag-input.d.ts +77 -0
  380. package/dist/components/tag-input.js +305 -0
  381. package/dist/components/task-list.d.ts +89 -0
  382. package/dist/components/task-list.js +238 -0
  383. package/dist/components/time-picker.d.ts +119 -0
  384. package/dist/components/time-picker.js +399 -0
  385. package/dist/components/toast.d.ts +87 -0
  386. package/dist/components/toast.js +142 -0
  387. package/dist/components/toggle.d.ts +77 -0
  388. package/dist/components/toggle.js +109 -0
  389. package/dist/components/tooltip.d.ts +69 -0
  390. package/dist/components/tooltip.js +105 -0
  391. package/dist/components/top-bar.d.ts +87 -0
  392. package/dist/components/top-bar.js +99 -0
  393. package/dist/components/tour.d.ts +60 -0
  394. package/dist/components/tour.js +139 -0
  395. package/dist/components/tree-select.d.ts +89 -0
  396. package/dist/components/tree-select.js +243 -0
  397. package/dist/components/tree-view.d.ts +109 -0
  398. package/dist/components/tree-view.js +170 -0
  399. package/dist/components/typography.d.ts +107 -0
  400. package/dist/components/typography.js +128 -0
  401. package/dist/components/user-picker.d.ts +89 -0
  402. package/dist/components/user-picker.js +162 -0
  403. package/dist/components/version-history.d.ts +191 -0
  404. package/dist/components/version-history.js +431 -0
  405. package/dist/data-table/csv.d.ts +27 -0
  406. package/dist/data-table/csv.js +68 -0
  407. package/dist/data-table/data-table.d.ts +423 -0
  408. package/dist/data-table/data-table.js +1259 -0
  409. package/dist/data-table/filter-bar.d.ts +146 -0
  410. package/dist/data-table/filter-bar.js +569 -0
  411. package/dist/data-table/filter-fns.d.ts +65 -0
  412. package/dist/data-table/filter-fns.js +382 -0
  413. package/dist/data-table/index.d.ts +8 -0
  414. package/dist/data-table/index.js +9 -0
  415. package/dist/data-table/saved-views.d.ts +100 -0
  416. package/dist/data-table/saved-views.js +251 -0
  417. package/dist/data-table/types.d.ts +168 -0
  418. package/dist/data-table/types.js +87 -0
  419. package/dist/data-table/url-state.d.ts +94 -0
  420. package/dist/data-table/url-state.js +303 -0
  421. package/dist/data-table/view-state.d.ts +16 -0
  422. package/dist/data-table/view-state.js +81 -0
  423. package/dist/editor/_test-setup.d.ts +1 -0
  424. package/dist/editor/_test-setup.js +33 -0
  425. package/dist/editor/block-editor.d.ts +137 -0
  426. package/dist/editor/block-editor.js +280 -0
  427. package/dist/editor/commands.d.ts +31 -0
  428. package/dist/editor/commands.js +150 -0
  429. package/dist/editor/context.d.ts +108 -0
  430. package/dist/editor/context.js +30 -0
  431. package/dist/editor/convert.d.ts +66 -0
  432. package/dist/editor/convert.js +567 -0
  433. package/dist/editor/drag-handle.d.ts +10 -0
  434. package/dist/editor/drag-handle.js +69 -0
  435. package/dist/editor/extensions.d.ts +34 -0
  436. package/dist/editor/extensions.js +239 -0
  437. package/dist/editor/index.d.ts +14 -0
  438. package/dist/editor/index.js +17 -0
  439. package/dist/editor/inserter.d.ts +12 -0
  440. package/dist/editor/inserter.js +88 -0
  441. package/dist/editor/inspector.d.ts +17 -0
  442. package/dist/editor/inspector.js +65 -0
  443. package/dist/editor/items.d.ts +62 -0
  444. package/dist/editor/items.js +195 -0
  445. package/dist/editor/labels.d.ts +119 -0
  446. package/dist/editor/labels.js +130 -0
  447. package/dist/editor/markdown.d.ts +14 -0
  448. package/dist/editor/markdown.js +209 -0
  449. package/dist/editor/menus.d.ts +20 -0
  450. package/dist/editor/menus.js +236 -0
  451. package/dist/editor/nodes.d.ts +14 -0
  452. package/dist/editor/nodes.js +201 -0
  453. package/dist/editor/outline.d.ts +11 -0
  454. package/dist/editor/outline.js +52 -0
  455. package/dist/editor/schema-form.d.ts +64 -0
  456. package/dist/editor/schema-form.js +290 -0
  457. package/dist/editor/slash-menu.d.ts +15 -0
  458. package/dist/editor/slash-menu.js +119 -0
  459. package/dist/fonts/catalog.d.ts +53 -0
  460. package/dist/fonts/catalog.js +121 -0
  461. package/dist/fonts/font-picker.d.ts +70 -0
  462. package/dist/fonts/font-picker.js +225 -0
  463. package/dist/fonts/index.d.ts +6 -0
  464. package/dist/fonts/index.js +7 -0
  465. package/dist/fonts/loader.d.ts +66 -0
  466. package/dist/fonts/loader.js +161 -0
  467. package/dist/fonts/pairing-picker.d.ts +31 -0
  468. package/dist/fonts/pairing-picker.js +81 -0
  469. package/dist/fonts/pairings.d.ts +84 -0
  470. package/dist/fonts/pairings.js +149 -0
  471. package/dist/fonts/provider.d.ts +34 -0
  472. package/dist/fonts/provider.js +51 -0
  473. package/dist/form/index.d.ts +1 -0
  474. package/dist/form/index.js +1 -0
  475. package/dist/format/core.d.ts +149 -0
  476. package/dist/format/core.js +357 -0
  477. package/dist/format/index.d.ts +4 -0
  478. package/dist/format/index.js +5 -0
  479. package/dist/format/use-format.d.ts +1 -0
  480. package/dist/format/use-format.js +3 -0
  481. package/dist/index.d.ts +91 -0
  482. package/dist/index.js +92 -0
  483. package/dist/lib/cn.d.ts +3 -0
  484. package/dist/lib/cn.js +16 -0
  485. package/dist/lib/color.d.ts +64 -0
  486. package/dist/lib/color.js +177 -0
  487. package/dist/lib/compose-refs.d.ts +24 -0
  488. package/dist/lib/compose-refs.js +45 -0
  489. package/dist/lib/data-islands.d.ts +194 -0
  490. package/dist/lib/data-islands.js +368 -0
  491. package/dist/lib/date.d.ts +129 -0
  492. package/dist/lib/date.js +386 -0
  493. package/dist/lib/field-context.d.ts +64 -0
  494. package/dist/lib/field-context.js +62 -0
  495. package/dist/lib/floating-arrow.d.ts +18 -0
  496. package/dist/lib/floating-arrow.js +15 -0
  497. package/dist/lib/islands.d.ts +38 -0
  498. package/dist/lib/islands.js +40 -0
  499. package/dist/lib/labels.d.ts +51 -0
  500. package/dist/lib/labels.js +56 -0
  501. package/dist/lib/layer.d.ts +36 -0
  502. package/dist/lib/layer.js +42 -0
  503. package/dist/lib/locale.d.ts +85 -0
  504. package/dist/lib/locale.js +105 -0
  505. package/dist/lib/menu.d.ts +58 -0
  506. package/dist/lib/menu.js +99 -0
  507. package/dist/lib/message-format.d.ts +20 -0
  508. package/dist/lib/message-format.js +116 -0
  509. package/dist/lib/nav.d.ts +132 -0
  510. package/dist/lib/nav.js +178 -0
  511. package/dist/lib/provider.d.ts +100 -0
  512. package/dist/lib/provider.js +105 -0
  513. package/dist/lib/public.d.ts +23 -0
  514. package/dist/lib/public.js +34 -0
  515. package/dist/lib/sr-name.d.ts +18 -0
  516. package/dist/lib/sr-name.js +17 -0
  517. package/dist/lib/text.d.ts +100 -0
  518. package/dist/lib/text.js +233 -0
  519. package/dist/lib/theme-scope.d.ts +58 -0
  520. package/dist/lib/theme-scope.js +59 -0
  521. package/dist/lib/use-async-list.d.ts +60 -0
  522. package/dist/lib/use-async-list.js +119 -0
  523. package/dist/lib/use-container-width.d.ts +19 -0
  524. package/dist/lib/use-container-width.js +39 -0
  525. package/dist/lib/use-controllable-state.d.ts +33 -0
  526. package/dist/lib/use-controllable-state.js +56 -0
  527. package/dist/lib/use-edge-fade.d.ts +13 -0
  528. package/dist/lib/use-edge-fade.js +43 -0
  529. package/dist/lib/use-formatted-input.d.ts +69 -0
  530. package/dist/lib/use-formatted-input.js +152 -0
  531. package/dist/lib/use-hotkeys.d.ts +80 -0
  532. package/dist/lib/use-hotkeys.js +221 -0
  533. package/dist/lib/use-hover-intent.d.ts +44 -0
  534. package/dist/lib/use-hover-intent.js +119 -0
  535. package/dist/lib/use-media-query.d.ts +21 -0
  536. package/dist/lib/use-media-query.js +28 -0
  537. package/dist/lib/use-reduced-motion.d.ts +8 -0
  538. package/dist/lib/use-reduced-motion.js +13 -0
  539. package/dist/lib/use-tree.d.ts +153 -0
  540. package/dist/lib/use-tree.js +534 -0
  541. package/dist/lib/value-format.d.ts +25 -0
  542. package/dist/lib/value-format.js +56 -0
  543. package/dist/lib/variants.d.ts +131 -0
  544. package/dist/lib/variants.js +109 -0
  545. package/dist/locale-data/core/date.d.ts +24 -0
  546. package/dist/locale-data/core/date.js +68 -0
  547. package/dist/locale-data/core/decimal.d.ts +19 -0
  548. package/dist/locale-data/core/decimal.js +79 -0
  549. package/dist/locale-data/core/holidays.d.ts +30 -0
  550. package/dist/locale-data/core/holidays.js +79 -0
  551. package/dist/locale-data/core/iban.d.ts +29 -0
  552. package/dist/locale-data/core/iban.js +74 -0
  553. package/dist/locale-data/core/index.d.ts +7 -0
  554. package/dist/locale-data/core/index.js +6 -0
  555. package/dist/locale-data/core/types.d.ts +173 -0
  556. package/dist/locale-data/core/types.js +6 -0
  557. package/dist/locale-data/core/week-info.d.ts +23 -0
  558. package/dist/locale-data/core/week-info.js +85 -0
  559. package/dist/locale-data/core/working-days.d.ts +27 -0
  560. package/dist/locale-data/core/working-days.js +133 -0
  561. package/dist/locale-data/index.d.ts +2 -0
  562. package/dist/locale-data/index.js +4 -0
  563. package/dist/locale-data/tr/address-tr.json +1 -0
  564. package/dist/locale-data/tr/address.d.ts +23 -0
  565. package/dist/locale-data/tr/address.js +52 -0
  566. package/dist/locale-data/tr/holidays.d.ts +31 -0
  567. package/dist/locale-data/tr/holidays.js +81 -0
  568. package/dist/locale-data/tr/iban.d.ts +21 -0
  569. package/dist/locale-data/tr/iban.js +45 -0
  570. package/dist/locale-data/tr/id.d.ts +36 -0
  571. package/dist/locale-data/tr/id.js +120 -0
  572. package/dist/locale-data/tr/index.d.ts +12 -0
  573. package/dist/locale-data/tr/index.js +33 -0
  574. package/dist/locale-data/tr/kdv.d.ts +91 -0
  575. package/dist/locale-data/tr/kdv.js +222 -0
  576. package/dist/locales/en.d.ts +2102 -0
  577. package/dist/locales/en.js +2088 -0
  578. package/dist/locales/tr.d.ts +2086 -0
  579. package/dist/locales/tr.js +2087 -0
  580. package/dist/media/focal-point.d.ts +42 -0
  581. package/dist/media/focal-point.js +96 -0
  582. package/dist/media/gallery-layout.d.ts +19 -0
  583. package/dist/media/gallery-layout.js +61 -0
  584. package/dist/media/gallery.d.ts +64 -0
  585. package/dist/media/gallery.js +140 -0
  586. package/dist/media/image-cropper.d.ts +86 -0
  587. package/dist/media/image-cropper.js +170 -0
  588. package/dist/media/image-field.d.ts +115 -0
  589. package/dist/media/image-field.js +212 -0
  590. package/dist/media/index.d.ts +19 -0
  591. package/dist/media/index.js +23 -0
  592. package/dist/media/lightbox.d.ts +82 -0
  593. package/dist/media/lightbox.js +171 -0
  594. package/dist/media/link-preview.d.ts +97 -0
  595. package/dist/media/link-preview.js +177 -0
  596. package/dist/media/media-library.d.ts +244 -0
  597. package/dist/media/media-library.js +776 -0
  598. package/dist/media/media-picker.d.ts +96 -0
  599. package/dist/media/media-picker.js +209 -0
  600. package/dist/media/media-provider.d.ts +23 -0
  601. package/dist/media/media-provider.js +44 -0
  602. package/dist/media/media-utils.d.ts +39 -0
  603. package/dist/media/media-utils.js +145 -0
  604. package/dist/media/memory-adapter.d.ts +22 -0
  605. package/dist/media/memory-adapter.js +162 -0
  606. package/dist/media/rest-adapter.d.ts +90 -0
  607. package/dist/media/rest-adapter.js +208 -0
  608. package/dist/media/serp.d.ts +62 -0
  609. package/dist/media/serp.js +108 -0
  610. package/dist/media/test-fixtures.d.ts +3 -0
  611. package/dist/media/test-fixtures.js +37 -0
  612. package/dist/media/types.d.ts +183 -0
  613. package/dist/media/types.js +3 -0
  614. package/dist/media/use-pan-zoom.d.ts +51 -0
  615. package/dist/media/use-pan-zoom.js +156 -0
  616. package/dist/media/use-upload-queue.d.ts +64 -0
  617. package/dist/media/use-upload-queue.js +115 -0
  618. package/dist/media/video-player.d.ts +135 -0
  619. package/dist/media/video-player.js +319 -0
  620. package/dist/motion/core.d.ts +32 -0
  621. package/dist/motion/core.js +77 -0
  622. package/dist/motion/count-up.d.ts +29 -0
  623. package/dist/motion/count-up.js +92 -0
  624. package/dist/motion/index.d.ts +11 -0
  625. package/dist/motion/index.js +13 -0
  626. package/dist/motion/motion-scope.d.ts +17 -0
  627. package/dist/motion/motion-scope.js +16 -0
  628. package/dist/motion/page-transition.d.ts +33 -0
  629. package/dist/motion/page-transition.js +61 -0
  630. package/dist/motion/parallax.d.ts +37 -0
  631. package/dist/motion/parallax.js +90 -0
  632. package/dist/motion/pointer.d.ts +38 -0
  633. package/dist/motion/pointer.js +117 -0
  634. package/dist/motion/reveal.d.ts +72 -0
  635. package/dist/motion/reveal.js +133 -0
  636. package/dist/motion/scroll-shrink.d.ts +18 -0
  637. package/dist/motion/scroll-shrink.js +47 -0
  638. package/dist/motion/skeleton-swap.d.ts +17 -0
  639. package/dist/motion/skeleton-swap.js +43 -0
  640. package/dist/motion/text-reveal.d.ts +30 -0
  641. package/dist/motion/text-reveal.js +29 -0
  642. package/dist/motion/ticker.d.ts +35 -0
  643. package/dist/motion/ticker.js +16 -0
  644. package/dist/next/index.d.ts +42 -0
  645. package/dist/next/index.js +36 -0
  646. package/dist/render/block-renderer.d.ts +56 -0
  647. package/dist/render/block-renderer.js +137 -0
  648. package/dist/render/index.d.ts +6 -0
  649. package/dist/render/index.js +7 -0
  650. package/dist/render/prepare.d.ts +61 -0
  651. package/dist/render/prepare.js +119 -0
  652. package/dist/scheduler/core/duration.d.ts +83 -0
  653. package/dist/scheduler/core/duration.js +174 -0
  654. package/dist/scheduler/core/gantt.d.ts +63 -0
  655. package/dist/scheduler/core/gantt.js +226 -0
  656. package/dist/scheduler/core/index.d.ts +6 -0
  657. package/dist/scheduler/core/index.js +7 -0
  658. package/dist/scheduler/core/layout.d.ts +97 -0
  659. package/dist/scheduler/core/layout.js +249 -0
  660. package/dist/scheduler/core/time-scale.d.ts +89 -0
  661. package/dist/scheduler/core/time-scale.js +173 -0
  662. package/dist/scheduler/gantt.d.ts +125 -0
  663. package/dist/scheduler/gantt.js +532 -0
  664. package/dist/scheduler/index.d.ts +6 -0
  665. package/dist/scheduler/index.js +7 -0
  666. package/dist/scheduler/resource-calendar.d.ts +218 -0
  667. package/dist/scheduler/resource-calendar.js +661 -0
  668. package/dist/scheduler/scheduler.d.ts +168 -0
  669. package/dist/scheduler/scheduler.js +768 -0
  670. package/dist/scheduler/shared.d.ts +63 -0
  671. package/dist/scheduler/shared.js +145 -0
  672. package/dist/scheduler/time-tracker.d.ts +138 -0
  673. package/dist/scheduler/time-tracker.js +403 -0
  674. package/dist/sortable/core.d.ts +67 -0
  675. package/dist/sortable/core.js +167 -0
  676. package/dist/sortable/index.d.ts +8 -0
  677. package/dist/sortable/index.js +10 -0
  678. package/dist/sortable/kanban-core.d.ts +70 -0
  679. package/dist/sortable/kanban-core.js +67 -0
  680. package/dist/sortable/kanban.d.ts +147 -0
  681. package/dist/sortable/kanban.js +472 -0
  682. package/dist/sortable/sortable-list.d.ts +71 -0
  683. package/dist/sortable/sortable-list.js +76 -0
  684. package/dist/sortable/sortable-tree.d.ts +105 -0
  685. package/dist/sortable/sortable-tree.js +462 -0
  686. package/dist/sortable/sortable.d.ts +188 -0
  687. package/dist/sortable/sortable.js +485 -0
  688. package/dist/sortable/use-pointer-drag.d.ts +75 -0
  689. package/dist/sortable/use-pointer-drag.js +173 -0
  690. package/dist/sortable/use-time-scale.d.ts +11 -0
  691. package/dist/sortable/use-time-scale.js +19 -0
  692. package/dist/styles/base.css +51 -0
  693. package/dist/styles/blocks.css +949 -0
  694. package/dist/styles/calendar.css +642 -0
  695. package/dist/styles/charts.css +264 -0
  696. package/dist/styles/data.css +474 -0
  697. package/dist/styles/editors.css +1022 -0
  698. package/dist/styles/forms.css +406 -0
  699. package/dist/styles/media.css +515 -0
  700. package/dist/styles/motion.css +389 -0
  701. package/dist/styles/navigation.css +293 -0
  702. package/dist/styles/overlays.css +244 -0
  703. package/dist/styles.css +743 -0
  704. package/package.json +160 -4
@@ -0,0 +1,368 @@
1
+ "use client";
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Client islands for the server-compatible data-display components (Stat, Delta, Table,
5
+ * Description list, Item, Activity timeline). Each one is small and only exists because it
6
+ * needs the locale context, the clock, the clipboard or keyboard state.
7
+ */
8
+ import * as React from "react";
9
+ import { Check, Copy, Pencil, X } from "lucide-react";
10
+ import { cn } from "./cn.js";
11
+ import { useFormat, useLocale } from "./locale.js";
12
+ import { useLabels } from "./labels.js";
13
+ import { formatValue, dayKey } from "./value-format.js";
14
+ /* ------------------------------------------------------------------ */
15
+ /* Built-in strings */
16
+ /* ------------------------------------------------------------------ */
17
+ export const statLabels = {
18
+ up: "Up {value}",
19
+ down: "Down {value}",
20
+ flat: "No change",
21
+ noData: "No data",
22
+ trendUp: "Trending up over the last {count} periods",
23
+ trendDown: "Trending down over the last {count} periods",
24
+ trendFlat: "Flat over the last {count} periods",
25
+ goal: "Goal {value}",
26
+ goalReached: "Goal reached",
27
+ ofGoal: "{percent} of goal",
28
+ };
29
+ export const timelineLabels = {
30
+ today: "Today",
31
+ yesterday: "Yesterday",
32
+ empty: "No activity yet",
33
+ loadMore: "Load older activity",
34
+ loading: "Loading…",
35
+ newItems: "{count, plural, one {# new update} other {# new updates}}",
36
+ done: "Completed",
37
+ current: "Current step",
38
+ upcoming: "Upcoming",
39
+ failed: "Failed",
40
+ };
41
+ export const descriptionListLabels = {
42
+ copy: "Copy {label}",
43
+ copied: "Copied",
44
+ edit: "Edit {label}",
45
+ save: "Save",
46
+ cancel: "Cancel",
47
+ saving: "Saving…",
48
+ error: "Could not save. Try again.",
49
+ empty: "Not set",
50
+ };
51
+ export const tableLabels = { empty: "No results" };
52
+ const DATA_LABELS = { table: tableLabels, stat: statLabels, timeline: timelineLabels, descriptionList: descriptionListLabels };
53
+ /** One built-in data-display string, translated through LocaleProvider: `<DataLabel ns="timeline" id="today" />`. */
54
+ export function DataLabel({ ns, id, vars, override, }) {
55
+ const t = useLabels(ns, DATA_LABELS[ns], override);
56
+ return _jsx(_Fragment, { children: t(id, vars) });
57
+ }
58
+ /* ------------------------------------------------------------------ */
59
+ /* Numbers */
60
+ /* ------------------------------------------------------------------ */
61
+ /** A locale-formatted value: `<ValueText value={28412} format="compact" />` → "28.4K". */
62
+ export function ValueText({ value, format, options }) {
63
+ const f = useFormat();
64
+ return _jsx(_Fragment, { children: formatValue(f, value, format, options) });
65
+ }
66
+ /** Signed delta text ("+12.4%", "+%12,4" in tr-TR) with a spoken sentence for screen readers. */
67
+ export function DeltaText({ value, kind = "percent", currency, precision, srLabel, srSuffix, labels }) {
68
+ const f = useFormat();
69
+ const t = useLabels("stat", statLabels, labels);
70
+ const digits = precision ?? (kind === "percent" ? 1 : kind === "number" ? 0 : undefined);
71
+ const opts = digits === undefined ? {} : { maximumFractionDigits: digits, minimumFractionDigits: kind === "percent" ? Math.min(digits, 1) : 0 };
72
+ const fmt = (n, sign) => {
73
+ const o = { ...opts, signDisplay: sign ? "exceptZero" : "never" };
74
+ if (kind === "currency")
75
+ return f.currency(n, currency ?? f.currencyCode, o);
76
+ if (kind === "number")
77
+ return f.number(n, o);
78
+ return f.percent(n, o);
79
+ };
80
+ const visible = fmt(value, true);
81
+ const spoken = srLabel ?? `${value === 0 ? t("flat") : t(value > 0 ? "up" : "down", { value: fmt(Math.abs(value), false) })}${srSuffix ? ` ${srSuffix}` : ""}`;
82
+ return (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": true, className: "tabular", children: visible }), _jsx("span", { className: "sr-only", children: spoken })] }));
83
+ }
84
+ /** Progress-to-goal caption: "Goal $46,800" + "27%". */
85
+ export function StatGoalText({ value, target, format, labels }) {
86
+ const f = useFormat();
87
+ const t = useLabels("stat", statLabels, labels);
88
+ const ratio = target > 0 ? value / target : 0;
89
+ return (_jsxs(_Fragment, { children: [_jsx("span", { children: ratio >= 1 ? t("goalReached") : t("goal", { value: formatValue(f, target, format, { maximumFractionDigits: 0 }) }) }), _jsx("span", { className: "tabular", children: f.percent(ratio, { maximumFractionDigits: 0 }) })] }));
90
+ }
91
+ /* ------------------------------------------------------------------ */
92
+ /* Time */
93
+ /* ------------------------------------------------------------------ */
94
+ // One shared minute ticker for every relative time on the page.
95
+ let tickNow = Date.now();
96
+ const tickListeners = new Set();
97
+ let tickTimer;
98
+ function subscribeTick(cb) {
99
+ tickListeners.add(cb);
100
+ if (!tickTimer) {
101
+ tickNow = Date.now();
102
+ tickTimer = setInterval(() => {
103
+ tickNow = Date.now();
104
+ tickListeners.forEach((l) => l());
105
+ }, 30_000);
106
+ }
107
+ return () => {
108
+ tickListeners.delete(cb);
109
+ if (tickListeners.size === 0 && tickTimer) {
110
+ clearInterval(tickTimer);
111
+ tickTimer = undefined;
112
+ }
113
+ };
114
+ }
115
+ /**
116
+ * The current time, refreshed by a shared ticker. `null` during SSR and hydration, so the
117
+ * server and the first client render agree; `fixed` pins the clock (docs, tests).
118
+ */
119
+ export function useNow(fixed) {
120
+ const live = React.useSyncExternalStore(subscribeTick, () => tickNow, () => null);
121
+ if (fixed !== undefined)
122
+ return new Date(fixed).getTime();
123
+ return live;
124
+ }
125
+ /**
126
+ * `<time>` with a relative label ("4 minutes ago", "yesterday") and the full date as `title`.
127
+ * Server render shows the absolute time; the client upgrades it and keeps it fresh.
128
+ */
129
+ export function RelativeTime({ value, now, styleType, display = "relative", className, ...props }) {
130
+ const f = useFormat();
131
+ const current = useNow(now);
132
+ const iso = value instanceof Date ? value.toISOString() : typeof value === "number" ? new Date(value).toISOString() : value;
133
+ const full = f.dateTime(iso);
134
+ const text = display === "time"
135
+ ? f.time(iso)
136
+ : display === "datetime"
137
+ ? full
138
+ : current === null
139
+ ? f.date(iso, "datetime-short")
140
+ : f.relative(iso, { now: current, style: styleType });
141
+ return (_jsx("time", { dateTime: iso, title: full, className: cn("tabular", className), suppressHydrationWarning: true, ...props, children: text }));
142
+ }
143
+ /** Day heading of a grouped timeline: "Today", "Yesterday", "Monday, Nov 8". */
144
+ export function TimelineDayLabel({ date, now, labels }) {
145
+ const { format: f, timeZone, locale } = useLocale();
146
+ const t = useLabels("timeline", timelineLabels, labels);
147
+ const current = useNow(now);
148
+ const thisYear = current === null ? undefined : dayKey(current, timeZone).slice(0, 4);
149
+ const absolute = f.date(date, { weekday: "long", month: "short", day: "numeric", ...(thisYear && thisYear !== date.slice(0, 4) ? { year: "numeric" } : {}) });
150
+ let text = absolute;
151
+ if (current !== null) {
152
+ const today = dayKey(current, timeZone);
153
+ const yesterday = dayKey(current - 86_400_000, timeZone);
154
+ if (date === today)
155
+ text = t("today");
156
+ else if (date === yesterday)
157
+ text = t("yesterday");
158
+ }
159
+ return (_jsx("time", { dateTime: date, lang: locale, title: f.date(date, "full"), children: text }));
160
+ }
161
+ /** Small copy-to-clipboard button with a "Copied" confirmation (visible + announced). */
162
+ export function CopyValueButton({ text, label, labels, className, onCopied }) {
163
+ const t = useLabels("descriptionList", descriptionListLabels, labels);
164
+ const [copied, setCopied] = React.useState(false);
165
+ React.useEffect(() => {
166
+ if (!copied)
167
+ return;
168
+ const id = setTimeout(() => setCopied(false), 1600);
169
+ return () => clearTimeout(id);
170
+ }, [copied]);
171
+ const copy = async () => {
172
+ try {
173
+ await navigator.clipboard.writeText(text);
174
+ }
175
+ catch {
176
+ // Clipboard API unavailable (insecure origin): fall back to a hidden textarea.
177
+ const el = document.createElement("textarea");
178
+ el.value = text;
179
+ el.setAttribute("readonly", "");
180
+ el.style.position = "fixed";
181
+ el.style.opacity = "0";
182
+ document.body.appendChild(el);
183
+ el.select();
184
+ try {
185
+ document.execCommand("copy");
186
+ }
187
+ finally {
188
+ el.remove();
189
+ }
190
+ }
191
+ setCopied(true);
192
+ onCopied?.(text);
193
+ };
194
+ return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-slot": "copy-button", "data-copied": copied ? "" : undefined, "aria-label": t("copy", { label }), title: t("copy", { label }), onClick: copy, className: cn("inline-grid size-6 shrink-0 place-items-center rounded-ui-sm text-fg-subtle transition-colors hover:bg-hover hover:text-fg focus-ring", "data-copied:text-success [&_svg]:size-3.5", className), children: copied ? _jsx(Check, { "aria-hidden": true, strokeWidth: 2.25 }) : _jsx(Copy, { "aria-hidden": true }) }), _jsx("span", { role: "status", className: "sr-only", children: copied ? t("copied") : "" })] }));
195
+ }
196
+ /**
197
+ * Click-to-edit value for Description list rows. The value is a button ("Edit Phone");
198
+ * Enter saves, Escape cancels, focus returns to the value afterwards.
199
+ */
200
+ export function DescriptionEditable({ value, onSave, label, display, inputType = "text", placeholder, disabled, labels, className }) {
201
+ const t = useLabels("descriptionList", descriptionListLabels, labels);
202
+ const [editing, setEditing] = React.useState(false);
203
+ const [draft, setDraft] = React.useState(value);
204
+ const [state, setState] = React.useState("idle");
205
+ const triggerRef = React.useRef(null);
206
+ const inputRef = React.useRef(null);
207
+ const errorId = React.useId();
208
+ const returnFocus = React.useRef(false);
209
+ React.useEffect(() => {
210
+ if (editing) {
211
+ inputRef.current?.focus();
212
+ inputRef.current?.select();
213
+ }
214
+ else if (returnFocus.current) {
215
+ returnFocus.current = false;
216
+ triggerRef.current?.focus();
217
+ }
218
+ }, [editing]);
219
+ const close = () => {
220
+ returnFocus.current = true;
221
+ setEditing(false);
222
+ setState("idle");
223
+ };
224
+ const save = async () => {
225
+ if (draft === value)
226
+ return close();
227
+ setState("saving");
228
+ try {
229
+ await onSave(draft);
230
+ close();
231
+ }
232
+ catch {
233
+ setState("error");
234
+ inputRef.current?.focus();
235
+ }
236
+ };
237
+ if (!editing) {
238
+ return (_jsxs("button", { ref: triggerRef, type: "button", "data-slot": "description-editable", disabled: disabled, "aria-label": `${t("edit", { label })}: ${value || t("empty")}`, onClick: () => {
239
+ setDraft(value);
240
+ setEditing(true);
241
+ }, className: cn("group/edit -mx-1.5 -my-0.5 inline-flex max-w-full items-center gap-2 rounded-ui-sm px-1.5 py-0.5 text-start transition-colors hover:bg-hover focus-ring", "disabled:pointer-events-none", className), children: [_jsx("span", { className: cn("min-w-0 truncate", !value && "text-fg-subtle"), children: display ?? (value || t("empty")) }), _jsx(Pencil, { "aria-hidden": true, className: "size-3 shrink-0 text-fg-subtle opacity-0 transition-opacity group-hover/edit:opacity-100 group-focus-visible/edit:opacity-100 [@media(hover:none)]:opacity-100" })] }));
242
+ }
243
+ return (_jsxs("span", { "data-slot": "description-editor", className: cn("grid gap-1", className), children: [_jsxs("span", { className: "flex items-center gap-1", children: [_jsx("input", { ref: inputRef, type: inputType, value: draft, placeholder: placeholder, "aria-label": label, "aria-invalid": state === "error" || undefined, "aria-describedby": state === "error" ? errorId : undefined, "aria-busy": state === "saving" || undefined, readOnly: state === "saving", onChange: (e) => setDraft(e.target.value), onKeyDown: (e) => {
244
+ if (e.key === "Enter") {
245
+ e.preventDefault();
246
+ void save();
247
+ }
248
+ else if (e.key === "Escape") {
249
+ e.preventDefault();
250
+ e.stopPropagation();
251
+ close();
252
+ }
253
+ }, className: cn("h-[calc(var(--control-h)-0.5rem)] min-w-0 flex-1 rounded-ui-sm border border-field-border bg-field px-2 text-[13px] text-fg outline-none", "focus-visible:border-ring focus-visible:shadow-[0_0_0_3px_var(--accent-soft)] aria-invalid:border-danger") }), _jsx("button", { type: "button", "aria-label": state === "saving" ? t("saving") : t("save"), disabled: state === "saving", onClick: () => void save(), className: "inline-grid size-7 shrink-0 place-items-center rounded-ui-sm text-accent-ink hover:bg-hover focus-ring disabled:opacity-50 [&_svg]:size-3.5", children: _jsx(Check, { "aria-hidden": true, strokeWidth: 2.25 }) }), _jsx("button", { type: "button", "aria-label": t("cancel"), disabled: state === "saving", onClick: close, className: "inline-grid size-7 shrink-0 place-items-center rounded-ui-sm text-fg-muted hover:bg-hover focus-ring disabled:opacity-50 [&_svg]:size-3.5", children: _jsx(X, { "aria-hidden": true }) })] }), state === "error" ? (_jsx("span", { id: errorId, role: "alert", className: "text-xs text-danger", children: t("error") })) : null, state === "saving" ? (_jsx("span", { role: "status", className: "sr-only", children: t("saving") })) : null] }));
254
+ }
255
+ const optionValue = (el) => el.props.value ?? el.props["data-value"];
256
+ /**
257
+ * Listbox behaviour for `ItemList selectable`: roving focus, ↑ ↓ Home End, Space/Enter toggles,
258
+ * click selects. Direct `Item` children with a `value` become options.
259
+ */
260
+ export const ItemListbox = React.forwardRef(function ItemListbox({ selectable, value: valueProp, defaultValue, onValueChange, children, onKeyDown, className, ...props }, ref) {
261
+ const [inner, setInner] = React.useState(defaultValue ?? []);
262
+ const value = valueProp ?? inner;
263
+ const baseId = React.useId();
264
+ const [active, setActive] = React.useState(undefined);
265
+ const listRef = React.useRef(null);
266
+ const options = [];
267
+ React.Children.forEach(children, (child) => {
268
+ if (!React.isValidElement(child))
269
+ return;
270
+ const v = optionValue(child);
271
+ if (v !== undefined)
272
+ options.push({ value: v, disabled: Boolean(child.props.disabled || child.props["aria-disabled"] === true || child.props["aria-disabled"] === "true") });
273
+ });
274
+ const enabled = options.filter((o) => !o.disabled);
275
+ const focusValue = active ?? value.find((v) => enabled.some((o) => o.value === v)) ?? enabled[0]?.value;
276
+ const commit = (next) => {
277
+ if (valueProp === undefined)
278
+ setInner(next);
279
+ onValueChange?.(next);
280
+ };
281
+ const toggle = (v) => {
282
+ if (selectable === "single")
283
+ commit(value[0] === v ? [] : [v]);
284
+ else
285
+ commit(value.includes(v) ? value.filter((x) => x !== v) : [...value, v]);
286
+ };
287
+ const focusOption = (v) => {
288
+ if (v === undefined)
289
+ return;
290
+ setActive(v);
291
+ const el = listRef.current?.querySelector(`[data-option-value="${CSS.escape(v)}"]`);
292
+ el?.focus();
293
+ };
294
+ const handleKeyDown = (e) => {
295
+ onKeyDown?.(e);
296
+ if (e.defaultPrevented || enabled.length === 0)
297
+ return;
298
+ const idx = Math.max(0, enabled.findIndex((o) => o.value === focusValue));
299
+ const keyMap = { ArrowDown: idx + 1, ArrowUp: idx - 1, Home: 0, End: enabled.length - 1 };
300
+ if (e.key in keyMap) {
301
+ e.preventDefault();
302
+ const next = Math.min(enabled.length - 1, Math.max(0, keyMap[e.key]));
303
+ focusOption(enabled[next].value);
304
+ if (selectable === "multiple" && e.shiftKey && (e.key === "ArrowDown" || e.key === "ArrowUp")) {
305
+ const v = enabled[next].value;
306
+ if (!value.includes(v))
307
+ commit([...value, v]);
308
+ }
309
+ }
310
+ else if ((e.key === " " || e.key === "Enter") && focusValue !== undefined) {
311
+ e.preventDefault();
312
+ toggle(focusValue);
313
+ }
314
+ else if (selectable === "multiple" && (e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "a") {
315
+ e.preventDefault();
316
+ commit(value.length === enabled.length ? [] : enabled.map((o) => o.value));
317
+ }
318
+ };
319
+ return (_jsx("ul", { ref: (node) => {
320
+ listRef.current = node;
321
+ if (typeof ref === "function")
322
+ ref(node);
323
+ else if (ref)
324
+ ref.current = node;
325
+ }, role: "listbox", "aria-multiselectable": selectable === "multiple" || undefined, onKeyDown: handleKeyDown, className: className, ...props, children: React.Children.map(children, (child) => {
326
+ if (!React.isValidElement(child))
327
+ return child;
328
+ const v = optionValue(child);
329
+ if (v === undefined)
330
+ return child;
331
+ const opt = options.find((o) => o.value === v);
332
+ const selected = value.includes(v);
333
+ return React.cloneElement(child, {
334
+ role: "option",
335
+ id: `${baseId}-${v}`,
336
+ "aria-selected": selected,
337
+ "aria-disabled": opt.disabled || undefined,
338
+ "data-state": selected ? "selected" : undefined,
339
+ "data-option-value": v,
340
+ tabIndex: !opt.disabled && v === focusValue ? 0 : -1,
341
+ onFocus: () => setActive(v),
342
+ onClick: (e) => {
343
+ child.props.onClick?.(e);
344
+ if (!opt.disabled) {
345
+ setActive(v);
346
+ toggle(v);
347
+ }
348
+ },
349
+ });
350
+ }) }));
351
+ });
352
+ /* ------------------------------------------------------------------ */
353
+ /* Load more */
354
+ /* ------------------------------------------------------------------ */
355
+ /** "Load older activity" button with a busy state while `onLoadMore` resolves. */
356
+ export function LoadMoreButton({ onLoadMore, label, className, labels }) {
357
+ const t = useLabels("timeline", timelineLabels, labels);
358
+ const [busy, setBusy] = React.useState(false);
359
+ return (_jsxs("button", { type: "button", "aria-busy": busy || undefined, disabled: busy, onClick: async () => {
360
+ setBusy(true);
361
+ try {
362
+ await onLoadMore();
363
+ }
364
+ finally {
365
+ setBusy(false);
366
+ }
367
+ }, className: cn("inline-flex h-8 items-center gap-2 rounded-ui-sm px-3 text-[13px] font-medium text-fg-muted transition-colors hover:bg-hover hover:text-fg focus-ring disabled:opacity-60", className), children: [busy ? _jsx("span", { "aria-hidden": true, className: "size-3 animate-spin rounded-full border-[1.5px] border-current border-e-transparent motion-reduce:animate-none" }) : null, busy ? t("loading") : (label ?? t("loadMore"))] }));
368
+ }
@@ -0,0 +1,129 @@
1
+ import type { Locale as DateFnsLocale } from "date-fns";
2
+ /** A date-only value, `YYYY-MM-DD`. */
3
+ export type IsoDateString = string;
4
+ /** A from–to range of date-only values. `to` is missing while the user is still picking. */
5
+ export interface IsoDateRange {
6
+ from: IsoDateString;
7
+ to?: IsoDateString;
8
+ }
9
+ /** `YYYY-MM-DD` of a `Date` in the local calendar (no UTC shift). */
10
+ export declare function dateToIso(date: Date): IsoDateString;
11
+ /** A `YYYY-MM-DD` string as a local-midnight `Date`, or `null` when malformed / non-existent. */
12
+ export declare function isoToDate(value: string | null | undefined): Date | null;
13
+ /** True for a well-formed, existing `YYYY-MM-DD` date. */
14
+ export declare function isIsoDateString(value: unknown): value is IsoDateString;
15
+ /** Today as `YYYY-MM-DD` in the local calendar (or in `timeZone` when given). */
16
+ export declare function todayIso(timeZone?: string, now?: Date): IsoDateString;
17
+ /** Adds whole days to a `YYYY-MM-DD` string. */
18
+ export declare function addIsoDays(value: IsoDateString, days: number): IsoDateString;
19
+ /** Days from `a` to `b` (`b − a`), DST-safe. */
20
+ export declare function isoDiffDays(a: IsoDateString, b: IsoDateString): number;
21
+ /** Inclusive number of days in a range (`1` for a single-day range). */
22
+ export declare function rangeLength(range: IsoDateRange | null | undefined): number;
23
+ /** ISO weekday of a local date: 1 = Monday … 7 = Sunday. */
24
+ export declare function isoWeekdayOf(date: Date): number;
25
+ /**
26
+ * Registers a date-fns locale for a BCP 47 tag or language, so the calendars use its month and
27
+ * weekday names. `en-US` and `tr` ship built in.
28
+ *
29
+ * ```ts
30
+ * import { de } from "date-fns/locale/de";
31
+ * registerDateLocale("de", de);
32
+ * ```
33
+ */
34
+ export declare function registerDateLocale(tag: string, locale: DateFnsLocale): void;
35
+ /** The date-fns locale for a BCP 47 tag: exact tag, then language, then `en-US`. */
36
+ export declare function getDateFnsLocale(tag: string): DateFnsLocale;
37
+ export type DatePart = "day" | "month" | "year";
38
+ export interface DatePattern {
39
+ /** Order of the numeric parts in the locale, e.g. `["month","day","year"]` for en-US. */
40
+ order: DatePart[];
41
+ /** Separator between parts (`/`, `.`, `-`). */
42
+ separator: string;
43
+ /** date-fns pattern, e.g. `"MM/dd/yyyy"` (en-US), `"dd.MM.yyyy"` (tr). */
44
+ pattern: string;
45
+ }
46
+ /** The numeric short-date pattern of a locale, read from `Intl.DateTimeFormat#formatToParts`. */
47
+ export declare function getDatePattern(locale: string): DatePattern;
48
+ /**
49
+ * The placeholder for a typed date: the locale pattern spelled with `tokens`
50
+ * (`"MM/DD/YYYY"` for en-US; tr with `{ day: "GG", month: "AA" }` → `"GG.AA.YYYY"`).
51
+ */
52
+ export declare function datePlaceholder(locale: string, tokens?: Partial<Record<DatePart, string>>): string;
53
+ /** A `YYYY-MM-DD` value in the locale's numeric pattern (`"11/23/2026"`, `"23.11.2026"`). */
54
+ export declare function formatDateInput(value: IsoDateString | null | undefined, locale: string): string;
55
+ export interface ParseDateOptions {
56
+ /** Reference date for partial input and relative words. Default: now. */
57
+ reference?: Date;
58
+ /** Relative words, lower case. Default English `today / tomorrow / yesterday`. */
59
+ words?: {
60
+ today?: string[];
61
+ tomorrow?: string[];
62
+ yesterday?: string[];
63
+ };
64
+ }
65
+ /**
66
+ * Parses what a person types into a date field. Returns `YYYY-MM-DD` or `null`.
67
+ *
68
+ * Accepts the locale's numeric pattern with any of `. / - ␣` as separator, digits only
69
+ * (`11232026` / `23112026`), partial dates (day + month = this year), two-digit years, ISO
70
+ * `2026-11-23`, month names (`Nov 23, 2026`, `23 Kasım 2026`), relative words and `+3` / `-2` days.
71
+ *
72
+ * ```ts
73
+ * parseDateInput("11/23/2026", "en-US"); // "2026-11-23"
74
+ * parseDateInput("23.11", "tr-TR"); // "2026-11-23" (this year)
75
+ * parseDateInput("tomorrow", "en-US"); // the day after today
76
+ * ```
77
+ */
78
+ export declare function parseDateInput(input: string, locale: string, options?: ParseDateOptions): IsoDateString | null;
79
+ export interface TimeParts {
80
+ hour: number;
81
+ minute: number;
82
+ second: number;
83
+ }
84
+ /** `"14:30"` / `"14:30:05"` → parts, or `null` when malformed or out of range. */
85
+ export declare function parseTime(value: string | null | undefined): TimeParts | null;
86
+ /** Parts → `"HH:mm"` (or `"HH:mm:ss"` with `seconds`). */
87
+ export declare function formatTimeValue(parts: TimeParts, seconds?: boolean): string;
88
+ /** Minutes since midnight of `"HH:mm[:ss]"` (seconds ignored), or `NaN`. */
89
+ export declare function timeToMinutes(value: string | null | undefined): number;
90
+ /** Minutes since midnight → `"HH:mm"` (wraps past midnight). */
91
+ export declare function minutesToTime(minutes: number): string;
92
+ /** Compares two `"HH:mm[:ss]"` strings. */
93
+ export declare function compareTime(a: string, b: string): number;
94
+ /** 12 for locales that show AM/PM (en-US), 24 otherwise (tr, most of Europe). */
95
+ export declare function getHourCycle(locale: string): 12 | 24;
96
+ /** AM / PM labels of a locale (`["AM","PM"]`, `["ÖÖ","ÖS"]`). */
97
+ export declare function getDayPeriodLabels(locale: string): [am: string, pm: string];
98
+ /** The time separator of a locale (`":"` almost everywhere, `"."` for some). */
99
+ export declare function getTimeSeparator(locale: string): string;
100
+ /** Whether the locale puts the day period before the hour (ko, zh). */
101
+ export declare function dayPeriodFirst(locale: string): boolean;
102
+ /** A list of times from `start` to `end` (inclusive of start, exclusive of end) every `step` minutes. */
103
+ export declare function timeSlots(step?: number, start?: string, end?: string): string[];
104
+ /** A quick choice in the Date range picker ("Last 7 days"). `range` is computed from `today`. */
105
+ export interface DateRangePreset {
106
+ id: string;
107
+ label: string;
108
+ range: (today: IsoDateString, ctx: {
109
+ weekStartsOn: number;
110
+ }) => {
111
+ from: IsoDateString;
112
+ to: IsoDateString;
113
+ };
114
+ }
115
+ /** English labels of the default presets (the `dateRangePicker` namespace overrides them). */
116
+ export declare const defaultPresetLabels: {
117
+ readonly today: "Today";
118
+ readonly yesterday: "Yesterday";
119
+ readonly last7: "Last 7 days";
120
+ readonly last30: "Last 30 days";
121
+ readonly thisWeek: "This week";
122
+ readonly thisMonth: "This month";
123
+ readonly lastMonth: "Last month";
124
+ readonly last90: "Last 90 days";
125
+ readonly thisYear: "This year";
126
+ };
127
+ export type PresetLabelKey = keyof typeof defaultPresetLabels;
128
+ /** The built-in presets. `weekStartsOn` (0 = Sunday … 6) comes from the locale's week info. */
129
+ export declare function defaultRangePresets(labels?: Partial<Record<PresetLabelKey, string>>): DateRangePreset[];