smarthr-ui 96.1.0 → 96.1.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/lib/components/AppHeader/components/common/CommonButton.cjs +3 -2
- package/lib/components/AppHeader/components/common/CommonButton.cjs.map +1 -1
- package/lib/components/AppHeader/components/common/CommonButton.js +3 -2
- package/lib/components/AppHeader/components/common/CommonButton.js.map +1 -1
- package/lib/components/Base/Base.cjs +7 -1
- package/lib/components/Base/Base.cjs.map +1 -1
- package/lib/components/Base/Base.js +7 -1
- package/lib/components/Base/Base.js.map +1 -1
- package/lib/components/Base/BaseColumn/BaseColumn.cjs +7 -1
- package/lib/components/Base/BaseColumn/BaseColumn.cjs.map +1 -1
- package/lib/components/Base/BaseColumn/BaseColumn.js +7 -1
- package/lib/components/Base/BaseColumn/BaseColumn.js.map +1 -1
- package/lib/components/BottomFixedArea/BottomFixedArea.cjs +1 -3
- package/lib/components/BottomFixedArea/BottomFixedArea.cjs.map +1 -1
- package/lib/components/BottomFixedArea/BottomFixedArea.js +2 -4
- package/lib/components/BottomFixedArea/BottomFixedArea.js.map +1 -1
- package/lib/components/Button/AnchorButton.cjs +2 -7
- package/lib/components/Button/AnchorButton.cjs.map +1 -1
- package/lib/components/Button/AnchorButton.js +2 -7
- package/lib/components/Button/AnchorButton.js.map +1 -1
- package/lib/components/Button/useButtonWrapper.cjs +24 -6
- package/lib/components/Button/useButtonWrapper.cjs.map +1 -1
- package/lib/components/Button/useButtonWrapper.js +24 -6
- package/lib/components/Button/useButtonWrapper.js.map +1 -1
- package/lib/components/Combobox/MultiCombobox/MultiSelectedItem.cjs +8 -4
- package/lib/components/Combobox/MultiCombobox/MultiSelectedItem.cjs.map +1 -1
- package/lib/components/Combobox/MultiCombobox/MultiSelectedItem.js +8 -4
- package/lib/components/Combobox/MultiCombobox/MultiSelectedItem.js.map +1 -1
- package/lib/components/Dialog/DialogBody.cjs +7 -1
- package/lib/components/Dialog/DialogBody.cjs.map +1 -1
- package/lib/components/Dialog/DialogBody.js +7 -1
- package/lib/components/Dialog/DialogBody.js.map +1 -1
- package/lib/components/Dialog/DialogContentInner.cjs +7 -1
- package/lib/components/Dialog/DialogContentInner.cjs.map +1 -1
- package/lib/components/Dialog/DialogContentInner.js +7 -1
- package/lib/components/Dialog/DialogContentInner.js.map +1 -1
- package/lib/components/Dialog/DialogOverlap.cjs +22 -5
- package/lib/components/Dialog/DialogOverlap.cjs.map +1 -1
- package/lib/components/Dialog/DialogOverlap.js +23 -6
- package/lib/components/Dialog/DialogOverlap.js.map +1 -1
- package/lib/components/Dialog/ModelessDialog/ModelessDialog.cjs +7 -1
- package/lib/components/Dialog/ModelessDialog/ModelessDialog.cjs.map +1 -1
- package/lib/components/Dialog/ModelessDialog/ModelessDialog.js +7 -1
- package/lib/components/Dialog/ModelessDialog/ModelessDialog.js.map +1 -1
- package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.cjs +51 -11
- package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.cjs.map +1 -1
- package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.d.ts +3 -4
- package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.js +52 -12
- package/lib/components/Dialog/RemoteDialogTrigger/RemoteDialogTrigger.js.map +1 -1
- package/lib/components/Dropdown/Dropdown.cjs +3 -3
- package/lib/components/Dropdown/Dropdown.cjs.map +1 -1
- package/lib/components/Dropdown/Dropdown.d.ts +1 -1
- package/lib/components/Dropdown/Dropdown.js +3 -3
- package/lib/components/Dropdown/Dropdown.js.map +1 -1
- package/lib/components/Dropdown/DropdownMenuButton/DropdownMenuButton.cjs +20 -10
- package/lib/components/Dropdown/DropdownMenuButton/DropdownMenuButton.cjs.map +1 -1
- package/lib/components/Dropdown/DropdownMenuButton/DropdownMenuButton.js +21 -11
- package/lib/components/Dropdown/DropdownMenuButton/DropdownMenuButton.js.map +1 -1
- package/lib/components/Dropdown/DropdownTrigger.cjs +33 -16
- package/lib/components/Dropdown/DropdownTrigger.cjs.map +1 -1
- package/lib/components/Dropdown/DropdownTrigger.js +33 -16
- package/lib/components/Dropdown/DropdownTrigger.js.map +1 -1
- package/lib/components/Header/Header.cjs +3 -3
- package/lib/components/Header/Header.cjs.map +1 -1
- package/lib/components/Header/Header.js +3 -3
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Icon/generateIcon.cjs +9 -1
- package/lib/components/Icon/generateIcon.cjs.map +1 -1
- package/lib/components/Icon/generateIcon.js +9 -1
- package/lib/components/Icon/generateIcon.js.map +1 -1
- package/lib/components/Layout/Cluster/Cluster.cjs +4 -0
- package/lib/components/Layout/Cluster/Cluster.cjs.map +1 -1
- package/lib/components/Layout/Cluster/Cluster.d.ts +1 -1
- package/lib/components/Layout/Cluster/Cluster.js +4 -0
- package/lib/components/Layout/Cluster/Cluster.js.map +1 -1
- package/lib/components/Layout/Container/Container.cjs +2 -2
- package/lib/components/Layout/Container/Container.js +2 -2
- package/lib/components/Scroller/Scroller.cjs +12 -19
- package/lib/components/Scroller/Scroller.cjs.map +1 -1
- package/lib/components/Scroller/Scroller.js +13 -20
- package/lib/components/Scroller/Scroller.js.map +1 -1
- package/lib/components/Table/TableReel.cjs +1 -1
- package/lib/components/Table/TableReel.cjs.map +1 -1
- package/lib/components/Table/TableReel.js +1 -1
- package/lib/components/Table/TableReel.js.map +1 -1
- package/lib/components/Table/TableScrollContext.cjs +4 -4
- package/lib/components/Table/TableScrollContext.js +4 -4
- package/lib/components/Table/useReelCells.cjs +13 -7
- package/lib/components/Table/useReelCells.cjs.map +1 -1
- package/lib/components/Table/useReelCells.d.ts +1 -3
- package/lib/components/Table/useReelCells.js +13 -7
- package/lib/components/Table/useReelCells.js.map +1 -1
- package/lib/components/Text/Text.cjs +3 -1
- package/lib/components/Text/Text.cjs.map +1 -1
- package/lib/components/Text/Text.js +3 -1
- package/lib/components/Text/Text.js.map +1 -1
- package/lib/components/TextLink/TextLink.cjs +14 -28
- package/lib/components/TextLink/TextLink.cjs.map +1 -1
- package/lib/components/TextLink/TextLink.js +15 -29
- package/lib/components/TextLink/TextLink.js.map +1 -1
- package/lib/components/TextLink/UpwardLink/UpwardLink.cjs +2 -2
- package/lib/components/TextLink/UpwardLink/UpwardLink.js +2 -2
- package/lib/components/Textarea/Textarea.cjs +7 -6
- package/lib/components/Textarea/Textarea.cjs.map +1 -1
- package/lib/components/Textarea/Textarea.js +7 -6
- package/lib/components/Textarea/Textarea.js.map +1 -1
- package/lib/components/Tooltip/Tooltip.cjs +12 -21
- package/lib/components/Tooltip/Tooltip.cjs.map +1 -1
- package/lib/components/Tooltip/Tooltip.js +14 -23
- package/lib/components/Tooltip/Tooltip.js.map +1 -1
- package/lib/components/Tooltip/TooltipPortal.cjs +2 -2
- package/lib/components/Tooltip/TooltipPortal.cjs.map +1 -1
- package/lib/components/Tooltip/TooltipPortal.d.ts +1 -0
- package/lib/components/Tooltip/TooltipPortal.js +2 -2
- package/lib/components/Tooltip/TooltipPortal.js.map +1 -1
- package/lib/components/Tooltip/tooltipHelper.cjs +2 -2
- package/lib/components/Tooltip/tooltipHelper.cjs.map +1 -1
- package/lib/components/Tooltip/tooltipHelper.js +2 -2
- package/lib/components/Tooltip/tooltipHelper.js.map +1 -1
- package/lib/components/WarekiPicker/WarekiPicker.cjs +2 -3
- package/lib/components/WarekiPicker/WarekiPicker.cjs.map +1 -1
- package/lib/components/WarekiPicker/WarekiPicker.js +2 -3
- package/lib/components/WarekiPicker/WarekiPicker.js.map +1 -1
- package/lib/configureTwMerge.cjs +2 -2
- package/lib/configureTwMerge.js +2 -2
- package/lib/hooks/useDevice/DeviceProvider.cjs +2 -2
- package/lib/hooks/useDevice/DeviceProvider.js +2 -2
- package/lib/hooks/useEnvironment/EnvironmentProvider.cjs +2 -2
- package/lib/hooks/useEnvironment/EnvironmentProvider.js +2 -2
- package/lib/hooks/useOuterClick.cjs +5 -2
- package/lib/hooks/useOuterClick.cjs.map +1 -1
- package/lib/hooks/useOuterClick.js +6 -3
- package/lib/hooks/useOuterClick.js.map +1 -1
- package/lib/hooks/usePortal.cjs +1 -1
- package/lib/hooks/usePortal.cjs.map +1 -1
- package/lib/hooks/usePortal.js +1 -1
- package/lib/hooks/usePortal.js.map +1 -1
- package/lib/hooks/useSV/useSV.cjs +2 -2
- package/lib/hooks/useSV/useSV.js +2 -2
- package/lib/hooks/useTheme.cjs +3 -0
- package/lib/hooks/useTheme.cjs.map +1 -1
- package/lib/hooks/useTheme.js +3 -0
- package/lib/hooks/useTheme.js.map +1 -1
- package/lib/index.cjs +14 -8
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.ts +1 -10
- package/lib/index.js +10 -4
- package/lib/index.js.map +1 -1
- package/lib/intl/locales/index.cjs +1 -0
- package/lib/intl/locales/index.cjs.map +1 -1
- package/lib/intl/locales/index.js +1 -0
- package/lib/intl/locales/index.js.map +1 -1
- package/lib/libs/ua.cjs +1 -2
- package/lib/libs/ua.cjs.map +1 -1
- package/lib/libs/ua.js +1 -2
- package/lib/libs/ua.js.map +1 -1
- package/lib/smarthr-ui-preset.cjs +4 -4
- package/lib/smarthr-ui-preset.js +4 -4
- package/lib/tailwind/color.cjs +9 -0
- package/lib/tailwind/color.cjs.map +1 -1
- package/lib/tailwind/color.d.ts +1 -1
- package/lib/tailwind/color.js +9 -0
- package/lib/tailwind/color.js.map +1 -1
- package/lib/tailwind/fontSize.cjs +10 -0
- package/lib/tailwind/fontSize.cjs.map +1 -1
- package/lib/tailwind/fontSize.d.ts +1 -1
- package/lib/tailwind/fontSize.js +10 -0
- package/lib/tailwind/fontSize.js.map +1 -1
- package/lib/tailwind/index.cjs +10 -2
- package/lib/tailwind/index.cjs.map +1 -1
- package/lib/tailwind/index.js +9 -1
- package/lib/tailwind/index.js.map +1 -1
- package/lib/tailwind/textColor.cjs +9 -0
- package/lib/tailwind/textColor.cjs.map +1 -1
- package/lib/tailwind/textColor.d.ts +1 -1
- package/lib/tailwind/textColor.js +9 -0
- package/lib/tailwind/textColor.js.map +1 -1
- package/lib/themes/createWidth.cjs +1 -3
- package/lib/themes/createWidth.cjs.map +1 -1
- package/lib/themes/createWidth.d.ts +3 -1
- package/lib/themes/createWidth.js +1 -3
- package/lib/themes/createWidth.js.map +1 -1
- package/lib/themes/index.cjs +14 -0
- package/lib/themes/index.cjs.map +1 -1
- package/lib/themes/index.d.ts +7 -1
- package/lib/themes/index.js +9 -1
- package/lib/themes/index.js.map +1 -1
- package/metadata.json +1 -1
- package/package.json +2 -2
|
@@ -38,12 +38,13 @@ const commonButtonClassNameGenerator = index.tv({
|
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
40
|
const CommonButton = React.memo(({ elementAs, prefix, current, boldWhenCurrent, className, children, ...rest }) => {
|
|
41
|
+
const hasPrefix = !!prefix;
|
|
41
42
|
const actualClassName = React.useMemo(() => commonButtonClassNameGenerator({
|
|
42
|
-
prefix:
|
|
43
|
+
prefix: hasPrefix,
|
|
43
44
|
current,
|
|
44
45
|
boldWhenCurrent,
|
|
45
46
|
className,
|
|
46
|
-
}), [current,
|
|
47
|
+
}), [current, hasPrefix, boldWhenCurrent, className]);
|
|
47
48
|
switch (elementAs) {
|
|
48
49
|
case 'a':
|
|
49
50
|
return (jsxRuntime.jsxs("a", { ...rest, className: actualClassName, children: [prefix, children] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonButton.cjs","sources":["../../../../../src/components/AppHeader/components/common/CommonButton.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, type ReactNode, memo, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nexport const commonButtonClassNameGenerator = tv({\n base: [\n '[&&]:shr-box-border [&&]:shr-flex [&&]:shr-w-full [&&]:shr-cursor-pointer [&&]:shr-items-center [&&]:shr-border-none [&&]:shr-bg-transparent [&&]:shr-px-1 [&&]:shr-py-0.5 [&&]:shr-text-base [&&]:shr-leading-normal [&&]:shr-text-black [&&]:shr-no-underline',\n '[&&]:hover:shr-bg-white-darken',\n '[&&]:focus-visible:shr-focus-indicator [&&]:focus-visible:shr-bg-white-darken',\n ],\n variants: {\n prefix: {\n true: ['[&&]:shr-gap-0.5'],\n },\n current: {\n true: ['[&&]:shr-bg-white-darken'],\n },\n boldWhenCurrent: {\n true: null,\n false: ['[&&]:shr-font-normal'],\n },\n rounded: {\n true: ['[&&]:shr-rounded-m'],\n false: ['[&&]:shr-rounded-none'],\n },\n },\n compoundVariants: [\n {\n boldWhenCurrent: true,\n current: true,\n className: ['[&&]:shr-font-bold'],\n },\n ],\n defaultVariants: {\n rounded: true,\n },\n})\n\ntype AnchorProps = Omit<ComponentPropsWithoutRef<'a'>, 'prefix'>\ntype ButtonProps = Omit<ComponentPropsWithoutRef<'button'>, 'prefix'>\n\ntype Props = (({ elementAs: 'a' } & AnchorProps) | ({ elementAs: 'button' } & ButtonProps)) & {\n prefix?: ReactNode\n current?: boolean\n boldWhenCurrent?: boolean\n}\n\nexport const CommonButton = memo<Props>(\n ({ elementAs, prefix, current, boldWhenCurrent, className, children, ...rest }) => {\n const actualClassName = useMemo(\n () =>\n commonButtonClassNameGenerator({\n prefix:
|
|
1
|
+
{"version":3,"file":"CommonButton.cjs","sources":["../../../../../src/components/AppHeader/components/common/CommonButton.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, type ReactNode, memo, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nexport const commonButtonClassNameGenerator = tv({\n base: [\n '[&&]:shr-box-border [&&]:shr-flex [&&]:shr-w-full [&&]:shr-cursor-pointer [&&]:shr-items-center [&&]:shr-border-none [&&]:shr-bg-transparent [&&]:shr-px-1 [&&]:shr-py-0.5 [&&]:shr-text-base [&&]:shr-leading-normal [&&]:shr-text-black [&&]:shr-no-underline',\n '[&&]:hover:shr-bg-white-darken',\n '[&&]:focus-visible:shr-focus-indicator [&&]:focus-visible:shr-bg-white-darken',\n ],\n variants: {\n prefix: {\n true: ['[&&]:shr-gap-0.5'],\n },\n current: {\n true: ['[&&]:shr-bg-white-darken'],\n },\n boldWhenCurrent: {\n true: null,\n false: ['[&&]:shr-font-normal'],\n },\n rounded: {\n true: ['[&&]:shr-rounded-m'],\n false: ['[&&]:shr-rounded-none'],\n },\n },\n compoundVariants: [\n {\n boldWhenCurrent: true,\n current: true,\n className: ['[&&]:shr-font-bold'],\n },\n ],\n defaultVariants: {\n rounded: true,\n },\n})\n\ntype AnchorProps = Omit<ComponentPropsWithoutRef<'a'>, 'prefix'>\ntype ButtonProps = Omit<ComponentPropsWithoutRef<'button'>, 'prefix'>\n\ntype Props = (({ elementAs: 'a' } & AnchorProps) | ({ elementAs: 'button' } & ButtonProps)) & {\n prefix?: ReactNode\n current?: boolean\n boldWhenCurrent?: boolean\n}\n\nexport const CommonButton = memo<Props>(\n ({ elementAs, prefix, current, boldWhenCurrent, className, children, ...rest }) => {\n const hasPrefix = !!prefix\n\n const actualClassName = useMemo(\n () =>\n commonButtonClassNameGenerator({\n prefix: hasPrefix,\n current,\n boldWhenCurrent,\n className,\n }),\n [current, hasPrefix, boldWhenCurrent, className],\n )\n\n switch (elementAs) {\n case 'a':\n return (\n <a {...(rest as AnchorProps)} className={actualClassName}>\n {prefix}\n {children}\n </a>\n )\n case 'button':\n return (\n // eslint-disable-next-line smarthr/best-practice-for-button-element\n <button {...(rest as ButtonProps)} className={actualClassName}>\n {prefix}\n {children}\n </button>\n )\n }\n\n throw new Error(elementAs satisfies never)\n },\n)\n"],"names":["tv","memo","useMemo","_jsxs"],"mappings":";;;;;;AAGO,MAAM,8BAA8B,GAAGA,QAAE,CAAC;AAC/C,IAAA,IAAI,EAAE;QACJ,iQAAiQ;QACjQ,gCAAgC;QAChC,+EAA+E;AAChF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,0BAA0B,CAAC;AACnC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,CAAC,sBAAsB,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,oBAAoB,CAAC;YAC5B,KAAK,EAAE,CAAC,uBAAuB,CAAC;AACjC,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA;AACE,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,oBAAoB,CAAC;AAClC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,IAAI;AACd,KAAA;AACF,CAAA;AAWM,MAAM,YAAY,GAAGC,UAAI,CAC9B,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,KAAI;AAChF,IAAA,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM;IAE1B,MAAM,eAAe,GAAGC,aAAO,CAC7B,MACE,8BAA8B,CAAC;AAC7B,QAAA,MAAM,EAAE,SAAS;QACjB,OAAO;QACP,eAAe;QACf,SAAS;KACV,CAAC,EACJ,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,CACjD;IAED,QAAQ,SAAS;AACf,QAAA,KAAK,GAAG;AACN,YAAA,QACEC,eAAA,CAAA,GAAA,EAAA,EAAA,GAAQ,IAAoB,EAAE,SAAS,EAAE,eAAe,EAAA,QAAA,EAAA,CACrD,MAAM,EACN,QAAQ,CAAA,EAAA,CACP;AAER,QAAA,KAAK,QAAQ;YACX;;YAEEA,eAAA,CAAA,QAAA,EAAA,EAAA,GAAa,IAAoB,EAAE,SAAS,EAAE,eAAe,EAAA,QAAA,EAAA,CAC1D,MAAM,EACN,QAAQ,CAAA,EAAA,CACF;;AAIf,IAAA,MAAM,IAAI,KAAK,CAAC,SAAyB,CAAC;AAC5C,CAAC;;;;;"}
|
|
@@ -36,12 +36,13 @@ const commonButtonClassNameGenerator = ce({
|
|
|
36
36
|
},
|
|
37
37
|
});
|
|
38
38
|
const CommonButton = memo(({ elementAs, prefix, current, boldWhenCurrent, className, children, ...rest }) => {
|
|
39
|
+
const hasPrefix = !!prefix;
|
|
39
40
|
const actualClassName = useMemo(() => commonButtonClassNameGenerator({
|
|
40
|
-
prefix:
|
|
41
|
+
prefix: hasPrefix,
|
|
41
42
|
current,
|
|
42
43
|
boldWhenCurrent,
|
|
43
44
|
className,
|
|
44
|
-
}), [current,
|
|
45
|
+
}), [current, hasPrefix, boldWhenCurrent, className]);
|
|
45
46
|
switch (elementAs) {
|
|
46
47
|
case 'a':
|
|
47
48
|
return (jsxs("a", { ...rest, className: actualClassName, children: [prefix, children] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonButton.js","sources":["../../../../../src/components/AppHeader/components/common/CommonButton.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, type ReactNode, memo, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nexport const commonButtonClassNameGenerator = tv({\n base: [\n '[&&]:shr-box-border [&&]:shr-flex [&&]:shr-w-full [&&]:shr-cursor-pointer [&&]:shr-items-center [&&]:shr-border-none [&&]:shr-bg-transparent [&&]:shr-px-1 [&&]:shr-py-0.5 [&&]:shr-text-base [&&]:shr-leading-normal [&&]:shr-text-black [&&]:shr-no-underline',\n '[&&]:hover:shr-bg-white-darken',\n '[&&]:focus-visible:shr-focus-indicator [&&]:focus-visible:shr-bg-white-darken',\n ],\n variants: {\n prefix: {\n true: ['[&&]:shr-gap-0.5'],\n },\n current: {\n true: ['[&&]:shr-bg-white-darken'],\n },\n boldWhenCurrent: {\n true: null,\n false: ['[&&]:shr-font-normal'],\n },\n rounded: {\n true: ['[&&]:shr-rounded-m'],\n false: ['[&&]:shr-rounded-none'],\n },\n },\n compoundVariants: [\n {\n boldWhenCurrent: true,\n current: true,\n className: ['[&&]:shr-font-bold'],\n },\n ],\n defaultVariants: {\n rounded: true,\n },\n})\n\ntype AnchorProps = Omit<ComponentPropsWithoutRef<'a'>, 'prefix'>\ntype ButtonProps = Omit<ComponentPropsWithoutRef<'button'>, 'prefix'>\n\ntype Props = (({ elementAs: 'a' } & AnchorProps) | ({ elementAs: 'button' } & ButtonProps)) & {\n prefix?: ReactNode\n current?: boolean\n boldWhenCurrent?: boolean\n}\n\nexport const CommonButton = memo<Props>(\n ({ elementAs, prefix, current, boldWhenCurrent, className, children, ...rest }) => {\n const actualClassName = useMemo(\n () =>\n commonButtonClassNameGenerator({\n prefix:
|
|
1
|
+
{"version":3,"file":"CommonButton.js","sources":["../../../../../src/components/AppHeader/components/common/CommonButton.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, type ReactNode, memo, useMemo } from 'react'\nimport { tv } from 'tailwind-variants'\n\nexport const commonButtonClassNameGenerator = tv({\n base: [\n '[&&]:shr-box-border [&&]:shr-flex [&&]:shr-w-full [&&]:shr-cursor-pointer [&&]:shr-items-center [&&]:shr-border-none [&&]:shr-bg-transparent [&&]:shr-px-1 [&&]:shr-py-0.5 [&&]:shr-text-base [&&]:shr-leading-normal [&&]:shr-text-black [&&]:shr-no-underline',\n '[&&]:hover:shr-bg-white-darken',\n '[&&]:focus-visible:shr-focus-indicator [&&]:focus-visible:shr-bg-white-darken',\n ],\n variants: {\n prefix: {\n true: ['[&&]:shr-gap-0.5'],\n },\n current: {\n true: ['[&&]:shr-bg-white-darken'],\n },\n boldWhenCurrent: {\n true: null,\n false: ['[&&]:shr-font-normal'],\n },\n rounded: {\n true: ['[&&]:shr-rounded-m'],\n false: ['[&&]:shr-rounded-none'],\n },\n },\n compoundVariants: [\n {\n boldWhenCurrent: true,\n current: true,\n className: ['[&&]:shr-font-bold'],\n },\n ],\n defaultVariants: {\n rounded: true,\n },\n})\n\ntype AnchorProps = Omit<ComponentPropsWithoutRef<'a'>, 'prefix'>\ntype ButtonProps = Omit<ComponentPropsWithoutRef<'button'>, 'prefix'>\n\ntype Props = (({ elementAs: 'a' } & AnchorProps) | ({ elementAs: 'button' } & ButtonProps)) & {\n prefix?: ReactNode\n current?: boolean\n boldWhenCurrent?: boolean\n}\n\nexport const CommonButton = memo<Props>(\n ({ elementAs, prefix, current, boldWhenCurrent, className, children, ...rest }) => {\n const hasPrefix = !!prefix\n\n const actualClassName = useMemo(\n () =>\n commonButtonClassNameGenerator({\n prefix: hasPrefix,\n current,\n boldWhenCurrent,\n className,\n }),\n [current, hasPrefix, boldWhenCurrent, className],\n )\n\n switch (elementAs) {\n case 'a':\n return (\n <a {...(rest as AnchorProps)} className={actualClassName}>\n {prefix}\n {children}\n </a>\n )\n case 'button':\n return (\n // eslint-disable-next-line smarthr/best-practice-for-button-element\n <button {...(rest as ButtonProps)} className={actualClassName}>\n {prefix}\n {children}\n </button>\n )\n }\n\n throw new Error(elementAs satisfies never)\n },\n)\n"],"names":["tv","_jsxs"],"mappings":";;;;AAGO,MAAM,8BAA8B,GAAGA,EAAE,CAAC;AAC/C,IAAA,IAAI,EAAE;QACJ,iQAAiQ;QACjQ,gCAAgC;QAChC,+EAA+E;AAChF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,0BAA0B,CAAC;AACnC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,CAAC,sBAAsB,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,oBAAoB,CAAC;YAC5B,KAAK,EAAE,CAAC,uBAAuB,CAAC;AACjC,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA;AACE,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,oBAAoB,CAAC;AAClC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,IAAI;AACd,KAAA;AACF,CAAA;AAWM,MAAM,YAAY,GAAG,IAAI,CAC9B,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,KAAI;AAChF,IAAA,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM;IAE1B,MAAM,eAAe,GAAG,OAAO,CAC7B,MACE,8BAA8B,CAAC;AAC7B,QAAA,MAAM,EAAE,SAAS;QACjB,OAAO;QACP,eAAe;QACf,SAAS;KACV,CAAC,EACJ,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,CACjD;IAED,QAAQ,SAAS;AACf,QAAA,KAAK,GAAG;AACN,YAAA,QACEC,IAAA,CAAA,GAAA,EAAA,EAAA,GAAQ,IAAoB,EAAE,SAAS,EAAE,eAAe,EAAA,QAAA,EAAA,CACrD,MAAM,EACN,QAAQ,CAAA,EAAA,CACP;AAER,QAAA,KAAK,QAAQ;YACX;;YAEEA,IAAA,CAAA,QAAA,EAAA,EAAA,GAAa,IAAoB,EAAE,SAAS,EAAE,eAAe,EAAA,QAAA,EAAA,CAC1D,MAAM,EACN,QAAQ,CAAA,EAAA,CACF;;AAIf,IAAA,MAAM,IAAI,KAAK,CAAC,SAAyB,CAAC;AAC5C,CAAC;;;;"}
|
|
@@ -5,10 +5,16 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var index = require('./../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.cjs');
|
|
7
7
|
var tailwind_padding = require('../../tailwind/padding.cjs');
|
|
8
|
-
require('../../themes/
|
|
8
|
+
require('../../themes/createSpacing.cjs');
|
|
9
9
|
require('../../_virtual/index.cjs');
|
|
10
10
|
require('../../_virtual/index2.cjs');
|
|
11
11
|
require('../../themes/createColor.cjs');
|
|
12
|
+
require('../../themes/createTextColor.cjs');
|
|
13
|
+
require('styled-components');
|
|
14
|
+
require('../../themes/createShadow/defaultShadow.cjs');
|
|
15
|
+
require('../../themes/createWidth.cjs');
|
|
16
|
+
require('../../themes/createBackgroundColor.cjs');
|
|
17
|
+
require('../../themes/createBorder.cjs');
|
|
12
18
|
require('../SectioningContent/SectioningContent.cjs');
|
|
13
19
|
require('../SectioningContent/levelContext.cjs');
|
|
14
20
|
var components_SectioningContent_useSectioningWrapper = require('../SectioningContent/useSectioningWrapper.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base.cjs","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithRef,\n type ComponentType,\n type PropsWithChildren,\n forwardRef,\n useMemo,\n} from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { paddingBlock, paddingInline } from '../../tailwind'\nimport { useSectionWrapper } from '../SectioningContent'\n\nimport type { Gap } from '../../types'\n\nexport const baseClassNameGenerator = tv({\n base: 'smarthr-ui-Base shr-bg-white forced-colors:shr-border-shorthand contrast-more:shr-border-high-contrast',\n variants: {\n paddingBlock,\n paddingInline,\n radius: {\n s: 'shr-rounded-m',\n m: 'shr-rounded-l',\n },\n overflowBlock: {\n visible: 'shr-overflow-y-visible',\n hidden: 'shr-overflow-y-hidden',\n clip: 'shr-overflow-y-clip',\n scroll: 'shr-overflow-y-scroll',\n auto: 'shr-overflow-y-auto',\n },\n overflowInline: {\n visible: 'shr-overflow-x-visible',\n hidden: 'shr-overflow-x-hidden',\n clip: 'shr-overflow-x-clip',\n scroll: 'shr-overflow-x-scroll',\n auto: 'shr-overflow-x-auto',\n },\n layer: {\n 0: 'shr-shadow-layer-0',\n 1: 'shr-shadow-layer-1',\n 2: 'shr-shadow-layer-2',\n 3: 'shr-shadow-layer-3',\n 4: 'shr-shadow-layer-4',\n },\n },\n})\n\ntype Overflow = 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto'\n\ntype AbstractProps = PropsWithChildren<\n Omit<\n VariantProps<typeof baseClassNameGenerator>,\n 'paddingBlock' | 'paddingInline' | 'overflowBlock' | 'overflowInline'\n > & {\n /** 境界とコンテンツの間の余白 */\n padding?: Gap | SeparatePadding\n /** コンテンツが要素内に収まらない場合の処理方法 */\n overflow?: Overflow | { x: Overflow; y: Overflow }\n as?: string | ComponentType<any>\n }\n>\nexport type ElementProps = Omit<ComponentPropsWithRef<'div'>, keyof AbstractProps>\ntype Props = AbstractProps & ElementProps\n\ntype SeparatePadding = {\n block?: Gap\n inline?: Gap\n}\n\nexport const Base = forwardRef<HTMLDivElement, Props>(\n ({ padding, radius, overflow, layer, as: Component = 'div', className, ...rest }, ref) => {\n const actualClassName = useMemo(() => {\n const actualPadding =\n padding instanceof Object ? padding : { block: padding, inline: padding }\n const actualOverflow = overflow instanceof Object ? overflow : { x: overflow, y: overflow }\n\n return baseClassNameGenerator({\n paddingBlock: actualPadding.block,\n paddingInline: actualPadding.inline,\n radius: radius ?? 'm',\n overflowBlock: actualOverflow.y,\n overflowInline: actualOverflow.x,\n layer: layer ?? 1,\n className,\n })\n }, [layer, overflow, padding, radius, className])\n\n const Wrapper = useSectionWrapper(Component)\n const body = <Component {...rest} ref={ref} className={actualClassName} />\n\n if (Wrapper) {\n return <Wrapper>{body}</Wrapper>\n }\n\n return body\n },\n)\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Base.cjs","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithRef,\n type ComponentType,\n type PropsWithChildren,\n forwardRef,\n useMemo,\n} from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { paddingBlock, paddingInline } from '../../tailwind'\nimport { useSectionWrapper } from '../SectioningContent'\n\nimport type { Gap } from '../../types'\n\nexport const baseClassNameGenerator = tv({\n base: 'smarthr-ui-Base shr-bg-white forced-colors:shr-border-shorthand contrast-more:shr-border-high-contrast',\n variants: {\n paddingBlock,\n paddingInline,\n radius: {\n s: 'shr-rounded-m',\n m: 'shr-rounded-l',\n },\n overflowBlock: {\n visible: 'shr-overflow-y-visible',\n hidden: 'shr-overflow-y-hidden',\n clip: 'shr-overflow-y-clip',\n scroll: 'shr-overflow-y-scroll',\n auto: 'shr-overflow-y-auto',\n },\n overflowInline: {\n visible: 'shr-overflow-x-visible',\n hidden: 'shr-overflow-x-hidden',\n clip: 'shr-overflow-x-clip',\n scroll: 'shr-overflow-x-scroll',\n auto: 'shr-overflow-x-auto',\n },\n layer: {\n 0: 'shr-shadow-layer-0',\n 1: 'shr-shadow-layer-1',\n 2: 'shr-shadow-layer-2',\n 3: 'shr-shadow-layer-3',\n 4: 'shr-shadow-layer-4',\n },\n },\n})\n\ntype Overflow = 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto'\n\ntype AbstractProps = PropsWithChildren<\n Omit<\n VariantProps<typeof baseClassNameGenerator>,\n 'paddingBlock' | 'paddingInline' | 'overflowBlock' | 'overflowInline'\n > & {\n /** 境界とコンテンツの間の余白 */\n padding?: Gap | SeparatePadding\n /** コンテンツが要素内に収まらない場合の処理方法 */\n overflow?: Overflow | { x: Overflow; y: Overflow }\n as?: string | ComponentType<any>\n }\n>\nexport type ElementProps = Omit<ComponentPropsWithRef<'div'>, keyof AbstractProps>\ntype Props = AbstractProps & ElementProps\n\ntype SeparatePadding = {\n block?: Gap\n inline?: Gap\n}\n\nexport const Base = forwardRef<HTMLDivElement, Props>(\n ({ padding, radius, overflow, layer, as: Component = 'div', className, ...rest }, ref) => {\n const actualClassName = useMemo(() => {\n const actualPadding =\n padding instanceof Object ? padding : { block: padding, inline: padding }\n const actualOverflow = overflow instanceof Object ? overflow : { x: overflow, y: overflow }\n\n return baseClassNameGenerator({\n paddingBlock: actualPadding.block,\n paddingInline: actualPadding.inline,\n radius: radius ?? 'm',\n overflowBlock: actualOverflow.y,\n overflowInline: actualOverflow.x,\n layer: layer ?? 1,\n className,\n })\n }, [layer, overflow, padding, radius, className])\n\n const Wrapper = useSectionWrapper(Component)\n const body = <Component {...rest} ref={ref} className={actualClassName} />\n\n if (Wrapper) {\n return <Wrapper>{body}</Wrapper>\n }\n\n return body\n },\n)\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgBO;AACL;AACA;;;AAGE;AACE;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACA;AACD;AACF;AACF;AAwBM;AAEH;;;AAKE;;;;;;;;AAQC;AACH;AAEA;AACA;;AAGE;;AAGF;AACF;;;"}
|
|
@@ -3,10 +3,16 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { forwardRef, useMemo } from 'react';
|
|
4
4
|
import { tv as ce } from './../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.js';
|
|
5
5
|
import { paddingInline, paddingBlock } from '../../tailwind/padding.js';
|
|
6
|
-
import '../../themes/
|
|
6
|
+
import '../../themes/createSpacing.js';
|
|
7
7
|
import '../../_virtual/index.js';
|
|
8
8
|
import '../../_virtual/index2.js';
|
|
9
9
|
import '../../themes/createColor.js';
|
|
10
|
+
import '../../themes/createTextColor.js';
|
|
11
|
+
import 'styled-components';
|
|
12
|
+
import '../../themes/createShadow/defaultShadow.js';
|
|
13
|
+
import '../../themes/createWidth.js';
|
|
14
|
+
import '../../themes/createBackgroundColor.js';
|
|
15
|
+
import '../../themes/createBorder.js';
|
|
10
16
|
import '../SectioningContent/SectioningContent.js';
|
|
11
17
|
import '../SectioningContent/levelContext.js';
|
|
12
18
|
import { useSectionWrapper } from '../SectioningContent/useSectioningWrapper.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithRef,\n type ComponentType,\n type PropsWithChildren,\n forwardRef,\n useMemo,\n} from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { paddingBlock, paddingInline } from '../../tailwind'\nimport { useSectionWrapper } from '../SectioningContent'\n\nimport type { Gap } from '../../types'\n\nexport const baseClassNameGenerator = tv({\n base: 'smarthr-ui-Base shr-bg-white forced-colors:shr-border-shorthand contrast-more:shr-border-high-contrast',\n variants: {\n paddingBlock,\n paddingInline,\n radius: {\n s: 'shr-rounded-m',\n m: 'shr-rounded-l',\n },\n overflowBlock: {\n visible: 'shr-overflow-y-visible',\n hidden: 'shr-overflow-y-hidden',\n clip: 'shr-overflow-y-clip',\n scroll: 'shr-overflow-y-scroll',\n auto: 'shr-overflow-y-auto',\n },\n overflowInline: {\n visible: 'shr-overflow-x-visible',\n hidden: 'shr-overflow-x-hidden',\n clip: 'shr-overflow-x-clip',\n scroll: 'shr-overflow-x-scroll',\n auto: 'shr-overflow-x-auto',\n },\n layer: {\n 0: 'shr-shadow-layer-0',\n 1: 'shr-shadow-layer-1',\n 2: 'shr-shadow-layer-2',\n 3: 'shr-shadow-layer-3',\n 4: 'shr-shadow-layer-4',\n },\n },\n})\n\ntype Overflow = 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto'\n\ntype AbstractProps = PropsWithChildren<\n Omit<\n VariantProps<typeof baseClassNameGenerator>,\n 'paddingBlock' | 'paddingInline' | 'overflowBlock' | 'overflowInline'\n > & {\n /** 境界とコンテンツの間の余白 */\n padding?: Gap | SeparatePadding\n /** コンテンツが要素内に収まらない場合の処理方法 */\n overflow?: Overflow | { x: Overflow; y: Overflow }\n as?: string | ComponentType<any>\n }\n>\nexport type ElementProps = Omit<ComponentPropsWithRef<'div'>, keyof AbstractProps>\ntype Props = AbstractProps & ElementProps\n\ntype SeparatePadding = {\n block?: Gap\n inline?: Gap\n}\n\nexport const Base = forwardRef<HTMLDivElement, Props>(\n ({ padding, radius, overflow, layer, as: Component = 'div', className, ...rest }, ref) => {\n const actualClassName = useMemo(() => {\n const actualPadding =\n padding instanceof Object ? padding : { block: padding, inline: padding }\n const actualOverflow = overflow instanceof Object ? overflow : { x: overflow, y: overflow }\n\n return baseClassNameGenerator({\n paddingBlock: actualPadding.block,\n paddingInline: actualPadding.inline,\n radius: radius ?? 'm',\n overflowBlock: actualOverflow.y,\n overflowInline: actualOverflow.x,\n layer: layer ?? 1,\n className,\n })\n }, [layer, overflow, padding, radius, className])\n\n const Wrapper = useSectionWrapper(Component)\n const body = <Component {...rest} ref={ref} className={actualClassName} />\n\n if (Wrapper) {\n return <Wrapper>{body}</Wrapper>\n }\n\n return body\n },\n)\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithRef,\n type ComponentType,\n type PropsWithChildren,\n forwardRef,\n useMemo,\n} from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { paddingBlock, paddingInline } from '../../tailwind'\nimport { useSectionWrapper } from '../SectioningContent'\n\nimport type { Gap } from '../../types'\n\nexport const baseClassNameGenerator = tv({\n base: 'smarthr-ui-Base shr-bg-white forced-colors:shr-border-shorthand contrast-more:shr-border-high-contrast',\n variants: {\n paddingBlock,\n paddingInline,\n radius: {\n s: 'shr-rounded-m',\n m: 'shr-rounded-l',\n },\n overflowBlock: {\n visible: 'shr-overflow-y-visible',\n hidden: 'shr-overflow-y-hidden',\n clip: 'shr-overflow-y-clip',\n scroll: 'shr-overflow-y-scroll',\n auto: 'shr-overflow-y-auto',\n },\n overflowInline: {\n visible: 'shr-overflow-x-visible',\n hidden: 'shr-overflow-x-hidden',\n clip: 'shr-overflow-x-clip',\n scroll: 'shr-overflow-x-scroll',\n auto: 'shr-overflow-x-auto',\n },\n layer: {\n 0: 'shr-shadow-layer-0',\n 1: 'shr-shadow-layer-1',\n 2: 'shr-shadow-layer-2',\n 3: 'shr-shadow-layer-3',\n 4: 'shr-shadow-layer-4',\n },\n },\n})\n\ntype Overflow = 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto'\n\ntype AbstractProps = PropsWithChildren<\n Omit<\n VariantProps<typeof baseClassNameGenerator>,\n 'paddingBlock' | 'paddingInline' | 'overflowBlock' | 'overflowInline'\n > & {\n /** 境界とコンテンツの間の余白 */\n padding?: Gap | SeparatePadding\n /** コンテンツが要素内に収まらない場合の処理方法 */\n overflow?: Overflow | { x: Overflow; y: Overflow }\n as?: string | ComponentType<any>\n }\n>\nexport type ElementProps = Omit<ComponentPropsWithRef<'div'>, keyof AbstractProps>\ntype Props = AbstractProps & ElementProps\n\ntype SeparatePadding = {\n block?: Gap\n inline?: Gap\n}\n\nexport const Base = forwardRef<HTMLDivElement, Props>(\n ({ padding, radius, overflow, layer, as: Component = 'div', className, ...rest }, ref) => {\n const actualClassName = useMemo(() => {\n const actualPadding =\n padding instanceof Object ? padding : { block: padding, inline: padding }\n const actualOverflow = overflow instanceof Object ? overflow : { x: overflow, y: overflow }\n\n return baseClassNameGenerator({\n paddingBlock: actualPadding.block,\n paddingInline: actualPadding.inline,\n radius: radius ?? 'm',\n overflowBlock: actualOverflow.y,\n overflowInline: actualOverflow.x,\n layer: layer ?? 1,\n className,\n })\n }, [layer, overflow, padding, radius, className])\n\n const Wrapper = useSectionWrapper(Component)\n const body = <Component {...rest} ref={ref} className={actualClassName} />\n\n if (Wrapper) {\n return <Wrapper>{body}</Wrapper>\n }\n\n return body\n },\n)\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAgBO;AACL;AACA;;;AAGE;AACE;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACA;AACD;AACF;AACF;AAwBM;AAEH;;;AAKE;;;;;;;;AAQC;AACH;AAEA;AACA;;AAGE;;AAGF;AACF;;"}
|
|
@@ -4,10 +4,16 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var index = require('./../../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.cjs');
|
|
6
6
|
var tailwind_backgroundColor = require('../../../tailwind/backgroundColor.cjs');
|
|
7
|
-
require('../../../themes/
|
|
7
|
+
require('../../../themes/createSpacing.cjs');
|
|
8
8
|
require('../../../_virtual/index.cjs');
|
|
9
9
|
require('../../../_virtual/index2.cjs');
|
|
10
10
|
require('../../../themes/createColor.cjs');
|
|
11
|
+
require('../../../themes/createTextColor.cjs');
|
|
12
|
+
require('styled-components');
|
|
13
|
+
require('../../../themes/createShadow/defaultShadow.cjs');
|
|
14
|
+
require('../../../themes/createWidth.cjs');
|
|
15
|
+
require('../../../themes/createBackgroundColor.cjs');
|
|
16
|
+
require('../../../themes/createBorder.cjs');
|
|
11
17
|
var components_Base_Base = require('../Base.cjs');
|
|
12
18
|
|
|
13
19
|
const classNameGenerator = index.tv({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseColumn.cjs","sources":["../../../../src/components/Base/BaseColumn/BaseColumn.tsx"],"sourcesContent":["import { type ComponentProps, type FC, useMemo } from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { backgroundColor } from '../../../tailwind'\nimport { Base } from '../Base'\n\ntype AbstractProps = Omit<ComponentProps<typeof Base>, 'radius' | 'layer'> &\n VariantProps<typeof classNameGenerator>\ntype Props = AbstractProps & Omit<ComponentProps<'div'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n base: 'shr-rounded-[unset]',\n variants: {\n bgColor: backgroundColor,\n rounded: {\n true: 'shr-rounded-l',\n all: 'shr-rounded-l',\n top: 'shr-rounded-t-l',\n right: 'shr-rounded-r-l',\n bottom: 'shr-rounded-b-l',\n left: 'shr-rounded-l-l',\n },\n },\n defaultVariants: {\n bgColor: 'COLUMN',\n rounded: false,\n },\n})\n\nexport const BaseColumn: FC<Props> = ({ bgColor, rounded, padding = 1, className, ...rest }) => {\n const actualClassName = useMemo(\n () => classNameGenerator({ bgColor, rounded, className }),\n [bgColor, rounded, className],\n )\n\n return <Base {...rest} padding={padding} layer={0} className={actualClassName} />\n}\n"],"names":["tv","backgroundColor","useMemo","_jsx","Base"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseColumn.cjs","sources":["../../../../src/components/Base/BaseColumn/BaseColumn.tsx"],"sourcesContent":["import { type ComponentProps, type FC, useMemo } from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { backgroundColor } from '../../../tailwind'\nimport { Base } from '../Base'\n\ntype AbstractProps = Omit<ComponentProps<typeof Base>, 'radius' | 'layer'> &\n VariantProps<typeof classNameGenerator>\ntype Props = AbstractProps & Omit<ComponentProps<'div'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n base: 'shr-rounded-[unset]',\n variants: {\n bgColor: backgroundColor,\n rounded: {\n true: 'shr-rounded-l',\n all: 'shr-rounded-l',\n top: 'shr-rounded-t-l',\n right: 'shr-rounded-r-l',\n bottom: 'shr-rounded-b-l',\n left: 'shr-rounded-l-l',\n },\n },\n defaultVariants: {\n bgColor: 'COLUMN',\n rounded: false,\n },\n})\n\nexport const BaseColumn: FC<Props> = ({ bgColor, rounded, padding = 1, className, ...rest }) => {\n const actualClassName = useMemo(\n () => classNameGenerator({ bgColor, rounded, className }),\n [bgColor, rounded, className],\n )\n\n return <Base {...rest} padding={padding} layer={0} className={actualClassName} />\n}\n"],"names":["tv","backgroundColor","useMemo","_jsx","Base"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,MAAM,kBAAkB,GAAGA,QAAE,CAAC;AAC5B,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAEC,wCAAe;AACxB,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,GAAG,EAAE,eAAe;AACpB,YAAA,GAAG,EAAE,iBAAiB;AACtB,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,MAAM,EAAE,iBAAiB;AACzB,YAAA,IAAI,EAAE,iBAAiB;AACxB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,KAAK;AACf,KAAA;AACF,CAAA,CAAC;MAEW,UAAU,GAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,KAAI;IAC7F,MAAM,eAAe,GAAGC,aAAO,CAC7B,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EACzD,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAC9B;AAED,IAAA,OAAOC,eAACC,yBAAI,EAAA,EAAA,GAAK,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,GAAI;AACnF;;;;"}
|
|
@@ -2,10 +2,16 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { tv as ce } from './../../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.js';
|
|
4
4
|
import { backgroundColor } from '../../../tailwind/backgroundColor.js';
|
|
5
|
-
import '../../../themes/
|
|
5
|
+
import '../../../themes/createSpacing.js';
|
|
6
6
|
import '../../../_virtual/index.js';
|
|
7
7
|
import '../../../_virtual/index2.js';
|
|
8
8
|
import '../../../themes/createColor.js';
|
|
9
|
+
import '../../../themes/createTextColor.js';
|
|
10
|
+
import 'styled-components';
|
|
11
|
+
import '../../../themes/createShadow/defaultShadow.js';
|
|
12
|
+
import '../../../themes/createWidth.js';
|
|
13
|
+
import '../../../themes/createBackgroundColor.js';
|
|
14
|
+
import '../../../themes/createBorder.js';
|
|
9
15
|
import { Base } from '../Base.js';
|
|
10
16
|
|
|
11
17
|
const classNameGenerator = ce({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseColumn.js","sources":["../../../../src/components/Base/BaseColumn/BaseColumn.tsx"],"sourcesContent":["import { type ComponentProps, type FC, useMemo } from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { backgroundColor } from '../../../tailwind'\nimport { Base } from '../Base'\n\ntype AbstractProps = Omit<ComponentProps<typeof Base>, 'radius' | 'layer'> &\n VariantProps<typeof classNameGenerator>\ntype Props = AbstractProps & Omit<ComponentProps<'div'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n base: 'shr-rounded-[unset]',\n variants: {\n bgColor: backgroundColor,\n rounded: {\n true: 'shr-rounded-l',\n all: 'shr-rounded-l',\n top: 'shr-rounded-t-l',\n right: 'shr-rounded-r-l',\n bottom: 'shr-rounded-b-l',\n left: 'shr-rounded-l-l',\n },\n },\n defaultVariants: {\n bgColor: 'COLUMN',\n rounded: false,\n },\n})\n\nexport const BaseColumn: FC<Props> = ({ bgColor, rounded, padding = 1, className, ...rest }) => {\n const actualClassName = useMemo(\n () => classNameGenerator({ bgColor, rounded, className }),\n [bgColor, rounded, className],\n )\n\n return <Base {...rest} padding={padding} layer={0} className={actualClassName} />\n}\n"],"names":["tv","_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseColumn.js","sources":["../../../../src/components/Base/BaseColumn/BaseColumn.tsx"],"sourcesContent":["import { type ComponentProps, type FC, useMemo } from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\nimport { backgroundColor } from '../../../tailwind'\nimport { Base } from '../Base'\n\ntype AbstractProps = Omit<ComponentProps<typeof Base>, 'radius' | 'layer'> &\n VariantProps<typeof classNameGenerator>\ntype Props = AbstractProps & Omit<ComponentProps<'div'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n base: 'shr-rounded-[unset]',\n variants: {\n bgColor: backgroundColor,\n rounded: {\n true: 'shr-rounded-l',\n all: 'shr-rounded-l',\n top: 'shr-rounded-t-l',\n right: 'shr-rounded-r-l',\n bottom: 'shr-rounded-b-l',\n left: 'shr-rounded-l-l',\n },\n },\n defaultVariants: {\n bgColor: 'COLUMN',\n rounded: false,\n },\n})\n\nexport const BaseColumn: FC<Props> = ({ bgColor, rounded, padding = 1, className, ...rest }) => {\n const actualClassName = useMemo(\n () => classNameGenerator({ bgColor, rounded, className }),\n [bgColor, rounded, className],\n )\n\n return <Base {...rest} padding={padding} layer={0} className={actualClassName} />\n}\n"],"names":["tv","_jsx"],"mappings":";;;;;;;;;;;;;;;;AAUA,MAAM,kBAAkB,GAAGA,EAAE,CAAC;AAC5B,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,GAAG,EAAE,eAAe;AACpB,YAAA,GAAG,EAAE,iBAAiB;AACtB,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,MAAM,EAAE,iBAAiB;AACzB,YAAA,IAAI,EAAE,iBAAiB;AACxB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,KAAK;AACf,KAAA;AACF,CAAA,CAAC;MAEW,UAAU,GAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,KAAI;IAC7F,MAAM,eAAe,GAAG,OAAO,CAC7B,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EACzD,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAC9B;AAED,IAAA,OAAOC,IAAC,IAAI,EAAA,EAAA,GAAK,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,GAAI;AACnF;;;;"}
|
|
@@ -44,9 +44,7 @@ const BottomFixedArea = ({ description, primaryButton, secondaryButton, tertiary
|
|
|
44
44
|
};
|
|
45
45
|
}, [className]);
|
|
46
46
|
const style = React.useMemo(() => ({ zIndex }), [zIndex]);
|
|
47
|
-
|
|
48
|
-
components_BottomFixedArea_helper.validateElement(primaryButton, secondaryButton);
|
|
49
|
-
}, [primaryButton, secondaryButton]);
|
|
47
|
+
components_BottomFixedArea_helper.validateElement(primaryButton, secondaryButton);
|
|
50
48
|
return (jsxRuntime.jsx(components_Base_Base.Base, { ...rest, className: classNames.wrapper, style: style, children: jsxRuntime.jsxs(components_Layout_Stack_Stack.Stack, { children: [jsxRuntime.jsx(Description, { children: description }), jsxRuntime.jsxs(components_Layout_Stack_Stack.Stack, { gap: 0.25, children: [(secondaryButton || primaryButton) && (jsxRuntime.jsxs(components_Layout_Cluster_Cluster.Cluster, { as: "ul", justify: "center", gap: { row: 0.5, column: 1 }, children: [secondaryButton && (jsxRuntime.jsx("li", { className: "smarthr-ui-BottomFixedArea-secondaryButton", children: secondaryButton })), primaryButton && (jsxRuntime.jsx("li", { className: "smarthr-ui-BottomFixedArea-primaryButton", children: primaryButton }))] })), tertiaryLinks && tertiaryLinks.length > 0 && (jsxRuntime.jsx(components_Layout_Cluster_Cluster.Cluster, { as: "ul", justify: "center", gap: { row: 0.5, column: 0 }, children: tertiaryLinks.map(({ text, icon: Icon, ...tertiaryRest }, index) => (jsxRuntime.jsx("li", { className: "smarthr-ui-BottomFixedArea-tertiaryListItem", children: jsxRuntime.jsx(components_Button_Button.Button, { ...tertiaryRest, variant: "text", prefix: Icon && jsxRuntime.jsx(Icon, {}), className: classNames.tertiaryButton, children: text }) }, index))) }))] })] }) }));
|
|
51
49
|
};
|
|
52
50
|
const Description = React.memo(({ children }) => children && jsxRuntime.jsx("p", { className: "smarthr-ui-BottomFixedArea-description", children: children }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomFixedArea.cjs","sources":["../../../src/components/BottomFixedArea/BottomFixedArea.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type ComponentPropsWithRef,\n type ComponentType,\n type FC,\n type FunctionComponentElement,\n type MouseEventHandler,\n type PropsWithChildren,\n type ReactNode,\n memo,\n
|
|
1
|
+
{"version":3,"file":"BottomFixedArea.cjs","sources":["../../../src/components/BottomFixedArea/BottomFixedArea.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type ComponentPropsWithRef,\n type ComponentType,\n type FC,\n type FunctionComponentElement,\n type MouseEventHandler,\n type PropsWithChildren,\n type ReactNode,\n memo,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Base } from '../Base'\nimport { type AnchorButton, Button } from '../Button'\nimport { Cluster, Stack } from '../Layout'\n\nimport { validateElement } from './helper'\n\nimport type { ComponentProps as IconProps } from '../Icon'\n\nexport type ButtonType =\n | FunctionComponentElement<ComponentProps<typeof Button>>\n | FunctionComponentElement<ComponentProps<typeof AnchorButton>>\n\ntype AbstractProps = {\n /** この領域の説明 */\n description?: ReactNode\n /** 表示する `Button` または `AnchorButton` (`variant=\"primary\"` である必要がある) */\n primaryButton?: ButtonType\n /** 表示する `Button` または `AnchorButton` (`variant=\"secondary\"` である必要がある)*/\n secondaryButton?: ButtonType\n /** 表示する tertialy link のプロパティの配列 */\n tertiaryLinks?: Array<\n ComponentPropsWithRef<'button'> & {\n text: ReactNode\n icon?: ComponentType<IconProps>\n type?: 'button' | 'reset'\n onClick?: MouseEventHandler<HTMLButtonElement>\n }\n >\n /** コンポーネントに適用する z-index 値 */\n zIndex?: number\n}\ntype Props = AbstractProps & Omit<ComponentPropsWithRef<'div'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n slots: {\n wrapper: [\n 'smarthr-ui-BottomFixedArea',\n 'shr-fixed shr-bottom-0 shr-z-fixed-menu shr-box-border shr-w-full shr-rounded-none shr-p-1.5 shr-text-center',\n // Layer 3 だが、上方向への指定のためベタ書き: https://smarthr.design/products/design-tokens/shadow/\n '[box-shadow:_0_-4px_8px_2px_rgba(0,_0,_0,_0.24)]',\n '[&_ul]:shr-list-none',\n ],\n tertiaryButton: [\n 'smarthr-ui-BottomFixedArea-tertiaryLink',\n '-shr-mb-0.5 shr-font-normal shr-text-main',\n ],\n },\n})\n\n/**\n * @deprecated BottomFixedArea は非推奨です。FloatArea を使ってください。 https://smarthr.design/products/components/float-area/\n */\nexport const BottomFixedArea: FC<Props> = ({\n description,\n primaryButton,\n secondaryButton,\n tertiaryLinks,\n zIndex,\n className,\n ...rest\n}) => {\n const classNames = useMemo(() => {\n const { wrapper, tertiaryButton } = classNameGenerator()\n\n return {\n wrapper: wrapper({ className }),\n tertiaryButton: tertiaryButton(),\n }\n }, [className])\n const style = useMemo(() => ({ zIndex }), [zIndex])\n\n validateElement(primaryButton, secondaryButton)\n\n return (\n <Base {...rest} className={classNames.wrapper} style={style}>\n <Stack>\n <Description>{description}</Description>\n <Stack gap={0.25}>\n {(secondaryButton || primaryButton) && (\n <Cluster as=\"ul\" justify=\"center\" gap={{ row: 0.5, column: 1 }}>\n {secondaryButton && (\n <li className=\"smarthr-ui-BottomFixedArea-secondaryButton\">{secondaryButton}</li>\n )}\n {primaryButton && (\n <li className=\"smarthr-ui-BottomFixedArea-primaryButton\">{primaryButton}</li>\n )}\n </Cluster>\n )}\n {tertiaryLinks && tertiaryLinks.length > 0 && (\n <Cluster as=\"ul\" justify=\"center\" gap={{ row: 0.5, column: 0 }}>\n {tertiaryLinks.map(\n (\n {\n text,\n icon: Icon,\n\n ...tertiaryRest\n },\n index,\n ) => (\n <li key={index} className=\"smarthr-ui-BottomFixedArea-tertiaryListItem\">\n <Button\n {...tertiaryRest}\n variant=\"text\"\n prefix={Icon && <Icon />}\n className={classNames.tertiaryButton}\n >\n {text}\n </Button>\n </li>\n ),\n )}\n </Cluster>\n )}\n </Stack>\n </Stack>\n </Base>\n )\n}\n\nconst Description = memo<PropsWithChildren>(\n ({ children }) =>\n children && <p className=\"smarthr-ui-BottomFixedArea-description\">{children}</p>,\n)\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAiDA;AACE;AACE;;;;;;AAMC;AACD;;;AAGC;AACF;AACF;AAED;;AAEG;;AAUD;;;AAII;;;AAGJ;AACA;AAEA;AAEA;AA6CF;AAEA;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
-
import { memo, useMemo
|
|
3
|
+
import { memo, useMemo } from 'react';
|
|
4
4
|
import { tv as ce } from './../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.js';
|
|
5
5
|
import { Base } from '../Base/Base.js';
|
|
6
6
|
import '../Base/BaseColumn/BaseColumn.js';
|
|
@@ -42,9 +42,7 @@ const BottomFixedArea = ({ description, primaryButton, secondaryButton, tertiary
|
|
|
42
42
|
};
|
|
43
43
|
}, [className]);
|
|
44
44
|
const style = useMemo(() => ({ zIndex }), [zIndex]);
|
|
45
|
-
|
|
46
|
-
validateElement(primaryButton, secondaryButton);
|
|
47
|
-
}, [primaryButton, secondaryButton]);
|
|
45
|
+
validateElement(primaryButton, secondaryButton);
|
|
48
46
|
return (jsx(Base, { ...rest, className: classNames.wrapper, style: style, children: jsxs(Stack, { children: [jsx(Description, { children: description }), jsxs(Stack, { gap: 0.25, children: [(secondaryButton || primaryButton) && (jsxs(Cluster, { as: "ul", justify: "center", gap: { row: 0.5, column: 1 }, children: [secondaryButton && (jsx("li", { className: "smarthr-ui-BottomFixedArea-secondaryButton", children: secondaryButton })), primaryButton && (jsx("li", { className: "smarthr-ui-BottomFixedArea-primaryButton", children: primaryButton }))] })), tertiaryLinks && tertiaryLinks.length > 0 && (jsx(Cluster, { as: "ul", justify: "center", gap: { row: 0.5, column: 0 }, children: tertiaryLinks.map(({ text, icon: Icon, ...tertiaryRest }, index) => (jsx("li", { className: "smarthr-ui-BottomFixedArea-tertiaryListItem", children: jsx(Button, { ...tertiaryRest, variant: "text", prefix: Icon && jsx(Icon, {}), className: classNames.tertiaryButton, children: text }) }, index))) }))] })] }) }));
|
|
49
47
|
};
|
|
50
48
|
const Description = memo(({ children }) => children && jsx("p", { className: "smarthr-ui-BottomFixedArea-description", children: children }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomFixedArea.js","sources":["../../../src/components/BottomFixedArea/BottomFixedArea.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type ComponentPropsWithRef,\n type ComponentType,\n type FC,\n type FunctionComponentElement,\n type MouseEventHandler,\n type PropsWithChildren,\n type ReactNode,\n memo,\n
|
|
1
|
+
{"version":3,"file":"BottomFixedArea.js","sources":["../../../src/components/BottomFixedArea/BottomFixedArea.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentProps,\n type ComponentPropsWithRef,\n type ComponentType,\n type FC,\n type FunctionComponentElement,\n type MouseEventHandler,\n type PropsWithChildren,\n type ReactNode,\n memo,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Base } from '../Base'\nimport { type AnchorButton, Button } from '../Button'\nimport { Cluster, Stack } from '../Layout'\n\nimport { validateElement } from './helper'\n\nimport type { ComponentProps as IconProps } from '../Icon'\n\nexport type ButtonType =\n | FunctionComponentElement<ComponentProps<typeof Button>>\n | FunctionComponentElement<ComponentProps<typeof AnchorButton>>\n\ntype AbstractProps = {\n /** この領域の説明 */\n description?: ReactNode\n /** 表示する `Button` または `AnchorButton` (`variant=\"primary\"` である必要がある) */\n primaryButton?: ButtonType\n /** 表示する `Button` または `AnchorButton` (`variant=\"secondary\"` である必要がある)*/\n secondaryButton?: ButtonType\n /** 表示する tertialy link のプロパティの配列 */\n tertiaryLinks?: Array<\n ComponentPropsWithRef<'button'> & {\n text: ReactNode\n icon?: ComponentType<IconProps>\n type?: 'button' | 'reset'\n onClick?: MouseEventHandler<HTMLButtonElement>\n }\n >\n /** コンポーネントに適用する z-index 値 */\n zIndex?: number\n}\ntype Props = AbstractProps & Omit<ComponentPropsWithRef<'div'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n slots: {\n wrapper: [\n 'smarthr-ui-BottomFixedArea',\n 'shr-fixed shr-bottom-0 shr-z-fixed-menu shr-box-border shr-w-full shr-rounded-none shr-p-1.5 shr-text-center',\n // Layer 3 だが、上方向への指定のためベタ書き: https://smarthr.design/products/design-tokens/shadow/\n '[box-shadow:_0_-4px_8px_2px_rgba(0,_0,_0,_0.24)]',\n '[&_ul]:shr-list-none',\n ],\n tertiaryButton: [\n 'smarthr-ui-BottomFixedArea-tertiaryLink',\n '-shr-mb-0.5 shr-font-normal shr-text-main',\n ],\n },\n})\n\n/**\n * @deprecated BottomFixedArea は非推奨です。FloatArea を使ってください。 https://smarthr.design/products/components/float-area/\n */\nexport const BottomFixedArea: FC<Props> = ({\n description,\n primaryButton,\n secondaryButton,\n tertiaryLinks,\n zIndex,\n className,\n ...rest\n}) => {\n const classNames = useMemo(() => {\n const { wrapper, tertiaryButton } = classNameGenerator()\n\n return {\n wrapper: wrapper({ className }),\n tertiaryButton: tertiaryButton(),\n }\n }, [className])\n const style = useMemo(() => ({ zIndex }), [zIndex])\n\n validateElement(primaryButton, secondaryButton)\n\n return (\n <Base {...rest} className={classNames.wrapper} style={style}>\n <Stack>\n <Description>{description}</Description>\n <Stack gap={0.25}>\n {(secondaryButton || primaryButton) && (\n <Cluster as=\"ul\" justify=\"center\" gap={{ row: 0.5, column: 1 }}>\n {secondaryButton && (\n <li className=\"smarthr-ui-BottomFixedArea-secondaryButton\">{secondaryButton}</li>\n )}\n {primaryButton && (\n <li className=\"smarthr-ui-BottomFixedArea-primaryButton\">{primaryButton}</li>\n )}\n </Cluster>\n )}\n {tertiaryLinks && tertiaryLinks.length > 0 && (\n <Cluster as=\"ul\" justify=\"center\" gap={{ row: 0.5, column: 0 }}>\n {tertiaryLinks.map(\n (\n {\n text,\n icon: Icon,\n\n ...tertiaryRest\n },\n index,\n ) => (\n <li key={index} className=\"smarthr-ui-BottomFixedArea-tertiaryListItem\">\n <Button\n {...tertiaryRest}\n variant=\"text\"\n prefix={Icon && <Icon />}\n className={classNames.tertiaryButton}\n >\n {text}\n </Button>\n </li>\n ),\n )}\n </Cluster>\n )}\n </Stack>\n </Stack>\n </Base>\n )\n}\n\nconst Description = memo<PropsWithChildren>(\n ({ children }) =>\n children && <p className=\"smarthr-ui-BottomFixedArea-description\">{children}</p>,\n)\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAiDA;AACE;AACE;;;;;;AAMC;AACD;;;AAGC;AACF;AACF;AAED;;AAEG;;AAUD;;;AAII;;;AAGJ;AACA;AAEA;AAEA;AA6CF;AAEA;;"}
|
|
@@ -14,13 +14,8 @@ const classNameGenerator = index.tv({
|
|
|
14
14
|
});
|
|
15
15
|
const AnchorButton = React.forwardRef(({ size = 'M', prefix, suffix, wide = false, variant = 'secondary', inactiveReason, target, rel, elementAs, className, children, href, ...rest }, ref) => {
|
|
16
16
|
const actualClassName = React.useMemo(() => classNameGenerator({ className }), [className]);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (target === '_blank' && !prefix && suffix === undefined) {
|
|
20
|
-
return jsxRuntime.jsx(components_Icon_OpenInNewTabIcon.OpenInNewTabIcon, {});
|
|
21
|
-
}
|
|
22
|
-
return suffix;
|
|
23
|
-
}, [prefix, suffix, target]);
|
|
17
|
+
// target="_blank" だが OpenInNewTabIcon を表示したくない場合 suffix に null を指定すれば表示しないようにしている
|
|
18
|
+
const actualSuffix = target === '_blank' && !prefix && suffix === undefined ? jsxRuntime.jsx(components_Icon_OpenInNewTabIcon.OpenInNewTabIcon, {}) : suffix;
|
|
24
19
|
const button = (jsxRuntime.jsx(components_Button_ButtonWrapper.ButtonWrapper, { ...rest, href: href, size: size, wide: wide, variant: variant, className: actualClassName, target: target, rel: rel === undefined && target === '_blank' ? 'noopener noreferrer' : rel, isAnchor: true, anchorRef: ref, elementAs: elementAs, prefix: prefix, suffix: actualSuffix, children: children }));
|
|
25
20
|
if (!href && inactiveReason) {
|
|
26
21
|
return jsxRuntime.jsx(components_Button_DisabledReason.DisabledReason, { button: button, disabledReason: inactiveReason });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnchorButton.cjs","sources":["../../../src/components/Button/AnchorButton.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type FC,\n type PropsWithoutRef,\n type ReactElement,\n type Ref,\n forwardRef,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { OpenInNewTabIcon } from '../Icon'\n\nimport { ButtonWrapper } from './ButtonWrapper'\nimport { DisabledReason } from './DisabledReason'\n\nimport type { AbstractProps as ButtonProps } from './types'\nimport type { ElementRef, ElementRefProps } from '../../types'\n\ntype AbstractProps<T extends ElementType> = Omit<ButtonProps, 'variant' | 'disabledReason'> & {\n /** next/linkなどのカスタムコンポーネントを指定します。指定がない場合はデフォルトで `a` タグが使用されます。 */\n elementAs?: T\n // tertiaryはAnchorButtonでは使用不可\n variant?: Exclude<ButtonProps['variant'], 'tertiary'>\n inactiveReason?: ButtonProps['disabledReason']\n}\n\ntype ElementProps<T extends ElementType> = Omit<\n ComponentPropsWithoutRef<T>,\n keyof AbstractProps<T> & ElementRefProps<T>\n>\n\nconst classNameGenerator = tv({\n base: 'smarthr-ui-AnchorButton',\n})\n\nconst AnchorButton = forwardRef(\n <T extends ElementType = 'a'>(\n {\n size = 'M',\n prefix,\n suffix,\n wide = false,\n variant = 'secondary',\n inactiveReason,\n target,\n rel,\n elementAs,\n className,\n children,\n href,\n ...rest\n }: PropsWithoutRef<AbstractProps<T>> & ElementProps<T>,\n ref: Ref<ElementRef<T>>,\n ): ReactElement => {\n const actualClassName = useMemo(() => classNameGenerator({ className }), [className])\n\n
|
|
1
|
+
{"version":3,"file":"AnchorButton.cjs","sources":["../../../src/components/Button/AnchorButton.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type FC,\n type PropsWithoutRef,\n type ReactElement,\n type Ref,\n forwardRef,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { OpenInNewTabIcon } from '../Icon'\n\nimport { ButtonWrapper } from './ButtonWrapper'\nimport { DisabledReason } from './DisabledReason'\n\nimport type { AbstractProps as ButtonProps } from './types'\nimport type { ElementRef, ElementRefProps } from '../../types'\n\ntype AbstractProps<T extends ElementType> = Omit<ButtonProps, 'variant' | 'disabledReason'> & {\n /** next/linkなどのカスタムコンポーネントを指定します。指定がない場合はデフォルトで `a` タグが使用されます。 */\n elementAs?: T\n // tertiaryはAnchorButtonでは使用不可\n variant?: Exclude<ButtonProps['variant'], 'tertiary'>\n inactiveReason?: ButtonProps['disabledReason']\n}\n\ntype ElementProps<T extends ElementType> = Omit<\n ComponentPropsWithoutRef<T>,\n keyof AbstractProps<T> & ElementRefProps<T>\n>\n\nconst classNameGenerator = tv({\n base: 'smarthr-ui-AnchorButton',\n})\n\nconst AnchorButton = forwardRef(\n <T extends ElementType = 'a'>(\n {\n size = 'M',\n prefix,\n suffix,\n wide = false,\n variant = 'secondary',\n inactiveReason,\n target,\n rel,\n elementAs,\n className,\n children,\n href,\n ...rest\n }: PropsWithoutRef<AbstractProps<T>> & ElementProps<T>,\n ref: Ref<ElementRef<T>>,\n ): ReactElement => {\n const actualClassName = useMemo(() => classNameGenerator({ className }), [className])\n\n // target=\"_blank\" だが OpenInNewTabIcon を表示したくない場合 suffix に null を指定すれば表示しないようにしている\n const actualSuffix =\n target === '_blank' && !prefix && suffix === undefined ? <OpenInNewTabIcon /> : suffix\n\n const button = (\n <ButtonWrapper\n {...rest}\n href={href}\n size={size}\n wide={wide}\n variant={variant}\n className={actualClassName}\n target={target}\n rel={rel === undefined && target === '_blank' ? 'noopener noreferrer' : rel}\n isAnchor\n anchorRef={ref}\n elementAs={elementAs}\n prefix={prefix}\n suffix={actualSuffix}\n >\n {children}\n </ButtonWrapper>\n )\n\n if (!href && inactiveReason) {\n return <DisabledReason button={button} disabledReason={inactiveReason} />\n }\n\n return button\n },\n)\n\n// 型キャストなしで ForwardRefExoticComponent に合わせた型をエクスポートするための処理\ntype AnchorButtonType = <T extends ElementType = 'a'>(\n props: AbstractProps<T> & ElementProps<T> & ElementRefProps<T>,\n) => ReturnType<FC>\n\nconst ForwardedAnchorButton = AnchorButton as unknown as AnchorButtonType & {\n displayName: string\n}\n\n// BottomFixedArea での判定に用いるために displayName を明示的に設定する\nForwardedAnchorButton.displayName = 'AnchorButton'\n\nexport { ForwardedAnchorButton as AnchorButton }\n"],"names":[],"mappings":";;;;;;;;;;;AAmCA;AACE;AACD;AAED;AAmBI;;;AAMA;AAoBA;;;AAIA;AACF;AAQF;AAIA;AACA;;"}
|
|
@@ -12,13 +12,8 @@ const classNameGenerator = ce({
|
|
|
12
12
|
});
|
|
13
13
|
const AnchorButton = forwardRef(({ size = 'M', prefix, suffix, wide = false, variant = 'secondary', inactiveReason, target, rel, elementAs, className, children, href, ...rest }, ref) => {
|
|
14
14
|
const actualClassName = useMemo(() => classNameGenerator({ className }), [className]);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (target === '_blank' && !prefix && suffix === undefined) {
|
|
18
|
-
return jsx(OpenInNewTabIcon, {});
|
|
19
|
-
}
|
|
20
|
-
return suffix;
|
|
21
|
-
}, [prefix, suffix, target]);
|
|
15
|
+
// target="_blank" だが OpenInNewTabIcon を表示したくない場合 suffix に null を指定すれば表示しないようにしている
|
|
16
|
+
const actualSuffix = target === '_blank' && !prefix && suffix === undefined ? jsx(OpenInNewTabIcon, {}) : suffix;
|
|
22
17
|
const button = (jsx(ButtonWrapper, { ...rest, href: href, size: size, wide: wide, variant: variant, className: actualClassName, target: target, rel: rel === undefined && target === '_blank' ? 'noopener noreferrer' : rel, isAnchor: true, anchorRef: ref, elementAs: elementAs, prefix: prefix, suffix: actualSuffix, children: children }));
|
|
23
18
|
if (!href && inactiveReason) {
|
|
24
19
|
return jsx(DisabledReason, { button: button, disabledReason: inactiveReason });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnchorButton.js","sources":["../../../src/components/Button/AnchorButton.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type FC,\n type PropsWithoutRef,\n type ReactElement,\n type Ref,\n forwardRef,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { OpenInNewTabIcon } from '../Icon'\n\nimport { ButtonWrapper } from './ButtonWrapper'\nimport { DisabledReason } from './DisabledReason'\n\nimport type { AbstractProps as ButtonProps } from './types'\nimport type { ElementRef, ElementRefProps } from '../../types'\n\ntype AbstractProps<T extends ElementType> = Omit<ButtonProps, 'variant' | 'disabledReason'> & {\n /** next/linkなどのカスタムコンポーネントを指定します。指定がない場合はデフォルトで `a` タグが使用されます。 */\n elementAs?: T\n // tertiaryはAnchorButtonでは使用不可\n variant?: Exclude<ButtonProps['variant'], 'tertiary'>\n inactiveReason?: ButtonProps['disabledReason']\n}\n\ntype ElementProps<T extends ElementType> = Omit<\n ComponentPropsWithoutRef<T>,\n keyof AbstractProps<T> & ElementRefProps<T>\n>\n\nconst classNameGenerator = tv({\n base: 'smarthr-ui-AnchorButton',\n})\n\nconst AnchorButton = forwardRef(\n <T extends ElementType = 'a'>(\n {\n size = 'M',\n prefix,\n suffix,\n wide = false,\n variant = 'secondary',\n inactiveReason,\n target,\n rel,\n elementAs,\n className,\n children,\n href,\n ...rest\n }: PropsWithoutRef<AbstractProps<T>> & ElementProps<T>,\n ref: Ref<ElementRef<T>>,\n ): ReactElement => {\n const actualClassName = useMemo(() => classNameGenerator({ className }), [className])\n\n
|
|
1
|
+
{"version":3,"file":"AnchorButton.js","sources":["../../../src/components/Button/AnchorButton.tsx"],"sourcesContent":["'use client'\n\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type FC,\n type PropsWithoutRef,\n type ReactElement,\n type Ref,\n forwardRef,\n useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { OpenInNewTabIcon } from '../Icon'\n\nimport { ButtonWrapper } from './ButtonWrapper'\nimport { DisabledReason } from './DisabledReason'\n\nimport type { AbstractProps as ButtonProps } from './types'\nimport type { ElementRef, ElementRefProps } from '../../types'\n\ntype AbstractProps<T extends ElementType> = Omit<ButtonProps, 'variant' | 'disabledReason'> & {\n /** next/linkなどのカスタムコンポーネントを指定します。指定がない場合はデフォルトで `a` タグが使用されます。 */\n elementAs?: T\n // tertiaryはAnchorButtonでは使用不可\n variant?: Exclude<ButtonProps['variant'], 'tertiary'>\n inactiveReason?: ButtonProps['disabledReason']\n}\n\ntype ElementProps<T extends ElementType> = Omit<\n ComponentPropsWithoutRef<T>,\n keyof AbstractProps<T> & ElementRefProps<T>\n>\n\nconst classNameGenerator = tv({\n base: 'smarthr-ui-AnchorButton',\n})\n\nconst AnchorButton = forwardRef(\n <T extends ElementType = 'a'>(\n {\n size = 'M',\n prefix,\n suffix,\n wide = false,\n variant = 'secondary',\n inactiveReason,\n target,\n rel,\n elementAs,\n className,\n children,\n href,\n ...rest\n }: PropsWithoutRef<AbstractProps<T>> & ElementProps<T>,\n ref: Ref<ElementRef<T>>,\n ): ReactElement => {\n const actualClassName = useMemo(() => classNameGenerator({ className }), [className])\n\n // target=\"_blank\" だが OpenInNewTabIcon を表示したくない場合 suffix に null を指定すれば表示しないようにしている\n const actualSuffix =\n target === '_blank' && !prefix && suffix === undefined ? <OpenInNewTabIcon /> : suffix\n\n const button = (\n <ButtonWrapper\n {...rest}\n href={href}\n size={size}\n wide={wide}\n variant={variant}\n className={actualClassName}\n target={target}\n rel={rel === undefined && target === '_blank' ? 'noopener noreferrer' : rel}\n isAnchor\n anchorRef={ref}\n elementAs={elementAs}\n prefix={prefix}\n suffix={actualSuffix}\n >\n {children}\n </ButtonWrapper>\n )\n\n if (!href && inactiveReason) {\n return <DisabledReason button={button} disabledReason={inactiveReason} />\n }\n\n return button\n },\n)\n\n// 型キャストなしで ForwardRefExoticComponent に合わせた型をエクスポートするための処理\ntype AnchorButtonType = <T extends ElementType = 'a'>(\n props: AbstractProps<T> & ElementProps<T> & ElementRefProps<T>,\n) => ReturnType<FC>\n\nconst ForwardedAnchorButton = AnchorButton as unknown as AnchorButtonType & {\n displayName: string\n}\n\n// BottomFixedArea での判定に用いるために displayName を明示的に設定する\nForwardedAnchorButton.displayName = 'AnchorButton'\n\nexport { ForwardedAnchorButton as AnchorButton }\n"],"names":[],"mappings":";;;;;;;;;AAmCA;AACE;AACD;AAED;AAmBI;;;AAMA;AAoBA;;;AAIA;AACF;AAQF;AAIA;AACA;;"}
|
|
@@ -5,9 +5,10 @@ var React = require('react');
|
|
|
5
5
|
var index = require('./../../vendor/.pnpm/tailwind-variants@0.3.1_tailwindcss@3.4.19_ts-node@10.9.2_@swc_core@1.15.17_@types_node@20.19.35_typescript@5.9.3__/vendor/tailwind-variants/dist/index.cjs');
|
|
6
6
|
var components_Loader_Loader = require('../Loader/Loader.cjs');
|
|
7
7
|
|
|
8
|
-
// HINT: prefix, suffixが存在せず、かつ
|
|
8
|
+
// HINT: prefix, suffixが存在せず、かつIcon,svg,img,Loaderのいずれかが単一でbodyに含まれるButtonかチェックしたい
|
|
9
|
+
// このSELECTORはbody内の対象を列挙する
|
|
9
10
|
// HINT: smarthr-ui-Icon-extendedはアイコン+α(例えば複数のアイコンをまとめて一つにしているなど)を表すclass
|
|
10
|
-
const
|
|
11
|
+
const ICON_SELECTOR = '.smarthr-ui-Icon, .smarthr-ui-Icon-extended, svg, img, .smarthr-ui-Loader';
|
|
11
12
|
const useButtonWrapper = ({ size, wide = false, variant, $loading, className, prefix, suffix, children, isAnchor, ...rest }) => {
|
|
12
13
|
const innerRef = React.useRef(null);
|
|
13
14
|
// HINT: squareは
|
|
@@ -46,12 +47,29 @@ const useButtonWrapper = ({ size, wide = false, variant, $loading, className, pr
|
|
|
46
47
|
break;
|
|
47
48
|
}
|
|
48
49
|
}
|
|
50
|
+
// HINT: actualSuffixなどは$loadingの判定で置き換えられる可能性がある
|
|
51
|
+
// あくまで利用者が設定したprefix, suffixがないかで判定する
|
|
52
|
+
const onlyBody = !prefix && !suffix;
|
|
49
53
|
React.useEffect(() => {
|
|
50
|
-
if (
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
if (!onlyBody) {
|
|
55
|
+
setSquare(false);
|
|
56
|
+
return;
|
|
53
57
|
}
|
|
54
|
-
|
|
58
|
+
const target = innerRef.current;
|
|
59
|
+
if (!target)
|
|
60
|
+
return;
|
|
61
|
+
const checkSquare = () => {
|
|
62
|
+
setSquare(target.children.length === 1 && target.children[0].matches(ICON_SELECTOR));
|
|
63
|
+
};
|
|
64
|
+
checkSquare();
|
|
65
|
+
const observer = new MutationObserver(checkSquare);
|
|
66
|
+
observer.observe(target, {
|
|
67
|
+
childList: true,
|
|
68
|
+
});
|
|
69
|
+
return () => {
|
|
70
|
+
observer.disconnect();
|
|
71
|
+
};
|
|
72
|
+
}, [onlyBody]);
|
|
55
73
|
return {
|
|
56
74
|
filteredProps: { ...rest, $loading },
|
|
57
75
|
classNames,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useButtonWrapper.cjs","sources":["../../../src/components/Button/useButtonWrapper.tsx"],"sourcesContent":["import {\n type AnchorHTMLAttributes,\n type ButtonHTMLAttributes,\n type ElementType,\n type ForwardedRef,\n type PropsWithChildren,\n type ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Loader } from '../Loader'\n\nimport type { Variant } from './types'\n\n// HINT: prefix, suffixが存在せず、かつicon,svg,imgのいずれかが単一でbodyに含まれるButtonのselector\n// HINT: smarthr-ui-Icon-extendedはアイコン+α(例えば複数のアイコンをまとめて一つにしているなど)を表すclass\nconst ICON_BUTTON_SELECTOR = ['.smarthr-ui-Icon', '.smarthr-ui-Icon-extended', 'svg', 'img'].reduce(\n (prev, selector, index) =>\n `${prev}${index !== 0 ? ',' : ''}.smarthr-ui-Button-body:only-child>${selector}:only-child`,\n '',\n)\n\ntype AbstractProps = PropsWithChildren<{\n size: 'M' | 'S'\n wide: boolean\n variant: Variant\n $loading?: boolean\n className: string\n elementAs?: ElementType\n prefix?: ReactNode\n suffix?: ReactNode\n}>\n\ntype AbstractButtonProps = AbstractProps & {\n isAnchor?: never\n buttonRef?: ForwardedRef<HTMLButtonElement>\n}\ntype ButtonProps = AbstractButtonProps &\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, keyof AbstractButtonProps>\n\ntype AbstractAnchorProps = AbstractProps & {\n isAnchor: true\n anchorRef?: ForwardedRef<HTMLAnchorElement>\n}\ntype AnchorProps = AbstractAnchorProps &\n Omit<AnchorHTMLAttributes<HTMLAnchorElement>, keyof AbstractAnchorProps>\n\nexport type Props = ButtonProps | AnchorProps\n\n// HINT: useButtonWrapperの引数を調整する場合、以下も調整する\ntype FilteredProps =\n | 'size'\n | 'wide'\n | 'variant'\n | 'className'\n | 'prefix'\n | 'suffix'\n | 'children'\n | 'isAnchor'\nexport type FilteredButtonProps = Omit<ButtonProps, FilteredProps>\nexport type FilteredAnchorProps = Omit<AnchorProps, FilteredProps>\n\nexport const useButtonWrapper = ({\n size,\n wide = false,\n variant,\n $loading,\n className,\n prefix,\n suffix,\n children,\n isAnchor,\n ...rest\n}: Props) => {\n const innerRef = useRef<HTMLElement>(null)\n // HINT: squareは\n // null: Buttonのレンダリング前\n // boolean: レンダリング後\n const [square, setSquare] = useState<null | boolean>(null)\n\n const classNames = useMemo(() => {\n const { button, anchor, loader } = wrapperClassNameGenerator({\n variant,\n size,\n square: !!square,\n loading: !!$loading,\n wide,\n })\n\n const wrapper = isAnchor ? anchor : button\n\n return {\n wrapper: wrapper({ className }),\n loader: loader(),\n }\n }, [$loading, size, square, variant, wide, className, isAnchor])\n\n const innerClassName = useMemo(() => innerClassNameGenerator({ size }), [size])\n\n let actualPrefix = prefix\n let actualSuffix = suffix\n let actualChildren = children\n\n if ($loading) {\n actualPrefix = undefined\n const loader = <Loader size=\"S\" className={classNames.loader} role=\"presentation\" />\n\n // HINT: squareは null | boolean のため、switchで判定する\n // nullの場合にactualSuffixにloaderを突っ込んでしまうとsquareの計算が狂ってしまう\n switch (square) {\n case true:\n actualChildren = loader\n break\n case false:\n actualSuffix = loader\n break\n }\n }\n\n useEffect(() => {\n if (innerRef.current) {\n // HINT: prefix, suffixが存在せず、かつicon,svg,imgのいずれかが単一でbodyに含まれるButtonの場合true\n setSquare(!!innerRef.current.querySelector(ICON_BUTTON_SELECTOR))\n }\n }, [children])\n\n return {\n filteredProps: { ...rest, $loading } as FilteredAnchorProps | FilteredButtonProps,\n classNames,\n children: (\n <>\n {actualPrefix}\n <span ref={innerRef} className={innerClassName}>\n {actualChildren}\n </span>\n {actualSuffix}\n </>\n ),\n }\n}\n\nconst wrapperClassNameGenerator = tv({\n slots: {\n button: [\n 'aria-disabled:shr-cursor-not-allowed',\n /* alpha color を使用しているので、背景色と干渉させない */\n 'aria-disabled:shr-bg-clip-padding',\n /* disabled ではなく aria-disabled で文字色が変わらないため、強制カラーモード時の色を指定 */\n 'aria-disabled:forced-colors:shr-border-[GrayText] aria-disabled:forced-colors:shr-text-[GrayText]',\n '[&_.smarthr-ui-Icon]:forced-colors:aria-disabled:shr-fill-[GrayText]',\n ],\n anchor: [\n 'shr-no-underline',\n '[&:not([href])]:shr-cursor-not-allowed',\n /* alpha color を使用しているので、背景色と干渉させない */\n '[&:not([href])]:shr-bg-clip-padding',\n '[&_.smarthr-ui-Icon]:forced-colors:shr-fill-[LinkText]',\n '[&:not([href])_.smarthr-ui-Icon]:forced-colors:shr-fill-[CanvasText]',\n ],\n loader: [\n 'shr-align-bottom',\n '[&_.smarthr-ui-Loader-spinner]:shr-h-em [&_.smarthr-ui-Loader-spinner]:shr-w-em',\n ],\n },\n variants: {\n variant: {\n primary: {},\n secondary: {},\n danger: {},\n skeleton: {},\n text: {},\n tertiary: {},\n },\n size: {\n M: {},\n S: {},\n },\n square: {\n true: {},\n },\n loading: {\n true: {},\n },\n wide: {\n true: {},\n },\n },\n compoundSlots: [\n {\n slots: ['button', 'anchor'],\n className: [\n 'shr-box-border',\n 'shr-cursor-pointer',\n 'shr-inline-flex',\n 'shr-justify-center',\n 'shr-items-center',\n 'shr-gap-0.5',\n 'shr-text-center',\n 'shr-whitespace-nowrap',\n 'shr-rounded-m',\n /* ボタンの高さを合わせるために指定 */\n 'shr-border-shorthand',\n 'shr-font-inherit',\n 'shr-font-bold',\n 'shr-leading-none',\n 'focus-visible:shr-focus-indicator',\n 'contrast-more:shr-border-high-contrast',\n /* baseline より下の leading などの余白を埋める */\n '[&_.smarthr-ui-Icon]:shr-block',\n /** selector list は使えない\n * via https://github.com/tailwindlabs/tailwindcss/issues/10576#issuecomment-1440703413\n */\n '[&_svg]:shr-block',\n ],\n },\n {\n slots: ['button', 'anchor'],\n size: 'S',\n className: [\n 'shr-p-0.5',\n 'shr-text-sm',\n /* ボタンラベルの line-height を 0 にしたため、高さを担保する */\n 'shr-min-h-[calc(theme(fontSize.sm)+theme(spacing.1)+theme(borderWidth.2))]',\n ],\n },\n {\n slots: ['button', 'anchor'],\n size: 'M',\n className: ['shr-text-base'],\n },\n {\n slots: ['button', 'anchor'],\n size: 'M',\n square: false,\n className: 'shr-px-1 shr-py-0.75',\n },\n {\n slots: ['button', 'anchor'],\n size: 'M',\n square: true,\n className: 'shr-p-0.75',\n },\n {\n slots: ['button', 'anchor'],\n loading: true,\n className: 'shr-flex-row-reverse',\n },\n {\n slots: ['button', 'anchor'],\n wide: true,\n className: 'shr-w-full',\n },\n {\n slots: ['button', 'anchor'],\n variant: 'primary',\n className: [\n 'shr-border-main',\n 'shr-bg-main',\n 'shr-text-white',\n 'focus-visible:shr-border-main-darken',\n 'focus-visible:shr-bg-main-darken',\n 'hover:shr-border-main-darken',\n 'hover:shr-bg-main-darken',\n ],\n },\n {\n slots: ['button'],\n variant: 'primary',\n className: [\n 'aria-disabled:shr-border-main/50',\n 'aria-disabled:shr-bg-main/50',\n 'aria-disabled:shr-text-white/50',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'primary',\n className: [\n '[&:not([href])]:shr-border-main/50',\n '[&:not([href])]:shr-bg-main/50',\n '[&:not([href])]:shr-text-white/50',\n ],\n },\n {\n slots: ['button', 'anchor'],\n variant: 'secondary',\n className: [\n 'shr-border-default',\n 'shr-bg-white',\n 'shr-text-black',\n 'focus-visible:shr-border-darken',\n 'focus-visible:shr-bg-white-darken',\n 'focus-visible:contrast-more:shr-border-high-contrast',\n 'hover:shr-border-darken',\n 'hover:shr-bg-white-darken',\n 'hover:contrast-more:shr-border-high-contrast',\n ],\n },\n {\n slots: ['button'],\n variant: 'secondary',\n className: [\n 'aria-disabled:shr-border-disabled',\n 'aria-disabled:shr-bg-white-darken',\n 'aria-disabled:shr-text-disabled',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'secondary',\n className: [\n '[&:not([href])]:shr-border-disabled',\n '[&:not([href])]:shr-bg-white-darken',\n '[&:not([href])]:shr-text-disabled',\n ],\n },\n {\n slots: ['button'],\n variant: 'tertiary',\n className: [\n 'shr-border-transparent',\n 'shr-bg-transparent',\n 'shr-text-link',\n 'shr-font-normal',\n 'focus-visible:shr-bg-white-darken',\n 'hover:shr-bg-white-darken',\n 'aria-disabled:shr-bg-transparent',\n 'aria-disabled:shr-text-link/50',\n ],\n },\n {\n slots: ['button', 'anchor'],\n variant: 'danger',\n className: [\n 'shr-border-danger',\n 'shr-bg-danger',\n 'shr-text-white',\n 'focus-visible:shr-border-danger-darken',\n 'focus-visible:shr-bg-danger-darken',\n 'hover:shr-border-danger-darken',\n 'hover:shr-bg-danger-darken',\n ],\n },\n {\n slots: ['button'],\n variant: 'danger',\n className: [\n 'aria-disabled:shr-border-danger/50',\n 'aria-disabled:shr-bg-danger/50',\n 'aria-disabled:shr-text-white/50',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'danger',\n className: [\n '[&:not([href])]:shr-border-danger/50',\n '[&:not([href])]:shr-bg-danger/50',\n '[&:not([href])]:shr-text-white/50',\n ],\n },\n {\n slots: ['button', 'anchor'],\n variant: 'skeleton',\n className: [\n 'shr-border-white',\n 'shr-bg-transparent',\n 'shr-text-white',\n 'focus-visible:shr-border-white-darken',\n 'focus-visible:shr-bg-overlay',\n 'focus-visible:shr-text-white-darken',\n 'hover:shr-border-white-darken',\n 'hover:shr-bg-overlay',\n 'hover:shr-text-white-darken',\n ],\n },\n {\n slots: ['button'],\n variant: 'skeleton',\n className: [\n 'aria-disabled:shr-border-white/50',\n 'aria-disabled:shr-bg-transparent',\n 'aria-disabled:shr-text-white/50',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'skeleton',\n className: [\n '[&:not([href])]:shr-border-white/50',\n '[&:not([href])]:shr-bg-transparent',\n '[&:not([href])]:shr-text-white/50',\n ],\n },\n {\n slots: ['button', 'anchor'],\n variant: 'text',\n className: [\n 'shr-border-transparent',\n 'shr-bg-transparent',\n 'shr-text-black',\n 'focus-visible:shr-bg-white-darken',\n 'hover:shr-bg-white-darken',\n ],\n },\n {\n slots: ['button'],\n variant: 'text',\n className: [\n 'aria-disabled:shr-border-transparent',\n 'aria-disabled:shr-bg-transparent',\n 'aria-disabled:shr-text-disabled',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'text',\n className: [\n '[&:not([href])]:shr-border-transparent',\n '[&:not([href])]:shr-bg-transparent',\n '[&:not([href])]:shr-text-disabled',\n ],\n },\n {\n slots: ['loader'],\n variant: ['primary', 'danger', 'skeleton'],\n className: [\n '[&_.smarthr-ui-Loader-line]:shr-border-white/50',\n '[&_.smarthr-ui-Loader-line]:forced-colors:shr-border-[ButtonBorder]',\n ],\n },\n {\n slots: ['loader'],\n variant: ['secondary', 'text'],\n className: '[&_.smarthr-ui-Loader-line]:shr-border-disabled',\n },\n {\n slots: ['loader'],\n variant: 'tertiary',\n className: '[&_.smarthr-ui-Loader-line]:shr-border-link/50',\n },\n ],\n})\n\nconst innerClassNameGenerator = tv({\n base: [\n 'smarthr-ui-Button-body',\n /* LineClamp を併用する場合に、幅を計算してもらうために指定 */\n 'shr-min-w-0',\n ],\n variants: {\n size: {\n M: '',\n S: [\n /* SVG とテキストコンテンツの縦位置を揃えるために指定 */\n 'shr-leading-[0]',\n ],\n },\n },\n})\n"],"names":["useRef","useState","useMemo","_jsx","Loader","useEffect","_jsxs","_Fragment","tv"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useButtonWrapper.cjs","sources":["../../../src/components/Button/useButtonWrapper.tsx"],"sourcesContent":["import {\n type AnchorHTMLAttributes,\n type ButtonHTMLAttributes,\n type ElementType,\n type ForwardedRef,\n type PropsWithChildren,\n type ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Loader } from '../Loader'\n\nimport type { Variant } from './types'\n\n// HINT: prefix, suffixが存在せず、かつIcon,svg,img,Loaderのいずれかが単一でbodyに含まれるButtonかチェックしたい\n// このSELECTORはbody内の対象を列挙する\n// HINT: smarthr-ui-Icon-extendedはアイコン+α(例えば複数のアイコンをまとめて一つにしているなど)を表すclass\nconst ICON_SELECTOR = '.smarthr-ui-Icon, .smarthr-ui-Icon-extended, svg, img, .smarthr-ui-Loader'\n\ntype AbstractProps = PropsWithChildren<{\n size: 'M' | 'S'\n wide: boolean\n variant: Variant\n $loading?: boolean\n className: string\n elementAs?: ElementType\n prefix?: ReactNode\n suffix?: ReactNode\n}>\n\ntype AbstractButtonProps = AbstractProps & {\n isAnchor?: never\n buttonRef?: ForwardedRef<HTMLButtonElement>\n}\ntype ButtonProps = AbstractButtonProps &\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, keyof AbstractButtonProps>\n\ntype AbstractAnchorProps = AbstractProps & {\n isAnchor: true\n anchorRef?: ForwardedRef<HTMLAnchorElement>\n}\ntype AnchorProps = AbstractAnchorProps &\n Omit<AnchorHTMLAttributes<HTMLAnchorElement>, keyof AbstractAnchorProps>\n\nexport type Props = ButtonProps | AnchorProps\n\n// HINT: useButtonWrapperの引数を調整する場合、以下も調整する\ntype FilteredProps =\n | 'size'\n | 'wide'\n | 'variant'\n | 'className'\n | 'prefix'\n | 'suffix'\n | 'children'\n | 'isAnchor'\nexport type FilteredButtonProps = Omit<ButtonProps, FilteredProps>\nexport type FilteredAnchorProps = Omit<AnchorProps, FilteredProps>\n\nexport const useButtonWrapper = ({\n size,\n wide = false,\n variant,\n $loading,\n className,\n prefix,\n suffix,\n children,\n isAnchor,\n ...rest\n}: Props) => {\n const innerRef = useRef<HTMLElement>(null)\n // HINT: squareは\n // null: Buttonのレンダリング前\n // boolean: レンダリング後\n const [square, setSquare] = useState<null | boolean>(null)\n\n const classNames = useMemo(() => {\n const { button, anchor, loader } = wrapperClassNameGenerator({\n variant,\n size,\n square: !!square,\n loading: !!$loading,\n wide,\n })\n\n const wrapper = isAnchor ? anchor : button\n\n return {\n wrapper: wrapper({ className }),\n loader: loader(),\n }\n }, [$loading, size, square, variant, wide, className, isAnchor])\n\n const innerClassName = useMemo(() => innerClassNameGenerator({ size }), [size])\n\n let actualPrefix = prefix\n let actualSuffix = suffix\n let actualChildren = children\n\n if ($loading) {\n actualPrefix = undefined\n const loader = <Loader size=\"S\" className={classNames.loader} role=\"presentation\" />\n\n // HINT: squareは null | boolean のため、switchで判定する\n // nullの場合にactualSuffixにloaderを突っ込んでしまうとsquareの計算が狂ってしまう\n switch (square) {\n case true:\n actualChildren = loader\n break\n case false:\n actualSuffix = loader\n break\n }\n }\n\n // HINT: actualSuffixなどは$loadingの判定で置き換えられる可能性がある\n // あくまで利用者が設定したprefix, suffixがないかで判定する\n const onlyBody = !prefix && !suffix\n\n useEffect(() => {\n if (!onlyBody) {\n setSquare(false)\n\n return\n }\n\n const target = innerRef.current\n\n if (!target) return\n\n const checkSquare = () => {\n setSquare(target.children.length === 1 && target.children[0].matches(ICON_SELECTOR))\n }\n\n checkSquare()\n\n const observer = new MutationObserver(checkSquare)\n\n observer.observe(target, {\n childList: true,\n })\n\n return () => {\n observer.disconnect()\n }\n }, [onlyBody])\n\n return {\n filteredProps: { ...rest, $loading } as FilteredAnchorProps | FilteredButtonProps,\n classNames,\n children: (\n <>\n {actualPrefix}\n <span ref={innerRef} className={innerClassName}>\n {actualChildren}\n </span>\n {actualSuffix}\n </>\n ),\n }\n}\n\nconst wrapperClassNameGenerator = tv({\n slots: {\n button: [\n 'aria-disabled:shr-cursor-not-allowed',\n /* alpha color を使用しているので、背景色と干渉させない */\n 'aria-disabled:shr-bg-clip-padding',\n /* disabled ではなく aria-disabled で文字色が変わらないため、強制カラーモード時の色を指定 */\n 'aria-disabled:forced-colors:shr-border-[GrayText] aria-disabled:forced-colors:shr-text-[GrayText]',\n '[&_.smarthr-ui-Icon]:forced-colors:aria-disabled:shr-fill-[GrayText]',\n ],\n anchor: [\n 'shr-no-underline',\n '[&:not([href])]:shr-cursor-not-allowed',\n /* alpha color を使用しているので、背景色と干渉させない */\n '[&:not([href])]:shr-bg-clip-padding',\n '[&_.smarthr-ui-Icon]:forced-colors:shr-fill-[LinkText]',\n '[&:not([href])_.smarthr-ui-Icon]:forced-colors:shr-fill-[CanvasText]',\n ],\n loader: [\n 'shr-align-bottom',\n '[&_.smarthr-ui-Loader-spinner]:shr-h-em [&_.smarthr-ui-Loader-spinner]:shr-w-em',\n ],\n },\n variants: {\n variant: {\n primary: {},\n secondary: {},\n danger: {},\n skeleton: {},\n text: {},\n tertiary: {},\n },\n size: {\n M: {},\n S: {},\n },\n square: {\n true: {},\n },\n loading: {\n true: {},\n },\n wide: {\n true: {},\n },\n },\n compoundSlots: [\n {\n slots: ['button', 'anchor'],\n className: [\n 'shr-box-border',\n 'shr-cursor-pointer',\n 'shr-inline-flex',\n 'shr-justify-center',\n 'shr-items-center',\n 'shr-gap-0.5',\n 'shr-text-center',\n 'shr-whitespace-nowrap',\n 'shr-rounded-m',\n /* ボタンの高さを合わせるために指定 */\n 'shr-border-shorthand',\n 'shr-font-inherit',\n 'shr-font-bold',\n 'shr-leading-none',\n 'focus-visible:shr-focus-indicator',\n 'contrast-more:shr-border-high-contrast',\n /* baseline より下の leading などの余白を埋める */\n '[&_.smarthr-ui-Icon]:shr-block',\n /** selector list は使えない\n * via https://github.com/tailwindlabs/tailwindcss/issues/10576#issuecomment-1440703413\n */\n '[&_svg]:shr-block',\n ],\n },\n {\n slots: ['button', 'anchor'],\n size: 'S',\n className: [\n 'shr-p-0.5',\n 'shr-text-sm',\n /* ボタンラベルの line-height を 0 にしたため、高さを担保する */\n 'shr-min-h-[calc(theme(fontSize.sm)+theme(spacing.1)+theme(borderWidth.2))]',\n ],\n },\n {\n slots: ['button', 'anchor'],\n size: 'M',\n className: ['shr-text-base'],\n },\n {\n slots: ['button', 'anchor'],\n size: 'M',\n square: false,\n className: 'shr-px-1 shr-py-0.75',\n },\n {\n slots: ['button', 'anchor'],\n size: 'M',\n square: true,\n className: 'shr-p-0.75',\n },\n {\n slots: ['button', 'anchor'],\n loading: true,\n className: 'shr-flex-row-reverse',\n },\n {\n slots: ['button', 'anchor'],\n wide: true,\n className: 'shr-w-full',\n },\n {\n slots: ['button', 'anchor'],\n variant: 'primary',\n className: [\n 'shr-border-main',\n 'shr-bg-main',\n 'shr-text-white',\n 'focus-visible:shr-border-main-darken',\n 'focus-visible:shr-bg-main-darken',\n 'hover:shr-border-main-darken',\n 'hover:shr-bg-main-darken',\n ],\n },\n {\n slots: ['button'],\n variant: 'primary',\n className: [\n 'aria-disabled:shr-border-main/50',\n 'aria-disabled:shr-bg-main/50',\n 'aria-disabled:shr-text-white/50',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'primary',\n className: [\n '[&:not([href])]:shr-border-main/50',\n '[&:not([href])]:shr-bg-main/50',\n '[&:not([href])]:shr-text-white/50',\n ],\n },\n {\n slots: ['button', 'anchor'],\n variant: 'secondary',\n className: [\n 'shr-border-default',\n 'shr-bg-white',\n 'shr-text-black',\n 'focus-visible:shr-border-darken',\n 'focus-visible:shr-bg-white-darken',\n 'focus-visible:contrast-more:shr-border-high-contrast',\n 'hover:shr-border-darken',\n 'hover:shr-bg-white-darken',\n 'hover:contrast-more:shr-border-high-contrast',\n ],\n },\n {\n slots: ['button'],\n variant: 'secondary',\n className: [\n 'aria-disabled:shr-border-disabled',\n 'aria-disabled:shr-bg-white-darken',\n 'aria-disabled:shr-text-disabled',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'secondary',\n className: [\n '[&:not([href])]:shr-border-disabled',\n '[&:not([href])]:shr-bg-white-darken',\n '[&:not([href])]:shr-text-disabled',\n ],\n },\n {\n slots: ['button'],\n variant: 'tertiary',\n className: [\n 'shr-border-transparent',\n 'shr-bg-transparent',\n 'shr-text-link',\n 'shr-font-normal',\n 'focus-visible:shr-bg-white-darken',\n 'hover:shr-bg-white-darken',\n 'aria-disabled:shr-bg-transparent',\n 'aria-disabled:shr-text-link/50',\n ],\n },\n {\n slots: ['button', 'anchor'],\n variant: 'danger',\n className: [\n 'shr-border-danger',\n 'shr-bg-danger',\n 'shr-text-white',\n 'focus-visible:shr-border-danger-darken',\n 'focus-visible:shr-bg-danger-darken',\n 'hover:shr-border-danger-darken',\n 'hover:shr-bg-danger-darken',\n ],\n },\n {\n slots: ['button'],\n variant: 'danger',\n className: [\n 'aria-disabled:shr-border-danger/50',\n 'aria-disabled:shr-bg-danger/50',\n 'aria-disabled:shr-text-white/50',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'danger',\n className: [\n '[&:not([href])]:shr-border-danger/50',\n '[&:not([href])]:shr-bg-danger/50',\n '[&:not([href])]:shr-text-white/50',\n ],\n },\n {\n slots: ['button', 'anchor'],\n variant: 'skeleton',\n className: [\n 'shr-border-white',\n 'shr-bg-transparent',\n 'shr-text-white',\n 'focus-visible:shr-border-white-darken',\n 'focus-visible:shr-bg-overlay',\n 'focus-visible:shr-text-white-darken',\n 'hover:shr-border-white-darken',\n 'hover:shr-bg-overlay',\n 'hover:shr-text-white-darken',\n ],\n },\n {\n slots: ['button'],\n variant: 'skeleton',\n className: [\n 'aria-disabled:shr-border-white/50',\n 'aria-disabled:shr-bg-transparent',\n 'aria-disabled:shr-text-white/50',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'skeleton',\n className: [\n '[&:not([href])]:shr-border-white/50',\n '[&:not([href])]:shr-bg-transparent',\n '[&:not([href])]:shr-text-white/50',\n ],\n },\n {\n slots: ['button', 'anchor'],\n variant: 'text',\n className: [\n 'shr-border-transparent',\n 'shr-bg-transparent',\n 'shr-text-black',\n 'focus-visible:shr-bg-white-darken',\n 'hover:shr-bg-white-darken',\n ],\n },\n {\n slots: ['button'],\n variant: 'text',\n className: [\n 'aria-disabled:shr-border-transparent',\n 'aria-disabled:shr-bg-transparent',\n 'aria-disabled:shr-text-disabled',\n ],\n },\n {\n slots: ['anchor'],\n variant: 'text',\n className: [\n '[&:not([href])]:shr-border-transparent',\n '[&:not([href])]:shr-bg-transparent',\n '[&:not([href])]:shr-text-disabled',\n ],\n },\n {\n slots: ['loader'],\n variant: ['primary', 'danger', 'skeleton'],\n className: [\n '[&_.smarthr-ui-Loader-line]:shr-border-white/50',\n '[&_.smarthr-ui-Loader-line]:forced-colors:shr-border-[ButtonBorder]',\n ],\n },\n {\n slots: ['loader'],\n variant: ['secondary', 'text'],\n className: '[&_.smarthr-ui-Loader-line]:shr-border-disabled',\n },\n {\n slots: ['loader'],\n variant: 'tertiary',\n className: '[&_.smarthr-ui-Loader-line]:shr-border-link/50',\n },\n ],\n})\n\nconst innerClassNameGenerator = tv({\n base: [\n 'smarthr-ui-Button-body',\n /* LineClamp を併用する場合に、幅を計算してもらうために指定 */\n 'shr-min-w-0',\n ],\n variants: {\n size: {\n M: '',\n S: [\n /* SVG とテキストコンテンツの縦位置を揃えるために指定 */\n 'shr-leading-[0]',\n ],\n },\n },\n})\n"],"names":["useRef","useState","useMemo","_jsx","Loader","useEffect","_jsxs","_Fragment","tv"],"mappings":"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"}
|