material-plus-ui 0.0.1 → 1.1.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 (341) hide show
  1. package/README.md +39 -28
  2. package/dist/components/accordion/MPAccordion.d.ts +115 -0
  3. package/dist/components/accordion/MPAccordion.js +1 -0
  4. package/dist/components/accordion/index.d.ts +2 -0
  5. package/dist/components/accordion/index.js +1 -0
  6. package/dist/components/alert/MPAlert.d.ts +91 -0
  7. package/dist/components/alert/MPAlert.js +1 -0
  8. package/dist/components/alert/index.d.ts +2 -0
  9. package/dist/components/alert/index.js +1 -0
  10. package/dist/components/animate-appear/MPAnimateAppear.d.ts +56 -0
  11. package/dist/components/animate-appear/MPAnimateAppear.js +1 -0
  12. package/dist/components/animate-appear/index.d.ts +2 -0
  13. package/dist/components/animate-appear/index.js +1 -0
  14. package/dist/components/animate-blink/MPAnimateBlink.d.ts +41 -0
  15. package/dist/components/animate-blink/MPAnimateBlink.js +1 -0
  16. package/dist/components/animate-blink/index.d.ts +2 -0
  17. package/dist/components/animate-blink/index.js +1 -0
  18. package/dist/components/animate-fade/MPAnimateFade.d.ts +38 -0
  19. package/dist/components/animate-fade/MPAnimateFade.js +1 -0
  20. package/dist/components/animate-fade/index.d.ts +2 -0
  21. package/dist/components/animate-fade/index.js +1 -0
  22. package/dist/components/animate-grow/MPAnimateGrow.d.ts +52 -0
  23. package/dist/components/animate-grow/MPAnimateGrow.js +1 -0
  24. package/dist/components/animate-grow/index.d.ts +2 -0
  25. package/dist/components/animate-grow/index.js +1 -0
  26. package/dist/components/animate-headline/MPAnimateHeadline.d.ts +63 -0
  27. package/dist/components/animate-headline/MPAnimateHeadline.js +1 -0
  28. package/dist/components/animate-headline/index.d.ts +2 -0
  29. package/dist/components/animate-headline/index.js +1 -0
  30. package/dist/components/animate-lighting/MPAnimateLighting.d.ts +68 -0
  31. package/dist/components/animate-lighting/MPAnimateLighting.js +1 -0
  32. package/dist/components/animate-lighting/index.d.ts +2 -0
  33. package/dist/components/animate-lighting/index.js +1 -0
  34. package/dist/components/animate-marquee/MPAnimateMarquee.d.ts +66 -0
  35. package/dist/components/animate-marquee/MPAnimateMarquee.js +1 -0
  36. package/dist/components/animate-marquee/index.d.ts +2 -0
  37. package/dist/components/animate-marquee/index.js +1 -0
  38. package/dist/components/animate-rotate/MPAnimateRotate.d.ts +56 -0
  39. package/dist/components/animate-rotate/MPAnimateRotate.js +1 -0
  40. package/dist/components/animate-rotate/index.d.ts +2 -0
  41. package/dist/components/animate-rotate/index.js +1 -0
  42. package/dist/components/animate-slide/MPAnimateSlide.d.ts +53 -0
  43. package/dist/components/animate-slide/MPAnimateSlide.js +1 -0
  44. package/dist/components/animate-slide/index.d.ts +2 -0
  45. package/dist/components/animate-slide/index.js +1 -0
  46. package/dist/components/animate-typing/MPAnimateTyping.d.ts +59 -0
  47. package/dist/components/animate-typing/MPAnimateTyping.js +1 -0
  48. package/dist/components/animate-typing/index.d.ts +2 -0
  49. package/dist/components/animate-typing/index.js +1 -0
  50. package/dist/components/animate-zoom/MPAnimateZoom.d.ts +44 -0
  51. package/dist/components/animate-zoom/MPAnimateZoom.js +1 -0
  52. package/dist/components/animate-zoom/index.d.ts +2 -0
  53. package/dist/components/animate-zoom/index.js +1 -0
  54. package/dist/components/aspect-ratio/MPAspectRatio.d.ts +69 -0
  55. package/dist/components/aspect-ratio/MPAspectRatio.js +1 -0
  56. package/dist/components/aspect-ratio/index.d.ts +2 -0
  57. package/dist/components/aspect-ratio/index.js +1 -0
  58. package/dist/components/avatar/MPAvatar.d.ts +104 -0
  59. package/dist/components/avatar/MPAvatar.js +1 -0
  60. package/dist/components/avatar/index.d.ts +2 -0
  61. package/dist/components/avatar/index.js +1 -0
  62. package/dist/components/badge/MPBadge.d.ts +104 -0
  63. package/dist/components/badge/MPBadge.js +1 -0
  64. package/dist/components/badge/index.d.ts +2 -0
  65. package/dist/components/badge/index.js +1 -0
  66. package/dist/components/blockquote/MPBlockquote.d.ts +73 -0
  67. package/dist/components/blockquote/MPBlockquote.js +1 -0
  68. package/dist/components/blockquote/index.d.ts +2 -0
  69. package/dist/components/blockquote/index.js +1 -0
  70. package/dist/components/bottom-navigation/MPBottomNavigation.d.ts +144 -0
  71. package/dist/components/bottom-navigation/MPBottomNavigation.js +1 -0
  72. package/dist/components/bottom-navigation/index.d.ts +2 -0
  73. package/dist/components/bottom-navigation/index.js +1 -0
  74. package/dist/components/box/MPBox.d.ts +78 -0
  75. package/dist/components/box/MPBox.js +1 -0
  76. package/dist/components/box/index.d.ts +2 -0
  77. package/dist/components/box/index.js +1 -0
  78. package/dist/components/breadcrumb/MPBreadcrumb.d.ts +127 -0
  79. package/dist/components/breadcrumb/MPBreadcrumb.js +1 -0
  80. package/dist/components/breadcrumb/index.d.ts +2 -0
  81. package/dist/components/breadcrumb/index.js +1 -0
  82. package/dist/components/button/MPButton.d.ts +75 -0
  83. package/dist/components/button/MPButton.js +1 -0
  84. package/dist/components/button/index.d.ts +2 -0
  85. package/dist/components/button/index.js +1 -0
  86. package/dist/components/button-group/MPButtonGroup.d.ts +31 -0
  87. package/dist/components/button-group/MPButtonGroup.js +1 -0
  88. package/dist/components/button-group/index.d.ts +2 -0
  89. package/dist/components/button-group/index.js +1 -0
  90. package/dist/components/card/MPCard.d.ts +73 -0
  91. package/dist/components/card/MPCard.js +1 -0
  92. package/dist/components/card/index.d.ts +2 -0
  93. package/dist/components/card/index.js +1 -0
  94. package/dist/components/carousel/MPCarousel.d.ts +116 -0
  95. package/dist/components/carousel/MPCarousel.js +1 -0
  96. package/dist/components/carousel/index.d.ts +2 -0
  97. package/dist/components/carousel/index.js +1 -0
  98. package/dist/components/chat-bubble/MPChatBubble.d.ts +132 -0
  99. package/dist/components/chat-bubble/MPChatBubble.js +1 -0
  100. package/dist/components/chat-bubble/index.d.ts +2 -0
  101. package/dist/components/chat-bubble/index.js +1 -0
  102. package/dist/components/checkbox/MPCheckbox.d.ts +76 -0
  103. package/dist/components/checkbox/MPCheckbox.js +1 -0
  104. package/dist/components/checkbox/index.d.ts +2 -0
  105. package/dist/components/checkbox/index.js +1 -0
  106. package/dist/components/chip/MPChip.d.ts +74 -0
  107. package/dist/components/chip/MPChip.js +1 -0
  108. package/dist/components/chip/index.d.ts +2 -0
  109. package/dist/components/chip/index.js +1 -0
  110. package/dist/components/collapsible/MPCollapsible.d.ts +97 -0
  111. package/dist/components/collapsible/MPCollapsible.js +1 -0
  112. package/dist/components/collapsible/index.d.ts +2 -0
  113. package/dist/components/collapsible/index.js +1 -0
  114. package/dist/components/color-picker/MPColorPicker.d.ts +131 -0
  115. package/dist/components/color-picker/MPColorPicker.js +1 -0
  116. package/dist/components/color-picker/index.d.ts +2 -0
  117. package/dist/components/color-picker/index.js +1 -0
  118. package/dist/components/combobox/MPCombobox.d.ts +175 -0
  119. package/dist/components/combobox/MPCombobox.js +1 -0
  120. package/dist/components/combobox/index.d.ts +2 -0
  121. package/dist/components/combobox/index.js +1 -0
  122. package/dist/components/container/MPContainer.d.ts +75 -0
  123. package/dist/components/container/MPContainer.js +1 -0
  124. package/dist/components/container/index.d.ts +2 -0
  125. package/dist/components/container/index.js +1 -0
  126. package/dist/components/date-picker/MPDatePicker.d.ts +98 -0
  127. package/dist/components/date-picker/MPDatePicker.js +1 -0
  128. package/dist/components/date-picker/index.d.ts +2 -0
  129. package/dist/components/date-picker/index.js +1 -0
  130. package/dist/components/date-range-picker/MPDateRangePicker.d.ts +98 -0
  131. package/dist/components/date-range-picker/MPDateRangePicker.js +1 -0
  132. package/dist/components/date-range-picker/index.d.ts +2 -0
  133. package/dist/components/date-range-picker/index.js +1 -0
  134. package/dist/components/date-time-picker/MPDateTimePicker.d.ts +78 -0
  135. package/dist/components/date-time-picker/MPDateTimePicker.js +1 -0
  136. package/dist/components/date-time-picker/index.d.ts +2 -0
  137. package/dist/components/date-time-picker/index.js +1 -0
  138. package/dist/components/dialog/MPDialog.d.ts +150 -0
  139. package/dist/components/dialog/MPDialog.js +1 -0
  140. package/dist/components/dialog/index.d.ts +2 -0
  141. package/dist/components/dialog/index.js +1 -0
  142. package/dist/components/divider/MPDivider.d.ts +80 -0
  143. package/dist/components/divider/MPDivider.js +1 -0
  144. package/dist/components/divider/index.d.ts +2 -0
  145. package/dist/components/divider/index.js +1 -0
  146. package/dist/components/drawer/MPDrawer.d.ts +168 -0
  147. package/dist/components/drawer/MPDrawer.js +1 -0
  148. package/dist/components/drawer/index.d.ts +2 -0
  149. package/dist/components/drawer/index.js +1 -0
  150. package/dist/components/empty/MPEmpty.d.ts +74 -0
  151. package/dist/components/empty/MPEmpty.js +1 -0
  152. package/dist/components/empty/index.d.ts +2 -0
  153. package/dist/components/empty/index.js +1 -0
  154. package/dist/components/file-picker/MPFilePicker.d.ts +113 -0
  155. package/dist/components/file-picker/MPFilePicker.js +1 -0
  156. package/dist/components/file-picker/index.d.ts +2 -0
  157. package/dist/components/file-picker/index.js +1 -0
  158. package/dist/components/floating-action-button/MPFloatingActionButton.d.ts +126 -0
  159. package/dist/components/floating-action-button/MPFloatingActionButton.js +1 -0
  160. package/dist/components/floating-action-button/index.d.ts +2 -0
  161. package/dist/components/floating-action-button/index.js +1 -0
  162. package/dist/components/grid/MPGrid.d.ts +155 -0
  163. package/dist/components/grid/MPGrid.js +1 -0
  164. package/dist/components/grid/index.d.ts +2 -0
  165. package/dist/components/grid/index.js +1 -0
  166. package/dist/components/highlight/MPHighlight.d.ts +95 -0
  167. package/dist/components/highlight/MPHighlight.js +1 -0
  168. package/dist/components/highlight/index.d.ts +2 -0
  169. package/dist/components/highlight/index.js +1 -0
  170. package/dist/components/icon-button/MPIconButton.d.ts +59 -0
  171. package/dist/components/icon-button/MPIconButton.js +1 -0
  172. package/dist/components/icon-button/index.d.ts +2 -0
  173. package/dist/components/icon-button/index.js +1 -0
  174. package/dist/components/list/MPList.d.ts +96 -0
  175. package/dist/components/list/MPList.js +1 -0
  176. package/dist/components/list/index.d.ts +2 -0
  177. package/dist/components/list/index.js +1 -0
  178. package/dist/components/locale/MPLocaleProvider.d.ts +63 -0
  179. package/dist/components/locale/MPLocaleProvider.js +1 -0
  180. package/dist/components/locale/index.d.ts +2 -0
  181. package/dist/components/locale/index.js +1 -0
  182. package/dist/components/menu/MPMenu.d.ts +232 -0
  183. package/dist/components/menu/MPMenu.js +1 -0
  184. package/dist/components/menu/index.d.ts +2 -0
  185. package/dist/components/menu/index.js +1 -0
  186. package/dist/components/number-field/MPNumberField.d.ts +117 -0
  187. package/dist/components/number-field/MPNumberField.js +1 -0
  188. package/dist/components/number-field/index.d.ts +2 -0
  189. package/dist/components/number-field/index.js +1 -0
  190. package/dist/components/otp-field/MPOtpField.d.ts +89 -0
  191. package/dist/components/otp-field/MPOtpField.js +1 -0
  192. package/dist/components/otp-field/index.d.ts +2 -0
  193. package/dist/components/otp-field/index.js +1 -0
  194. package/dist/components/overlay/MPOverlay.d.ts +96 -0
  195. package/dist/components/overlay/MPOverlay.js +1 -0
  196. package/dist/components/overlay/index.d.ts +2 -0
  197. package/dist/components/overlay/index.js +1 -0
  198. package/dist/components/pagination/MPPagination.d.ts +106 -0
  199. package/dist/components/pagination/MPPagination.js +1 -0
  200. package/dist/components/pagination/index.d.ts +2 -0
  201. package/dist/components/pagination/index.js +1 -0
  202. package/dist/components/panes/MPPanes.d.ts +100 -0
  203. package/dist/components/panes/MPPanes.js +1 -0
  204. package/dist/components/panes/index.d.ts +2 -0
  205. package/dist/components/panes/index.js +1 -0
  206. package/dist/components/pill/MPPill.d.ts +117 -0
  207. package/dist/components/pill/MPPill.js +1 -0
  208. package/dist/components/pill/index.d.ts +2 -0
  209. package/dist/components/pill/index.js +1 -0
  210. package/dist/components/popover/MPPopover.d.ts +143 -0
  211. package/dist/components/popover/MPPopover.js +1 -0
  212. package/dist/components/popover/index.d.ts +2 -0
  213. package/dist/components/popover/index.js +1 -0
  214. package/dist/components/progress-box/MPProgressBox.d.ts +40 -0
  215. package/dist/components/progress-box/MPProgressBox.js +1 -0
  216. package/dist/components/progress-box/index.d.ts +2 -0
  217. package/dist/components/progress-box/index.js +1 -0
  218. package/dist/components/progress-circular/MPProgressCircular.d.ts +32 -0
  219. package/dist/components/progress-circular/MPProgressCircular.js +1 -0
  220. package/dist/components/progress-circular/index.d.ts +2 -0
  221. package/dist/components/progress-circular/index.js +1 -0
  222. package/dist/components/progress-linear/MPProgressLinear.d.ts +32 -0
  223. package/dist/components/progress-linear/MPProgressLinear.js +1 -0
  224. package/dist/components/progress-linear/index.d.ts +2 -0
  225. package/dist/components/progress-linear/index.js +1 -0
  226. package/dist/components/radio-group/MPRadioGroup.d.ts +81 -0
  227. package/dist/components/radio-group/MPRadioGroup.js +1 -0
  228. package/dist/components/radio-group/index.d.ts +2 -0
  229. package/dist/components/radio-group/index.js +1 -0
  230. package/dist/components/rating/MPRating.d.ts +135 -0
  231. package/dist/components/rating/MPRating.js +1 -0
  232. package/dist/components/rating/index.d.ts +2 -0
  233. package/dist/components/rating/index.js +1 -0
  234. package/dist/components/segmented-button/MPSegmentedButton.d.ts +75 -0
  235. package/dist/components/segmented-button/MPSegmentedButton.js +1 -0
  236. package/dist/components/segmented-button/index.d.ts +2 -0
  237. package/dist/components/segmented-button/index.js +1 -0
  238. package/dist/components/select/MPSelect.d.ts +103 -0
  239. package/dist/components/select/MPSelect.js +1 -0
  240. package/dist/components/select/index.d.ts +2 -0
  241. package/dist/components/select/index.js +1 -0
  242. package/dist/components/shortcut/MPShortcut.d.ts +67 -0
  243. package/dist/components/shortcut/MPShortcut.js +1 -0
  244. package/dist/components/shortcut/index.d.ts +2 -0
  245. package/dist/components/shortcut/index.js +1 -0
  246. package/dist/components/skeleton/MPSkeleton.d.ts +76 -0
  247. package/dist/components/skeleton/MPSkeleton.js +1 -0
  248. package/dist/components/skeleton/index.d.ts +2 -0
  249. package/dist/components/skeleton/index.js +1 -0
  250. package/dist/components/slider/MPSlider.d.ts +77 -0
  251. package/dist/components/slider/MPSlider.js +1 -0
  252. package/dist/components/slider/index.d.ts +2 -0
  253. package/dist/components/slider/index.js +1 -0
  254. package/dist/components/snackbar/MPSnackbar.d.ts +175 -0
  255. package/dist/components/snackbar/MPSnackbar.js +1 -0
  256. package/dist/components/snackbar/index.d.ts +2 -0
  257. package/dist/components/snackbar/index.js +1 -0
  258. package/dist/components/spoiler/MPSpoiler.d.ts +106 -0
  259. package/dist/components/spoiler/MPSpoiler.js +1 -0
  260. package/dist/components/spoiler/index.d.ts +2 -0
  261. package/dist/components/spoiler/index.js +1 -0
  262. package/dist/components/switch/MPSwitch.d.ts +75 -0
  263. package/dist/components/switch/MPSwitch.js +1 -0
  264. package/dist/components/switch/index.d.ts +2 -0
  265. package/dist/components/switch/index.js +1 -0
  266. package/dist/components/table/MPTable.d.ts +120 -0
  267. package/dist/components/table/MPTable.js +1 -0
  268. package/dist/components/table/index.d.ts +2 -0
  269. package/dist/components/table/index.js +1 -0
  270. package/dist/components/tabs/MPTabs.d.ts +145 -0
  271. package/dist/components/tabs/MPTabs.js +1 -0
  272. package/dist/components/tabs/index.d.ts +2 -0
  273. package/dist/components/tabs/index.js +1 -0
  274. package/dist/components/text-field/MPTextField.d.ts +51 -22
  275. package/dist/components/text-field/MPTextField.js +1 -1
  276. package/dist/components/text-link/MPTextLink.d.ts +88 -0
  277. package/dist/components/text-link/MPTextLink.js +1 -0
  278. package/dist/components/text-link/index.d.ts +2 -0
  279. package/dist/components/text-link/index.js +1 -0
  280. package/dist/components/time-picker/MPTimePicker.d.ts +108 -0
  281. package/dist/components/time-picker/MPTimePicker.js +1 -0
  282. package/dist/components/time-picker/index.d.ts +2 -0
  283. package/dist/components/time-picker/index.js +1 -0
  284. package/dist/components/timeline/MPTimeline.d.ts +96 -0
  285. package/dist/components/timeline/MPTimeline.js +1 -0
  286. package/dist/components/timeline/index.d.ts +2 -0
  287. package/dist/components/timeline/index.js +1 -0
  288. package/dist/components/tooltip/MPTooltip.d.ts +117 -0
  289. package/dist/components/tooltip/MPTooltip.js +1 -0
  290. package/dist/components/tooltip/index.d.ts +2 -0
  291. package/dist/components/tooltip/index.js +1 -0
  292. package/dist/components/typography/MPTypography.d.ts +94 -0
  293. package/dist/components/typography/MPTypography.js +1 -0
  294. package/dist/components/typography/index.d.ts +2 -0
  295. package/dist/components/typography/index.js +1 -0
  296. package/dist/constants/icons.d.ts +49 -0
  297. package/dist/constants/icons.js +1 -1
  298. package/dist/index.d.ts +73 -0
  299. package/dist/index.js +1 -1
  300. package/dist/internal/Calendar.d.ts +118 -0
  301. package/dist/internal/Calendar.js +1 -0
  302. package/dist/internal/FieldOutline.d.ts +109 -0
  303. package/dist/internal/FieldOutline.js +1 -0
  304. package/dist/internal/Picker.d.ts +153 -0
  305. package/dist/internal/Picker.js +1 -0
  306. package/dist/internal/StateLayer.d.ts +45 -0
  307. package/dist/internal/StateLayer.js +1 -0
  308. package/dist/internal/SupportingText.d.ts +23 -0
  309. package/dist/internal/SupportingText.js +1 -0
  310. package/dist/internal/WidthSizer.d.ts +31 -0
  311. package/dist/internal/WidthSizer.js +1 -0
  312. package/dist/internal/accent.d.ts +39 -0
  313. package/dist/internal/accent.js +1 -0
  314. package/dist/internal/animate.d.ts +179 -0
  315. package/dist/internal/animate.js +1 -0
  316. package/dist/internal/button-group.d.ts +21 -0
  317. package/dist/internal/button-group.js +1 -0
  318. package/dist/internal/color.d.ts +125 -0
  319. package/dist/internal/color.js +1 -0
  320. package/dist/internal/date.d.ts +179 -0
  321. package/dist/internal/date.js +1 -0
  322. package/dist/internal/i18n.d.ts +241 -0
  323. package/dist/internal/i18n.js +1 -0
  324. package/dist/internal/inert.d.ts +11 -0
  325. package/dist/internal/inert.js +1 -0
  326. package/dist/internal/locale.d.ts +43 -0
  327. package/dist/internal/locale.js +1 -0
  328. package/dist/internal/menu.d.ts +23 -0
  329. package/dist/internal/menu.js +1 -0
  330. package/dist/internal/progress.d.ts +126 -0
  331. package/dist/internal/progress.js +1 -0
  332. package/dist/internal/scale.d.ts +127 -0
  333. package/dist/internal/scale.js +1 -0
  334. package/dist/internal/surface.d.ts +76 -0
  335. package/dist/internal/surface.js +1 -0
  336. package/dist/internal/visually-hidden.d.ts +23 -0
  337. package/dist/internal/visually-hidden.js +1 -0
  338. package/dist/styles.css +1 -1
  339. package/dist/tailwind.css +1871 -20
  340. package/dist/types.d.ts +262 -16
  341. package/package.json +16 -21
@@ -0,0 +1,241 @@
1
+ /**
2
+ * The words the library says on its own behalf.
3
+ *
4
+ * Almost nothing in Material Plus writes text a reader sees — a button says
5
+ * whatever it was handed, a dialog's title is the caller's. The exceptions are
6
+ * the strings a component has to invent because there is nowhere else for them
7
+ * to come from: the name on a calendar's back arrow, the word on the button that
8
+ * empties a picker, the label a screen reader hears for a column of minutes.
9
+ *
10
+ * Those are collected here rather than defaulted inside each component, because
11
+ * they are a *set*. A product in Korean does not want four pickers each
12
+ * defaulting to English and each needing eighteen override props; and the next
13
+ * component that needs a word should get it from the same place rather than
14
+ * starting a second table beside this one.
15
+ *
16
+ * What is *not* in here is anything `Intl` already knows. Month names, weekday
17
+ * names, AM/PM and number formats come from the platform, which speaks more
18
+ * languages than this file ever will — see `internal/date.ts`. This is only for
19
+ * the words the platform has no opinion about.
20
+ *
21
+ * Every component that reads this takes a `locale` and an override prop for the
22
+ * strings themselves, so an unsupported language is never a dead end: `locale`
23
+ * gets you a translation for free, `MPLocaleProvider` gets you one for the whole
24
+ * application at once, and the prop gets you one for anything else.
25
+ *
26
+ * Nothing here is exported from `src/index.ts` — the public surface is
27
+ * `MPLocaleProvider` and the per-component `labels` props.
28
+ */
29
+ /**
30
+ * One namespace per component, rather than one flat list of keys.
31
+ *
32
+ * A namespace is what makes a partial translation possible: a locale supplies
33
+ * whatever it has and the rest falls back to English one namespace at a time, so
34
+ * adding a namespace here does not silently blank the strings in every language
35
+ * that has not caught up with it yet.
36
+ */
37
+ export interface MPMessages {
38
+ /**
39
+ * The handful of words that are not any one component's.
40
+ *
41
+ * A namespace for the words rather than one per component that says them,
42
+ * because they are the same word: the × on a dialog, on a drawer, on a
43
+ * popover and on a snackbar is *close* four times, and four namespaces would
44
+ * be four chances for a translation to disagree with itself about it.
45
+ *
46
+ * Every one of these is drawn as a glyph and read out as a word, which is why
47
+ * they belong in this table at all — see the note at the top of the file. The
48
+ * components that use them each keep their own override prop for the case
49
+ * where a particular × means something more specific than "close".
50
+ */
51
+ common: {
52
+ /** The × in the corner of anything that can be dismissed. */
53
+ close: string;
54
+ /** The × that empties a control without closing it. */
55
+ clear: string;
56
+ /** The chevron that opens a list. */
57
+ open: string;
58
+ /** The × that takes one thing out of a set — a chip, a file, a tag. */
59
+ remove: string;
60
+ /**
61
+ * The same, named for what it removes. `{label}` is filled in by
62
+ * `fillMessage`.
63
+ *
64
+ * A second string rather than the bare verb with the name stuck on the end,
65
+ * because where the name goes is not the same in every language: German and
66
+ * Korean put it first, English and Spanish put it last. A row of five
67
+ * remove buttons all called "Remove" is a row a screen reader cannot tell
68
+ * apart, which is the whole reason this one exists.
69
+ */
70
+ removeNamed: string;
71
+ /** The spinner that replaces a button's leading glyph while it waits. */
72
+ loading: string;
73
+ };
74
+ /**
75
+ * MPTextField.
76
+ *
77
+ * Only the reveal toggle, which is the one part of a text field that has a
78
+ * name of its own to invent — everything else in it is the caller's.
79
+ */
80
+ textField: {
81
+ showPassword: string;
82
+ hidePassword: string;
83
+ };
84
+ /**
85
+ * MPEmpty.
86
+ *
87
+ * The one string in this table that is **drawn** rather than read out, which
88
+ * makes it the one that was most obviously wrong to leave in English: a
89
+ * Korean page with an empty list said "Nothing here" in the middle of it.
90
+ */
91
+ empty: {
92
+ title: string;
93
+ };
94
+ /**
95
+ * The four pickers.
96
+ *
97
+ * One namespace for all of them rather than one each, because they are one
98
+ * vocabulary: a caller who has translated "Previous month" for the date picker
99
+ * has translated it for the range picker in the same breath, and the clock's
100
+ * column names are shared by two components outright.
101
+ */
102
+ picker: {
103
+ /** The calendar's steppers, in day view. */
104
+ previousMonth: string;
105
+ nextMonth: string;
106
+ /** The same steppers in month view, where they move by a year. */
107
+ previousYear: string;
108
+ nextYear: string;
109
+ /** And in year view, where they move by a page of twelve. */
110
+ previousYears: string;
111
+ nextYears: string;
112
+ /** The two header buttons that open the month grid and the year grid. */
113
+ chooseMonth: string;
114
+ chooseYear: string;
115
+ /** The footer's actions. */
116
+ today: string;
117
+ now: string;
118
+ clear: string;
119
+ done: string;
120
+ /** The clock's columns, which are otherwise unlabelled lists of numbers. */
121
+ hour: string;
122
+ minute: string;
123
+ second: string;
124
+ meridiem: string;
125
+ /** Which end of a range the calendar is currently asking for. */
126
+ start: string;
127
+ end: string;
128
+ };
129
+ /** MPAlert. */
130
+ alert: {
131
+ /** The × in the corner, which has no text of its own. */
132
+ dismiss: string;
133
+ };
134
+ /**
135
+ * MPChatBubble.
136
+ *
137
+ * Every string here is read out and never drawn: a delivery state is a mark
138
+ * on the bubble, and the word behind it is for the readers the mark says
139
+ * nothing to. That is exactly why they belong in this table rather than in a
140
+ * prop — a thread is a column of forty of these, and a caller who had to hand
141
+ * over five words per message would hand over the English ones.
142
+ */
143
+ chat: {
144
+ /** On its way. */
145
+ sending: string;
146
+ /** It left. */
147
+ sent: string;
148
+ /** It arrived on their device. */
149
+ delivered: string;
150
+ /** They opened it. */
151
+ read: string;
152
+ /** It did not go — the one step that is not on the ladder. */
153
+ failed: string;
154
+ /** The three dots, which are a picture of somebody writing. */
155
+ typing: string;
156
+ };
157
+ /**
158
+ * MPPagination.
159
+ *
160
+ * Every string here is read out and never drawn: what a page button shows is a
161
+ * number, and what the two steppers show is a chevron. The words behind them
162
+ * are for the readers those say nothing to — which is exactly why they belong
163
+ * in this table rather than in props. A row of nine buttons whose caller had to
164
+ * supply nine names is a row of nine English names.
165
+ *
166
+ * `{page}` and `{total}` are filled in by `fillMessage`.
167
+ */
168
+ pagination: {
169
+ /** The name of the `<nav>` the row is inside. */
170
+ label: string;
171
+ /** One page button — the number is drawn, this is what is heard. */
172
+ page: string;
173
+ /** Announced after a move: where the reader now is, and how far it goes. */
174
+ status: string;
175
+ /** The two steppers that move by one page. */
176
+ previous: string;
177
+ next: string;
178
+ /** And the two that jump to an end. */
179
+ first: string;
180
+ last: string;
181
+ };
182
+ /**
183
+ * MPRating.
184
+ *
185
+ * Read out and never drawn, like the pagination's: a score is a row of stars,
186
+ * and the sentence behind it is the whole of what a reader who cannot see them
187
+ * gets. `{value}` and `{max}` are filled in by `fillMessage`.
188
+ */
189
+ rating: {
190
+ /** The name of the control itself. */
191
+ label: string;
192
+ /** A score — what one star is called, and what a read-only row announces. */
193
+ value: string;
194
+ /** Nothing chosen yet, which is not the same as a score of nought. */
195
+ empty: string;
196
+ };
197
+ /**
198
+ * MPSpoiler.
199
+ *
200
+ * The one namespace whose strings are *drawn* rather than only announced —
201
+ * they are the words on the cover, and a cover written in a language the page
202
+ * is not in is a cover nobody reads.
203
+ */
204
+ spoiler: {
205
+ /** The button that uncovers the content. */
206
+ reveal: string;
207
+ /** The button that covers it again, when the spoiler is reversible. */
208
+ hide: string;
209
+ /** The line above the button, saying why the content is covered. */
210
+ notice: string;
211
+ };
212
+ }
213
+ /**
214
+ * The strings for a locale, merged over English.
215
+ *
216
+ * `undefined` is English rather than the runtime's own locale, and that is
217
+ * deliberate: `navigator.language` differs between the server that renders the
218
+ * markup and the browser that hydrates it, and text that changes between those
219
+ * two is a hydration mismatch in the one part of the page a reader is looking
220
+ * at. A component that should follow the reader is *told* which language to
221
+ * follow — by its own `locale` prop, or by an `MPLocaleProvider` above it.
222
+ *
223
+ * Note that this is only about the words in the table. The dates themselves are
224
+ * formatted by `Intl` against the same tag, and `Intl` speaks every language the
225
+ * platform does whether or not there is an entry here.
226
+ */
227
+ export declare function resolveMessages(locale?: string): MPMessages;
228
+ /**
229
+ * A message with its placeholders filled in.
230
+ *
231
+ * `{page}`, `{total}`, `{value}` — named rather than positional, because the
232
+ * order of two numbers in a sentence is not the same in every language: English
233
+ * counts "page 3 of 20" and Turkish counts the total first. A translation that
234
+ * had to keep the arguments in one order would be a translation that reads
235
+ * wrongly in half of them.
236
+ *
237
+ * A placeholder with nothing to put in it is left as it was written rather than
238
+ * blanked. A visible `{page}` is a bug report; a sentence with a hole in it is a
239
+ * sentence somebody has to guess at.
240
+ */
241
+ export declare function fillMessage(message: string, values: Record<string, string>): string;
@@ -0,0 +1 @@
1
+ const e={common:{close:"Close",clear:"Clear",open:"Open",remove:"Remove",removeNamed:"Remove {label}",loading:"Loading"},textField:{showPassword:"Show the password",hidePassword:"Hide the password"},empty:{title:"Nothing here"},picker:{previousMonth:"Previous month",nextMonth:"Next month",previousYear:"Previous year",nextYear:"Next year",previousYears:"Previous years",nextYears:"Next years",chooseMonth:"Choose a month",chooseYear:"Choose a year",today:"Today",now:"Now",clear:"Clear",done:"Done",hour:"Hour",minute:"Minute",second:"Second",meridiem:"AM/PM",start:"Start",end:"End"},alert:{dismiss:"Dismiss"},chat:{sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",typing:"Typing"},spoiler:{reveal:"Reveal",hide:"Hide",notice:"Hidden so it is not read by accident"},pagination:{label:"Pagination",page:"Page {page}",status:"Page {page} of {total}",previous:"Previous page",next:"Next page",first:"First page",last:"Last page"},rating:{label:"Rating",value:"{value} out of {max}",empty:"Not rated"}},a={ko:{common:{close:"닫기",clear:"지우기",open:"열기",remove:"제거",removeNamed:"{label} 제거",loading:"불러오는 중"},textField:{showPassword:"비밀번호 표시",hidePassword:"비밀번호 숨기기"},empty:{title:"아무것도 없습니다"},picker:{previousMonth:"이전 달",nextMonth:"다음 달",previousYear:"이전 해",nextYear:"다음 해",previousYears:"이전 연도 목록",nextYears:"다음 연도 목록",chooseMonth:"월 선택",chooseYear:"연도 선택",today:"오늘",now:"지금",clear:"지우기",done:"완료",hour:"시",minute:"분",second:"초",meridiem:"오전/오후",start:"시작",end:"종료"},alert:{dismiss:"닫기"},chat:{sending:"보내는 중",sent:"보냄",delivered:"전달됨",read:"읽음",failed:"전송 실패",typing:"입력 중"},spoiler:{reveal:"보기",hide:"가리기",notice:"실수로 읽지 않도록 가려 두었습니다"},pagination:{label:"페이지 매기기",page:"{page}페이지",status:"{total}페이지 중 {page}페이지",previous:"이전 페이지",next:"다음 페이지",first:"첫 페이지",last:"마지막 페이지"},rating:{label:"별점",value:"{max}점 만점에 {value}점",empty:"평가 없음"}},ja:{common:{close:"閉じる",clear:"クリア",open:"開く",remove:"削除",removeNamed:"{label} を削除",loading:"読み込み中"},textField:{showPassword:"パスワードを表示",hidePassword:"パスワードを非表示"},empty:{title:"何もありません"},picker:{previousMonth:"前の月",nextMonth:"次の月",previousYear:"前の年",nextYear:"次の年",previousYears:"前の年の一覧",nextYears:"次の年の一覧",chooseMonth:"月を選択",chooseYear:"年を選択",today:"今日",now:"現在",clear:"クリア",done:"完了",hour:"時",minute:"分",second:"秒",meridiem:"午前/午後",start:"開始",end:"終了"},alert:{dismiss:"閉じる"},chat:{sending:"送信中",sent:"送信済み",delivered:"配信済み",read:"既読",failed:"送信できませんでした",typing:"入力中"},spoiler:{reveal:"表示する",hide:"隠す",notice:"うっかり読まないように隠してあります"},pagination:{label:"ページ送り",page:"{page}ページ",status:"{total}ページ中{page}ページ",previous:"前のページ",next:"次のページ",first:"最初のページ",last:"最後のページ"},rating:{label:"評価",value:"{max}段階中{value}",empty:"未評価"}},"zh-hans":{common:{close:"关闭",clear:"清除",open:"打开",remove:"移除",removeNamed:"移除 {label}",loading:"加载中"},textField:{showPassword:"显示密码",hidePassword:"隐藏密码"},empty:{title:"暂无内容"},picker:{previousMonth:"上个月",nextMonth:"下个月",previousYear:"上一年",nextYear:"下一年",previousYears:"上一页年份",nextYears:"下一页年份",chooseMonth:"选择月份",chooseYear:"选择年份",today:"今天",now:"此刻",clear:"清除",done:"完成",hour:"小时",minute:"分钟",second:"秒",meridiem:"上午/下午",start:"开始",end:"结束"},alert:{dismiss:"关闭"},chat:{sending:"发送中",sent:"已发送",delivered:"已送达",read:"已读",failed:"未发送",typing:"正在输入"},spoiler:{reveal:"显示",hide:"隐藏",notice:"已隐藏,以免不小心读到"},pagination:{label:"分页",page:"第 {page} 页",status:"第 {page} 页,共 {total} 页",previous:"上一页",next:"下一页",first:"第一页",last:"最后一页"},rating:{label:"评分",value:"{max} 分中的 {value} 分",empty:"未评分"}},"zh-hant":{common:{close:"關閉",clear:"清除",open:"開啟",remove:"移除",removeNamed:"移除 {label}",loading:"載入中"},textField:{showPassword:"顯示密碼",hidePassword:"隱藏密碼"},empty:{title:"暫無內容"},picker:{previousMonth:"上個月",nextMonth:"下個月",previousYear:"上一年",nextYear:"下一年",previousYears:"上一頁年份",nextYears:"下一頁年份",chooseMonth:"選擇月份",chooseYear:"選擇年份",today:"今天",now:"此刻",clear:"清除",done:"完成",hour:"小時",minute:"分鐘",second:"秒",meridiem:"上午/下午",start:"開始",end:"結束"},alert:{dismiss:"關閉"},chat:{sending:"傳送中",sent:"已傳送",delivered:"已送達",read:"已讀",failed:"未傳送",typing:"正在輸入"},spoiler:{reveal:"顯示",hide:"隱藏",notice:"已隱藏,以免不小心讀到"},pagination:{label:"分頁",page:"第 {page} 頁",status:"第 {page} 頁,共 {total} 頁",previous:"上一頁",next:"下一頁",first:"第一頁",last:"最後一頁"},rating:{label:"評分",value:"{max} 分中的 {value} 分",empty:"未評分"}},es:{common:{close:"Cerrar",clear:"Borrar",open:"Abrir",remove:"Quitar",removeNamed:"Quitar {label}",loading:"Cargando"},textField:{showPassword:"Mostrar la contraseña",hidePassword:"Ocultar la contraseña"},empty:{title:"No hay nada aquí"},picker:{previousMonth:"Mes anterior",nextMonth:"Mes siguiente",previousYear:"Año anterior",nextYear:"Año siguiente",previousYears:"Años anteriores",nextYears:"Años siguientes",chooseMonth:"Elegir un mes",chooseYear:"Elegir un año",today:"Hoy",now:"Ahora",clear:"Borrar",done:"Listo",hour:"Hora",minute:"Minuto",second:"Segundo",meridiem:"a. m./p. m.",start:"Inicio",end:"Fin"},alert:{dismiss:"Cerrar"},chat:{sending:"Enviando",sent:"Enviado",delivered:"Entregado",read:"Leído",failed:"No enviado",typing:"Escribiendo"},spoiler:{reveal:"Mostrar",hide:"Ocultar",notice:"Oculto para que no se lea por accidente"},pagination:{label:"Paginación",page:"Página {page}",status:"Página {page} de {total}",previous:"Página anterior",next:"Página siguiente",first:"Primera página",last:"Última página"},rating:{label:"Valoración",value:"{value} de {max}",empty:"Sin valorar"}},pt:{common:{close:"Fechar",clear:"Limpar",open:"Abrir",remove:"Remover",removeNamed:"Remover {label}",loading:"Carregando"},textField:{showPassword:"Mostrar a senha",hidePassword:"Ocultar a senha"},empty:{title:"Não há nada aqui"},picker:{previousMonth:"Mês anterior",nextMonth:"Próximo mês",previousYear:"Ano anterior",nextYear:"Próximo ano",previousYears:"Anos anteriores",nextYears:"Próximos anos",chooseMonth:"Escolher um mês",chooseYear:"Escolher um ano",today:"Hoje",now:"Agora",clear:"Limpar",done:"Concluído",hour:"Hora",minute:"Minuto",second:"Segundo",meridiem:"AM/PM",start:"Início",end:"Fim"},alert:{dismiss:"Fechar"},chat:{sending:"Enviando",sent:"Enviado",delivered:"Entregue",read:"Lido",failed:"Não enviado",typing:"Digitando"},spoiler:{reveal:"Mostrar",hide:"Ocultar",notice:"Oculto para não ser lido por acidente"},pagination:{label:"Paginação",page:"Página {page}",status:"Página {page} de {total}",previous:"Página anterior",next:"Próxima página",first:"Primeira página",last:"Última página"},rating:{label:"Avaliação",value:"{value} de {max}",empty:"Sem avaliação"}},fr:{common:{close:"Fermer",clear:"Effacer",open:"Ouvrir",remove:"Supprimer",removeNamed:"Supprimer {label}",loading:"Chargement"},textField:{showPassword:"Afficher le mot de passe",hidePassword:"Masquer le mot de passe"},empty:{title:"Il n'y a rien ici"},picker:{previousMonth:"Mois précédent",nextMonth:"Mois suivant",previousYear:"Année précédente",nextYear:"Année suivante",previousYears:"Années précédentes",nextYears:"Années suivantes",chooseMonth:"Choisir un mois",chooseYear:"Choisir une année",today:"Aujourd'hui",now:"Maintenant",clear:"Effacer",done:"Terminé",hour:"Heure",minute:"Minute",second:"Seconde",meridiem:"AM/PM",start:"Début",end:"Fin"},alert:{dismiss:"Fermer"},chat:{sending:"Envoi en cours",sent:"Envoyé",delivered:"Distribué",read:"Lu",failed:"Non envoyé",typing:"En train d'écrire"},spoiler:{reveal:"Afficher",hide:"Masquer",notice:"Masqué pour ne pas être lu par accident"},pagination:{label:"Pagination",page:"Page {page}",status:"Page {page} sur {total}",previous:"Page précédente",next:"Page suivante",first:"Première page",last:"Dernière page"},rating:{label:"Note",value:"{value} sur {max}",empty:"Non noté"}},de:{common:{close:"Schließen",clear:"Löschen",open:"Öffnen",remove:"Entfernen",removeNamed:"{label} entfernen",loading:"Wird geladen"},textField:{showPassword:"Passwort anzeigen",hidePassword:"Passwort verbergen"},empty:{title:"Nichts vorhanden"},picker:{previousMonth:"Voriger Monat",nextMonth:"Nächster Monat",previousYear:"Voriges Jahr",nextYear:"Nächstes Jahr",previousYears:"Vorige Jahre",nextYears:"Nächste Jahre",chooseMonth:"Monat auswählen",chooseYear:"Jahr auswählen",today:"Heute",now:"Jetzt",clear:"Löschen",done:"Fertig",hour:"Stunde",minute:"Minute",second:"Sekunde",meridiem:"AM/PM",start:"Beginn",end:"Ende"},alert:{dismiss:"Schließen"},chat:{sending:"Wird gesendet",sent:"Gesendet",delivered:"Zugestellt",read:"Gelesen",failed:"Nicht gesendet",typing:"Schreibt"},spoiler:{reveal:"Anzeigen",hide:"Verbergen",notice:"Verborgen, damit es nicht versehentlich gelesen wird"},pagination:{label:"Seitennummerierung",page:"Seite {page}",status:"Seite {page} von {total}",previous:"Vorherige Seite",next:"Nächste Seite",first:"Erste Seite",last:"Letzte Seite"},rating:{label:"Bewertung",value:"{value} von {max}",empty:"Nicht bewertet"}},it:{common:{close:"Chiudi",clear:"Cancella",open:"Apri",remove:"Rimuovi",removeNamed:"Rimuovi {label}",loading:"Caricamento"},textField:{showPassword:"Mostra la password",hidePassword:"Nascondi la password"},empty:{title:"Non c'è nulla qui"},picker:{previousMonth:"Mese precedente",nextMonth:"Mese successivo",previousYear:"Anno precedente",nextYear:"Anno successivo",previousYears:"Anni precedenti",nextYears:"Anni successivi",chooseMonth:"Scegli un mese",chooseYear:"Scegli un anno",today:"Oggi",now:"Adesso",clear:"Cancella",done:"Fatto",hour:"Ora",minute:"Minuto",second:"Secondo",meridiem:"AM/PM",start:"Inizio",end:"Fine"},alert:{dismiss:"Chiudi"},chat:{sending:"Invio in corso",sent:"Inviato",delivered:"Consegnato",read:"Letto",failed:"Non inviato",typing:"Sta scrivendo"},spoiler:{reveal:"Mostra",hide:"Nascondi",notice:"Nascosto per non essere letto per sbaglio"},pagination:{label:"Impaginazione",page:"Pagina {page}",status:"Pagina {page} di {total}",previous:"Pagina precedente",next:"Pagina successiva",first:"Prima pagina",last:"Ultima pagina"},rating:{label:"Valutazione",value:"{value} su {max}",empty:"Non valutato"}},nl:{common:{close:"Sluiten",clear:"Wissen",open:"Openen",remove:"Verwijderen",removeNamed:"{label} verwijderen",loading:"Laden"},textField:{showPassword:"Wachtwoord tonen",hidePassword:"Wachtwoord verbergen"},empty:{title:"Hier is niets"},picker:{previousMonth:"Vorige maand",nextMonth:"Volgende maand",previousYear:"Vorig jaar",nextYear:"Volgend jaar",previousYears:"Vorige jaren",nextYears:"Volgende jaren",chooseMonth:"Kies een maand",chooseYear:"Kies een jaar",today:"Vandaag",now:"Nu",clear:"Wissen",done:"Klaar",hour:"Uur",minute:"Minuut",second:"Seconde",meridiem:"AM/PM",start:"Begin",end:"Einde"},alert:{dismiss:"Sluiten"},chat:{sending:"Verzenden",sent:"Verzonden",delivered:"Bezorgd",read:"Gelezen",failed:"Niet verzonden",typing:"Aan het typen"},spoiler:{reveal:"Tonen",hide:"Verbergen",notice:"Verborgen zodat het niet per ongeluk wordt gelezen"},pagination:{label:"Paginering",page:"Pagina {page}",status:"Pagina {page} van {total}",previous:"Vorige pagina",next:"Volgende pagina",first:"Eerste pagina",last:"Laatste pagina"},rating:{label:"Beoordeling",value:"{value} van {max}",empty:"Niet beoordeeld"}},pl:{common:{close:"Zamknij",clear:"Wyczyść",open:"Otwórz",remove:"Usuń",removeNamed:"Usuń {label}",loading:"Ładowanie"},textField:{showPassword:"Pokaż hasło",hidePassword:"Ukryj hasło"},empty:{title:"Nic tu nie ma"},picker:{previousMonth:"Poprzedni miesiąc",nextMonth:"Następny miesiąc",previousYear:"Poprzedni rok",nextYear:"Następny rok",previousYears:"Poprzednie lata",nextYears:"Następne lata",chooseMonth:"Wybierz miesiąc",chooseYear:"Wybierz rok",today:"Dzisiaj",now:"Teraz",clear:"Wyczyść",done:"Gotowe",hour:"Godzina",minute:"Minuta",second:"Sekunda",meridiem:"AM/PM",start:"Początek",end:"Koniec"},alert:{dismiss:"Zamknij"},chat:{sending:"Wysyłanie",sent:"Wysłano",delivered:"Dostarczono",read:"Przeczytano",failed:"Nie wysłano",typing:"Pisze"},spoiler:{reveal:"Pokaż",hide:"Ukryj",notice:"Ukryte, aby nie przeczytać przez przypadek"},pagination:{label:"Paginacja",page:"Strona {page}",status:"Strona {page} z {total}",previous:"Poprzednia strona",next:"Następna strona",first:"Pierwsza strona",last:"Ostatnia strona"},rating:{label:"Ocena",value:"{value} z {max}",empty:"Brak oceny"}},ru:{common:{close:"Закрыть",clear:"Очистить",open:"Открыть",remove:"Удалить",removeNamed:"Удалить {label}",loading:"Загрузка"},textField:{showPassword:"Показать пароль",hidePassword:"Скрыть пароль"},empty:{title:"Здесь ничего нет"},picker:{previousMonth:"Предыдущий месяц",nextMonth:"Следующий месяц",previousYear:"Предыдущий год",nextYear:"Следующий год",previousYears:"Предыдущие годы",nextYears:"Следующие годы",chooseMonth:"Выбрать месяц",chooseYear:"Выбрать год",today:"Сегодня",now:"Сейчас",clear:"Очистить",done:"Готово",hour:"Часы",minute:"Минуты",second:"Секунды",meridiem:"ДП/ПП",start:"Начало",end:"Конец"},alert:{dismiss:"Закрыть"},chat:{sending:"Отправка",sent:"Отправлено",delivered:"Доставлено",read:"Прочитано",failed:"Не отправлено",typing:"Печатает"},spoiler:{reveal:"Показать",hide:"Скрыть",notice:"Скрыто, чтобы не прочитать случайно"},pagination:{label:"Постраничная навигация",page:"Страница {page}",status:"Страница {page} из {total}",previous:"Предыдущая страница",next:"Следующая страница",first:"Первая страница",last:"Последняя страница"},rating:{label:"Оценка",value:"{value} из {max}",empty:"Без оценки"}},tr:{common:{close:"Kapat",clear:"Temizle",open:"Aç",remove:"Kaldır",removeNamed:"{label} kaldır",loading:"Yükleniyor"},textField:{showPassword:"Parolayı göster",hidePassword:"Parolayı gizle"},empty:{title:"Burada bir şey yok"},picker:{previousMonth:"Önceki ay",nextMonth:"Sonraki ay",previousYear:"Önceki yıl",nextYear:"Sonraki yıl",previousYears:"Önceki yıllar",nextYears:"Sonraki yıllar",chooseMonth:"Ay seçin",chooseYear:"Yıl seçin",today:"Bugün",now:"Şimdi",clear:"Temizle",done:"Tamam",hour:"Saat",minute:"Dakika",second:"Saniye",meridiem:"ÖÖ/ÖS",start:"Başlangıç",end:"Bitiş"},alert:{dismiss:"Kapat"},chat:{sending:"Gönderiliyor",sent:"Gönderildi",delivered:"İletildi",read:"Okundu",failed:"Gönderilemedi",typing:"Yazıyor"},spoiler:{reveal:"Göster",hide:"Gizle",notice:"Yanlışlıkla okunmasın diye gizlendi"},pagination:{label:"Sayfalama",page:"Sayfa {page}",status:"{total} sayfadan {page}. sayfa",previous:"Önceki sayfa",next:"Sonraki sayfa",first:"İlk sayfa",last:"Son sayfa"},rating:{label:"Değerlendirme",value:"{max} üzerinden {value}",empty:"Değerlendirilmedi"}},ar:{common:{close:"إغلاق",clear:"مسح",open:"فتح",remove:"إزالة",removeNamed:"إزالة {label}",loading:"جارٍ التحميل"},textField:{showPassword:"إظهار كلمة المرور",hidePassword:"إخفاء كلمة المرور"},empty:{title:"لا يوجد شيء هنا"},picker:{previousMonth:"الشهر السابق",nextMonth:"الشهر التالي",previousYear:"السنة السابقة",nextYear:"السنة التالية",previousYears:"السنوات السابقة",nextYears:"السنوات التالية",chooseMonth:"اختيار شهر",chooseYear:"اختيار سنة",today:"اليوم",now:"الآن",clear:"مسح",done:"تم",hour:"الساعة",minute:"الدقيقة",second:"الثانية",meridiem:"ص/م",start:"البداية",end:"النهاية"},alert:{dismiss:"إغلاق"},chat:{sending:"جارٍ الإرسال",sent:"تم الإرسال",delivered:"تم التسليم",read:"تمت القراءة",failed:"لم يتم الإرسال",typing:"يكتب الآن"},spoiler:{reveal:"إظهار",hide:"إخفاء",notice:"مخفي حتى لا يُقرأ بالخطأ"},pagination:{label:"ترقيم الصفحات",page:"الصفحة {page}",status:"الصفحة {page} من {total}",previous:"الصفحة السابقة",next:"الصفحة التالية",first:"الصفحة الأولى",last:"الصفحة الأخيرة"},rating:{label:"التقييم",value:"{value} من {max}",empty:"بدون تقييم"}},hi:{common:{close:"बंद करें",clear:"हटाएँ",open:"खोलें",remove:"निकालें",removeNamed:"{label} निकालें",loading:"लोड हो रहा है"},textField:{showPassword:"पासवर्ड दिखाएँ",hidePassword:"पासवर्ड छिपाएँ"},empty:{title:"यहाँ कुछ नहीं है"},picker:{previousMonth:"पिछला महीना",nextMonth:"अगला महीना",previousYear:"पिछला वर्ष",nextYear:"अगला वर्ष",previousYears:"पिछले वर्ष",nextYears:"अगले वर्ष",chooseMonth:"महीना चुनें",chooseYear:"वर्ष चुनें",today:"आज",now:"अभी",clear:"हटाएँ",done:"हो गया",hour:"घंटा",minute:"मिनट",second:"सेकंड",meridiem:"AM/PM",start:"प्रारंभ",end:"समाप्ति"},alert:{dismiss:"बंद करें"},chat:{sending:"भेजा जा रहा है",sent:"भेजा गया",delivered:"पहुँच गया",read:"पढ़ लिया गया",failed:"नहीं भेजा गया",typing:"टाइप कर रहे हैं"},spoiler:{reveal:"दिखाएँ",hide:"छिपाएँ",notice:"गलती से न पढ़ लिया जाए इसलिए छिपाया गया है"},pagination:{label:"पृष्ठ क्रमांकन",page:"पृष्ठ {page}",status:"{total} में से पृष्ठ {page}",previous:"पिछला पृष्ठ",next:"अगला पृष्ठ",first:"पहला पृष्ठ",last:"अंतिम पृष्ठ"},rating:{label:"रेटिंग",value:"{max} में से {value}",empty:"रेटिंग नहीं दी गई"}},id:{common:{close:"Tutup",clear:"Bersihkan",open:"Buka",remove:"Hapus",removeNamed:"Hapus {label}",loading:"Memuat"},textField:{showPassword:"Tampilkan kata sandi",hidePassword:"Sembunyikan kata sandi"},empty:{title:"Tidak ada apa-apa di sini"},picker:{previousMonth:"Bulan sebelumnya",nextMonth:"Bulan berikutnya",previousYear:"Tahun sebelumnya",nextYear:"Tahun berikutnya",previousYears:"Tahun-tahun sebelumnya",nextYears:"Tahun-tahun berikutnya",chooseMonth:"Pilih bulan",chooseYear:"Pilih tahun",today:"Hari ini",now:"Sekarang",clear:"Hapus",done:"Selesai",hour:"Jam",minute:"Menit",second:"Detik",meridiem:"AM/PM",start:"Mulai",end:"Akhir"},alert:{dismiss:"Tutup"},chat:{sending:"Mengirim",sent:"Terkirim",delivered:"Diterima",read:"Dibaca",failed:"Gagal terkirim",typing:"Sedang mengetik"},spoiler:{reveal:"Tampilkan",hide:"Sembunyikan",notice:"Disembunyikan agar tidak terbaca tanpa sengaja"},pagination:{label:"Penomoran halaman",page:"Halaman {page}",status:"Halaman {page} dari {total}",previous:"Halaman sebelumnya",next:"Halaman berikutnya",first:"Halaman pertama",last:"Halaman terakhir"},rating:{label:"Peringkat",value:"{value} dari {max}",empty:"Belum dinilai"}},vi:{common:{close:"Đóng",clear:"Xóa",open:"Mở",remove:"Gỡ bỏ",removeNamed:"Gỡ bỏ {label}",loading:"Đang tải"},textField:{showPassword:"Hiện mật khẩu",hidePassword:"Ẩn mật khẩu"},empty:{title:"Không có gì ở đây"},picker:{previousMonth:"Tháng trước",nextMonth:"Tháng sau",previousYear:"Năm trước",nextYear:"Năm sau",previousYears:"Các năm trước",nextYears:"Các năm sau",chooseMonth:"Chọn tháng",chooseYear:"Chọn năm",today:"Hôm nay",now:"Bây giờ",clear:"Xóa",done:"Xong",hour:"Giờ",minute:"Phút",second:"Giây",meridiem:"SA/CH",start:"Bắt đầu",end:"Kết thúc"},alert:{dismiss:"Đóng"},chat:{sending:"Đang gửi",sent:"Đã gửi",delivered:"Đã nhận",read:"Đã đọc",failed:"Chưa gửi được",typing:"Đang nhập"},spoiler:{reveal:"Hiện",hide:"Ẩn",notice:"Đã ẩn để không vô tình đọc phải"},pagination:{label:"Phân trang",page:"Trang {page}",status:"Trang {page} trên {total}",previous:"Trang trước",next:"Trang sau",first:"Trang đầu",last:"Trang cuối"},rating:{label:"Đánh giá",value:"{value} trên {max}",empty:"Chưa đánh giá"}},th:{common:{close:"ปิด",clear:"ล้าง",open:"เปิด",remove:"ลบ",removeNamed:"ลบ {label}",loading:"กำลังโหลด"},textField:{showPassword:"แสดงรหัสผ่าน",hidePassword:"ซ่อนรหัสผ่าน"},empty:{title:"ไม่มีอะไรที่นี่"},picker:{previousMonth:"เดือนก่อนหน้า",nextMonth:"เดือนถัดไป",previousYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",previousYears:"ชุดปีก่อนหน้า",nextYears:"ชุดปีถัดไป",chooseMonth:"เลือกเดือน",chooseYear:"เลือกปี",today:"วันนี้",now:"ตอนนี้",clear:"ล้าง",done:"เสร็จสิ้น",hour:"ชั่วโมง",minute:"นาที",second:"วินาที",meridiem:"AM/PM",start:"เริ่ม",end:"สิ้นสุด"},alert:{dismiss:"ปิด"},chat:{sending:"กำลังส่ง",sent:"ส่งแล้ว",delivered:"ส่งถึงแล้ว",read:"อ่านแล้ว",failed:"ส่งไม่สำเร็จ",typing:"กำลังพิมพ์"},spoiler:{reveal:"แสดง",hide:"ซ่อน",notice:"ซ่อนไว้เพื่อไม่ให้อ่านโดยบังเอิญ"},pagination:{label:"การแบ่งหน้า",page:"หน้า {page}",status:"หน้า {page} จาก {total}",previous:"หน้าก่อนหน้า",next:"หน้าถัดไป",first:"หน้าแรก",last:"หน้าสุดท้าย"},rating:{label:"คะแนน",value:"{value} จาก {max}",empty:"ยังไม่ได้ให้คะแนน"}}},n={zh:"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hk":"zh-hant","zh-mo":"zh-hant","zh-tw":"zh-hant"};const i=new Map([["",e]]);export function resolveMessages(t){const o=t?.trim()??"",r=i.get(o);if(r)return r;const s=function(e){const a=e.toLowerCase().split(/[-_]/).filter(Boolean),n=a[0];if(!n)return[];const i=a.slice(1),t=i.find(e=>/^[a-z]{4}$/.test(e)),o=i.find(e=>/^([a-z]{2}|\d{3})$/.test(e));return[t?`${n}-${t}`:"",o?`${n}-${o}`:"",n].filter(Boolean)}(o).map(e=>a[e]??a[n[e]??""]).find(Boolean),l=s?{common:{...e.common,...s.common},textField:{...e.textField,...s.textField},empty:{...e.empty,...s.empty},picker:{...e.picker,...s.picker},alert:{...e.alert,...s.alert},chat:{...e.chat,...s.chat},pagination:{...e.pagination,...s.pagination},rating:{...e.rating,...s.rating},spoiler:{...e.spoiler,...s.spoiler}}:e;return i.set(o,l),l}export function fillMessage(e,a){return e.replace(/\{(\w+)\}/g,(e,n)=>a[n]??e)}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `{ inert }` when the subtree should be unreachable, and nothing at all when it
3
+ * should not.
4
+ *
5
+ * Nothing rather than `inert={false}`, because React 18 warns about a `false`
6
+ * on an attribute it does not know — and an attribute that is absent is already
7
+ * the whole of what "not inert" means.
8
+ */
9
+ export declare function inertProps(inert: boolean): {
10
+ inert?: boolean;
11
+ };
@@ -0,0 +1 @@
1
+ import*as e from"react";const r=Number.parseInt(e.version,10),t=!Number.isFinite(r)||0===r||r>=19,n=Object.freeze({inert:!!t||""}),i=Object.freeze({});export function inertProps(e){return e?n:i}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Which language the components speak, and where that answer comes from.
3
+ *
4
+ * Two sources, in this order, and the order is the whole design:
5
+ *
6
+ * 1. **The component's own `locale` prop.** One control in a different language
7
+ * from the page around it is a real thing — an admin editing a Japanese
8
+ * listing from a Korean dashboard — and a component library that cannot draw
9
+ * it has decided the page's language on the caller's behalf.
10
+ * 2. **`MPLocaleProvider`, above it in the tree.** Which is what an application
11
+ * actually has: one language, set once, at the root.
12
+ *
13
+ * There is deliberately no third source. `navigator.language` is *not* consulted
14
+ * as a fallback, and that is not an oversight — see the note on
15
+ * `resolveMessages` in `internal/i18n.ts`. The runtime's own locale differs
16
+ * between the server that renders the markup and the browser that hydrates it,
17
+ * so reading it would put a hydration mismatch in the one part of the page a
18
+ * reader is looking at. `undefined` therefore means "the platform's default",
19
+ * which `Intl` resolves consistently in both places.
20
+ */
21
+ import * as React from 'react';
22
+ import { type MPMessages } from './i18n';
23
+ /**
24
+ * `undefined` rather than `'en'`, and the distinction matters.
25
+ *
26
+ * With no provider the pickers hand `undefined` to `Intl`, which formats dates
27
+ * in whatever the platform is set to — so a page that never mentions a locale
28
+ * still writes dates the way its reader expects. It is only the words in the
29
+ * table that fall back to English, because those are the ones the platform has
30
+ * no opinion about.
31
+ */
32
+ export declare const MPLocaleContext: React.Context<string | undefined>;
33
+ /** The locale in force here: the prop if there is one, otherwise the provider's. */
34
+ export declare function useMPLocale(locale?: string): string | undefined;
35
+ /**
36
+ * A namespace's strings with a caller's overrides on top.
37
+ *
38
+ * The overrides win over the translation, which wins over English. That order is
39
+ * what makes an unsupported language a partial answer rather than a dead end: a
40
+ * caller supplies the handful of words they care about and everything else is
41
+ * still translated, or still English, rather than blank.
42
+ */
43
+ export declare function useMPMessages<Namespace extends keyof MPMessages>(namespace: Namespace, locale: string | undefined, overrides?: Partial<MPMessages[Namespace]>): MPMessages[Namespace];
@@ -0,0 +1 @@
1
+ import*as e from"react";import{resolveMessages as t}from"./i18n";export const MPLocaleContext=e.createContext(void 0);export function useMPLocale(t){const o=e.useContext(MPLocaleContext);return t??o}export function useMPMessages(o,n,r){return e.useMemo(()=>{const e=t(n)[o];return r?{...e,...r}:e},[o,n,r])}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * What a menu row inherits from the menu around it.
3
+ *
4
+ * The same arrangement `MPButtonGroup` uses, and for the same reason: `size` and
5
+ * `color` are properties of the *menu*, not of any one row in it, and passing
6
+ * them per row would be two chances per row to get one wrong — with a silent
7
+ * failure, a menu whose fourth item is a size bigger than the three above it.
8
+ *
9
+ * It lives in `internal/` rather than in `MPMenu.tsx` because a submenu is a menu
10
+ * inside a menu and a context menu is the same rows hung off a right-click, so
11
+ * three components read this and none of them should have to import the others.
12
+ *
13
+ * Unlike the button group's context this one is never `null`: a row rendered
14
+ * outside a menu is a bug Base UI will report first, and defaulting here keeps
15
+ * every row from having to answer "what if there is no menu".
16
+ */
17
+ import * as React from 'react';
18
+ import type { MPColor, MPSize } from '../types';
19
+ export interface MPMenuContextValue {
20
+ size: MPSize;
21
+ color: MPColor;
22
+ }
23
+ export declare const MPMenuContext: React.Context<MPMenuContextValue>;
@@ -0,0 +1 @@
1
+ import*as t from"react";export const MPMenuContext=t.createContext({size:"md",color:"primary"});
@@ -0,0 +1,126 @@
1
+ /**
2
+ * What the three progress indicators share.
3
+ *
4
+ * `MPProgressLinear`, `MPProgressCircular` and `MPProgressBox` are three shapes
5
+ * answering one question — how far along is this, and is it moving at all — so
6
+ * everything that is *not* the shape lives here: the props, the ladders and the
7
+ * arithmetic that turns `value`/`min`/`max` into a fraction.
8
+ *
9
+ * The shapes themselves are all that is left in each component, which is the
10
+ * point: they are the only thing that genuinely differs. A `value` of `null` has
11
+ * to mean the same thing on a bar, a ring and a row of segments, or the trio is
12
+ * three components that happen to share a prefix.
13
+ *
14
+ * Every class string here is a literal, for the reason `scale.ts` gives:
15
+ * Tailwind finds classes by scanning source text, so an interpolated `h-${n}`
16
+ * generates no rule at all.
17
+ */
18
+ import type * as React from 'react';
19
+ import type { MPSize } from '../types';
20
+ /**
21
+ * The props all three indicators take.
22
+ *
23
+ * Declared once and extended rather than copied three times. `color` and `size`
24
+ * are deliberately *not* here — they are on `MPStyleProps` for every other
25
+ * component and each indicator documents what its own `size` means, which is a
26
+ * different quantity on a bar (thickness), a ring (diameter) and a row of
27
+ * segments (one segment).
28
+ */
29
+ export interface MPProgressProps {
30
+ /**
31
+ * How far along, between `min` and `max`.
32
+ *
33
+ * `null` — the default — is the indeterminate case: something is happening and
34
+ * nobody knows how much of it is left. That is the default on purpose. An
35
+ * indicator that has not been told a value should say so rather than draw an
36
+ * empty track, which is a claim that no progress has been made.
37
+ * @default null
38
+ */
39
+ value?: number | null;
40
+ /** @default 0 */
41
+ min?: number;
42
+ /** @default 100 */
43
+ max?: number;
44
+ /** A name for what is loading. Read out with the value by a screen reader. */
45
+ label?: React.ReactNode;
46
+ /**
47
+ * Shows the value as text beside the shape. A percentage of the range unless
48
+ * `format` says otherwise.
49
+ * @default false
50
+ */
51
+ showValue?: boolean;
52
+ /**
53
+ * How the value is written when it is shown — `Intl.NumberFormat` options, so
54
+ * bytes and currencies work as well as plain numbers. Without it the value is
55
+ * a percentage of `min`…`max`, which is the only formatting that holds for a
56
+ * range nobody described.
57
+ */
58
+ format?: Intl.NumberFormatOptions;
59
+ className?: string;
60
+ style?: React.CSSProperties;
61
+ }
62
+ /**
63
+ * How thick the linear track is.
64
+ *
65
+ * Its own ladder rather than a step off `CONTROL_HEIGHT`: a bar is not a control
66
+ * with a label inside it. `md` is MD3's own 4dp, and the ladder is centred on it
67
+ * the same way every other one is centred on its spec value.
68
+ */
69
+ export declare const BAR_THICKNESS: Record<MPSize, string>;
70
+ /**
71
+ * The diameter of the ring, in CSS pixels.
72
+ *
73
+ * Numbers rather than classes because the same value has to reach the SVG's
74
+ * `viewBox` arithmetic, and a ring is one of the few things in this library that
75
+ * a Tailwind class cannot describe on its own.
76
+ *
77
+ * `md` is MD3's own 48dp, and every rung sits inside the control height at the
78
+ * same step — a 48px ring inside a 56px field — so a spinner dropped into a
79
+ * button, a field or a table row never makes the row taller than it was.
80
+ */
81
+ export declare const RING_DIAMETER: Record<MPSize, number>;
82
+ /** The ring's stroke, MD3's 4dp at `md`, thickening so the hole stays in proportion. */
83
+ export declare const RING_STROKE: Record<MPSize, number>;
84
+ /** One segment of an `MPProgressBox`. An indicator, so its own ladder again. */
85
+ export declare const SEGMENT_SIZE: Record<MPSize, string>;
86
+ /**
87
+ * The corner cut off a segment.
88
+ *
89
+ * `corner-extra-small` from `md` up, which is the spec's smallest corner and the
90
+ * right one for a tile this size. The two rungs below it cap it, because 4px on
91
+ * an 8px box is not a cut corner — it is a circle.
92
+ *
93
+ * A cap rather than the literal 3px it used to be, so the tiles still follow the
94
+ * token in the one direction the cap does not block: under a squarer theme these
95
+ * go square with everything else, and under a rounder one they hold at 3px,
96
+ * which is the whole point of capping them.
97
+ */
98
+ export declare const SEGMENT_RADIUS: Record<MPSize, string>;
99
+ /** Between the segments. Tight — they are one object, not a row of squares. */
100
+ export declare const SEGMENT_GAP: Record<MPSize, string>;
101
+ /**
102
+ * `value` as a fraction of the range, or `null` when there is nothing to say.
103
+ *
104
+ * The clamp is not defensive programming for its own sake — `value` usually
105
+ * arrives from a division somewhere, and a bar that renders 140% wide because
106
+ * one request finished twice is a worse bug than a bar that sits full.
107
+ */
108
+ export declare function progressFraction(value: number | null | undefined, min: number, max: number): number | null;
109
+ /**
110
+ * What the value reads as, both on screen and to a screen reader.
111
+ *
112
+ * Base UI's own default is `${value}%`, which is right only when the range
113
+ * happens to be 0–100 — "3%" for step 3 of 4 is worse than saying nothing. So
114
+ * the percentage is computed from the fraction, and a caller who passed `format`
115
+ * gets Base UI's formatted string instead, because at that point they have said
116
+ * what the number means.
117
+ */
118
+ export declare function progressText(fraction: number | null, formatted: string | null, hasFormat: boolean): string | null;
119
+ /**
120
+ * The same string, shaped for Base UI's `getAriaValueText`.
121
+ *
122
+ * `undefined` when there is no value, which hands the indeterminate case back to
123
+ * Base UI — it already announces indeterminate progress, and re-inventing that
124
+ * here would be one more English string the library has to own.
125
+ */
126
+ export declare function progressAriaText(fraction: number | null, hasFormat: boolean): ((formatted: string | null) => string) | undefined;
@@ -0,0 +1 @@
1
+ export const BAR_THICKNESS={xs:"h-0.5",sm:"h-[3px]",md:"h-1",lg:"h-1.5",xl:"h-2"};export const RING_DIAMETER={xs:24,sm:32,md:48,lg:56,xl:64};export const RING_STROKE={xs:2.5,sm:3,md:4,lg:4.5,xl:5};export const SEGMENT_SIZE={xs:"size-2",sm:"size-2.5",md:"size-3",lg:"size-4",xl:"size-5"};export const SEGMENT_RADIUS={xs:"rounded-[min(var(--mp-sys-shape-corner-extra-small),3px)]",sm:"rounded-[min(var(--mp-sys-shape-corner-extra-small),3px)]",md:"rounded-mp-xs",lg:"rounded-mp-xs",xl:"rounded-mp-sm"};export const SEGMENT_GAP={xs:"gap-1",sm:"gap-1",md:"gap-1.5",lg:"gap-1.5",xl:"gap-2"};export function progressFraction(s,r,e){return null==s||Number.isNaN(s)||e<=r?null:Math.min(1,Math.max(0,(s-r)/(e-r)))}export function progressText(s,r,e){return null===s?null:e?r:`${Math.round(100*s)}%`}export function progressAriaText(s,r){if(null!==s)return e=>progressText(s,e,r)??""}