@hashicorp/mds-react 0.9.13 → 0.9.15
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/dist/components/accordion/index.d.ts +15 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/accordion/item/button.d.ts +7 -0
- package/dist/components/accordion/item/button.d.ts.map +1 -0
- package/dist/components/accordion/item/index.d.ts +25 -0
- package/dist/components/accordion/item/index.d.ts.map +1 -0
- package/dist/components/accordion/item/index.js.map +1 -0
- package/dist/components/accordion/style.module.scss +110 -0
- package/dist/components/alert/alert.module.scss +227 -0
- package/dist/components/alert/icon.d.ts +10 -0
- package/dist/components/alert/icon.d.ts.map +1 -0
- package/dist/components/alert/index.d.ts +63 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/badge/index.d.ts +32 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/badge/style.module.scss +108 -0
- package/dist/components/badge-count/index.d.ts +16 -0
- package/dist/components/badge-count/index.d.ts.map +1 -0
- package/dist/components/badge-count/index.js.map +1 -0
- package/dist/components/badge-count/style.module.scss +86 -0
- package/dist/components/breadcrumbs/index.d.ts +8 -0
- package/dist/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/breadcrumbs/item/index.d.ts +3 -0
- package/dist/components/breadcrumbs/item/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/style.module.scss +183 -0
- package/dist/components/breadcrumbs/truncation-button/index.d.ts +4 -0
- package/dist/components/breadcrumbs/truncation-button/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/types/index.d.ts +52 -0
- package/dist/components/breadcrumbs/types/index.d.ts.map +1 -0
- package/dist/components/button/button-primitive.d.ts +6 -0
- package/dist/components/button/button-primitive.d.ts.map +1 -0
- package/dist/components/button/button-primitive.js.map +1 -0
- package/dist/components/button/index.d.ts +31 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/styles.module.scss +217 -0
- package/dist/components/card/card-thumbnail/index.d.ts +3 -0
- package/dist/components/card/card-thumbnail/index.d.ts.map +1 -0
- package/dist/components/card/index.d.ts +5 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/card/types.d.ts +54 -0
- package/dist/components/card/types.d.ts.map +1 -0
- package/dist/components/code-block/code-block.module.scss +505 -0
- package/dist/components/code-block/code-lines/index.d.ts +20 -0
- package/dist/components/code-block/code-lines/index.d.ts.map +1 -0
- package/dist/components/code-block/code-lines/utils/split-html-into-lines.d.ts +20 -0
- package/dist/components/code-block/code-lines/utils/split-html-into-lines.d.ts.map +1 -0
- package/dist/components/code-block/code-lines/utils/split-jsx-into-lines.d.ts +22 -0
- package/dist/components/code-block/code-lines/utils/split-jsx-into-lines.d.ts.map +1 -0
- package/dist/components/code-block/code-lines/utils/split-jsx-into-lines.js.map +1 -0
- package/dist/components/code-block/hidden-copy-content/index.d.ts +6 -0
- package/dist/components/code-block/hidden-copy-content/index.d.ts.map +1 -0
- package/dist/components/code-block/hidden-copy-content/index.js.map +1 -0
- package/dist/components/code-block/index.d.ts +56 -0
- package/dist/components/code-block/index.d.ts.map +1 -0
- package/dist/components/code-block/index.js.map +1 -0
- package/dist/components/code-block/utils/parse-highlighted-lines.d.ts +3 -0
- package/dist/components/code-block/utils/parse-highlighted-lines.d.ts.map +1 -0
- package/dist/components/code-block/utils/parse-highlighted-lines.js.map +1 -0
- package/dist/components/code-block/utils/process-snippet.d.ts +13 -0
- package/dist/components/code-block/utils/process-snippet.d.ts.map +1 -0
- package/dist/components/code-block/utils/shellwords.d.ts +15 -0
- package/dist/components/code-block/utils/shellwords.d.ts.map +1 -0
- package/dist/components/code-block/utils/shellwords.js.map +1 -0
- package/dist/components/combo-box-primitive/index.d.ts +69 -0
- package/dist/components/combo-box-primitive/index.d.ts.map +1 -0
- package/dist/components/combo-box-primitive/index.js.map +1 -0
- package/dist/components/dialog-primitive/index.d.ts +13 -0
- package/dist/components/dialog-primitive/index.d.ts.map +1 -0
- package/dist/components/dialog-primitive/index.js.map +1 -0
- package/dist/components/disclosure-primitive/index.d.ts +20 -0
- package/dist/components/disclosure-primitive/index.d.ts.map +1 -0
- package/dist/components/disclosure-primitive/index.js.map +1 -0
- package/dist/components/disclosure-primitive/use-disclosure-primitive.d.ts +12 -0
- package/dist/components/disclosure-primitive/use-disclosure-primitive.d.ts.map +1 -0
- package/dist/components/disclosure-primitive/use-disclosure-primitive.js.map +1 -0
- package/dist/components/dismiss-button/index.d.ts +9 -0
- package/dist/components/dismiss-button/index.d.ts.map +1 -0
- package/dist/components/dismiss-button/styles.module.scss +26 -0
- package/dist/components/dropdown/index.d.ts +73 -0
- package/dist/components/dropdown/index.d.ts.map +1 -0
- package/dist/components/dropdown/index.js.map +1 -0
- package/dist/components/dropdown/list-item/custom.d.ts +11 -0
- package/dist/components/dropdown/list-item/custom.d.ts.map +1 -0
- package/dist/components/dropdown/list-item/index.d.ts +20 -0
- package/dist/components/dropdown/list-item/index.d.ts.map +1 -0
- package/dist/components/dropdown/list-item/interactive.d.ts +30 -0
- package/dist/components/dropdown/list-item/interactive.d.ts.map +1 -0
- package/dist/components/dropdown/list-item/separator.d.ts +9 -0
- package/dist/components/dropdown/list-item/separator.d.ts.map +1 -0
- package/dist/components/dropdown/list-item/styles.module.css +218 -0
- package/dist/components/dropdown/list-item/title.d.ts +11 -0
- package/dist/components/dropdown/list-item/title.d.ts.map +1 -0
- package/dist/components/dropdown/list-item/title.js.map +1 -0
- package/dist/components/dropdown/toggle-button/index.d.ts +31 -0
- package/dist/components/dropdown/toggle-button/index.d.ts.map +1 -0
- package/dist/components/dropdown/toggle-button/index.js.map +1 -0
- package/dist/components/dropdown/toggle-button/styles.module.scss +54 -0
- package/dist/components/flight-icon/index.d.ts +45 -0
- package/dist/components/flight-icon/index.d.ts.map +1 -0
- package/dist/components/flight-icon/index.js.map +1 -0
- package/dist/components/form/checkbox/form-checkbox.module.css +81 -0
- package/dist/components/form/checkbox/index.d.ts +46 -0
- package/dist/components/form/checkbox/index.d.ts.map +1 -0
- package/dist/components/form/error/index.d.ts +17 -0
- package/dist/components/form/error/index.d.ts.map +1 -0
- package/dist/components/form/field/index.d.ts +20 -0
- package/dist/components/form/field/index.d.ts.map +1 -0
- package/dist/components/form/fieldset/index.d.ts +19 -0
- package/dist/components/form/fieldset/index.d.ts.map +1 -0
- package/dist/components/form/file-input/form-file-input.module.scss +81 -0
- package/dist/components/form/file-input/index.d.ts +28 -0
- package/dist/components/form/file-input/index.d.ts.map +1 -0
- package/dist/components/form/helper-text/index.d.ts +12 -0
- package/dist/components/form/helper-text/index.d.ts.map +1 -0
- package/dist/components/form/indicator/index.d.ts +10 -0
- package/dist/components/form/indicator/index.d.ts.map +1 -0
- package/dist/components/form/label/index.d.ts +15 -0
- package/dist/components/form/label/index.d.ts.map +1 -0
- package/dist/components/form/legend/index.d.ts +13 -0
- package/dist/components/form/legend/index.d.ts.map +1 -0
- package/dist/components/form/radio/form-radio.module.scss +71 -0
- package/dist/components/form/radio/index.d.ts +43 -0
- package/dist/components/form/radio/index.d.ts.map +1 -0
- package/dist/components/form/radio-card/description.d.ts +4 -0
- package/dist/components/form/radio-card/description.d.ts.map +1 -0
- package/dist/components/form/radio-card/form-radio-card.module.css +152 -0
- package/dist/components/form/radio-card/group.d.ts +12 -0
- package/dist/components/form/radio-card/group.d.ts.map +1 -0
- package/dist/components/form/radio-card/index.d.ts +49 -0
- package/dist/components/form/radio-card/index.d.ts.map +1 -0
- package/dist/components/form/radio-card/index.js.map +1 -0
- package/dist/components/form/radio-card/label.d.ts +4 -0
- package/dist/components/form/radio-card/label.d.ts.map +1 -0
- package/dist/components/form/select/form-select.module.css +81 -0
- package/dist/components/form/select/index.d.ts +23 -0
- package/dist/components/form/select/index.d.ts.map +1 -0
- package/dist/components/form/select/index.js.map +1 -0
- package/dist/components/form/super-select/form-super-select.module.css +149 -0
- package/dist/components/form/super-select/index.d.ts +56 -0
- package/dist/components/form/super-select/index.d.ts.map +1 -0
- package/dist/components/form/super-select/index.js.map +1 -0
- package/dist/components/form/text-input/index.d.ts +99 -0
- package/dist/components/form/text-input/index.d.ts.map +1 -0
- package/dist/components/form/text-input/index.js.map +1 -0
- package/dist/components/form/text-input/styles.module.css +144 -0
- package/dist/components/form/textarea/form-textarea.module.css +87 -0
- package/dist/components/form/textarea/index.d.ts +20 -0
- package/dist/components/form/textarea/index.d.ts.map +1 -0
- package/dist/components/form/textarea/index.js.map +1 -0
- package/dist/components/form/toggle/form-toggle.module.scss +151 -0
- package/dist/components/form/toggle/index.d.ts +79 -0
- package/dist/components/form/toggle/index.d.ts.map +1 -0
- package/dist/components/hds/wrappers/tooltip.d.ts +15 -0
- package/dist/components/hds/wrappers/tooltip.d.ts.map +1 -0
- package/dist/components/icon-tile/index.d.ts +22 -0
- package/dist/components/icon-tile/index.d.ts.map +1 -0
- package/dist/components/icon-tile/index.js.map +1 -0
- package/dist/components/icon-tile/style.module.scss +123 -0
- package/dist/components/index.d.ts +63 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +124 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/inline-link/index.d.ts +41 -0
- package/dist/components/inline-link/index.d.ts.map +1 -0
- package/dist/components/interactive/index.d.ts +27 -0
- package/dist/components/interactive/index.d.ts.map +1 -0
- package/dist/components/interactive/index.js.map +1 -0
- package/dist/components/legacy-button/index.d.ts +6 -0
- package/dist/components/legacy-button/index.d.ts.map +1 -0
- package/dist/components/legacy-button/index.js.map +1 -0
- package/dist/components/legacy-button/types.d.ts +38 -0
- package/dist/components/legacy-button/types.d.ts.map +1 -0
- package/dist/components/legacy-button/utils.d.ts +10 -0
- package/dist/components/legacy-button/utils.d.ts.map +1 -0
- package/dist/components/legacy-button/utils.js.map +1 -0
- package/dist/components/menu-primitive/index.d.ts +15 -0
- package/dist/components/menu-primitive/index.d.ts.map +1 -0
- package/dist/components/menu-primitive/index.js.map +1 -0
- package/dist/components/menu-primitive/use-menu-primitive.d.ts +10 -0
- package/dist/components/menu-primitive/use-menu-primitive.d.ts.map +1 -0
- package/dist/components/menu-primitive/use-menu-primitive.js.map +1 -0
- package/dist/components/modal/index.d.ts +14 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/modal/use-modal.d.ts +9 -0
- package/dist/components/modal/use-modal.d.ts.map +1 -0
- package/dist/components/modal/use-modal.js.map +1 -0
- package/dist/components/separator/index.d.ts +11 -0
- package/dist/components/separator/index.d.ts.map +1 -0
- package/dist/components/skeleton/index.d.ts +14 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/index.js +30 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton-form/index.d.ts +8 -0
- package/dist/components/skeleton/skeleton-form/index.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton-form/index.js +19 -0
- package/dist/components/skeleton/skeleton-form/index.js.map +1 -0
- package/dist/components/skeleton/skeleton-form/skeleton-form.module.css +32 -0
- package/dist/components/skeleton/skeleton-form/skeleton-form.module.css.js +11 -0
- package/dist/components/skeleton/skeleton-form/skeleton-form.module.css.js.map +1 -0
- package/dist/components/skeleton/skeleton.module.css +87 -0
- package/dist/components/skeleton/skeleton.module.css.js +19 -0
- package/dist/components/skeleton/skeleton.module.css.js.map +1 -0
- package/dist/components/standalone-link/index.d.ts +24 -0
- package/dist/components/standalone-link/index.d.ts.map +1 -0
- package/dist/components/standalone-link/index.js.map +1 -0
- package/dist/components/standalone-link/styles.module.scss +164 -0
- package/dist/components/table/index.d.ts +59 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/td.d.ts +18 -0
- package/dist/components/table/td.d.ts.map +1 -0
- package/dist/components/table/td.js.map +1 -0
- package/dist/components/table/th-button-tooltip.d.ts +7 -0
- package/dist/components/table/th-button-tooltip.d.ts.map +1 -0
- package/dist/components/table/th.d.ts +35 -0
- package/dist/components/table/th.d.ts.map +1 -0
- package/dist/components/table/th.js.map +1 -0
- package/dist/components/table/tr.d.ts +13 -0
- package/dist/components/table/tr.d.ts.map +1 -0
- package/dist/components/table/utils.d.ts +17 -0
- package/dist/components/table/utils.d.ts.map +1 -0
- package/dist/components/table/utils.js.map +1 -0
- package/dist/components/tabs/index.d.ts +22 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tab-panel.d.ts +6 -0
- package/dist/components/tabs/tab-panel.d.ts.map +1 -0
- package/dist/components/tabs/tab-panel.js.map +1 -0
- package/dist/components/tabs/tab.d.ts +25 -0
- package/dist/components/tabs/tab.d.ts.map +1 -0
- package/dist/components/tabs/tab.js.map +1 -0
- package/dist/components/tabs/tabs.module.scss +120 -0
- package/dist/components/tabs/use-tabs-context.d.ts +16 -0
- package/dist/components/tabs/use-tabs-context.d.ts.map +1 -0
- package/dist/components/tabs/use-tabs-context.js.map +1 -0
- package/dist/components/text/index.d.ts +70 -0
- package/dist/components/text/index.d.ts.map +1 -0
- package/dist/components/text/index.js.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.d.ts +9 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.d.ts.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js +63 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/index.d.ts +44 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/index.d.ts.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/index.js +104 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/index.js.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/legend/index.d.ts +11 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/legend/index.d.ts.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/style.module.css +76 -0
- package/dist/components/visualizations/bar-chart/index.d.ts +14 -0
- package/dist/components/visualizations/bar-chart/index.d.ts.map +1 -0
- package/dist/components/visualizations/bar-chart/style.module.css +37 -0
- package/dist/components/visualizations/donut-chart/components/arc-tooltip/index.d.ts +4 -0
- package/dist/components/visualizations/donut-chart/components/arc-tooltip/index.d.ts.map +1 -0
- package/dist/components/visualizations/donut-chart/components/external-arc-label/index.d.ts +4 -0
- package/dist/components/visualizations/donut-chart/components/external-arc-label/index.d.ts.map +1 -0
- package/dist/components/visualizations/donut-chart/components/index.d.ts +4 -0
- package/dist/components/visualizations/donut-chart/components/index.d.ts.map +1 -0
- package/dist/components/visualizations/donut-chart/components/internal-arc-label/index.d.ts +4 -0
- package/dist/components/visualizations/donut-chart/components/internal-arc-label/index.d.ts.map +1 -0
- package/dist/components/visualizations/donut-chart/index.d.ts +11 -0
- package/dist/components/visualizations/donut-chart/index.d.ts.map +1 -0
- package/dist/components/visualizations/donut-chart/index.js +91 -0
- package/dist/components/visualizations/donut-chart/index.js.map +1 -0
- package/dist/components/visualizations/donut-chart/styles.module.css +71 -0
- package/dist/components/visualizations/donut-chart/types.d.ts +17 -0
- package/dist/components/visualizations/donut-chart/types.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +169 -0
- package/dist/index.js.map +1 -0
- package/dist/patterns/card/index.d.ts +6 -0
- package/dist/patterns/card/index.d.ts.map +1 -0
- package/dist/patterns/card/newsroom-card/index.d.ts +16 -0
- package/dist/patterns/card/newsroom-card/index.d.ts.map +1 -0
- package/dist/patterns/card/partner-card/index.d.ts +19 -0
- package/dist/patterns/card/partner-card/index.d.ts.map +1 -0
- package/dist/patterns/card/person-card/index.d.ts +16 -0
- package/dist/patterns/card/person-card/index.d.ts.map +1 -0
- package/dist/patterns/card/primitives.d.ts +38 -0
- package/dist/patterns/card/primitives.d.ts.map +1 -0
- package/dist/patterns/card/promo-card/index.d.ts +19 -0
- package/dist/patterns/card/promo-card/index.d.ts.map +1 -0
- package/dist/patterns/card/resource-card/index.d.ts +17 -0
- package/dist/patterns/card/resource-card/index.d.ts.map +1 -0
- package/dist/patterns/card/style.module.css +119 -0
- package/dist/patterns/card/thumbnails/index.d.ts +14 -0
- package/dist/patterns/card/thumbnails/index.d.ts.map +1 -0
- package/dist/patterns/card/types.d.ts +42 -0
- package/dist/patterns/card/types.d.ts.map +1 -0
- package/dist/patterns/card/unified-card/index.d.ts +11 -0
- package/dist/patterns/card/unified-card/index.d.ts.map +1 -0
- package/dist/patterns/card/unified-card/index.js.map +1 -0
- package/dist/patterns/copy-button/index.d.ts +20 -0
- package/dist/patterns/copy-button/index.d.ts.map +1 -0
- package/dist/patterns/copy-button/index.js +57 -0
- package/dist/patterns/copy-button/index.js.map +1 -0
- package/dist/patterns/index.d.ts +16 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/layout/index.d.ts +70 -0
- package/dist/patterns/layout/index.d.ts.map +1 -0
- package/dist/patterns/layout/layout.module.css +66 -0
- package/dist/patterns/product-badge/index.d.ts +12 -0
- package/dist/patterns/product-badge/index.d.ts.map +1 -0
- package/dist/patterns/product-badge/style.module.css +3 -0
- package/dist/patterns/product-logo/index.d.ts +49 -0
- package/dist/patterns/product-logo/index.d.ts.map +1 -0
- package/dist/patterns/related-content/index.d.ts +7 -0
- package/dist/patterns/related-content/index.d.ts.map +1 -0
- package/dist/patterns/related-content/style.module.css +74 -0
- package/dist/patterns/related-content/types.d.ts +15 -0
- package/dist/patterns/related-content/types.d.ts.map +1 -0
- package/dist/style.css +1 -0
- package/dist/styles/mixins/button.scss +224 -0
- package/dist/styles/mixins/focus-ring.scss +68 -0
- package/dist/utils/clipboard.d.ts +17 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +78 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/get-contrast-yiq.d.ts +21 -0
- package/dist/utils/get-contrast-yiq.d.ts.map +1 -0
- package/dist/utils/get-contrast-yiq.js.map +1 -0
- package/dist/utils/hooks/use-media-query/index.d.ts +2 -0
- package/dist/utils/hooks/use-media-query/index.d.ts.map +1 -0
- package/dist/utils/hooks/use-media-query/index.js +16 -0
- package/dist/utils/hooks/use-media-query/index.js.map +1 -0
- package/dist/utils/hooks/use-screen-size/index.d.ts +6 -0
- package/dist/utils/hooks/use-screen-size/index.d.ts.map +1 -0
- package/dist/utils/hooks/use-screen-size/index.js +10 -0
- package/dist/utils/hooks/use-screen-size/index.js.map +1 -0
- package/dist/utils/i18n/constants/index.d.ts +15 -0
- package/dist/utils/i18n/constants/index.d.ts.map +1 -0
- package/dist/utils/i18n/constants/index.js.map +1 -0
- package/dist/utils/i18n/helpers/index.d.ts +6 -0
- package/dist/utils/i18n/helpers/index.d.ts.map +1 -0
- package/dist/utils/i18n/helpers/is-supported-local.d.ts +3 -0
- package/dist/utils/i18n/helpers/is-supported-local.d.ts.map +1 -0
- package/dist/utils/i18n/helpers/is-supported-local.js +8 -0
- package/dist/utils/i18n/helpers/is-supported-local.js.map +1 -0
- package/dist/utils/i18n/helpers/locale-provider.d.ts +15 -0
- package/dist/utils/i18n/helpers/locale-provider.d.ts.map +1 -0
- package/dist/utils/i18n/helpers/locale-provider.js +19 -0
- package/dist/utils/i18n/helpers/locale-provider.js.map +1 -0
- package/dist/utils/i18n/helpers/to-smart-sentence-case.d.ts +3 -0
- package/dist/utils/i18n/helpers/to-smart-sentence-case.d.ts.map +1 -0
- package/dist/utils/i18n/helpers/to-smart-sentence-case.js.map +1 -0
- package/dist/utils/i18n/helpers/to-smart-title-case.d.ts +3 -0
- package/dist/utils/i18n/helpers/to-smart-title-case.d.ts.map +1 -0
- package/dist/utils/i18n/helpers/to-smart-title-case.js.map +1 -0
- package/dist/utils/i18n/helpers/use-locale.d.ts +3 -0
- package/dist/utils/i18n/helpers/use-locale.d.ts.map +1 -0
- package/dist/utils/i18n/helpers/use-locale.js +14 -0
- package/dist/utils/i18n/helpers/use-locale.js.map +1 -0
- package/dist/utils/i18n/index.d.ts +12 -0
- package/dist/utils/i18n/index.d.ts.map +1 -0
- package/dist/utils/i18n/index.js.map +1 -0
- package/dist/utils/i18n/types.d.ts +3 -0
- package/dist/utils/i18n/types.d.ts.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +16 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/make-normalizer/index.d.ts +31 -0
- package/dist/utils/make-normalizer/index.d.ts.map +1 -0
- package/dist/utils/make-normalizer/index.js.map +1 -0
- package/dist/utils/mds-context/index.d.ts +60 -0
- package/dist/utils/mds-context/index.d.ts.map +1 -0
- package/dist/utils/mds-context/index.js.map +1 -0
- package/package.json +116 -75
- package/components/accordion/index.d.ts +0 -14
- package/components/accordion/item/button.d.ts +0 -6
- package/components/accordion/item/index.d.ts +0 -24
- package/components/accordion/item/index.js.map +0 -1
- package/components/accordion/style.module.scss +0 -110
- package/components/alert/alert.module.scss +0 -229
- package/components/alert/icon.d.ts +0 -9
- package/components/alert/index.d.ts +0 -62
- package/components/alert/index.js.map +0 -1
- package/components/badge/index.d.ts +0 -31
- package/components/badge/index.js.map +0 -1
- package/components/badge/style.module.scss +0 -113
- package/components/badge-count/index.d.ts +0 -15
- package/components/badge-count/index.js.map +0 -1
- package/components/badge-count/style.module.scss +0 -91
- package/components/breadcrumbs/index.d.ts +0 -7
- package/components/breadcrumbs/index.js.map +0 -1
- package/components/breadcrumbs/item/index.d.ts +0 -2
- package/components/breadcrumbs/style.module.scss +0 -183
- package/components/breadcrumbs/truncation-button/index.d.ts +0 -3
- package/components/breadcrumbs/types/index.d.ts +0 -51
- package/components/button/button-primitive.d.ts +0 -5
- package/components/button/button-primitive.js.map +0 -1
- package/components/button/index.d.ts +0 -30
- package/components/button/styles.module.scss +0 -221
- package/components/card/card-thumbnail/index.d.ts +0 -2
- package/components/card/index.d.ts +0 -4
- package/components/card/index.js.map +0 -1
- package/components/card/types.d.ts +0 -53
- package/components/code-block/code-block.module.scss +0 -511
- package/components/code-block/code-lines/index.d.ts +0 -12
- package/components/code-block/code-lines/utils/split-html-into-lines.d.ts +0 -19
- package/components/code-block/code-lines/utils/split-jsx-into-lines.d.ts +0 -21
- package/components/code-block/code-lines/utils/split-jsx-into-lines.js.map +0 -1
- package/components/code-block/hidden-copy-content/index.d.ts +0 -5
- package/components/code-block/hidden-copy-content/index.js.map +0 -1
- package/components/code-block/index.d.ts +0 -55
- package/components/code-block/index.js.map +0 -1
- package/components/code-block/utils/parse-highlighted-lines.d.ts +0 -2
- package/components/code-block/utils/parse-highlighted-lines.js.map +0 -1
- package/components/code-block/utils/process-snippet.d.ts +0 -12
- package/components/code-block/utils/shellwords.d.ts +0 -14
- package/components/code-block/utils/shellwords.js.map +0 -1
- package/components/combo-box-primitive/index.d.ts +0 -69
- package/components/combo-box-primitive/index.js.map +0 -1
- package/components/dialog-primitive/index.d.ts +0 -12
- package/components/dialog-primitive/index.js.map +0 -1
- package/components/disclosure-primitive/index.d.ts +0 -19
- package/components/disclosure-primitive/index.js.map +0 -1
- package/components/disclosure-primitive/use-disclosure-primitive.d.ts +0 -11
- package/components/disclosure-primitive/use-disclosure-primitive.js.map +0 -1
- package/components/dismiss-button/index.d.ts +0 -9
- package/components/dismiss-button/styles.module.scss +0 -31
- package/components/dropdown/index.d.ts +0 -72
- package/components/dropdown/index.js.map +0 -1
- package/components/dropdown/list-item/custom.d.ts +0 -10
- package/components/dropdown/list-item/index.d.ts +0 -19
- package/components/dropdown/list-item/interactive.d.ts +0 -29
- package/components/dropdown/list-item/separator.d.ts +0 -8
- package/components/dropdown/list-item/styles.module.css +0 -222
- package/components/dropdown/list-item/title.d.ts +0 -10
- package/components/dropdown/list-item/title.js.map +0 -1
- package/components/dropdown/toggle-button/index.d.ts +0 -30
- package/components/dropdown/toggle-button/index.js.map +0 -1
- package/components/dropdown/toggle-button/styles.module.scss +0 -54
- package/components/flight-icon/index.d.ts +0 -44
- package/components/flight-icon/index.js.map +0 -1
- package/components/form/checkbox/form-checkbox.module.css +0 -88
- package/components/form/checkbox/index.d.ts +0 -45
- package/components/form/error/index.d.ts +0 -16
- package/components/form/field/index.d.ts +0 -19
- package/components/form/fieldset/index.d.ts +0 -18
- package/components/form/file-input/form-file-input.module.scss +0 -81
- package/components/form/file-input/index.d.ts +0 -27
- package/components/form/helper-text/index.d.ts +0 -11
- package/components/form/indicator/index.d.ts +0 -9
- package/components/form/label/index.d.ts +0 -14
- package/components/form/legend/index.d.ts +0 -12
- package/components/form/radio/form-radio.module.scss +0 -74
- package/components/form/radio/index.d.ts +0 -42
- package/components/form/radio-card/description.d.ts +0 -3
- package/components/form/radio-card/form-radio-card.module.css +0 -153
- package/components/form/radio-card/group.d.ts +0 -11
- package/components/form/radio-card/index.d.ts +0 -48
- package/components/form/radio-card/index.js.map +0 -1
- package/components/form/radio-card/label.d.ts +0 -3
- package/components/form/select/form-select.module.css +0 -89
- package/components/form/select/index.d.ts +0 -22
- package/components/form/select/index.js.map +0 -1
- package/components/form/super-select/form-super-select.module.css +0 -155
- package/components/form/super-select/index.d.ts +0 -55
- package/components/form/super-select/index.js.map +0 -1
- package/components/form/text-input/index.d.ts +0 -98
- package/components/form/text-input/index.js.map +0 -1
- package/components/form/text-input/styles.module.css +0 -158
- package/components/form/textarea/form-textarea.module.css +0 -88
- package/components/form/textarea/index.d.ts +0 -19
- package/components/form/textarea/index.js.map +0 -1
- package/components/form/toggle/form-toggle.module.scss +0 -164
- package/components/form/toggle/index.d.ts +0 -78
- package/components/hds/wrappers/tooltip.d.ts +0 -13
- package/components/icon-tile/index.d.ts +0 -21
- package/components/icon-tile/index.js.map +0 -1
- package/components/icon-tile/style.module.scss +0 -138
- package/components/index.d.ts +0 -60
- package/components/index.js +0 -120
- package/components/index.js.map +0 -1
- package/components/inline-link/index.d.ts +0 -40
- package/components/interactive/index.d.ts +0 -26
- package/components/interactive/index.js.map +0 -1
- package/components/legacy-button/index.d.ts +0 -5
- package/components/legacy-button/index.js.map +0 -1
- package/components/legacy-button/types.d.ts +0 -37
- package/components/legacy-button/utils.d.ts +0 -9
- package/components/legacy-button/utils.js.map +0 -1
- package/components/menu-primitive/index.d.ts +0 -14
- package/components/menu-primitive/index.js.map +0 -1
- package/components/menu-primitive/use-menu-primitive.d.ts +0 -9
- package/components/menu-primitive/use-menu-primitive.js.map +0 -1
- package/components/modal/index.d.ts +0 -13
- package/components/modal/index.js.map +0 -1
- package/components/modal/use-modal.d.ts +0 -8
- package/components/modal/use-modal.js.map +0 -1
- package/components/separator/index.d.ts +0 -10
- package/components/standalone-link/index.d.ts +0 -23
- package/components/standalone-link/index.js.map +0 -1
- package/components/standalone-link/styles.module.scss +0 -166
- package/components/table/index.d.ts +0 -58
- package/components/table/index.js.map +0 -1
- package/components/table/td.d.ts +0 -17
- package/components/table/td.js.map +0 -1
- package/components/table/th-button-tooltip.d.ts +0 -6
- package/components/table/th.d.ts +0 -34
- package/components/table/th.js.map +0 -1
- package/components/table/tr.d.ts +0 -12
- package/components/table/utils.d.ts +0 -16
- package/components/table/utils.js.map +0 -1
- package/components/tabs/index.d.ts +0 -21
- package/components/tabs/index.js.map +0 -1
- package/components/tabs/tab-panel.d.ts +0 -5
- package/components/tabs/tab-panel.js.map +0 -1
- package/components/tabs/tab.d.ts +0 -24
- package/components/tabs/tab.js.map +0 -1
- package/components/tabs/tabs.module.scss +0 -163
- package/components/tabs/use-tabs-context.d.ts +0 -15
- package/components/tabs/use-tabs-context.js.map +0 -1
- package/components/text/index.d.ts +0 -69
- package/components/text/index.js.map +0 -1
- package/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.d.ts +0 -8
- package/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js +0 -62
- package/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js.map +0 -1
- package/components/visualizations/bar-chart/horizontal-chart/index.d.ts +0 -44
- package/components/visualizations/bar-chart/horizontal-chart/index.js +0 -104
- package/components/visualizations/bar-chart/horizontal-chart/index.js.map +0 -1
- package/components/visualizations/bar-chart/horizontal-chart/legend/index.d.ts +0 -10
- package/components/visualizations/bar-chart/horizontal-chart/style.module.css +0 -76
- package/components/visualizations/bar-chart/index.d.ts +0 -13
- package/components/visualizations/bar-chart/style.module.css +0 -39
- package/components/visualizations/donut-chart/components/arc-tooltip/index.d.ts +0 -3
- package/components/visualizations/donut-chart/components/external-arc-label/index.d.ts +0 -3
- package/components/visualizations/donut-chart/components/index.d.ts +0 -3
- package/components/visualizations/donut-chart/components/internal-arc-label/index.d.ts +0 -3
- package/components/visualizations/donut-chart/index.d.ts +0 -10
- package/components/visualizations/donut-chart/index.js +0 -90
- package/components/visualizations/donut-chart/index.js.map +0 -1
- package/components/visualizations/donut-chart/styles.module.css +0 -73
- package/components/visualizations/donut-chart/types.d.ts +0 -16
- package/hooks/use-media-query/index.js +0 -16
- package/hooks/use-media-query/index.js.map +0 -1
- package/index.d.ts +0 -3
- package/index.js +0 -163
- package/index.js.map +0 -1
- package/patterns/card/index.d.ts +0 -5
- package/patterns/card/newsroom-card/index.d.ts +0 -15
- package/patterns/card/partner-card/index.d.ts +0 -18
- package/patterns/card/person-card/index.d.ts +0 -15
- package/patterns/card/primitives.d.ts +0 -37
- package/patterns/card/promo-card/index.d.ts +0 -18
- package/patterns/card/resource-card/index.d.ts +0 -16
- package/patterns/card/style.module.css +0 -121
- package/patterns/card/thumbnails/index.d.ts +0 -13
- package/patterns/card/types.d.ts +0 -41
- package/patterns/card/unified-card/index.d.ts +0 -10
- package/patterns/card/unified-card/index.js.map +0 -1
- package/patterns/copy-button/clipboard.d.ts +0 -16
- package/patterns/copy-button/clipboard.js +0 -78
- package/patterns/copy-button/clipboard.js.map +0 -1
- package/patterns/copy-button/index.d.ts +0 -19
- package/patterns/copy-button/index.js +0 -57
- package/patterns/copy-button/index.js.map +0 -1
- package/patterns/index.d.ts +0 -15
- package/patterns/layout/index.d.ts +0 -69
- package/patterns/layout/layout.module.css +0 -72
- package/patterns/product-badge/index.d.ts +0 -11
- package/patterns/product-badge/style.module.css +0 -3
- package/patterns/product-logo/index.d.ts +0 -48
- package/patterns/related-content/index.d.ts +0 -6
- package/patterns/related-content/style.module.css +0 -74
- package/patterns/related-content/types.d.ts +0 -14
- package/style.css +0 -1
- package/styles/mixins/button.scss +0 -279
- package/styles/mixins/focus-ring.scss +0 -75
- package/utils/get-contrast-yiq.d.ts +0 -20
- package/utils/get-contrast-yiq.js.map +0 -1
- package/utils/hooks/use-screen-size.d.ts +0 -5
- package/utils/hooks/use-screen-size.js +0 -10
- package/utils/hooks/use-screen-size.js.map +0 -1
- package/utils/i18n/constants/index.js.map +0 -1
- package/utils/i18n/helpers/index.d.ts +0 -4
- package/utils/i18n/helpers/index.js +0 -8
- package/utils/i18n/helpers/index.js.map +0 -1
- package/utils/i18n/helpers/locale-provider.d.ts +0 -14
- package/utils/i18n/helpers/locale-provider.js +0 -19
- package/utils/i18n/helpers/locale-provider.js.map +0 -1
- package/utils/i18n/helpers/to-smart-sentence-case.d.ts +0 -2
- package/utils/i18n/helpers/to-smart-sentence-case.js.map +0 -1
- package/utils/i18n/helpers/to-smart-title-case.d.ts +0 -2
- package/utils/i18n/helpers/to-smart-title-case.js.map +0 -1
- package/utils/i18n/helpers/use-locale.d.ts +0 -2
- package/utils/i18n/helpers/use-locale.js +0 -14
- package/utils/i18n/helpers/use-locale.js.map +0 -1
- package/utils/i18n/index.d.ts +0 -11
- package/utils/i18n/index.js.map +0 -1
- package/utils/index.d.ts +0 -4
- package/utils/index.js +0 -14
- package/utils/index.js.map +0 -1
- package/utils/make-normalizer/index.d.ts +0 -30
- package/utils/make-normalizer/index.js.map +0 -1
- package/utils/mds-context/index.d.ts +0 -59
- package/utils/mds-context/index.js.map +0 -1
- /package/{components → dist/components}/accordion/index.js +0 -0
- /package/{components → dist/components}/accordion/index.js.map +0 -0
- /package/{components → dist/components}/accordion/item/button.js +0 -0
- /package/{components → dist/components}/accordion/item/button.js.map +0 -0
- /package/{components → dist/components}/accordion/item/index.js +0 -0
- /package/{components → dist/components}/accordion/style.module.scss.js +0 -0
- /package/{components → dist/components}/accordion/style.module.scss.js.map +0 -0
- /package/{components → dist/components}/alert/alert.module.scss.js +0 -0
- /package/{components → dist/components}/alert/alert.module.scss.js.map +0 -0
- /package/{components → dist/components}/alert/icon.js +0 -0
- /package/{components → dist/components}/alert/icon.js.map +0 -0
- /package/{components → dist/components}/alert/index.js +0 -0
- /package/{components → dist/components}/badge/index.js +0 -0
- /package/{components → dist/components}/badge/style.module.scss.js +0 -0
- /package/{components → dist/components}/badge/style.module.scss.js.map +0 -0
- /package/{components → dist/components}/badge-count/index.js +0 -0
- /package/{components → dist/components}/badge-count/style.module.scss.js +0 -0
- /package/{components → dist/components}/badge-count/style.module.scss.js.map +0 -0
- /package/{components → dist/components}/breadcrumbs/index.js +0 -0
- /package/{components → dist/components}/breadcrumbs/item/index.js +0 -0
- /package/{components → dist/components}/breadcrumbs/item/index.js.map +0 -0
- /package/{components → dist/components}/breadcrumbs/style.module.scss.js +0 -0
- /package/{components → dist/components}/breadcrumbs/style.module.scss.js.map +0 -0
- /package/{components → dist/components}/breadcrumbs/truncation-button/index.js +0 -0
- /package/{components → dist/components}/breadcrumbs/truncation-button/index.js.map +0 -0
- /package/{components → dist/components}/button/button-primitive.js +0 -0
- /package/{components → dist/components}/button/index.js +0 -0
- /package/{components → dist/components}/button/index.js.map +0 -0
- /package/{components → dist/components}/button/styles.module.scss.js +0 -0
- /package/{components → dist/components}/button/styles.module.scss.js.map +0 -0
- /package/{components → dist/components}/card/card-thumbnail/card-thumbnail.module.css +0 -0
- /package/{components → dist/components}/card/card-thumbnail/card-thumbnail.module.css.js +0 -0
- /package/{components → dist/components}/card/card-thumbnail/card-thumbnail.module.css.js.map +0 -0
- /package/{components → dist/components}/card/card-thumbnail/index.js +0 -0
- /package/{components → dist/components}/card/card-thumbnail/index.js.map +0 -0
- /package/{components → dist/components}/card/index.js +0 -0
- /package/{components → dist/components}/card/styles.module.css +0 -0
- /package/{components → dist/components}/card/styles.module.css.js +0 -0
- /package/{components → dist/components}/card/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/code-block/code-block.module.scss.js +0 -0
- /package/{components → dist/components}/code-block/code-block.module.scss.js.map +0 -0
- /package/{components → dist/components}/code-block/code-lines/index.js +0 -0
- /package/{components → dist/components}/code-block/code-lines/index.js.map +0 -0
- /package/{components → dist/components}/code-block/code-lines/utils/split-html-into-lines.js +0 -0
- /package/{components → dist/components}/code-block/code-lines/utils/split-html-into-lines.js.map +0 -0
- /package/{components → dist/components}/code-block/code-lines/utils/split-jsx-into-lines.js +0 -0
- /package/{components → dist/components}/code-block/hidden-copy-content/index.js +0 -0
- /package/{components → dist/components}/code-block/index.js +0 -0
- /package/{components → dist/components}/code-block/utils/parse-highlighted-lines.js +0 -0
- /package/{components → dist/components}/code-block/utils/process-snippet.js +0 -0
- /package/{components → dist/components}/code-block/utils/process-snippet.js.map +0 -0
- /package/{components → dist/components}/code-block/utils/shellwords.js +0 -0
- /package/{components → dist/components}/combo-box-primitive/index.js +0 -0
- /package/{components → dist/components}/dialog-primitive/dialog.module.scss +0 -0
- /package/{components → dist/components}/dialog-primitive/dialog.module.scss.js +0 -0
- /package/{components → dist/components}/dialog-primitive/dialog.module.scss.js.map +0 -0
- /package/{components → dist/components}/dialog-primitive/index.js +0 -0
- /package/{components → dist/components}/disclosure-primitive/index.js +0 -0
- /package/{components → dist/components}/disclosure-primitive/styles.module.css +0 -0
- /package/{components → dist/components}/disclosure-primitive/styles.module.css.js +0 -0
- /package/{components → dist/components}/disclosure-primitive/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/disclosure-primitive/use-disclosure-primitive.js +0 -0
- /package/{components → dist/components}/dismiss-button/index.js +0 -0
- /package/{components → dist/components}/dismiss-button/index.js.map +0 -0
- /package/{components → dist/components}/dismiss-button/styles.module.scss.js +0 -0
- /package/{components → dist/components}/dismiss-button/styles.module.scss.js.map +0 -0
- /package/{components → dist/components}/dropdown/index.js +0 -0
- /package/{components → dist/components}/dropdown/list-item/custom.js +0 -0
- /package/{components → dist/components}/dropdown/list-item/custom.js.map +0 -0
- /package/{components → dist/components}/dropdown/list-item/index.js +0 -0
- /package/{components → dist/components}/dropdown/list-item/index.js.map +0 -0
- /package/{components → dist/components}/dropdown/list-item/interactive.js +0 -0
- /package/{components → dist/components}/dropdown/list-item/interactive.js.map +0 -0
- /package/{components → dist/components}/dropdown/list-item/separator.js +0 -0
- /package/{components → dist/components}/dropdown/list-item/separator.js.map +0 -0
- /package/{components → dist/components}/dropdown/list-item/styles.module.css.js +0 -0
- /package/{components → dist/components}/dropdown/list-item/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/dropdown/list-item/title.js +0 -0
- /package/{components → dist/components}/dropdown/styles.module.css +0 -0
- /package/{components → dist/components}/dropdown/styles.module.css.js +0 -0
- /package/{components → dist/components}/dropdown/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/dropdown/toggle-button/index.js +0 -0
- /package/{components → dist/components}/dropdown/toggle-button/styles.module.scss.js +0 -0
- /package/{components → dist/components}/dropdown/toggle-button/styles.module.scss.js.map +0 -0
- /package/{components → dist/components}/flight-icon/flight-icon.module.css +0 -0
- /package/{components → dist/components}/flight-icon/flight-icon.module.css.js +0 -0
- /package/{components → dist/components}/flight-icon/flight-icon.module.css.js.map +0 -0
- /package/{components → dist/components}/flight-icon/index.js +0 -0
- /package/{components → dist/components}/form/checkbox/form-checkbox.module.css.js +0 -0
- /package/{components → dist/components}/form/checkbox/form-checkbox.module.css.js.map +0 -0
- /package/{components → dist/components}/form/checkbox/index.js +0 -0
- /package/{components → dist/components}/form/checkbox/index.js.map +0 -0
- /package/{components → dist/components}/form/error/form-error.module.css +0 -0
- /package/{components → dist/components}/form/error/form-error.module.css.js +0 -0
- /package/{components → dist/components}/form/error/form-error.module.css.js.map +0 -0
- /package/{components → dist/components}/form/error/index.js +0 -0
- /package/{components → dist/components}/form/error/index.js.map +0 -0
- /package/{components → dist/components}/form/field/form-field.module.css +0 -0
- /package/{components → dist/components}/form/field/form-field.module.css.js +0 -0
- /package/{components → dist/components}/form/field/form-field.module.css.js.map +0 -0
- /package/{components → dist/components}/form/field/index.js +0 -0
- /package/{components → dist/components}/form/field/index.js.map +0 -0
- /package/{components → dist/components}/form/fieldset/form-fieldset.module.css +0 -0
- /package/{components → dist/components}/form/fieldset/form-fieldset.module.css.js +0 -0
- /package/{components → dist/components}/form/fieldset/form-fieldset.module.css.js.map +0 -0
- /package/{components → dist/components}/form/fieldset/index.js +0 -0
- /package/{components → dist/components}/form/fieldset/index.js.map +0 -0
- /package/{components → dist/components}/form/file-input/form-file-input.module.scss.js +0 -0
- /package/{components → dist/components}/form/file-input/form-file-input.module.scss.js.map +0 -0
- /package/{components → dist/components}/form/file-input/index.js +0 -0
- /package/{components → dist/components}/form/file-input/index.js.map +0 -0
- /package/{components → dist/components}/form/helper-text/form-helper-text.module.css +0 -0
- /package/{components → dist/components}/form/helper-text/form-helper-text.module.css.js +0 -0
- /package/{components → dist/components}/form/helper-text/form-helper-text.module.css.js.map +0 -0
- /package/{components → dist/components}/form/helper-text/index.js +0 -0
- /package/{components → dist/components}/form/helper-text/index.js.map +0 -0
- /package/{components → dist/components}/form/indicator/form-indicator.module.css +0 -0
- /package/{components → dist/components}/form/indicator/form-indicator.module.css.js +0 -0
- /package/{components → dist/components}/form/indicator/form-indicator.module.css.js.map +0 -0
- /package/{components → dist/components}/form/indicator/index.js +0 -0
- /package/{components → dist/components}/form/indicator/index.js.map +0 -0
- /package/{components → dist/components}/form/label/form-label.module.css +0 -0
- /package/{components → dist/components}/form/label/form-label.module.css.js +0 -0
- /package/{components → dist/components}/form/label/form-label.module.css.js.map +0 -0
- /package/{components → dist/components}/form/label/index.js +0 -0
- /package/{components → dist/components}/form/label/index.js.map +0 -0
- /package/{components → dist/components}/form/legend/form-legend.module.css +0 -0
- /package/{components → dist/components}/form/legend/form-legend.module.css.js +0 -0
- /package/{components → dist/components}/form/legend/form-legend.module.css.js.map +0 -0
- /package/{components → dist/components}/form/legend/index.js +0 -0
- /package/{components → dist/components}/form/legend/index.js.map +0 -0
- /package/{components → dist/components}/form/radio/form-radio.module.scss.js +0 -0
- /package/{components → dist/components}/form/radio/form-radio.module.scss.js.map +0 -0
- /package/{components → dist/components}/form/radio/index.js +0 -0
- /package/{components → dist/components}/form/radio/index.js.map +0 -0
- /package/{components → dist/components}/form/radio-card/RadioCardStory.css +0 -0
- /package/{components → dist/components}/form/radio-card/description.js +0 -0
- /package/{components → dist/components}/form/radio-card/description.js.map +0 -0
- /package/{components → dist/components}/form/radio-card/form-radio-card.module.css.js +0 -0
- /package/{components → dist/components}/form/radio-card/form-radio-card.module.css.js.map +0 -0
- /package/{components → dist/components}/form/radio-card/group.js +0 -0
- /package/{components → dist/components}/form/radio-card/group.js.map +0 -0
- /package/{components → dist/components}/form/radio-card/index.js +0 -0
- /package/{components → dist/components}/form/radio-card/label.js +0 -0
- /package/{components → dist/components}/form/radio-card/label.js.map +0 -0
- /package/{components → dist/components}/form/select/form-select.module.css.js +0 -0
- /package/{components → dist/components}/form/select/form-select.module.css.js.map +0 -0
- /package/{components → dist/components}/form/select/index.js +0 -0
- /package/{components → dist/components}/form/super-select/form-super-select.module.css.js +0 -0
- /package/{components → dist/components}/form/super-select/form-super-select.module.css.js.map +0 -0
- /package/{components → dist/components}/form/super-select/index.js +0 -0
- /package/{components → dist/components}/form/text-input/index.js +0 -0
- /package/{components → dist/components}/form/text-input/styles.module.css.js +0 -0
- /package/{components → dist/components}/form/text-input/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/form/textarea/form-textarea.module.css.js +0 -0
- /package/{components → dist/components}/form/textarea/form-textarea.module.css.js.map +0 -0
- /package/{components → dist/components}/form/textarea/index.js +0 -0
- /package/{components → dist/components}/form/toggle/form-toggle.module.scss.js +0 -0
- /package/{components → dist/components}/form/toggle/form-toggle.module.scss.js.map +0 -0
- /package/{components → dist/components}/form/toggle/index.js +0 -0
- /package/{components → dist/components}/form/toggle/index.js.map +0 -0
- /package/{components → dist/components}/hds/wrappers/tooltip.js +0 -0
- /package/{components → dist/components}/hds/wrappers/tooltip.js.map +0 -0
- /package/{components → dist/components}/icon-tile/index.js +0 -0
- /package/{components → dist/components}/icon-tile/style.module.scss.js +0 -0
- /package/{components → dist/components}/icon-tile/style.module.scss.js.map +0 -0
- /package/{components → dist/components}/inline-link/index.js +0 -0
- /package/{components → dist/components}/inline-link/index.js.map +0 -0
- /package/{components → dist/components}/inline-link/inline-link.module.css +0 -0
- /package/{components → dist/components}/inline-link/inline-link.module.css.js +0 -0
- /package/{components → dist/components}/inline-link/inline-link.module.css.js.map +0 -0
- /package/{components → dist/components}/interactive/index.js +0 -0
- /package/{components → dist/components}/legacy-button/index.js +0 -0
- /package/{components → dist/components}/legacy-button/utils.js +0 -0
- /package/{components → dist/components}/menu-primitive/index.js +0 -0
- /package/{components → dist/components}/menu-primitive/styles.module.css +0 -0
- /package/{components → dist/components}/menu-primitive/styles.module.css.js +0 -0
- /package/{components → dist/components}/menu-primitive/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/menu-primitive/use-menu-primitive.js +0 -0
- /package/{components → dist/components}/modal/index.js +0 -0
- /package/{components → dist/components}/modal/modal.module.css +0 -0
- /package/{components → dist/components}/modal/modal.module.css.js +0 -0
- /package/{components → dist/components}/modal/modal.module.css.js.map +0 -0
- /package/{components → dist/components}/modal/use-modal.js +0 -0
- /package/{components → dist/components}/separator/index.js +0 -0
- /package/{components → dist/components}/separator/index.js.map +0 -0
- /package/{components → dist/components}/separator/separator.module.css +0 -0
- /package/{components → dist/components}/separator/separator.module.css.js +0 -0
- /package/{components → dist/components}/separator/separator.module.css.js.map +0 -0
- /package/{components → dist/components}/standalone-link/index.js +0 -0
- /package/{components → dist/components}/standalone-link/styles.module.scss.js +0 -0
- /package/{components → dist/components}/standalone-link/styles.module.scss.js.map +0 -0
- /package/{components → dist/components}/table/index.js +0 -0
- /package/{components → dist/components}/table/table.module.scss +0 -0
- /package/{components → dist/components}/table/table.module.scss.js +0 -0
- /package/{components → dist/components}/table/table.module.scss.js.map +0 -0
- /package/{components → dist/components}/table/td.js +0 -0
- /package/{components → dist/components}/table/th-button-tooltip.js +0 -0
- /package/{components → dist/components}/table/th-button-tooltip.js.map +0 -0
- /package/{components → dist/components}/table/th.js +0 -0
- /package/{components → dist/components}/table/tr.js +0 -0
- /package/{components → dist/components}/table/tr.js.map +0 -0
- /package/{components → dist/components}/table/utils.js +0 -0
- /package/{components → dist/components}/tabs/index.js +0 -0
- /package/{components → dist/components}/tabs/tab-panel.js +0 -0
- /package/{components → dist/components}/tabs/tab.js +0 -0
- /package/{components → dist/components}/tabs/tabs.module.scss.js +0 -0
- /package/{components → dist/components}/tabs/tabs.module.scss.js.map +0 -0
- /package/{components → dist/components}/tabs/use-tabs-context.js +0 -0
- /package/{components → dist/components}/text/index.js +0 -0
- /package/{components → dist/components}/text/style.module.scss +0 -0
- /package/{components → dist/components}/text/style.module.scss.js +0 -0
- /package/{components → dist/components}/text/style.module.scss.js.map +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css.js +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css.js.map +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/legend/index.js +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/legend/index.js.map +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/legend/style.module.css +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/legend/style.module.css.js +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/legend/style.module.css.js.map +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/style.module.css.js +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/horizontal-chart/style.module.css.js.map +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/index.js +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/index.js.map +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/style.module.css.js +0 -0
- /package/{components → dist/components}/visualizations/bar-chart/style.module.css.js.map +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/arc-tooltip/index.js +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/arc-tooltip/index.js.map +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/arc-tooltip/styles.module.css +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/arc-tooltip/styles.module.css.js +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/arc-tooltip/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/external-arc-label/index.js +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/external-arc-label/index.js.map +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/external-arc-label/styles.module.css +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/external-arc-label/styles.module.css.js +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/external-arc-label/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/internal-arc-label/index.js +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/internal-arc-label/index.js.map +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/internal-arc-label/styles.module.css +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/internal-arc-label/styles.module.css.js +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/components/internal-arc-label/styles.module.css.js.map +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/styles.module.css.js +0 -0
- /package/{components → dist/components}/visualizations/donut-chart/styles.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/card/newsroom-card/index.js +0 -0
- /package/{patterns → dist/patterns}/card/newsroom-card/index.js.map +0 -0
- /package/{patterns → dist/patterns}/card/newsroom-card/style.module.css +0 -0
- /package/{patterns → dist/patterns}/card/newsroom-card/style.module.css.js +0 -0
- /package/{patterns → dist/patterns}/card/newsroom-card/style.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/card/partner-card/index.js +0 -0
- /package/{patterns → dist/patterns}/card/partner-card/index.js.map +0 -0
- /package/{patterns → dist/patterns}/card/partner-card/style.module.css +0 -0
- /package/{patterns → dist/patterns}/card/partner-card/style.module.css.js +0 -0
- /package/{patterns → dist/patterns}/card/partner-card/style.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/card/person-card/index.js +0 -0
- /package/{patterns → dist/patterns}/card/person-card/index.js.map +0 -0
- /package/{patterns → dist/patterns}/card/person-card/style.module.css +0 -0
- /package/{patterns → dist/patterns}/card/person-card/style.module.css.js +0 -0
- /package/{patterns → dist/patterns}/card/person-card/style.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/card/primitives.js +0 -0
- /package/{patterns → dist/patterns}/card/primitives.js.map +0 -0
- /package/{patterns → dist/patterns}/card/promo-card/index.js +0 -0
- /package/{patterns → dist/patterns}/card/promo-card/index.js.map +0 -0
- /package/{patterns → dist/patterns}/card/resource-card/index.js +0 -0
- /package/{patterns → dist/patterns}/card/resource-card/index.js.map +0 -0
- /package/{patterns → dist/patterns}/card/style.module.css.js +0 -0
- /package/{patterns → dist/patterns}/card/style.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/card/thumbnails/index.js +0 -0
- /package/{patterns → dist/patterns}/card/thumbnails/index.js.map +0 -0
- /package/{patterns → dist/patterns}/card/unified-card/index.js +0 -0
- /package/{patterns → dist/patterns}/copy-button/style.module.css +0 -0
- /package/{patterns → dist/patterns}/copy-button/style.module.css.js +0 -0
- /package/{patterns → dist/patterns}/copy-button/style.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/index.js +0 -0
- /package/{patterns → dist/patterns}/index.js.map +0 -0
- /package/{patterns → dist/patterns}/layout/index.js +0 -0
- /package/{patterns → dist/patterns}/layout/index.js.map +0 -0
- /package/{patterns → dist/patterns}/layout/layout.module.css.js +0 -0
- /package/{patterns → dist/patterns}/layout/layout.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/product-badge/index.js +0 -0
- /package/{patterns → dist/patterns}/product-badge/index.js.map +0 -0
- /package/{patterns → dist/patterns}/product-badge/style.module.css.js +0 -0
- /package/{patterns → dist/patterns}/product-badge/style.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/product-logo/index.js +0 -0
- /package/{patterns → dist/patterns}/product-logo/index.js.map +0 -0
- /package/{patterns → dist/patterns}/product-logo/product-logo.module.css +0 -0
- /package/{patterns → dist/patterns}/product-logo/product-logo.module.css.js +0 -0
- /package/{patterns → dist/patterns}/product-logo/product-logo.module.css.js.map +0 -0
- /package/{patterns → dist/patterns}/related-content/index.js +0 -0
- /package/{patterns → dist/patterns}/related-content/index.js.map +0 -0
- /package/{patterns → dist/patterns}/related-content/style.module.css.js +0 -0
- /package/{patterns → dist/patterns}/related-content/style.module.css.js.map +0 -0
- /package/{utils → dist/utils}/get-contrast-yiq.js +0 -0
- /package/{utils → dist/utils}/i18n/constants/index.js +0 -0
- /package/{utils → dist/utils}/i18n/helpers/to-smart-sentence-case.js +0 -0
- /package/{utils → dist/utils}/i18n/helpers/to-smart-title-case.js +0 -0
- /package/{utils → dist/utils}/i18n/index.js +0 -0
- /package/{utils → dist/utils}/make-normalizer/index.js +0 -0
- /package/{utils → dist/utils}/mds-context/index.js +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
const a = (e) => {
|
|
2
|
+
let o;
|
|
3
|
+
if (e)
|
|
4
|
+
if (typeof e == "string")
|
|
5
|
+
o = e;
|
|
6
|
+
else if (
|
|
7
|
+
// context: https://github.com/hashicorp/design-system/pull/1564
|
|
8
|
+
typeof e == "number" || typeof e == "bigint"
|
|
9
|
+
)
|
|
10
|
+
o = e.toString();
|
|
11
|
+
else
|
|
12
|
+
throw new Error(
|
|
13
|
+
`\`hds-clipboard\` modifier - \`text\` argument must be a string - provided: ${typeof e}`
|
|
14
|
+
);
|
|
15
|
+
return o;
|
|
16
|
+
}, d = (e) => {
|
|
17
|
+
let o;
|
|
18
|
+
if (typeof e == "string") {
|
|
19
|
+
if (o = document.querySelector(e), !o) {
|
|
20
|
+
console.error(
|
|
21
|
+
"`hds-clipboard` modifier - `target` selector provided does not point to an existing DOM node, check your selector string",
|
|
22
|
+
o
|
|
23
|
+
);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
} else if (e instanceof Node && e.nodeType === Node.ELEMENT_NODE)
|
|
27
|
+
o = e;
|
|
28
|
+
else
|
|
29
|
+
throw e instanceof NodeList ? new Error(
|
|
30
|
+
"`hds-clipboard` modifier - `target` argument must be a string or a DOM node - provided: a list of DOM nodes"
|
|
31
|
+
) : new Error(
|
|
32
|
+
`\`hds-clipboard\` modifier - \`target\` argument must be a string or a DOM node - provided: ${typeof e}`
|
|
33
|
+
);
|
|
34
|
+
return o;
|
|
35
|
+
}, l = (e) => {
|
|
36
|
+
let o;
|
|
37
|
+
return e instanceof Node && e.nodeType === Node.ELEMENT_NODE && (e instanceof HTMLInputElement || // targetElement.nodeName === 'INPUT' ||
|
|
38
|
+
e instanceof HTMLTextAreaElement || // targetElement.nodeName === 'TEXTAREA' ||
|
|
39
|
+
e instanceof HTMLSelectElement ? o = e.value : o = e.innerText), o;
|
|
40
|
+
}, f = async (e) => {
|
|
41
|
+
if (e)
|
|
42
|
+
try {
|
|
43
|
+
return await navigator.clipboard.writeText(e), !0;
|
|
44
|
+
} catch {
|
|
45
|
+
return console.warn(
|
|
46
|
+
"copy action failed, please check your browser‘s permissions",
|
|
47
|
+
{
|
|
48
|
+
id: "hds-clipboard.write-text-to-clipboard.catch-error"
|
|
49
|
+
}
|
|
50
|
+
), !1;
|
|
51
|
+
}
|
|
52
|
+
else
|
|
53
|
+
return !1;
|
|
54
|
+
}, p = async (e, o, r) => {
|
|
55
|
+
let t;
|
|
56
|
+
if (r)
|
|
57
|
+
t = r();
|
|
58
|
+
else if (e)
|
|
59
|
+
t = a(e);
|
|
60
|
+
else if (o) {
|
|
61
|
+
const n = d(o);
|
|
62
|
+
t = l(n);
|
|
63
|
+
} else
|
|
64
|
+
throw new Error(
|
|
65
|
+
"`hds-clipboard` modifier - either a `getTextFn`, `text`, or a `target` argument is required"
|
|
66
|
+
);
|
|
67
|
+
return await f(t);
|
|
68
|
+
}, T = (e) => {
|
|
69
|
+
const { text: o, target: r, getTextFn: t, onSuccess: i, onError: n } = e;
|
|
70
|
+
return { onClick: async (c) => {
|
|
71
|
+
const s = c.currentTarget;
|
|
72
|
+
await p(o, r, t) ? typeof i == "function" && i({ trigger: s, text: o, target: r }) : typeof n == "function" && n({ trigger: s, text: o, target: r });
|
|
73
|
+
} };
|
|
74
|
+
};
|
|
75
|
+
export {
|
|
76
|
+
T as onClipboardClickHandler
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.js","sources":["../../src/utils/clipboard.ts"],"sourcesContent":["import type { MouseEvent } from 'react'\n\nconst getTextToCopy = (text: string | number | bigint) => {\n\tlet textToCopy: string\n\n\tif (text) {\n\t\tif (typeof text === 'string') {\n\t\t\ttextToCopy = text\n\t\t} else if (\n\t\t\t// context: https://github.com/hashicorp/design-system/pull/1564\n\t\t\ttypeof text === 'number' ||\n\t\t\ttypeof text === 'bigint'\n\t\t) {\n\t\t\ttextToCopy = text.toString()\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`\\`hds-clipboard\\` modifier - \\`text\\` argument must be a string - provided: ${typeof text}`,\n\t\t\t)\n\t\t}\n\t}\n\treturn textToCopy!\n}\n\nconst getTargetElement = (target: string | Element) => {\n\tlet targetElement: Element | null\n\tif (typeof target === 'string') {\n\t\ttargetElement = document.querySelector(target)\n\n\t\tif (!targetElement) {\n\t\t\tconsole.error(\n\t\t\t\t'`hds-clipboard` modifier - `target` selector provided does not point to an existing DOM node, check your selector string',\n\t\t\t\ttargetElement,\n\t\t\t)\n\t\t\treturn\n\t\t}\n\t} else if (target instanceof Node && target.nodeType === Node.ELEMENT_NODE) {\n\t\ttargetElement = target\n\t} else {\n\t\tif (target instanceof NodeList) {\n\t\t\tthrow new Error(\n\t\t\t\t'`hds-clipboard` modifier - `target` argument must be a string or a DOM node - provided: a list of DOM nodes',\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`\\`hds-clipboard\\` modifier - \\`target\\` argument must be a string or a DOM node - provided: ${typeof target}`,\n\t\t\t)\n\t\t}\n\t}\n\treturn targetElement\n}\n\nconst getTextToCopyFromTargetElement = (targetElement: Element | undefined) => {\n\tlet textToCopy: string | undefined\n\tif (\n\t\ttargetElement instanceof Node &&\n\t\ttargetElement.nodeType === Node.ELEMENT_NODE\n\t) {\n\t\tif (\n\t\t\ttargetElement instanceof HTMLInputElement || // targetElement.nodeName === 'INPUT' ||\n\t\t\ttargetElement instanceof HTMLTextAreaElement || // targetElement.nodeName === 'TEXTAREA' ||\n\t\t\ttargetElement instanceof HTMLSelectElement // targetElement.nodeName === 'SELECT'\n\t\t) {\n\t\t\ttextToCopy = targetElement.value\n\t\t} else {\n\t\t\t// simplest approach\n\t\t\ttextToCopy = (targetElement as HTMLElement).innerText\n\n\t\t\t// approach based on text selection (left for backup just in case)\n\t\t\t// var selection = window.getSelection();\n\t\t\t// var range = document.createRange();\n\t\t\t// selection.removeAllRanges();\n\t\t\t// range.selectNodeContents(targetElement);\n\t\t\t// selection.addRange(range);\n\t\t\t// textToCopy = selection.toString();\n\t\t\t// selection.removeAllRanges();\n\t\t}\n\t}\n\treturn textToCopy\n}\n\nconst writeTextToClipboard = async (textToCopy: string | undefined) => {\n\t// finally copy the text to the clipboard using the Clipboard API\n\t// https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API\n\tif (textToCopy) {\n\t\ttry {\n\t\t\t// notice: the \"clipboard-write\" permission is granted automatically to pages when they are in the active tab\n\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write\n\t\t\tawait navigator.clipboard.writeText(textToCopy)\n\t\t\t// DEBUG uncomment this for easy debugging\n\t\t\t// console.log('success', textToCopy);\n\t\t\treturn true\n\t\t} catch (error) {\n\t\t\t// clipboard write failed\n\t\t\t// this probably never happens (see comment above) or happens only for very old browsers that don't for which `navigator.clipboard` is undefined\n\t\t\tconsole.warn(\n\t\t\t\t'copy action failed, please check your browser‘s permissions',\n\t\t\t\t{\n\t\t\t\t\tid: 'hds-clipboard.write-text-to-clipboard.catch-error',\n\t\t\t\t},\n\t\t\t)\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\treturn false\n\t}\n}\n\nconst copyToClipboard = async (\n\ttext: string | number | bigint | undefined,\n\ttarget: string | Element | undefined,\n\tgetTextFn: (() => string) | undefined,\n) => {\n\tlet textToCopy: string | undefined\n\n\tif (getTextFn) {\n\t\ttextToCopy = getTextFn()\n\t} else if (text) {\n\t\ttextToCopy = getTextToCopy(text)\n\t} else if (target) {\n\t\tconst targetElement = getTargetElement(target)\n\t\ttextToCopy = getTextToCopyFromTargetElement(targetElement)\n\t} else {\n\t\tthrow new Error(\n\t\t\t'`hds-clipboard` modifier - either a `getTextFn`, `text`, or a `target` argument is required',\n\t\t)\n\t}\n\tconst success = await writeTextToClipboard(textToCopy)\n\treturn success\n}\n\ntype ClipboardHandlerArgs = {\n\ttrigger: Element\n\ttext: string | number | bigint | undefined\n\ttarget: string | Element | undefined\n}\n\nconst onClipboardClickHandler = (named: {\n\ttext: string | number | bigint | undefined\n\ttarget: string | Element | undefined\n\tgetTextFn: (() => string) | undefined\n\tonSuccess: (args: ClipboardHandlerArgs) => void\n\tonError: (args: ClipboardHandlerArgs) => void\n}) => {\n\tconst { text, target, getTextFn, onSuccess, onError } = named\n\n\tconst onClick = async (event: MouseEvent<HTMLButtonElement>) => {\n\t\tconst trigger = event.currentTarget\n\t\tconst success = await copyToClipboard(text, target, getTextFn)\n\n\t\t// fire the `onSuccess/onError` callbacks (if provided)\n\t\tif (success) {\n\t\t\tif (typeof onSuccess === 'function') {\n\t\t\t\tonSuccess({ trigger, text, target })\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof onError === 'function') {\n\t\t\t\tonError({ trigger, text, target })\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { onClick }\n}\n\nexport { onClipboardClickHandler, type ClipboardHandlerArgs }\n"],"names":["getTextToCopy","text","textToCopy","getTargetElement","target","targetElement","getTextToCopyFromTargetElement","writeTextToClipboard","copyToClipboard","getTextFn","onClipboardClickHandler","named","onSuccess","onError","event","trigger"],"mappings":"AAEA,MAAMA,IAAgB,CAACC,MAAmC;AACzD,MAAIC;AAEJ,MAAID;AACH,QAAI,OAAOA,KAAS;AACnB,MAAAC,IAAaD;AAAA;AAAA;AAAA,MAGb,OAAOA,KAAS,YAChB,OAAOA,KAAS;AAAA;AAEhB,MAAAC,IAAaD,EAAK,SAAA;AAAA;AAElB,YAAM,IAAI;AAAA,QACT,+EAA+E,OAAOA,CAAI;AAAA,MAAA;AAI7F,SAAOC;AACR,GAEMC,IAAmB,CAACC,MAA6B;AACtD,MAAIC;AACJ,MAAI,OAAOD,KAAW;AAGrB,QAFAC,IAAgB,SAAS,cAAcD,CAAM,GAEzC,CAACC,GAAe;AACnB,cAAQ;AAAA,QACP;AAAA,QACAA;AAAA,MAAA;AAED;AAAA,IACD;AAAA,aACUD,aAAkB,QAAQA,EAAO,aAAa,KAAK;AAC7D,IAAAC,IAAgBD;AAAA;AAEhB,UAAIA,aAAkB,WACf,IAAI;AAAA,MACT;AAAA,IAAA,IAGK,IAAI;AAAA,MACT,+FAA+F,OAAOA,CAAM;AAAA,IAAA;AAI/G,SAAOC;AACR,GAEMC,IAAiC,CAACD,MAAuC;AAC9E,MAAIH;AACJ,SACCG,aAAyB,QACzBA,EAAc,aAAa,KAAK,iBAG/BA,aAAyB;AAAA,EACzBA,aAAyB;AAAA,EACzBA,aAAyB,oBAEzBH,IAAaG,EAAc,QAG3BH,IAAcG,EAA8B,YAYvCH;AACR,GAEMK,IAAuB,OAAOL,MAAmC;AAGtE,MAAIA;AACH,QAAI;AAGH,mBAAM,UAAU,UAAU,UAAUA,CAAU,GAGvC;AAAA,IACR,QAAgB;AAGf,qBAAQ;AAAA,QACP;AAAA,QACA;AAAA,UACC,IAAI;AAAA,QAAA;AAAA,MACL,GAEM;AAAA,IACR;AAAA;AAEA,WAAO;AAET,GAEMM,IAAkB,OACvBP,GACAG,GACAK,MACI;AACJ,MAAIP;AAEJ,MAAIO;AACH,IAAAP,IAAaO,EAAA;AAAA,WACHR;AACV,IAAAC,IAAaF,EAAcC,CAAI;AAAA,WACrBG,GAAQ;AAClB,UAAMC,IAAgBF,EAAiBC,CAAM;AAC7C,IAAAF,IAAaI,EAA+BD,CAAa;AAAA,EAC1D;AACC,UAAM,IAAI;AAAA,MACT;AAAA,IAAA;AAIF,SADgB,MAAME,EAAqBL,CAAU;AAEtD,GAQMQ,IAA0B,CAACC,MAM3B;AACL,QAAM,EAAE,MAAAV,GAAM,QAAAG,GAAQ,WAAAK,GAAW,WAAAG,GAAW,SAAAC,MAAYF;AAkBxD,SAAO,EAAE,SAhBO,OAAOG,MAAyC;AAC/D,UAAMC,IAAUD,EAAM;AAItB,IAHgB,MAAMN,EAAgBP,GAAMG,GAAQK,CAAS,IAIxD,OAAOG,KAAc,cACxBA,EAAU,EAAE,SAAAG,GAAS,MAAAd,GAAM,QAAAG,EAAA,CAAQ,IAGhC,OAAOS,KAAY,cACtBA,EAAQ,EAAE,SAAAE,GAAS,MAAAd,GAAM,QAAAG,EAAA,CAAQ;AAAA,EAGpC,EAES;AACV;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates the contrast of an RGB color and determines whether to use dark or light text.
|
|
3
|
+
* @param rgb - An object containing the red (r), green (g), and blue (b) components of the color.
|
|
4
|
+
* @returns A string indicating whether to use 'dark' or 'light'.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getContrastYIQ: (rgb: {
|
|
7
|
+
r: number;
|
|
8
|
+
g: number;
|
|
9
|
+
b: number;
|
|
10
|
+
}) => string;
|
|
11
|
+
/**
|
|
12
|
+
* Converts a HEX color string to an RGB object.
|
|
13
|
+
* @param hex - The HEX color string (e.g., "#ffffff").
|
|
14
|
+
* @returns An object containing the red (r), green (g), and blue (b) components, and black if the HEX string is invalid.
|
|
15
|
+
*/
|
|
16
|
+
export declare const hexToRgb: (hex: string) => {
|
|
17
|
+
r: number;
|
|
18
|
+
g: number;
|
|
19
|
+
b: number;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=get-contrast-yiq.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-contrast-yiq.d.ts","sourceRoot":"","sources":["../../src/utils/get-contrast-yiq.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACT,KAAG,MAKH,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAWvE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-contrast-yiq.js","sources":["../../src/utils/get-contrast-yiq.ts"],"sourcesContent":["/**\n * Calculates the contrast of an RGB color and determines whether to use dark or light text.\n * @param rgb - An object containing the red (r), green (g), and blue (b) components of the color.\n * @returns A string indicating whether to use 'dark' or 'light'.\n */\nexport const getContrastYIQ = (rgb: {\n\tr: number\n\tg: number\n\tb: number\n}): string => {\n\t// Calculate the YIQ value using the RGB components\n\tconst yiq = (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000\n\t// If YIQ is greater than or equal to 192, use 'dark', otherwise use 'light'\n\treturn yiq >= 192 ? 'dark' : 'light'\n}\n\n/**\n * Converts a HEX color string to an RGB object.\n * @param hex - The HEX color string (e.g., \"#ffffff\").\n * @returns An object containing the red (r), green (g), and blue (b) components, and black if the HEX string is invalid.\n */\nexport const hexToRgb = (hex: string): { r: number; g: number; b: number } => {\n\t// Extract the RGB components from the HEX string using a regular expression\n\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\t// If the HEX string is valid, parse the components and return the RGB object\n\treturn result\n\t\t? {\n\t\t\t\tr: parseInt(result[1], 16),\n\t\t\t\tg: parseInt(result[2], 16),\n\t\t\t\tb: parseInt(result[3], 16),\n\t\t\t}\n\t\t: { r: 0, g: 0, b: 0 } // Return black if the HEX string is invalid\n}\n"],"names":["getContrastYIQ","rgb","hexToRgb","hex","result"],"mappings":"AAKO,MAAMA,IAAiB,CAACC,OAMjBA,EAAI,IAAI,MAAMA,EAAI,IAAI,MAAMA,EAAI,IAAI,OAAO,OAE1C,MAAM,SAAS,SAQjBC,IAAW,CAACC,MAAqD;AAE7E,QAAMC,IAAS,4CAA4C,KAAKD,CAAG;AAEnE,SAAOC,IACJ;AAAA,IACA,GAAG,SAASA,EAAO,CAAC,GAAG,EAAE;AAAA,IACzB,GAAG,SAASA,EAAO,CAAC,GAAG,EAAE;AAAA,IACzB,GAAG,SAASA,EAAO,CAAC,GAAG,EAAE;AAAA,EAAA,IAEzB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAA;AACrB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/use-media-query/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,YAkB1C,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useState as r, useEffect as i } from "react";
|
|
2
|
+
const o = (s) => {
|
|
3
|
+
const [t, a] = r(!1);
|
|
4
|
+
return i(() => {
|
|
5
|
+
const e = window.matchMedia(s);
|
|
6
|
+
e.matches !== t && a(e.matches);
|
|
7
|
+
const n = (c) => {
|
|
8
|
+
a(c.matches);
|
|
9
|
+
};
|
|
10
|
+
return e.addEventListener("change", n), () => e.removeEventListener("change", n);
|
|
11
|
+
}, [t, s]), t;
|
|
12
|
+
};
|
|
13
|
+
export {
|
|
14
|
+
o as useMediaQuery
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/utils/hooks/use-media-query/index.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nexport const useMediaQuery = (query: string) => {\n\tconst [matches, setMatches] = useState(false)\n\n\tuseEffect(() => {\n\t\tconst media = window.matchMedia(query)\n\t\tif (media.matches !== matches) {\n\t\t\tsetMatches(media.matches)\n\t\t}\n\n\t\tconst listener = (event: MediaQueryListEvent) => {\n\t\t\tsetMatches(event.matches)\n\t\t}\n\n\t\tmedia.addEventListener('change', listener)\n\t\treturn () => media.removeEventListener('change', listener)\n\t}, [matches, query])\n\n\treturn matches\n}\n"],"names":["useMediaQuery","query","matches","setMatches","useState","useEffect","media","listener","event"],"mappings":";AAEO,MAAMA,IAAgB,CAACC,MAAkB;AAC/C,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK;AAE5C,SAAAC,EAAU,MAAM;AACf,UAAMC,IAAQ,OAAO,WAAWL,CAAK;AACrC,IAAIK,EAAM,YAAYJ,KACrBC,EAAWG,EAAM,OAAO;AAGzB,UAAMC,IAAW,CAACC,MAA+B;AAChD,MAAAL,EAAWK,EAAM,OAAO;AAAA,IACzB;AAEA,WAAAF,EAAM,iBAAiB,UAAUC,CAAQ,GAClC,MAAMD,EAAM,oBAAoB,UAAUC,CAAQ;AAAA,EAC1D,GAAG,CAACL,GAASD,CAAK,CAAC,GAEZC;AACR;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/use-screen-size/index.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,QAAQ,eAA4C,CAAA;AAC1D,QAAA,MAAM,SAAS,eAC6C,CAAA;AAC5D,QAAA,MAAM,WAAW,eAA4C,CAAA;AAC7D,QAAA,MAAM,QAAQ,eAA6C,CAAA;AAE3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMediaQuery as e } from "../use-media-query/index.js";
|
|
3
|
+
const t = () => e("(max-width: 768px)"), m = () => e("(min-width: 768px) and (max-width: 1119px)"), s = () => e("(min-width: 768px)"), d = () => e("(min-width: 1120px)");
|
|
4
|
+
export {
|
|
5
|
+
d as useLarge,
|
|
6
|
+
m as useMedium,
|
|
7
|
+
s as useMediumUp,
|
|
8
|
+
t as useSmall
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/utils/hooks/use-screen-size/index.ts"],"sourcesContent":["'use client'\n\nimport { useMediaQuery } from '../use-media-query'\n\n// ref: https://github.com/hashicorp/web/blob/main/packages/mds-tokens/src/custom-media.css\nconst useSmall = () => useMediaQuery('(max-width: 768px)')\nconst useMedium = () =>\n\tuseMediaQuery('(min-width: 768px) and (max-width: 1119px)')\nconst useMediumUp = () => useMediaQuery('(min-width: 768px)')\nconst useLarge = () => useMediaQuery('(min-width: 1120px)')\n\nexport { useSmall, useMedium, useMediumUp, useLarge }\n"],"names":["useSmall","useMediaQuery","useMedium","useMediumUp"],"mappings":";;AAMA,MAAMA,IAAA,MAAYC,EACjB,oBAAc,GACTC,IAAA,MAAcD,EAAM,4CAAkC,GACtDE,IAAW,MAAMF,EAAc,oBAAqB;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SupportedLocale } from '../types';
|
|
2
|
+
export declare const DEFAULT_LOCALE = "en";
|
|
3
|
+
export declare const LOCALE_LANGUAGE_MAP: {
|
|
4
|
+
en: string;
|
|
5
|
+
fr: string;
|
|
6
|
+
de: string;
|
|
7
|
+
ja: string;
|
|
8
|
+
ko: string;
|
|
9
|
+
pt: string;
|
|
10
|
+
es: string;
|
|
11
|
+
id: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const SUPPORTED_LOCALES: SupportedLocale[];
|
|
14
|
+
export declare const smallWordsByLocale: Record<SupportedLocale, Set<string>>;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/i18n/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,eAAO,MAAM,cAAc,OAAO,CAAA;AAElC,eAAO,MAAM,mBAAmB;;;;;;;;;CAS/B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAEzB,eAAe,EAAE,CAAA;AAEtB,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAwFnE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/utils/i18n/constants/index.ts"],"sourcesContent":["import type { SupportedLocale } from '../types'\n\nexport const DEFAULT_LOCALE = 'en'\n\nexport const LOCALE_LANGUAGE_MAP = {\n\ten: 'English',\n\tfr: 'Français',\n\tde: 'Deutsch',\n\tja: '日本語',\n\tko: '한국어',\n\tpt: 'Português',\n\tes: 'Español',\n\tid: 'Bahasa Indonesia',\n}\n\nexport const SUPPORTED_LOCALES = Object.keys(\n\tLOCALE_LANGUAGE_MAP,\n) as SupportedLocale[]\n\nexport const smallWordsByLocale: Record<SupportedLocale, Set<string>> = {\n\ten: new Set([\n\t\t'a',\n\t\t'an',\n\t\t'and',\n\t\t'as',\n\t\t'at',\n\t\t'but',\n\t\t'by',\n\t\t'for',\n\t\t'in',\n\t\t'nor',\n\t\t'of',\n\t\t'on',\n\t\t'or',\n\t\t'so',\n\t\t'the',\n\t\t'to',\n\t\t'up',\n\t\t'yet',\n\t]),\n\tde: new Set(), // Capitalization rules in German don't suppress small words.\n\tes: new Set([\n\t\t'el',\n\t\t'la',\n\t\t'los',\n\t\t'las',\n\t\t'un',\n\t\t'una',\n\t\t'unos',\n\t\t'unas',\n\t\t'y',\n\t\t'o',\n\t\t'pero',\n\t\t'de',\n\t\t'del',\n\t\t'al',\n\t\t'en',\n\t\t'por',\n\t\t'para',\n\t\t'con',\n\t]),\n\tfr: new Set([\n\t\t'le',\n\t\t'la',\n\t\t'les',\n\t\t'un',\n\t\t'une',\n\t\t'et',\n\t\t'de',\n\t\t'du',\n\t\t'des',\n\t\t'en',\n\t\t'à',\n\t\t'au',\n\t\t'aux',\n\t\t'pour',\n\t\t'avec',\n\t]),\n\tja: new Set(), // Japanese doesn't use title casing; characters are not case-sensitive\n\tko: new Set(), // Korean doesn't use casing\n\tpt: new Set([\n\t\t'o',\n\t\t'a',\n\t\t'os',\n\t\t'as',\n\t\t'um',\n\t\t'uma',\n\t\t'uns',\n\t\t'umas',\n\t\t'e',\n\t\t'ou',\n\t\t'mas',\n\t\t'de',\n\t\t'do',\n\t\t'da',\n\t\t'dos',\n\t\t'das',\n\t\t'em',\n\t\t'no',\n\t\t'na',\n\t\t'nos',\n\t\t'nas',\n\t\t'por',\n\t\t'para',\n\t\t'com',\n\t]),\n\tid: new Set(), // ! TODO Determine Indonesian's small word rules, and apply them here\n}\n"],"names":["DEFAULT_LOCALE","LOCALE_LANGUAGE_MAP","SUPPORTED_LOCALES","smallWordsByLocale"],"mappings":"AAEO,MAAMA,IAAiB,MAEjBC,IAAsB;AAAA,EAClC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACL,GAEaC,IAAoB,OAAO;AAAA,EACvCD;AACD,GAEaE,IAA2D;AAAA,EACvE,wBAAQ,IAAI;AAAA,IACX;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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACA;AAAA,EACD,wBAAQ,IAAA;AAAA;AAAA,EACR,wBAAQ,IAAI;AAAA,IACX;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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACA;AAAA,EACD,wBAAQ,IAAI;AAAA,IACX;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,IACA;AAAA,EAAA,CACA;AAAA,EACD,wBAAQ,IAAA;AAAA;AAAA,EACR,wBAAQ,IAAA;AAAA;AAAA,EACR,wBAAQ,IAAI;AAAA,IACX;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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACA;AAAA,EACD,wBAAQ,IAAA;AAAA;AACT;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { LocaleProvider } from './locale-provider';
|
|
2
|
+
export { toSmartSentenceCase } from './to-smart-sentence-case';
|
|
3
|
+
export { toSmartTitleCase } from './to-smart-title-case';
|
|
4
|
+
export { useLocale } from './use-locale';
|
|
5
|
+
export { isSupportedLocale } from './is-supported-local';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/i18n/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-supported-local.d.ts","sourceRoot":"","sources":["../../../../src/utils/i18n/helpers/is-supported-local.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,eAAe,CAE3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-supported-local.js","sources":["../../../../src/utils/i18n/helpers/is-supported-local.ts"],"sourcesContent":["import { SUPPORTED_LOCALES } from '../constants'\nimport type { SupportedLocale } from '../types'\n\nexport function isSupportedLocale(locale: string): locale is SupportedLocale {\n\treturn SUPPORTED_LOCALES.includes(locale as SupportedLocale)\n}\n"],"names":["isSupportedLocale","locale","SUPPORTED_LOCALES"],"mappings":";AAGO,SAASA,EAAkBC,GAA2C;AAC5E,SAAOC,EAAkB,SAASD,CAAyB;AAC5D;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type PropsWithChildren } from 'react';
|
|
2
|
+
import type { SupportedLocale } from '../types';
|
|
3
|
+
type LocaleContextValue = {
|
|
4
|
+
locale: SupportedLocale;
|
|
5
|
+
};
|
|
6
|
+
interface LocaleProviderProps extends PropsWithChildren {
|
|
7
|
+
/**
|
|
8
|
+
* Supported locales can be found in `SUPPORTED_LOCALES`.
|
|
9
|
+
*/
|
|
10
|
+
locale: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const LocaleContext: import("react").Context<LocaleContextValue | undefined>;
|
|
13
|
+
export declare const LocaleProvider: ({ locale, children }: LocaleProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=locale-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-provider.d.ts","sourceRoot":"","sources":["../../../../src/utils/i18n/helpers/locale-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQ/C,KAAK,kBAAkB,GAAG;IACzB,MAAM,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,UAAU,mBAAoB,SAAQ,iBAAiB;IACtD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,aAAa,yDAEzB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,sBAAsB,mBAAmB,4CAQvE,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
import { createContext as c } from "react";
|
|
4
|
+
import { DEFAULT_LOCALE as l } from "../constants/index.js";
|
|
5
|
+
import { isSupportedLocale as i } from "./is-supported-local.js";
|
|
6
|
+
function n(o) {
|
|
7
|
+
return i(o) ? o : l;
|
|
8
|
+
}
|
|
9
|
+
const a = c(
|
|
10
|
+
void 0
|
|
11
|
+
), v = ({ locale: o, children: e }) => {
|
|
12
|
+
const r = n(o);
|
|
13
|
+
return /* @__PURE__ */ t(a.Provider, { value: { locale: r }, children: e });
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
a as LocaleContext,
|
|
17
|
+
v as LocaleProvider
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=locale-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-provider.js","sources":["../../../../src/utils/i18n/helpers/locale-provider.tsx"],"sourcesContent":["'use client'\n\nimport { createContext, type PropsWithChildren } from 'react'\nimport type { SupportedLocale } from '../types'\nimport { DEFAULT_LOCALE } from '../constants'\nimport { isSupportedLocale } from '../helpers'\n\nfunction resolveLocale(input: string): SupportedLocale {\n\treturn isSupportedLocale(input) ? input : DEFAULT_LOCALE\n}\n\ntype LocaleContextValue = {\n\tlocale: SupportedLocale\n}\n\ninterface LocaleProviderProps extends PropsWithChildren {\n\t/**\n\t * Supported locales can be found in `SUPPORTED_LOCALES`.\n\t */\n\tlocale: string\n}\n\nexport const LocaleContext = createContext<LocaleContextValue | undefined>(\n\tundefined,\n)\n\nexport const LocaleProvider = ({ locale, children }: LocaleProviderProps) => {\n\tconst resolvedLocale = resolveLocale(locale)\n\n\treturn (\n\t\t<LocaleContext.Provider value={{ locale: resolvedLocale }}>\n\t\t\t{children}\n\t\t</LocaleContext.Provider>\n\t)\n}\n"],"names":["resolveLocale","isSupportedLocale","input","DEFAULT_LOCALE","LocaleContext","createContext","locale","children","jsx","resolvedLocale"],"mappings":";;;;;AAQC,SAAOA,KAAkB;AAC1B,SAAAC,EAAAC,CAAA,IAAAA,IAAAC;AAaO;AAAsB,MAC5BC,IAAAC;AAAA,EACD;AAEO,OACA,CAAA,EAAiB,QAAAC,GAAA,UAAAC,QAAoB;AAE3C,YACCP,GAAe;AAIjB,SAAA,gBAAAQ,EAAAJ,EAAA,UAAA,EAAA,OAAA,EAAA,QAAAK,EAAA,GAAA,UAAAF,EAAA,CAAA;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-smart-sentence-case.d.ts","sourceRoot":"","sources":["../../../../src/utils/i18n/helpers/to-smart-sentence-case.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,GACrB,MAAM,CAiBR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-smart-sentence-case.js","sources":["../../../../src/utils/i18n/helpers/to-smart-sentence-case.ts"],"sourcesContent":["import type { SupportedLocale } from '../types'\n\nexport function toSmartSentenceCase(\n\ttext: string,\n\tlocale: SupportedLocale,\n): string {\n\t// Skip transformation for non-cased languages\n\tif (locale === 'ja' || locale === 'ko') {\n\t\treturn text\n\t}\n\n\tconst match = text.match(/^(\\s*[\\p{P}\\p{Zs}]*)?(\\p{L})(.*)$/u)\n\n\tif (!match) return text // fallback if no match\n\n\tconst [, leading, firstChar, rest] = match\n\n\treturn (\n\t\t(leading ?? '') +\n\t\tfirstChar.toLocaleUpperCase(locale) +\n\t\trest.toLocaleLowerCase(locale)\n\t)\n}\n"],"names":["toSmartSentenceCase","text","locale","match","leading","firstChar","rest"],"mappings":"AAEO,SAASA,EACfC,GACAC,GACS;AAET,MAAIA,MAAW,QAAQA,MAAW;AACjC,WAAOD;AAGR,QAAME,IAAQF,EAAK,MAAM,oCAAoC;AAE7D,MAAI,CAACE,EAAO,QAAOF;AAEnB,QAAM,GAAGG,GAASC,GAAWC,CAAI,IAAIH;AAErC,UACEC,KAAW,MACZC,EAAU,kBAAkBH,CAAM,IAClCI,EAAK,kBAAkBJ,CAAM;AAE/B;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-smart-title-case.d.ts","sourceRoot":"","sources":["../../../../src/utils/i18n/helpers/to-smart-title-case.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,GACrB,MAAM,CA2BR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-smart-title-case.js","sources":["../../../../src/utils/i18n/helpers/to-smart-title-case.ts"],"sourcesContent":["import { smallWordsByLocale } from '../constants'\nimport type { SupportedLocale } from '../types'\n\nexport function toSmartTitleCase(\n\ttext: string,\n\tlocale: SupportedLocale,\n): string {\n\tconst smallWords = smallWordsByLocale[locale]\n\tconst segments = text.toLocaleLowerCase(locale).split(/([\\s\\-:,.]+)/)\n\n\tlet capitalizeNext = true\n\n\treturn segments\n\t\t.map((segment) => {\n\t\t\tif (/^[\\s\\-:,.]+$/.test(segment)) {\n\t\t\t\t// If punctuation ends a sentence-like clause, capitalize the next word\n\t\t\t\tif (/[:.!?]\\s*$/.test(segment)) {\n\t\t\t\t\tcapitalizeNext = true\n\t\t\t\t}\n\t\t\t\treturn segment\n\t\t\t}\n\n\t\t\t// For non-cased languages (ja, ko), return as-is\n\t\t\tif (!segment.charAt(0).toLocaleUpperCase) return segment\n\n\t\t\tif (capitalizeNext || !smallWords.has(segment)) {\n\t\t\t\tcapitalizeNext = false\n\t\t\t\treturn segment.charAt(0).toLocaleUpperCase(locale) + segment.slice(1)\n\t\t\t} else {\n\t\t\t\treturn segment\n\t\t\t}\n\t\t})\n\t\t.join('')\n}\n"],"names":["toSmartTitleCase","text","locale","smallWords","smallWordsByLocale","segments","capitalizeNext","segment"],"mappings":";AAGO,SAASA,EACfC,GACAC,GACS;AACT,QAAMC,IAAaC,EAAmBF,CAAM,GACtCG,IAAWJ,EAAK,kBAAkBC,CAAM,EAAE,MAAM,cAAc;AAEpE,MAAII,IAAiB;AAErB,SAAOD,EACL,IAAI,CAACE,MACD,eAAe,KAAKA,CAAO,KAE1B,aAAa,KAAKA,CAAO,MAC5BD,IAAiB,KAEXC,KAIHA,EAAQ,OAAO,CAAC,EAAE,sBAEnBD,KAAkB,CAACH,EAAW,IAAII,CAAO,MAC5CD,IAAiB,IACVC,EAAQ,OAAO,CAAC,EAAE,kBAAkBL,CAAM,IAAIK,EAAQ,MAAM,CAAC,KAJpBA,CAQjD,EACA,KAAK,EAAE;AACV;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-locale.d.ts","sourceRoot":"","sources":["../../../../src/utils/i18n/helpers/use-locale.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK/C,wBAAgB,SAAS,IAAI,eAAe,CAW3C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useContext as r } from "react";
|
|
2
|
+
import { LocaleContext as n } from "./locale-provider.js";
|
|
3
|
+
import { DEFAULT_LOCALE as e } from "../constants/index.js";
|
|
4
|
+
let t = !1;
|
|
5
|
+
function f() {
|
|
6
|
+
const o = r(n)?.locale;
|
|
7
|
+
return !o && typeof window < "u" && !t && (t = !0, console.warn(
|
|
8
|
+
`[@hashicorp/mds-react] No <LocaleProvider> found. Defaulting to "${e}".`
|
|
9
|
+
)), o || e;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
f as useLocale
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=use-locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-locale.js","sources":["../../../../src/utils/i18n/helpers/use-locale.ts"],"sourcesContent":["import { useContext } from 'react'\nimport { LocaleContext } from './locale-provider'\nimport type { SupportedLocale } from '../types'\nimport { DEFAULT_LOCALE } from '../constants'\n\nlet hasWarned = false\n\nexport function useLocale(): SupportedLocale {\n\tconst locale = useContext(LocaleContext)?.locale\n\n\tif (!locale && typeof window !== 'undefined' && !hasWarned) {\n\t\thasWarned = true\n\t\tconsole.warn(\n\t\t\t`[@hashicorp/mds-react] No <LocaleProvider> found. Defaulting to \"${DEFAULT_LOCALE}\".`,\n\t\t)\n\t}\n\n\treturn locale || DEFAULT_LOCALE\n}\n"],"names":["hasWarned","useLocale","locale","useContext","LocaleContext","DEFAULT_LOCALE"],"mappings":";;;AAKA,IAAIA,IAAY;AAET,SAASC,IAA6B;AAC5C,QAAMC,IAASC,EAAWC,CAAa,GAAG;AAE1C,SAAI,CAACF,KAAU,OAAO,SAAW,OAAe,CAACF,MAChDA,IAAY,IACZ,QAAQ;AAAA,IACP,oEAAoEK,CAAc;AAAA,EAAA,IAI7EH,KAAUG;AAClB;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SupportedLocale } from './types';
|
|
2
|
+
type Capitalization = 'none' | 'lower' | 'sentence' | 'title' | 'upper';
|
|
3
|
+
type DotPrefix<T extends string, U extends string> = `${T}.${U}`;
|
|
4
|
+
type NestedKeyOf<ObjectType extends object> = {
|
|
5
|
+
[K in keyof ObjectType & string]: ObjectType[K] extends object ? DotPrefix<K, NestedKeyOf<ObjectType[K]>> : K;
|
|
6
|
+
}[keyof ObjectType & string];
|
|
7
|
+
export declare const localize: (key: NestedKeyOf<{
|
|
8
|
+
optional: string;
|
|
9
|
+
required: string;
|
|
10
|
+
}>, locale: SupportedLocale, capitalization?: Capitalization) => string;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAA;AAEvE,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;AAEhE,KAAK,WAAW,CAAC,UAAU,SAAS,MAAM,IAAI;KAC5C,CAAC,IAAI,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,GAC3D,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GACxC,CAAC;CACJ,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAA;AA+C5B,eAAO,MAAM,QAAQ;;;YAzBX,eAAe,mBACN,cAAc,KAC7B,MAyDF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/utils/i18n/index.ts"],"sourcesContent":["import type { SupportedLocale } from './types'\nimport { toSmartSentenceCase, toSmartTitleCase } from './helpers'\n\ntype Capitalization = 'none' | 'lower' | 'sentence' | 'title' | 'upper'\n\ntype DotPrefix<T extends string, U extends string> = `${T}.${U}`\n\ntype NestedKeyOf<ObjectType extends object> = {\n\t[K in keyof ObjectType & string]: ObjectType[K] extends object\n\t\t? DotPrefix<K, NestedKeyOf<ObjectType[K]>>\n\t\t: K\n}[keyof ObjectType & string]\n\nfunction getByDotPath<T extends object, P extends string>(\n\tobj: T,\n\tpath: P,\n): unknown {\n\treturn path.split('.').reduce((acc: unknown, part) => {\n\t\tif (typeof acc === 'object' && acc !== null && part in acc) {\n\t\t\treturn (acc as Record<string, unknown>)[part]\n\t\t}\n\t\treturn undefined\n\t}, obj)\n}\n\nfunction createLocalize<Messages extends Record<string, unknown>>(\n\tlocalizations: Record<SupportedLocale, Messages>,\n\tfallbackLocale: SupportedLocale = 'en',\n) {\n\ttype Key = NestedKeyOf<Messages>\n\n\treturn function translate(\n\t\tkey: Key,\n\t\tlocale: SupportedLocale,\n\t\tcapitalization?: Capitalization,\n\t): string {\n\t\tconst word =\n\t\t\tgetByDotPath(localizations[locale], key) ??\n\t\t\tgetByDotPath(localizations[fallbackLocale], key)\n\n\t\tif (typeof word !== 'string') return ''\n\n\t\tswitch (capitalization) {\n\t\t\tcase 'title':\n\t\t\t\treturn toSmartTitleCase(word, locale)\n\t\t\tcase 'sentence':\n\t\t\t\treturn toSmartSentenceCase(word, locale)\n\t\t\tcase 'upper':\n\t\t\t\treturn word.toLocaleUpperCase(locale)\n\t\t\tcase 'lower':\n\t\t\t\treturn word.toLocaleLowerCase(locale)\n\t\t\tcase 'none':\n\t\t\tdefault:\n\t\t\t\treturn word\n\t\t}\n\t}\n}\n\nexport const localize = createLocalize({\n\tde: {\n\t\toptional: 'optional', // \"optional\" is the same in German\n\t\trequired: 'erforderlich',\n\t},\n\ten: {\n\t\toptional: 'optional',\n\t\trequired: 'required',\n\t},\n\tes: {\n\t\toptional: 'opcional',\n\t\trequired: 'obligatorio',\n\t},\n\tfr: {\n\t\toptional: 'facultatif',\n\t\trequired: 'obligatoire',\n\t},\n\tid: {\n\t\t// ! TODO Translate text to Indonesian\n\t\toptional: 'optional',\n\t\trequired: 'required',\n\t},\n\tja: {\n\t\toptional: '任意',\n\t\trequired: '必須',\n\t},\n\tko: {\n\t\toptional: '선택 사항',\n\t\trequired: '필수',\n\t},\n\tpt: {\n\t\toptional: 'opcional',\n\t\trequired: 'obrigatório',\n\t},\n})\n"],"names":["getByDotPath","obj","path","acc","part","createLocalize","localizations","fallbackLocale","key","locale","capitalization","word","toSmartTitleCase","toSmartSentenceCase","localize"],"mappings":";;AAaA,SAASA,EACRC,GACAC,GACU;AACV,SAAOA,EAAK,MAAM,GAAG,EAAE,OAAO,CAACC,GAAcC,MAAS;AACrD,QAAI,OAAOD,KAAQ,YAAYA,MAAQ,QAAQC,KAAQD;AACtD,aAAQA,EAAgCC,CAAI;AAAA,EAG9C,GAAGH,CAAG;AACP;AAEA,SAASI,EACRC,GACAC,IAAkC,MACjC;AAGD,SAAO,SACNC,GACAC,GACAC,GACS;AACT,UAAMC,IACLX,EAAaM,EAAcG,CAAM,GAAGD,CAAG,KACvCR,EAAaM,EAAcC,CAAc,GAAGC,CAAG;AAEhD,QAAI,OAAOG,KAAS,SAAU,QAAO;AAErC,YAAQD,GAAA;AAAA,MACP,KAAK;AACJ,eAAOE,EAAiBD,GAAMF,CAAM;AAAA,MACrC,KAAK;AACJ,eAAOI,EAAoBF,GAAMF,CAAM;AAAA,MACxC,KAAK;AACJ,eAAOE,EAAK,kBAAkBF,CAAM;AAAA,MACrC,KAAK;AACJ,eAAOE,EAAK,kBAAkBF,CAAM;AAAA,MACrC,KAAK;AAAA,MACL;AACC,eAAOE;AAAA,IAAA;AAAA,EAEV;AACD;AAEO,MAAMG,IAAWT,EAAe;AAAA,EACtC,IAAI;AAAA,IACH,UAAU;AAAA;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEX,IAAI;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEX,IAAI;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEX,IAAI;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEX,IAAI;AAAA;AAAA,IAEH,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEX,IAAI;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEX,IAAI;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAAA,EAEX,IAAI;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEZ,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/i18n/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useLarge, useMedium, useMediumUp, useSmall, } from './hooks/use-screen-size';
|
|
2
|
+
export { MDSProvider } from './mds-context';
|
|
3
|
+
export type { MDSLinkProps, MDSImageProps } from './mds-context';
|
|
4
|
+
export { LocaleProvider, useLocale } from './i18n/helpers';
|
|
5
|
+
export { onClipboardClickHandler, type ClipboardHandlerArgs } from './clipboard';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,GACR,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useLarge as o, useMedium as m, useMediumUp as l, useSmall as p } from "./hooks/use-screen-size/index.js";
|
|
2
|
+
import { MDSProvider as a } from "./mds-context/index.js";
|
|
3
|
+
import { onClipboardClickHandler as i } from "./clipboard.js";
|
|
4
|
+
import { LocaleProvider as s } from "./i18n/helpers/locale-provider.js";
|
|
5
|
+
import { useLocale as x } from "./i18n/helpers/use-locale.js";
|
|
6
|
+
export {
|
|
7
|
+
s as LocaleProvider,
|
|
8
|
+
a as MDSProvider,
|
|
9
|
+
i as onClipboardClickHandler,
|
|
10
|
+
o as useLarge,
|
|
11
|
+
x as useLocale,
|
|
12
|
+
m as useMedium,
|
|
13
|
+
l as useMediumUp,
|
|
14
|
+
p as useSmall
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type NormalizerOpts<TOut extends string> = {
|
|
2
|
+
aliases?: Record<string, TOut>;
|
|
3
|
+
fallback?: TOut;
|
|
4
|
+
transform?: (raw: string) => string;
|
|
5
|
+
};
|
|
6
|
+
export type Normalizer<TOut extends string> = {
|
|
7
|
+
(input: unknown, opts?: NormalizerOpts<TOut>): TOut;
|
|
8
|
+
with(bound: NormalizerOpts<TOut>): Normalizer<TOut>;
|
|
9
|
+
};
|
|
10
|
+
export declare function makeNormalizer<TAllowed extends readonly string[], TOut extends TAllowed[number]>(allowed: TAllowed, defaults: {
|
|
11
|
+
fallback: TOut;
|
|
12
|
+
aliases?: Record<string, TOut>;
|
|
13
|
+
transform?: (raw: string) => string;
|
|
14
|
+
}): Normalizer<TOut>;
|
|
15
|
+
/**
|
|
16
|
+
* Group helper: normalize a whole props object in one call.
|
|
17
|
+
* - `all.transform` applies to every normalizer in the set (safe cross-type).
|
|
18
|
+
* - `each[key]` lets you override per-key opts (aliases/fallback/transform).
|
|
19
|
+
*/
|
|
20
|
+
export declare function makeNormalizerSet<TOuts extends Record<string, string>>(map: {
|
|
21
|
+
[K in keyof TOuts]: Normalizer<TOuts[K]>;
|
|
22
|
+
}): ((input: { [K in keyof TOuts]?: unknown; }, opts?: {
|
|
23
|
+
all?: Pick<NormalizerOpts<string>, "transform">;
|
|
24
|
+
each?: { [K_1 in keyof TOuts]?: NormalizerOpts<TOuts[K_1]> | undefined; };
|
|
25
|
+
}) => { [K_2 in keyof TOuts]: TOuts[K_2]; }) & {
|
|
26
|
+
with(all: Pick<NormalizerOpts<string>, "transform">): (input: { [K in keyof TOuts]?: unknown; }, opts?: {
|
|
27
|
+
all?: Pick<NormalizerOpts<string>, "transform">;
|
|
28
|
+
each?: { [K_1 in keyof TOuts]?: NormalizerOpts<TOuts[K_1]> | undefined; };
|
|
29
|
+
}) => { [K_2 in keyof TOuts]: TOuts[K_2]; };
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/make-normalizer/index.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,MAAM,IAAI;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9B,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,IAAI,SAAS,MAAM,IAAI;IAC7C,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACnD,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CACnD,CAAA;AAED,wBAAgB,cAAc,CAC7B,QAAQ,SAAS,SAAS,MAAM,EAAE,EAClC,IAAI,SAAS,QAAQ,CAAC,MAAM,CAAC,EAE7B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE;IACT,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CACnC,GACC,UAAU,CAAC,IAAI,CAAC,CA2BlB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE;KAC3E,CAAC,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACxC,eACa,CAAC,sCAIiB;IAAE,GAAG,CAAC,4CAAM;IAAC,IAAI,CAAC,qEAAM;CAAE;qEAJ5C,CAAC,sCAIiB;QAAE,GAAG,CAAC,4CAAM;QAAC,IAAI,CAAC,qEAAM;KAAE;EAyBzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/utils/make-normalizer/index.tsx"],"sourcesContent":["export type NormalizerOpts<TOut extends string> = {\n\taliases?: Record<string, TOut>\n\tfallback?: TOut\n\ttransform?: (raw: string) => string\n}\n\nexport type Normalizer<TOut extends string> = {\n\t(input: unknown, opts?: NormalizerOpts<TOut>): TOut\n\twith(bound: NormalizerOpts<TOut>): Normalizer<TOut>\n}\n\nexport function makeNormalizer<\n\tTAllowed extends readonly string[],\n\tTOut extends TAllowed[number],\n>(\n\tallowed: TAllowed,\n\tdefaults: {\n\t\tfallback: TOut\n\t\taliases?: Record<string, TOut>\n\t\ttransform?: (raw: string) => string\n\t},\n): Normalizer<TOut> {\n\tconst list = allowed as readonly string[]\n\n\tconst defaultAliases: Record<string, TOut> =\n\t\tdefaults.aliases ??\n\t\t(Object.fromEntries(list.map((v) => [v, v])) as Record<string, TOut>)\n\n\tconst defaultTransform =\n\t\tdefaults.transform ?? ((s: string) => s.trim().toLowerCase())\n\n\tconst core = ((input: unknown, opts?: NormalizerOpts<TOut>): TOut => {\n\t\tconst aliases = { ...defaultAliases, ...(opts?.aliases ?? {}) }\n\t\tconst fallback = opts?.fallback ?? defaults.fallback\n\t\tconst transform = opts?.transform ?? defaultTransform\n\n\t\tif (typeof input !== 'string') return fallback\n\n\t\tconst s = transform(input)\n\t\tconst candidate = (aliases[s] ?? s) as string\n\t\treturn list.includes(candidate) ? (candidate as TOut) : fallback\n\t}) as Normalizer<TOut>\n\n\tcore.with = (bound: NormalizerOpts<TOut>) =>\n\t\t((input: unknown, opts?: NormalizerOpts<TOut>) =>\n\t\t\tcore(input, { ...bound, ...(opts ?? {}) })) as Normalizer<TOut>\n\n\treturn core\n}\n\n/**\n * Group helper: normalize a whole props object in one call.\n * - `all.transform` applies to every normalizer in the set (safe cross-type).\n * - `each[key]` lets you override per-key opts (aliases/fallback/transform).\n */\nexport function makeNormalizerSet<TOuts extends Record<string, string>>(map: {\n\t[K in keyof TOuts]: Normalizer<TOuts[K]>\n}) {\n\ttype In = { [K in keyof TOuts]?: unknown | null }\n\ttype Out = { [K in keyof TOuts]: TOuts[K] }\n\ttype All = Pick<NormalizerOpts<string>, 'transform'> // safe cross-prop\n\ttype Each = { [K in keyof TOuts]?: NormalizerOpts<TOuts[K]> }\n\ttype Call = (input: In, opts?: { all?: All; each?: Each }) => Out\n\n\tconst call = ((input: In, opts?: { all?: All; each?: Each }) => {\n\t\tconst out = {} as Out\n\t\tfor (const k in map) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(map, k)) continue\n\t\t\tconst key = k as keyof TOuts\n\t\t\tconst n = map[key]\n\t\t\tconst base = opts?.all ? n.with(opts.all as any) : n\n\t\t\tout[key] = base(input?.[key], opts?.each?.[key]) as TOuts[typeof key]\n\t\t}\n\t\treturn out\n\t}) as Call & { with(all: All): Call }\n\n\tcall.with = (all: All) => {\n\t\tconst bound = {} as { [K in keyof TOuts]: Normalizer<TOuts[K]> }\n\t\tfor (const k in map) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(map, k)) continue\n\t\t\tconst key = k as keyof TOuts\n\t\t\tbound[key] = map[key].with(all as any)\n\t\t}\n\t\treturn makeNormalizerSet(bound)\n\t}\n\n\treturn call\n}\n"],"names":["makeNormalizer","allowed","defaults","list","defaultAliases","v","defaultTransform","s","core","input","opts","aliases","fallback","transform","candidate","bound","makeNormalizerSet","map","call","out","k","key","n","base","all"],"mappings":"AAWO,SAASA,EAIfC,GACAC,GAKmB;AACnB,QAAMC,IAAOF,GAEPG,IACLF,EAAS,WACR,OAAO,YAAYC,EAAK,IAAI,CAACE,MAAM,CAACA,GAAGA,CAAC,CAAC,CAAC,GAEtCC,IACLJ,EAAS,cAAc,CAACK,MAAcA,EAAE,OAAO,gBAE1CC,IAAQ,CAACC,GAAgBC,MAAsC;AACpE,UAAMC,IAAU,EAAE,GAAGP,GAAgB,GAAIM,GAAM,WAAW,GAAC,GACrDE,IAAWF,GAAM,YAAYR,EAAS,UACtCW,IAAYH,GAAM,aAAaJ;AAErC,QAAI,OAAOG,KAAU,SAAU,QAAOG;AAEtC,UAAML,IAAIM,EAAUJ,CAAK,GACnBK,IAAaH,EAAQJ,CAAC,KAAKA;AACjC,WAAOJ,EAAK,SAASW,CAAS,IAAKA,IAAqBF;AAAA,EACzD;AAEA,SAAAJ,EAAK,OAAO,CAACO,MACX,CAACN,GAAgBC,MACjBF,EAAKC,GAAO,EAAE,GAAGM,GAAO,GAAIL,KAAQ,CAAA,GAAK,GAEpCF;AACR;AAOO,SAASQ,EAAwDC,GAErE;AAOF,QAAMC,IAAQ,CAACT,GAAWC,MAAsC;AAC/D,UAAMS,IAAM,CAAA;AACZ,eAAWC,KAAKH,GAAK;AACpB,UAAI,CAAC,OAAO,UAAU,eAAe,KAAKA,GAAKG,CAAC,EAAG;AACnD,YAAMC,IAAMD,GACNE,IAAIL,EAAII,CAAG,GACXE,IAAOb,GAAM,MAAMY,EAAE,KAAKZ,EAAK,GAAU,IAAIY;AACnD,MAAAH,EAAIE,CAAG,IAAIE,EAAKd,IAAQY,CAAG,GAAGX,GAAM,OAAOW,CAAG,CAAC;AAAA,IAChD;AACA,WAAOF;AAAA,EACR;AAEA,SAAAD,EAAK,OAAO,CAACM,MAAa;AACzB,UAAMT,IAAQ,CAAA;AACd,eAAWK,KAAKH,GAAK;AACpB,UAAI,CAAC,OAAO,UAAU,eAAe,KAAKA,GAAKG,CAAC,EAAG;AACnD,YAAMC,IAAMD;AACZ,MAAAL,EAAMM,CAAG,IAAIJ,EAAII,CAAG,EAAE,KAAKG,CAAU;AAAA,IACtC;AACA,WAAOR,EAAkBD,CAAK;AAAA,EAC/B,GAEOG;AACR;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type CSSProperties, type ImgHTMLAttributes, type ComponentType } from 'react';
|
|
2
|
+
type FillLayout = {
|
|
3
|
+
fill: true;
|
|
4
|
+
/** Strongly recommended when using fill */
|
|
5
|
+
sizes?: string;
|
|
6
|
+
};
|
|
7
|
+
type FixedLayout = {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
fill?: false;
|
|
11
|
+
};
|
|
12
|
+
/** Next/Image extras we want to allow on adapters (all optional here) */
|
|
13
|
+
type NextImageExtras = {
|
|
14
|
+
priority?: boolean;
|
|
15
|
+
placeholder?: 'blur' | 'empty';
|
|
16
|
+
blurDataURL?: string;
|
|
17
|
+
quality?: number;
|
|
18
|
+
unoptimized?: boolean;
|
|
19
|
+
onLoadingComplete?: (img: HTMLImageElement) => void;
|
|
20
|
+
};
|
|
21
|
+
export type MDSImageProps = ({
|
|
22
|
+
alt: string;
|
|
23
|
+
/** DS-neutral; Next adapter may also accept StaticImageData at runtime */
|
|
24
|
+
src: string;
|
|
25
|
+
className?: string;
|
|
26
|
+
style?: CSSProperties;
|
|
27
|
+
loading?: 'eager' | 'lazy';
|
|
28
|
+
decoding?: 'sync' | 'async' | 'auto';
|
|
29
|
+
fetchPriority?: 'high' | 'low' | 'auto';
|
|
30
|
+
objectFit?: string;
|
|
31
|
+
objectPosition?: string;
|
|
32
|
+
} & (FillLayout | FixedLayout)) & Omit<ImgHTMLAttributes<HTMLImageElement>, 'src' | 'alt' | 'width' | 'height' | 'loading' | 'decoding'> & NextImageExtras;
|
|
33
|
+
type ImageComponent = ComponentType<MDSImageProps>;
|
|
34
|
+
/**
|
|
35
|
+
* Start from all standard <a> props, then refine:
|
|
36
|
+
* - force a typed href
|
|
37
|
+
* - keep children required
|
|
38
|
+
* - keep Next-specific props optional so the default <a> can ignore them
|
|
39
|
+
*/
|
|
40
|
+
export type MDSLinkProps = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> & {
|
|
41
|
+
href: string | URL;
|
|
42
|
+
target?: React.HTMLAttributeAnchorTarget;
|
|
43
|
+
onClick?: React.MouseEventHandler<HTMLAnchorElement>;
|
|
44
|
+
} & {
|
|
45
|
+
prefetch?: boolean;
|
|
46
|
+
replace?: boolean;
|
|
47
|
+
scroll?: boolean;
|
|
48
|
+
shallow?: boolean;
|
|
49
|
+
locale?: string | false;
|
|
50
|
+
};
|
|
51
|
+
type LinkComponent = React.ForwardRefExoticComponent<MDSLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
52
|
+
export declare function MDSProvider({ children, imageComponent, linkComponent, }: {
|
|
53
|
+
children: React.ReactNode;
|
|
54
|
+
imageComponent?: ImageComponent;
|
|
55
|
+
linkComponent?: LinkComponent;
|
|
56
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
export declare function useMDSImage(): ImageComponent;
|
|
58
|
+
export declare function useMDSLink(): LinkComponent;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/mds-context/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIN,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,MAAM,OAAO,CAAA;AAId,KAAK,UAAU,GAAG;IACjB,IAAI,EAAE,IAAI,CAAA;IACV,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,yEAAyE;AACzE,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;CACnD,CAAA;AAED,MAAM,MAAM,aAAa,GAExB,CAAC;IACA,GAAG,EAAE,MAAM,CAAA;IACX,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,GAE9B,IAAI,CACH,iBAAiB,CAAC,gBAAgB,CAAC,EACnC,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAC3D,GAED,eAAe,CAAA;AAEjB,KAAK,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;AA6DlD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAC9B,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,MAAM,CACN,GAAG;IACH,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;IAClB,MAAM,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAA;IACxC,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;CACpD,GAAG;IAEH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CACvB,CAAA;AAED,KAAK,aAAa,GAAG,KAAK,CAAC,yBAAyB,CACnD,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CACrD,CAAA;AAoBD,wBAAgB,WAAW,CAAC,EAC3B,QAAQ,EACR,cAAc,EACd,aAAa,GACb,EAAE;IACF,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAA;CAC7B,2CAQA;AAED,wBAAgB,WAAW,mBAE1B;AAED,wBAAgB,UAAU,kBAEzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/utils/mds-context/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n\tcreateContext,\n\tuseContext,\n\tforwardRef,\n\ttype CSSProperties,\n\ttype ImgHTMLAttributes,\n\ttype ComponentType,\n} from 'react'\n\n/* ----------------------------- Image ----------------------------- */\n\ntype FillLayout = {\n\tfill: true\n\t/** Strongly recommended when using fill */\n\tsizes?: string\n}\n\ntype FixedLayout = {\n\twidth: number\n\theight: number\n\tfill?: false\n}\n\n/** Next/Image extras we want to allow on adapters (all optional here) */\ntype NextImageExtras = {\n\tpriority?: boolean\n\tplaceholder?: 'blur' | 'empty'\n\tblurDataURL?: string\n\tquality?: number\n\tunoptimized?: boolean\n\tonLoadingComplete?: (img: HTMLImageElement) => void\n}\n\nexport type MDSImageProps =\n\t// Core, DS-neutral props\n\t({\n\t\talt: string\n\t\t/** DS-neutral; Next adapter may also accept StaticImageData at runtime */\n\t\tsrc: string\n\t\tclassName?: string\n\t\tstyle?: CSSProperties\n\t\tloading?: 'eager' | 'lazy'\n\t\tdecoding?: 'sync' | 'async' | 'auto'\n\t\tfetchPriority?: 'high' | 'low' | 'auto'\n\t\tobjectFit?: string\n\t\tobjectPosition?: string\n\t} & (FillLayout | FixedLayout)) &\n\t\t// Allow common <img> props without clobbering the ones we define\n\t\tOmit<\n\t\t\tImgHTMLAttributes<HTMLImageElement>,\n\t\t\t'src' | 'alt' | 'width' | 'height' | 'loading' | 'decoding'\n\t\t> &\n\t\t// Make Next extras available (adapters can use them; default img ignores)\n\t\tNextImageExtras\n\ntype ImageComponent = ComponentType<MDSImageProps>\n\nconst DefaultImg: ImageComponent = (props) => {\n\tconst {\n\t\talt,\n\t\tsrc,\n\t\tclassName,\n\t\tstyle,\n\t\tloading,\n\t\tdecoding,\n\t\tfetchPriority,\n\t\tobjectFit,\n\t\tobjectPosition,\n\t\t// Next extras are accepted but ignored by the default renderer\n\t} = props\n\n\tif ('fill' in props && props.fill) {\n\t\treturn (\n\t\t\t<img\n\t\t\t\talt={alt}\n\t\t\t\tsrc={src}\n\t\t\t\tclassName={className}\n\t\t\t\tloading={loading}\n\t\t\t\tdecoding={decoding}\n\t\t\t\tfetchPriority={fetchPriority}\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\tinset: 0,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tobjectFit: (objectFit as CSSProperties['objectFit']) ?? 'cover',\n\t\t\t\t\tobjectPosition,\n\t\t\t\t\t...style,\n\t\t\t\t}}\n\t\t\t/>\n\t\t)\n\t}\n\n\treturn (\n\t\t<img\n\t\t\talt={alt}\n\t\t\tsrc={src}\n\t\t\twidth={props.width}\n\t\t\theight={props.height}\n\t\t\tclassName={className}\n\t\t\tloading={loading}\n\t\t\tdecoding={decoding}\n\t\t\tfetchPriority={fetchPriority}\n\t\t\tstyle={{\n\t\t\t\tobjectFit: objectFit as CSSProperties['objectFit'],\n\t\t\t\tobjectPosition,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t/>\n\t)\n}\n\nconst ImageCtx = createContext<ImageComponent>(DefaultImg)\n\n/* ------------------------------ Link ----------------------------- */\n\n/**\n * Start from all standard <a> props, then refine:\n * - force a typed href\n * - keep children required\n * - keep Next-specific props optional so the default <a> can ignore them\n */\nexport type MDSLinkProps = Omit<\n\tReact.AnchorHTMLAttributes<HTMLAnchorElement>,\n\t'href'\n> & {\n\thref: string | URL\n\ttarget?: React.HTMLAttributeAnchorTarget\n\tonClick?: React.MouseEventHandler<HTMLAnchorElement>\n} & {\n\t// Next.js extras (optional; default <a> ignores them)\n\tprefetch?: boolean\n\treplace?: boolean\n\tscroll?: boolean\n\tshallow?: boolean\n\tlocale?: string | false\n}\n\ntype LinkComponent = React.ForwardRefExoticComponent<\n\tMDSLinkProps & React.RefAttributes<HTMLAnchorElement>\n>\n\nconst DefaultLink: LinkComponent = forwardRef<HTMLAnchorElement, MDSLinkProps>(\n\t({ href, children, ...rest }, ref) => (\n\t\t<a\n\t\t\tref={ref}\n\t\t\thref={typeof href === 'string' ? href : href.toString()}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</a>\n\t),\n)\n\nDefaultLink.displayName = 'DefaultLink'\n\nconst LinkCtx = createContext<LinkComponent>(DefaultLink)\n\n/* ----------------------- Provider + hooks ------------------------ */\n\nexport function MDSProvider({\n\tchildren,\n\timageComponent,\n\tlinkComponent,\n}: {\n\tchildren: React.ReactNode\n\timageComponent?: ImageComponent\n\tlinkComponent?: LinkComponent\n}) {\n\treturn (\n\t\t<ImageCtx.Provider value={imageComponent ?? DefaultImg}>\n\t\t\t<LinkCtx.Provider value={linkComponent ?? DefaultLink}>\n\t\t\t\t{children}\n\t\t\t</LinkCtx.Provider>\n\t\t</ImageCtx.Provider>\n\t)\n}\n\nexport function useMDSImage() {\n\treturn useContext(ImageCtx)\n}\n\nexport function useMDSLink() {\n\treturn useContext(LinkCtx)\n}\n"],"names":["DefaultImg","props","alt","src","className","style","loading","decoding","fetchPriority","objectFit","objectPosition","jsx","ImageCtx","createContext","DefaultLink","href","children","rest","ref","LinkCtx","MDSProvider","imageComponent","linkComponent","useMDSImage","useContext","useMDSLink"],"mappings":";;;AA4DC,MAAAA,IAAM,CAAAC,MAAA;AAAA,QACL;AAAA,IACA,KAAAC;AAAA,IACA,KAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,WAAAC;AAAA,IAAA,gBAAAC;AAAA;AAAA,EAID,IAAIT;AACH,0BACC,OAAC,gBAAAU;AAAA,IAAA;AAAA,IAAA;AAAA,MAEA,KAAAT;AAAA,MACA,KAAAC;AAAA,MACA,WAAAC;AAAA,MACA,SAAAE;AAAA,MACA,UAAAC;AAAA,MACA,eAAAC;AAAA,MAAO,OACN;AAAA,QACA,UAAO;AAAA,QACP,OAAO;AAAA,QACP;QACA,QAAA;AAAA,QACA,WAAAC,KAAA;AAAA,QACA,gBAAAC;AAAA,QAAG,GAAAL;AAAA,MACJ;AAAA,IACD;AAAA,EAEF,IAGE,gBAAAM;AAAA,IAAA;AAAA,IAAA;AAAA,MAEA,KAAAT;AAAA,MACA,KAAAC;AAAA,MACA,SAAQ;AAAA,MACR,QAAAF,EAAA;AAAA,MACA,WAAAG;AAAA,MACA,SAAAE;AAAA,MACA,UAAAC;AAAA,MACA,eAAAC;AAAA,MAAO,OACN;AAAA,QACA,WAAAC;AAAA,QACA,gBAAAC;AAAA,QAAG,GAAAL;AAAA,MACJ;AAAA,IACD;AAAA,EAEF;AAEA,GA8BMO,IAAAC,EAA6Bb,CAAA,GAC/Bc;EACF,CAAA,EAAC,MAAAC,GAAA,UAAAC,GAAA,GAAAC,EAAA,GAAAC,MAAA,gBAAAP;AAAA,IAAA;AAAA,IAAA;AAAA,MAEA,KAAAO;AAAA,MACC,MAAG,OAAAH,KAAA,WAAAA,IAAAA,EAAA,SAAA;AAAA,MAEH,GAAAE;AAAA,MAAA,UAAAD;AAAA,IAAA;AAAA,EAGJ;AAEA;AAEAF,EAAM,cAAU;AAIT,MAAAK,MAAqBL,CAAA;AAAA,SAC3BM,EAAA;AAAA,EACA,UAAAJ;AAAA,EACA,gBAAAK;AAAA,EACD,eAAAC;AAKC,GAAA;AAOD,SAAA,gBAAAX,EAAAC,EAAA,UAAA,EAAA,OAAAS,KAAArB,GAAA,UAAA,gBAAAW,EAAAQ,EAAA,UAAA,EAAA,OAAAG,KAAAR,GAAA,UAAAE,EAAA,CAAA,EAAA,CAAA;AAEO;AACN,SAAOO,IAAW;AACnB,SAAAC,EAAAZ,CAAA;AAEO;AACN,SAAOa,IAAW;AACnB,SAAAD,EAAAL,CAAA;;"}
|