@dynatrace/strato-components 0.85.10 → 0.85.21
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/buttons/button/Button.css +1 -0
- package/buttons/index.d.ts +2 -0
- package/buttons/index.js +2 -0
- package/buttons/intent-button/IntentButton.d.ts +44 -0
- package/buttons/intent-button/IntentButton.js +102 -0
- package/buttons/intent-button/useIntentButton.d.ts +12 -0
- package/buttons/intent-button/useIntentButton.js +72 -0
- package/content/index.d.ts +4 -0
- package/content/index.js +5 -1
- package/content/skeleton/Skeleton.css +33 -0
- package/content/skeleton/Skeleton.d.ts +30 -0
- package/content/skeleton/Skeleton.js +60 -0
- package/content/skeleton/Skeleton.sty.d.ts +10 -0
- package/content/skeleton/Skeleton.sty.js +25 -0
- package/content/skeleton/SkeletonText.d.ts +24 -0
- package/content/skeleton/SkeletonText.js +84 -0
- package/esm/buttons/button/Button.css +1 -0
- package/esm/buttons/index.js +2 -0
- package/esm/buttons/index.js.map +2 -2
- package/esm/buttons/intent-button/IntentButton.js +74 -0
- package/esm/buttons/intent-button/IntentButton.js.map +7 -0
- package/esm/buttons/intent-button/useIntentButton.js +57 -0
- package/esm/buttons/intent-button/useIntentButton.js.map +7 -0
- package/esm/content/index.js +5 -1
- package/esm/content/index.js.map +2 -2
- package/esm/content/skeleton/Skeleton.css +33 -0
- package/esm/content/skeleton/Skeleton.js +32 -0
- package/esm/content/skeleton/Skeleton.js.map +7 -0
- package/esm/content/skeleton/Skeleton.sty.js +7 -0
- package/esm/content/skeleton/Skeleton.sty.js.map +7 -0
- package/esm/content/skeleton/SkeletonText.js +56 -0
- package/esm/content/skeleton/SkeletonText.js.map +7 -0
- package/esm/layouts/{Divider → divider}/Divider.css +5 -5
- package/esm/layouts/{Divider → divider}/Divider.js.map +1 -1
- package/esm/layouts/{Divider → divider}/Divider.sty.js +1 -1
- package/esm/layouts/{Divider → divider}/Divider.sty.js.map +2 -2
- package/esm/layouts/helpers/spacingToCss.js +13 -0
- package/esm/layouts/helpers/spacingToCss.js.map +7 -0
- package/esm/layouts/hooks/useLayoutSizeProps.js +15 -0
- package/esm/layouts/hooks/useLayoutSizeProps.js.map +7 -0
- package/esm/layouts/hooks/useLayoutStyles.js +105 -0
- package/esm/layouts/hooks/useLayoutStyles.js.map +7 -0
- package/esm/layouts/hooks/useMarginProps.js +55 -0
- package/esm/layouts/hooks/useMarginProps.js.map +7 -0
- package/esm/layouts/hooks/usePaddingProps.js +59 -0
- package/esm/layouts/hooks/usePaddingProps.js.map +7 -0
- package/esm/layouts/index.js +6 -2
- package/esm/layouts/index.js.map +2 -2
- package/esm/layouts/surface/Surface.css +95 -0
- package/esm/layouts/surface/Surface.js +84 -0
- package/esm/layouts/surface/Surface.js.map +7 -0
- package/esm/layouts/surface/Surface.sty.js +10 -0
- package/esm/layouts/surface/Surface.sty.js.map +7 -0
- package/esm/layouts/surface/variables.sty.js +5 -0
- package/esm/layouts/surface/variables.sty.js.map +7 -0
- package/esm/layouts/types/layout.types.js +1 -0
- package/esm/layouts/types/layout.types.js.map +7 -0
- package/esm/typography/{BlockQuote → block-quote}/Blockquote.css +2 -2
- package/esm/typography/{BlockQuote → block-quote}/Blockquote.js.map +2 -2
- package/esm/typography/{BlockQuote → block-quote}/Blockquote.sty.js +1 -1
- package/esm/typography/{BlockQuote → block-quote}/Blockquote.sty.js.map +2 -2
- package/{typography/Code → esm/typography/code}/Code.css +1 -1
- package/esm/typography/{Code → code}/Code.js.map +2 -2
- package/esm/typography/{Code → code}/Code.sty.js +1 -1
- package/esm/typography/{Code → code}/Code.sty.js.map +2 -2
- package/esm/typography/{Emphasis → emphasis}/Emphasis.css +1 -1
- package/esm/typography/{Emphasis → emphasis}/Emphasis.js.map +2 -2
- package/esm/typography/{Emphasis → emphasis}/Emphasis.sty.js +1 -1
- package/esm/typography/{Emphasis → emphasis}/Emphasis.sty.js.map +2 -2
- package/{typography/ExternalLink → esm/typography/external-link}/ExternalLink.css +6 -6
- package/esm/typography/{ExternalLink → external-link}/ExternalLink.js.map +2 -2
- package/esm/typography/{ExternalLink → external-link}/ExternalLink.sty.js +1 -1
- package/esm/typography/{ExternalLink → external-link}/ExternalLink.sty.js.map +2 -2
- package/esm/typography/{Heading → heading}/Heading.css +7 -7
- package/esm/typography/heading/Heading.js.map +7 -0
- package/esm/typography/heading/Heading.sty.js +7 -0
- package/esm/typography/{Heading → heading}/Heading.sty.js.map +2 -2
- package/esm/typography/{Highlight → highlight}/Highlight.css +1 -1
- package/esm/typography/{Highlight → highlight}/Highlight.js.map +2 -2
- package/esm/typography/{Highlight → highlight}/Highlight.sty.js +1 -1
- package/esm/typography/{Highlight → highlight}/Highlight.sty.js.map +2 -2
- package/esm/typography/index.js +13 -13
- package/esm/typography/index.js.map +1 -1
- package/{typography/Link → esm/typography/link}/Link.css +4 -4
- package/esm/typography/{Link → link}/Link.js +1 -1
- package/esm/typography/link/Link.js.map +7 -0
- package/esm/typography/{Link → link}/Link.sty.js +1 -1
- package/esm/typography/{Link → link}/Link.sty.js.map +2 -2
- package/esm/typography/{List → list}/List.css +4 -4
- package/esm/typography/{List → list}/List.js +1 -1
- package/esm/typography/{List → list}/List.js.map +2 -2
- package/esm/typography/{List → list}/List.sty.js +2 -2
- package/esm/typography/{List → list}/List.sty.js.map +2 -2
- package/esm/typography/{Paragraph → paragraph}/Paragraph.css +3 -3
- package/esm/typography/{Paragraph → paragraph}/Paragraph.js.map +2 -2
- package/esm/typography/{Paragraph → paragraph}/Paragraph.sty.js +1 -1
- package/esm/typography/{Paragraph → paragraph}/Paragraph.sty.js.map +2 -2
- package/{typography/Strikethrough → esm/typography/strikethrough}/Strikethrough.css +1 -1
- package/esm/typography/strikethrough/Strikethrough.js.map +7 -0
- package/esm/typography/{Strikethrough → strikethrough}/Strikethrough.sty.js +1 -1
- package/esm/typography/{Strikethrough → strikethrough}/Strikethrough.sty.js.map +2 -2
- package/{typography/Strong → esm/typography/strong}/Strong.css +1 -1
- package/esm/typography/{Strong → strong}/Strong.js.map +2 -2
- package/esm/typography/{Strong → strong}/Strong.sty.js +1 -1
- package/esm/typography/{Strong → strong}/Strong.sty.js.map +2 -2
- package/{typography/Text → esm/typography/text}/Text.css +3 -3
- package/esm/typography/text/Text.js.map +7 -0
- package/esm/typography/{Text → text}/Text.sty.js +1 -1
- package/esm/typography/{Text → text}/Text.sty.js.map +2 -2
- package/{typography/TextEllipsis → esm/typography/text-ellipsis}/TextEllipsis.css +4 -4
- package/esm/typography/text-ellipsis/TextEllipsis.js.map +7 -0
- package/esm/typography/text-ellipsis/TextEllipsis.sty.js +7 -0
- package/esm/typography/{TextEllipsis → text-ellipsis}/TextEllipsis.sty.js.map +2 -2
- package/lang/en.json +6 -0
- package/lang/ja.json +24 -0
- package/lang/uncompiled/en.json +4 -0
- package/lang/uncompiled/ja.json +14 -1
- package/layouts/{Divider → divider}/Divider.css +5 -5
- package/layouts/{Divider → divider}/Divider.sty.js +1 -1
- package/layouts/helpers/spacingToCss.d.ts +6 -0
- package/layouts/helpers/spacingToCss.js +29 -0
- package/layouts/hooks/useLayoutSizeProps.d.ts +6 -0
- package/layouts/hooks/useLayoutSizeProps.js +33 -0
- package/layouts/hooks/useLayoutStyles.d.ts +7 -0
- package/layouts/hooks/useLayoutStyles.js +123 -0
- package/layouts/hooks/useMarginProps.d.ts +7 -0
- package/layouts/hooks/useMarginProps.js +73 -0
- package/layouts/hooks/usePaddingProps.d.ts +7 -0
- package/layouts/hooks/usePaddingProps.js +77 -0
- package/layouts/index.d.ts +6 -2
- package/layouts/index.js +6 -2
- package/layouts/surface/Surface.css +95 -0
- package/layouts/surface/Surface.d.ts +46 -0
- package/layouts/surface/Surface.js +110 -0
- package/layouts/surface/Surface.sty.d.ts +43 -0
- package/layouts/surface/Surface.sty.js +28 -0
- package/layouts/surface/variables.sty.d.ts +1 -0
- package/layouts/surface/variables.sty.js +23 -0
- package/layouts/types/layout.types.d.ts +64 -0
- package/layouts/types/layout.types.js +15 -0
- package/package.json +2 -2
- package/typography/{BlockQuote → block-quote}/Blockquote.css +2 -2
- package/typography/{BlockQuote → block-quote}/Blockquote.sty.js +1 -1
- package/{esm/typography/Code → typography/code}/Code.css +1 -1
- package/typography/{Code → code}/Code.sty.js +1 -1
- package/typography/{Emphasis → emphasis}/Emphasis.css +1 -1
- package/typography/{Emphasis → emphasis}/Emphasis.sty.js +1 -1
- package/{esm/typography/ExternalLink → typography/external-link}/ExternalLink.css +6 -6
- package/typography/{ExternalLink → external-link}/ExternalLink.sty.js +1 -1
- package/typography/{Heading → heading}/Heading.css +7 -7
- package/typography/{Heading → heading}/Heading.d.ts +3 -2
- package/typography/{Heading → heading}/Heading.sty.js +1 -1
- package/typography/{Highlight → highlight}/Highlight.css +1 -1
- package/typography/{Highlight → highlight}/Highlight.sty.js +1 -1
- package/typography/index.d.ts +26 -26
- package/typography/index.js +13 -13
- package/{esm/typography/Link → typography/link}/Link.css +4 -4
- package/typography/{Link → link}/Link.js +1 -1
- package/typography/{Link → link}/Link.sty.js +1 -1
- package/typography/{List → list}/List.css +4 -4
- package/typography/{List → list}/List.js +1 -1
- package/typography/{List → list}/List.sty.js +2 -2
- package/typography/{Paragraph → paragraph}/Paragraph.css +3 -3
- package/typography/{Paragraph → paragraph}/Paragraph.sty.js +1 -1
- package/{esm/typography/Strikethrough → typography/strikethrough}/Strikethrough.css +1 -1
- package/typography/{Strikethrough → strikethrough}/Strikethrough.d.ts +2 -2
- package/typography/{Strikethrough → strikethrough}/Strikethrough.sty.js +1 -1
- package/{esm/typography/Strong → typography/strong}/Strong.css +1 -1
- package/typography/{Strong → strong}/Strong.sty.js +1 -1
- package/{esm/typography/Text → typography/text}/Text.css +3 -3
- package/typography/{Text → text}/Text.d.ts +3 -2
- package/typography/{Text → text}/Text.sty.js +1 -1
- package/{esm/typography/TextEllipsis → typography/text-ellipsis}/TextEllipsis.css +4 -4
- package/typography/{TextEllipsis → text-ellipsis}/TextEllipsis.d.ts +3 -3
- package/typography/{TextEllipsis → text-ellipsis}/TextEllipsis.sty.js +1 -1
- package/esm/typography/Heading/Heading.js.map +0 -7
- package/esm/typography/Heading/Heading.sty.js +0 -7
- package/esm/typography/Link/Link.js.map +0 -7
- package/esm/typography/Strikethrough/Strikethrough.js.map +0 -7
- package/esm/typography/Text/Text.js.map +0 -7
- package/esm/typography/TextEllipsis/TextEllipsis.js.map +0 -7
- package/esm/typography/TextEllipsis/TextEllipsis.sty.js +0 -7
- package/esm/layouts/{Divider → divider}/Divider.js +0 -0
- package/esm/typography/{BlockQuote → block-quote}/Blockquote.js +0 -0
- package/esm/typography/{Code → code}/Code.js +0 -0
- package/esm/typography/{Emphasis → emphasis}/Emphasis.js +0 -0
- package/esm/typography/{ExternalLink → external-link}/ExternalLink.js +0 -0
- package/esm/typography/{Heading → heading}/Heading.js +0 -0
- package/esm/typography/{Highlight → highlight}/Highlight.js +0 -0
- package/esm/typography/{Paragraph → paragraph}/Paragraph.js +0 -0
- package/esm/typography/{Strikethrough → strikethrough}/Strikethrough.js +0 -0
- package/esm/typography/{Strong → strong}/Strong.js +0 -0
- package/esm/typography/{Text → text}/Text.js +0 -0
- package/esm/typography/{TextEllipsis → text-ellipsis}/TextEllipsis.js +0 -0
- package/layouts/{Divider → divider}/Divider.d.ts +0 -0
- package/layouts/{Divider → divider}/Divider.js +0 -0
- package/layouts/{Divider → divider}/Divider.sty.d.ts +0 -0
- package/typography/{BlockQuote → block-quote}/Blockquote.d.ts +1 -1
- package/typography/{BlockQuote → block-quote}/Blockquote.js +0 -0
- package/typography/{BlockQuote → block-quote}/Blockquote.sty.d.ts +0 -0
- package/typography/{Code → code}/Code.d.ts +1 -1
- package/typography/{Code → code}/Code.js +0 -0
- package/typography/{Code → code}/Code.sty.d.ts +0 -0
- package/typography/{Emphasis → emphasis}/Emphasis.d.ts +1 -1
- package/typography/{Emphasis → emphasis}/Emphasis.js +0 -0
- package/typography/{Emphasis → emphasis}/Emphasis.sty.d.ts +0 -0
- package/typography/{ExternalLink → external-link}/ExternalLink.d.ts +1 -1
- package/typography/{ExternalLink → external-link}/ExternalLink.js +0 -0
- package/typography/{ExternalLink → external-link}/ExternalLink.sty.d.ts +0 -0
- package/typography/{Heading → heading}/Heading.js +0 -0
- package/typography/{Heading → heading}/Heading.sty.d.ts +0 -0
- package/typography/{Highlight → highlight}/Highlight.d.ts +1 -1
- package/typography/{Highlight → highlight}/Highlight.js +0 -0
- package/typography/{Highlight → highlight}/Highlight.sty.d.ts +0 -0
- package/typography/{Link → link}/Link.d.ts +1 -1
- package/typography/{Link → link}/Link.sty.d.ts +0 -0
- package/typography/{List → list}/List.d.ts +1 -1
- package/typography/{List → list}/List.sty.d.ts +0 -0
- package/typography/{Paragraph → paragraph}/Paragraph.d.ts +1 -1
- package/typography/{Paragraph → paragraph}/Paragraph.js +0 -0
- package/typography/{Paragraph → paragraph}/Paragraph.sty.d.ts +0 -0
- package/typography/{Strikethrough → strikethrough}/Strikethrough.js +0 -0
- package/typography/{Strikethrough → strikethrough}/Strikethrough.sty.d.ts +0 -0
- package/typography/{Strong → strong}/Strong.d.ts +1 -1
- /package/typography/{Strong → strong}/Strong.js +0 -0
- /package/typography/{Strong → strong}/Strong.sty.d.ts +0 -0
- /package/typography/{Text → text}/Text.js +0 -0
- /package/typography/{Text → text}/Text.sty.d.ts +0 -0
- /package/typography/{TextEllipsis → text-ellipsis}/TextEllipsis.js +0 -0
- /package/typography/{TextEllipsis → text-ellipsis}/TextEllipsis.sty.d.ts +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/buttons/intent-button/IntentButton.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { forwardRef } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { OpenWithIcon } from '@dynatrace/strato-icons';\nimport { type IntentPayload } from '@dynatrace-sdk/navigation';\n\nimport { useIntentButton } from './useIntentButton.js';\nimport { type AriaLabelingProps } from '../../core/types/a11y-props.js';\nimport { type DataTestId } from '../../core/types/data-props.js';\nimport { type DOMProps } from '../../core/types/dom.js';\nimport { type MaskingProps } from '../../core/types/masking-props.js';\nimport { type StylingProps } from '../../core/types/styling-props.js';\nimport { Button, type ButtonOwnProps } from '../button/Button.js';\n\n//#region Typings\n/**\n * Accepted properties for the Button.\n * @public\n */\nexport interface IntentButtonPropsBase\n extends Omit<ButtonOwnProps, 'loading' | 'type'>,\n AriaLabelingProps,\n DOMProps,\n StylingProps,\n DataTestId,\n MaskingProps {\n /** Intent payload passed between apps.*/\n payload: IntentPayload;\n\n /** Intended for setting a custom button label. When nothing is set, no label is shown. */\n children?: string;\n}\n\n/**\n * Merge own props with ID props.\n * Props for recommending an app to receive the intent. Either both properties or none of them needs to be specified.\n * @public\n */\nexport type IntentButtonProps = IntentButtonPropsBase &\n (\n | {\n appId?: never;\n intentId?: never;\n }\n | {\n /**\n * ID of the app that will be launched to handle the intent.\n */\n appId: string;\n\n /**\n * ID of the action that will be passed to the app.\n */\n intentId: string;\n }\n );\n\n//#endregion\n\n/**\n * The `IntentButton` is a dedicated button component for sending\n * {@link https://developer.dynatrace.com/develop/intents/ | intents}.\n * It takes care of opening the intent dialog. An `IntentButton` only works\n * in the AppShell context.\n * @public\n */\nexport const IntentButton = /* @__PURE__ */ forwardRef<\n HTMLAnchorElement,\n IntentButtonProps\n>((props, forwardedRef) => {\n const intl = useIntl();\n const {\n children,\n payload,\n appId,\n intentId,\n disabled,\n onClick: onClickProp,\n 'aria-label': ariaLabelProp,\n className: consumerClassName,\n style: consumerStyle,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n ...remainingProps\n }: IntentButtonProps = props;\n\n const label = children?.trim();\n\n const ariaLabel =\n ariaLabelProp ||\n label ||\n intl.formatMessage({\n description: 'Intent button open label',\n defaultMessage: 'Open with',\n id: 'JQOGuaGgqJObmSY1',\n });\n\n const intentButtonProps = useIntentButton(\n payload,\n appId,\n intentId,\n onClickProp,\n );\n\n // polymorph it back to a button in case it's disabled.\n // Keep the button focusable if disabled for better screen reader support.\n if (disabled) {\n return (\n <Button\n disabled\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n aria-label={ariaLabel}\n className={consumerClassName}\n style={consumerStyle}\n {...remainingProps}\n >\n {label}\n <Button.Suffix>\n <OpenWithIcon />\n </Button.Suffix>\n </Button>\n );\n }\n\n return (\n <Button\n as=\"a\"\n ref={forwardedRef}\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n aria-label={ariaLabel ?? label}\n className={consumerClassName}\n style={consumerStyle}\n {...remainingProps}\n {...intentButtonProps}\n >\n {label}\n <Button.Suffix>\n <OpenWithIcon />\n </Button.Suffix>\n </Button>\n );\n});\n\n(IntentButton as typeof IntentButton & { displayName: string }).displayName =\n 'IntentButton';\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,SAAS,kBAAkB;AAClC,SAAS,eAAe;AAExB,SAAS,oBAAoB;AAG7B,SAAS,uBAAuB;AAMhC,SAAS,cAAmC;AAsDrC,MAAM,eAA+B,2BAG1C,CAAC,OAAO,iBAAiB;AACzB,QAAM,OAAO,QAAQ;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,cAAc;AAAA,IACd,WAAW;AAAA,IACX,OAAO;AAAA,IACP,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,GAAG;AAAA,EACL,IAAuB;AAEvB,QAAM,QAAQ,UAAU,KAAK;AAE7B,QAAM,YACJ,iBACA,SACA,KAAK,cAAc;AAAA,IACjB,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,IAAI;AAAA,EACN,CAAC;AAEH,QAAM,oBAAoB;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAIA,MAAI,UAAU;AACZ,WACE;AAAA,MAAC;AAAA;AAAA,QACC,UAAQ;AAAA,QACR,eAAa;AAAA,QACb,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAClB,cAAY;AAAA,QACZ,WAAW;AAAA,QACX,OAAO;AAAA,QACN,GAAG;AAAA;AAAA,MAEH;AAAA,MACD,oCAAC,OAAO,QAAP,MACC,oCAAC,kBAAa,CAChB;AAAA,IACF;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,KAAK;AAAA,MACL,eAAa;AAAA,MACb,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,cAAY,aAAa;AAAA,MACzB,WAAW;AAAA,MACX,OAAO;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA;AAAA,IAEH;AAAA,IACD,oCAAC,OAAO,QAAP,MACC,oCAAC,kBAAa,CAChB;AAAA,EACF;AAEJ,CAAC;AAEA,aAA+D,cAC9D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { useCallback, useMemo } from "react";
|
|
2
|
+
import {
|
|
3
|
+
getIntentLink,
|
|
4
|
+
sendIntent
|
|
5
|
+
} from "@dynatrace-sdk/navigation";
|
|
6
|
+
function useIntentButton(payload, appId, intentId, onClickProp) {
|
|
7
|
+
const href = useMemo(
|
|
8
|
+
() => (
|
|
9
|
+
// SDK documentation is invalid. appId & intentId are in fact mandatory.
|
|
10
|
+
// This is why the ternary is necessary to ensure to call the correct signature.
|
|
11
|
+
appId && intentId ? getIntentLink(payload, appId, intentId) : getIntentLink(payload)
|
|
12
|
+
),
|
|
13
|
+
[appId, intentId, payload]
|
|
14
|
+
);
|
|
15
|
+
const triggerIntent = useCallback(() => {
|
|
16
|
+
appId && intentId ? sendIntent(payload, appId, intentId) : sendIntent(payload);
|
|
17
|
+
}, [appId, intentId, payload]);
|
|
18
|
+
const onClick = useCallback(
|
|
19
|
+
(event) => {
|
|
20
|
+
onClickProp?.(event);
|
|
21
|
+
if (event.isDefaultPrevented()) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const nativeEvent = event.nativeEvent;
|
|
25
|
+
if (nativeEvent.button !== 0 || nativeEvent.metaKey || nativeEvent.ctrlKey || nativeEvent.shiftKey) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
triggerIntent();
|
|
30
|
+
},
|
|
31
|
+
[onClickProp, triggerIntent]
|
|
32
|
+
);
|
|
33
|
+
const onKeyDown = useCallback(
|
|
34
|
+
(event) => {
|
|
35
|
+
const nativeEvent = event.nativeEvent;
|
|
36
|
+
if (nativeEvent.code !== "Space" && nativeEvent.code !== "Enter") {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
if (nativeEvent.metaKey || nativeEvent.ctrlKey) {
|
|
41
|
+
window.open(href);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (nativeEvent.shiftKey) {
|
|
45
|
+
window.open(href, "_blank", "menubar");
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
triggerIntent();
|
|
49
|
+
},
|
|
50
|
+
[href, triggerIntent]
|
|
51
|
+
);
|
|
52
|
+
return { href, onClick, onKeyDown };
|
|
53
|
+
}
|
|
54
|
+
export {
|
|
55
|
+
useIntentButton
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=useIntentButton.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/buttons/intent-button/useIntentButton.ts"],
|
|
4
|
+
"sourcesContent": ["import { useCallback, useMemo } from 'react';\n\nimport {\n getIntentLink,\n type IntentPayload,\n sendIntent,\n} from '@dynatrace-sdk/navigation';\n\n/**\n * return shared intent button logic\n * @param payload - an intent payload\n * @returns intentLink and triggerIntent\n * @internal\n */\nexport function useIntentButton(\n payload: IntentPayload,\n appId?: string,\n intentId?: string,\n onClickProp?: React.MouseEventHandler,\n) {\n /**\n * Contains the url created via the getIntentLink SDK method.\n * @returns a url to be used\n */\n const href = useMemo(\n () =>\n // SDK documentation is invalid. appId & intentId are in fact mandatory.\n // This is why the ternary is necessary to ensure to call the correct signature.\n appId && intentId\n ? getIntentLink(payload, appId, intentId)\n : getIntentLink(payload),\n [appId, intentId, payload],\n );\n\n /**\n * Sends intent to shell.\n * @returns void\n */\n const triggerIntent = useCallback(() => {\n // SDK documentation is invalid. appId & intentId are in fact mandatory.\n // This is why the ternary is necessary to ensure to call the correct signature.\n appId && intentId\n ? sendIntent(payload, appId, intentId)\n : sendIntent(payload);\n }, [appId, intentId, payload]);\n\n /**\n * Mouse event handler, send intent on left button click without using any modifiers.\n */\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n onClickProp?.(event);\n if (event.isDefaultPrevented()) {\n // already handled\n return;\n }\n\n const nativeEvent = event.nativeEvent;\n\n if (\n nativeEvent.button !== 0 ||\n nativeEvent.metaKey ||\n nativeEvent.ctrlKey ||\n nativeEvent.shiftKey\n ) {\n return; // let the browser handle the event\n }\n\n event.preventDefault();\n triggerIntent();\n },\n [onClickProp, triggerIntent],\n );\n\n /**\n * KeyDown event handler, sent intent on Space and ENTER\n */\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const nativeEvent = event.nativeEvent;\n\n if (nativeEvent.code !== 'Space' && nativeEvent.code !== 'Enter') {\n return; // let the browser handle the event\n }\n\n event.preventDefault();\n\n // open intent link in new tab while pressing ctrl/meta\n if (nativeEvent.metaKey || nativeEvent.ctrlKey) {\n window.open(href);\n return;\n }\n\n // open intent link in new window\n if (nativeEvent.shiftKey) {\n window.open(href, '_blank', 'menubar');\n return;\n }\n\n // let the shell handle the intent\n triggerIntent();\n },\n [href, triggerIntent],\n );\n\n return { href, onClick, onKeyDown };\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,aAAa,eAAe;AAErC;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAQA,SAAS,gBACd,SACA,OACA,UACA,aACA;AAKA,QAAM,OAAO;AAAA,IACX;AAAA;AAAA;AAAA,MAGE,SAAS,WACL,cAAc,SAAS,OAAO,QAAQ,IACtC,cAAc,OAAO;AAAA;AAAA,IAC3B,CAAC,OAAO,UAAU,OAAO;AAAA,EAC3B;AAMA,QAAM,gBAAgB,YAAY,MAAM;AAGtC,aAAS,WACL,WAAW,SAAS,OAAO,QAAQ,IACnC,WAAW,OAAO;AAAA,EACxB,GAAG,CAAC,OAAO,UAAU,OAAO,CAAC;AAK7B,QAAM,UAAU;AAAA,IACd,CAAC,UAA4B;AAC3B,oBAAc,KAAK;AACnB,UAAI,MAAM,mBAAmB,GAAG;AAE9B;AAAA,MACF;AAEA,YAAM,cAAc,MAAM;AAE1B,UACE,YAAY,WAAW,KACvB,YAAY,WACZ,YAAY,WACZ,YAAY,UACZ;AACA;AAAA,MACF;AAEA,YAAM,eAAe;AACrB,oBAAc;AAAA,IAChB;AAAA,IACA,CAAC,aAAa,aAAa;AAAA,EAC7B;AAKA,QAAM,YAAY;AAAA,IAChB,CAAC,UAA+B;AAC9B,YAAM,cAAc,MAAM;AAE1B,UAAI,YAAY,SAAS,WAAW,YAAY,SAAS,SAAS;AAChE;AAAA,MACF;AAEA,YAAM,eAAe;AAGrB,UAAI,YAAY,WAAW,YAAY,SAAS;AAC9C,eAAO,KAAK,IAAI;AAChB;AAAA,MACF;AAGA,UAAI,YAAY,UAAU;AACxB,eAAO,KAAK,MAAM,UAAU,SAAS;AACrC;AAAA,MACF;AAGA,oBAAc;AAAA,IAChB;AAAA,IACA,CAAC,MAAM,aAAa;AAAA,EACtB;AAEA,SAAO,EAAE,MAAM,SAAS,UAAU;AACpC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/esm/content/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { ProgressBar } from "./progress/ProgressBar.js";
|
|
2
2
|
import { ProgressCircle } from "./progress/ProgressCircle.js";
|
|
3
|
+
import { Skeleton } from "./skeleton/Skeleton.js";
|
|
4
|
+
import { SkeletonText } from "./skeleton/SkeletonText.js";
|
|
3
5
|
export {
|
|
4
6
|
ProgressBar,
|
|
5
|
-
ProgressCircle
|
|
7
|
+
ProgressCircle,
|
|
8
|
+
Skeleton,
|
|
9
|
+
SkeletonText
|
|
6
10
|
};
|
|
7
11
|
//# sourceMappingURL=index.js.map
|
package/esm/content/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/content/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { ProgressBar } from './progress/ProgressBar.js';\nexport type { ProgressBarProps } from './progress/ProgressBar.js';\nexport type { ProgressBarIconProps } from './progress/ProgressBarIcon.js';\nexport type { ProgressBarLabelProps } from './progress/ProgressBarLabel.js';\nexport type { ProgressBarValueProps } from './progress/ProgressBarValue.js';\nexport { ProgressCircle } from './progress/ProgressCircle.js';\nexport type { ProgressCircleProps } from './progress/ProgressCircle.js';\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,mBAAmB;AAK5B,SAAS,sBAAsB;",
|
|
4
|
+
"sourcesContent": ["export { ProgressBar } from './progress/ProgressBar.js';\nexport type { ProgressBarProps } from './progress/ProgressBar.js';\nexport type { ProgressBarIconProps } from './progress/ProgressBarIcon.js';\nexport type { ProgressBarLabelProps } from './progress/ProgressBarLabel.js';\nexport type { ProgressBarValueProps } from './progress/ProgressBarValue.js';\nexport { ProgressCircle } from './progress/ProgressCircle.js';\nexport type { ProgressCircleProps } from './progress/ProgressCircle.js';\nexport { Skeleton } from './skeleton/Skeleton.js';\nexport type { SkeletonProps } from './skeleton/Skeleton.js';\nexport { SkeletonText } from './skeleton/SkeletonText.js';\nexport type { SkeletonTextProps } from './skeleton/SkeletonText.js';\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,mBAAmB;AAK5B,SAAS,sBAAsB;AAE/B,SAAS,gBAAgB;AAEzB,SAAS,oBAAoB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@keyframes Skeleton_skeletonAnimationKeyframes__1a1ozfd0 {
|
|
2
|
+
0% {
|
|
3
|
+
transform: translateX(-100%) scaleX(0);
|
|
4
|
+
}
|
|
5
|
+
100% {
|
|
6
|
+
transform: translateX(100%) scaleX(1.5);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
.Skeleton_skeletonPlaceholderCSS__1a1ozfd1 {
|
|
10
|
+
position: relative;
|
|
11
|
+
overflow: hidden;
|
|
12
|
+
background-color: var(--dt-colors-background-field-neutral-disabled, #dadbe780);
|
|
13
|
+
}
|
|
14
|
+
.Skeleton_skeletonPlaceholderCSS__1a1ozfd1:after {
|
|
15
|
+
content: "";
|
|
16
|
+
position: absolute;
|
|
17
|
+
top: 0;
|
|
18
|
+
left: 0;
|
|
19
|
+
width: 100%;
|
|
20
|
+
height: 100%;
|
|
21
|
+
background-color: var(--dt-colors-background-field-neutral-disabled, #dadbe780);
|
|
22
|
+
animation-iteration-count: infinite;
|
|
23
|
+
transform-origin: left center;
|
|
24
|
+
animation-name: Skeleton_skeletonAnimationKeyframes__1a1ozfd0;
|
|
25
|
+
animation-duration: var(--dt-timings-slow-gentle, 800ms);
|
|
26
|
+
animation-timing-function: var(--dt-easings-fast-in-slow-out, cubic-bezier(0.4, 0, 0.2, 1));
|
|
27
|
+
}
|
|
28
|
+
.Skeleton_skeletonPlaceholderCSS_variant_default__1a1ozfd2 {
|
|
29
|
+
border-radius: var(--dt-borders-radius-container-subdued, 8px);
|
|
30
|
+
}
|
|
31
|
+
.Skeleton_skeletonPlaceholderCSS_variant_rounded__1a1ozfd3 {
|
|
32
|
+
border-radius: 9999px;
|
|
33
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import clsx from "clsx";
|
|
2
|
+
import React, { forwardRef } from "react";
|
|
3
|
+
import { skeletonPlaceholderCSS } from "./Skeleton.sty.js";
|
|
4
|
+
const Skeleton = forwardRef(
|
|
5
|
+
(props, forwardedRef) => {
|
|
6
|
+
const {
|
|
7
|
+
children,
|
|
8
|
+
variant = "default",
|
|
9
|
+
width = "100%",
|
|
10
|
+
height = "100%",
|
|
11
|
+
className: consumerClassName,
|
|
12
|
+
style: consumerStyle,
|
|
13
|
+
"data-testid": dataTestId,
|
|
14
|
+
...remainingProps
|
|
15
|
+
} = props;
|
|
16
|
+
return /* @__PURE__ */ React.createElement(
|
|
17
|
+
"div",
|
|
18
|
+
{
|
|
19
|
+
"data-testid": dataTestId,
|
|
20
|
+
ref: forwardedRef,
|
|
21
|
+
className: clsx(skeletonPlaceholderCSS({ variant }), consumerClassName),
|
|
22
|
+
style: { width, height, ...consumerStyle },
|
|
23
|
+
...remainingProps
|
|
24
|
+
},
|
|
25
|
+
children
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
export {
|
|
30
|
+
Skeleton
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/content/skeleton/Skeleton.tsx"],
|
|
4
|
+
"sourcesContent": ["import clsx from 'clsx';\nimport React, { CSSProperties, forwardRef } from 'react';\n\nimport { skeletonPlaceholderCSS } from './Skeleton.sty.js';\nimport { type DataTestId } from '../../core/types/data-props.js';\nimport { type StylingProps } from '../../core/types/styling-props.js';\nimport { type WithChildren } from '../../core/types/with-children.js';\n\n/**\n * Accepted properties for Skeleton\n * @public\n */\nexport interface SkeletonProps extends WithChildren, StylingProps, DataTestId {\n /**\n * Defines the shape of the Skeleton.\n * @defaultValue 'default'\n */\n variant?: 'default' | 'rounded';\n /**\n * Width of the Skeleton placeholder.\n * @defaultValue 100%\n */\n width?: CSSProperties['width'];\n /**\n * Height of the Skeleton placeholder.\n * @defaultValue 100%\n */\n height?: CSSProperties['height'];\n}\n\n/**\n * The `Skeleton` component renders a colored block with an animated background, indicating that something is loading.\n * @public\n */\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n (props, forwardedRef) => {\n const {\n children,\n variant = 'default',\n width = '100%',\n height = '100%',\n className: consumerClassName,\n style: consumerStyle,\n 'data-testid': dataTestId,\n ...remainingProps\n }: SkeletonProps = props;\n\n return (\n <div\n data-testid={dataTestId}\n ref={forwardedRef}\n className={clsx(skeletonPlaceholderCSS({ variant }), consumerClassName)}\n style={{ width: width, height: height, ...consumerStyle }}\n {...remainingProps}\n >\n {children}\n </div>\n );\n },\n);\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,SAAwB,kBAAkB;AAEjD,SAAS,8BAA8B;AA+BhC,MAAM,WAAW;AAAA,EACtB,CAAC,OAAO,iBAAiB;AACvB,UAAM;AAAA,MACJ;AAAA,MACA,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,WAAW;AAAA,MACX,OAAO;AAAA,MACP,eAAe;AAAA,MACf,GAAG;AAAA,IACL,IAAmB;AAEnB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa;AAAA,QACb,KAAK;AAAA,QACL,WAAW,KAAK,uBAAuB,EAAE,QAAQ,CAAC,GAAG,iBAAiB;AAAA,QACtE,OAAO,EAAE,OAAc,QAAgB,GAAG,cAAc;AAAA,QACvD,GAAG;AAAA;AAAA,MAEH;AAAA,IACH;AAAA,EAEJ;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import "./Skeleton.css";
|
|
2
|
+
import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3
|
+
var skeletonPlaceholderCSS = _7a468({ defaultClassName: "Skeleton_skeletonPlaceholderCSS__1a1ozfd1", variantClassNames: { variant: { "default": "Skeleton_skeletonPlaceholderCSS_variant_default__1a1ozfd2", rounded: "Skeleton_skeletonPlaceholderCSS_variant_rounded__1a1ozfd3" } }, defaultVariants: {}, compoundVariants: [] });
|
|
4
|
+
export {
|
|
5
|
+
skeletonPlaceholderCSS
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=Skeleton.sty.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/content/skeleton/Skeleton.css.ts"],
|
|
4
|
+
"sourcesContent": ["import './Skeleton.css';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var skeletonPlaceholderCSS = _7a468({defaultClassName:'Skeleton_skeletonPlaceholderCSS__1a1ozfd1',variantClassNames:{variant:{'default':'Skeleton_skeletonPlaceholderCSS_variant_default__1a1ozfd2',rounded:'Skeleton_skeletonPlaceholderCSS_variant_rounded__1a1ozfd3'}},defaultVariants:{},compoundVariants:[]});"],
|
|
5
|
+
"mappings": "AAAA,OAAO;AACP,SAAS,mBAAmB,cAAc;AACnC,IAAI,yBAAyB,OAAO,EAAC,kBAAiB,6CAA4C,mBAAkB,EAAC,SAAQ,EAAC,WAAU,6DAA4D,SAAQ,4DAA2D,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
import { Skeleton } from "./Skeleton.js";
|
|
3
|
+
import { Flex } from "../../layouts/flex/Flex.js";
|
|
4
|
+
const SkeletonText = forwardRef(
|
|
5
|
+
(props, forwardedRef) => {
|
|
6
|
+
const {
|
|
7
|
+
width = "100%",
|
|
8
|
+
lines = 3,
|
|
9
|
+
className: consumerClassName,
|
|
10
|
+
style: consumerStyle,
|
|
11
|
+
"data-testid": dataTestId,
|
|
12
|
+
...remainingProps
|
|
13
|
+
} = props;
|
|
14
|
+
const getSkeletonLinesMargin = (line, lines2) => {
|
|
15
|
+
if (lines2 === 1) {
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
return (line + 2) % 3 * 12;
|
|
19
|
+
};
|
|
20
|
+
const getSkeletonLines = (lines2) => {
|
|
21
|
+
const render = [];
|
|
22
|
+
for (let line = 0; line < lines2; line++) {
|
|
23
|
+
const width2 = `calc(100% - ${getSkeletonLinesMargin(line, lines2)}px)`;
|
|
24
|
+
render.push(
|
|
25
|
+
/* @__PURE__ */ React.createElement(
|
|
26
|
+
Skeleton,
|
|
27
|
+
{
|
|
28
|
+
key: `${lines2}-${line}`,
|
|
29
|
+
width: width2,
|
|
30
|
+
height: "12px"
|
|
31
|
+
}
|
|
32
|
+
)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
return render;
|
|
36
|
+
};
|
|
37
|
+
return /* @__PURE__ */ React.createElement(
|
|
38
|
+
Flex,
|
|
39
|
+
{
|
|
40
|
+
"data-testid": dataTestId,
|
|
41
|
+
ref: forwardedRef,
|
|
42
|
+
flexDirection: "column",
|
|
43
|
+
gap: 8,
|
|
44
|
+
paddingY: 4,
|
|
45
|
+
className: consumerClassName,
|
|
46
|
+
style: { width, ...consumerStyle },
|
|
47
|
+
...remainingProps
|
|
48
|
+
},
|
|
49
|
+
getSkeletonLines(lines)
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
export {
|
|
54
|
+
SkeletonText
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=SkeletonText.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/content/skeleton/SkeletonText.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { type CSSProperties, forwardRef } from 'react';\n\nimport { Skeleton } from './Skeleton.js';\nimport { type DataTestId } from '../../core/types/data-props.js';\nimport { type StylingProps } from '../../core/types/styling-props.js';\nimport { Flex } from '../../layouts/flex/Flex.js';\n\n/**\n * Accepted properties for SkeletonText\n * @public\n */\nexport interface SkeletonTextProps extends StylingProps, DataTestId {\n /**\n * Width of the SkeletonText placeholder.\n * @defaultValue 100%\n */\n width?: CSSProperties['width'];\n /**\n * Number of Lines of the SkeletonText placeholder.\n * @defaultValue 3\n */\n lines?: number;\n}\n\n/**\n * The `SkeletonText` component renders a specified number of placeholder boxes for lines of text with an animated background.\n * @public\n */\nexport const SkeletonText = forwardRef<HTMLDivElement, SkeletonTextProps>(\n (props, forwardedRef) => {\n const {\n width = '100%',\n lines = 3,\n className: consumerClassName,\n style: consumerStyle,\n 'data-testid': dataTestId,\n ...remainingProps\n }: SkeletonTextProps = props;\n\n const getSkeletonLinesMargin = (line: number, lines: number) => {\n if (lines === 1) {\n // do not add any margin for single-line SkeletonTexts\n return 0;\n }\n return ((line + 2) % 3) * 12;\n };\n\n const getSkeletonLines = (lines: number) => {\n const render: React.ReactNode[] = [];\n for (let line = 0; line < lines; line++) {\n const width = `calc(100% - ${getSkeletonLinesMargin(line, lines)}px)`;\n render.push(\n <Skeleton\n // key needs to be individual every time we render, because it resets the animation with every child drawn again.\n key={`${lines}-${line}`}\n width={width}\n height=\"12px\"\n />,\n );\n }\n return render;\n };\n\n return (\n <Flex\n data-testid={dataTestId}\n ref={forwardedRef}\n flexDirection=\"column\"\n gap={8}\n paddingY={4}\n className={consumerClassName}\n style={{ width: width, ...consumerStyle }}\n {...remainingProps}\n >\n {getSkeletonLines(lines)}\n </Flex>\n );\n },\n);\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,SAA6B,kBAAkB;AAEtD,SAAS,gBAAgB;AAGzB,SAAS,YAAY;AAuBd,MAAM,eAAe;AAAA,EAC1B,CAAC,OAAO,iBAAiB;AACvB,UAAM;AAAA,MACJ,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,eAAe;AAAA,MACf,GAAG;AAAA,IACL,IAAuB;AAEvB,UAAM,yBAAyB,CAAC,MAAcA,WAAkB;AAC9D,UAAIA,WAAU,GAAG;AAEf,eAAO;AAAA,MACT;AACA,cAAS,OAAO,KAAK,IAAK;AAAA,IAC5B;AAEA,UAAM,mBAAmB,CAACA,WAAkB;AAC1C,YAAM,SAA4B,CAAC;AACnC,eAAS,OAAO,GAAG,OAAOA,QAAO,QAAQ;AACvC,cAAMC,SAAQ,eAAe,uBAAuB,MAAMD,MAAK,CAAC;AAChE,eAAO;AAAA,UACL;AAAA,YAAC;AAAA;AAAA,cAEC,KAAK,GAAGA,MAAK,IAAI,IAAI;AAAA,cACrB,OAAOC;AAAA,cACP,QAAO;AAAA;AAAA,UACT;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa;AAAA,QACb,KAAK;AAAA,QACL,eAAc;AAAA,QACd,KAAK;AAAA,QACL,UAAU;AAAA,QACV,WAAW;AAAA,QACX,OAAO,EAAE,OAAc,GAAG,cAAc;AAAA,QACvC,GAAG;AAAA;AAAA,MAEH,iBAAiB,KAAK;AAAA,IACzB;AAAA,EAEJ;AACF;",
|
|
6
|
+
"names": ["lines", "width"]
|
|
7
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
.
|
|
1
|
+
.Divider_dividerCSS__1thxv8m0 {
|
|
2
2
|
border: none;
|
|
3
3
|
margin: 0;
|
|
4
4
|
overflow-wrap: break-word;
|
|
5
5
|
background-color: var(--vars_borderColor__k096v42);
|
|
6
6
|
}
|
|
7
|
-
.
|
|
7
|
+
.Divider_dividerCSS_orientation_horizontal__1thxv8m1 {
|
|
8
8
|
width: 100%;
|
|
9
9
|
height: var(--dt-borders-width-default, 1px);
|
|
10
10
|
}
|
|
11
|
-
.
|
|
11
|
+
.Divider_dividerCSS_orientation_vertical__1thxv8m2 {
|
|
12
12
|
width: var(--dt-borders-width-default, 1px);
|
|
13
13
|
height: 100%;
|
|
14
14
|
}
|
|
15
|
-
.
|
|
15
|
+
.Divider_dividerCSS_compound_0__1thxv8m5 {
|
|
16
16
|
flex-shrink: 0;
|
|
17
17
|
}
|
|
18
|
-
.
|
|
18
|
+
.Divider_dividerCSS_compound_1__1thxv8m6 {
|
|
19
19
|
flex-shrink: 0;
|
|
20
20
|
width: var(--dt-borders-width-default, 1px);
|
|
21
21
|
height: auto;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/layouts/
|
|
3
|
+
"sources": ["../../../../src/layouts/divider/Divider.tsx"],
|
|
4
4
|
"sourcesContent": ["import clsx from 'clsx';\nimport React, { forwardRef } from 'react';\n\nimport { dividerCSS } from './Divider.sty.js';\nimport { type DataTestId } from '../../core/types/data-props.js';\nimport { type StylingProps } from '../../core/types/styling-props.js';\nimport { colorUtilsCSS } from '../../core/utils/colorUtils.sty.js';\n\n// #region Typings\n\n/** @public\n * Divider component props.\n */\nexport interface DividerProps extends StylingProps, DataTestId {\n /**\n * Orientation of the Divider component.\n * @defaultValue 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * Control the HTML tag used for rendering the Divider.\n * @defaultValue 'div'\n */\n as?: 'hr' | 'div';\n /**\n * Indicate whether the Divider is used inside a Flex component to apply the right styling.\n * If set to false, make sure to have an explicit width/height style set on a parent HTML tag.\n * @defaultValue true\n */\n flexItem?: boolean;\n /**\n * The color of the Divider.\n * @defaultValue 'neutral'\n */\n color?: 'primary' | 'neutral' | 'success' | 'warning' | 'critical';\n /**\n * The visual style of the Divider.\n * @defaultValue 'default'\n */\n variant?: 'default' | 'accent';\n}\n// #endregion\n\n/**\n * The `Divider` component visually separates groups of content.\n * @public\n */\nexport const Divider = /* @__PURE__ */ forwardRef<\n HTMLDivElement | HTMLHRElement,\n DividerProps\n>((props, ref) => {\n const {\n orientation = 'horizontal',\n flexItem = true,\n as = 'div',\n color = 'neutral',\n variant = 'default',\n 'data-testid': dataTestId,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n } = props;\n\n const DividerTag = as;\n\n return (\n <DividerTag\n role=\"separator\"\n aria-orientation={orientation === 'vertical' ? orientation : undefined}\n // @ts-expect-error ref can't be div and hr here\n ref={ref}\n data-testid={dataTestId}\n className={clsx(\n colorUtilsCSS({ color, variant }),\n dividerCSS({ orientation, flexItem }),\n consumerClassName,\n )}\n style={consumerStyle}\n {...remainingProps}\n />\n );\n});\n\n(Divider as typeof Divider & { displayName: string }).displayName = 'Divider';\n"],
|
|
5
5
|
"mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,SAAS,kBAAkB;AAElC,SAAS,kBAAkB;AAG3B,SAAS,qBAAqB;AAyCvB,MAAM,UAA0B,2BAGrC,CAAC,OAAO,QAAQ;AAChB,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,WAAW;AAAA,IACX,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,eAAe;AAAA,IACf,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,aAAa;AAEnB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,oBAAkB,gBAAgB,aAAa,cAAc;AAAA,MAE7D;AAAA,MACA,eAAa;AAAA,MACb,WAAW;AAAA,QACT,cAAc,EAAE,OAAO,QAAQ,CAAC;AAAA,QAChC,WAAW,EAAE,aAAa,SAAS,CAAC;AAAA,QACpC;AAAA,MACF;AAAA,MACA,OAAO;AAAA,MACN,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAEA,QAAqD,cAAc;",
|
|
6
6
|
"names": []
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../../core/utils/colorUtils.css";
|
|
2
2
|
import "./Divider.css";
|
|
3
3
|
import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
4
|
-
var dividerCSS = _7a468({ defaultClassName: "
|
|
4
|
+
var dividerCSS = _7a468({ defaultClassName: "Divider_dividerCSS__1thxv8m0", variantClassNames: { orientation: { horizontal: "Divider_dividerCSS_orientation_horizontal__1thxv8m1", vertical: "Divider_dividerCSS_orientation_vertical__1thxv8m2" }, flexItem: { true: "Divider_dividerCSS_flexItem_true__1thxv8m3", false: "Divider_dividerCSS_flexItem_false__1thxv8m4" } }, defaultVariants: {}, compoundVariants: [[{ orientation: "horizontal", flexItem: false }, "Divider_dividerCSS_compound_0__1thxv8m5"], [{ orientation: "vertical", flexItem: true }, "Divider_dividerCSS_compound_1__1thxv8m6"]] });
|
|
5
5
|
export {
|
|
6
6
|
dividerCSS
|
|
7
7
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/layouts/
|
|
4
|
-
"sourcesContent": ["import '../../core/utils/colorUtils.css';\nimport './Divider.css';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var dividerCSS = _7a468({defaultClassName:'
|
|
3
|
+
"sources": ["../../../../src/layouts/divider/Divider.css.ts"],
|
|
4
|
+
"sourcesContent": ["import '../../core/utils/colorUtils.css';\nimport './Divider.css';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var dividerCSS = _7a468({defaultClassName:'Divider_dividerCSS__1thxv8m0',variantClassNames:{orientation:{horizontal:'Divider_dividerCSS_orientation_horizontal__1thxv8m1',vertical:'Divider_dividerCSS_orientation_vertical__1thxv8m2'},flexItem:{true:'Divider_dividerCSS_flexItem_true__1thxv8m3',false:'Divider_dividerCSS_flexItem_false__1thxv8m4'}},defaultVariants:{},compoundVariants:[[{orientation:'horizontal',flexItem:false},'Divider_dividerCSS_compound_0__1thxv8m5'],[{orientation:'vertical',flexItem:true},'Divider_dividerCSS_compound_1__1thxv8m6']]});"],
|
|
5
5
|
"mappings": "AAAA,OAAO;AACP,OAAO;AACP,SAAS,mBAAmB,cAAc;AACnC,IAAI,aAAa,OAAO,EAAC,kBAAiB,gCAA+B,mBAAkB,EAAC,aAAY,EAAC,YAAW,uDAAsD,UAAS,oDAAmD,GAAE,UAAS,EAAC,MAAK,8CAA6C,OAAM,8CAA6C,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,CAAC,EAAC,aAAY,cAAa,UAAS,MAAK,GAAE,yCAAyC,GAAE,CAAC,EAAC,aAAY,YAAW,UAAS,KAAI,GAAE,yCAAyC,CAAC,EAAC,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
marginProperties
|
|
3
|
+
} from "../../styles/sprinkle-properties.js";
|
|
4
|
+
const spacingToCss = (spacingToken) => {
|
|
5
|
+
if (spacingToken === void 0) {
|
|
6
|
+
return void 0;
|
|
7
|
+
}
|
|
8
|
+
return marginProperties[spacingToken];
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
spacingToCss
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=spacingToCss.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/layouts/helpers/spacingToCss.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type MarginProperties,\n marginProperties,\n} from '../../styles/sprinkle-properties.js';\n\n/**\n * Converts a spacing token to its corresponding CSS value.\n * @internal\n */\nexport const spacingToCss = (\n spacingToken: MarginProperties | undefined,\n): number | string | undefined => {\n if (spacingToken === undefined) {\n return undefined;\n }\n return marginProperties[spacingToken];\n};\n"],
|
|
5
|
+
"mappings": "AAAA;AAAA,EAEE;AAAA,OACK;AAMA,MAAM,eAAe,CAC1B,iBACgC;AAChC,MAAI,iBAAiB,QAAW;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,YAAY;AACtC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const useLayoutSizeProps = (props) => {
|
|
2
|
+
const { width, minWidth, maxWidth, height, minHeight, maxHeight } = props;
|
|
3
|
+
return {
|
|
4
|
+
width,
|
|
5
|
+
minWidth,
|
|
6
|
+
maxWidth,
|
|
7
|
+
height,
|
|
8
|
+
minHeight,
|
|
9
|
+
maxHeight
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
useLayoutSizeProps
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=useLayoutSizeProps.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/layouts/hooks/useLayoutSizeProps.ts"],
|
|
4
|
+
"sourcesContent": ["import type { LayoutSizeProps, LayoutSizeCSS } from '../types/layout.types.js';\n\n/**\n * Returns the layout size properties.\n * @internal\n */\nexport const useLayoutSizeProps = (props: LayoutSizeProps): LayoutSizeCSS => {\n const { width, minWidth, maxWidth, height, minHeight, maxHeight } = props;\n\n return {\n width,\n minWidth,\n maxWidth,\n height,\n minHeight,\n maxHeight,\n };\n};\n"],
|
|
5
|
+
"mappings": "AAMO,MAAM,qBAAqB,CAAC,UAA0C;AAC3E,QAAM,EAAE,OAAO,UAAU,UAAU,QAAQ,WAAW,UAAU,IAAI;AAEpE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { useLayoutSizeProps } from "./useLayoutSizeProps.js";
|
|
2
|
+
import { useMarginProps } from "./useMarginProps.js";
|
|
3
|
+
import { usePaddingProps } from "./usePaddingProps.js";
|
|
4
|
+
function useLayoutStyles(props, defaultStyles) {
|
|
5
|
+
const {
|
|
6
|
+
/** Padding props */
|
|
7
|
+
padding,
|
|
8
|
+
p,
|
|
9
|
+
paddingX,
|
|
10
|
+
px,
|
|
11
|
+
paddingY,
|
|
12
|
+
py,
|
|
13
|
+
paddingTop,
|
|
14
|
+
pt,
|
|
15
|
+
paddingRight,
|
|
16
|
+
pr,
|
|
17
|
+
paddingBottom,
|
|
18
|
+
pb,
|
|
19
|
+
paddingLeft,
|
|
20
|
+
pl,
|
|
21
|
+
/** Margin props */
|
|
22
|
+
margin,
|
|
23
|
+
m,
|
|
24
|
+
marginX,
|
|
25
|
+
mx,
|
|
26
|
+
marginY,
|
|
27
|
+
my,
|
|
28
|
+
marginTop,
|
|
29
|
+
mt,
|
|
30
|
+
marginRight,
|
|
31
|
+
mr,
|
|
32
|
+
marginBottom,
|
|
33
|
+
mb,
|
|
34
|
+
marginLeft,
|
|
35
|
+
ml,
|
|
36
|
+
/** Layout props */
|
|
37
|
+
width,
|
|
38
|
+
minWidth,
|
|
39
|
+
maxWidth,
|
|
40
|
+
height,
|
|
41
|
+
minHeight,
|
|
42
|
+
maxHeight,
|
|
43
|
+
/** filtered remaining props for passing back to component */
|
|
44
|
+
...remainingProps
|
|
45
|
+
} = props;
|
|
46
|
+
const paddingProps = {
|
|
47
|
+
padding,
|
|
48
|
+
p,
|
|
49
|
+
paddingX,
|
|
50
|
+
px,
|
|
51
|
+
paddingY,
|
|
52
|
+
py,
|
|
53
|
+
paddingTop,
|
|
54
|
+
pt,
|
|
55
|
+
paddingRight,
|
|
56
|
+
pr,
|
|
57
|
+
paddingBottom,
|
|
58
|
+
pb,
|
|
59
|
+
paddingLeft,
|
|
60
|
+
pl
|
|
61
|
+
};
|
|
62
|
+
const marginProps = {
|
|
63
|
+
margin,
|
|
64
|
+
m,
|
|
65
|
+
marginX,
|
|
66
|
+
mx,
|
|
67
|
+
marginY,
|
|
68
|
+
my,
|
|
69
|
+
marginTop,
|
|
70
|
+
mt,
|
|
71
|
+
marginRight,
|
|
72
|
+
mr,
|
|
73
|
+
marginBottom,
|
|
74
|
+
mb,
|
|
75
|
+
marginLeft,
|
|
76
|
+
ml
|
|
77
|
+
};
|
|
78
|
+
const layoutProps = {
|
|
79
|
+
width,
|
|
80
|
+
minWidth,
|
|
81
|
+
maxWidth,
|
|
82
|
+
height,
|
|
83
|
+
minHeight,
|
|
84
|
+
maxHeight
|
|
85
|
+
};
|
|
86
|
+
const paddingStyles = usePaddingProps(
|
|
87
|
+
paddingProps,
|
|
88
|
+
defaultStyles.paddingDefaults
|
|
89
|
+
);
|
|
90
|
+
const marginStyles = useMarginProps(
|
|
91
|
+
marginProps,
|
|
92
|
+
defaultStyles.marginDefaults
|
|
93
|
+
);
|
|
94
|
+
const layoutSizeStyles = useLayoutSizeProps(layoutProps);
|
|
95
|
+
return {
|
|
96
|
+
paddingStyles,
|
|
97
|
+
marginStyles,
|
|
98
|
+
layoutSizeStyles,
|
|
99
|
+
remainingProps
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
useLayoutStyles
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=useLayoutStyles.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/layouts/hooks/useLayoutStyles.tsx"],
|
|
4
|
+
"sourcesContent": ["import { useLayoutSizeProps } from './useLayoutSizeProps.js';\nimport { useMarginProps } from './useMarginProps.js';\nimport { usePaddingProps } from './usePaddingProps.js';\nimport { SpacingProps } from '../../styles/getSpacingSprinkles.js';\nimport type { SurfaceProps } from '../surface/Surface.js';\nimport type {\n LayoutStyles,\n LayoutSizeProps,\n DefaultStyles,\n} from '../types/layout.types.js';\n\n/**\n * Generates layout styles including padding, margin, and size properties.\n * @internal\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function useLayoutStyles(\n props: SurfaceProps<any>,\n defaultStyles: DefaultStyles,\n): LayoutStyles {\n const {\n /** Padding props */\n padding,\n p,\n paddingX,\n px,\n paddingY,\n py,\n paddingTop,\n pt,\n paddingRight,\n pr,\n paddingBottom,\n pb,\n paddingLeft,\n pl,\n\n /** Margin props */\n margin,\n m,\n marginX,\n mx,\n marginY,\n my,\n marginTop,\n mt,\n marginRight,\n mr,\n marginBottom,\n mb,\n marginLeft,\n ml,\n\n /** Layout props */\n width,\n minWidth,\n maxWidth,\n height,\n minHeight,\n maxHeight,\n\n /** filtered remaining props for passing back to component */\n ...remainingProps\n } = props;\n\n const paddingProps: Pick<\n SpacingProps,\n | 'padding'\n | 'p'\n | 'paddingX'\n | 'px'\n | 'paddingY'\n | 'py'\n | 'paddingTop'\n | 'pt'\n | 'paddingRight'\n | 'pr'\n | 'paddingBottom'\n | 'pb'\n | 'paddingLeft'\n | 'pl'\n > = {\n padding,\n p,\n paddingX,\n px,\n paddingY,\n py,\n paddingTop,\n pt,\n paddingRight,\n pr,\n paddingBottom,\n pb,\n paddingLeft,\n pl,\n };\n\n const marginProps: Pick<\n SpacingProps,\n | 'margin'\n | 'm'\n | 'marginX'\n | 'mx'\n | 'marginY'\n | 'my'\n | 'marginTop'\n | 'mt'\n | 'marginRight'\n | 'mr'\n | 'marginBottom'\n | 'mb'\n | 'marginLeft'\n | 'ml'\n > = {\n margin,\n m,\n marginX,\n mx,\n marginY,\n my,\n marginTop,\n mt,\n marginRight,\n mr,\n marginBottom,\n mb,\n marginLeft,\n ml,\n };\n\n const layoutProps: LayoutSizeProps = {\n width,\n minWidth,\n maxWidth,\n height,\n minHeight,\n maxHeight,\n };\n\n const paddingStyles = usePaddingProps(\n paddingProps,\n defaultStyles.paddingDefaults,\n );\n const marginStyles = useMarginProps(\n marginProps,\n defaultStyles.marginDefaults,\n );\n const layoutSizeStyles = useLayoutSizeProps(layoutProps);\n\n return {\n paddingStyles,\n marginStyles,\n layoutSizeStyles,\n remainingProps,\n };\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAczB,SAAS,gBACd,OACA,eACc;AACd,QAAM;AAAA;AAAA,IAEJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAgBF;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,cAgBF;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,cAA+B;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,cAAc;AAAA,EAChB;AACA,QAAM,eAAe;AAAA,IACnB;AAAA,IACA,cAAc;AAAA,EAChB;AACA,QAAM,mBAAmB,mBAAmB,WAAW;AAEvD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { merge } from "lodash-es";
|
|
2
|
+
import { spacingToCss } from "../helpers/spacingToCss.js";
|
|
3
|
+
const defaultMargin = {
|
|
4
|
+
margin: 0,
|
|
5
|
+
marginTop: 0,
|
|
6
|
+
marginRight: 0,
|
|
7
|
+
marginBottom: 0,
|
|
8
|
+
marginLeft: 0
|
|
9
|
+
};
|
|
10
|
+
const useMarginProps = (props, defaultMarginProps = defaultMargin) => {
|
|
11
|
+
const {
|
|
12
|
+
margin,
|
|
13
|
+
m,
|
|
14
|
+
marginX,
|
|
15
|
+
mx,
|
|
16
|
+
marginY,
|
|
17
|
+
my,
|
|
18
|
+
marginTop,
|
|
19
|
+
mt,
|
|
20
|
+
marginRight,
|
|
21
|
+
mr,
|
|
22
|
+
marginBottom,
|
|
23
|
+
mb,
|
|
24
|
+
marginLeft,
|
|
25
|
+
ml
|
|
26
|
+
} = props;
|
|
27
|
+
const convertedDefaultMarginProps = {
|
|
28
|
+
marginTop: spacingToCss(
|
|
29
|
+
defaultMarginProps.marginTop ?? defaultMarginProps.margin
|
|
30
|
+
),
|
|
31
|
+
marginLeft: spacingToCss(
|
|
32
|
+
defaultMarginProps.marginLeft ?? defaultMarginProps.margin
|
|
33
|
+
),
|
|
34
|
+
marginBottom: spacingToCss(
|
|
35
|
+
defaultMarginProps.marginBottom ?? defaultMarginProps.margin
|
|
36
|
+
),
|
|
37
|
+
marginRight: spacingToCss(
|
|
38
|
+
defaultMarginProps.marginRight ?? defaultMarginProps.margin
|
|
39
|
+
)
|
|
40
|
+
};
|
|
41
|
+
return merge({}, convertedDefaultMarginProps, {
|
|
42
|
+
marginTop: spacingToCss(mt ?? marginTop ?? my ?? marginY ?? m ?? margin),
|
|
43
|
+
marginRight: spacingToCss(
|
|
44
|
+
mr ?? marginRight ?? mx ?? marginX ?? m ?? margin
|
|
45
|
+
),
|
|
46
|
+
marginBottom: spacingToCss(
|
|
47
|
+
mb ?? marginBottom ?? my ?? marginY ?? m ?? margin
|
|
48
|
+
),
|
|
49
|
+
marginLeft: spacingToCss(ml ?? marginLeft ?? mx ?? marginX ?? m ?? margin)
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
useMarginProps
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=useMarginProps.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/layouts/hooks/useMarginProps.ts"],
|
|
4
|
+
"sourcesContent": ["import { merge } from 'lodash-es';\n\nimport { SpacingProps } from '../../styles/getSpacingSprinkles.js';\nimport { spacingToCss } from '../helpers/spacingToCss.js';\nimport type { MarginCSS, DefaultMargin } from '../types/layout.types.js';\n\nconst defaultMargin: DefaultMargin = {\n margin: 0,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0,\n marginLeft: 0,\n};\n\n/**\n * Generates CSS margin properties based on the provided margin props and default margin values.\n * @internal\n */\nexport const useMarginProps = (\n props: SpacingProps,\n defaultMarginProps: DefaultMargin = defaultMargin,\n): MarginCSS => {\n const {\n margin,\n m,\n marginX,\n mx,\n marginY,\n my,\n marginTop,\n mt,\n marginRight,\n mr,\n marginBottom,\n mb,\n marginLeft,\n ml,\n } = props;\n\n const convertedDefaultMarginProps = {\n marginTop: spacingToCss(\n defaultMarginProps.marginTop ?? defaultMarginProps.margin,\n ),\n marginLeft: spacingToCss(\n defaultMarginProps.marginLeft ?? defaultMarginProps.margin,\n ),\n marginBottom: spacingToCss(\n defaultMarginProps.marginBottom ?? defaultMarginProps.margin,\n ),\n marginRight: spacingToCss(\n defaultMarginProps.marginRight ?? defaultMarginProps.margin,\n ),\n };\n\n return merge({}, convertedDefaultMarginProps, {\n marginTop: spacingToCss(mt ?? marginTop ?? my ?? marginY ?? m ?? margin),\n marginRight: spacingToCss(\n mr ?? marginRight ?? mx ?? marginX ?? m ?? margin,\n ),\n marginBottom: spacingToCss(\n mb ?? marginBottom ?? my ?? marginY ?? m ?? margin,\n ),\n marginLeft: spacingToCss(ml ?? marginLeft ?? mx ?? marginX ?? m ?? margin),\n });\n};\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,aAAa;AAGtB,SAAS,oBAAoB;AAG7B,MAAM,gBAA+B;AAAA,EACnC,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AACd;AAMO,MAAM,iBAAiB,CAC5B,OACA,qBAAoC,kBACtB;AACd,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,8BAA8B;AAAA,IAClC,WAAW;AAAA,MACT,mBAAmB,aAAa,mBAAmB;AAAA,IACrD;AAAA,IACA,YAAY;AAAA,MACV,mBAAmB,cAAc,mBAAmB;AAAA,IACtD;AAAA,IACA,cAAc;AAAA,MACZ,mBAAmB,gBAAgB,mBAAmB;AAAA,IACxD;AAAA,IACA,aAAa;AAAA,MACX,mBAAmB,eAAe,mBAAmB;AAAA,IACvD;AAAA,EACF;AAEA,SAAO,MAAM,CAAC,GAAG,6BAA6B;AAAA,IAC5C,WAAW,aAAa,MAAM,aAAa,MAAM,WAAW,KAAK,MAAM;AAAA,IACvE,aAAa;AAAA,MACX,MAAM,eAAe,MAAM,WAAW,KAAK;AAAA,IAC7C;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,gBAAgB,MAAM,WAAW,KAAK;AAAA,IAC9C;AAAA,IACA,YAAY,aAAa,MAAM,cAAc,MAAM,WAAW,KAAK,MAAM;AAAA,EAC3E,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|