@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,33 @@
1
+ // Public helpers re-exported from the package root. Owned by the foundations group.
2
+ // Component authors: import from these modules directly (`../lib/labels`, `../lib/variants`…).
3
+ export { cn } from "./cn.js";
4
+ // Locale, built-in strings, formatting
5
+ export { LocaleProvider, useLocale, useMessages, useFormat, useText, mergeMessages, directionOf, } from "./locale.js";
6
+ export { useLabels, createLabels, resolveLabels } from "./labels.js";
7
+ export { formatMessage } from "./message-format.js";
8
+ export { en } from "../locales/en.js";
9
+ // Text (search, sort, case, initials, slugs)
10
+ export { foldText, matchText, highlightText, highlightParts, cmdkFilter, compareText, getCollator, upperText, lowerText, initials, slugify, registerTextRules, baseLanguage, } from "./text.js";
11
+ // Hooks
12
+ export { useControllableState, useLatest, useEventCallback, useIsomorphicLayoutEffect } from "./use-controllable-state.js";
13
+ export { composeRefs, useComposedRefs, mergeIds, setRef } from "./compose-refs.js";
14
+ export { useMediaQuery, useBreakpoint, breakpoints } from "./use-media-query.js";
15
+ export { useReducedMotion, useReducedTransparency } from "./use-reduced-motion.js";
16
+ export { useHotkeys, useIsMac, isApplePlatform, parseShortcut, matchesShortcut, shortcutKeys, formatKey, formatShortcut, } from "./use-hotkeys.js";
17
+ export { useHoverIntent } from "./use-hover-intent.js";
18
+ export { useContainerWidth } from "./use-container-width.js";
19
+ // Shared variants & menu model
20
+ export { controlVariants, itemVariants, itemSlots, } from "./variants.js";
21
+ // Theming, portals, layers
22
+ export { ThemeScope, PortalContainer, usePortalContainer, themeAttributes } from "./theme-scope.js";
23
+ export { Layer, LayerProvider, useLayerDepth, layerAttributes } from "./layer.js";
24
+ // App bridge
25
+ export { VamosProvider, useVamos, useLink, useImage, useCan, useNavigation, useMediaAdapter, SmartLink, DefaultLink, DefaultImage, isExternalHref, } from "./provider.js";
26
+ // Async lists (Combobox, Record picker and custom pickers build on it)
27
+ export { useAsyncList } from "./use-async-list.js";
28
+ // Colour parsing, formatting and contrast (Color picker)
29
+ export { parseColor, toHex, formatColor, contrastRatio, contrastLevel, readableOn } from "./color.js";
30
+ // Forms
31
+ export { FieldContext, useFieldContext, useFieldControl, FieldContextReset, focusFirstInvalid } from "./field-context.js";
32
+ // Client islands for server-compatible components
33
+ export { ChipRemoveButton, LocalizedText, LocaleCount } from "./islands.js";
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ /**
3
+ * A fuller accessible name for a control whose visible text is a short summary (a calendar event
4
+ * showing "9:00 Standup" that screen readers should hear as "Standup, Monday, 9:00 to 9:15").
5
+ *
6
+ * Use it instead of an `aria-label` that differs from the visible text, which fails WCAG 2.5.3
7
+ * label-in-name (axe `label-content-name-mismatch`). The name is read from a visually hidden span;
8
+ * the visible content is hidden from assistive tech so it isn't read twice. Never wrap focusable
9
+ * content in it (that content would be `aria-hidden`).
10
+ *
11
+ * ```tsx
12
+ * <button><SrName name={describe(event)}>{time} {title}</SrName></button>
13
+ * ```
14
+ */
15
+ export declare function SrName({ name, children }: {
16
+ name: string;
17
+ children?: React.ReactNode;
18
+ }): React.JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * A fuller accessible name for a control whose visible text is a short summary (a calendar event
4
+ * showing "9:00 Standup" that screen readers should hear as "Standup, Monday, 9:00 to 9:15").
5
+ *
6
+ * Use it instead of an `aria-label` that differs from the visible text, which fails WCAG 2.5.3
7
+ * label-in-name (axe `label-content-name-mismatch`). The name is read from a visually hidden span;
8
+ * the visible content is hidden from assistive tech so it isn't read twice. Never wrap focusable
9
+ * content in it (that content would be `aria-hidden`).
10
+ *
11
+ * ```tsx
12
+ * <button><SrName name={describe(event)}>{time} {title}</SrName></button>
13
+ * ```
14
+ */
15
+ export function SrName({ name, children }) {
16
+ return (_jsxs(_Fragment, { children: [_jsx("span", { className: "sr-only", children: name }), _jsx("span", { "aria-hidden": true, className: "contents", children: children })] }));
17
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Locale-aware text helpers — the single source for search, typeahead, sorting, initials and
3
+ * slugs in the kit. React-free (works in server components).
4
+ *
5
+ * Why: `"İ".toLowerCase()` is `"i̇"` (two code units), `"ı".toUpperCase()` is `"I"`, and people
6
+ * type "cagri" when they mean "Çağrı". Every function takes a BCP 47 `locale` (default `"en"`);
7
+ * pass `useLocale().locale` from components, or use the bound `useText()` hook.
8
+ */
9
+ export interface TextRules {
10
+ /** Extra per-character folds applied after locale lowercasing (must map 1 char → 1 char). */
11
+ fold?: Record<string, string>;
12
+ /** Per-character slug transliteration applied before the generic one (may expand: "ä" → "ae"). */
13
+ slug?: Record<string, string>;
14
+ /** Word used for "&" in slugs ("and", "ve", "und"). */
15
+ and?: string;
16
+ }
17
+ /** Register (or extend) the rules for a language, e.g. `registerTextRules("fr", { and: "et" })`. */
18
+ export declare function registerTextRules(lang: string, r: TextRules): void;
19
+ /** Base language of a BCP 47 tag: `"tr-TR"` → `"tr"`. */
20
+ export declare function baseLanguage(locale?: string): string;
21
+ /**
22
+ * Folds text for search: locale lowercase + diacritic stripping + locale rules.
23
+ * The result has **exactly the same length** as the input (1:1 per UTF-16 unit), so indexes
24
+ * found in the folded string are valid on the original (see `highlightText`).
25
+ *
26
+ * ```ts
27
+ * foldText("İSTANBUL", "tr"); // "istanbul"
28
+ * foldText("Çağrı Işık", "tr"); // "cagri isik"
29
+ * ```
30
+ */
31
+ export declare function foldText(s: string, locale?: string): string;
32
+ /**
33
+ * `true` when every word of `query` occurs in `text` (order-independent, folded).
34
+ * An empty query matches everything.
35
+ *
36
+ * ```ts
37
+ * matchText("Çağrı Yılmaz", "yilmaz cag", "tr"); // true
38
+ * ```
39
+ */
40
+ export declare function matchText(text: string, query: string, locale?: string): boolean;
41
+ /**
42
+ * Match ranges `[start, end)` of every query word in `text`, sorted and merged. Indexes are
43
+ * valid on the original string because folding preserves length.
44
+ */
45
+ export declare function highlightText(text: string, query: string, locale?: string): Array<[start: number, end: number]>;
46
+ /**
47
+ * `text` split into matched / unmatched parts, ready to render:
48
+ *
49
+ * ```tsx
50
+ * {highlightParts(label, query, locale).map((p, i) => (p.match ? <mark key={i}>{p.text}</mark> : p.text))}
51
+ * ```
52
+ */
53
+ export declare function highlightParts(text: string, query: string, locale?: string): Array<{
54
+ text: string;
55
+ match: boolean;
56
+ }>;
57
+ /**
58
+ * A score function for cmdk's `filter` prop (0 = hidden, 1 = best):
59
+ * exact > prefix > word start > contains > keyword match. Every query word must match.
60
+ *
61
+ * ```tsx
62
+ * <Command filter={cmdkFilter(locale)}>
63
+ * ```
64
+ */
65
+ export declare function cmdkFilter(locale?: string): (value: string, search: string, keywords?: string[]) => number;
66
+ /** Cached `Intl.Collator(locale, { sensitivity: "base", numeric: true })`. */
67
+ export declare function getCollator(locale?: string, options?: Intl.CollatorOptions): Intl.Collator;
68
+ /**
69
+ * A locale-aware comparator for `Array.prototype.sort`: "Çiçek" sorts after "Cem" in Turkish,
70
+ * "item 10" after "item 9".
71
+ */
72
+ export declare function compareText(locale?: string, options?: Intl.CollatorOptions): (a: string, b: string) => number;
73
+ /** `toLocaleUpperCase` with the right language (tr: "i" → "İ"). Use instead of CSS `text-transform`. */
74
+ export declare const upperText: (s: string, locale?: string) => string;
75
+ /** `toLocaleLowerCase` with the right language (tr: "I" → "ı"). */
76
+ export declare const lowerText: (s: string, locale?: string) => string;
77
+ /**
78
+ * Initials for avatars: first letter of the first and last word, uppercased with the locale.
79
+ *
80
+ * ```ts
81
+ * initials("ilker şahin", "tr"); // "İŞ"
82
+ * initials("Ada Lovelace"); // "AL"
83
+ * ```
84
+ */
85
+ export declare function initials(name: string, locale?: string, max?: 1 | 2): string;
86
+ export interface SlugifyOptions {
87
+ locale?: string;
88
+ /** Default 80. Cut at a separator when possible. */
89
+ maxLength?: number;
90
+ separator?: "-" | "_";
91
+ }
92
+ /**
93
+ * URL slug with locale transliteration.
94
+ *
95
+ * ```ts
96
+ * slugify("Çağrı Merkezi & Destek", { locale: "tr" }); // "cagri-merkezi-ve-destek"
97
+ * slugify("Größe über alles", { locale: "de" }); // "groesse-ueber-alles"
98
+ * ```
99
+ */
100
+ export declare function slugify(s: string, opts?: SlugifyOptions): string;
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Locale-aware text helpers — the single source for search, typeahead, sorting, initials and
3
+ * slugs in the kit. React-free (works in server components).
4
+ *
5
+ * Why: `"İ".toLowerCase()` is `"i̇"` (two code units), `"ı".toUpperCase()` is `"I"`, and people
6
+ * type "cagri" when they mean "Çağrı". Every function takes a BCP 47 `locale` (default `"en"`);
7
+ * pass `useLocale().locale` from components, or use the bound `useText()` hook.
8
+ */
9
+ /** Folds that apply in every locale (characters without a Unicode decomposition). */
10
+ const GENERIC_FOLD = { ı: "i", ø: "o", ł: "l", đ: "d", ħ: "h", ŧ: "t", ŀ: "l" };
11
+ const GENERIC_SLUG = { ß: "ss", æ: "ae", œ: "oe", ø: "o", ł: "l", đ: "d", ð: "d", þ: "th", ı: "i", ħ: "h" };
12
+ const rules = new Map([
13
+ ["en", { and: "and" }],
14
+ // Turkish: dotted/dotless i are handled by toLocaleLowerCase("tr"); the rest decompose (ç ğ ş ö ü).
15
+ ["tr", { and: "ve" }],
16
+ ["de", { and: "und", slug: { ä: "ae", ö: "oe", ü: "ue", ß: "ss" } }],
17
+ ["az", { and: "və", slug: { ə: "e" }, fold: { ə: "e" } }],
18
+ ]);
19
+ const foldCache = new Map();
20
+ /** Register (or extend) the rules for a language, e.g. `registerTextRules("fr", { and: "et" })`. */
21
+ export function registerTextRules(lang, r) {
22
+ const key = lang.toLowerCase();
23
+ const prev = rules.get(key) ?? {};
24
+ rules.set(key, { ...prev, ...r, fold: { ...prev.fold, ...r.fold }, slug: { ...prev.slug, ...r.slug } });
25
+ foldCache.delete(key);
26
+ }
27
+ /** Base language of a BCP 47 tag: `"tr-TR"` → `"tr"`. */
28
+ export function baseLanguage(locale) {
29
+ return (locale || "en").split(/[-_]/)[0].toLowerCase();
30
+ }
31
+ const MARKS = /[\u0300-\u036f]/g;
32
+ function foldChar(c, lang, r) {
33
+ let lower = c.toLocaleLowerCase(lang);
34
+ if (lower.length !== 1) {
35
+ // e.g. "İ" → "i̇" outside Turkish: drop the combining mark, keep 1:1 length.
36
+ const stripped = lower.normalize("NFD").replace(MARKS, "");
37
+ lower = stripped.length === 1 ? stripped : c;
38
+ }
39
+ const custom = r?.fold?.[lower] ?? GENERIC_FOLD[lower];
40
+ if (custom)
41
+ return custom;
42
+ const base = lower.normalize("NFD").replace(MARKS, "");
43
+ return base.length === 1 ? base : lower;
44
+ }
45
+ /**
46
+ * Folds text for search: locale lowercase + diacritic stripping + locale rules.
47
+ * The result has **exactly the same length** as the input (1:1 per UTF-16 unit), so indexes
48
+ * found in the folded string are valid on the original (see `highlightText`).
49
+ *
50
+ * ```ts
51
+ * foldText("İSTANBUL", "tr"); // "istanbul"
52
+ * foldText("Çağrı Işık", "tr"); // "cagri isik"
53
+ * ```
54
+ */
55
+ export function foldText(s, locale) {
56
+ const lang = baseLanguage(locale);
57
+ const r = rules.get(lang);
58
+ let cache = foldCache.get(lang);
59
+ if (!cache)
60
+ foldCache.set(lang, (cache = new Map()));
61
+ let out = "";
62
+ for (let i = 0; i < s.length; i++) {
63
+ const c = s[i];
64
+ const code = c.charCodeAt(0);
65
+ // Surrogate halves (emoji etc.) and plain ASCII lowercase/digits pass through.
66
+ if ((code >= 0xd800 && code <= 0xdfff) || (code >= 0x61 && code <= 0x7a) || (code >= 0x30 && code <= 0x39) || code === 0x20) {
67
+ out += c;
68
+ continue;
69
+ }
70
+ let f = cache.get(c);
71
+ if (f === undefined)
72
+ cache.set(c, (f = foldChar(c, lang, r)));
73
+ out += f;
74
+ }
75
+ return out;
76
+ }
77
+ const words = (q) => q.split(/\s+/).filter(Boolean);
78
+ /**
79
+ * `true` when every word of `query` occurs in `text` (order-independent, folded).
80
+ * An empty query matches everything.
81
+ *
82
+ * ```ts
83
+ * matchText("Çağrı Yılmaz", "yilmaz cag", "tr"); // true
84
+ * ```
85
+ */
86
+ export function matchText(text, query, locale) {
87
+ const t = foldText(text, locale);
88
+ return words(foldText(query, locale)).every((w) => t.includes(w));
89
+ }
90
+ /**
91
+ * Match ranges `[start, end)` of every query word in `text`, sorted and merged. Indexes are
92
+ * valid on the original string because folding preserves length.
93
+ */
94
+ export function highlightText(text, query, locale) {
95
+ const t = foldText(text, locale);
96
+ const ranges = [];
97
+ for (const w of words(foldText(query, locale))) {
98
+ let from = 0;
99
+ for (let i = t.indexOf(w, from); i !== -1; i = t.indexOf(w, from)) {
100
+ ranges.push([i, i + w.length]);
101
+ from = i + w.length;
102
+ }
103
+ }
104
+ ranges.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
105
+ const merged = [];
106
+ for (const r of ranges) {
107
+ const last = merged[merged.length - 1];
108
+ if (last && r[0] <= last[1])
109
+ last[1] = Math.max(last[1], r[1]);
110
+ else
111
+ merged.push([r[0], r[1]]);
112
+ }
113
+ return merged;
114
+ }
115
+ /**
116
+ * `text` split into matched / unmatched parts, ready to render:
117
+ *
118
+ * ```tsx
119
+ * {highlightParts(label, query, locale).map((p, i) => (p.match ? <mark key={i}>{p.text}</mark> : p.text))}
120
+ * ```
121
+ */
122
+ export function highlightParts(text, query, locale) {
123
+ const out = [];
124
+ let pos = 0;
125
+ for (const [s, e] of highlightText(text, query, locale)) {
126
+ if (s > pos)
127
+ out.push({ text: text.slice(pos, s), match: false });
128
+ out.push({ text: text.slice(s, e), match: true });
129
+ pos = e;
130
+ }
131
+ if (pos < text.length || out.length === 0)
132
+ out.push({ text: text.slice(pos), match: false });
133
+ return out;
134
+ }
135
+ /**
136
+ * A score function for cmdk's `filter` prop (0 = hidden, 1 = best):
137
+ * exact > prefix > word start > contains > keyword match. Every query word must match.
138
+ *
139
+ * ```tsx
140
+ * <Command filter={cmdkFilter(locale)}>
141
+ * ```
142
+ */
143
+ export function cmdkFilter(locale) {
144
+ return (value, search, keywords) => {
145
+ const q = foldText(search.trim(), locale);
146
+ if (!q)
147
+ return 1;
148
+ const v = foldText(value, locale);
149
+ if (v === q)
150
+ return 1;
151
+ if (v.startsWith(q))
152
+ return 0.9;
153
+ const qs = words(q);
154
+ const vWords = words(v.replace(/[^\p{L}\p{N}\s]+/gu, " "));
155
+ if (qs.every((w) => vWords.some((vw) => vw.startsWith(w))))
156
+ return 0.75;
157
+ if (qs.every((w) => v.includes(w)))
158
+ return 0.5;
159
+ const k = foldText((keywords ?? []).join(" "), locale);
160
+ if (k && qs.every((w) => v.includes(w) || k.includes(w)))
161
+ return 0.3;
162
+ return 0;
163
+ };
164
+ }
165
+ const collators = new Map();
166
+ /** Cached `Intl.Collator(locale, { sensitivity: "base", numeric: true })`. */
167
+ export function getCollator(locale = "en", options) {
168
+ const key = locale + (options ? JSON.stringify(options) : "");
169
+ let c = collators.get(key);
170
+ if (!c)
171
+ collators.set(key, (c = new Intl.Collator(locale, { sensitivity: "base", numeric: true, ...options })));
172
+ return c;
173
+ }
174
+ /**
175
+ * A locale-aware comparator for `Array.prototype.sort`: "Çiçek" sorts after "Cem" in Turkish,
176
+ * "item 10" after "item 9".
177
+ */
178
+ export function compareText(locale, options) {
179
+ return getCollator(locale, options).compare;
180
+ }
181
+ /** `toLocaleUpperCase` with the right language (tr: "i" → "İ"). Use instead of CSS `text-transform`. */
182
+ export const upperText = (s, locale) => s.toLocaleUpperCase(baseLanguage(locale));
183
+ /** `toLocaleLowerCase` with the right language (tr: "I" → "ı"). */
184
+ export const lowerText = (s, locale) => s.toLocaleLowerCase(baseLanguage(locale));
185
+ /**
186
+ * Initials for avatars: first letter of the first and last word, uppercased with the locale.
187
+ *
188
+ * ```ts
189
+ * initials("ilker şahin", "tr"); // "İŞ"
190
+ * initials("Ada Lovelace"); // "AL"
191
+ * ```
192
+ */
193
+ export function initials(name, locale, max = 2) {
194
+ const parts = name
195
+ .replace(/@.*$/, "")
196
+ .split(/[\s._-]+/)
197
+ .map((w) => Array.from(w).find((ch) => /\p{L}|\p{N}/u.test(ch)))
198
+ .filter((ch) => Boolean(ch));
199
+ if (parts.length === 0)
200
+ return "";
201
+ const picked = max === 1 || parts.length === 1 ? [parts[0]] : [parts[0], parts[parts.length - 1]];
202
+ return upperText(picked.join(""), locale);
203
+ }
204
+ /**
205
+ * URL slug with locale transliteration.
206
+ *
207
+ * ```ts
208
+ * slugify("Çağrı Merkezi & Destek", { locale: "tr" }); // "cagri-merkezi-ve-destek"
209
+ * slugify("Größe über alles", { locale: "de" }); // "groesse-ueber-alles"
210
+ * ```
211
+ */
212
+ export function slugify(s, opts = {}) {
213
+ const { locale, maxLength = 80, separator = "-" } = opts;
214
+ const lang = baseLanguage(locale);
215
+ const r = rules.get(lang);
216
+ const lower = s.toLocaleLowerCase(lang);
217
+ let out = "";
218
+ for (const ch of lower)
219
+ out += r?.slug?.[ch] ?? GENERIC_SLUG[ch] ?? ch;
220
+ out = out
221
+ .normalize("NFD")
222
+ .replace(MARKS, "")
223
+ .replace(/&/g, ` ${r?.and ?? "and"} `)
224
+ .replace(/['’`]/g, "")
225
+ .replace(/[^a-z0-9]+/g, separator)
226
+ .replace(new RegExp(`^\\${separator}+|\\${separator}+$`, "g"), "");
227
+ if (out.length > maxLength) {
228
+ const cut = out.slice(0, maxLength);
229
+ const at = cut.lastIndexOf(separator);
230
+ out = (at > maxLength * 0.5 ? cut.slice(0, at) : cut).replace(new RegExp(`\\${separator}+$`), "");
231
+ }
232
+ return out;
233
+ }
@@ -0,0 +1,58 @@
1
+ import * as React from "react";
2
+ /** The five theme axes (plus direction) that can be set on any subtree. */
3
+ export interface ThemeAxes {
4
+ /** `"light"` | `"dark"` → class. */
5
+ theme?: "light" | "dark";
6
+ /** → `data-material`. */
7
+ material?: "glass" | "solid";
8
+ /** → `data-accent` (lime, ocean, ember, rose, graphite or your own). */
9
+ accent?: string;
10
+ /** → `data-density`. */
11
+ density?: "comfortable" | "compact" | "spacious";
12
+ /** → `data-font` (editorial, grotesk, corporate, system or your own preset). */
13
+ font?: string;
14
+ /** → `dir` + Radix DirectionProvider. */
15
+ dir?: "ltr" | "rtl";
16
+ /** → `data-glass-quality="low"` disables blur for low-power devices. */
17
+ glassQuality?: "high" | "low";
18
+ }
19
+ /**
20
+ * The class/attributes that apply theme axes to an element — usable in server components:
21
+ *
22
+ * ```tsx
23
+ * <section {...themeAttributes({ theme: "dark", accent: "ember" })}>…</section>
24
+ * ```
25
+ */
26
+ export declare function themeAttributes(axes: ThemeAxes): {
27
+ className?: string;
28
+ } & Record<`data-${string}` | "dir", string | undefined>;
29
+ /**
30
+ * The element overlays should portal into, or `undefined` for `document.body`.
31
+ * Pass it to every Radix `Portal`: `<Popover.Portal container={usePortalContainer()}>`.
32
+ */
33
+ export declare function usePortalContainer(): HTMLElement | undefined;
34
+ /** Makes `container` the portal target for every kit overlay below it. */
35
+ export declare function PortalContainer({ container, children }: {
36
+ container: HTMLElement | null;
37
+ children: React.ReactNode;
38
+ }): React.JSX.Element;
39
+ export interface ThemeScopeProps extends ThemeAxes, Omit<React.HTMLAttributes<HTMLDivElement>, "dir"> {
40
+ /** Merge onto the single child instead of rendering a `<div>`. */
41
+ asChild?: boolean;
42
+ /** Overlays opened inside portal into this scope so they keep its theme. Default `true`. */
43
+ portal?: boolean;
44
+ }
45
+ /**
46
+ * Applies theme axes to a subtree and keeps overlays inside it. Without it, Radix portals to
47
+ * `body` and a popover inside a dark preview opens in the light page theme.
48
+ *
49
+ * ```tsx
50
+ * <ThemeScope theme="dark" material="glass" accent="ocean" className="rounded-ui-lg p-6">
51
+ * <Select … /> // its listbox portals into the scope → dark + glass + ocean
52
+ * </ThemeScope>
53
+ * ```
54
+ *
55
+ * The scope element must not use `transform`, `filter`, `backdrop-filter` or `contain`, because
56
+ * those turn it into the containing block for the fixed-position overlays inside it.
57
+ */
58
+ export declare const ThemeScope: React.ForwardRefExoticComponent<ThemeScopeProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Direction, Slot } from "radix-ui";
5
+ import { cn } from "./cn.js";
6
+ import { useComposedRefs } from "./compose-refs.js";
7
+ /**
8
+ * The class/attributes that apply theme axes to an element — usable in server components:
9
+ *
10
+ * ```tsx
11
+ * <section {...themeAttributes({ theme: "dark", accent: "ember" })}>…</section>
12
+ * ```
13
+ */
14
+ export function themeAttributes(axes) {
15
+ return {
16
+ className: axes.theme,
17
+ "data-material": axes.material,
18
+ "data-accent": axes.accent,
19
+ "data-density": axes.density,
20
+ "data-font": axes.font,
21
+ "data-glass-quality": axes.glassQuality === "low" ? "low" : undefined,
22
+ dir: axes.dir,
23
+ };
24
+ }
25
+ const PortalContainerContext = React.createContext(null);
26
+ /**
27
+ * The element overlays should portal into, or `undefined` for `document.body`.
28
+ * Pass it to every Radix `Portal`: `<Popover.Portal container={usePortalContainer()}>`.
29
+ */
30
+ export function usePortalContainer() {
31
+ return React.useContext(PortalContainerContext) ?? undefined;
32
+ }
33
+ /** Makes `container` the portal target for every kit overlay below it. */
34
+ export function PortalContainer({ container, children }) {
35
+ return _jsx(PortalContainerContext.Provider, { value: container, children: children });
36
+ }
37
+ /**
38
+ * Applies theme axes to a subtree and keeps overlays inside it. Without it, Radix portals to
39
+ * `body` and a popover inside a dark preview opens in the light page theme.
40
+ *
41
+ * ```tsx
42
+ * <ThemeScope theme="dark" material="glass" accent="ocean" className="rounded-ui-lg p-6">
43
+ * <Select … /> // its listbox portals into the scope → dark + glass + ocean
44
+ * </ThemeScope>
45
+ * ```
46
+ *
47
+ * The scope element must not use `transform`, `filter`, `backdrop-filter` or `contain`, because
48
+ * those turn it into the containing block for the fixed-position overlays inside it.
49
+ */
50
+ export const ThemeScope = React.forwardRef(function ThemeScope({ theme, material, accent, density, font, dir, glassQuality, asChild, portal = true, className, children, ...props }, ref) {
51
+ const [node, setNode] = React.useState(null);
52
+ const composed = useComposedRefs(ref, setNode);
53
+ const { className: themeClass, ...attrs } = themeAttributes({ theme, material, accent, density, font, dir, glassQuality });
54
+ const Comp = asChild ? Slot.Root : "div";
55
+ let content = (_jsx(Comp, { ref: composed, "data-slot": "theme-scope", className: cn(themeClass, className), ...attrs, ...props, children: children }));
56
+ if (dir)
57
+ content = _jsx(Direction.Provider, { dir: dir, children: content });
58
+ return portal ? _jsx(PortalContainer, { container: node, children: content }) : content;
59
+ });
@@ -0,0 +1,60 @@
1
+ /** One page of results with an optional cursor for the next page (`null`/absent = last page). */
2
+ export interface AsyncPage<T> {
3
+ items: T[];
4
+ cursor?: string | null;
5
+ }
6
+ /**
7
+ * Loads items for a query. Return an array (single page) or `{ items, cursor }` for paging.
8
+ * Always pass `signal` to `fetch` so superseded requests are cancelled.
9
+ */
10
+ export type AsyncLoader<T> = (query: string, signal: AbortSignal, cursor?: string) => Promise<T[] | AsyncPage<T>>;
11
+ export interface UseAsyncListOptions<T> {
12
+ /** The loader. When absent the hook is idle and returns no items. */
13
+ load?: AsyncLoader<T>;
14
+ /** Current query; every change (debounced) starts a new first-page request. */
15
+ query: string;
16
+ /** ms to wait after the last query change. Default 200. The first request is not delayed. */
17
+ debounce?: number;
18
+ /** Set `false` to pause (e.g. while a popover is closed). Default `true`. */
19
+ enabled?: boolean;
20
+ /** Cache results per query for the lifetime of the component. Default `true`. */
21
+ cache?: boolean;
22
+ /** Don't load below this many characters (returns an empty, idle list). Default 0. */
23
+ minQueryLength?: number;
24
+ }
25
+ export interface AsyncListState<T> {
26
+ items: T[];
27
+ /** First page in flight (including the debounce wait). */
28
+ loading: boolean;
29
+ /** A next page is in flight. */
30
+ loadingMore: boolean;
31
+ /** The last error (cleared on the next successful request). */
32
+ error: unknown;
33
+ /** A cursor for another page exists. */
34
+ hasMore: boolean;
35
+ /** The query the current `items` belong to. */
36
+ loadedQuery: string | null;
37
+ /** Fetch the next page (no-op without a cursor or while loading). */
38
+ loadMore: () => void;
39
+ /** Drop the cache for the current query and load it again. */
40
+ reload: () => void;
41
+ }
42
+ /**
43
+ * Debounced, abortable, paged loading for search lists: Combobox, Tag input suggestions,
44
+ * record and user pickers.
45
+ *
46
+ * ```tsx
47
+ * const list = useAsyncList({
48
+ * query,
49
+ * load: async (q, signal, cursor) => {
50
+ * const res = await fetch(`/api/contacts?q=${encodeURIComponent(q)}&after=${cursor ?? ""}`, { signal });
51
+ * return res.json(); // { items, cursor }
52
+ * },
53
+ * });
54
+ * list.items; list.loading; list.loadMore();
55
+ * ```
56
+ *
57
+ * - Typing fast only sends the last query; a new query aborts the request in flight.
58
+ * - Results are cached per query, so deleting a character shows the earlier list instantly.
59
+ */
60
+ export declare function useAsyncList<T>({ load, query, debounce, enabled, cache, minQueryLength }: UseAsyncListOptions<T>): AsyncListState<T>;