@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,6 @@
1
+ export { isIsoDate, daysInMonth, toDayNumber, fromDayNumber, addDays, diffDays, isoWeekday, toIsoDate, isoDateInZone, compareIsoDate, eachDay } from "./date.js";
2
+ export { getWeekInfo, weekInfoForRegion, regionOf, defaultWorkDays, weekdayOrder } from "./week-info.js";
3
+ export { createHolidayProvider, combineHolidayProviders, isRangeCovered, holidaysOn, holidayName } from "./holidays.js";
4
+ export { workingValue, isWorkingDay, countWorkingDays, addWorkingDays, nextWorkingDay } from "./working-days.js";
5
+ export { IBAN_LENGTHS, normalizeIban, ibanCheckDigits, buildIban, validateIban, isValidIban, formatIban, electronicIban } from "./iban.js";
6
+ export { toUnits, fromUnits, mulDivRound, roundHalfUp, addDecimal, subtractDecimal, multiplyDecimal, divideDecimal, compareDecimal } from "./decimal.js";
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Locale data pack contracts. React-free: importable from server components, route handlers
3
+ * and workers. A pack (`tr` first) contributes week info, holidays, ID / IBAN rules, a tax
4
+ * scheme and an address data source.
5
+ */
6
+ /** A date-only value, `YYYY-MM-DD`. Never produced with `toISOString()`. */
7
+ export type IsoDate = string;
8
+ /**
9
+ * Week conventions of a locale. Day numbers follow `Intl.Locale#getWeekInfo`:
10
+ * 1 = Monday … 7 = Sunday.
11
+ */
12
+ export interface WeekInfo {
13
+ firstDay: 1 | 2 | 3 | 4 | 5 | 6 | 7;
14
+ weekend: number[];
15
+ /** Minimal days in the first week of the year (ISO 8601 = 4, US = 1). */
16
+ minimalDays: number;
17
+ }
18
+ export type HolidayKind = "public" | "bank" | "observance";
19
+ export interface Holiday {
20
+ date: IsoDate;
21
+ /** English name (kit default language). */
22
+ name: string;
23
+ /** Official name in the pack's language ("Cumhuriyet Bayramı"). */
24
+ localName?: string;
25
+ kind: HolidayKind;
26
+ /** Half day: non-working from this local time on ("13:00"). */
27
+ partial?: {
28
+ from: string;
29
+ };
30
+ /** Sub-national region code (ISO 3166-2) when it does not apply nationwide. */
31
+ region?: string;
32
+ /** Stable id, e.g. `"tr-republic-day"`. */
33
+ id?: string;
34
+ /**
35
+ * `false` when the date comes from a projection rather than an official publication.
36
+ * Treat unverified dates as provisional.
37
+ */
38
+ verified?: boolean;
39
+ }
40
+ export interface HolidayRange {
41
+ start: IsoDate;
42
+ end: IsoDate;
43
+ }
44
+ export interface HolidayProvider {
45
+ id: string;
46
+ /** Holidays whose date falls inside `[start, end]` (inclusive), sorted by date. */
47
+ get(range: HolidayRange, opts?: {
48
+ region?: string;
49
+ }): Holiday[];
50
+ /** The dates the data is known to be complete for. Outside it, results may be missing. */
51
+ coverage?: {
52
+ from: IsoDate;
53
+ to: IsoDate;
54
+ };
55
+ }
56
+ export interface BusinessHours {
57
+ /** "09:00" (24h, local wall clock). */
58
+ start: string;
59
+ end: string;
60
+ }
61
+ /**
62
+ * Working time of a team, a country or a resource. Used by Agenda, Resource calendar, Gantt
63
+ * and working-day math.
64
+ */
65
+ export interface WorkCalendar {
66
+ /** Working week days, 1 = Monday … 7 = Sunday. Default: every day not in `weekInfo.weekend`. */
67
+ workDays?: number[];
68
+ /** Used to derive `workDays` when they are not given. Default `"en-US"`. */
69
+ locale?: string;
70
+ businessHours?: BusinessHours[];
71
+ holidays?: HolidayProvider | HolidayProvider[];
72
+ /** Holiday region filter passed to the providers. */
73
+ region?: string;
74
+ /**
75
+ * How half-day holidays (eves) count in working-day math. `"full"` (default) counts them as a
76
+ * working day, `"half"` as 0.5, `"off"` as 0.
77
+ */
78
+ partialDays?: "full" | "half" | "off";
79
+ /** Extra non-working dates (company days off, bridge days). */
80
+ extraDaysOff?: IsoDate[];
81
+ /** Dates that are working days even if they fall on a weekend (make-up days). */
82
+ extraWorkDays?: IsoDate[];
83
+ }
84
+ /** Result of an ID / IBAN check. */
85
+ export interface IdResult {
86
+ valid: boolean;
87
+ /** Normalized value (digits / uppercase, no separators). */
88
+ value: string;
89
+ /** e.g. `"tr-tckn"`, `"tr-ykn"`, `"tr-vkn"`. */
90
+ kind?: string;
91
+ reason?: "empty" | "length" | "chars" | "pattern" | "checksum" | "country";
92
+ }
93
+ /** A pluggable identification number rule (consumed by Formatted inputs' `registerIdRule`). */
94
+ export interface IdRule {
95
+ id: string;
96
+ /** English label ("Turkish ID number (TCKN)"). */
97
+ label: string;
98
+ /** Expected lengths after normalization. */
99
+ lengths: number[];
100
+ /** Strip separators / whitespace. */
101
+ normalize(value: string): string;
102
+ validate(value: string): IdResult;
103
+ /** Display format of a valid value. */
104
+ format?(value: string): string;
105
+ /** Privacy mask for read-only views (KVKK / GDPR). */
106
+ mask?(value: string): string;
107
+ }
108
+ export interface IbanCountryRule {
109
+ country: string;
110
+ length: number;
111
+ /** Pattern of the BBAN (everything after the 4 leading characters). */
112
+ bban: RegExp;
113
+ bankName?(code: string): string | undefined;
114
+ }
115
+ export interface TaxRate {
116
+ /** Percent, e.g. 20. */
117
+ value: number;
118
+ label: string;
119
+ validFrom: IsoDate;
120
+ validTo?: IsoDate;
121
+ }
122
+ export interface TaxScheme {
123
+ id: string;
124
+ rates: TaxRate[];
125
+ zeroRateRequiresExemption?: boolean;
126
+ exemptionCodes?: {
127
+ code: string;
128
+ label: string;
129
+ localLabel?: string;
130
+ }[];
131
+ withholding?: {
132
+ code: string;
133
+ label: string;
134
+ localLabel?: string;
135
+ ratio: [num: number, den: number];
136
+ }[];
137
+ rounding: "line" | "document";
138
+ priceEntry: ("net" | "gross")[];
139
+ }
140
+ export interface AddressDistrict {
141
+ /** Official district code (NVİ for `tr`). */
142
+ code: number;
143
+ name: string;
144
+ }
145
+ export interface AddressProvince {
146
+ /** Plate / province code (1–81 for `tr`). */
147
+ code: number;
148
+ name: string;
149
+ }
150
+ /** Province / district lookups. Async so packs can lazy-load their data. */
151
+ export interface AddressDataSource {
152
+ id: string;
153
+ provinces(): Promise<AddressProvince[]>;
154
+ districts(provinceCode: number): Promise<AddressDistrict[]>;
155
+ }
156
+ export interface LocaleDataPack {
157
+ code: string;
158
+ weekInfo: WeekInfo;
159
+ holidays?: HolidayProvider;
160
+ idRules?: IdRule[];
161
+ iban?: IbanCountryRule[];
162
+ phone?: {
163
+ defaultCountry: string;
164
+ displayFormat: "national" | "international";
165
+ };
166
+ money?: {
167
+ currency: string;
168
+ suffixStyle?: "symbol" | "code" | "local";
169
+ amountInWords?(decimal: string, currency: string): string;
170
+ };
171
+ taxScheme?: TaxScheme;
172
+ address?: AddressDataSource;
173
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Locale data pack contracts. React-free: importable from server components, route handlers
3
+ * and workers. A pack (`tr` first) contributes week info, holidays, ID / IBAN rules, a tax
4
+ * scheme and an address data source.
5
+ */
6
+ export {};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Week start, weekend and first-week rule of a locale: `Intl.Locale#getWeekInfo()` where the
3
+ * runtime has it, otherwise a CLDR `weekData` fallback table (CLDR 46, territory level).
4
+ */
5
+ import type { WeekInfo } from "./types.js";
6
+ /** CLDR fallback for a territory code ("TR", "US", "SA"). */
7
+ export declare function weekInfoForRegion(region: string | undefined): WeekInfo;
8
+ /** The territory a locale resolves to ("tr" → "TR", "en" → "US", "ar-SA" → "SA"). */
9
+ export declare function regionOf(locale: string): string | undefined;
10
+ /**
11
+ * Week conventions of `locale`. Day numbers: 1 = Monday … 7 = Sunday.
12
+ *
13
+ * ```ts
14
+ * getWeekInfo("tr-TR"); // { firstDay: 1, weekend: [6, 7], minimalDays: 1 }
15
+ * getWeekInfo("en-US"); // { firstDay: 7, weekend: [6, 7], minimalDays: 1 }
16
+ * getWeekInfo("ar-SA"); // { firstDay: 7, weekend: [5, 6], minimalDays: 1 }
17
+ * ```
18
+ */
19
+ export declare function getWeekInfo(locale: string): WeekInfo;
20
+ /** Work days (1–7) implied by a locale's weekend. */
21
+ export declare function defaultWorkDays(locale: string): number[];
22
+ /** Weekday order for headers, starting at the locale's first day: tr → [1..7], en-US → [7,1..6]. */
23
+ export declare function weekdayOrder(locale: string): number[];
@@ -0,0 +1,85 @@
1
+ // CLDR supplemental weekData — firstDay by territory (default Monday).
2
+ const FIRST_DAY_SUN = "AG AS BD BR BS BT BW BZ CA CN CO DM DO ET GT GU HK HN ID IL IN JM JP KE KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PT PY SA SG SV TH TT TW UM US VE VI WS YE ZA ZW";
3
+ const FIRST_DAY_SAT = "AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY";
4
+ const FIRST_DAY_FRI = "MV";
5
+ // weekendStart / weekendEnd (default Saturday–Sunday).
6
+ const WEEKEND_FRI_SAT = "AE BH DZ EG IL IQ JO KW LY OM QA SA SD SY YE";
7
+ const WEEKEND_THU_FRI = "AF";
8
+ const WEEKEND_FRI = "IR";
9
+ const WEEKEND_SUN = "IN UG";
10
+ // minDays = 4 (ISO 8601 weeks); default 1.
11
+ const MIN_DAYS_4 = "AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GG GI GP GR HU IE IM IS IT JE LI LT LU MC MQ NL NO PL RE RU SE SJ SK SM VA";
12
+ const set = (s) => new Set(s.split(" "));
13
+ const SUN = set(FIRST_DAY_SUN);
14
+ const SAT = set(FIRST_DAY_SAT);
15
+ const FRI = set(FIRST_DAY_FRI);
16
+ const W_FRI_SAT = set(WEEKEND_FRI_SAT);
17
+ const W_THU_FRI = set(WEEKEND_THU_FRI);
18
+ const W_FRI = set(WEEKEND_FRI);
19
+ const W_SUN = set(WEEKEND_SUN);
20
+ const MIN4 = set(MIN_DAYS_4);
21
+ /** CLDR fallback for a territory code ("TR", "US", "SA"). */
22
+ export function weekInfoForRegion(region) {
23
+ const r = (region ?? "001").toUpperCase();
24
+ const firstDay = SUN.has(r) ? 7 : SAT.has(r) ? 6 : FRI.has(r) ? 5 : 1;
25
+ const weekend = W_FRI_SAT.has(r) ? [5, 6] : W_THU_FRI.has(r) ? [4, 5] : W_FRI.has(r) ? [5] : W_SUN.has(r) ? [7] : [6, 7];
26
+ return { firstDay, weekend, minimalDays: MIN4.has(r) ? 4 : 1 };
27
+ }
28
+ const DEFAULT_REGION = {
29
+ en: "US", tr: "TR", de: "DE", fr: "FR", es: "ES", it: "IT", pt: "BR", nl: "NL", ar: "EG", he: "IL", fa: "IR",
30
+ ja: "JP", zh: "CN", ko: "KR", ru: "RU", pl: "PL", sv: "SE", da: "DK", fi: "FI", nb: "NO", el: "GR", hi: "IN", az: "AZ",
31
+ };
32
+ /** The territory a locale resolves to ("tr" → "TR", "en" → "US", "ar-SA" → "SA"). */
33
+ export function regionOf(locale) {
34
+ try {
35
+ const loc = new Intl.Locale(locale);
36
+ if (loc.region)
37
+ return loc.region;
38
+ const max = typeof loc.maximize === "function" ? loc.maximize() : loc;
39
+ return max.region ?? DEFAULT_REGION[loc.language];
40
+ }
41
+ catch {
42
+ const m = /^[a-z]{2,3}(?:[-_][A-Za-z]{4})?[-_]([A-Za-z]{2}|\d{3})/.exec(locale);
43
+ return m?.[1]?.toUpperCase() ?? DEFAULT_REGION[locale.slice(0, 2).toLowerCase()];
44
+ }
45
+ }
46
+ const cache = new Map();
47
+ /**
48
+ * Week conventions of `locale`. Day numbers: 1 = Monday … 7 = Sunday.
49
+ *
50
+ * ```ts
51
+ * getWeekInfo("tr-TR"); // { firstDay: 1, weekend: [6, 7], minimalDays: 1 }
52
+ * getWeekInfo("en-US"); // { firstDay: 7, weekend: [6, 7], minimalDays: 1 }
53
+ * getWeekInfo("ar-SA"); // { firstDay: 7, weekend: [5, 6], minimalDays: 1 }
54
+ * ```
55
+ */
56
+ export function getWeekInfo(locale) {
57
+ const hit = cache.get(locale);
58
+ if (hit)
59
+ return hit;
60
+ let info;
61
+ try {
62
+ const loc = new Intl.Locale(locale);
63
+ // Only trust Intl when the locale names a region; otherwise engines differ on the default.
64
+ const raw = loc.region ? (typeof loc.getWeekInfo === "function" ? loc.getWeekInfo() : loc.weekInfo) : undefined;
65
+ if (raw && raw.firstDay >= 1 && raw.firstDay <= 7 && Array.isArray(raw.weekend)) {
66
+ info = { firstDay: raw.firstDay, weekend: [...raw.weekend], minimalDays: raw.minimalDays };
67
+ }
68
+ }
69
+ catch {
70
+ /* invalid tag: fall through */
71
+ }
72
+ info ??= weekInfoForRegion(regionOf(locale));
73
+ cache.set(locale, info);
74
+ return info;
75
+ }
76
+ /** Work days (1–7) implied by a locale's weekend. */
77
+ export function defaultWorkDays(locale) {
78
+ const weekend = getWeekInfo(locale).weekend;
79
+ return [1, 2, 3, 4, 5, 6, 7].filter((d) => !weekend.includes(d));
80
+ }
81
+ /** Weekday order for headers, starting at the locale's first day: tr → [1..7], en-US → [7,1..6]. */
82
+ export function weekdayOrder(locale) {
83
+ const first = getWeekInfo(locale).firstDay;
84
+ return Array.from({ length: 7 }, (_, i) => ((first - 1 + i) % 7) + 1);
85
+ }
@@ -0,0 +1,27 @@
1
+ import type { IsoDate, WorkCalendar } from "./types.js";
2
+ /**
3
+ * Working value of one day: 1 (working), 0.5 (half day with `partialDays: "half"`) or 0.
4
+ */
5
+ export declare function workingValue(date: IsoDate, cal: WorkCalendar): number;
6
+ /** True when `date` is a working day (half days count as working). */
7
+ export declare function isWorkingDay(date: IsoDate, cal: WorkCalendar): boolean;
8
+ /**
9
+ * Working days in `[start, end]`, both inclusive. Returns 0 when `end` is before `start`.
10
+ * With `partialDays: "half"` the result can end in .5.
11
+ *
12
+ * ```ts
13
+ * countWorkingDays("2026-10-26", "2026-10-30", { locale: "tr-TR", holidays: trHolidays }); // 4
14
+ * ```
15
+ */
16
+ export declare function countWorkingDays(start: IsoDate, end: IsoDate, cal: WorkCalendar): number;
17
+ /**
18
+ * The date `n` working days after `date` (before it when `n` is negative). `date` itself is not
19
+ * counted; `n = 0` returns `date` unchanged. Half days count as one step.
20
+ *
21
+ * ```ts
22
+ * addWorkingDays("2026-10-27", 2, trCalendar); // "2026-10-30" (29 October is a holiday)
23
+ * ```
24
+ */
25
+ export declare function addWorkingDays(date: IsoDate, n: number, cal: WorkCalendar): IsoDate;
26
+ /** The first working day on or after `date` (on or before with `direction: -1`). */
27
+ export declare function nextWorkingDay(date: IsoDate, cal: WorkCalendar, direction?: 1 | -1): IsoDate;
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Working-day math on a `WorkCalendar`: weekends from the locale, holidays from providers,
3
+ * half-day eves, extra days off and make-up work days. React-free; all dates are `YYYY-MM-DD`.
4
+ */
5
+ import { addDays, fromDayNumber, isoWeekday, toDayNumber } from "./date.js";
6
+ import { isRangeCovered } from "./holidays.js";
7
+ import { defaultWorkDays } from "./week-info.js";
8
+ const providersOf = (cal) => (cal.holidays ? (Array.isArray(cal.holidays) ? cal.holidays : [cal.holidays]) : []);
9
+ const warned = new Set();
10
+ function warnCoverage(providers, start, end) {
11
+ for (const p of providers) {
12
+ if (!isRangeCovered(p, { start, end }) && !warned.has(p.id)) {
13
+ warned.add(p.id);
14
+ if (typeof console !== "undefined") {
15
+ console.warn(`[vamos-ui] Holiday provider "${p.id}" covers ${p.coverage.from} – ${p.coverage.to}; ${start} – ${end} is partly outside it, so holidays there may be missing.`);
16
+ }
17
+ }
18
+ }
19
+ }
20
+ function resolve(cal, start, end) {
21
+ const workDays = new Set(cal.workDays ?? defaultWorkDays(cal.locale ?? "en-US"));
22
+ const overrides = new Map();
23
+ const providers = providersOf(cal);
24
+ if (providers.length) {
25
+ warnCoverage(providers, start, end);
26
+ const partialValue = cal.partialDays === "half" ? 0.5 : cal.partialDays === "off" ? 0 : 1;
27
+ const byDate = new Map();
28
+ for (const p of providers) {
29
+ for (const h of p.get({ start, end }, { region: cal.region })) {
30
+ if (h.kind === "observance")
31
+ continue;
32
+ const list = byDate.get(h.date) ?? [];
33
+ list.push(h);
34
+ byDate.set(h.date, list);
35
+ }
36
+ }
37
+ for (const [date, list] of byDate) {
38
+ const full = list.some((h) => !h.partial);
39
+ overrides.set(date, full ? 0 : partialValue);
40
+ }
41
+ }
42
+ for (const d of cal.extraWorkDays ?? [])
43
+ if (d >= start && d <= end)
44
+ overrides.set(d, 1);
45
+ for (const d of cal.extraDaysOff ?? [])
46
+ if (d >= start && d <= end)
47
+ overrides.set(d, 0);
48
+ return { workDays, overrides };
49
+ }
50
+ function dayValue(r, date, weekday) {
51
+ const o = r.overrides.get(date);
52
+ if (o !== undefined) {
53
+ // A holiday on a weekend stays a weekend; make-up days (value 1) override the weekend.
54
+ return r.workDays.has(weekday) ? o : o === 1 ? 1 : 0;
55
+ }
56
+ return r.workDays.has(weekday) ? 1 : 0;
57
+ }
58
+ /**
59
+ * Working value of one day: 1 (working), 0.5 (half day with `partialDays: "half"`) or 0.
60
+ */
61
+ export function workingValue(date, cal) {
62
+ return dayValue(resolve(cal, date, date), date, isoWeekday(date));
63
+ }
64
+ /** True when `date` is a working day (half days count as working). */
65
+ export function isWorkingDay(date, cal) {
66
+ return workingValue(date, cal) > 0;
67
+ }
68
+ /**
69
+ * Working days in `[start, end]`, both inclusive. Returns 0 when `end` is before `start`.
70
+ * With `partialDays: "half"` the result can end in .5.
71
+ *
72
+ * ```ts
73
+ * countWorkingDays("2026-10-26", "2026-10-30", { locale: "tr-TR", holidays: trHolidays }); // 4
74
+ * ```
75
+ */
76
+ export function countWorkingDays(start, end, cal) {
77
+ const a = toDayNumber(start);
78
+ const b = toDayNumber(end);
79
+ if (b < a)
80
+ return 0;
81
+ const r = resolve(cal, start, end);
82
+ let total = 0;
83
+ let wd = isoWeekday(start);
84
+ for (let n = a; n <= b; n++) {
85
+ total += dayValue(r, fromDayNumber(n), wd);
86
+ wd = wd === 7 ? 1 : wd + 1;
87
+ }
88
+ return total;
89
+ }
90
+ /**
91
+ * The date `n` working days after `date` (before it when `n` is negative). `date` itself is not
92
+ * counted; `n = 0` returns `date` unchanged. Half days count as one step.
93
+ *
94
+ * ```ts
95
+ * addWorkingDays("2026-10-27", 2, trCalendar); // "2026-10-30" (29 October is a holiday)
96
+ * ```
97
+ */
98
+ export function addWorkingDays(date, n, cal) {
99
+ if (!Number.isInteger(n))
100
+ throw new RangeError("addWorkingDays: n must be an integer");
101
+ if (n === 0)
102
+ return date;
103
+ const workDays = cal.workDays ?? defaultWorkDays(cal.locale ?? "en-US");
104
+ if (workDays.length === 0 && !(cal.extraWorkDays?.length))
105
+ throw new RangeError("addWorkingDays: the calendar has no working days");
106
+ const step = n > 0 ? 1 : -1;
107
+ // Resolve holidays in chunks so long spans stay linear.
108
+ const chunk = Math.max(31, Math.ceil((Math.abs(n) * 7) / Math.max(1, workDays.length)) + 14);
109
+ let remaining = Math.abs(n);
110
+ let cursor = date;
111
+ let guard = 0;
112
+ while (remaining > 0) {
113
+ const from = addDays(cursor, step);
114
+ const to = addDays(cursor, step * chunk);
115
+ const r = step > 0 ? resolve(cal, from, to) : resolve(cal, to, from);
116
+ for (let i = 1; i <= chunk; i++) {
117
+ const d = addDays(cursor, step);
118
+ cursor = d;
119
+ if (dayValue(r, d, isoWeekday(d)) > 0) {
120
+ remaining--;
121
+ if (remaining === 0)
122
+ break;
123
+ }
124
+ }
125
+ if (++guard > 10_000)
126
+ throw new RangeError("addWorkingDays: no working day found");
127
+ }
128
+ return cursor;
129
+ }
130
+ /** The first working day on or after `date` (on or before with `direction: -1`). */
131
+ export function nextWorkingDay(date, cal, direction = 1) {
132
+ return isWorkingDay(date, cal) ? date : addWorkingDays(date, direction, cal);
133
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./core/index.js";
2
+ export * from "./tr/index.js";
@@ -0,0 +1,4 @@
1
+ // Public API of @vamos-ui/react/locale-data — React-free locale data packs.
2
+ // `core`: contracts + week info + holidays + working days + IBAN + decimals. `tr`: the first pack.
3
+ export * from "./core/index.js";
4
+ export * from "./tr/index.js";
@@ -0,0 +1 @@
1
+ {"source":"NVİ/TÜİK province and district list via github.com/snrylmz/il-ilce-json (district codes), cross-checked against github.com/hsndmr/turkiye-city-county-district-neighborhood: 81 provinces, 973 districts, 0 name differences","generated":"2026-11-10","provinces":[[1,"Adana",[[1757,"Aladağ"],[1219,"Ceyhan"],[2033,"Çukurova"],[1329,"Feke"],[1806,"İmamoğlu"],[1437,"Karaisalı"],[1443,"Karataş"],[1486,"Kozan"],[1580,"Pozantı"],[1588,"Saimbeyli"],[2032,"Sarıçam"],[1104,"Seyhan"],[1687,"Tufanbeyli"],[1734,"Yumurtalık"],[1748,"Yüreğir"]]],[2,"Adıyaman",[[1182,"Besni"],[1246,"Çelikhan"],[1347,"Gerger"],[1354,"Gölbaşı"],[1425,"Kahta"],[1105,"Merkez"],[1592,"Samsat"],[1985,"Sincik"],[1989,"Tut"]]],[3,"Afyonkarahisar",[[1771,"Başmakçı"],[1773,"Bayat"],[1200,"Bolvadin"],[1239,"Çay"],[1906,"Çobanlar"],[1267,"Dazkırı"],[1281,"Dinar"],[1306,"Emirdağ"],[1923,"Evciler"],[1944,"Hocalar"],[1404,"İhsaniye"],[1809,"İscehisar"],[1961,"Kızılören"],[1108,"Merkez"],[1594,"Sandıklı"],[1626,"Sinanpaşa"],[1639,"Sultandağı"],[1664,"Şuhut"]]],[4,"Ağrı",[[1283,"Diyadin"],[1287,"Doğubayazıt"],[1301,"Eleşkirt"],[1379,"Hamur"],[1111,"Merkez"],[1568,"Patnos"],[1667,"Taşlıçay"],[1691,"Tutak"]]],[5,"Amasya",[[1363,"Göynücek"],[1368,"Gümüşhacıköy"],[1938,"Hamamözü"],[1134,"Merkez"],[1524,"Merzifon"],[1641,"Suluova"],[1668,"Taşova"]]],[6,"Ankara",[[1872,"Akyurt"],[1130,"Altındağ"],[1157,"Ayaş"],[1167,"Bala"],[1187,"Beypazarı"],[1227,"Çamlıdere"],[1231,"Çankaya"],[1260,"Çubuk"],[1302,"Elmadağ"],[1922,"Etimesgut"],[1924,"Evren"],[1744,"Gölbaşı"],[1365,"Güdül"],[1387,"Haymana"],[1815,"Kahramankazan"],[1427,"Kalecik"],[1745,"Keçiören"],[1473,"Kızılcahamam"],[1746,"Mamak"],[1539,"Nallıhan"],[1578,"Polatlı"],[2034,"Pursaklar"],[1747,"Sincan"],[1658,"Şereflikoçhisar"],[1723,"Yenimahalle"]]],[7,"Antalya",[[1121,"Akseki"],[2035,"Aksu"],[1126,"Alanya"],[1811,"Demre"],[2036,"Döşemealtı"],[1303,"Elmalı"],[1333,"Finike"],[1337,"Gazipaşa"],[1370,"Gündoğmuş"],[1946,"İbradı"],[1451,"Kaş"],[1959,"Kemer"],[2037,"Kepez"],[2038,"Konyaaltı"],[1483,"Korkuteli"],[1492,"Kumluca"],[1512,"Manavgat"],[2039,"Muratpaşa"],[1616,"Serik"]]],[8,"Artvin",[[1145,"Ardanuç"],[1147,"Arhavi"],[1202,"Borçka"],[1395,"Hopa"],[2105,"Kemalpaşa"],[1152,"Merkez"],[1828,"Murgul"],[1653,"Şavşat"],[1736,"Yusufeli"]]],[9,"Aydın",[[1206,"Bozdoğan"],[1781,"Buharkent"],[1256,"Çine"],[2000,"Didim"],[2076,"Efeler"],[1348,"Germencik"],[1807,"İncirliova"],[1435,"Karacasu"],[1957,"Karpuzlu"],[1479,"Koçarlı"],[1968,"Köşk"],[1497,"Kuşadası"],[1498,"Kuyucak"],[1542,"Nazilli"],[1637,"Söke"],[1640,"Sultanhisar"],[1724,"Yenipazar"]]],[10,"Balıkesir",[[2077,"Altıeylül"],[1161,"Ayvalık"],[1169,"Balya"],[1171,"Bandırma"],[1191,"Bigadiç"],[1216,"Burhaniye"],[1291,"Dursunbey"],[1294,"Edremit"],[1310,"Erdek"],[1928,"Gömeç"],[1360,"Gönen"],[1384,"Havran"],[1418,"İvrindi"],[2078,"Karesi"],[1462,"Kepsut"],[1514,"Manyas"],[1824,"Marmara"],[1608,"Savaştepe"],[1619,"Sındırgı"],[1644,"Susurluk"]]],[11,"Bilecik",[[1210,"Bozüyük"],[1359,"Gölpazarı"],[1948,"İnhisar"],[1192,"Merkez"],[1559,"Osmaneli"],[1571,"Pazaryeri"],[1636,"Söğüt"],[1857,"Yenipazar"]]],[12,"Bingöl",[[1750,"Adaklı"],[1344,"Genç"],[1446,"Karlıova"],[1475,"Kiğı"],[1193,"Merkez"],[1633,"Solhan"],[1855,"Yayladere"],[1996,"Yedisu"]]],[13,"Bitlis",[[1106,"Adilcevaz"],[1112,"Ahlat"],[1798,"Güroymak"],[1394,"Hizan"],[1196,"Merkez"],[1537,"Mutki"],[1669,"Tatvan"]]],[14,"Bolu",[[1916,"Dörtdivan"],[1346,"Gerede"],[1364,"Göynük"],[1466,"Kıbrıscık"],[1522,"Mengen"],[1199,"Merkez"],[1531,"Mudurnu"],[1610,"Seben"],[1997,"Yeniçağa"]]],[15,"Burdur",[[1109,"Ağlasun"],[1874,"Altınyayla"],[1211,"Bucak"],[1899,"Çavdır"],[1903,"Çeltikçi"],[1357,"Gölhisar"],[1813,"Karamanlı"],[1816,"Kemer"],[1215,"Merkez"],[1672,"Tefenni"],[1728,"Yeşilova"]]],[16,"Bursa",[[1783,"Büyükorhan"],[1343,"Gemlik"],[1935,"Gürsu"],[1799,"Harmancık"],[1411,"İnegöl"],[1420,"İznik"],[1434,"Karacabey"],[1457,"Keles"],[1960,"Kestel"],[1530,"Mudanya"],[1535,"Mustafakemalpaşa"],[1829,"Nilüfer"],[1553,"Orhaneli"],[1554,"Orhangazi"],[1832,"Osmangazi"],[1725,"Yenişehir"],[1859,"Yıldırım"]]],[17,"Çanakkale",[[1160,"Ayvacık"],[1180,"Bayramiç"],[1190,"Biga"],[1205,"Bozcaada"],[1229,"Çan"],[1293,"Eceabat"],[1326,"Ezine"],[1340,"Gelibolu"],[1408,"Gökçeada"],[1503,"Lapseki"],[1230,"Merkez"],[1722,"Yenice"]]],[18,"Çankırı",[[1765,"Atkaracalar"],[1885,"Bayramören"],[1248,"Çerkeş"],[1300,"Eldivan"],[1399,"Ilgaz"],[1817,"Kızılırmak"],[1963,"Korgun"],[1494,"Kurşunlu"],[1232,"Merkez"],[1555,"Orta"],[1649,"Şabanözü"],[1718,"Yapraklı"]]],[19,"Çorum",[[1124,"Alaca"],[1177,"Bayat"],[1778,"Boğazkale"],[1911,"Dodurga"],[1414,"İskilip"],[1445,"Kargı"],[1972,"Laçin"],[1520,"Mecitözü"],[1259,"Merkez"],[1976,"Oğuzlar"],[1556,"Ortaköy"],[1558,"Osmancık"],[1642,"Sungurlu"],[1850,"Uğurludağ"]]],[20,"Denizli",[[1102,"Acıpayam"],[1769,"Babadağ"],[1881,"Baklan"],[1774,"Bekilli"],[1888,"Beyağaç"],[1889,"Bozkurt"],[1214,"Buldan"],[1224,"Çal"],[1226,"Çameli"],[1233,"Çardak"],[1257,"Çivril"],[1371,"Güney"],[1803,"Honaz"],[1426,"Kale"],[2079,"Merkezefendi"],[1871,"Pamukkale"],[1597,"Sarayköy"],[1840,"Serinhisar"],[1670,"Tavas"]]],[21,"Diyarbakır",[[2040,"Bağlar"],[1195,"Bismil"],[1249,"Çermik"],[1253,"Çınar"],[1263,"Çüngüş"],[1278,"Dicle"],[1791,"Eğil"],[1315,"Ergani"],[1381,"Hani"],[1389,"Hazro"],[2041,"Kayapınar"],[1962,"Kocaköy"],[1490,"Kulp"],[1504,"Lice"],[1624,"Silvan"],[2042,"Sur"],[2043,"Yenişehir"]]],[22,"Edirne",[[1307,"Enez"],[1385,"Havsa"],[1412,"İpsala"],[1464,"Keşan"],[1502,"Lalapaşa"],[1523,"Meriç"],[1295,"Merkez"],[1988,"Süloğlu"],[1705,"Uzunköprü"]]],[23,"Elazığ",[[1110,"Ağın"],[1873,"Alacakaya"],[1762,"Arıcak"],[1173,"Baskil"],[1438,"Karakoçan"],[1455,"Keban"],[1820,"Kovancılar"],[1506,"Maden"],[1298,"Merkez"],[1566,"Palu"],[1631,"Sivrice"]]],[24,"Erzincan",[[1243,"Çayırlı"],[1406,"İliç"],[1459,"Kemah"],[1460,"Kemaliye"],[1318,"Merkez"],[1977,"Otlukbeli"],[1583,"Refahiye"],[1675,"Tercan"],[1853,"Üzümlü"]]],[25,"Erzurum",[[1153,"Aşkale"],[1945,"Aziziye"],[1235,"Çat"],[1392,"Hınıs"],[1396,"Horasan"],[1416,"İspir"],[1812,"Karaçoban"],[1444,"Karayazı"],[1967,"Köprüköy"],[1540,"Narman"],[1550,"Oltu"],[1551,"Olur"],[2044,"Palandöken"],[1567,"Pasinler"],[1865,"Pazaryolu"],[1657,"Şenkaya"],[1674,"Tekman"],[1683,"Tortum"],[1851,"Uzundere"],[2045,"Yakutiye"]]],[26,"Eskişehir",[[1759,"Alpu"],[1777,"Beylikova"],[1255,"Çifteler"],[1934,"Günyüzü"],[1939,"Han"],[1808,"İnönü"],[1508,"Mahmudiye"],[1973,"Mihalgazi"],[1527,"Mihalıççık"],[2046,"Odunpazarı"],[1599,"Sarıcakaya"],[1618,"Seyitgazi"],[1632,"Sivrihisar"],[2047,"Tepebaşı"]]],[27,"Gaziantep",[[1139,"Araban"],[1415,"İslahiye"],[1956,"Karkamış"],[1546,"Nizip"],[1974,"Nurdağı"],[1549,"Oğuzeli"],[1841,"Şahinbey"],[1844,"Şehitkamil"],[1720,"Yavuzeli"]]],[28,"Giresun",[[1133,"Alucra"],[1212,"Bulancak"],[1893,"Çamoluk"],[1894,"Çanakçı"],[1272,"Dereli"],[1912,"Doğankent"],[1320,"Espiye"],[1324,"Eynesil"],[1361,"Görele"],[1930,"Güce"],[1465,"Keşap"],[1352,"Merkez"],[1837,"Piraziz"],[1654,"Şebinkarahisar"],[1678,"Tirebolu"],[1854,"Yağlıdere"]]],[29,"Gümüşhane",[[1458,"Kelkit"],[1822,"Köse"],[1971,"Kürtün"],[1369,"Merkez"],[1660,"Şiran"],[1684,"Torul"]]],[30,"Hakkari",[[1261,"Çukurca"],[2107,"Derecik"],[1377,"Merkez"],[1656,"Şemdinli"],[1737,"Yüksekova"]]],[31,"Hatay",[[1131,"Altınözü"],[2080,"Antakya"],[2081,"Arsuz"],[1887,"Belen"],[2082,"Defne"],[1289,"Dörtyol"],[1792,"Erzin"],[1382,"Hassa"],[1413,"İskenderun"],[1468,"Kırıkhan"],[1970,"Kumlu"],[2083,"Payas"],[1585,"Reyhanlı"],[1591,"Samandağ"],[1721,"Yayladağı"]]],[32,"Isparta",[[1755,"Aksu"],[1154,"Atabey"],[1297,"Eğirdir"],[1341,"Gelendost"],[1929,"Gönen"],[1456,"Keçiborlu"],[1401,"Merkez"],[1615,"Senirkent"],[1648,"Sütçüler"],[1651,"Şarkikaraağaç"],[1699,"Uluborlu"],[1717,"Yalvaç"],[2001,"Yenişarbademli"]]],[33,"Mersin",[[2064,"Akdeniz"],[1135,"Anamur"],[1766,"Aydıncık"],[1779,"Bozyazı"],[1892,"Çamlıyayla"],[1311,"Erdemli"],[1366,"Gülnar"],[2065,"Mezitli"],[1536,"Mut"],[1621,"Silifke"],[1665,"Tarsus"],[2066,"Toroslar"],[2067,"Yenişehir"]]],[34,"İstanbul",[[1103,"Adalar"],[2048,"Arnavutköy"],[2049,"Ataşehir"],[2003,"Avcılar"],[2004,"Bağcılar"],[2005,"Bahçelievler"],[1166,"Bakırköy"],[2050,"Başakşehir"],[1886,"Bayrampaşa"],[1183,"Beşiktaş"],[1185,"Beykoz"],[2051,"Beylikdüzü"],[1186,"Beyoğlu"],[1782,"Büyükçekmece"],[1237,"Çatalca"],[2052,"Çekmeköy"],[2016,"Esenler"],[2053,"Esenyurt"],[1325,"Eyüpsultan"],[1327,"Fatih"],[1336,"Gaziosmanpaşa"],[2010,"Güngören"],[1421,"Kadıköy"],[1810,"Kağıthane"],[1449,"Kartal"],[1823,"Küçükçekmece"],[2012,"Maltepe"],[1835,"Pendik"],[2054,"Sancaktepe"],[1604,"Sarıyer"],[1622,"Silivri"],[2014,"Sultanbeyli"],[2055,"Sultangazi"],[1659,"Şile"],[1663,"Şişli"],[2015,"Tuzla"],[1852,"Ümraniye"],[1708,"Üsküdar"],[1739,"Zeytinburnu"]]],[35,"İzmir",[[1128,"Aliağa"],[2006,"Balçova"],[1178,"Bayındır"],[2056,"Bayraklı"],[1181,"Bergama"],[1776,"Beydağ"],[1203,"Bornova"],[1780,"Buca"],[1251,"Çeşme"],[2007,"Çiğli"],[1280,"Dikili"],[1334,"Foça"],[2009,"Gaziemir"],[2018,"Güzelbahçe"],[2057,"Karabağlar"],[1432,"Karaburun"],[1448,"Karşıyaka"],[1461,"Kemalpaşa"],[1467,"Kınık"],[1477,"Kiraz"],[1819,"Konak"],[1826,"Menderes"],[1521,"Menemen"],[2013,"Narlıdere"],[1563,"Ödemiş"],[1611,"Seferihisar"],[1612,"Selçuk"],[1677,"Tire"],[1682,"Torbalı"],[1703,"Urla"]]],[36,"Kars",[[1756,"Akyaka"],[1149,"Arpaçay"],[1279,"Digor"],[1424,"Kağızman"],[1447,"Merkez"],[1601,"Sarıkamış"],[1614,"Selim"],[1645,"Susuz"]]],[37,"Kastamonu",[[1101,"Abana"],[1867,"Ağlı"],[1140,"Araç"],[1162,"Azdavay"],[1208,"Bozkurt"],[1221,"Cide"],[1238,"Çatalzeytin"],[1264,"Daday"],[1277,"Devrekani"],[1915,"Doğanyurt"],[1940,"Hanönü"],[1805,"İhsangazi"],[1410,"İnebolu"],[1499,"Küre"],[1450,"Merkez"],[1836,"Pınarbaşı"],[1984,"Seydiler"],[1845,"Şenpazar"],[1666,"Taşköprü"],[1685,"Tosya"]]],[38,"Kayseri",[[1752,"Akkışla"],[1218,"Bünyan"],[1275,"Develi"],[1330,"Felahiye"],[1936,"Hacılar"],[1409,"İncesu"],[1863,"Kocasinan"],[1864,"Melikgazi"],[1978,"Özvatan"],[1576,"Pınarbaşı"],[1603,"Sarıoğlan"],[1605,"Sarız"],[1846,"Talas"],[1680,"Tomarza"],[1715,"Yahyalı"],[1727,"Yeşilhisar"]]],[39,"Kırklareli",[[1163,"Babaeski"],[1270,"Demirköy"],[1480,"Kofçaz"],[1505,"Lüleburgaz"],[1471,"Merkez"],[1572,"Pehlivanköy"],[1577,"Pınarhisar"],[1714,"Vize"]]],[40,"Kırşehir",[[1869,"Akçakent"],[1754,"Akpınar"],[1890,"Boztepe"],[1254,"Çiçekdağı"],[1429,"Kaman"],[1472,"Merkez"],[1529,"Mucur"]]],[41,"Kocaeli",[[2058,"Başiskele"],[2059,"Çayırova"],[2060,"Darıca"],[2030,"Derince"],[2061,"Dilovası"],[1338,"Gebze"],[1355,"Gölcük"],[2062,"İzmit"],[1430,"Kandıra"],[1440,"Karamürsel"],[2063,"Kartepe"],[1821,"Körfez"]]],[42,"Konya",[[1868,"Ahırlı"],[1753,"Akören"],[1122,"Akşehir"],[1760,"Altınekin"],[1188,"Beyşehir"],[1207,"Bozkır"],[1222,"Cihanbeyli"],[1902,"Çeltik"],[1262,"Çumra"],[1907,"Derbent"],[1789,"Derebucak"],[1285,"Doğanhisar"],[1920,"Emirgazi"],[1312,"Ereğli"],[1933,"Güneysınır"],[1375,"Hadim"],[1937,"Halkapınar"],[1804,"Hüyük"],[1400,"Ilgın"],[1422,"Kadınhanı"],[1441,"Karapınar"],[1814,"Karatay"],[1491,"Kulu"],[1827,"Meram"],[1598,"Sarayönü"],[1839,"Selçuklu"],[1617,"Seydişehir"],[1848,"Taşkent"],[1990,"Tuzlukçu"],[1994,"Yalıhüyük"],[1735,"Yunak"]]],[43,"Kütahya",[[1132,"Altıntaş"],[1764,"Aslanapa"],[1898,"Çavdarhisar"],[1288,"Domaniç"],[1790,"Dumlupınar"],[1304,"Emet"],[1339,"Gediz"],[1802,"Hisarcık"],[1500,"Merkez"],[1979,"Pazarlar"],[1625,"Simav"],[1843,"Şaphane"],[1671,"Tavşanlı"]]],[44,"Malatya",[[1114,"Akçadağ"],[1143,"Arapgir"],[1148,"Arguvan"],[1772,"Battalgazi"],[1265,"Darende"],[1286,"Doğanşehir"],[1914,"Doğanyol"],[1390,"Hekimhan"],[1953,"Kale"],[1969,"Kuluncak"],[1582,"Pütürge"],[1995,"Yazıhan"],[1729,"Yeşilyurt"]]],[45,"Manisa",[[1751,"Ahmetli"],[1118,"Akhisar"],[1127,"Alaşehir"],[1269,"Demirci"],[1793,"Gölmarmara"],[1362,"Gördes"],[1470,"Kırkağaç"],[1965,"Köprübaşı"],[1489,"Kula"],[1590,"Salihli"],[1600,"Sarıgöl"],[1606,"Saruhanlı"],[1613,"Selendi"],[1634,"Soma"],[2086,"Şehzadeler"],[1689,"Turgutlu"],[2087,"Yunusemre"]]],[46,"Kahramanmaraş",[[1107,"Afşin"],[1136,"Andırın"],[1785,"Çağlayancerit"],[2084,"Dulkadiroğlu"],[1919,"Ekinözü"],[1299,"Elbistan"],[1353,"Göksun"],[1975,"Nurhak"],[2085,"Onikişubat"],[1570,"Pazarcık"],[1694,"Türkoğlu"]]],[47,"Mardin",[[2088,"Artuklu"],[1787,"Dargeçit"],[1273,"Derik"],[1474,"Kızıltepe"],[1519,"Mazıdağı"],[1526,"Midyat"],[1547,"Nusaybin"],[1564,"Ömerli"],[1609,"Savur"],[2002,"Yeşilli"]]],[48,"Muğla",[[1197,"Bodrum"],[1742,"Dalaman"],[1266,"Datça"],[1331,"Fethiye"],[1958,"Kavaklıdere"],[1488,"Köyceğiz"],[1517,"Marmaris"],[2089,"Menteşe"],[1528,"Milas"],[1831,"Ortaca"],[2090,"Seydikemer"],[1695,"Ula"],[1719,"Yatağan"]]],[49,"Muş",[[1213,"Bulanık"],[1801,"Hasköy"],[1964,"Korkut"],[1510,"Malazgirt"],[1534,"Merkez"],[1711,"Varto"]]],[50,"Nevşehir",[[1749,"Acıgöl"],[1155,"Avanos"],[1274,"Derinkuyu"],[1367,"Gülşehir"],[1374,"Hacıbektaş"],[1485,"Kozaklı"],[1543,"Merkez"],[1707,"Ürgüp"]]],[51,"Niğde",[[1876,"Altunhisar"],[1201,"Bor"],[1225,"Çamardı"],[1904,"Çiftlik"],[1544,"Merkez"],[1700,"Ulukışla"]]],[52,"Ordu",[[1119,"Akkuş"],[2103,"Altınordu"],[1158,"Aybastı"],[1891,"Çamaş"],[1897,"Çatalpınar"],[1900,"Çaybaşı"],[1328,"Fatsa"],[1358,"Gölköy"],[1795,"Gülyalı"],[1797,"Gürgentepe"],[1947,"İkizce"],[1950,"Kabadüz"],[1951,"Kabataş"],[1482,"Korgan"],[1493,"Kumru"],[1525,"Mesudiye"],[1573,"Perşembe"],[1696,"Ulubey"],[1706,"Ünye"]]],[53,"Rize",[[1146,"Ardeşen"],[1228,"Çamlıhemşin"],[1241,"Çayeli"],[1908,"Derepazarı"],[1332,"Fındıklı"],[1796,"Güneysu"],[1943,"Hemşin"],[1405,"İkizdere"],[1949,"İyidere"],[1428,"Kalkandere"],[1586,"Merkez"],[1569,"Pazar"]]],[54,"Sakarya",[[2068,"Adapazarı"],[1123,"Akyazı"],[2069,"Arifiye"],[2070,"Erenler"],[1925,"Ferizli"],[1351,"Geyve"],[1391,"Hendek"],[1955,"Karapürçek"],[1442,"Karasu"],[1453,"Kaynarca"],[1818,"Kocaali"],[1833,"Pamukova"],[1595,"Sapanca"],[2071,"Serdivan"],[1986,"Söğütlü"],[1847,"Taraklı"]]],[55,"Samsun",[[1830,"19 Mayıs"],[1125,"Alaçam"],[1763,"Asarcık"],[2072,"Atakum"],[1879,"Ayvacık"],[1164,"Bafra"],[2073,"Canik"],[1234,"Çarşamba"],[1386,"Havza"],[2074,"İlkadım"],[1452,"Kavak"],[1501,"Ladik"],[1838,"Salıpazarı"],[1849,"Tekkeköy"],[1676,"Terme"],[1712,"Vezirköprü"],[1993,"Yakakent"]]],[56,"Siirt",[[1179,"Baykan"],[1317,"Eruh"],[1495,"Kurtalan"],[1620,"Merkez"],[1575,"Pervari"],[1662,"Şirvan"],[1878,"Tillo"]]],[57,"Sinop",[[1156,"Ayancık"],[1204,"Boyabat"],[1910,"Dikmen"],[1290,"Durağan"],[1314,"Erfelek"],[1349,"Gerze"],[1627,"Merkez"],[1981,"Saraydüzü"],[1693,"Türkeli"]]],[58,"Sivas",[[1870,"Akıncılar"],[1875,"Altınyayla"],[1282,"Divriği"],[1913,"Doğanşar"],[1342,"Gemerek"],[1927,"Gölova"],[1373,"Gürün"],[1376,"Hafik"],[1407,"İmranlı"],[1431,"Kangal"],[1484,"Koyulhisar"],[1628,"Merkez"],[1646,"Suşehri"],[1650,"Şarkışla"],[1991,"Ulaş"],[1731,"Yıldızeli"],[1738,"Zara"]]],[59,"Tekirdağ",[[1250,"Çerkezköy"],[1258,"Çorlu"],[2094,"Ergene"],[1388,"Hayrabolu"],[2095,"Kapaklı"],[1511,"Malkara"],[1825,"Marmaraereğlisi"],[1538,"Muratlı"],[1596,"Saray"],[2096,"Süleymanpaşa"],[1652,"Şarköy"]]],[60,"Tokat",[[1129,"Almus"],[1151,"Artova"],[1883,"Başçiftlik"],[1308,"Erbaa"],[1679,"Merkez"],[1545,"Niksar"],[1834,"Pazar"],[1584,"Reşadiye"],[1987,"Sulusaray"],[1690,"Turhal"],[1858,"Yeşilyurt"],[1740,"Zile"]]],[61,"Trabzon",[[1113,"Akçaabat"],[1141,"Araklı"],[1150,"Arsin"],[1775,"Beşikdüzü"],[1896,"Çarşıbaşı"],[1244,"Çaykara"],[1909,"Dernekpazarı"],[1917,"Düzköy"],[1942,"Hayrat"],[1966,"Köprübaşı"],[1507,"Maçka"],[1548,"Of"],[2097,"Ortahisar"],[1647,"Sürmene"],[1842,"Şalpazarı"],[1681,"Tonya"],[1709,"Vakfıkebir"],[1732,"Yomra"]]],[62,"Tunceli",[[1247,"Çemişgezek"],[1397,"Hozat"],[1518,"Mazgirt"],[1688,"Merkez"],[1541,"Nazımiye"],[1562,"Ovacık"],[1574,"Pertek"],[1581,"Pülümür"]]],[63,"Şanlıurfa",[[1115,"Akçakale"],[1194,"Birecik"],[1209,"Bozova"],[1220,"Ceylanpınar"],[2091,"Eyyübiye"],[1378,"Halfeti"],[2092,"Haliliye"],[1800,"Harran"],[1393,"Hilvan"],[2093,"Karaköprü"],[1630,"Siverek"],[1643,"Suruç"],[1713,"Viranşehir"]]],[64,"Uşak",[[1170,"Banaz"],[1323,"Eşme"],[1436,"Karahallı"],[1704,"Merkez"],[1629,"Sivaslı"],[1697,"Ulubey"]]],[65,"Van",[[1770,"Bahçesaray"],[1175,"Başkale"],[1786,"Çaldıran"],[1236,"Çatak"],[1918,"Edremit"],[1309,"Erciş"],[1350,"Gevaş"],[1372,"Gürpınar"],[2098,"İpekyolu"],[1533,"Muradiye"],[1565,"Özalp"],[1980,"Saray"],[2099,"Tuşba"]]],[66,"Yozgat",[[1117,"Akdağmadeni"],[1877,"Aydıncık"],[1198,"Boğazlıyan"],[1895,"Çandır"],[1242,"Çayıralan"],[1245,"Çekerek"],[1952,"Kadışehri"],[1733,"Merkez"],[1982,"Saraykent"],[1602,"Sarıkaya"],[1635,"Sorgun"],[1655,"Şefaatli"],[1998,"Yenifakılı"],[1726,"Yerköy"]]],[67,"Zonguldak",[[1758,"Alaplı"],[1240,"Çaycuma"],[1276,"Devrek"],[1313,"Ereğli"],[1926,"Gökçebey"],[2100,"Kilimli"],[2101,"Kozlu"],[1741,"Merkez"]]],[68,"Aksaray",[[1860,"Ağaçören"],[1921,"Eskil"],[1932,"Gülağaç"],[1861,"Güzelyurt"],[1120,"Merkez"],[1557,"Ortaköy"],[1866,"Sarıyahşi"],[2106,"Sultanhanı"]]],[69,"Bayburt",[[1767,"Aydıntepe"],[1788,"Demirözü"],[1176,"Merkez"]]],[70,"Karaman",[[1768,"Ayrancı"],[1884,"Başyayla"],[1316,"Ermenek"],[1862,"Kazımkarabekir"],[1439,"Merkez"],[1983,"Sarıveliler"]]],[71,"Kırıkkale",[[1880,"Bahşılı"],[1882,"Balışeyh"],[1901,"Çelebi"],[1268,"Delice"],[1954,"Karakeçili"],[1463,"Keskin"],[1469,"Merkez"],[1638,"Sulakyurt"],[1992,"Yahşihan"]]],[72,"Batman",[[1184,"Beşiri"],[1345,"Gercüş"],[1941,"Hasankeyf"],[1487,"Kozluk"],[1174,"Merkez"],[1607,"Sason"]]],[73,"Şırnak",[[1189,"Beytüşşebap"],[1223,"Cizre"],[1931,"Güçlükonak"],[1403,"İdil"],[1661,"Merkez"],[1623,"Silopi"],[1698,"Uludere"]]],[74,"Bartın",[[1761,"Amasra"],[1496,"Kurucaşile"],[1172,"Merkez"],[1701,"Ulus"]]],[75,"Ardahan",[[1252,"Çıldır"],[2008,"Damal"],[1356,"Göle"],[1380,"Hanak"],[1144,"Merkez"],[1579,"Posof"]]],[76,"Iğdır",[[1142,"Aralık"],[2011,"Karakoyunlu"],[1398,"Merkez"],[1692,"Tuzluca"]]],[77,"Yalova",[[2019,"Altınova"],[2020,"Armutlu"],[2021,"Çınarcık"],[2022,"Çiftlikköy"],[1716,"Merkez"],[2026,"Termal"]]],[78,"Karabük",[[1296,"Eflani"],[1321,"Eskipazar"],[1433,"Merkez"],[1561,"Ovacık"],[1587,"Safranbolu"],[1856,"Yenice"]]],[79,"Kilis",[[2023,"Elbeyli"],[1476,"Merkez"],[2024,"Musabeyli"],[2025,"Polateli"]]],[80,"Osmaniye",[[1165,"Bahçe"],[1743,"Düziçi"],[2027,"Hasanbeyli"],[1423,"Kadirli"],[1560,"Merkez"],[2028,"Sumbas"],[2029,"Toprakkale"]]],[81,"Düzce",[[1116,"Akçakoca"],[1784,"Cumayeri"],[1905,"Çilimli"],[1794,"Gölyaka"],[2017,"Gümüşova"],[2031,"Kaynaşlı"],[1292,"Merkez"],[1730,"Yığılca"]]]]}
@@ -0,0 +1,23 @@
1
+ import type { AddressDataSource, AddressDistrict, AddressProvince } from "../core/types.js";
2
+ /** Compact on-disk shape: `[plate, "Adana", [[districtCode, "Aladağ"], …]]`. */
3
+ export type TrAddressRow = [plate: number, name: string, districts: [code: number, name: string][]];
4
+ export interface TrAddressData {
5
+ source: string;
6
+ generated: string;
7
+ provinces: TrAddressRow[];
8
+ }
9
+ /** Loads the province / district dataset once (cached). */
10
+ export declare function loadTrAddressData(): Promise<TrAddressData>;
11
+ /** Province list sorted by plate code. */
12
+ export declare function trProvinces(): Promise<AddressProvince[]>;
13
+ /** Districts of a province (by plate code), in Turkish alphabetical order. */
14
+ export declare function trDistricts(plate: number): Promise<AddressDistrict[]>;
15
+ /** Finds a province by name, case- and dotted-I-insensitive ("istanbul" → İstanbul). */
16
+ export declare function findTrProvince(name: string): Promise<AddressProvince | undefined>;
17
+ /**
18
+ * Sanity check for a 5-digit postal code: its first two digits are the plate code.
19
+ * Returns `"ok"`, `"format"` (not 5 digits) or `"province"` (prefix does not match).
20
+ */
21
+ export declare function checkTrPostalCode(code: string, plate?: number): "ok" | "format" | "province";
22
+ /** `AddressDataSource` for Address field. */
23
+ export declare const trAddress: AddressDataSource;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Turkish provinces (81) and districts (973), loaded lazily with dynamic `import()` on first
3
+ * use (~19 kB raw / ~8 kB gzip), never in the main bundle.
4
+ *
5
+ * Names match official spelling exactly ("Eyüpsultan", "Kahramanmaraş") because UBL-TR
6
+ * `CityName` / `CitySubdivisionName` are text, not codes. Source and date are stamped in
7
+ * `address-tr.json`. Postal codes are not bundled; use `checkTrPostalCode` for a sanity warning.
8
+ */
9
+ import { compareText, foldText } from "../../lib/text.js";
10
+ const byName = compareText("tr");
11
+ let pending;
12
+ /** Loads the province / district dataset once (cached). */
13
+ export function loadTrAddressData() {
14
+ pending ??= import("./address-tr.json").then((m) => (m.default ?? m));
15
+ return pending;
16
+ }
17
+ /** Province list sorted by plate code. */
18
+ export async function trProvinces() {
19
+ const data = await loadTrAddressData();
20
+ return data.provinces.map(([code, name]) => ({ code, name }));
21
+ }
22
+ /** Districts of a province (by plate code), in Turkish alphabetical order. */
23
+ export async function trDistricts(plate) {
24
+ const data = await loadTrAddressData();
25
+ const row = data.provinces.find((p) => p[0] === plate);
26
+ return row ? row[2].map(([code, name]) => ({ code, name })).sort((a, b) => byName(a.name, b.name)) : [];
27
+ }
28
+ /** Finds a province by name, case- and dotted-I-insensitive ("istanbul" → İstanbul). */
29
+ export async function findTrProvince(name) {
30
+ const list = await trProvinces();
31
+ const key = foldText(name.trim(), "tr");
32
+ return list.find((p) => foldText(p.name, "tr") === key);
33
+ }
34
+ /**
35
+ * Sanity check for a 5-digit postal code: its first two digits are the plate code.
36
+ * Returns `"ok"`, `"format"` (not 5 digits) or `"province"` (prefix does not match).
37
+ */
38
+ export function checkTrPostalCode(code, plate) {
39
+ const v = code.trim();
40
+ if (!/^\d{5}$/.test(v))
41
+ return "format";
42
+ const prefix = Number(v.slice(0, 2));
43
+ if (prefix < 1 || prefix > 81)
44
+ return "format";
45
+ return plate === undefined || prefix === plate ? "ok" : "province";
46
+ }
47
+ /** `AddressDataSource` for Address field. */
48
+ export const trAddress = {
49
+ id: "tr",
50
+ provinces: trProvinces,
51
+ districts: trDistricts,
52
+ };
@@ -0,0 +1,31 @@
1
+ import type { Holiday, HolidayProvider } from "../core/types.js";
2
+ export declare const TR_HOLIDAYS_SOURCE: {
3
+ readonly source: "Diyanet İşleri Başkanlığı — Dini Günler takvimi (2025–2027); Law 2429";
4
+ readonly verifiedOn: "2026-11-10";
5
+ readonly coverage: {
6
+ readonly from: "2025-01-01";
7
+ readonly to: "2027-12-31";
8
+ };
9
+ };
10
+ interface ReligiousRow {
11
+ year: number;
12
+ /** First day of Ramazan Bayramı (3 days; eve = previous day, half day). */
13
+ ramazan: string;
14
+ /** First day of Kurban Bayramı (4 days; eve = previous day, half day). */
15
+ kurban: string;
16
+ verified: boolean;
17
+ }
18
+ /** First days of the religious holidays, as published by Diyanet. */
19
+ export declare const TR_RELIGIOUS_HOLIDAYS: readonly ReligiousRow[];
20
+ /** All Turkish public holidays of one year (religious ones only inside the table's coverage). */
21
+ export declare function trHolidaysForYear(year: number): Holiday[];
22
+ /**
23
+ * The `tr` holiday provider. Names are English in `name` and official Turkish in `localName`.
24
+ *
25
+ * ```ts
26
+ * trHolidays.get({ start: "2026-10-01", end: "2026-10-31" });
27
+ * // [{ date: "2026-10-28", name: "Republic Day Eve", partial: { from: "13:00" }, … }, { date: "2026-10-29", … }]
28
+ * ```
29
+ */
30
+ export declare const trHolidays: HolidayProvider;
31
+ export {};