smarthr-ui 75.3.1 → 75.3.2
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/esm/components/FormControl/FormControl.js +13 -7
- package/esm/components/FormControl/FormControl.js.map +1 -1
- package/esm/components/VisuallyHiddenText/VisuallyHiddenText.js +1 -1
- package/esm/components/VisuallyHiddenText/VisuallyHiddenText.js.map +1 -1
- package/esm/intl/locales/en_us.d.ts +71 -71
- package/esm/intl/locales/en_us.js +71 -71
- package/esm/intl/locales/en_us.js.map +1 -1
- package/esm/intl/locales/ko_kr.d.ts +60 -60
- package/esm/intl/locales/ko_kr.js +60 -60
- package/esm/intl/locales/ko_kr.js.map +1 -1
- package/esm/intl/locales/vi_vn.d.ts +70 -70
- package/esm/intl/locales/vi_vn.js +70 -70
- package/esm/intl/locales/vi_vn.js.map +1 -1
- package/esm/intl/locales/zh_hans_cn.d.ts +77 -77
- package/esm/intl/locales/zh_hans_cn.js +77 -77
- package/esm/intl/locales/zh_hans_cn.js.map +1 -1
- package/esm/intl/locales/zh_hant_tw.d.ts +73 -73
- package/esm/intl/locales/zh_hant_tw.js +73 -73
- package/esm/intl/locales/zh_hant_tw.js.map +1 -1
- package/lib/components/FormControl/FormControl.js +13 -7
- package/lib/components/FormControl/FormControl.js.map +1 -1
- package/lib/components/VisuallyHiddenText/VisuallyHiddenText.js +1 -1
- package/lib/components/VisuallyHiddenText/VisuallyHiddenText.js.map +1 -1
- package/lib/intl/locales/en_us.d.ts +71 -71
- package/lib/intl/locales/en_us.js +71 -71
- package/lib/intl/locales/en_us.js.map +1 -1
- package/lib/intl/locales/ko_kr.d.ts +60 -60
- package/lib/intl/locales/ko_kr.js +60 -60
- package/lib/intl/locales/ko_kr.js.map +1 -1
- package/lib/intl/locales/vi_vn.d.ts +70 -70
- package/lib/intl/locales/vi_vn.js +70 -70
- package/lib/intl/locales/vi_vn.js.map +1 -1
- package/lib/intl/locales/zh_hans_cn.d.ts +77 -77
- package/lib/intl/locales/zh_hans_cn.js +77 -77
- package/lib/intl/locales/zh_hans_cn.js.map +1 -1
- package/lib/intl/locales/zh_hant_tw.d.ts +73 -73
- package/lib/intl/locales/zh_hant_tw.js +73 -73
- package/lib/intl/locales/zh_hant_tw.js.map +1 -1
- package/package.json +1 -1
|
@@ -203,17 +203,23 @@ const ActualFormControl = ({ title, titleType = 'blockTitle', subActionArea, dan
|
|
|
203
203
|
const legendText = innerText(title);
|
|
204
204
|
if (!legendText)
|
|
205
205
|
return;
|
|
206
|
-
const
|
|
206
|
+
const labelMap = new Map(Array.from(document.querySelectorAll('label[for]')).map((label) => [
|
|
207
|
+
label.getAttribute('for'),
|
|
208
|
+
label,
|
|
209
|
+
]));
|
|
207
210
|
inputs.forEach((input) => {
|
|
208
211
|
const inputId = input.getAttribute('id');
|
|
209
|
-
|
|
210
|
-
|
|
212
|
+
let accessibleName = input.getAttribute('aria-label');
|
|
213
|
+
if (!accessibleName) {
|
|
214
|
+
const label = labelMap.get(inputId);
|
|
215
|
+
if (!label?.closest('.smarthr-ui-VisuallyHiddenText')) {
|
|
216
|
+
// HINT: <label> があり、かつ <VisuallyHiddenText> でラップされていない場合
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
accessibleName = label.textContent || '';
|
|
211
220
|
}
|
|
212
|
-
const accessibleName = input.hasAttribute('aria-label')
|
|
213
|
-
? input.getAttribute('aria-label')
|
|
214
|
-
: null;
|
|
215
221
|
if (accessibleName && !accessibleName.includes(legendText)) {
|
|
216
|
-
input.setAttribute('aria-label', `${accessibleName} ${legendText}
|
|
222
|
+
input.setAttribute('aria-label', `${accessibleName} ${legendText}`.trim());
|
|
217
223
|
}
|
|
218
224
|
});
|
|
219
225
|
}, [isFieldset, title]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormControl.js","sources":["../../../src/components/FormControl/FormControl.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type ComponentPropsWithoutRef,\n type ComponentType,\n type FC,\n Fragment,\n type FunctionComponentElement,\n type PropsWithChildren,\n type ReactNode,\n memo,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport { useId } from 'react'\nimport innerText from 'react-innertext'\nimport { tv } from 'tailwind-variants'\n\nimport { FaCircleExclamationIcon } from '../Icon'\nimport { Cluster, Stack } from '../Layout'\nimport { StatusLabel } from '../StatusLabel'\nimport { Text, type TextProps } from '../Text'\nimport { VisuallyHiddenText, visuallyHiddenTextClassNameGenerator } from '../VisuallyHiddenText'\n\nimport type { Gap } from '../../types'\n\ntype StatusLabelProps = ComponentProps<typeof StatusLabel>\ntype StatusLabelType = FunctionComponentElement<StatusLabelProps>\n\ntype Props = PropsWithChildren<{\n /** グループのタイトル名 */\n title: ReactNode\n /** タイトルの見出しのタイプ */\n titleType?: TextProps['styleType']\n /** タイトル右の領域 */\n subActionArea?: ReactNode\n /** タイトルの見出しを視覚的に隠すかどうか */\n dangerouslyTitleHidden?: boolean\n /** label 要素に適用する `htmlFor` 値 */\n htmlFor?: string\n /** label 要素に適用する `id` 値 */\n labelId?: string\n /** タイトル群と子要素の間の間隔調整用(基本的には不要) */\n innerMargin?: Gap\n /** タイトルの隣に表示する `StatusLabel` の Props の配列 */\n /**\n * @deprecated statusLabelProps属性は非推奨です。statusLabelsを使ってください。\n */\n statusLabelProps?: StatusLabelProps | StatusLabelProps[]\n /** タイトルの隣に表示する `StatusLabel` の配列 */\n statusLabels?: StatusLabelType | StatusLabelType[]\n /** タイトルの下に表示するヘルプメッセージ */\n helpMessage?: ReactNode\n /** タイトルの下に表示する入力例 */\n exampleMessage?: ReactNode\n /** タイトルの下に表示するエラーメッセージ */\n errorMessages?: ReactNode | ReactNode[]\n /** エラーがある場合に自動的に入力要素を error にするかどうか */\n autoBindErrorInput?: boolean\n /** フォームコントロールの下に表示する補足メッセージ */\n supplementaryMessage?: ReactNode\n /** `true` のとき、文字色を `TEXT_DISABLED` にする */\n disabled?: boolean\n as?: string | ComponentType<any>\n}>\ntype ElementProps = Omit<ComponentPropsWithoutRef<'div'>, keyof Props | 'aria-labelledby'>\n\nconst classNameGenerator = tv({\n slots: {\n wrapper: [\n 'smarthr-ui-FormControl',\n 'shr-mx-[unset] shr-border-none shr-p-[unset]',\n 'disabled:shr-text-disabled',\n '[&:disabled_.smarthr-ui-FormControl-label_>_span]:shr-text-disabled',\n '[&:disabled_.smarthr-ui-FormControl-exampleMessage]:shr-text-color-inherit',\n '[&:disabled_.smarthr-ui-FormControl-errorMessage]:shr-text-color-inherit',\n '[&:disabled_.smarthr-ui-FormControl-supplementaryMessage]:shr-text-color-inherit',\n '[&:disabled_.smarthr-ui-Input]:shr-border-default/50 [&:disabled_.smarthr-ui-Input]:shr-bg-white-darken',\n ],\n label: ['smarthr-ui-FormControl-label'],\n errorList: ['shr-list-none'],\n errorIcon: ['smarthr-ui-FormControl-errorMessage', 'shr-text-danger'],\n underTitleStack: ['[&&&]:shr-mt-0'],\n childrenWrapper: [],\n },\n variants: {\n innerMargin: {\n 0: {},\n 0.25: {},\n 0.5: {},\n 0.75: {},\n 1: {},\n 1.25: {},\n 1.5: {},\n 2: {},\n 2.5: {},\n 3: {},\n 3.5: {},\n 4: {},\n 8: {},\n X3S: {},\n XXS: {},\n XS: {},\n S: {},\n M: {},\n L: {},\n XL: {},\n XXL: {},\n X3L: {},\n } as { [key in Gap]: string },\n isFieldset: {\n true: {},\n false: {},\n },\n },\n compoundVariants: [\n // TODO: innerMarginが未指定、初期値の場合、かつFieldsetの場合、childrenの上部の余白を広げることで\n // FormControltとの差をわかりやすくしている\n // 微妙な方法ではあるので、必要に応じてinnerMarginではない属性を用意する\n // https://kufuinc.slack.com/archives/CGC58MW01/p1737944965871159?thread_ts=1737541173.404369&cid=CGC58MW01\n {\n innerMargin: undefined,\n isFieldset: true,\n class: {\n childrenWrapper: '[:not([hidden])_~_&&&]:shr-mt-1',\n },\n },\n {\n innerMargin: undefined,\n isFieldset: false,\n class: {\n childrenWrapper: '[:not([hidden])_~_&&&]:shr-mt-0.5',\n },\n },\n ],\n})\n\nconst SMARTHR_UI_INPUT_SELECTOR = '[data-smarthr-ui-input=\"true\"]'\n\nexport const ActualFormControl: FC<Props & ElementProps> = ({\n title,\n titleType = 'blockTitle',\n subActionArea,\n dangerouslyTitleHidden = false,\n htmlFor,\n labelId,\n innerMargin,\n statusLabels,\n statusLabelProps,\n helpMessage,\n exampleMessage,\n errorMessages,\n autoBindErrorInput = true,\n supplementaryMessage,\n as = 'div',\n className,\n children,\n ...props\n}) => {\n const defaultHtmlFor = useId()\n const defaultLabelId = useId()\n const managedHtmlFor = htmlFor || defaultHtmlFor\n const managedLabelId = labelId || defaultLabelId\n const inputWrapperRef = useRef<HTMLDivElement>(null)\n const isFieldset = as === 'fieldset'\n\n const describedbyIds = useMemo(() => {\n const temp = []\n\n if (helpMessage) {\n temp.push(`${managedHtmlFor}_helpMessage`)\n }\n if (exampleMessage) {\n temp.push(`${managedHtmlFor}_exampleMessage`)\n }\n if (supplementaryMessage) {\n temp.push(`${managedHtmlFor}_supplementaryMessage`)\n }\n if (errorMessages) {\n temp.push(`${managedHtmlFor}_errorMessages`)\n }\n\n return temp.join(' ')\n }, [helpMessage, exampleMessage, supplementaryMessage, errorMessages, managedHtmlFor])\n\n const actualStatusLabels = useMemo(() => {\n if (statusLabels) {\n return (Array.isArray(statusLabels) ? statusLabels : [statusLabels]).map(\n (statusLabel, index) => <Fragment key={index}>{statusLabel}</Fragment>,\n )\n }\n\n if (!statusLabelProps) {\n return []\n }\n\n const labelProps = Array.isArray(statusLabelProps) ? statusLabelProps : [statusLabelProps]\n\n return labelProps.map((prop, index) => <StatusLabel {...prop} key={index} />)\n }, [statusLabels, statusLabelProps])\n\n const actualErrorMessages = useMemo(() => {\n if (!errorMessages) {\n return []\n }\n\n return Array.isArray(errorMessages) ? errorMessages : [errorMessages]\n }, [errorMessages])\n\n const actualInnerMargin = useMemo(() => innerMargin ?? 0.5, [innerMargin])\n\n const classNames = useMemo(() => {\n const { wrapper, label, errorList, errorIcon, underTitleStack, childrenWrapper } =\n classNameGenerator({ innerMargin, isFieldset })\n\n return {\n wrapper: wrapper({ className }),\n label: label({\n className: dangerouslyTitleHidden ? visuallyHiddenTextClassNameGenerator() : '',\n }),\n errorList: errorList(),\n errorIcon: errorIcon(),\n underTitleStack: underTitleStack(),\n childrenWrapper: childrenWrapper(),\n }\n }, [innerMargin, isFieldset, dangerouslyTitleHidden, className])\n\n useEffect(() => {\n if (\n isFieldset ||\n !inputWrapperRef?.current ||\n // HINT: 対象idを持つ要素が既に存在する場合、何もしない\n document.getElementById(managedHtmlFor)\n ) {\n return\n }\n\n const input = inputWrapperRef.current.querySelector(SMARTHR_UI_INPUT_SELECTOR)\n\n if (!input) {\n return\n }\n\n if (!input.getAttribute('id')) {\n input.setAttribute('id', managedHtmlFor)\n }\n\n if (input instanceof HTMLInputElement && input.type === 'file') {\n const attrName = 'aria-labelledby'\n const inputLabelledByIds = input.getAttribute(attrName)\n\n if (inputLabelledByIds) {\n // InputFileの場合はlabel要素の可視ラベルをアクセシブルネームに含める\n input.setAttribute(attrName, `${inputLabelledByIds} ${managedLabelId}`)\n }\n }\n }, [managedHtmlFor, isFieldset, managedLabelId])\n\n useEffect(() => {\n if (!describedbyIds || !inputWrapperRef?.current) {\n return\n }\n\n const inputWrapper = inputWrapperRef.current\n const attrName = 'aria-describedby'\n\n if (inputWrapper.querySelector(`[${attrName}=\"${describedbyIds}\"]`)) {\n return\n }\n\n const input = inputWrapper.querySelector(SMARTHR_UI_INPUT_SELECTOR)\n\n if (input) {\n const attribute = input.getAttribute(attrName)\n\n input.setAttribute(attrName, attribute ? `${attribute} ${describedbyIds}` : describedbyIds)\n }\n }, [describedbyIds])\n\n useEffect(() => {\n if (!autoBindErrorInput || !inputWrapperRef?.current) {\n return\n }\n\n const input = inputWrapperRef.current.querySelector(SMARTHR_UI_INPUT_SELECTOR)\n\n if (input) {\n const attrName = 'aria-invalid'\n\n if (actualErrorMessages.length > 0) {\n input.setAttribute(attrName, 'true')\n } else {\n input.removeAttribute(attrName)\n }\n }\n }, [actualErrorMessages.length, autoBindErrorInput])\n\n // HINT: Fieldset内の可視ラベルが無いinputに、legend文言をアクセシブルネームに追加する\n // https://waic.jp/translations/WCAG21/Understanding/label-in-name.html\n useEffect(() => {\n if (!isFieldset || !inputWrapperRef.current) return\n const inputs = inputWrapperRef.current.querySelectorAll(SMARTHR_UI_INPUT_SELECTOR)\n if (!inputs.length) return\n\n const legendText = innerText(title)\n if (!legendText) return\n\n const labels = new Set(\n Array.from(document.querySelectorAll('label[for]')).map((label) => label.getAttribute('for')),\n )\n\n inputs.forEach((input) => {\n const inputId = input.getAttribute('id')\n if (inputId && labels.has(inputId)) {\n return\n }\n\n const accessibleName = input.hasAttribute('aria-label')\n ? input.getAttribute('aria-label')\n : null\n\n if (accessibleName && !accessibleName.includes(legendText)) {\n input.setAttribute('aria-label', `${accessibleName} ${legendText} `.trim())\n }\n })\n }, [isFieldset, title])\n\n let body = (\n <>\n <HelpMessageParagraph helpMessage={helpMessage} managedHtmlFor={managedHtmlFor} />\n <ExampleMessageText exampleMessage={exampleMessage} managedHtmlFor={managedHtmlFor} />\n <ErrorMessageList\n errorMessages={actualErrorMessages}\n managedHtmlFor={managedHtmlFor}\n classNames={classNames}\n />\n <div className={classNames.childrenWrapper} ref={inputWrapperRef}>\n {children}\n </div>\n <SupplementaryMessageText\n supplementaryMessage={supplementaryMessage}\n managedHtmlFor={managedHtmlFor}\n />\n </>\n )\n\n // HINT: dangerouslyTitleHiddenの場合、body以下の余白の計算を簡略化するため\n // Stackをネストし、そのStackに対してmargin-top: 0を指定する\n // こうすることでinner Stack以下の要素は擬似的にStackの最初の要素になる\n if (dangerouslyTitleHidden) {\n body = (\n <Stack gap={actualInnerMargin} className={classNames.underTitleStack}>\n {body}\n </Stack>\n )\n }\n\n return (\n <Stack\n {...props}\n as={as}\n gap={actualInnerMargin}\n aria-describedby={isFieldset && describedbyIds ? describedbyIds : undefined}\n className={classNames.wrapper}\n >\n <TitleCluster\n isFieldset={isFieldset}\n managedHtmlFor={managedHtmlFor}\n managedLabelId={managedLabelId}\n dangerouslyTitleHidden={dangerouslyTitleHidden}\n titleType={titleType}\n title={title}\n statusLabels={actualStatusLabels}\n subActionArea={subActionArea}\n labelClassName={classNames.label}\n />\n {body}\n </Stack>\n )\n}\n\nconst TitleCluster = memo<\n Pick<Props, 'dangerouslyTitleHidden' | 'title' | 'subActionArea'> & {\n titleType: TextProps['styleType']\n isFieldset: boolean\n managedHtmlFor: string\n managedLabelId: string\n labelClassName: string\n statusLabels: StatusLabelType[]\n }\n>(\n ({\n isFieldset,\n managedHtmlFor,\n managedLabelId,\n dangerouslyTitleHidden,\n titleType,\n title,\n subActionArea,\n labelClassName,\n statusLabels,\n }) => {\n const body = (\n <>\n <Text styleType={titleType}>{title}</Text>\n <StatusLabelCluster statusLabels={statusLabels} />\n </>\n )\n\n const attrs = useMemo(() => {\n if (dangerouslyTitleHidden) {\n return {\n label: null,\n visuallyHidden: isFieldset\n ? {\n as: 'legend',\n }\n : {\n as: 'label',\n htmlFor: managedHtmlFor,\n id: managedLabelId,\n },\n }\n }\n\n if (isFieldset) {\n return {\n label: { 'aria-hidden': 'true' } as const,\n visuallyHidden: { as: 'legend' },\n }\n }\n\n return {\n label: {\n as: 'label' as const,\n htmlFor: managedHtmlFor,\n id: managedLabelId,\n },\n visuallyHidden: null,\n }\n }, [managedLabelId, managedHtmlFor, dangerouslyTitleHidden, isFieldset])\n\n return (\n <>\n {attrs.visuallyHidden && (\n <VisuallyHiddenText {...attrs.visuallyHidden}>\n {\n // HINT: innerTextでは正しく文字が取得できない場合がある\n // 安全策としてinnerTextが空を取得してきたらbody自体を埋めこみます\n innerText(body) || body\n }\n </VisuallyHiddenText>\n )}\n {attrs.label && (\n <Cluster\n justify=\"space-between\"\n // HINT: UI上、常にトップの要素になるため、Stackの計算が狂わないよう、\n // 常にmargin-topを0にする\n className=\"[&&&]:shr--mt-0\"\n >\n <Cluster {...attrs.label} align=\"center\" className={labelClassName}>\n {body}\n </Cluster>\n {subActionArea && <div className=\"shr-grow\">{subActionArea}</div>}\n </Cluster>\n )}\n </>\n )\n },\n)\n\nconst StatusLabelCluster = memo<{ statusLabels: StatusLabelType[] }>(({ statusLabels }) =>\n statusLabels.length === 0 ? null : (\n <Cluster gap={0.25} as=\"span\">\n {statusLabels}\n </Cluster>\n ),\n)\n\nconst HelpMessageParagraph = memo<Pick<Props, 'helpMessage'> & { managedHtmlFor: string }>(\n ({ helpMessage, managedHtmlFor }) =>\n helpMessage ? (\n <p className=\"smarthr-ui-FormControl-helpMessage\" id={`${managedHtmlFor}_helpMessage`}>\n {helpMessage}\n </p>\n ) : null,\n)\n\nconst ExampleMessageText = memo<Pick<Props, 'exampleMessage'> & { managedHtmlFor: string }>(\n ({ exampleMessage, managedHtmlFor }) =>\n exampleMessage ? (\n <Text\n as=\"p\"\n color=\"TEXT_GREY\"\n italic\n id={`${managedHtmlFor}_exampleMessage`}\n className=\"smarthr-ui-FormControl-exampleMessage\"\n >\n {exampleMessage}\n </Text>\n ) : null,\n)\n\nconst ErrorMessageList = memo<{\n errorMessages: ReactNode[]\n managedHtmlFor: string\n classNames: {\n errorList: string\n errorIcon: string\n }\n}>(({ errorMessages, managedHtmlFor, classNames }) =>\n errorMessages.length > 0 ? (\n <div id={`${managedHtmlFor}_errorMessages`} className={classNames.errorList} role=\"alert\">\n {errorMessages.map((message, index) => (\n <p key={index}>\n <FaCircleExclamationIcon text={message} className={classNames.errorIcon} />\n </p>\n ))}\n </div>\n ) : null,\n)\n\nconst SupplementaryMessageText = memo<\n Pick<Props, 'supplementaryMessage'> & { managedHtmlFor: string }\n>(({ supplementaryMessage, managedHtmlFor }) =>\n supplementaryMessage ? (\n <Text\n as=\"p\"\n size=\"S\"\n color=\"TEXT_GREY\"\n id={`${managedHtmlFor}_supplementaryMessage`}\n className=\"smarthr-ui-FormControl-supplementaryMessage\"\n >\n {supplementaryMessage}\n </Text>\n ) : null,\n)\n\nexport const FormControl: FC<Omit<Props & ElementProps, 'as' | 'disabled'>> = ActualFormControl\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqEA;AACE;AACE;;;;;;;;;AASC;;;AAGD;;AAEA;AACD;AACD;AACE;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2B;AAC7B;AACE;AACA;AACD;AACF;AACD;;;;;AAKE;AACE;AACA;AACA;AACE;AACD;AACF;AACD;AACE;AACA;AACA;AACE;AACD;AACF;AACF;AACF;AAED;AAEO;AAoBL;AACA;AACA;AACA;AACA;AACA;AAEA;;;AAII;;;AAGA;;;AAGA;;;AAGA;;AAGF;AACF;AAEA;;AAEI;;;AAMA;;AAGF;;AAGF;AAEA;;AAEI;;AAGF;AACF;AAEA;AAEA;;;AAKI;;;;;;;;;;;AAYF;;;AAIE;;;;;;;;AAYA;;;;;;;;;;;;;;;AAmBF;;;;;;;;AAYE;;AAEJ;;;;;;;;AAYI;AACE;;;AAEA;;;;;;;AAQJ;;;;;AAIA;AACA;;AAEA;AAIA;;;;;AAME;AACE;;;AAIA;;AAEJ;AACF;AAEA;;;;;AAuBE;;AAOF;AAsBF;AAEA;;AA4BI;;;AAGM;AACA;AACE;AACI;AACD;AACH;AACI;AACA;AACA;AACD;;;;;AAML;AACA;;;;AAKF;AACE;AACA;AACA;AACD;AACD;;;AAIJ;;;AAOU;;;AASF;AAUV;AAGF;AAQA;AASA;AAeA;AAmBA;AAgBO;;"}
|
|
1
|
+
{"version":3,"file":"FormControl.js","sources":["../../../src/components/FormControl/FormControl.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type ComponentPropsWithoutRef,\n type ComponentType,\n type FC,\n Fragment,\n type FunctionComponentElement,\n type PropsWithChildren,\n type ReactNode,\n memo,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport { useId } from 'react'\nimport innerText from 'react-innertext'\nimport { tv } from 'tailwind-variants'\n\nimport { FaCircleExclamationIcon } from '../Icon'\nimport { Cluster, Stack } from '../Layout'\nimport { StatusLabel } from '../StatusLabel'\nimport { Text, type TextProps } from '../Text'\nimport { VisuallyHiddenText, visuallyHiddenTextClassNameGenerator } from '../VisuallyHiddenText'\n\nimport type { Gap } from '../../types'\n\ntype StatusLabelProps = ComponentProps<typeof StatusLabel>\ntype StatusLabelType = FunctionComponentElement<StatusLabelProps>\n\ntype Props = PropsWithChildren<{\n /** グループのタイトル名 */\n title: ReactNode\n /** タイトルの見出しのタイプ */\n titleType?: TextProps['styleType']\n /** タイトル右の領域 */\n subActionArea?: ReactNode\n /** タイトルの見出しを視覚的に隠すかどうか */\n dangerouslyTitleHidden?: boolean\n /** label 要素に適用する `htmlFor` 値 */\n htmlFor?: string\n /** label 要素に適用する `id` 値 */\n labelId?: string\n /** タイトル群と子要素の間の間隔調整用(基本的には不要) */\n innerMargin?: Gap\n /** タイトルの隣に表示する `StatusLabel` の Props の配列 */\n /**\n * @deprecated statusLabelProps属性は非推奨です。statusLabelsを使ってください。\n */\n statusLabelProps?: StatusLabelProps | StatusLabelProps[]\n /** タイトルの隣に表示する `StatusLabel` の配列 */\n statusLabels?: StatusLabelType | StatusLabelType[]\n /** タイトルの下に表示するヘルプメッセージ */\n helpMessage?: ReactNode\n /** タイトルの下に表示する入力例 */\n exampleMessage?: ReactNode\n /** タイトルの下に表示するエラーメッセージ */\n errorMessages?: ReactNode | ReactNode[]\n /** エラーがある場合に自動的に入力要素を error にするかどうか */\n autoBindErrorInput?: boolean\n /** フォームコントロールの下に表示する補足メッセージ */\n supplementaryMessage?: ReactNode\n /** `true` のとき、文字色を `TEXT_DISABLED` にする */\n disabled?: boolean\n as?: string | ComponentType<any>\n}>\ntype ElementProps = Omit<ComponentPropsWithoutRef<'div'>, keyof Props | 'aria-labelledby'>\n\nconst classNameGenerator = tv({\n slots: {\n wrapper: [\n 'smarthr-ui-FormControl',\n 'shr-mx-[unset] shr-border-none shr-p-[unset]',\n 'disabled:shr-text-disabled',\n '[&:disabled_.smarthr-ui-FormControl-label_>_span]:shr-text-disabled',\n '[&:disabled_.smarthr-ui-FormControl-exampleMessage]:shr-text-color-inherit',\n '[&:disabled_.smarthr-ui-FormControl-errorMessage]:shr-text-color-inherit',\n '[&:disabled_.smarthr-ui-FormControl-supplementaryMessage]:shr-text-color-inherit',\n '[&:disabled_.smarthr-ui-Input]:shr-border-default/50 [&:disabled_.smarthr-ui-Input]:shr-bg-white-darken',\n ],\n label: ['smarthr-ui-FormControl-label'],\n errorList: ['shr-list-none'],\n errorIcon: ['smarthr-ui-FormControl-errorMessage', 'shr-text-danger'],\n underTitleStack: ['[&&&]:shr-mt-0'],\n childrenWrapper: [],\n },\n variants: {\n innerMargin: {\n 0: {},\n 0.25: {},\n 0.5: {},\n 0.75: {},\n 1: {},\n 1.25: {},\n 1.5: {},\n 2: {},\n 2.5: {},\n 3: {},\n 3.5: {},\n 4: {},\n 8: {},\n X3S: {},\n XXS: {},\n XS: {},\n S: {},\n M: {},\n L: {},\n XL: {},\n XXL: {},\n X3L: {},\n } as { [key in Gap]: string },\n isFieldset: {\n true: {},\n false: {},\n },\n },\n compoundVariants: [\n // TODO: innerMarginが未指定、初期値の場合、かつFieldsetの場合、childrenの上部の余白を広げることで\n // FormControltとの差をわかりやすくしている\n // 微妙な方法ではあるので、必要に応じてinnerMarginではない属性を用意する\n // https://kufuinc.slack.com/archives/CGC58MW01/p1737944965871159?thread_ts=1737541173.404369&cid=CGC58MW01\n {\n innerMargin: undefined,\n isFieldset: true,\n class: {\n childrenWrapper: '[:not([hidden])_~_&&&]:shr-mt-1',\n },\n },\n {\n innerMargin: undefined,\n isFieldset: false,\n class: {\n childrenWrapper: '[:not([hidden])_~_&&&]:shr-mt-0.5',\n },\n },\n ],\n})\n\nconst SMARTHR_UI_INPUT_SELECTOR = '[data-smarthr-ui-input=\"true\"]'\n\nexport const ActualFormControl: FC<Props & ElementProps> = ({\n title,\n titleType = 'blockTitle',\n subActionArea,\n dangerouslyTitleHidden = false,\n htmlFor,\n labelId,\n innerMargin,\n statusLabels,\n statusLabelProps,\n helpMessage,\n exampleMessage,\n errorMessages,\n autoBindErrorInput = true,\n supplementaryMessage,\n as = 'div',\n className,\n children,\n ...props\n}) => {\n const defaultHtmlFor = useId()\n const defaultLabelId = useId()\n const managedHtmlFor = htmlFor || defaultHtmlFor\n const managedLabelId = labelId || defaultLabelId\n const inputWrapperRef = useRef<HTMLDivElement>(null)\n const isFieldset = as === 'fieldset'\n\n const describedbyIds = useMemo(() => {\n const temp = []\n\n if (helpMessage) {\n temp.push(`${managedHtmlFor}_helpMessage`)\n }\n if (exampleMessage) {\n temp.push(`${managedHtmlFor}_exampleMessage`)\n }\n if (supplementaryMessage) {\n temp.push(`${managedHtmlFor}_supplementaryMessage`)\n }\n if (errorMessages) {\n temp.push(`${managedHtmlFor}_errorMessages`)\n }\n\n return temp.join(' ')\n }, [helpMessage, exampleMessage, supplementaryMessage, errorMessages, managedHtmlFor])\n\n const actualStatusLabels = useMemo(() => {\n if (statusLabels) {\n return (Array.isArray(statusLabels) ? statusLabels : [statusLabels]).map(\n (statusLabel, index) => <Fragment key={index}>{statusLabel}</Fragment>,\n )\n }\n\n if (!statusLabelProps) {\n return []\n }\n\n const labelProps = Array.isArray(statusLabelProps) ? statusLabelProps : [statusLabelProps]\n\n return labelProps.map((prop, index) => <StatusLabel {...prop} key={index} />)\n }, [statusLabels, statusLabelProps])\n\n const actualErrorMessages = useMemo(() => {\n if (!errorMessages) {\n return []\n }\n\n return Array.isArray(errorMessages) ? errorMessages : [errorMessages]\n }, [errorMessages])\n\n const actualInnerMargin = useMemo(() => innerMargin ?? 0.5, [innerMargin])\n\n const classNames = useMemo(() => {\n const { wrapper, label, errorList, errorIcon, underTitleStack, childrenWrapper } =\n classNameGenerator({ innerMargin, isFieldset })\n\n return {\n wrapper: wrapper({ className }),\n label: label({\n className: dangerouslyTitleHidden ? visuallyHiddenTextClassNameGenerator() : '',\n }),\n errorList: errorList(),\n errorIcon: errorIcon(),\n underTitleStack: underTitleStack(),\n childrenWrapper: childrenWrapper(),\n }\n }, [innerMargin, isFieldset, dangerouslyTitleHidden, className])\n\n useEffect(() => {\n if (\n isFieldset ||\n !inputWrapperRef?.current ||\n // HINT: 対象idを持つ要素が既に存在する場合、何もしない\n document.getElementById(managedHtmlFor)\n ) {\n return\n }\n\n const input = inputWrapperRef.current.querySelector(SMARTHR_UI_INPUT_SELECTOR)\n\n if (!input) {\n return\n }\n\n if (!input.getAttribute('id')) {\n input.setAttribute('id', managedHtmlFor)\n }\n\n if (input instanceof HTMLInputElement && input.type === 'file') {\n const attrName = 'aria-labelledby'\n const inputLabelledByIds = input.getAttribute(attrName)\n\n if (inputLabelledByIds) {\n // InputFileの場合はlabel要素の可視ラベルをアクセシブルネームに含める\n input.setAttribute(attrName, `${inputLabelledByIds} ${managedLabelId}`)\n }\n }\n }, [managedHtmlFor, isFieldset, managedLabelId])\n\n useEffect(() => {\n if (!describedbyIds || !inputWrapperRef?.current) {\n return\n }\n\n const inputWrapper = inputWrapperRef.current\n const attrName = 'aria-describedby'\n\n if (inputWrapper.querySelector(`[${attrName}=\"${describedbyIds}\"]`)) {\n return\n }\n\n const input = inputWrapper.querySelector(SMARTHR_UI_INPUT_SELECTOR)\n\n if (input) {\n const attribute = input.getAttribute(attrName)\n\n input.setAttribute(attrName, attribute ? `${attribute} ${describedbyIds}` : describedbyIds)\n }\n }, [describedbyIds])\n\n useEffect(() => {\n if (!autoBindErrorInput || !inputWrapperRef?.current) {\n return\n }\n\n const input = inputWrapperRef.current.querySelector(SMARTHR_UI_INPUT_SELECTOR)\n\n if (input) {\n const attrName = 'aria-invalid'\n\n if (actualErrorMessages.length > 0) {\n input.setAttribute(attrName, 'true')\n } else {\n input.removeAttribute(attrName)\n }\n }\n }, [actualErrorMessages.length, autoBindErrorInput])\n\n // HINT: Fieldset内の可視ラベルが無いinputに、legend文言をアクセシブルネームに追加する\n // https://waic.jp/translations/WCAG21/Understanding/label-in-name.html\n useEffect(() => {\n if (!isFieldset || !inputWrapperRef.current) return\n const inputs = inputWrapperRef.current.querySelectorAll(SMARTHR_UI_INPUT_SELECTOR)\n if (!inputs.length) return\n\n const legendText = innerText(title)\n if (!legendText) return\n\n const labelMap = new Map(\n Array.from(document.querySelectorAll('label[for]')).map((label) => [\n label.getAttribute('for'),\n label,\n ]),\n )\n\n inputs.forEach((input) => {\n const inputId = input.getAttribute('id')\n let accessibleName = input.getAttribute('aria-label')\n\n if (!accessibleName) {\n const label = labelMap.get(inputId)\n if (!label?.closest('.smarthr-ui-VisuallyHiddenText')) {\n // HINT: <label> があり、かつ <VisuallyHiddenText> でラップされていない場合\n return\n }\n\n accessibleName = label.textContent || ''\n }\n\n if (accessibleName && !accessibleName.includes(legendText)) {\n input.setAttribute('aria-label', `${accessibleName} ${legendText}`.trim())\n }\n })\n }, [isFieldset, title])\n\n let body = (\n <>\n <HelpMessageParagraph helpMessage={helpMessage} managedHtmlFor={managedHtmlFor} />\n <ExampleMessageText exampleMessage={exampleMessage} managedHtmlFor={managedHtmlFor} />\n <ErrorMessageList\n errorMessages={actualErrorMessages}\n managedHtmlFor={managedHtmlFor}\n classNames={classNames}\n />\n <div className={classNames.childrenWrapper} ref={inputWrapperRef}>\n {children}\n </div>\n <SupplementaryMessageText\n supplementaryMessage={supplementaryMessage}\n managedHtmlFor={managedHtmlFor}\n />\n </>\n )\n\n // HINT: dangerouslyTitleHiddenの場合、body以下の余白の計算を簡略化するため\n // Stackをネストし、そのStackに対してmargin-top: 0を指定する\n // こうすることでinner Stack以下の要素は擬似的にStackの最初の要素になる\n if (dangerouslyTitleHidden) {\n body = (\n <Stack gap={actualInnerMargin} className={classNames.underTitleStack}>\n {body}\n </Stack>\n )\n }\n\n return (\n <Stack\n {...props}\n as={as}\n gap={actualInnerMargin}\n aria-describedby={isFieldset && describedbyIds ? describedbyIds : undefined}\n className={classNames.wrapper}\n >\n <TitleCluster\n isFieldset={isFieldset}\n managedHtmlFor={managedHtmlFor}\n managedLabelId={managedLabelId}\n dangerouslyTitleHidden={dangerouslyTitleHidden}\n titleType={titleType}\n title={title}\n statusLabels={actualStatusLabels}\n subActionArea={subActionArea}\n labelClassName={classNames.label}\n />\n {body}\n </Stack>\n )\n}\n\nconst TitleCluster = memo<\n Pick<Props, 'dangerouslyTitleHidden' | 'title' | 'subActionArea'> & {\n titleType: TextProps['styleType']\n isFieldset: boolean\n managedHtmlFor: string\n managedLabelId: string\n labelClassName: string\n statusLabels: StatusLabelType[]\n }\n>(\n ({\n isFieldset,\n managedHtmlFor,\n managedLabelId,\n dangerouslyTitleHidden,\n titleType,\n title,\n subActionArea,\n labelClassName,\n statusLabels,\n }) => {\n const body = (\n <>\n <Text styleType={titleType}>{title}</Text>\n <StatusLabelCluster statusLabels={statusLabels} />\n </>\n )\n\n const attrs = useMemo(() => {\n if (dangerouslyTitleHidden) {\n return {\n label: null,\n visuallyHidden: isFieldset\n ? {\n as: 'legend',\n }\n : {\n as: 'label',\n htmlFor: managedHtmlFor,\n id: managedLabelId,\n },\n }\n }\n\n if (isFieldset) {\n return {\n label: { 'aria-hidden': 'true' } as const,\n visuallyHidden: { as: 'legend' },\n }\n }\n\n return {\n label: {\n as: 'label' as const,\n htmlFor: managedHtmlFor,\n id: managedLabelId,\n },\n visuallyHidden: null,\n }\n }, [managedLabelId, managedHtmlFor, dangerouslyTitleHidden, isFieldset])\n\n return (\n <>\n {attrs.visuallyHidden && (\n <VisuallyHiddenText {...attrs.visuallyHidden}>\n {\n // HINT: innerTextでは正しく文字が取得できない場合がある\n // 安全策としてinnerTextが空を取得してきたらbody自体を埋めこみます\n innerText(body) || body\n }\n </VisuallyHiddenText>\n )}\n {attrs.label && (\n <Cluster\n justify=\"space-between\"\n // HINT: UI上、常にトップの要素になるため、Stackの計算が狂わないよう、\n // 常にmargin-topを0にする\n className=\"[&&&]:shr--mt-0\"\n >\n <Cluster {...attrs.label} align=\"center\" className={labelClassName}>\n {body}\n </Cluster>\n {subActionArea && <div className=\"shr-grow\">{subActionArea}</div>}\n </Cluster>\n )}\n </>\n )\n },\n)\n\nconst StatusLabelCluster = memo<{ statusLabels: StatusLabelType[] }>(({ statusLabels }) =>\n statusLabels.length === 0 ? null : (\n <Cluster gap={0.25} as=\"span\">\n {statusLabels}\n </Cluster>\n ),\n)\n\nconst HelpMessageParagraph = memo<Pick<Props, 'helpMessage'> & { managedHtmlFor: string }>(\n ({ helpMessage, managedHtmlFor }) =>\n helpMessage ? (\n <p className=\"smarthr-ui-FormControl-helpMessage\" id={`${managedHtmlFor}_helpMessage`}>\n {helpMessage}\n </p>\n ) : null,\n)\n\nconst ExampleMessageText = memo<Pick<Props, 'exampleMessage'> & { managedHtmlFor: string }>(\n ({ exampleMessage, managedHtmlFor }) =>\n exampleMessage ? (\n <Text\n as=\"p\"\n color=\"TEXT_GREY\"\n italic\n id={`${managedHtmlFor}_exampleMessage`}\n className=\"smarthr-ui-FormControl-exampleMessage\"\n >\n {exampleMessage}\n </Text>\n ) : null,\n)\n\nconst ErrorMessageList = memo<{\n errorMessages: ReactNode[]\n managedHtmlFor: string\n classNames: {\n errorList: string\n errorIcon: string\n }\n}>(({ errorMessages, managedHtmlFor, classNames }) =>\n errorMessages.length > 0 ? (\n <div id={`${managedHtmlFor}_errorMessages`} className={classNames.errorList} role=\"alert\">\n {errorMessages.map((message, index) => (\n <p key={index}>\n <FaCircleExclamationIcon text={message} className={classNames.errorIcon} />\n </p>\n ))}\n </div>\n ) : null,\n)\n\nconst SupplementaryMessageText = memo<\n Pick<Props, 'supplementaryMessage'> & { managedHtmlFor: string }\n>(({ supplementaryMessage, managedHtmlFor }) =>\n supplementaryMessage ? (\n <Text\n as=\"p\"\n size=\"S\"\n color=\"TEXT_GREY\"\n id={`${managedHtmlFor}_supplementaryMessage`}\n className=\"smarthr-ui-FormControl-supplementaryMessage\"\n >\n {supplementaryMessage}\n </Text>\n ) : null,\n)\n\nexport const FormControl: FC<Omit<Props & ElementProps, 'as' | 'disabled'>> = ActualFormControl\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqEA;AACE;AACE;;;;;;;;;AASC;;;AAGD;;AAEA;AACD;AACD;AACE;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2B;AAC7B;AACE;AACA;AACD;AACF;AACD;;;;;AAKE;AACE;AACA;AACA;AACE;AACD;AACF;AACD;AACE;AACA;AACA;AACE;AACD;AACF;AACF;AACF;AAED;AAEO;AAoBL;AACA;AACA;AACA;AACA;AACA;AAEA;;;AAII;;;AAGA;;;AAGA;;;AAGA;;AAGF;AACF;AAEA;;AAEI;;;AAMA;;AAGF;;AAGF;AAEA;;AAEI;;AAGF;AACF;AAEA;AAEA;;;AAKI;;;;;;;;;;;AAYF;;;AAIE;;;;;;;;AAYA;;;;;;;;;;;;;;;AAmBF;;;;;;;;AAYE;;AAEJ;;;;;;;;AAYI;AACE;;;AAEA;;;;;;;AAQJ;;;;;AAIA;AACA;;;AAII;;AAED;AAGH;;;;;;;;;AAWI;;;AAIA;;AAEJ;AACF;AAEA;;;;;AAuBE;;AAOF;AAsBF;AAEA;;AA4BI;;;AAGM;AACA;AACE;AACI;AACD;AACH;AACI;AACA;AACA;AACD;;;;;AAML;AACA;;;;AAKF;AACE;AACA;AACA;AACD;AACD;;;AAIJ;;;AAOU;;;AASF;AAUV;AAGF;AAQA;AASA;AAeA;AAmBA;AAgBO;;"}
|
|
@@ -7,7 +7,7 @@ const visuallyHiddenTextClassNameGenerator = ce({
|
|
|
7
7
|
});
|
|
8
8
|
const ActualVisuallyHiddenText = ({ as: Component = 'span', className, ...props }) => {
|
|
9
9
|
const actualClassName = useMemo(() => visuallyHiddenTextClassNameGenerator({ className }), [className]);
|
|
10
|
-
return jsx(Component, { ...props, className: actualClassName });
|
|
10
|
+
return jsx(Component, { ...props, className: `smarthr-ui-VisuallyHiddenText ${actualClassName}` });
|
|
11
11
|
};
|
|
12
12
|
const VisuallyHiddenText = memo(ActualVisuallyHiddenText);
|
|
13
13
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisuallyHiddenText.js","sources":["../../../src/components/VisuallyHiddenText/VisuallyHiddenText.tsx"],"sourcesContent":["import { type ComponentProps, type ElementType, type PropsWithChildren, memo, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nexport const visuallyHiddenTextClassNameGenerator = tv({\n base: 'shr-absolute shr-h-px shr-w-px shr-overflow-hidden shr-whitespace-nowrap shr-border-0 shr-p-0 [clip-path:inset(100%)] [clip:rect(0_0_0_0)]',\n})\n\ntype Props<T extends ElementType> = PropsWithChildren<{\n as?: T\n}> &\n ComponentProps<T>\n\nconst ActualVisuallyHiddenText = <T extends ElementType = 'span'>({\n as: Component = 'span',\n className,\n ...props\n}: Props<T>) => {\n const actualClassName = useMemo(\n () => visuallyHiddenTextClassNameGenerator({ className }),\n [className],\n )\n\n return <Component {...props} className={actualClassName} />\n}\n\nexport const VisuallyHiddenText = memo(ActualVisuallyHiddenText) as typeof ActualVisuallyHiddenText\n"],"names":["tv","_jsx"],"mappings":";;;;AAGO,MAAM,oCAAoC,GAAGA,EAAE,CAAC;AACrD,IAAA,IAAI,EAAE,4IAA4I;AACnJ,CAAA;AAOD,MAAM,wBAAwB,GAAG,CAAiC,EAChE,EAAE,EAAE,SAAS,GAAG,MAAM,EACtB,SAAS,EACT,GAAG,KAAK,EACC,KAAI;AACb,IAAA,MAAM,eAAe,GAAG,OAAO,CAC7B,MAAM,oCAAoC,CAAC,EAAE,SAAS,EAAE,CAAC,EACzD,CAAC,SAAS,CAAC,CACZ;IAED,OAAOC,GAAA,CAAC,SAAS,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,eAAe,EAAA,CAAI;
|
|
1
|
+
{"version":3,"file":"VisuallyHiddenText.js","sources":["../../../src/components/VisuallyHiddenText/VisuallyHiddenText.tsx"],"sourcesContent":["import { type ComponentProps, type ElementType, type PropsWithChildren, memo, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nexport const visuallyHiddenTextClassNameGenerator = tv({\n base: 'shr-absolute shr-h-px shr-w-px shr-overflow-hidden shr-whitespace-nowrap shr-border-0 shr-p-0 [clip-path:inset(100%)] [clip:rect(0_0_0_0)]',\n})\n\ntype Props<T extends ElementType> = PropsWithChildren<{\n as?: T\n}> &\n ComponentProps<T>\n\nconst ActualVisuallyHiddenText = <T extends ElementType = 'span'>({\n as: Component = 'span',\n className,\n ...props\n}: Props<T>) => {\n const actualClassName = useMemo(\n () => visuallyHiddenTextClassNameGenerator({ className }),\n [className],\n )\n\n return <Component {...props} className={`smarthr-ui-VisuallyHiddenText ${actualClassName}`} />\n}\n\nexport const VisuallyHiddenText = memo(ActualVisuallyHiddenText) as typeof ActualVisuallyHiddenText\n"],"names":["tv","_jsx"],"mappings":";;;;AAGO,MAAM,oCAAoC,GAAGA,EAAE,CAAC;AACrD,IAAA,IAAI,EAAE,4IAA4I;AACnJ,CAAA;AAOD,MAAM,wBAAwB,GAAG,CAAiC,EAChE,EAAE,EAAE,SAAS,GAAG,MAAM,EACtB,SAAS,EACT,GAAG,KAAK,EACC,KAAI;AACb,IAAA,MAAM,eAAe,GAAG,OAAO,CAC7B,MAAM,oCAAoC,CAAC,EAAE,SAAS,EAAE,CAAC,EACzD,CAAC,SAAS,CAAC,CACZ;IAED,OAAOC,GAAA,CAAC,SAAS,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAA,8BAAA,EAAiC,eAAe,CAAA,CAAE,EAAA,CAAI;AAChG,CAAC;MAEY,kBAAkB,GAAG,IAAI,CAAC,wBAAwB;;;;"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
export declare const locale: {
|
|
2
2
|
readonly 'smarthr-ui/common/language': "English";
|
|
3
3
|
readonly 'smarthr-ui/ActionDialog/closeButtonLabel': "Cancel";
|
|
4
|
-
readonly 'smarthr-ui/AppHeader/school': "School";
|
|
4
|
+
readonly 'smarthr-ui/AppHeader/school': "SmartHR School";
|
|
5
5
|
readonly 'smarthr-ui/AppHeader/help': "Help";
|
|
6
6
|
readonly 'smarthr-ui/AppHeader/userSettings': "Personal Settings";
|
|
7
|
-
readonly 'smarthr-ui/AppHeader/releaseNotes': "Release
|
|
8
|
-
readonly 'smarthr-ui/AppHeader/releaseNotesLoadError': "Failed to load release notes
|
|
9
|
-
readonly 'smarthr-ui/AppHeader/seeAllReleaseNotes': "
|
|
7
|
+
readonly 'smarthr-ui/AppHeader/releaseNotes': "Release Notes";
|
|
8
|
+
readonly 'smarthr-ui/AppHeader/releaseNotesLoadError': "Failed to load the release notes. Please try again later.";
|
|
9
|
+
readonly 'smarthr-ui/AppHeader/seeAllReleaseNotes': "View all release notes";
|
|
10
10
|
readonly 'smarthr-ui/AppHeader/DesktopHeader/appLauncherLabel': "Apps";
|
|
11
11
|
readonly 'smarthr-ui/AppHeader/MobileHeader/account': "Account";
|
|
12
12
|
readonly 'smarthr-ui/AppHeader/MobileHeader/openMenu': "Open menu";
|
|
13
13
|
readonly 'smarthr-ui/AppHeader/MobileHeader/closeMenu': "Close menu";
|
|
14
|
-
readonly 'smarthr-ui/AppHeader/MobileHeader/allAppButton': "All
|
|
14
|
+
readonly 'smarthr-ui/AppHeader/MobileHeader/allAppButton': "All Apps";
|
|
15
15
|
readonly 'smarthr-ui/AppHeader/MobileHeader/managementMenu': "Admin Menu";
|
|
16
|
-
readonly 'smarthr-ui/AppHeader/MobileHeader/latestReleaseNotes': "Latest
|
|
16
|
+
readonly 'smarthr-ui/AppHeader/MobileHeader/latestReleaseNotes': "Latest Release Notes";
|
|
17
17
|
readonly 'smarthr-ui/AppHeader/MobileHeader/back': "Back";
|
|
18
|
-
readonly 'smarthr-ui/AppHeader/MobileHeader/openMenuAccordion': "
|
|
19
|
-
readonly 'smarthr-ui/AppHeader/MobileHeader/closeMenuAccordion': "
|
|
20
|
-
readonly 'smarthr-ui/AppHeader/Launcher/searchInputTitle': "
|
|
18
|
+
readonly 'smarthr-ui/AppHeader/MobileHeader/openMenuAccordion': "Open";
|
|
19
|
+
readonly 'smarthr-ui/AppHeader/MobileHeader/closeMenuAccordion': "Close";
|
|
20
|
+
readonly 'smarthr-ui/AppHeader/Launcher/searchInputTitle': "Enter the name of the App.";
|
|
21
21
|
readonly 'smarthr-ui/AppHeader/Launcher/favoriteModeText': "Favorite Apps";
|
|
22
22
|
readonly 'smarthr-ui/AppHeader/Launcher/allModeText': "All Apps";
|
|
23
23
|
readonly 'smarthr-ui/AppHeader/Launcher/listText': "App List";
|
|
24
|
-
readonly 'smarthr-ui/AppHeader/Launcher/helpText': "";
|
|
24
|
+
readonly 'smarthr-ui/AppHeader/Launcher/helpText': "About Favorite Apps";
|
|
25
25
|
readonly 'smarthr-ui/AppHeader/Launcher/searchResultText': "Search results";
|
|
26
26
|
readonly 'smarthr-ui/AppHeader/Launcher/emptyText': "App not found.";
|
|
27
27
|
readonly 'smarthr-ui/AppHeader/Launcher/sortDropdownLabel': "Sort by";
|
|
@@ -29,72 +29,72 @@ export declare const locale: {
|
|
|
29
29
|
readonly 'smarthr-ui/AppHeader/Launcher/sortDropdownOrderDefault': "Default order";
|
|
30
30
|
readonly 'smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameAsc': "App name (A→Z)";
|
|
31
31
|
readonly 'smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameDesc': "App name (Z→A)";
|
|
32
|
-
readonly 'smarthr-ui/AppLauncher/showAllText': "";
|
|
33
|
-
readonly 'smarthr-ui/AppLauncher/triggerLabel': "";
|
|
34
|
-
readonly 'smarthr-ui/Browser/notFoundDescription': "";
|
|
35
|
-
readonly 'smarthr-ui/Browser/notFoundTitle': "";
|
|
36
|
-
readonly 'smarthr-ui/Button/loading': "In
|
|
32
|
+
readonly 'smarthr-ui/AppLauncher/showAllText': "View all";
|
|
33
|
+
readonly 'smarthr-ui/AppLauncher/triggerLabel': "Apps";
|
|
34
|
+
readonly 'smarthr-ui/Browser/notFoundDescription': "Try changing the filter criteria.";
|
|
35
|
+
readonly 'smarthr-ui/Browser/notFoundTitle': "No items found.";
|
|
36
|
+
readonly 'smarthr-ui/Button/loading': "In Progress";
|
|
37
37
|
readonly 'smarthr-ui/Calendar/currentYear': "Current year";
|
|
38
38
|
readonly 'smarthr-ui/Calendar/nextMonth': "Next month";
|
|
39
39
|
readonly 'smarthr-ui/Calendar/previousMonth': "Previous month";
|
|
40
40
|
readonly 'smarthr-ui/Calendar/selectYear': "Select year";
|
|
41
|
-
readonly 'smarthr-ui/Combobox/addItemButtonLabel': "";
|
|
42
|
-
readonly 'smarthr-ui/Combobox/loadingText': "";
|
|
43
|
-
readonly 'smarthr-ui/Combobox/noResultsText': "No matching
|
|
44
|
-
readonly 'smarthr-ui/DropdownMenuButton/triggerActive': "";
|
|
45
|
-
readonly 'smarthr-ui/DropdownMenuButton/triggerInactive': "";
|
|
46
|
-
readonly 'smarthr-ui/DropZone/selectButtonLabel': "";
|
|
47
|
-
readonly 'smarthr-ui/FileViewer/rotateAlt': "";
|
|
48
|
-
readonly 'smarthr-ui/FileViewer/scaleDownAlt': "";
|
|
49
|
-
readonly 'smarthr-ui/FileViewer/scaleRateLabel': "";
|
|
50
|
-
readonly 'smarthr-ui/FileViewer/scaleUpAlt': "";
|
|
51
|
-
readonly 'smarthr-ui/FileViewer/unsupportedFileText': "";
|
|
52
|
-
readonly 'smarthr-ui/FilterDropdown/applyButton': "";
|
|
53
|
-
readonly 'smarthr-ui/FilterDropdown/cancelButton': "";
|
|
54
|
-
readonly 'smarthr-ui/FilterDropdown/resetButton': "";
|
|
55
|
-
readonly 'smarthr-ui/FilterDropdown/status': "";
|
|
56
|
-
readonly 'smarthr-ui/FilterDropdown/triggerButton': "";
|
|
41
|
+
readonly 'smarthr-ui/Combobox/addItemButtonLabel': "Add “{name}”";
|
|
42
|
+
readonly 'smarthr-ui/Combobox/loadingText': "In Progress";
|
|
43
|
+
readonly 'smarthr-ui/Combobox/noResultsText': "No matching results found.";
|
|
44
|
+
readonly 'smarthr-ui/DropdownMenuButton/triggerActive': "Hide options";
|
|
45
|
+
readonly 'smarthr-ui/DropdownMenuButton/triggerInactive': "Show options";
|
|
46
|
+
readonly 'smarthr-ui/DropZone/selectButtonLabel': "Choose file to upload";
|
|
47
|
+
readonly 'smarthr-ui/FileViewer/rotateAlt': "Rotate Left";
|
|
48
|
+
readonly 'smarthr-ui/FileViewer/scaleDownAlt': "Zoom Out";
|
|
49
|
+
readonly 'smarthr-ui/FileViewer/scaleRateLabel': "Zoom Factor (%)";
|
|
50
|
+
readonly 'smarthr-ui/FileViewer/scaleUpAlt': "Zoom In";
|
|
51
|
+
readonly 'smarthr-ui/FileViewer/unsupportedFileText': "Unsupported file format.";
|
|
52
|
+
readonly 'smarthr-ui/FilterDropdown/applyButton': "Apply";
|
|
53
|
+
readonly 'smarthr-ui/FilterDropdown/cancelButton': "Cancel";
|
|
54
|
+
readonly 'smarthr-ui/FilterDropdown/resetButton': "Clear filters";
|
|
55
|
+
readonly 'smarthr-ui/FilterDropdown/status': "Filters applied";
|
|
56
|
+
readonly 'smarthr-ui/FilterDropdown/triggerButton': "Filter";
|
|
57
57
|
readonly 'smarthr-ui/FormDialog/closeButtonLabel': "Cancel";
|
|
58
|
-
readonly 'smarthr-ui/InformationPanel/closeButtonLabel': "";
|
|
59
|
-
readonly 'smarthr-ui/InformationPanel/openButtonLabel': "";
|
|
60
|
-
readonly 'smarthr-ui/InputFile/destroy': "";
|
|
61
|
-
readonly 'smarthr-ui/LanguageSwitcher/checkIconAlt': "";
|
|
62
|
-
readonly 'smarthr-ui/Loader/alt': "";
|
|
63
|
-
readonly 'smarthr-ui/MessageDialog/closeButtonLabel': "";
|
|
64
|
-
readonly 'smarthr-ui/ModelessDialog/closeButtonIconAlt': "";
|
|
65
|
-
readonly 'smarthr-ui/ModelessDialog/dialogHandlerAriaLabel': "";
|
|
66
|
-
readonly 'smarthr-ui/ModelessDialog/dialogHandlerAriaValuetext': "";
|
|
67
|
-
readonly 'smarthr-ui/MultiCombobox/destroyButtonIconAltSuffix': "";
|
|
68
|
-
readonly 'smarthr-ui/MultiCombobox/selectedListAriaLabel': "";
|
|
69
|
-
readonly 'smarthr-ui/NotificationBar/closeButtonIconAlt': "";
|
|
70
|
-
readonly 'smarthr-ui/Pagination/controllerItemButtonFirstLabel': "";
|
|
71
|
-
readonly 'smarthr-ui/Pagination/controllerItemButtonLastLabel': "";
|
|
72
|
-
readonly 'smarthr-ui/Pagination/controllerItemButtonNextLabel': "";
|
|
73
|
-
readonly 'smarthr-ui/Pagination/controllerItemButtonPreviousLabel': "";
|
|
74
|
-
readonly 'smarthr-ui/Pagination/itemButtonLabel': "";
|
|
75
|
-
readonly 'smarthr-ui/Pagination/navigationLabel': "";
|
|
58
|
+
readonly 'smarthr-ui/InformationPanel/closeButtonLabel': "Close";
|
|
59
|
+
readonly 'smarthr-ui/InformationPanel/openButtonLabel': "Open";
|
|
60
|
+
readonly 'smarthr-ui/InputFile/destroy': "Delete";
|
|
61
|
+
readonly 'smarthr-ui/LanguageSwitcher/checkIconAlt': "Selected";
|
|
62
|
+
readonly 'smarthr-ui/Loader/alt': "In Progress";
|
|
63
|
+
readonly 'smarthr-ui/MessageDialog/closeButtonLabel': "Close";
|
|
64
|
+
readonly 'smarthr-ui/ModelessDialog/closeButtonIconAlt': "Close";
|
|
65
|
+
readonly 'smarthr-ui/ModelessDialog/dialogHandlerAriaLabel': "Dialog position";
|
|
66
|
+
readonly 'smarthr-ui/ModelessDialog/dialogHandlerAriaValuetext': "{top}px from top, {left}px from left";
|
|
67
|
+
readonly 'smarthr-ui/MultiCombobox/destroyButtonIconAltSuffix': ": remove";
|
|
68
|
+
readonly 'smarthr-ui/MultiCombobox/selectedListAriaLabel': "Selected items";
|
|
69
|
+
readonly 'smarthr-ui/NotificationBar/closeButtonIconAlt': "Close";
|
|
70
|
+
readonly 'smarthr-ui/Pagination/controllerItemButtonFirstLabel': "First";
|
|
71
|
+
readonly 'smarthr-ui/Pagination/controllerItemButtonLastLabel': "Last";
|
|
72
|
+
readonly 'smarthr-ui/Pagination/controllerItemButtonNextLabel': "Next";
|
|
73
|
+
readonly 'smarthr-ui/Pagination/controllerItemButtonPreviousLabel': "Previous";
|
|
74
|
+
readonly 'smarthr-ui/Pagination/itemButtonLabel': "Page {page}";
|
|
75
|
+
readonly 'smarthr-ui/Pagination/navigationLabel': "Pagination";
|
|
76
76
|
readonly 'smarthr-ui/RequiredLabel/text': "Required";
|
|
77
|
-
readonly 'smarthr-ui/SearchInput/iconAlt': "";
|
|
78
|
-
readonly 'smarthr-ui/Select/blankLabel': "";
|
|
79
|
-
readonly 'smarthr-ui/SingleCombobox/destroyButtonIconAlt': "";
|
|
80
|
-
readonly 'smarthr-ui/SortDropdown/applyButtonLabel': "";
|
|
81
|
-
readonly 'smarthr-ui/SortDropdown/ascLabel': "";
|
|
82
|
-
readonly 'smarthr-ui/SortDropdown/cancelButtonLabel': "";
|
|
83
|
-
readonly 'smarthr-ui/SortDropdown/descLabel': "";
|
|
84
|
-
readonly 'smarthr-ui/SortDropdown/sortFieldLabel': "";
|
|
85
|
-
readonly 'smarthr-ui/SortDropdown/sortOrderLabel': "";
|
|
86
|
-
readonly 'smarthr-ui/StepFormDialog/backButtonLabel': "";
|
|
87
|
-
readonly 'smarthr-ui/StepFormDialog/closeButtonLabel': "";
|
|
88
|
-
readonly 'smarthr-ui/StepFormDialog/nextButtonLabel': "";
|
|
89
|
-
readonly 'smarthr-ui/StepStatusIcon/closedAlt': "";
|
|
90
|
-
readonly 'smarthr-ui/StepStatusIcon/completedAlt': "";
|
|
91
|
-
readonly 'smarthr-ui/Textarea/availableLetters': "";
|
|
92
|
-
readonly 'smarthr-ui/Textarea/maxLettersExceeded': "";
|
|
93
|
-
readonly 'smarthr-ui/Textarea/screenReaderMaxLettersDescription': "";
|
|
77
|
+
readonly 'smarthr-ui/SearchInput/iconAlt': "Search";
|
|
78
|
+
readonly 'smarthr-ui/Select/blankLabel': "Select";
|
|
79
|
+
readonly 'smarthr-ui/SingleCombobox/destroyButtonIconAlt': "Delete";
|
|
80
|
+
readonly 'smarthr-ui/SortDropdown/applyButtonLabel': "Apply";
|
|
81
|
+
readonly 'smarthr-ui/SortDropdown/ascLabel': "Ascending";
|
|
82
|
+
readonly 'smarthr-ui/SortDropdown/cancelButtonLabel': "Cancel";
|
|
83
|
+
readonly 'smarthr-ui/SortDropdown/descLabel': "Descending";
|
|
84
|
+
readonly 'smarthr-ui/SortDropdown/sortFieldLabel': "Sort items";
|
|
85
|
+
readonly 'smarthr-ui/SortDropdown/sortOrderLabel': "Order";
|
|
86
|
+
readonly 'smarthr-ui/StepFormDialog/backButtonLabel': "Back";
|
|
87
|
+
readonly 'smarthr-ui/StepFormDialog/closeButtonLabel': "Cancel";
|
|
88
|
+
readonly 'smarthr-ui/StepFormDialog/nextButtonLabel': "Next";
|
|
89
|
+
readonly 'smarthr-ui/StepStatusIcon/closedAlt': "Interrupted";
|
|
90
|
+
readonly 'smarthr-ui/StepStatusIcon/completedAlt': "Completed";
|
|
91
|
+
readonly 'smarthr-ui/Textarea/availableLetters': "{availableLetters} characters left";
|
|
92
|
+
readonly 'smarthr-ui/Textarea/maxLettersExceeded': "{exceededLetters} characters over limit";
|
|
93
|
+
readonly 'smarthr-ui/Textarea/screenReaderMaxLettersDescription': "Maximum {maxLetters} characters";
|
|
94
94
|
readonly 'smarthr-ui/TextLink/openInNewTab': "Open in another tab";
|
|
95
|
-
readonly 'smarthr-ui/Th/sortDirectionAsc': "";
|
|
96
|
-
readonly 'smarthr-ui/Th/sortDirectionDesc': "";
|
|
97
|
-
readonly 'smarthr-ui/Th/sortDirectionNone': "";
|
|
98
|
-
readonly 'smarthr-ui/ThCheckbox/checkAllInvisibleLabel': "";
|
|
99
|
-
readonly 'smarthr-ui/ThCheckbox/checkColumnName': "";
|
|
95
|
+
readonly 'smarthr-ui/Th/sortDirectionAsc': "Ascending";
|
|
96
|
+
readonly 'smarthr-ui/Th/sortDirectionDesc': "Descending";
|
|
97
|
+
readonly 'smarthr-ui/Th/sortDirectionNone': "No sorting";
|
|
98
|
+
readonly 'smarthr-ui/ThCheckbox/checkAllInvisibleLabel': "Select/Deselect All";
|
|
99
|
+
readonly 'smarthr-ui/ThCheckbox/checkColumnName': "Select";
|
|
100
100
|
};
|
|
@@ -3,27 +3,27 @@
|
|
|
3
3
|
const locale = {
|
|
4
4
|
'smarthr-ui/common/language': 'English',
|
|
5
5
|
'smarthr-ui/ActionDialog/closeButtonLabel': 'Cancel',
|
|
6
|
-
'smarthr-ui/AppHeader/school': 'School',
|
|
6
|
+
'smarthr-ui/AppHeader/school': 'SmartHR School',
|
|
7
7
|
'smarthr-ui/AppHeader/help': 'Help',
|
|
8
8
|
'smarthr-ui/AppHeader/userSettings': 'Personal Settings',
|
|
9
|
-
'smarthr-ui/AppHeader/releaseNotes': 'Release
|
|
10
|
-
'smarthr-ui/AppHeader/releaseNotesLoadError': 'Failed to load release notes
|
|
11
|
-
'smarthr-ui/AppHeader/seeAllReleaseNotes': '
|
|
9
|
+
'smarthr-ui/AppHeader/releaseNotes': 'Release Notes',
|
|
10
|
+
'smarthr-ui/AppHeader/releaseNotesLoadError': 'Failed to load the release notes. Please try again later.',
|
|
11
|
+
'smarthr-ui/AppHeader/seeAllReleaseNotes': 'View all release notes',
|
|
12
12
|
'smarthr-ui/AppHeader/DesktopHeader/appLauncherLabel': 'Apps',
|
|
13
13
|
'smarthr-ui/AppHeader/MobileHeader/account': 'Account',
|
|
14
14
|
'smarthr-ui/AppHeader/MobileHeader/openMenu': 'Open menu',
|
|
15
15
|
'smarthr-ui/AppHeader/MobileHeader/closeMenu': 'Close menu',
|
|
16
|
-
'smarthr-ui/AppHeader/MobileHeader/allAppButton': 'All
|
|
16
|
+
'smarthr-ui/AppHeader/MobileHeader/allAppButton': 'All Apps',
|
|
17
17
|
'smarthr-ui/AppHeader/MobileHeader/managementMenu': 'Admin Menu',
|
|
18
|
-
'smarthr-ui/AppHeader/MobileHeader/latestReleaseNotes': 'Latest
|
|
18
|
+
'smarthr-ui/AppHeader/MobileHeader/latestReleaseNotes': 'Latest Release Notes',
|
|
19
19
|
'smarthr-ui/AppHeader/MobileHeader/back': 'Back',
|
|
20
|
-
'smarthr-ui/AppHeader/MobileHeader/openMenuAccordion': '
|
|
21
|
-
'smarthr-ui/AppHeader/MobileHeader/closeMenuAccordion': '
|
|
22
|
-
'smarthr-ui/AppHeader/Launcher/searchInputTitle': '
|
|
20
|
+
'smarthr-ui/AppHeader/MobileHeader/openMenuAccordion': 'Open',
|
|
21
|
+
'smarthr-ui/AppHeader/MobileHeader/closeMenuAccordion': 'Close',
|
|
22
|
+
'smarthr-ui/AppHeader/Launcher/searchInputTitle': 'Enter the name of the App.',
|
|
23
23
|
'smarthr-ui/AppHeader/Launcher/favoriteModeText': 'Favorite Apps',
|
|
24
24
|
'smarthr-ui/AppHeader/Launcher/allModeText': 'All Apps',
|
|
25
25
|
'smarthr-ui/AppHeader/Launcher/listText': 'App List',
|
|
26
|
-
'smarthr-ui/AppHeader/Launcher/helpText': '',
|
|
26
|
+
'smarthr-ui/AppHeader/Launcher/helpText': 'About Favorite Apps',
|
|
27
27
|
'smarthr-ui/AppHeader/Launcher/searchResultText': 'Search results',
|
|
28
28
|
'smarthr-ui/AppHeader/Launcher/emptyText': 'App not found.',
|
|
29
29
|
'smarthr-ui/AppHeader/Launcher/sortDropdownLabel': 'Sort by',
|
|
@@ -31,74 +31,74 @@ const locale = {
|
|
|
31
31
|
'smarthr-ui/AppHeader/Launcher/sortDropdownOrderDefault': 'Default order',
|
|
32
32
|
'smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameAsc': 'App name (A→Z)',
|
|
33
33
|
'smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameDesc': 'App name (Z→A)',
|
|
34
|
-
'smarthr-ui/AppLauncher/showAllText': '',
|
|
35
|
-
'smarthr-ui/AppLauncher/triggerLabel': '',
|
|
36
|
-
'smarthr-ui/Browser/notFoundDescription': '',
|
|
37
|
-
'smarthr-ui/Browser/notFoundTitle': '',
|
|
38
|
-
'smarthr-ui/Button/loading': 'In
|
|
34
|
+
'smarthr-ui/AppLauncher/showAllText': 'View all',
|
|
35
|
+
'smarthr-ui/AppLauncher/triggerLabel': 'Apps',
|
|
36
|
+
'smarthr-ui/Browser/notFoundDescription': 'Try changing the filter criteria.',
|
|
37
|
+
'smarthr-ui/Browser/notFoundTitle': 'No items found.',
|
|
38
|
+
'smarthr-ui/Button/loading': 'In Progress',
|
|
39
39
|
'smarthr-ui/Calendar/currentYear': 'Current year',
|
|
40
40
|
'smarthr-ui/Calendar/nextMonth': 'Next month',
|
|
41
41
|
'smarthr-ui/Calendar/previousMonth': 'Previous month',
|
|
42
42
|
'smarthr-ui/Calendar/selectYear': 'Select year',
|
|
43
|
-
'smarthr-ui/Combobox/addItemButtonLabel': '',
|
|
44
|
-
'smarthr-ui/Combobox/loadingText': '',
|
|
45
|
-
'smarthr-ui/Combobox/noResultsText': 'No matching
|
|
46
|
-
'smarthr-ui/DropdownMenuButton/triggerActive': '',
|
|
47
|
-
'smarthr-ui/DropdownMenuButton/triggerInactive': '',
|
|
48
|
-
'smarthr-ui/DropZone/selectButtonLabel': '',
|
|
49
|
-
'smarthr-ui/FileViewer/rotateAlt': '',
|
|
50
|
-
'smarthr-ui/FileViewer/scaleDownAlt': '',
|
|
51
|
-
'smarthr-ui/FileViewer/scaleRateLabel': '',
|
|
52
|
-
'smarthr-ui/FileViewer/scaleUpAlt': '',
|
|
53
|
-
'smarthr-ui/FileViewer/unsupportedFileText': '',
|
|
54
|
-
'smarthr-ui/FilterDropdown/applyButton': '',
|
|
55
|
-
'smarthr-ui/FilterDropdown/cancelButton': '',
|
|
56
|
-
'smarthr-ui/FilterDropdown/resetButton': '',
|
|
57
|
-
'smarthr-ui/FilterDropdown/status': '',
|
|
58
|
-
'smarthr-ui/FilterDropdown/triggerButton': '',
|
|
43
|
+
'smarthr-ui/Combobox/addItemButtonLabel': 'Add “{name}”',
|
|
44
|
+
'smarthr-ui/Combobox/loadingText': 'In Progress',
|
|
45
|
+
'smarthr-ui/Combobox/noResultsText': 'No matching results found.',
|
|
46
|
+
'smarthr-ui/DropdownMenuButton/triggerActive': 'Hide options',
|
|
47
|
+
'smarthr-ui/DropdownMenuButton/triggerInactive': 'Show options',
|
|
48
|
+
'smarthr-ui/DropZone/selectButtonLabel': 'Choose file to upload',
|
|
49
|
+
'smarthr-ui/FileViewer/rotateAlt': 'Rotate Left',
|
|
50
|
+
'smarthr-ui/FileViewer/scaleDownAlt': 'Zoom Out',
|
|
51
|
+
'smarthr-ui/FileViewer/scaleRateLabel': 'Zoom Factor (%)',
|
|
52
|
+
'smarthr-ui/FileViewer/scaleUpAlt': 'Zoom In',
|
|
53
|
+
'smarthr-ui/FileViewer/unsupportedFileText': 'Unsupported file format.',
|
|
54
|
+
'smarthr-ui/FilterDropdown/applyButton': 'Apply',
|
|
55
|
+
'smarthr-ui/FilterDropdown/cancelButton': 'Cancel',
|
|
56
|
+
'smarthr-ui/FilterDropdown/resetButton': 'Clear filters',
|
|
57
|
+
'smarthr-ui/FilterDropdown/status': 'Filters applied',
|
|
58
|
+
'smarthr-ui/FilterDropdown/triggerButton': 'Filter',
|
|
59
59
|
'smarthr-ui/FormDialog/closeButtonLabel': 'Cancel',
|
|
60
|
-
'smarthr-ui/InformationPanel/closeButtonLabel': '',
|
|
61
|
-
'smarthr-ui/InformationPanel/openButtonLabel': '',
|
|
62
|
-
'smarthr-ui/InputFile/destroy': '',
|
|
63
|
-
'smarthr-ui/LanguageSwitcher/checkIconAlt': '',
|
|
64
|
-
'smarthr-ui/Loader/alt': '',
|
|
65
|
-
'smarthr-ui/MessageDialog/closeButtonLabel': '',
|
|
66
|
-
'smarthr-ui/ModelessDialog/closeButtonIconAlt': '',
|
|
67
|
-
'smarthr-ui/ModelessDialog/dialogHandlerAriaLabel': '',
|
|
68
|
-
'smarthr-ui/ModelessDialog/dialogHandlerAriaValuetext': '',
|
|
69
|
-
'smarthr-ui/MultiCombobox/destroyButtonIconAltSuffix': '',
|
|
70
|
-
'smarthr-ui/MultiCombobox/selectedListAriaLabel': '',
|
|
71
|
-
'smarthr-ui/NotificationBar/closeButtonIconAlt': '',
|
|
72
|
-
'smarthr-ui/Pagination/controllerItemButtonFirstLabel': '',
|
|
73
|
-
'smarthr-ui/Pagination/controllerItemButtonLastLabel': '',
|
|
74
|
-
'smarthr-ui/Pagination/controllerItemButtonNextLabel': '',
|
|
75
|
-
'smarthr-ui/Pagination/controllerItemButtonPreviousLabel': '',
|
|
76
|
-
'smarthr-ui/Pagination/itemButtonLabel': '',
|
|
77
|
-
'smarthr-ui/Pagination/navigationLabel': '',
|
|
60
|
+
'smarthr-ui/InformationPanel/closeButtonLabel': 'Close',
|
|
61
|
+
'smarthr-ui/InformationPanel/openButtonLabel': 'Open',
|
|
62
|
+
'smarthr-ui/InputFile/destroy': 'Delete',
|
|
63
|
+
'smarthr-ui/LanguageSwitcher/checkIconAlt': 'Selected',
|
|
64
|
+
'smarthr-ui/Loader/alt': 'In Progress',
|
|
65
|
+
'smarthr-ui/MessageDialog/closeButtonLabel': 'Close',
|
|
66
|
+
'smarthr-ui/ModelessDialog/closeButtonIconAlt': 'Close',
|
|
67
|
+
'smarthr-ui/ModelessDialog/dialogHandlerAriaLabel': 'Dialog position',
|
|
68
|
+
'smarthr-ui/ModelessDialog/dialogHandlerAriaValuetext': '{top}px from top, {left}px from left',
|
|
69
|
+
'smarthr-ui/MultiCombobox/destroyButtonIconAltSuffix': ': remove',
|
|
70
|
+
'smarthr-ui/MultiCombobox/selectedListAriaLabel': 'Selected items',
|
|
71
|
+
'smarthr-ui/NotificationBar/closeButtonIconAlt': 'Close',
|
|
72
|
+
'smarthr-ui/Pagination/controllerItemButtonFirstLabel': 'First',
|
|
73
|
+
'smarthr-ui/Pagination/controllerItemButtonLastLabel': 'Last',
|
|
74
|
+
'smarthr-ui/Pagination/controllerItemButtonNextLabel': 'Next',
|
|
75
|
+
'smarthr-ui/Pagination/controllerItemButtonPreviousLabel': 'Previous',
|
|
76
|
+
'smarthr-ui/Pagination/itemButtonLabel': 'Page {page}',
|
|
77
|
+
'smarthr-ui/Pagination/navigationLabel': 'Pagination',
|
|
78
78
|
'smarthr-ui/RequiredLabel/text': 'Required',
|
|
79
|
-
'smarthr-ui/SearchInput/iconAlt': '',
|
|
80
|
-
'smarthr-ui/Select/blankLabel': '',
|
|
81
|
-
'smarthr-ui/SingleCombobox/destroyButtonIconAlt': '',
|
|
82
|
-
'smarthr-ui/SortDropdown/applyButtonLabel': '',
|
|
83
|
-
'smarthr-ui/SortDropdown/ascLabel': '',
|
|
84
|
-
'smarthr-ui/SortDropdown/cancelButtonLabel': '',
|
|
85
|
-
'smarthr-ui/SortDropdown/descLabel': '',
|
|
86
|
-
'smarthr-ui/SortDropdown/sortFieldLabel': '',
|
|
87
|
-
'smarthr-ui/SortDropdown/sortOrderLabel': '',
|
|
88
|
-
'smarthr-ui/StepFormDialog/backButtonLabel': '',
|
|
89
|
-
'smarthr-ui/StepFormDialog/closeButtonLabel': '',
|
|
90
|
-
'smarthr-ui/StepFormDialog/nextButtonLabel': '',
|
|
91
|
-
'smarthr-ui/StepStatusIcon/closedAlt': '',
|
|
92
|
-
'smarthr-ui/StepStatusIcon/completedAlt': '',
|
|
93
|
-
'smarthr-ui/Textarea/availableLetters': '',
|
|
94
|
-
'smarthr-ui/Textarea/maxLettersExceeded': '',
|
|
95
|
-
'smarthr-ui/Textarea/screenReaderMaxLettersDescription': '',
|
|
79
|
+
'smarthr-ui/SearchInput/iconAlt': 'Search',
|
|
80
|
+
'smarthr-ui/Select/blankLabel': 'Select',
|
|
81
|
+
'smarthr-ui/SingleCombobox/destroyButtonIconAlt': 'Delete',
|
|
82
|
+
'smarthr-ui/SortDropdown/applyButtonLabel': 'Apply',
|
|
83
|
+
'smarthr-ui/SortDropdown/ascLabel': 'Ascending',
|
|
84
|
+
'smarthr-ui/SortDropdown/cancelButtonLabel': 'Cancel',
|
|
85
|
+
'smarthr-ui/SortDropdown/descLabel': 'Descending',
|
|
86
|
+
'smarthr-ui/SortDropdown/sortFieldLabel': 'Sort items',
|
|
87
|
+
'smarthr-ui/SortDropdown/sortOrderLabel': 'Order',
|
|
88
|
+
'smarthr-ui/StepFormDialog/backButtonLabel': 'Back',
|
|
89
|
+
'smarthr-ui/StepFormDialog/closeButtonLabel': 'Cancel',
|
|
90
|
+
'smarthr-ui/StepFormDialog/nextButtonLabel': 'Next',
|
|
91
|
+
'smarthr-ui/StepStatusIcon/closedAlt': 'Interrupted',
|
|
92
|
+
'smarthr-ui/StepStatusIcon/completedAlt': 'Completed',
|
|
93
|
+
'smarthr-ui/Textarea/availableLetters': '{availableLetters} characters left',
|
|
94
|
+
'smarthr-ui/Textarea/maxLettersExceeded': '{exceededLetters} characters over limit',
|
|
95
|
+
'smarthr-ui/Textarea/screenReaderMaxLettersDescription': 'Maximum {maxLetters} characters',
|
|
96
96
|
'smarthr-ui/TextLink/openInNewTab': 'Open in another tab',
|
|
97
|
-
'smarthr-ui/Th/sortDirectionAsc': '',
|
|
98
|
-
'smarthr-ui/Th/sortDirectionDesc': '',
|
|
99
|
-
'smarthr-ui/Th/sortDirectionNone': '',
|
|
100
|
-
'smarthr-ui/ThCheckbox/checkAllInvisibleLabel': '',
|
|
101
|
-
'smarthr-ui/ThCheckbox/checkColumnName': '',
|
|
97
|
+
'smarthr-ui/Th/sortDirectionAsc': 'Ascending',
|
|
98
|
+
'smarthr-ui/Th/sortDirectionDesc': 'Descending',
|
|
99
|
+
'smarthr-ui/Th/sortDirectionNone': 'No sorting',
|
|
100
|
+
'smarthr-ui/ThCheckbox/checkAllInvisibleLabel': 'Select/Deselect All',
|
|
101
|
+
'smarthr-ui/ThCheckbox/checkColumnName': 'Select',
|
|
102
102
|
};
|
|
103
103
|
|
|
104
104
|
export { locale };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en_us.js","sources":["../../../src/intl/locales/en_us.ts"],"sourcesContent":["import type { ja } from '.'\n\n// キーと値の間に改行が入ると翻訳システムと連携できなくなるため、prettier-ignoreしている\n// prettier-ignore\nexport const locale = {\n 'smarthr-ui/common/language': 'English',\n 'smarthr-ui/ActionDialog/closeButtonLabel': 'Cancel',\n 'smarthr-ui/AppHeader/school': 'School',\n 'smarthr-ui/AppHeader/help': 'Help',\n 'smarthr-ui/AppHeader/userSettings': 'Personal Settings',\n 'smarthr-ui/AppHeader/releaseNotes': 'Release
|
|
1
|
+
{"version":3,"file":"en_us.js","sources":["../../../src/intl/locales/en_us.ts"],"sourcesContent":["import type { ja } from '.'\n\n// キーと値の間に改行が入ると翻訳システムと連携できなくなるため、prettier-ignoreしている\n// prettier-ignore\nexport const locale = {\n 'smarthr-ui/common/language': 'English',\n 'smarthr-ui/ActionDialog/closeButtonLabel': 'Cancel',\n 'smarthr-ui/AppHeader/school': 'SmartHR School',\n 'smarthr-ui/AppHeader/help': 'Help',\n 'smarthr-ui/AppHeader/userSettings': 'Personal Settings',\n 'smarthr-ui/AppHeader/releaseNotes': 'Release Notes',\n 'smarthr-ui/AppHeader/releaseNotesLoadError': 'Failed to load the release notes. Please try again later.',\n 'smarthr-ui/AppHeader/seeAllReleaseNotes': 'View all release notes',\n 'smarthr-ui/AppHeader/DesktopHeader/appLauncherLabel': 'Apps',\n 'smarthr-ui/AppHeader/MobileHeader/account': 'Account',\n 'smarthr-ui/AppHeader/MobileHeader/openMenu': 'Open menu',\n 'smarthr-ui/AppHeader/MobileHeader/closeMenu': 'Close menu',\n 'smarthr-ui/AppHeader/MobileHeader/allAppButton': 'All Apps',\n 'smarthr-ui/AppHeader/MobileHeader/managementMenu': 'Admin Menu',\n 'smarthr-ui/AppHeader/MobileHeader/latestReleaseNotes': 'Latest Release Notes',\n 'smarthr-ui/AppHeader/MobileHeader/back': 'Back',\n 'smarthr-ui/AppHeader/MobileHeader/openMenuAccordion': 'Open',\n 'smarthr-ui/AppHeader/MobileHeader/closeMenuAccordion': 'Close',\n 'smarthr-ui/AppHeader/Launcher/searchInputTitle': 'Enter the name of the App.',\n 'smarthr-ui/AppHeader/Launcher/favoriteModeText': 'Favorite Apps',\n 'smarthr-ui/AppHeader/Launcher/allModeText': 'All Apps',\n 'smarthr-ui/AppHeader/Launcher/listText': 'App List',\n 'smarthr-ui/AppHeader/Launcher/helpText': 'About Favorite Apps',\n 'smarthr-ui/AppHeader/Launcher/searchResultText': 'Search results',\n 'smarthr-ui/AppHeader/Launcher/emptyText': 'App not found.',\n 'smarthr-ui/AppHeader/Launcher/sortDropdownLabel': 'Sort by',\n 'smarthr-ui/AppHeader/Launcher/sortDropdownSelected': 'Selected',\n 'smarthr-ui/AppHeader/Launcher/sortDropdownOrderDefault': 'Default order',\n 'smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameAsc': 'App name (A→Z)',\n 'smarthr-ui/AppHeader/Launcher/sortDropdownOrderNameDesc': 'App name (Z→A)',\n 'smarthr-ui/AppLauncher/showAllText': 'View all',\n 'smarthr-ui/AppLauncher/triggerLabel': 'Apps',\n 'smarthr-ui/Browser/notFoundDescription': 'Try changing the filter criteria.',\n 'smarthr-ui/Browser/notFoundTitle': 'No items found.',\n 'smarthr-ui/Button/loading': 'In Progress',\n 'smarthr-ui/Calendar/currentYear': 'Current year',\n 'smarthr-ui/Calendar/nextMonth': 'Next month',\n 'smarthr-ui/Calendar/previousMonth': 'Previous month',\n 'smarthr-ui/Calendar/selectYear': 'Select year',\n 'smarthr-ui/Combobox/addItemButtonLabel': 'Add “{name}”',\n 'smarthr-ui/Combobox/loadingText': 'In Progress',\n 'smarthr-ui/Combobox/noResultsText': 'No matching results found.',\n 'smarthr-ui/DropdownMenuButton/triggerActive': 'Hide options',\n 'smarthr-ui/DropdownMenuButton/triggerInactive': 'Show options',\n 'smarthr-ui/DropZone/selectButtonLabel': 'Choose file to upload',\n 'smarthr-ui/FileViewer/rotateAlt': 'Rotate Left',\n 'smarthr-ui/FileViewer/scaleDownAlt': 'Zoom Out',\n 'smarthr-ui/FileViewer/scaleRateLabel': 'Zoom Factor (%)',\n 'smarthr-ui/FileViewer/scaleUpAlt': 'Zoom In',\n 'smarthr-ui/FileViewer/unsupportedFileText': 'Unsupported file format.',\n 'smarthr-ui/FilterDropdown/applyButton': 'Apply',\n 'smarthr-ui/FilterDropdown/cancelButton': 'Cancel',\n 'smarthr-ui/FilterDropdown/resetButton': 'Clear filters',\n 'smarthr-ui/FilterDropdown/status': 'Filters applied',\n 'smarthr-ui/FilterDropdown/triggerButton': 'Filter',\n 'smarthr-ui/FormDialog/closeButtonLabel': 'Cancel',\n 'smarthr-ui/InformationPanel/closeButtonLabel': 'Close',\n 'smarthr-ui/InformationPanel/openButtonLabel': 'Open',\n 'smarthr-ui/InputFile/destroy': 'Delete',\n 'smarthr-ui/LanguageSwitcher/checkIconAlt': 'Selected',\n 'smarthr-ui/Loader/alt': 'In Progress',\n 'smarthr-ui/MessageDialog/closeButtonLabel': 'Close',\n 'smarthr-ui/ModelessDialog/closeButtonIconAlt': 'Close',\n 'smarthr-ui/ModelessDialog/dialogHandlerAriaLabel': 'Dialog position',\n 'smarthr-ui/ModelessDialog/dialogHandlerAriaValuetext': '{top}px from top, {left}px from left',\n 'smarthr-ui/MultiCombobox/destroyButtonIconAltSuffix': ': remove',\n 'smarthr-ui/MultiCombobox/selectedListAriaLabel': 'Selected items',\n 'smarthr-ui/NotificationBar/closeButtonIconAlt': 'Close',\n 'smarthr-ui/Pagination/controllerItemButtonFirstLabel': 'First',\n 'smarthr-ui/Pagination/controllerItemButtonLastLabel': 'Last',\n 'smarthr-ui/Pagination/controllerItemButtonNextLabel': 'Next',\n 'smarthr-ui/Pagination/controllerItemButtonPreviousLabel': 'Previous',\n 'smarthr-ui/Pagination/itemButtonLabel': 'Page {page}',\n 'smarthr-ui/Pagination/navigationLabel': 'Pagination',\n 'smarthr-ui/RequiredLabel/text': 'Required',\n 'smarthr-ui/SearchInput/iconAlt': 'Search',\n 'smarthr-ui/Select/blankLabel': 'Select',\n 'smarthr-ui/SingleCombobox/destroyButtonIconAlt': 'Delete',\n 'smarthr-ui/SortDropdown/applyButtonLabel': 'Apply',\n 'smarthr-ui/SortDropdown/ascLabel': 'Ascending',\n 'smarthr-ui/SortDropdown/cancelButtonLabel': 'Cancel',\n 'smarthr-ui/SortDropdown/descLabel': 'Descending',\n 'smarthr-ui/SortDropdown/sortFieldLabel': 'Sort items',\n 'smarthr-ui/SortDropdown/sortOrderLabel': 'Order',\n 'smarthr-ui/StepFormDialog/backButtonLabel': 'Back',\n 'smarthr-ui/StepFormDialog/closeButtonLabel': 'Cancel',\n 'smarthr-ui/StepFormDialog/nextButtonLabel': 'Next',\n 'smarthr-ui/StepStatusIcon/closedAlt': 'Interrupted',\n 'smarthr-ui/StepStatusIcon/completedAlt': 'Completed',\n 'smarthr-ui/Textarea/availableLetters': '{availableLetters} characters left',\n 'smarthr-ui/Textarea/maxLettersExceeded': '{exceededLetters} characters over limit',\n 'smarthr-ui/Textarea/screenReaderMaxLettersDescription': 'Maximum {maxLetters} characters',\n 'smarthr-ui/TextLink/openInNewTab': 'Open in another tab',\n 'smarthr-ui/Th/sortDirectionAsc': 'Ascending',\n 'smarthr-ui/Th/sortDirectionDesc': 'Descending',\n 'smarthr-ui/Th/sortDirectionNone': 'No sorting',\n 'smarthr-ui/ThCheckbox/checkAllInvisibleLabel': 'Select/Deselect All',\n 'smarthr-ui/ThCheckbox/checkColumnName': 'Select',\n} as const satisfies Record<keyof typeof ja, string>\n"],"names":[],"mappings":"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"}
|