@dynatrace/strato-components 0.84.31 → 0.84.51
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/content/index.d.ts +7 -0
- package/content/index.js +25 -0
- package/content/progress/ProgressBar.css +52 -0
- package/content/progress/ProgressBar.d.ts +56 -0
- package/content/progress/ProgressBar.js +191 -0
- package/content/progress/ProgressBar.sty.d.ts +42 -0
- package/content/progress/ProgressBar.sty.js +28 -0
- package/content/progress/ProgressBarIcon.css +5 -0
- package/content/progress/ProgressBarIcon.d.ts +15 -0
- package/content/progress/ProgressBarIcon.js +68 -0
- package/content/progress/ProgressBarIcon.sty.d.ts +1 -0
- package/content/progress/ProgressBarIcon.sty.js +25 -0
- package/content/progress/ProgressBarLabel.css +9 -0
- package/content/progress/ProgressBarLabel.d.ts +15 -0
- package/content/progress/ProgressBarLabel.js +75 -0
- package/content/progress/ProgressBarLabel.sty.d.ts +13 -0
- package/content/progress/ProgressBarLabel.sty.js +26 -0
- package/content/progress/ProgressBarValue.css +28 -0
- package/content/progress/ProgressBarValue.d.ts +15 -0
- package/content/progress/ProgressBarValue.js +72 -0
- package/content/progress/ProgressBarValue.sty.d.ts +34 -0
- package/content/progress/ProgressBarValue.sty.js +26 -0
- package/content/progress/ProgressCircle.css +52 -0
- package/content/progress/ProgressCircle.d.ts +51 -0
- package/content/progress/ProgressCircle.js +174 -0
- package/content/progress/ProgressCircle.sty.d.ts +41 -0
- package/content/progress/ProgressCircle.sty.js +37 -0
- package/content/progress/contexts/SharedProgressBarPropsContext.d.ts +9 -0
- package/content/progress/contexts/SharedProgressBarPropsContext.js +38 -0
- package/content/progress/hooks/useProgressAriaProps.d.ts +38 -0
- package/content/progress/hooks/useProgressAriaProps.js +63 -0
- package/content/progress/hooks/useProgressBarPropsContext.d.ts +2 -0
- package/content/progress/hooks/useProgressBarPropsContext.js +32 -0
- package/content/progress/utils.d.ts +2 -0
- package/content/progress/utils.js +50 -0
- package/core/components/app-root/AppRoot.d.ts +4 -4
- package/core/hooks/useAriaLabelingProps.d.ts +6 -0
- package/core/hooks/useAriaLabelingProps.js +30 -0
- package/core/hooks/useCurrentTheme.d.ts +1 -1
- package/core/hooks/useFontsUpdated.d.ts +9 -0
- package/core/hooks/useFontsUpdated.js +51 -0
- package/core/hooks/useId.d.ts +12 -0
- package/core/hooks/useId.js +32 -0
- package/core/hooks/useMergeRefs.d.ts +7 -0
- package/core/hooks/useMergeRefs.js +34 -0
- package/core/hooks/useSafeForwardProps.d.ts +10 -0
- package/core/hooks/useSafeForwardProps.js +34 -0
- package/core/index.d.ts +12 -0
- package/core/index.js +12 -0
- package/core/styles/focusRing.css +88 -0
- package/core/styles/focusRing.sty.d.ts +96 -0
- package/core/styles/focusRing.sty.js +27 -0
- package/core/styles/useFocusRing.d.ts +49 -0
- package/core/styles/useFocusRing.js +83 -0
- package/core/types/a11y-props.d.ts +26 -0
- package/core/types/a11y-props.js +15 -0
- package/core/types/data-props.d.ts +1 -1
- package/core/types/dom.d.ts +8 -0
- package/core/types/dom.js +15 -0
- package/core/types/heading.d.ts +9 -0
- package/core/types/heading.js +15 -0
- package/core/types/masking-props.d.ts +2 -1
- package/core/types/polymorph.d.ts +28 -0
- package/core/types/polymorph.js +15 -0
- package/core/types/role-variant.d.ts +10 -0
- package/core/types/role-variant.js +30 -0
- package/core/types/styling-props.d.ts +1 -1
- package/core/types/with-children.d.ts +1 -1
- package/core/utils/_is-string-children.d.ts +6 -0
- package/core/utils/_is-string-children.js +44 -0
- package/core/utils/colorUtils.css +80 -0
- package/core/utils/colorUtils.sty.d.ts +48 -0
- package/core/utils/colorUtils.sty.js +27 -0
- package/core/utils/isBrowser.d.ts +1 -1
- package/core/utils/merge-props.d.ts +4 -5
- package/core/utils/seed-random.d.ts +5 -0
- package/core/utils/seed-random.js +34 -0
- package/core/utils/uuidv4.d.ts +5 -0
- package/core/utils/uuidv4.js +31 -0
- package/esm/content/index.js +7 -0
- package/esm/content/index.js.map +7 -0
- package/esm/content/progress/ProgressBar.css +52 -0
- package/esm/content/progress/ProgressBar.js +163 -0
- package/esm/content/progress/ProgressBar.js.map +7 -0
- package/esm/content/progress/ProgressBar.sty.js +10 -0
- package/esm/content/progress/ProgressBar.sty.js.map +7 -0
- package/esm/content/progress/ProgressBarIcon.css +5 -0
- package/esm/content/progress/ProgressBarIcon.js +40 -0
- package/esm/content/progress/ProgressBarIcon.js.map +7 -0
- package/esm/content/progress/ProgressBarIcon.sty.js +7 -0
- package/esm/content/progress/ProgressBarIcon.sty.js.map +7 -0
- package/esm/content/progress/ProgressBarLabel.css +9 -0
- package/esm/content/progress/ProgressBarLabel.js +47 -0
- package/esm/content/progress/ProgressBarLabel.js.map +7 -0
- package/esm/content/progress/ProgressBarLabel.sty.js +8 -0
- package/esm/content/progress/ProgressBarLabel.sty.js.map +7 -0
- package/esm/content/progress/ProgressBarValue.css +28 -0
- package/esm/content/progress/ProgressBarValue.js +44 -0
- package/esm/content/progress/ProgressBarValue.js.map +7 -0
- package/esm/content/progress/ProgressBarValue.sty.js +8 -0
- package/esm/content/progress/ProgressBarValue.sty.js.map +7 -0
- package/esm/content/progress/ProgressCircle.css +52 -0
- package/esm/content/progress/ProgressCircle.js +153 -0
- package/esm/content/progress/ProgressCircle.js.map +7 -0
- package/esm/content/progress/ProgressCircle.sty.js +19 -0
- package/esm/content/progress/ProgressCircle.sty.js.map +7 -0
- package/esm/content/progress/contexts/SharedProgressBarPropsContext.js +10 -0
- package/esm/content/progress/contexts/SharedProgressBarPropsContext.js.map +7 -0
- package/esm/content/progress/hooks/useProgressAriaProps.js +45 -0
- package/esm/content/progress/hooks/useProgressAriaProps.js.map +7 -0
- package/esm/content/progress/hooks/useProgressBarPropsContext.js +16 -0
- package/esm/content/progress/hooks/useProgressBarPropsContext.js.map +7 -0
- package/esm/content/progress/utils.js +22 -0
- package/esm/content/progress/utils.js.map +7 -0
- package/esm/core/components/app-root/AppRoot.js.map +1 -1
- package/esm/core/hooks/useAriaLabelingProps.js +12 -0
- package/esm/core/hooks/useAriaLabelingProps.js.map +7 -0
- package/esm/core/hooks/useCurrentTheme.js.map +1 -1
- package/esm/core/hooks/useFontsUpdated.js +33 -0
- package/esm/core/hooks/useFontsUpdated.js.map +7 -0
- package/esm/core/hooks/useId.js +14 -0
- package/esm/core/hooks/useId.js.map +7 -0
- package/esm/core/hooks/useMergeRefs.js +16 -0
- package/esm/core/hooks/useMergeRefs.js.map +7 -0
- package/esm/core/hooks/useSafeForwardProps.js +16 -0
- package/esm/core/hooks/useSafeForwardProps.js.map +7 -0
- package/esm/core/index.js +12 -0
- package/esm/core/index.js.map +2 -2
- package/esm/core/styles/focusRing.css +88 -0
- package/esm/core/styles/focusRing.sty.js +9 -0
- package/esm/core/styles/focusRing.sty.js.map +7 -0
- package/esm/core/styles/useFocusRing.js +69 -0
- package/esm/core/styles/useFocusRing.js.map +7 -0
- package/esm/core/types/a11y-props.js +1 -0
- package/esm/core/types/a11y-props.js.map +7 -0
- package/esm/core/types/dom.js +1 -0
- package/esm/core/types/dom.js.map +7 -0
- package/esm/core/types/heading.js +1 -0
- package/esm/core/types/heading.js.map +7 -0
- package/esm/core/types/polymorph.js +1 -0
- package/esm/core/types/polymorph.js.map +7 -0
- package/esm/core/types/role-variant.js +12 -0
- package/esm/core/types/role-variant.js.map +7 -0
- package/esm/core/utils/_is-string-children.js +16 -0
- package/esm/core/utils/_is-string-children.js.map +7 -0
- package/esm/core/utils/colorUtils.css +80 -0
- package/esm/core/utils/colorUtils.sty.js +9 -0
- package/esm/core/utils/colorUtils.sty.js.map +7 -0
- package/esm/core/utils/isBrowser.js.map +1 -1
- package/esm/core/utils/merge-props.js.map +2 -2
- package/esm/core/utils/seed-random.js +16 -0
- package/esm/core/utils/seed-random.js.map +7 -0
- package/esm/core/utils/uuidv4.js +13 -0
- package/esm/core/utils/uuidv4.js.map +7 -0
- package/esm/index.js +4 -0
- package/esm/index.js.map +2 -2
- package/esm/layouts/Divider/Divider.css +23 -0
- package/esm/layouts/Divider/Divider.js +39 -0
- package/esm/layouts/Divider/Divider.js.map +7 -0
- package/esm/layouts/Divider/Divider.sty.js +8 -0
- package/esm/layouts/Divider/Divider.sty.js.map +7 -0
- package/esm/layouts/container/Container.css +8 -0
- package/esm/layouts/container/Container.js +55 -0
- package/esm/layouts/container/Container.js.map +7 -0
- package/esm/layouts/container/Container.sty.js +7 -0
- package/esm/layouts/container/Container.sty.js.map +7 -0
- package/esm/layouts/flex/Flex.js +46 -0
- package/esm/layouts/flex/Flex.js.map +7 -0
- package/esm/layouts/grid/Grid.js +46 -0
- package/esm/layouts/grid/Grid.js.map +7 -0
- package/esm/layouts/index.js +11 -0
- package/esm/layouts/index.js.map +7 -0
- package/esm/styles/colorUtils.css +80 -0
- package/esm/styles/colorUtils.sty.js +9 -0
- package/esm/styles/colorUtils.sty.js.map +7 -0
- package/esm/styles/container.css +64 -0
- package/esm/styles/container.sty.js +9 -0
- package/esm/styles/container.sty.js.map +7 -0
- package/esm/styles/ellipsis.css +5 -0
- package/esm/styles/ellipsis.sty.js +6 -0
- package/esm/styles/ellipsis.sty.js.map +7 -0
- package/esm/styles/extract-util.js +15 -0
- package/esm/styles/extract-util.js.map +7 -0
- package/esm/styles/getFlexStyles.js +69 -0
- package/esm/styles/getFlexStyles.js.map +7 -0
- package/esm/styles/getGapSprinkles.js +18 -0
- package/esm/styles/getGapSprinkles.js.map +7 -0
- package/esm/styles/getGridFlexPositionSprinkles.js +25 -0
- package/esm/styles/getGridFlexPositionSprinkles.js.map +7 -0
- package/esm/styles/getGridStyles.js +78 -0
- package/esm/styles/getGridStyles.js.map +7 -0
- package/esm/styles/getLayoutSizeStyles.js +21 -0
- package/esm/styles/getLayoutSizeStyles.js.map +7 -0
- package/esm/styles/getSpacingSprinkles.js +50 -0
- package/esm/styles/getSpacingSprinkles.js.map +7 -0
- package/esm/styles/index.js +49 -0
- package/esm/styles/index.js.map +7 -0
- package/esm/styles/safe-sprinkles.js +17 -0
- package/esm/styles/safe-sprinkles.js.map +7 -0
- package/esm/styles/sprinkle-properties.js +137 -0
- package/esm/styles/sprinkle-properties.js.map +7 -0
- package/esm/styles/sprinkles.css +786 -0
- package/esm/styles/sprinkles.sty.js +9 -0
- package/esm/styles/sprinkles.sty.js.map +7 -0
- package/esm/styles/textStyle.css +64 -0
- package/esm/styles/textStyle.sty.js +7 -0
- package/esm/styles/textStyle.sty.js.map +7 -0
- package/esm/typography/BlockQuote/Blockquote.css +17 -0
- package/esm/typography/BlockQuote/Blockquote.js +34 -0
- package/esm/typography/BlockQuote/Blockquote.js.map +7 -0
- package/esm/typography/BlockQuote/Blockquote.sty.js +6 -0
- package/esm/typography/BlockQuote/Blockquote.sty.js.map +7 -0
- package/esm/typography/Code/Code.css +16 -0
- package/esm/typography/Code/Code.js +34 -0
- package/esm/typography/Code/Code.js.map +7 -0
- package/esm/typography/Code/Code.sty.js +6 -0
- package/esm/typography/Code/Code.sty.js.map +7 -0
- package/esm/typography/Emphasis/Emphasis.css +4 -0
- package/esm/typography/Emphasis/Emphasis.js +34 -0
- package/esm/typography/Emphasis/Emphasis.js.map +7 -0
- package/esm/typography/Emphasis/Emphasis.sty.js +6 -0
- package/esm/typography/Emphasis/Emphasis.sty.js.map +7 -0
- package/esm/typography/ExternalLink/ExternalLink.css +28 -0
- package/esm/typography/ExternalLink/ExternalLink.js +56 -0
- package/esm/typography/ExternalLink/ExternalLink.js.map +7 -0
- package/esm/typography/ExternalLink/ExternalLink.sty.js +6 -0
- package/esm/typography/ExternalLink/ExternalLink.sty.js.map +7 -0
- package/esm/typography/Heading/Heading.css +54 -0
- package/esm/typography/Heading/Heading.js +36 -0
- package/esm/typography/Heading/Heading.js.map +7 -0
- package/esm/typography/Heading/Heading.sty.js +7 -0
- package/esm/typography/Heading/Heading.sty.js.map +7 -0
- package/esm/typography/Highlight/Highlight.css +4 -0
- package/esm/typography/Highlight/Highlight.js +111 -0
- package/esm/typography/Highlight/Highlight.js.map +7 -0
- package/esm/typography/Highlight/Highlight.sty.js +6 -0
- package/esm/typography/Highlight/Highlight.sty.js.map +7 -0
- package/esm/typography/Link/Link.css +15 -0
- package/esm/typography/Link/Link.js +49 -0
- package/esm/typography/Link/Link.js.map +7 -0
- package/esm/typography/Link/Link.sty.js +6 -0
- package/esm/typography/Link/Link.sty.js.map +7 -0
- package/esm/typography/List/List.css +16 -0
- package/esm/typography/List/List.js +81 -0
- package/esm/typography/List/List.js.map +7 -0
- package/esm/typography/List/List.sty.js +8 -0
- package/esm/typography/List/List.sty.js.map +7 -0
- package/esm/typography/Paragraph/Paragraph.css +19 -0
- package/esm/typography/Paragraph/Paragraph.js +49 -0
- package/esm/typography/Paragraph/Paragraph.js.map +7 -0
- package/esm/typography/Paragraph/Paragraph.sty.js +7 -0
- package/esm/typography/Paragraph/Paragraph.sty.js.map +7 -0
- package/esm/typography/Strikethrough/Strikethrough.css +5 -0
- package/esm/typography/Strikethrough/Strikethrough.js +32 -0
- package/esm/typography/Strikethrough/Strikethrough.js.map +7 -0
- package/esm/typography/Strikethrough/Strikethrough.sty.js +6 -0
- package/esm/typography/Strikethrough/Strikethrough.sty.js.map +7 -0
- package/esm/typography/Strong/Strong.css +4 -0
- package/esm/typography/Strong/Strong.js +34 -0
- package/esm/typography/Strong/Strong.js.map +7 -0
- package/esm/typography/Strong/Strong.sty.js +6 -0
- package/esm/typography/Strong/Strong.sty.js.map +7 -0
- package/esm/typography/Text/Text.css +18 -0
- package/esm/typography/Text/Text.js +43 -0
- package/esm/typography/Text/Text.js.map +7 -0
- package/esm/typography/Text/Text.sty.js +7 -0
- package/esm/typography/Text/Text.sty.js.map +7 -0
- package/esm/typography/TextEllipsis/TextEllipsis.css +22 -0
- package/esm/typography/TextEllipsis/TextEllipsis.js +143 -0
- package/esm/typography/TextEllipsis/TextEllipsis.js.map +7 -0
- package/esm/typography/TextEllipsis/TextEllipsis.sty.js +7 -0
- package/esm/typography/TextEllipsis/TextEllipsis.sty.js.map +7 -0
- package/esm/typography/index.js +43 -0
- package/esm/typography/index.js.map +7 -0
- package/esm/typography/utils.js +101 -0
- package/esm/typography/utils.js.map +7 -0
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/lang/en.json +12 -0
- package/lang/uncompiled/en.json +10 -1
- package/layouts/Divider/Divider.css +23 -0
- package/layouts/Divider/Divider.d.ts +39 -0
- package/layouts/Divider/Divider.js +67 -0
- package/layouts/Divider/Divider.sty.d.ts +16 -0
- package/layouts/Divider/Divider.sty.js +26 -0
- package/layouts/container/Container.css +8 -0
- package/layouts/container/Container.d.ts +34 -0
- package/layouts/container/Container.js +80 -0
- package/layouts/container/Container.sty.d.ts +1 -0
- package/layouts/container/Container.sty.js +25 -0
- package/layouts/flex/Flex.d.ts +23 -0
- package/layouts/flex/Flex.js +72 -0
- package/layouts/grid/Grid.d.ts +23 -0
- package/layouts/grid/Grid.js +72 -0
- package/layouts/index.d.ts +6 -0
- package/layouts/index.js +29 -0
- package/package.json +34 -4
- package/styles/colorUtils.css +80 -0
- package/styles/colorUtils.sty.d.ts +56 -0
- package/styles/colorUtils.sty.js +27 -0
- package/styles/container.css +64 -0
- package/styles/container.sty.d.ts +54 -0
- package/styles/container.sty.js +27 -0
- package/styles/ellipsis.css +5 -0
- package/styles/ellipsis.sty.d.ts +5 -0
- package/styles/ellipsis.sty.js +24 -0
- package/styles/extract-util.d.ts +9 -0
- package/styles/extract-util.js +33 -0
- package/styles/getFlexStyles.d.ts +64 -0
- package/styles/getFlexStyles.js +95 -0
- package/styles/getGapSprinkles.d.ts +19 -0
- package/styles/getGapSprinkles.js +36 -0
- package/styles/getGridFlexPositionSprinkles.d.ts +35 -0
- package/styles/getGridFlexPositionSprinkles.js +43 -0
- package/styles/getGridStyles.d.ts +74 -0
- package/styles/getGridStyles.js +100 -0
- package/styles/getLayoutSizeStyles.d.ts +29 -0
- package/styles/getLayoutSizeStyles.js +39 -0
- package/styles/getSpacingSprinkles.d.ts +74 -0
- package/styles/getSpacingSprinkles.js +68 -0
- package/styles/index.d.ts +11 -0
- package/styles/index.js +47 -0
- package/styles/safe-sprinkles.d.ts +6 -0
- package/styles/safe-sprinkles.js +35 -0
- package/styles/sprinkle-properties.d.ts +257 -0
- package/styles/sprinkle-properties.js +165 -0
- package/styles/sprinkles.css +786 -0
- package/styles/sprinkles.sty.d.ts +913 -0
- package/styles/sprinkles.sty.js +27 -0
- package/styles/textStyle.css +64 -0
- package/styles/textStyle.sty.d.ts +13 -0
- package/styles/textStyle.sty.js +25 -0
- package/testing/mocks/canvas-mock.js +6 -1
- package/testing/mocks/text-ellipsis-mock.d.ts +1 -1
- package/testing/mocks/text-ellipsis-mock.js +8 -3
- package/typography/BlockQuote/Blockquote.css +17 -0
- package/typography/BlockQuote/Blockquote.d.ts +19 -0
- package/typography/BlockQuote/Blockquote.js +62 -0
- package/typography/BlockQuote/Blockquote.sty.d.ts +1 -0
- package/typography/BlockQuote/Blockquote.sty.js +24 -0
- package/typography/Code/Code.css +16 -0
- package/typography/Code/Code.d.ts +17 -0
- package/typography/Code/Code.js +62 -0
- package/typography/Code/Code.sty.d.ts +1 -0
- package/typography/Code/Code.sty.js +24 -0
- package/typography/Emphasis/Emphasis.css +4 -0
- package/typography/Emphasis/Emphasis.d.ts +14 -0
- package/typography/Emphasis/Emphasis.js +62 -0
- package/typography/Emphasis/Emphasis.sty.d.ts +1 -0
- package/typography/Emphasis/Emphasis.sty.js +24 -0
- package/typography/ExternalLink/ExternalLink.css +28 -0
- package/typography/ExternalLink/ExternalLink.d.ts +21 -0
- package/typography/ExternalLink/ExternalLink.js +82 -0
- package/typography/ExternalLink/ExternalLink.sty.d.ts +1 -0
- package/typography/ExternalLink/ExternalLink.sty.js +24 -0
- package/typography/Heading/Heading.css +54 -0
- package/typography/Heading/Heading.d.ts +24 -0
- package/typography/Heading/Heading.js +64 -0
- package/typography/Heading/Heading.sty.d.ts +52 -0
- package/typography/Heading/Heading.sty.js +25 -0
- package/typography/Highlight/Highlight.css +4 -0
- package/typography/Highlight/Highlight.d.ts +27 -0
- package/typography/Highlight/Highlight.js +139 -0
- package/typography/Highlight/Highlight.sty.d.ts +1 -0
- package/typography/Highlight/Highlight.sty.js +24 -0
- package/typography/Link/Link.css +15 -0
- package/typography/Link/Link.d.ts +16 -0
- package/typography/Link/Link.js +75 -0
- package/typography/Link/Link.sty.d.ts +1 -0
- package/typography/Link/Link.sty.js +24 -0
- package/typography/List/List.css +16 -0
- package/typography/List/List.d.ts +39 -0
- package/typography/List/List.js +109 -0
- package/typography/List/List.sty.d.ts +2 -0
- package/typography/List/List.sty.js +26 -0
- package/typography/Paragraph/Paragraph.css +19 -0
- package/typography/Paragraph/Paragraph.d.ts +19 -0
- package/typography/Paragraph/Paragraph.js +77 -0
- package/typography/Paragraph/Paragraph.sty.d.ts +16 -0
- package/typography/Paragraph/Paragraph.sty.js +25 -0
- package/typography/Strikethrough/Strikethrough.css +5 -0
- package/typography/Strikethrough/Strikethrough.d.ts +15 -0
- package/typography/Strikethrough/Strikethrough.js +60 -0
- package/typography/Strikethrough/Strikethrough.sty.d.ts +1 -0
- package/typography/Strikethrough/Strikethrough.sty.js +24 -0
- package/typography/Strong/Strong.css +4 -0
- package/typography/Strong/Strong.d.ts +14 -0
- package/typography/Strong/Strong.js +62 -0
- package/typography/Strong/Strong.sty.d.ts +1 -0
- package/typography/Strong/Strong.sty.js +24 -0
- package/typography/Text/Text.css +18 -0
- package/typography/Text/Text.d.ts +26 -0
- package/typography/Text/Text.js +71 -0
- package/typography/Text/Text.sty.d.ts +16 -0
- package/typography/Text/Text.sty.js +25 -0
- package/typography/TextEllipsis/TextEllipsis.css +22 -0
- package/typography/TextEllipsis/TextEllipsis.d.ts +32 -0
- package/typography/TextEllipsis/TextEllipsis.js +167 -0
- package/typography/TextEllipsis/TextEllipsis.sty.d.ts +15 -0
- package/typography/TextEllipsis/TextEllipsis.sty.js +25 -0
- package/typography/index.d.ts +28 -0
- package/typography/index.js +54 -0
- package/typography/utils.d.ts +52 -0
- package/typography/utils.js +119 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
@keyframes ProgressCircle_circularIndeterminateKeyframes__kvldjh0 {
|
|
2
|
+
0% {
|
|
3
|
+
transform: rotate(0deg);
|
|
4
|
+
}
|
|
5
|
+
100% {
|
|
6
|
+
transform: rotate(360deg);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
.ProgressCircle_progressCircleRootCSS__kvldjh1 {
|
|
10
|
+
display: inline-block;
|
|
11
|
+
color: var(--vars_borderColor__17bwkb02);
|
|
12
|
+
}
|
|
13
|
+
.ProgressCircle_ProgressCircleSVGCSS__kvldjh2 {
|
|
14
|
+
display: block;
|
|
15
|
+
transform: rotate(-90deg);
|
|
16
|
+
}
|
|
17
|
+
.ProgressCircle_progressCircleCSS__kvldjh3 {
|
|
18
|
+
stroke: currentColor;
|
|
19
|
+
transform-origin: center;
|
|
20
|
+
}
|
|
21
|
+
.ProgressCircle_progressCircleCSS_indeterminate_true__kvldjh4 {
|
|
22
|
+
stroke-dasharray: 90 360;
|
|
23
|
+
transform-origin: 50 50;
|
|
24
|
+
animation-name: ProgressCircle_circularIndeterminateKeyframes__kvldjh0;
|
|
25
|
+
animation-duration: var(--dt-timings-slow-gentle, 800ms);
|
|
26
|
+
animation-timing-function: cubic-bezier(0.5, 0.15, 0.5, 0.8);
|
|
27
|
+
animation-iteration-count: infinite;
|
|
28
|
+
}
|
|
29
|
+
.ProgressCircle_progressCircleCSS_indeterminate_false__kvldjh5 {
|
|
30
|
+
animation-duration: var(--dt-timings-fast-moderate, 200ms);
|
|
31
|
+
transition-property: stroke-dashoffset;
|
|
32
|
+
}
|
|
33
|
+
.ProgressCircle_progressCircleBackgroundCSS__kvldjh6 {
|
|
34
|
+
stroke: var(--dt-colors-border-neutral-default, #d2d3e1);
|
|
35
|
+
}
|
|
36
|
+
.ProgressCircle_progressCircleBackgroundCSS_variant_onAccent__kvldjh7 {
|
|
37
|
+
stroke: var(--dt-colors-border-neutral-on-accent-disabled, #f3f3f633);
|
|
38
|
+
}
|
|
39
|
+
.ProgressCircle_progressCircleContainerCSS__kvldjhd {
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
align-items: center;
|
|
43
|
+
}
|
|
44
|
+
.ProgressCircle_progressCircleContainerCSS_size_small__kvldjhe {
|
|
45
|
+
gap: var(--dt-spacings-size-8, 8px);
|
|
46
|
+
}
|
|
47
|
+
.ProgressCircle_progressCircleContainerCSS_size_large__kvldjhf {
|
|
48
|
+
gap: var(--dt-spacings-size-12, 12px);
|
|
49
|
+
}
|
|
50
|
+
.ProgressCircle_progressCircleChildCSS__kvldjhg {
|
|
51
|
+
color: var(--vars_text__6levse0);
|
|
52
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import clsx from "clsx";
|
|
2
|
+
import React, { forwardRef } from "react";
|
|
3
|
+
import { useProgressAriaProps } from "./hooks/useProgressAriaProps.js";
|
|
4
|
+
import {
|
|
5
|
+
progressCircleBackgroundCSS,
|
|
6
|
+
progressCircleChildCSS,
|
|
7
|
+
progressCircleContainerCSS,
|
|
8
|
+
progressCircleCSS,
|
|
9
|
+
progressCircleRootCSS,
|
|
10
|
+
ProgressCircleSVGCSS
|
|
11
|
+
} from "./ProgressCircle.sty.js";
|
|
12
|
+
import { useAriaLabelingProps } from "../../core/hooks/useAriaLabelingProps.js";
|
|
13
|
+
import { useId } from "../../core/hooks/useId.js";
|
|
14
|
+
import { useSafeForwardProps } from "../../core/hooks/useSafeForwardProps.js";
|
|
15
|
+
import { colorUtilsCSS } from "../../styles/colorUtils.sty.js";
|
|
16
|
+
import { containerColorsCSS } from "../../styles/container.sty.js";
|
|
17
|
+
import { textStyleCSS } from "../../styles/textStyle.sty.js";
|
|
18
|
+
const progressCircleSizes = {
|
|
19
|
+
small: 20,
|
|
20
|
+
large: 40
|
|
21
|
+
};
|
|
22
|
+
const progressCircleThickness = 5;
|
|
23
|
+
const ProgressCircle = forwardRef(
|
|
24
|
+
(props, forwardedRef) => {
|
|
25
|
+
const {
|
|
26
|
+
value: originalValue,
|
|
27
|
+
min = 0,
|
|
28
|
+
max = 100,
|
|
29
|
+
size = "large",
|
|
30
|
+
variant = "primary",
|
|
31
|
+
children,
|
|
32
|
+
id: propId,
|
|
33
|
+
"aria-valuetext": ariaValuetext,
|
|
34
|
+
className: consumerClassName,
|
|
35
|
+
style: consumerStyle,
|
|
36
|
+
"data-testid": dataTestId,
|
|
37
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
38
|
+
"data-dtrum-allow": dataDtrumAllow,
|
|
39
|
+
...remainingProps
|
|
40
|
+
} = props;
|
|
41
|
+
const { value, isIndeterminate, progressAriaProps } = useProgressAriaProps(
|
|
42
|
+
originalValue,
|
|
43
|
+
min,
|
|
44
|
+
max,
|
|
45
|
+
ariaValuetext
|
|
46
|
+
);
|
|
47
|
+
const ariaLabelingProps = useAriaLabelingProps(remainingProps);
|
|
48
|
+
const forwardProps = useSafeForwardProps(remainingProps, ariaLabelingProps);
|
|
49
|
+
const generatedId = useId({ prefix: "progress-circle" });
|
|
50
|
+
const id = propId ?? generatedId;
|
|
51
|
+
const circleStyles = {};
|
|
52
|
+
const rootProps = {};
|
|
53
|
+
if (!isIndeterminate && value !== void 0) {
|
|
54
|
+
const circumference = 2 * Math.PI * ((progressCircleSizes[size] - progressCircleThickness) / 2);
|
|
55
|
+
circleStyles["strokeDasharray"] = circumference.toFixed(3);
|
|
56
|
+
const dashOffset = Number(
|
|
57
|
+
((max - value) / max * circumference).toFixed(3)
|
|
58
|
+
);
|
|
59
|
+
circleStyles["strokeDashoffset"] = `${dashOffset >= 0 ? dashOffset : 0}px`;
|
|
60
|
+
}
|
|
61
|
+
if (!children && !ariaLabelingProps["aria-label"] && !ariaLabelingProps["aria-labelledby"]) {
|
|
62
|
+
// eslint-disable-next-line no-console
|
|
63
|
+
console.warn(
|
|
64
|
+
"If no label is provided please make sure to provide an aria label on your progressCircle element."
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
return /* @__PURE__ */ React.createElement(
|
|
68
|
+
"div",
|
|
69
|
+
{
|
|
70
|
+
"data-testid": dataTestId,
|
|
71
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
72
|
+
"data-dtrum-allow": dataDtrumAllow,
|
|
73
|
+
ref: forwardedRef,
|
|
74
|
+
className: clsx(
|
|
75
|
+
consumerClassName,
|
|
76
|
+
containerColorsCSS({
|
|
77
|
+
color: "neutral",
|
|
78
|
+
variant: variant === "onAccent" ? "accent" : "default"
|
|
79
|
+
}),
|
|
80
|
+
progressCircleContainerCSS({ size })
|
|
81
|
+
),
|
|
82
|
+
style: consumerStyle,
|
|
83
|
+
...forwardProps
|
|
84
|
+
},
|
|
85
|
+
/* @__PURE__ */ React.createElement(
|
|
86
|
+
"span",
|
|
87
|
+
{
|
|
88
|
+
id,
|
|
89
|
+
className: clsx(
|
|
90
|
+
colorUtilsCSS({ color: variant, variant: "accent" }),
|
|
91
|
+
progressCircleRootCSS
|
|
92
|
+
),
|
|
93
|
+
style: {
|
|
94
|
+
height: `${progressCircleSizes[size]}px`,
|
|
95
|
+
width: `${progressCircleSizes[size]}px`
|
|
96
|
+
},
|
|
97
|
+
...ariaLabelingProps,
|
|
98
|
+
...progressAriaProps,
|
|
99
|
+
...rootProps
|
|
100
|
+
},
|
|
101
|
+
/* @__PURE__ */ React.createElement(
|
|
102
|
+
"svg",
|
|
103
|
+
{
|
|
104
|
+
className: ProgressCircleSVGCSS,
|
|
105
|
+
viewBox: `0 0 ${progressCircleSizes[size]} ${progressCircleSizes[size]}`,
|
|
106
|
+
width: "100%",
|
|
107
|
+
height: "100%"
|
|
108
|
+
},
|
|
109
|
+
/* @__PURE__ */ React.createElement(
|
|
110
|
+
"circle",
|
|
111
|
+
{
|
|
112
|
+
fill: "none",
|
|
113
|
+
className: clsx(progressCircleBackgroundCSS({ variant })),
|
|
114
|
+
cx: progressCircleSizes[size] / 2,
|
|
115
|
+
cy: progressCircleSizes[size] / 2,
|
|
116
|
+
r: (progressCircleSizes[size] - progressCircleThickness) / 2,
|
|
117
|
+
strokeWidth: progressCircleThickness
|
|
118
|
+
}
|
|
119
|
+
),
|
|
120
|
+
/* @__PURE__ */ React.createElement(
|
|
121
|
+
"circle",
|
|
122
|
+
{
|
|
123
|
+
style: circleStyles,
|
|
124
|
+
className: progressCircleCSS({ indeterminate: isIndeterminate }),
|
|
125
|
+
fill: "none",
|
|
126
|
+
pathLength: isIndeterminate ? 360 : circleStyles["strokeDasharray"],
|
|
127
|
+
cx: progressCircleSizes[size] / 2,
|
|
128
|
+
cy: progressCircleSizes[size] / 2,
|
|
129
|
+
r: (progressCircleSizes[size] - progressCircleThickness) / 2,
|
|
130
|
+
strokeWidth: progressCircleThickness
|
|
131
|
+
}
|
|
132
|
+
)
|
|
133
|
+
)
|
|
134
|
+
),
|
|
135
|
+
children && /* @__PURE__ */ React.createElement(
|
|
136
|
+
"label",
|
|
137
|
+
{
|
|
138
|
+
className: clsx(
|
|
139
|
+
progressCircleChildCSS,
|
|
140
|
+
textStyleCSS({ textStyle: size === "small" ? "small" : "base" })
|
|
141
|
+
),
|
|
142
|
+
htmlFor: id
|
|
143
|
+
},
|
|
144
|
+
children
|
|
145
|
+
)
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
ProgressCircle.displayName = "ProgressCircle";
|
|
150
|
+
export {
|
|
151
|
+
ProgressCircle
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=ProgressCircle.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/content/progress/ProgressCircle.tsx"],
|
|
4
|
+
"sourcesContent": ["import clsx from 'clsx';\nimport React, { CSSProperties, forwardRef } from 'react';\n\nimport { useProgressAriaProps } from './hooks/useProgressAriaProps.js';\nimport {\n progressCircleBackgroundCSS,\n progressCircleChildCSS,\n progressCircleContainerCSS,\n progressCircleCSS,\n progressCircleRootCSS,\n ProgressCircleSVGCSS,\n} from './ProgressCircle.sty.js';\nimport { useAriaLabelingProps } from '../../core/hooks/useAriaLabelingProps.js';\nimport { useId } from '../../core/hooks/useId.js';\nimport { useSafeForwardProps } from '../../core/hooks/useSafeForwardProps.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 RoleVariantType } from '../../core/types/role-variant.js';\nimport { type StylingProps } from '../../core/types/styling-props.js';\nimport { type WithChildren } from '../../core/types/with-children.js';\nimport { colorUtilsCSS } from '../../styles/colorUtils.sty.js';\nimport { containerColorsCSS } from '../../styles/container.sty.js';\nimport { textStyleCSS } from '../../styles/textStyle.sty.js';\n\n/**\n * Accepted properties for ProgressCircle.\n * @public\n */\nexport interface ProgressCircleProps\n extends WithChildren,\n DOMProps,\n AriaLabelingProps,\n StylingProps,\n DataTestId,\n MaskingProps {\n /**\n * The current value.\n * @defaultValue 'indeterminate'\n */\n value?: number | 'indeterminate';\n /**\n * The smallest allowed value.\n * @defaultValue 0\n */\n min?: number;\n /**\n * The maximum allowed value.\n * @defaultValue 100\n */\n max?: number;\n /**\n * Controls the size of the rendered progress.\n * @defaultValue 'large'\n */\n size?: 'small' | 'large';\n /**\n * Controls the appearance of the progress.\n * @defaultValue 'primary'\n */\n variant?: RoleVariantType;\n\n /**\n * The aria-valuetext attribute defines the human-readable text alternative of aria-valuenow for a range widget.\n * Default the value as percentage will be provided. If the value is not a percentage please provide the aria-valuetext.\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuetext\n * @defaultValue the value of the progress as percentage.\n */\n 'aria-valuetext'?: string;\n}\n\nconst progressCircleSizes = {\n small: 20,\n large: 40,\n};\nconst progressCircleThickness = 5;\n\n/**\n * The `ProgressCircle` component is used to indicate the progress or completion status of a task or process.\n * @public\n * */\nexport const ProgressCircle = forwardRef<HTMLDivElement, ProgressCircleProps>(\n (props, forwardedRef) => {\n const {\n value: originalValue,\n min = 0,\n max = 100,\n size = 'large',\n variant = 'primary',\n children,\n id: propId,\n 'aria-valuetext': ariaValuetext,\n className: consumerClassName,\n style: consumerStyle,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n ...remainingProps\n }: ProgressCircleProps = props;\n\n const { value, isIndeterminate, progressAriaProps } = useProgressAriaProps(\n originalValue,\n min,\n max,\n ariaValuetext,\n );\n\n const ariaLabelingProps = useAriaLabelingProps(remainingProps);\n const forwardProps = useSafeForwardProps(remainingProps, ariaLabelingProps);\n\n const generatedId = useId({ prefix: 'progress-circle' });\n const id = propId ?? generatedId;\n\n const circleStyles: CSSProperties = {};\n const rootProps = {};\n\n if (!isIndeterminate && value !== undefined) {\n const circumference =\n 2 *\n Math.PI *\n ((progressCircleSizes[size] - progressCircleThickness) / 2);\n circleStyles['strokeDasharray'] = circumference.toFixed(3);\n const dashOffset = Number(\n (((max - value) / max) * circumference).toFixed(3),\n );\n circleStyles['strokeDashoffset'] = `${\n dashOffset >= 0 ? dashOffset : 0\n }px`;\n }\n\n if (\n !children &&\n !ariaLabelingProps['aria-label'] &&\n !ariaLabelingProps['aria-labelledby']\n ) {\n process.env.NODE_ENV === 'development' &&\n // eslint-disable-next-line no-console\n console.warn(\n 'If no label is provided please make sure to provide an aria label on your progressCircle element.',\n );\n }\n\n return (\n <div\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n ref={forwardedRef}\n className={clsx(\n consumerClassName,\n containerColorsCSS({\n color: 'neutral',\n variant: variant === 'onAccent' ? 'accent' : 'default',\n }),\n progressCircleContainerCSS({ size }),\n )}\n style={consumerStyle}\n {...forwardProps}\n >\n <span\n id={id}\n className={clsx(\n colorUtilsCSS({ color: variant, variant: 'accent' }),\n progressCircleRootCSS,\n )}\n style={{\n height: `${progressCircleSizes[size]}px`,\n width: `${progressCircleSizes[size]}px`,\n }}\n {...ariaLabelingProps}\n {...progressAriaProps}\n {...rootProps}\n >\n <svg\n className={ProgressCircleSVGCSS}\n viewBox={`0 0 ${progressCircleSizes[size]} ${progressCircleSizes[size]}`}\n width=\"100%\"\n height=\"100%\"\n >\n <circle\n fill=\"none\"\n className={clsx(progressCircleBackgroundCSS({ variant }))}\n cx={progressCircleSizes[size] / 2}\n cy={progressCircleSizes[size] / 2}\n r={(progressCircleSizes[size] - progressCircleThickness) / 2}\n strokeWidth={progressCircleThickness}\n />\n <circle\n style={circleStyles}\n className={progressCircleCSS({ indeterminate: isIndeterminate })}\n fill=\"none\"\n pathLength={\n isIndeterminate ? 360 : circleStyles['strokeDasharray']\n }\n cx={progressCircleSizes[size] / 2}\n cy={progressCircleSizes[size] / 2}\n r={(progressCircleSizes[size] - progressCircleThickness) / 2}\n strokeWidth={progressCircleThickness}\n />\n </svg>\n </span>\n {children && (\n <label\n className={clsx(\n progressCircleChildCSS,\n textStyleCSS({ textStyle: size === 'small' ? 'small' : 'base' }),\n )}\n htmlFor={id}\n >\n {children}\n </label>\n )}\n </div>\n );\n },\n);\n\n(\n ProgressCircle as typeof ProgressCircle & { displayName: string }\n).displayName = 'ProgressCircle';\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,SAAwB,kBAAkB;AAEjD,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,4BAA4B;AACrC,SAAS,aAAa;AACtB,SAAS,2BAA2B;AAQpC,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AAgD7B,MAAM,sBAAsB;AAAA,EAC1B,OAAO;AAAA,EACP,OAAO;AACT;AACA,MAAM,0BAA0B;AAMzB,MAAM,iBAAiB;AAAA,EAC5B,CAAC,OAAO,iBAAiB;AACvB,UAAM;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV;AAAA,MACA,IAAI;AAAA,MACJ,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,oBAAoB;AAAA,MACpB,GAAG;AAAA,IACL,IAAyB;AAEzB,UAAM,EAAE,OAAO,iBAAiB,kBAAkB,IAAI;AAAA,MACpD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,UAAM,oBAAoB,qBAAqB,cAAc;AAC7D,UAAM,eAAe,oBAAoB,gBAAgB,iBAAiB;AAE1E,UAAM,cAAc,MAAM,EAAE,QAAQ,kBAAkB,CAAC;AACvD,UAAM,KAAK,UAAU;AAErB,UAAM,eAA8B,CAAC;AACrC,UAAM,YAAY,CAAC;AAEnB,QAAI,CAAC,mBAAmB,UAAU,QAAW;AAC3C,YAAM,gBACJ,IACA,KAAK,OACH,oBAAoB,IAAI,IAAI,2BAA2B;AAC3D,mBAAa,iBAAiB,IAAI,cAAc,QAAQ,CAAC;AACzD,YAAM,aAAa;AAAA,UACd,MAAM,SAAS,MAAO,eAAe,QAAQ,CAAC;AAAA,MACnD;AACA,mBAAa,kBAAkB,IAAI,GACjC,cAAc,IAAI,aAAa,CACjC;AAAA,IACF;AAEA,QACE,CAAC,YACD,CAAC,kBAAkB,YAAY,KAC/B,CAAC,kBAAkB,iBAAiB,GACpC;AACA;AAAA,MAEE,QAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACJ;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa;AAAA,QACb,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAClB,KAAK;AAAA,QACL,WAAW;AAAA,UACT;AAAA,UACA,mBAAmB;AAAA,YACjB,OAAO;AAAA,YACP,SAAS,YAAY,aAAa,WAAW;AAAA,UAC/C,CAAC;AAAA,UACD,2BAA2B,EAAE,KAAK,CAAC;AAAA,QACrC;AAAA,QACA,OAAO;AAAA,QACN,GAAG;AAAA;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,WAAW;AAAA,YACT,cAAc,EAAE,OAAO,SAAS,SAAS,SAAS,CAAC;AAAA,YACnD;AAAA,UACF;AAAA,UACA,OAAO;AAAA,YACL,QAAQ,GAAG,oBAAoB,IAAI,CAAC;AAAA,YACpC,OAAO,GAAG,oBAAoB,IAAI,CAAC;AAAA,UACrC;AAAA,UACC,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAG;AAAA;AAAA,QAEJ;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,YACX,SAAS,OAAO,oBAAoB,IAAI,CAAC,IAAI,oBAAoB,IAAI,CAAC;AAAA,YACtE,OAAM;AAAA,YACN,QAAO;AAAA;AAAA,UAEP;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAW,KAAK,4BAA4B,EAAE,QAAQ,CAAC,CAAC;AAAA,cACxD,IAAI,oBAAoB,IAAI,IAAI;AAAA,cAChC,IAAI,oBAAoB,IAAI,IAAI;AAAA,cAChC,IAAI,oBAAoB,IAAI,IAAI,2BAA2B;AAAA,cAC3D,aAAa;AAAA;AAAA,UACf;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAO;AAAA,cACP,WAAW,kBAAkB,EAAE,eAAe,gBAAgB,CAAC;AAAA,cAC/D,MAAK;AAAA,cACL,YACE,kBAAkB,MAAM,aAAa,iBAAiB;AAAA,cAExD,IAAI,oBAAoB,IAAI,IAAI;AAAA,cAChC,IAAI,oBAAoB,IAAI,IAAI;AAAA,cAChC,IAAI,oBAAoB,IAAI,IAAI,2BAA2B;AAAA,cAC3D,aAAa;AAAA;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACC,YACC;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,aAAa,EAAE,WAAW,SAAS,UAAU,UAAU,OAAO,CAAC;AAAA,UACjE;AAAA,UACA,SAAS;AAAA;AAAA,QAER;AAAA,MACH;AAAA,IAEJ;AAAA,EAEJ;AACF;AAGE,eACA,cAAc;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import "../../styles/colorUtils.css";
|
|
2
|
+
import "../../styles/container.css";
|
|
3
|
+
import "./ProgressCircle.css";
|
|
4
|
+
import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
5
|
+
var ProgressCircleSVGCSS = "ProgressCircle_ProgressCircleSVGCSS__kvldjh2";
|
|
6
|
+
var progressCircleBackgroundCSS = _7a468({ defaultClassName: "ProgressCircle_progressCircleBackgroundCSS__kvldjh6", variantClassNames: { variant: { onAccent: "ProgressCircle_progressCircleBackgroundCSS_variant_onAccent__kvldjh7", primary: "ProgressCircle_progressCircleBackgroundCSS_variant_primary__kvldjh8", success: "ProgressCircle_progressCircleBackgroundCSS_variant_success__kvldjh9", warning: "ProgressCircle_progressCircleBackgroundCSS_variant_warning__kvldjha", critical: "ProgressCircle_progressCircleBackgroundCSS_variant_critical__kvldjhb", neutral: "ProgressCircle_progressCircleBackgroundCSS_variant_neutral__kvldjhc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
7
|
+
var progressCircleCSS = _7a468({ defaultClassName: "ProgressCircle_progressCircleCSS__kvldjh3", variantClassNames: { indeterminate: { true: "ProgressCircle_progressCircleCSS_indeterminate_true__kvldjh4", false: "ProgressCircle_progressCircleCSS_indeterminate_false__kvldjh5" } }, defaultVariants: {}, compoundVariants: [] });
|
|
8
|
+
var progressCircleChildCSS = "ProgressCircle_progressCircleChildCSS__kvldjhg";
|
|
9
|
+
var progressCircleContainerCSS = _7a468({ defaultClassName: "ProgressCircle_progressCircleContainerCSS__kvldjhd", variantClassNames: { size: { small: "ProgressCircle_progressCircleContainerCSS_size_small__kvldjhe", large: "ProgressCircle_progressCircleContainerCSS_size_large__kvldjhf" } }, defaultVariants: {}, compoundVariants: [] });
|
|
10
|
+
var progressCircleRootCSS = "ProgressCircle_progressCircleRootCSS__kvldjh1";
|
|
11
|
+
export {
|
|
12
|
+
ProgressCircleSVGCSS,
|
|
13
|
+
progressCircleBackgroundCSS,
|
|
14
|
+
progressCircleCSS,
|
|
15
|
+
progressCircleChildCSS,
|
|
16
|
+
progressCircleContainerCSS,
|
|
17
|
+
progressCircleRootCSS
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=ProgressCircle.sty.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/content/progress/ProgressCircle.css.ts"],
|
|
4
|
+
"sourcesContent": ["import '../../styles/colorUtils.css';\nimport '../../styles/container.css';\nimport './ProgressCircle.css';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var ProgressCircleSVGCSS = 'ProgressCircle_ProgressCircleSVGCSS__kvldjh2';\nexport var progressCircleBackgroundCSS = _7a468({defaultClassName:'ProgressCircle_progressCircleBackgroundCSS__kvldjh6',variantClassNames:{variant:{onAccent:'ProgressCircle_progressCircleBackgroundCSS_variant_onAccent__kvldjh7',primary:'ProgressCircle_progressCircleBackgroundCSS_variant_primary__kvldjh8',success:'ProgressCircle_progressCircleBackgroundCSS_variant_success__kvldjh9',warning:'ProgressCircle_progressCircleBackgroundCSS_variant_warning__kvldjha',critical:'ProgressCircle_progressCircleBackgroundCSS_variant_critical__kvldjhb',neutral:'ProgressCircle_progressCircleBackgroundCSS_variant_neutral__kvldjhc'}},defaultVariants:{},compoundVariants:[]});\nexport var progressCircleCSS = _7a468({defaultClassName:'ProgressCircle_progressCircleCSS__kvldjh3',variantClassNames:{indeterminate:{true:'ProgressCircle_progressCircleCSS_indeterminate_true__kvldjh4',false:'ProgressCircle_progressCircleCSS_indeterminate_false__kvldjh5'}},defaultVariants:{},compoundVariants:[]});\nexport var progressCircleChildCSS = 'ProgressCircle_progressCircleChildCSS__kvldjhg';\nexport var progressCircleContainerCSS = _7a468({defaultClassName:'ProgressCircle_progressCircleContainerCSS__kvldjhd',variantClassNames:{size:{small:'ProgressCircle_progressCircleContainerCSS_size_small__kvldjhe',large:'ProgressCircle_progressCircleContainerCSS_size_large__kvldjhf'}},defaultVariants:{},compoundVariants:[]});\nexport var progressCircleRootCSS = 'ProgressCircle_progressCircleRootCSS__kvldjh1';"],
|
|
5
|
+
"mappings": "AAAA,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,mBAAmB,cAAc;AACnC,IAAI,uBAAuB;AAC3B,IAAI,8BAA8B,OAAO,EAAC,kBAAiB,uDAAsD,mBAAkB,EAAC,SAAQ,EAAC,UAAS,wEAAuE,SAAQ,uEAAsE,SAAQ,uEAAsE,SAAQ,uEAAsE,UAAS,wEAAuE,SAAQ,sEAAqE,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AAC9oB,IAAI,oBAAoB,OAAO,EAAC,kBAAiB,6CAA4C,mBAAkB,EAAC,eAAc,EAAC,MAAK,gEAA+D,OAAM,gEAA+D,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AAClT,IAAI,yBAAyB;AAC7B,IAAI,6BAA6B,OAAO,EAAC,kBAAiB,sDAAqD,mBAAkB,EAAC,MAAK,EAAC,OAAM,iEAAgE,OAAM,gEAA+D,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AAC7T,IAAI,wBAAwB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/content/progress/contexts/SharedProgressBarPropsContext.ts"],
|
|
4
|
+
"sourcesContent": ["import React from 'react';\n\nimport { RoleVariantType } from '../../../core/types/role-variant.js';\n\nexport type SharedProgressBarProps = {\n id: string;\n variant: RoleVariantType;\n density: 'default' | 'condensed';\n};\n\n/** Context provider for `ProgressBarProps` props meant to be provided to all its progressbar-related child nodes. */\nexport const SharedProgressBarPropsContext =\n React.createContext<SharedProgressBarProps>({\n id: '',\n density: 'default',\n variant: 'neutral',\n });\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,WAAW;AAWX,MAAM,gCACX,MAAM,cAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,SAAS;AACX,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { clamp } from "lodash-es";
|
|
2
|
+
import { format, units } from "@dynatrace-sdk/units";
|
|
3
|
+
function useProgressAriaProps(originalValue, min, max, valueText) {
|
|
4
|
+
let value;
|
|
5
|
+
let isIndeterminate;
|
|
6
|
+
if (originalValue === "indeterminate" || originalValue === void 0) {
|
|
7
|
+
value = void 0;
|
|
8
|
+
isIndeterminate = true;
|
|
9
|
+
} else {
|
|
10
|
+
value = originalValue;
|
|
11
|
+
isIndeterminate = false;
|
|
12
|
+
}
|
|
13
|
+
if (!isIndeterminate) {
|
|
14
|
+
value = clamp(originalValue, min, max);
|
|
15
|
+
}
|
|
16
|
+
if (!isIndeterminate && value !== void 0 && !valueText) {
|
|
17
|
+
valueText = format(value, { input: units.percentage.percent });
|
|
18
|
+
}
|
|
19
|
+
const progressAriaProps = {
|
|
20
|
+
// aria-valuenow should only be provided and updated if the value is not indeterminate https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role)
|
|
21
|
+
"aria-valuenow": isIndeterminate ? void 0 : value,
|
|
22
|
+
"aria-valuetext": isIndeterminate ? void 0 : valueText,
|
|
23
|
+
// aria-valuemin should only be provided if min is not 0 (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role)
|
|
24
|
+
"aria-valuemin": min !== 0 ? min : void 0,
|
|
25
|
+
// aria-valuemax should only be provided if min is not 100 (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role)
|
|
26
|
+
"aria-valuemax": max !== 100 ? max : void 0,
|
|
27
|
+
role: "progressbar"
|
|
28
|
+
};
|
|
29
|
+
if (isIndeterminate === true && value === void 0) {
|
|
30
|
+
return {
|
|
31
|
+
value: void 0,
|
|
32
|
+
isIndeterminate: true,
|
|
33
|
+
progressAriaProps
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
value,
|
|
38
|
+
isIndeterminate: false,
|
|
39
|
+
progressAriaProps
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
useProgressAriaProps
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=useProgressAriaProps.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/content/progress/hooks/useProgressAriaProps.ts"],
|
|
4
|
+
"sourcesContent": ["import { clamp } from 'lodash-es';\n\nimport { format, units } from '@dynatrace-sdk/units';\n\ninterface ProgressAriaValueReturnProps {\n /**\n * The properly clamped progress value or undefined if progress is indeterminate.\n */\n value: number;\n /**\n * indicates if the progress is indeterminate or has a value.\n */\n isIndeterminate: false;\n}\ninterface ProgressAriaIndeterminateReturnProps {\n /**\n * The properly clamped progress value or undefined if progress is indeterminate.\n */\n value: undefined;\n /**\n * indicates if the progress is indeterminate or has a value.\n */\n isIndeterminate: true;\n}\n\ntype ProgressAriaReturnProps = (\n | ProgressAriaValueReturnProps\n | ProgressAriaIndeterminateReturnProps\n) & {\n /**\n * Aria props for a ProgressBar element that is not a native <progress /> element.\n */\n progressAriaProps: {\n 'aria-valuenow'?: number;\n 'aria-valuetext'?: string;\n 'aria-valuemin'?: number;\n 'aria-valuemax'?: number;\n role: string;\n };\n};\n\n/**\n * Returns aria-props for a progress as well as the properly clamped value property.\n * @internal\n */\nexport function useProgressAriaProps(\n originalValue: undefined | number | 'indeterminate',\n min: number,\n max: number,\n valueText?: string,\n): ProgressAriaReturnProps {\n let value: number | undefined;\n let isIndeterminate: boolean;\n\n if (originalValue === 'indeterminate' || originalValue === undefined) {\n value = undefined;\n isIndeterminate = true;\n } else {\n value = originalValue;\n isIndeterminate = false;\n }\n\n if (!isIndeterminate) {\n value = clamp(originalValue as number, min, max);\n }\n\n if (!isIndeterminate && value !== undefined && !valueText) {\n valueText = format(value, { input: units.percentage.percent });\n }\n\n const progressAriaProps = {\n // aria-valuenow should only be provided and updated if the value is not indeterminate https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role)\n 'aria-valuenow': isIndeterminate ? undefined : value,\n 'aria-valuetext': isIndeterminate ? undefined : valueText,\n // aria-valuemin should only be provided if min is not 0 (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role)\n 'aria-valuemin': min !== 0 ? min : undefined,\n // aria-valuemax should only be provided if min is not 100 (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role)\n 'aria-valuemax': max !== 100 ? max : undefined,\n role: 'progressbar',\n };\n\n if (isIndeterminate === true && value === undefined) {\n return {\n value: undefined,\n isIndeterminate: true,\n progressAriaProps,\n };\n }\n\n return {\n value: value as number,\n isIndeterminate: false,\n progressAriaProps,\n };\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,aAAa;AAEtB,SAAS,QAAQ,aAAa;AA2CvB,SAAS,qBACd,eACA,KACA,KACA,WACyB;AACzB,MAAI;AACJ,MAAI;AAEJ,MAAI,kBAAkB,mBAAmB,kBAAkB,QAAW;AACpE,YAAQ;AACR,sBAAkB;AAAA,EACpB,OAAO;AACL,YAAQ;AACR,sBAAkB;AAAA,EACpB;AAEA,MAAI,CAAC,iBAAiB;AACpB,YAAQ,MAAM,eAAyB,KAAK,GAAG;AAAA,EACjD;AAEA,MAAI,CAAC,mBAAmB,UAAU,UAAa,CAAC,WAAW;AACzD,gBAAY,OAAO,OAAO,EAAE,OAAO,MAAM,WAAW,QAAQ,CAAC;AAAA,EAC/D;AAEA,QAAM,oBAAoB;AAAA;AAAA,IAExB,iBAAiB,kBAAkB,SAAY;AAAA,IAC/C,kBAAkB,kBAAkB,SAAY;AAAA;AAAA,IAEhD,iBAAiB,QAAQ,IAAI,MAAM;AAAA;AAAA,IAEnC,iBAAiB,QAAQ,MAAM,MAAM;AAAA,IACrC,MAAM;AAAA,EACR;AAEA,MAAI,oBAAoB,QAAQ,UAAU,QAAW;AACnD,WAAO;AAAA,MACL,OAAO;AAAA,MACP,iBAAiB;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import {
|
|
3
|
+
SharedProgressBarPropsContext
|
|
4
|
+
} from "../contexts/SharedProgressBarPropsContext.js";
|
|
5
|
+
function _useSharedProgressBarPropsContext() {
|
|
6
|
+
const context = useContext(SharedProgressBarPropsContext);
|
|
7
|
+
return {
|
|
8
|
+
id: context.id,
|
|
9
|
+
variant: context.variant,
|
|
10
|
+
density: context.density
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
_useSharedProgressBarPropsContext
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=useProgressBarPropsContext.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/content/progress/hooks/useProgressBarPropsContext.ts"],
|
|
4
|
+
"sourcesContent": ["import { useContext } from 'react';\n\nimport {\n SharedProgressBarProps,\n SharedProgressBarPropsContext,\n} from '../contexts/SharedProgressBarPropsContext.js';\n\nexport function _useSharedProgressBarPropsContext(): SharedProgressBarProps {\n const context = useContext(SharedProgressBarPropsContext);\n\n return {\n id: context.id,\n variant: context.variant,\n density: context.density,\n };\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,kBAAkB;AAE3B;AAAA,EAEE;AAAA,OACK;AAEA,SAAS,oCAA4D;AAC1E,QAAM,UAAU,WAAW,6BAA6B;AAExD,SAAO;AAAA,IACL,IAAI,QAAQ;AAAA,IACZ,SAAS,QAAQ;AAAA,IACjB,SAAS,QAAQ;AAAA,EACnB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Colors from "@dynatrace/strato-design-tokens/colors";
|
|
2
|
+
function getFillColorFromVariant($variant) {
|
|
3
|
+
switch ($variant) {
|
|
4
|
+
case "onAccent":
|
|
5
|
+
return Colors.Border.OnAccent.Default;
|
|
6
|
+
case "primary":
|
|
7
|
+
return Colors.Border.Primary.Accent;
|
|
8
|
+
case "success":
|
|
9
|
+
return Colors.Border.Success.Accent;
|
|
10
|
+
case "warning":
|
|
11
|
+
return Colors.Border.Warning.Accent;
|
|
12
|
+
case "critical":
|
|
13
|
+
return Colors.Border.Critical.Accent;
|
|
14
|
+
case "neutral":
|
|
15
|
+
default:
|
|
16
|
+
return Colors.Border.Neutral.Accent;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
getFillColorFromVariant
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/content/progress/utils.ts"],
|
|
4
|
+
"sourcesContent": ["import Colors from '@dynatrace/strato-design-tokens/colors';\n\nimport { RoleVariantType } from '../../core/types/role-variant.js';\n\nexport function getFillColorFromVariant($variant: RoleVariantType) {\n switch ($variant) {\n case 'onAccent':\n return Colors.Border.OnAccent.Default;\n case 'primary':\n return Colors.Border.Primary.Accent;\n case 'success':\n return Colors.Border.Success.Accent;\n case 'warning':\n return Colors.Border.Warning.Accent;\n case 'critical':\n return Colors.Border.Critical.Accent;\n case 'neutral':\n default:\n return Colors.Border.Neutral.Accent;\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,YAAY;AAIZ,SAAS,wBAAwB,UAA2B;AACjE,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO,OAAO,OAAO,SAAS;AAAA,IAChC,KAAK;AACH,aAAO,OAAO,OAAO,QAAQ;AAAA,IAC/B,KAAK;AACH,aAAO,OAAO,OAAO,QAAQ;AAAA,IAC/B,KAAK;AACH,aAAO,OAAO,OAAO,QAAQ;AAAA,IAC/B,KAAK;AACH,aAAO,OAAO,OAAO,SAAS;AAAA,IAChC,KAAK;AAAA,IACL;AACE,aAAO,OAAO,OAAO,QAAQ;AAAA,EACjC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/core/components/app-root/AppRoot.tsx"],
|
|
4
|
-
"sourcesContent": ["import { isEmpty } from 'lodash-es';\nimport React, {\n type PropsWithChildren,\n forwardRef,\n useEffect,\n useLayoutEffect,\n useState,\n} from 'react';\nimport { IntlProvider, type MessageFormatElement } from 'react-intl';\n\nimport 'wicg-inert';\nimport { getLanguage, getTimezone } from '@dynatrace-sdk/user-preferences';\n\nimport './AppRoot.sty.js';\nimport { useCurrentTheme } from '../../hooks/useCurrentTheme.js';\nimport { FocusProvider } from '../../providers/FocusProvider.js';\nimport { type DataTestId } from '../../types/data-props.js';\nimport { type MaskingProps } from '../../types/masking-props.js';\nimport { type StylingProps } from '../../types/styling-props.js';\n\n/**\n * Gets the href value set in the <base> element to prefix fetches correctly.\n * Will always end with a `/` value\n */\nfunction getBaseHref(): string {\n const baseElement = document.querySelector('base');\n const href = baseElement?.href ?? '/';\n return href.endsWith('/') ? href : `${href}/`;\n}\n\n/**\n *
|
|
4
|
+
"sourcesContent": ["import { isEmpty } from 'lodash-es';\nimport React, {\n type PropsWithChildren,\n forwardRef,\n useEffect,\n useLayoutEffect,\n useState,\n} from 'react';\nimport { IntlProvider, type MessageFormatElement } from 'react-intl';\n\nimport 'wicg-inert';\nimport { getLanguage, getTimezone } from '@dynatrace-sdk/user-preferences';\n\nimport './AppRoot.sty.js';\nimport { useCurrentTheme } from '../../hooks/useCurrentTheme.js';\nimport { FocusProvider } from '../../providers/FocusProvider.js';\nimport { type DataTestId } from '../../types/data-props.js';\nimport { type MaskingProps } from '../../types/masking-props.js';\nimport { type StylingProps } from '../../types/styling-props.js';\n\n/**\n * Gets the href value set in the <base> element to prefix fetches correctly.\n * Will always end with a `/` value\n */\nfunction getBaseHref(): string {\n const baseElement = document.querySelector('base');\n const href = baseElement?.href ?? '/';\n return href.endsWith('/') ? href : `${href}/`;\n}\n\n/**\n * AppRoot component props.\n * @public\n */\nexport type AppRootProps = PropsWithChildren<\n DataTestId & StylingProps & MaskingProps\n>;\n\nconst defaultLanguage = 'en';\n\n/**\n * In order to have all the providers in place for rendering overlays, applying\n * global styles or internationalization, you need to wrap your app in the\n * `AppRoot`. If you're using the `dt-app` to create your app, this is\n * automatically taken care of and you can start working on your app without\n * further ado.\n * @public\n */\nexport const AppRoot = /* @__PURE__ */ forwardRef<HTMLDivElement, AppRootProps>(\n (props, forwardedRef) => {\n const {\n style: consumerStyle,\n className: consumerClassName,\n 'data-testid': dataTestId = 'app-root',\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n } = props;\n\n /** Messages that are used for the translation. */\n const [messages, setMessages] = useState<\n Record<string, string> | Record<string, MessageFormatElement[]>\n >({});\n\n const { children } = props;\n\n const theme = useCurrentTheme();\n const language = getLanguage();\n let timezone = getTimezone();\n try {\n new Intl.DateTimeFormat(language, { timeZone: timezone });\n } catch (error) {\n // If the passed timezone is not valid, we can fall back to the browsers\n // configured one.\n timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** Inject the font link into the head */\n useLayoutEffect(() => {\n // As we should not use @import within the createGlobalStyles\n // https://styled-components.com/docs/faqs#note-regarding-css-import-and-createglobalstyle\n // and we need to inject the fonts at run time to decouple font usage\n // from the cli build / deployment\n // we will inject the link tag here in the root on initial load.\n const link = document.createElement('link');\n\n link.rel = 'stylesheet';\n link.href = 'https://dt-cdn.net/fonts/fonts-v004.css';\n document.head.appendChild(link);\n return () => {\n document.head.removeChild(link);\n };\n }, []);\n\n /**\n * Synchronize the [data-theme] attribute to the root of the document\n * to have the design tokens defined in the cascade.\n */\n useLayoutEffect(() => {\n if (document !== undefined) {\n document.documentElement.setAttribute('data-theme', theme);\n }\n }, [theme]);\n\n useEffect(() => {\n if (language === 'en') {\n // Don't fetch translations for 'en' to avoid an additional render cycle.\n // The default messages are in english already.\n return;\n }\n\n fetch(`${getBaseHref()}lang/${language}.json`)\n .then((res) => {\n return res.json();\n })\n .then((receivedMessages) => {\n setMessages(receivedMessages);\n })\n .catch(() => {\n // Only set messages to a new empty object if the previous messages were not empty.\n // `setMessages({})` would make react believe that this is a new object and, hence, re-render.\n // By just returning `prev` if the messages were already empty, we can avoid the additional render.\n setMessages((prev) => (isEmpty(prev) ? prev : {}));\n });\n }, [language]);\n\n return (\n <div\n ref={forwardedRef}\n data-testid={dataTestId}\n className={consumerClassName}\n style={consumerStyle}\n data-theme={theme}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n >\n <IntlProvider\n locale={language}\n timeZone={timezone}\n messages={messages}\n defaultLocale={defaultLanguage}\n >\n <FocusProvider>{children}</FocusProvider>\n </IntlProvider>\n </div>\n );\n },\n);\n\n(AppRoot as typeof AppRoot & { displayName: string }).displayName = 'AppRoot';\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,eAAe;AACxB,OAAO;AAAA,EAEL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAA+C;AAExD,OAAO;AACP,SAAS,aAAa,mBAAmB;AAEzC,OAAO;AACP,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAS9B,SAAS,cAAsB;AAC7B,QAAM,cAAc,SAAS,cAAc,MAAM;AACjD,QAAM,OAAO,aAAa,QAAQ;AAClC,SAAO,KAAK,SAAS,GAAG,IAAI,OAAO,GAAG,IAAI;AAC5C;AAUA,MAAM,kBAAkB;AAUjB,MAAM,UAA0B;AAAA,EACrC,CAAC,OAAO,iBAAiB;AACvB,UAAM;AAAA,MACJ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,eAAe,aAAa;AAAA,MAC5B,mBAAmB;AAAA,MACnB,oBAAoB;AAAA,IACtB,IAAI;AAGJ,UAAM,CAAC,UAAU,WAAW,IAAI,SAE9B,CAAC,CAAC;AAEJ,UAAM,EAAE,SAAS,IAAI;AAErB,UAAM,QAAQ,gBAAgB;AAC9B,UAAM,WAAW,YAAY;AAC7B,QAAI,WAAW,YAAY;AAC3B,QAAI;AACF,UAAI,KAAK,eAAe,UAAU,EAAE,UAAU,SAAS,CAAC;AAAA,IAC1D,SAAS,OAAO;AAGd,iBAAW,KAAK,eAAe,EAAE,gBAAgB,EAAE;AAAA,IACrD;AAGA,oBAAgB,MAAM;AAMpB,YAAM,OAAO,SAAS,cAAc,MAAM;AAE1C,WAAK,MAAM;AACX,WAAK,OAAO;AACZ,eAAS,KAAK,YAAY,IAAI;AAC9B,aAAO,MAAM;AACX,iBAAS,KAAK,YAAY,IAAI;AAAA,MAChC;AAAA,IACF,GAAG,CAAC,CAAC;AAML,oBAAgB,MAAM;AACpB,UAAI,aAAa,QAAW;AAC1B,iBAAS,gBAAgB,aAAa,cAAc,KAAK;AAAA,MAC3D;AAAA,IACF,GAAG,CAAC,KAAK,CAAC;AAEV,cAAU,MAAM;AACd,UAAI,aAAa,MAAM;AAGrB;AAAA,MACF;AAEA,YAAM,GAAG,YAAY,CAAC,QAAQ,QAAQ,OAAO,EAC1C,KAAK,CAAC,QAAQ;AACb,eAAO,IAAI,KAAK;AAAA,MAClB,CAAC,EACA,KAAK,CAAC,qBAAqB;AAC1B,oBAAY,gBAAgB;AAAA,MAC9B,CAAC,EACA,MAAM,MAAM;AAIX,oBAAY,CAAC,SAAU,QAAQ,IAAI,IAAI,OAAO,CAAC,CAAE;AAAA,MACnD,CAAC;AAAA,IACL,GAAG,CAAC,QAAQ,CAAC;AAEb,WACE;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,eAAa;AAAA,QACb,WAAW;AAAA,QACX,OAAO;AAAA,QACP,cAAY;AAAA,QACZ,mBAAiB;AAAA,QACjB,oBAAkB;AAAA;AAAA,MAElB;AAAA,QAAC;AAAA;AAAA,UACC,QAAQ;AAAA,UACR,UAAU;AAAA,UACV;AAAA,UACA,eAAe;AAAA;AAAA,QAEf,oCAAC,qBAAe,QAAS;AAAA,MAC3B;AAAA,IACF;AAAA,EAEJ;AACF;AAEC,QAAqD,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function useAriaLabelingProps(props) {
|
|
2
|
+
return {
|
|
3
|
+
"aria-label": props["aria-label"],
|
|
4
|
+
"aria-labelledby": props["aria-labelledby"],
|
|
5
|
+
"aria-describedby": props["aria-describedby"],
|
|
6
|
+
"aria-details": props["aria-details"]
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
useAriaLabelingProps
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useAriaLabelingProps.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/core/hooks/useAriaLabelingProps.ts"],
|
|
4
|
+
"sourcesContent": ["import { AriaLabelingProps } from '../types/a11y-props.js';\n\n/**\n * Utility function to extract aria-labeling props from component props to easily spread them to the desired child.\n * @internal\n */\nexport function useAriaLabelingProps<T extends object>(\n props: AriaLabelingProps & T,\n): AriaLabelingProps {\n return {\n 'aria-label': props['aria-label'],\n 'aria-labelledby': props['aria-labelledby'],\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details'],\n };\n}\n"],
|
|
5
|
+
"mappings": "AAMO,SAAS,qBACd,OACmB;AACnB,SAAO;AAAA,IACL,cAAc,MAAM,YAAY;AAAA,IAChC,mBAAmB,MAAM,iBAAiB;AAAA,IAC1C,oBAAoB,MAAM,kBAAkB;AAAA,IAC5C,gBAAgB,MAAM,cAAc;AAAA,EACtC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/core/hooks/useCurrentTheme.tsx"],
|
|
4
|
-
"sourcesContent": ["import { useEffect, useMemo, useState } from 'react';\n\nimport { getTheme } from '@dynatrace-sdk/user-preferences';\n\nimport { isBrowser } from '../utils/isBrowser.js';\n\n/**\n *
|
|
4
|
+
"sourcesContent": ["import { useEffect, useMemo, useState } from 'react';\n\nimport { getTheme } from '@dynatrace-sdk/user-preferences';\n\nimport { isBrowser } from '../utils/isBrowser.js';\n\n/**\n * Returns the current theme based on sdk-setting or browsers preferred color-scheme.\n * @public\n */\nexport function useCurrentTheme(): 'light' | 'dark' {\n const sdkTheme = useMemo(() => {\n return getTheme();\n }, []);\n\n if (sdkTheme === 'dark' || sdkTheme === 'light') {\n return sdkTheme;\n }\n\n if (!isBrowser) {\n return 'light';\n }\n\n // suppressing the rules of hooks because the sdkTheme is a constant that cannot\n // change through the applications' lifecycle.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const themeQuery = useMemo(\n () => window && window.matchMedia('(prefers-color-scheme: dark)'),\n [],\n );\n\n // suppressing the rules of hooks because the sdkTheme is a constant that cannot\n // change through the applications' lifecycle.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [currentTheme, setCurrentTheme] = useState<'light' | 'dark'>(\n themeQuery.matches ? 'dark' : 'light',\n );\n\n // suppressing the rules of hooks because the sdkTheme is a constant that cannot\n // change through the applications' lifecycle.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const handlePrefersColorSchemeChange = () => {\n const prefersDark = themeQuery.matches;\n setCurrentTheme(prefersDark ? 'dark' : 'light');\n };\n\n themeQuery.addEventListener('change', handlePrefersColorSchemeChange);\n return () => {\n themeQuery.removeEventListener('change', handlePrefersColorSchemeChange);\n };\n }, [themeQuery]);\n\n return currentTheme;\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,WAAW,SAAS,gBAAgB;AAE7C,SAAS,gBAAgB;AAEzB,SAAS,iBAAiB;AAMnB,SAAS,kBAAoC;AAClD,QAAM,WAAW,QAAQ,MAAM;AAC7B,WAAO,SAAS;AAAA,EAClB,GAAG,CAAC,CAAC;AAEL,MAAI,aAAa,UAAU,aAAa,SAAS;AAC/C,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAKA,QAAM,aAAa;AAAA,IACjB,MAAM,UAAU,OAAO,WAAW,8BAA8B;AAAA,IAChE,CAAC;AAAA,EACH;AAKA,QAAM,CAAC,cAAc,eAAe,IAAI;AAAA,IACtC,WAAW,UAAU,SAAS;AAAA,EAChC;AAKA,YAAU,MAAM;AACd,UAAM,iCAAiC,MAAM;AAC3C,YAAM,cAAc,WAAW;AAC/B,sBAAgB,cAAc,SAAS,OAAO;AAAA,IAChD;AAEA,eAAW,iBAAiB,UAAU,8BAA8B;AACpE,WAAO,MAAM;AACX,iBAAW,oBAAoB,UAAU,8BAA8B;AAAA,IACzE;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { isEqual } from "lodash-es";
|
|
2
|
+
import { useRef, useState } from "react";
|
|
3
|
+
function _useFontsUpdated(callback) {
|
|
4
|
+
const [fontsUpdated, setFontsUpdated] = useState(false);
|
|
5
|
+
const prevFontFamilies = useRef();
|
|
6
|
+
const fontFamilies = [];
|
|
7
|
+
const firstRender = useRef(true);
|
|
8
|
+
if (document.fonts) {
|
|
9
|
+
if (firstRender.current) {
|
|
10
|
+
const loadedFontFamilies = [];
|
|
11
|
+
document.fonts.forEach(
|
|
12
|
+
(fontFace) => loadedFontFamilies.push(`${fontFace.family} ${fontFace.weight}`)
|
|
13
|
+
);
|
|
14
|
+
prevFontFamilies.current = loadedFontFamilies;
|
|
15
|
+
firstRender.current = false;
|
|
16
|
+
}
|
|
17
|
+
document.fonts.ready.then((fontFaceSet) => {
|
|
18
|
+
fontFaceSet.forEach(
|
|
19
|
+
(fontFace) => fontFamilies.push(`${fontFace.family} ${fontFace.weight}`)
|
|
20
|
+
);
|
|
21
|
+
if (!isEqual(prevFontFamilies.current, fontFamilies)) {
|
|
22
|
+
prevFontFamilies.current = fontFamilies;
|
|
23
|
+
callback?.();
|
|
24
|
+
setFontsUpdated(true);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return fontsUpdated;
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
_useFontsUpdated
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=useFontsUpdated.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/core/hooks/useFontsUpdated.ts"],
|
|
4
|
+
"sourcesContent": ["import { isEqual } from 'lodash-es';\nimport { useRef, useState } from 'react';\n\n/**\n * Hook that checks if the initially loaded fonts were updated.\n * Used to trigger remeasuring in the DataTable (autoWidth) and TextEllipsis once all fonts are loaded.\n *\n * @param callback - optionally pass a function to be executed once when the fonts were updated\n * @returns boolean whether the fonts have changed\n * @internal\n */\nexport function _useFontsUpdated(callback?: () => void): boolean {\n const [fontsUpdated, setFontsUpdated] = useState(false);\n const prevFontFamilies = useRef<string[]>();\n const fontFamilies: string[] = [];\n const firstRender = useRef(true);\n\n if (document.fonts) {\n // gather the font families that are already loaded\n if (firstRender.current) {\n const loadedFontFamilies: string[] = [];\n document.fonts.forEach((fontFace: FontFace) =>\n loadedFontFamilies.push(`${fontFace.family} ${fontFace.weight}`),\n );\n prevFontFamilies.current = loadedFontFamilies;\n firstRender.current = false;\n }\n\n document.fonts.ready.then((fontFaceSet: FontFaceSet) => {\n fontFaceSet.forEach((fontFace: FontFace) =>\n fontFamilies.push(`${fontFace.family} ${fontFace.weight}`),\n );\n\n if (!isEqual(prevFontFamilies.current, fontFamilies)) {\n prevFontFamilies.current = fontFamilies;\n callback?.();\n setFontsUpdated(true);\n }\n });\n }\n\n return fontsUpdated;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,eAAe;AACxB,SAAS,QAAQ,gBAAgB;AAU1B,SAAS,iBAAiB,UAAgC;AAC/D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AACtD,QAAM,mBAAmB,OAAiB;AAC1C,QAAM,eAAyB,CAAC;AAChC,QAAM,cAAc,OAAO,IAAI;AAE/B,MAAI,SAAS,OAAO;AAElB,QAAI,YAAY,SAAS;AACvB,YAAM,qBAA+B,CAAC;AACtC,eAAS,MAAM;AAAA,QAAQ,CAAC,aACtB,mBAAmB,KAAK,GAAG,SAAS,MAAM,IAAI,SAAS,MAAM,EAAE;AAAA,MACjE;AACA,uBAAiB,UAAU;AAC3B,kBAAY,UAAU;AAAA,IACxB;AAEA,aAAS,MAAM,MAAM,KAAK,CAAC,gBAA6B;AACtD,kBAAY;AAAA,QAAQ,CAAC,aACnB,aAAa,KAAK,GAAG,SAAS,MAAM,IAAI,SAAS,MAAM,EAAE;AAAA,MAC3D;AAEA,UAAI,CAAC,QAAQ,iBAAiB,SAAS,YAAY,GAAG;AACpD,yBAAiB,UAAU;AAC3B,mBAAW;AACX,wBAAgB,IAAI;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { uuidv4 } from "../utils/uuidv4.js";
|
|
3
|
+
const useId = (props = {}) => {
|
|
4
|
+
const { prefix = "strato", seed } = props;
|
|
5
|
+
const generatedId = useMemo(
|
|
6
|
+
() => `${prefix}-${uuidv4(seed)}`,
|
|
7
|
+
[prefix, seed]
|
|
8
|
+
);
|
|
9
|
+
return generatedId;
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
useId
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=useId.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/core/hooks/useId.ts"],
|
|
4
|
+
"sourcesContent": ["import { useMemo } from 'react';\n\nimport { uuidv4 } from '../utils/uuidv4.js';\n\n/**\n * Hook used to generate a unique identifier.\n * @internal\n */\nexport const useId = (\n props: {\n /** If a prefix is defined, the hook prepends the prefix with a hyphen to the generated id.\n * @defaultValue 'strato'\n */\n prefix?: string;\n /** If a seed is defined, the hook uses a seeded random function to generate the id consistently. */\n seed?: number;\n } = {},\n) => {\n const { prefix = 'strato', seed } = props;\n\n const generatedId = useMemo(\n () => `${prefix}-${uuidv4(seed)}`,\n [prefix, seed],\n );\n\n return generatedId;\n};\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,eAAe;AAExB,SAAS,cAAc;AAMhB,MAAM,QAAQ,CACnB,QAOI,CAAC,MACF;AACH,QAAM,EAAE,SAAS,UAAU,KAAK,IAAI;AAEpC,QAAM,cAAc;AAAA,IAClB,MAAM,GAAG,MAAM,IAAI,OAAO,IAAI,CAAC;AAAA,IAC/B,CAAC,QAAQ,IAAI;AAAA,EACf;AAEA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
function useMergeRefs(refs) {
|
|
3
|
+
return useCallback((value) => {
|
|
4
|
+
for (const ref of refs) {
|
|
5
|
+
if (typeof ref === "function") {
|
|
6
|
+
ref(value);
|
|
7
|
+
} else if (ref !== void 0 && ref !== null) {
|
|
8
|
+
ref.current = value;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}, refs);
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
useMergeRefs
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=useMergeRefs.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/core/hooks/useMergeRefs.ts"],
|
|
4
|
+
"sourcesContent": ["import React, { useCallback } from 'react';\n\n/**\n * If you have multiple references (e.g. from different hooks) you need to apply to\n * the same element, you can use the `useMergeRefs` hook to combine them into one\n * reference.\n */\nexport function useMergeRefs<T = unknown>(\n refs: Array<\n | React.MutableRefObject<T>\n | React.LegacyRef<T>\n | React.Dispatch<React.SetStateAction<T | null>>\n | undefined\n >,\n): React.RefCallback<T> {\n return useCallback((value) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== undefined && ref !== null) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n }, refs); // eslint-disable-line react-hooks/exhaustive-deps\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAgB,mBAAmB;AAO5B,SAAS,aACd,MAMsB;AACtB,SAAO,YAAY,CAAC,UAAU;AAC5B,eAAW,OAAO,MAAM;AACtB,UAAI,OAAO,QAAQ,YAAY;AAC7B,YAAI,KAAK;AAAA,MACX,WAAW,QAAQ,UAAa,QAAQ,MAAM;AAC5C,QAAC,IAAyC,UAAU;AAAA,MACtD;AAAA,IACF;AAAA,EACF,GAAG,IAAI;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function useSafeForwardProps(props, excludedProps) {
|
|
2
|
+
const ignoreStyles = ["className", "classNames", "style"];
|
|
3
|
+
const ignoreList = excludedProps ? [...ignoreStyles, ...Object.keys(excludedProps)] : ignoreStyles;
|
|
4
|
+
const safeForwardProps = {};
|
|
5
|
+
for (const [name, prop] of Object.entries(props)) {
|
|
6
|
+
if (!ignoreList.includes(name)) {
|
|
7
|
+
const localName = name;
|
|
8
|
+
safeForwardProps[localName] = prop;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return safeForwardProps;
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
useSafeForwardProps
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=useSafeForwardProps.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/core/hooks/useSafeForwardProps.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * The Filtered Props from 'useSafeForwardProps'\n * @internal\n */\nexport type UseSafeForwardReturnProps<T, P> = Omit<\n T,\n keyof P | 'className' | 'classNames' | 'style'\n>;\n\n/**\n * Filters props out of a prop list. Per default className, classNames & style are filtered.\n * @internal\n */\nexport function useSafeForwardProps<T extends object, P extends object>(\n props: T,\n excludedProps?: P,\n): UseSafeForwardReturnProps<T, P> {\n const ignoreStyles = ['className', 'classNames', 'style'];\n const ignoreList = excludedProps\n ? [...ignoreStyles, ...Object.keys(excludedProps)]\n : ignoreStyles;\n\n const safeForwardProps = {} as UseSafeForwardReturnProps<T, P>;\n for (const [name, prop] of Object.entries(props)) {\n if (!ignoreList.includes(name)) {\n const localName = name as keyof typeof safeForwardProps;\n safeForwardProps[localName] = prop;\n }\n }\n\n return safeForwardProps;\n}\n"],
|
|
5
|
+
"mappings": "AAaO,SAAS,oBACd,OACA,eACiC;AACjC,QAAM,eAAe,CAAC,aAAa,cAAc,OAAO;AACxD,QAAM,aAAa,gBACf,CAAC,GAAG,cAAc,GAAG,OAAO,KAAK,aAAa,CAAC,IAC/C;AAEJ,QAAM,mBAAmB,CAAC;AAC1B,aAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,QAAI,CAAC,WAAW,SAAS,IAAI,GAAG;AAC9B,YAAM,YAAY;AAClB,uBAAiB,SAAS,IAAI;AAAA,IAChC;AAAA,EACF;AAEA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|