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.
- package/README.md +39 -28
- package/dist/components/accordion/MPAccordion.d.ts +115 -0
- package/dist/components/accordion/MPAccordion.js +1 -0
- package/dist/components/accordion/index.d.ts +2 -0
- package/dist/components/accordion/index.js +1 -0
- package/dist/components/alert/MPAlert.d.ts +91 -0
- package/dist/components/alert/MPAlert.js +1 -0
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/animate-appear/MPAnimateAppear.d.ts +56 -0
- package/dist/components/animate-appear/MPAnimateAppear.js +1 -0
- package/dist/components/animate-appear/index.d.ts +2 -0
- package/dist/components/animate-appear/index.js +1 -0
- package/dist/components/animate-blink/MPAnimateBlink.d.ts +41 -0
- package/dist/components/animate-blink/MPAnimateBlink.js +1 -0
- package/dist/components/animate-blink/index.d.ts +2 -0
- package/dist/components/animate-blink/index.js +1 -0
- package/dist/components/animate-fade/MPAnimateFade.d.ts +38 -0
- package/dist/components/animate-fade/MPAnimateFade.js +1 -0
- package/dist/components/animate-fade/index.d.ts +2 -0
- package/dist/components/animate-fade/index.js +1 -0
- package/dist/components/animate-grow/MPAnimateGrow.d.ts +52 -0
- package/dist/components/animate-grow/MPAnimateGrow.js +1 -0
- package/dist/components/animate-grow/index.d.ts +2 -0
- package/dist/components/animate-grow/index.js +1 -0
- package/dist/components/animate-headline/MPAnimateHeadline.d.ts +63 -0
- package/dist/components/animate-headline/MPAnimateHeadline.js +1 -0
- package/dist/components/animate-headline/index.d.ts +2 -0
- package/dist/components/animate-headline/index.js +1 -0
- package/dist/components/animate-lighting/MPAnimateLighting.d.ts +68 -0
- package/dist/components/animate-lighting/MPAnimateLighting.js +1 -0
- package/dist/components/animate-lighting/index.d.ts +2 -0
- package/dist/components/animate-lighting/index.js +1 -0
- package/dist/components/animate-marquee/MPAnimateMarquee.d.ts +66 -0
- package/dist/components/animate-marquee/MPAnimateMarquee.js +1 -0
- package/dist/components/animate-marquee/index.d.ts +2 -0
- package/dist/components/animate-marquee/index.js +1 -0
- package/dist/components/animate-rotate/MPAnimateRotate.d.ts +56 -0
- package/dist/components/animate-rotate/MPAnimateRotate.js +1 -0
- package/dist/components/animate-rotate/index.d.ts +2 -0
- package/dist/components/animate-rotate/index.js +1 -0
- package/dist/components/animate-slide/MPAnimateSlide.d.ts +53 -0
- package/dist/components/animate-slide/MPAnimateSlide.js +1 -0
- package/dist/components/animate-slide/index.d.ts +2 -0
- package/dist/components/animate-slide/index.js +1 -0
- package/dist/components/animate-typing/MPAnimateTyping.d.ts +59 -0
- package/dist/components/animate-typing/MPAnimateTyping.js +1 -0
- package/dist/components/animate-typing/index.d.ts +2 -0
- package/dist/components/animate-typing/index.js +1 -0
- package/dist/components/animate-zoom/MPAnimateZoom.d.ts +44 -0
- package/dist/components/animate-zoom/MPAnimateZoom.js +1 -0
- package/dist/components/animate-zoom/index.d.ts +2 -0
- package/dist/components/animate-zoom/index.js +1 -0
- package/dist/components/aspect-ratio/MPAspectRatio.d.ts +69 -0
- package/dist/components/aspect-ratio/MPAspectRatio.js +1 -0
- package/dist/components/aspect-ratio/index.d.ts +2 -0
- package/dist/components/aspect-ratio/index.js +1 -0
- package/dist/components/avatar/MPAvatar.d.ts +104 -0
- package/dist/components/avatar/MPAvatar.js +1 -0
- package/dist/components/avatar/index.d.ts +2 -0
- package/dist/components/avatar/index.js +1 -0
- package/dist/components/badge/MPBadge.d.ts +104 -0
- package/dist/components/badge/MPBadge.js +1 -0
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/index.js +1 -0
- package/dist/components/blockquote/MPBlockquote.d.ts +73 -0
- package/dist/components/blockquote/MPBlockquote.js +1 -0
- package/dist/components/blockquote/index.d.ts +2 -0
- package/dist/components/blockquote/index.js +1 -0
- package/dist/components/bottom-navigation/MPBottomNavigation.d.ts +144 -0
- package/dist/components/bottom-navigation/MPBottomNavigation.js +1 -0
- package/dist/components/bottom-navigation/index.d.ts +2 -0
- package/dist/components/bottom-navigation/index.js +1 -0
- package/dist/components/box/MPBox.d.ts +78 -0
- package/dist/components/box/MPBox.js +1 -0
- package/dist/components/box/index.d.ts +2 -0
- package/dist/components/box/index.js +1 -0
- package/dist/components/breadcrumb/MPBreadcrumb.d.ts +127 -0
- package/dist/components/breadcrumb/MPBreadcrumb.js +1 -0
- package/dist/components/breadcrumb/index.d.ts +2 -0
- package/dist/components/breadcrumb/index.js +1 -0
- package/dist/components/button/MPButton.d.ts +75 -0
- package/dist/components/button/MPButton.js +1 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button-group/MPButtonGroup.d.ts +31 -0
- package/dist/components/button-group/MPButtonGroup.js +1 -0
- package/dist/components/button-group/index.d.ts +2 -0
- package/dist/components/button-group/index.js +1 -0
- package/dist/components/card/MPCard.d.ts +73 -0
- package/dist/components/card/MPCard.js +1 -0
- package/dist/components/card/index.d.ts +2 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/carousel/MPCarousel.d.ts +116 -0
- package/dist/components/carousel/MPCarousel.js +1 -0
- package/dist/components/carousel/index.d.ts +2 -0
- package/dist/components/carousel/index.js +1 -0
- package/dist/components/chat-bubble/MPChatBubble.d.ts +132 -0
- package/dist/components/chat-bubble/MPChatBubble.js +1 -0
- package/dist/components/chat-bubble/index.d.ts +2 -0
- package/dist/components/chat-bubble/index.js +1 -0
- package/dist/components/checkbox/MPCheckbox.d.ts +76 -0
- package/dist/components/checkbox/MPCheckbox.js +1 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/checkbox/index.js +1 -0
- package/dist/components/chip/MPChip.d.ts +74 -0
- package/dist/components/chip/MPChip.js +1 -0
- package/dist/components/chip/index.d.ts +2 -0
- package/dist/components/chip/index.js +1 -0
- package/dist/components/collapsible/MPCollapsible.d.ts +97 -0
- package/dist/components/collapsible/MPCollapsible.js +1 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/collapsible/index.js +1 -0
- package/dist/components/color-picker/MPColorPicker.d.ts +131 -0
- package/dist/components/color-picker/MPColorPicker.js +1 -0
- package/dist/components/color-picker/index.d.ts +2 -0
- package/dist/components/color-picker/index.js +1 -0
- package/dist/components/combobox/MPCombobox.d.ts +175 -0
- package/dist/components/combobox/MPCombobox.js +1 -0
- package/dist/components/combobox/index.d.ts +2 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/container/MPContainer.d.ts +75 -0
- package/dist/components/container/MPContainer.js +1 -0
- package/dist/components/container/index.d.ts +2 -0
- package/dist/components/container/index.js +1 -0
- package/dist/components/date-picker/MPDatePicker.d.ts +98 -0
- package/dist/components/date-picker/MPDatePicker.js +1 -0
- package/dist/components/date-picker/index.d.ts +2 -0
- package/dist/components/date-picker/index.js +1 -0
- package/dist/components/date-range-picker/MPDateRangePicker.d.ts +98 -0
- package/dist/components/date-range-picker/MPDateRangePicker.js +1 -0
- package/dist/components/date-range-picker/index.d.ts +2 -0
- package/dist/components/date-range-picker/index.js +1 -0
- package/dist/components/date-time-picker/MPDateTimePicker.d.ts +78 -0
- package/dist/components/date-time-picker/MPDateTimePicker.js +1 -0
- package/dist/components/date-time-picker/index.d.ts +2 -0
- package/dist/components/date-time-picker/index.js +1 -0
- package/dist/components/dialog/MPDialog.d.ts +150 -0
- package/dist/components/dialog/MPDialog.js +1 -0
- package/dist/components/dialog/index.d.ts +2 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/divider/MPDivider.d.ts +80 -0
- package/dist/components/divider/MPDivider.js +1 -0
- package/dist/components/divider/index.d.ts +2 -0
- package/dist/components/divider/index.js +1 -0
- package/dist/components/drawer/MPDrawer.d.ts +168 -0
- package/dist/components/drawer/MPDrawer.js +1 -0
- package/dist/components/drawer/index.d.ts +2 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/empty/MPEmpty.d.ts +74 -0
- package/dist/components/empty/MPEmpty.js +1 -0
- package/dist/components/empty/index.d.ts +2 -0
- package/dist/components/empty/index.js +1 -0
- package/dist/components/file-picker/MPFilePicker.d.ts +113 -0
- package/dist/components/file-picker/MPFilePicker.js +1 -0
- package/dist/components/file-picker/index.d.ts +2 -0
- package/dist/components/file-picker/index.js +1 -0
- package/dist/components/floating-action-button/MPFloatingActionButton.d.ts +126 -0
- package/dist/components/floating-action-button/MPFloatingActionButton.js +1 -0
- package/dist/components/floating-action-button/index.d.ts +2 -0
- package/dist/components/floating-action-button/index.js +1 -0
- package/dist/components/grid/MPGrid.d.ts +155 -0
- package/dist/components/grid/MPGrid.js +1 -0
- package/dist/components/grid/index.d.ts +2 -0
- package/dist/components/grid/index.js +1 -0
- package/dist/components/highlight/MPHighlight.d.ts +95 -0
- package/dist/components/highlight/MPHighlight.js +1 -0
- package/dist/components/highlight/index.d.ts +2 -0
- package/dist/components/highlight/index.js +1 -0
- package/dist/components/icon-button/MPIconButton.d.ts +59 -0
- package/dist/components/icon-button/MPIconButton.js +1 -0
- package/dist/components/icon-button/index.d.ts +2 -0
- package/dist/components/icon-button/index.js +1 -0
- package/dist/components/list/MPList.d.ts +96 -0
- package/dist/components/list/MPList.js +1 -0
- package/dist/components/list/index.d.ts +2 -0
- package/dist/components/list/index.js +1 -0
- package/dist/components/locale/MPLocaleProvider.d.ts +63 -0
- package/dist/components/locale/MPLocaleProvider.js +1 -0
- package/dist/components/locale/index.d.ts +2 -0
- package/dist/components/locale/index.js +1 -0
- package/dist/components/menu/MPMenu.d.ts +232 -0
- package/dist/components/menu/MPMenu.js +1 -0
- package/dist/components/menu/index.d.ts +2 -0
- package/dist/components/menu/index.js +1 -0
- package/dist/components/number-field/MPNumberField.d.ts +117 -0
- package/dist/components/number-field/MPNumberField.js +1 -0
- package/dist/components/number-field/index.d.ts +2 -0
- package/dist/components/number-field/index.js +1 -0
- package/dist/components/otp-field/MPOtpField.d.ts +89 -0
- package/dist/components/otp-field/MPOtpField.js +1 -0
- package/dist/components/otp-field/index.d.ts +2 -0
- package/dist/components/otp-field/index.js +1 -0
- package/dist/components/overlay/MPOverlay.d.ts +96 -0
- package/dist/components/overlay/MPOverlay.js +1 -0
- package/dist/components/overlay/index.d.ts +2 -0
- package/dist/components/overlay/index.js +1 -0
- package/dist/components/pagination/MPPagination.d.ts +106 -0
- package/dist/components/pagination/MPPagination.js +1 -0
- package/dist/components/pagination/index.d.ts +2 -0
- package/dist/components/pagination/index.js +1 -0
- package/dist/components/panes/MPPanes.d.ts +100 -0
- package/dist/components/panes/MPPanes.js +1 -0
- package/dist/components/panes/index.d.ts +2 -0
- package/dist/components/panes/index.js +1 -0
- package/dist/components/pill/MPPill.d.ts +117 -0
- package/dist/components/pill/MPPill.js +1 -0
- package/dist/components/pill/index.d.ts +2 -0
- package/dist/components/pill/index.js +1 -0
- package/dist/components/popover/MPPopover.d.ts +143 -0
- package/dist/components/popover/MPPopover.js +1 -0
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/progress-box/MPProgressBox.d.ts +40 -0
- package/dist/components/progress-box/MPProgressBox.js +1 -0
- package/dist/components/progress-box/index.d.ts +2 -0
- package/dist/components/progress-box/index.js +1 -0
- package/dist/components/progress-circular/MPProgressCircular.d.ts +32 -0
- package/dist/components/progress-circular/MPProgressCircular.js +1 -0
- package/dist/components/progress-circular/index.d.ts +2 -0
- package/dist/components/progress-circular/index.js +1 -0
- package/dist/components/progress-linear/MPProgressLinear.d.ts +32 -0
- package/dist/components/progress-linear/MPProgressLinear.js +1 -0
- package/dist/components/progress-linear/index.d.ts +2 -0
- package/dist/components/progress-linear/index.js +1 -0
- package/dist/components/radio-group/MPRadioGroup.d.ts +81 -0
- package/dist/components/radio-group/MPRadioGroup.js +1 -0
- package/dist/components/radio-group/index.d.ts +2 -0
- package/dist/components/radio-group/index.js +1 -0
- package/dist/components/rating/MPRating.d.ts +135 -0
- package/dist/components/rating/MPRating.js +1 -0
- package/dist/components/rating/index.d.ts +2 -0
- package/dist/components/rating/index.js +1 -0
- package/dist/components/segmented-button/MPSegmentedButton.d.ts +75 -0
- package/dist/components/segmented-button/MPSegmentedButton.js +1 -0
- package/dist/components/segmented-button/index.d.ts +2 -0
- package/dist/components/segmented-button/index.js +1 -0
- package/dist/components/select/MPSelect.d.ts +103 -0
- package/dist/components/select/MPSelect.js +1 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/index.js +1 -0
- package/dist/components/shortcut/MPShortcut.d.ts +67 -0
- package/dist/components/shortcut/MPShortcut.js +1 -0
- package/dist/components/shortcut/index.d.ts +2 -0
- package/dist/components/shortcut/index.js +1 -0
- package/dist/components/skeleton/MPSkeleton.d.ts +76 -0
- package/dist/components/skeleton/MPSkeleton.js +1 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/index.js +1 -0
- package/dist/components/slider/MPSlider.d.ts +77 -0
- package/dist/components/slider/MPSlider.js +1 -0
- package/dist/components/slider/index.d.ts +2 -0
- package/dist/components/slider/index.js +1 -0
- package/dist/components/snackbar/MPSnackbar.d.ts +175 -0
- package/dist/components/snackbar/MPSnackbar.js +1 -0
- package/dist/components/snackbar/index.d.ts +2 -0
- package/dist/components/snackbar/index.js +1 -0
- package/dist/components/spoiler/MPSpoiler.d.ts +106 -0
- package/dist/components/spoiler/MPSpoiler.js +1 -0
- package/dist/components/spoiler/index.d.ts +2 -0
- package/dist/components/spoiler/index.js +1 -0
- package/dist/components/switch/MPSwitch.d.ts +75 -0
- package/dist/components/switch/MPSwitch.js +1 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/index.js +1 -0
- package/dist/components/table/MPTable.d.ts +120 -0
- package/dist/components/table/MPTable.js +1 -0
- package/dist/components/table/index.d.ts +2 -0
- package/dist/components/table/index.js +1 -0
- package/dist/components/tabs/MPTabs.d.ts +145 -0
- package/dist/components/tabs/MPTabs.js +1 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/index.js +1 -0
- package/dist/components/text-field/MPTextField.d.ts +51 -22
- package/dist/components/text-field/MPTextField.js +1 -1
- package/dist/components/text-link/MPTextLink.d.ts +88 -0
- package/dist/components/text-link/MPTextLink.js +1 -0
- package/dist/components/text-link/index.d.ts +2 -0
- package/dist/components/text-link/index.js +1 -0
- package/dist/components/time-picker/MPTimePicker.d.ts +108 -0
- package/dist/components/time-picker/MPTimePicker.js +1 -0
- package/dist/components/time-picker/index.d.ts +2 -0
- package/dist/components/time-picker/index.js +1 -0
- package/dist/components/timeline/MPTimeline.d.ts +96 -0
- package/dist/components/timeline/MPTimeline.js +1 -0
- package/dist/components/timeline/index.d.ts +2 -0
- package/dist/components/timeline/index.js +1 -0
- package/dist/components/tooltip/MPTooltip.d.ts +117 -0
- package/dist/components/tooltip/MPTooltip.js +1 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/typography/MPTypography.d.ts +94 -0
- package/dist/components/typography/MPTypography.js +1 -0
- package/dist/components/typography/index.d.ts +2 -0
- package/dist/components/typography/index.js +1 -0
- package/dist/constants/icons.d.ts +49 -0
- package/dist/constants/icons.js +1 -1
- package/dist/index.d.ts +73 -0
- package/dist/index.js +1 -1
- package/dist/internal/Calendar.d.ts +118 -0
- package/dist/internal/Calendar.js +1 -0
- package/dist/internal/FieldOutline.d.ts +109 -0
- package/dist/internal/FieldOutline.js +1 -0
- package/dist/internal/Picker.d.ts +153 -0
- package/dist/internal/Picker.js +1 -0
- package/dist/internal/StateLayer.d.ts +45 -0
- package/dist/internal/StateLayer.js +1 -0
- package/dist/internal/SupportingText.d.ts +23 -0
- package/dist/internal/SupportingText.js +1 -0
- package/dist/internal/WidthSizer.d.ts +31 -0
- package/dist/internal/WidthSizer.js +1 -0
- package/dist/internal/accent.d.ts +39 -0
- package/dist/internal/accent.js +1 -0
- package/dist/internal/animate.d.ts +179 -0
- package/dist/internal/animate.js +1 -0
- package/dist/internal/button-group.d.ts +21 -0
- package/dist/internal/button-group.js +1 -0
- package/dist/internal/color.d.ts +125 -0
- package/dist/internal/color.js +1 -0
- package/dist/internal/date.d.ts +179 -0
- package/dist/internal/date.js +1 -0
- package/dist/internal/i18n.d.ts +241 -0
- package/dist/internal/i18n.js +1 -0
- package/dist/internal/inert.d.ts +11 -0
- package/dist/internal/inert.js +1 -0
- package/dist/internal/locale.d.ts +43 -0
- package/dist/internal/locale.js +1 -0
- package/dist/internal/menu.d.ts +23 -0
- package/dist/internal/menu.js +1 -0
- package/dist/internal/progress.d.ts +126 -0
- package/dist/internal/progress.js +1 -0
- package/dist/internal/scale.d.ts +127 -0
- package/dist/internal/scale.js +1 -0
- package/dist/internal/surface.d.ts +76 -0
- package/dist/internal/surface.js +1 -0
- package/dist/internal/visually-hidden.d.ts +23 -0
- package/dist/internal/visually-hidden.js +1 -0
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1871 -20
- package/dist/types.d.ts +262 -16
- 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)??""}
|