@hashicorp/mds-react 0.9.0
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/LICENSE +336 -0
- package/README.md +109 -0
- package/dist/components/accordion/index.d.ts +14 -0
- package/dist/components/accordion/index.js +9 -0
- package/dist/components/accordion/index.js.map +1 -0
- package/dist/components/accordion/item/button.d.ts +6 -0
- package/dist/components/accordion/item/button.js +44 -0
- package/dist/components/accordion/item/button.js.map +1 -0
- package/dist/components/accordion/item/index.d.ts +24 -0
- package/dist/components/accordion/item/index.js +59 -0
- package/dist/components/accordion/item/index.js.map +1 -0
- package/dist/components/accordion/style.module.scss +110 -0
- package/dist/components/accordion/style.module.scss.js +24 -0
- package/dist/components/accordion/style.module.scss.js.map +1 -0
- package/dist/components/alert/alert.module.scss +229 -0
- package/dist/components/alert/alert.module.scss.js +29 -0
- package/dist/components/alert/alert.module.scss.js.map +1 -0
- package/dist/components/alert/icon.d.ts +9 -0
- package/dist/components/alert/icon.js +34 -0
- package/dist/components/alert/icon.js.map +1 -0
- package/dist/components/alert/index.d.ts +62 -0
- package/dist/components/alert/index.js +97 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/badge/index.d.ts +30 -0
- package/dist/components/badge/index.js +50 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/badge/style.module.scss +130 -0
- package/dist/components/badge/style.module.scss.js +22 -0
- package/dist/components/badge/style.module.scss.js.map +1 -0
- package/dist/components/badge-count/index.d.ts +16 -0
- package/dist/components/badge-count/index.js +29 -0
- package/dist/components/badge-count/index.js.map +1 -0
- package/dist/components/badge-count/style.module.scss +108 -0
- package/dist/components/badge-count/style.module.scss.js +15 -0
- package/dist/components/badge-count/style.module.scss.js.map +1 -0
- package/dist/components/breadcrumbs/index.d.ts +7 -0
- package/dist/components/breadcrumbs/index.js +38 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/breadcrumbs/item/index.d.ts +2 -0
- package/dist/components/breadcrumbs/item/index.js +32 -0
- package/dist/components/breadcrumbs/item/index.js.map +1 -0
- package/dist/components/breadcrumbs/style.module.scss +183 -0
- package/dist/components/breadcrumbs/style.module.scss.js +27 -0
- package/dist/components/breadcrumbs/style.module.scss.js.map +1 -0
- package/dist/components/breadcrumbs/truncation-button/index.d.ts +3 -0
- package/dist/components/breadcrumbs/truncation-button/index.js +25 -0
- package/dist/components/breadcrumbs/truncation-button/index.js.map +1 -0
- package/dist/components/breadcrumbs/types/index.d.ts +51 -0
- package/dist/components/button/index.d.ts +31 -0
- package/dist/components/button/index.js +119 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/button/styles.module.scss +221 -0
- package/dist/components/button/styles.module.scss.js +32 -0
- package/dist/components/button/styles.module.scss.js.map +1 -0
- package/dist/components/card/card-thumbnail/card-thumbnail.module.css +10 -0
- package/dist/components/card/card-thumbnail/card-thumbnail.module.css.js +8 -0
- package/dist/components/card/card-thumbnail/card-thumbnail.module.css.js.map +1 -0
- package/dist/components/card/card-thumbnail/index.d.ts +2 -0
- package/dist/components/card/card-thumbnail/index.js +23 -0
- package/dist/components/card/card-thumbnail/index.js.map +1 -0
- package/dist/components/card/index.d.ts +3 -0
- package/dist/components/card/index.js +157 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/card/styles.module.css +98 -0
- package/dist/components/card/styles.module.css.js +29 -0
- package/dist/components/card/styles.module.css.js.map +1 -0
- package/dist/components/card/types.d.ts +52 -0
- package/dist/components/code-block/code-block.module.scss +511 -0
- package/dist/components/code-block/code-block.module.scss.js +34 -0
- package/dist/components/code-block/code-block.module.scss.js.map +1 -0
- package/dist/components/code-block/code-lines/index.d.ts +12 -0
- package/dist/components/code-block/code-lines/index.js +59 -0
- package/dist/components/code-block/code-lines/index.js.map +1 -0
- package/dist/components/code-block/code-lines/utils/split-html-into-lines.d.ts +19 -0
- package/dist/components/code-block/code-lines/utils/split-html-into-lines.js +19 -0
- package/dist/components/code-block/code-lines/utils/split-html-into-lines.js.map +1 -0
- package/dist/components/code-block/code-lines/utils/split-jsx-into-lines.d.ts +21 -0
- package/dist/components/code-block/code-lines/utils/split-jsx-into-lines.js +31 -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 +5 -0
- package/dist/components/code-block/hidden-copy-content/index.js +13 -0
- package/dist/components/code-block/hidden-copy-content/index.js.map +1 -0
- package/dist/components/code-block/index.d.ts +55 -0
- package/dist/components/code-block/index.js +88 -0
- package/dist/components/code-block/index.js.map +1 -0
- package/dist/components/code-block/utils/parse-highlighted-lines.d.ts +2 -0
- package/dist/components/code-block/utils/parse-highlighted-lines.js +39 -0
- package/dist/components/code-block/utils/parse-highlighted-lines.js.map +1 -0
- package/dist/components/code-block/utils/process-snippet.d.ts +12 -0
- package/dist/components/code-block/utils/process-snippet.js +20 -0
- package/dist/components/code-block/utils/process-snippet.js.map +1 -0
- package/dist/components/code-block/utils/shellwords.d.ts +14 -0
- package/dist/components/code-block/utils/shellwords.js +33 -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.js +302 -0
- package/dist/components/combo-box-primitive/index.js.map +1 -0
- package/dist/components/dialog-primitive/dialog.module.scss +38 -0
- package/dist/components/dialog-primitive/dialog.module.scss.js +12 -0
- package/dist/components/dialog-primitive/dialog.module.scss.js.map +1 -0
- package/dist/components/dialog-primitive/index.d.ts +12 -0
- package/dist/components/dialog-primitive/index.js +15 -0
- package/dist/components/dialog-primitive/index.js.map +1 -0
- package/dist/components/disclosure-primitive/index.d.ts +19 -0
- package/dist/components/disclosure-primitive/index.js +57 -0
- package/dist/components/disclosure-primitive/index.js.map +1 -0
- package/dist/components/disclosure-primitive/styles.module.css +3 -0
- package/dist/components/disclosure-primitive/styles.module.css.js +7 -0
- package/dist/components/disclosure-primitive/styles.module.css.js.map +1 -0
- package/dist/components/disclosure-primitive/use-disclosure-primitive.d.ts +11 -0
- package/dist/components/disclosure-primitive/use-disclosure-primitive.js +17 -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.js +22 -0
- package/dist/components/dismiss-button/index.js.map +1 -0
- package/dist/components/dismiss-button/styles.module.scss +31 -0
- package/dist/components/dismiss-button/styles.module.scss.js +7 -0
- package/dist/components/dismiss-button/styles.module.scss.js.map +1 -0
- package/dist/components/dropdown/index.d.ts +72 -0
- package/dist/components/dropdown/index.js +79 -0
- package/dist/components/dropdown/index.js.map +1 -0
- package/dist/components/dropdown/list-item/custom.d.ts +10 -0
- package/dist/components/dropdown/list-item/custom.js +9 -0
- package/dist/components/dropdown/list-item/custom.js.map +1 -0
- package/dist/components/dropdown/list-item/index.d.ts +19 -0
- package/dist/components/dropdown/list-item/index.js +14 -0
- package/dist/components/dropdown/list-item/index.js.map +1 -0
- package/dist/components/dropdown/list-item/interactive.d.ts +29 -0
- package/dist/components/dropdown/list-item/interactive.js +49 -0
- package/dist/components/dropdown/list-item/interactive.js.map +1 -0
- package/dist/components/dropdown/list-item/separator.d.ts +8 -0
- package/dist/components/dropdown/list-item/separator.js +17 -0
- package/dist/components/dropdown/list-item/separator.js.map +1 -0
- package/dist/components/dropdown/list-item/styles.module.css +222 -0
- package/dist/components/dropdown/list-item/styles.module.css.js +26 -0
- package/dist/components/dropdown/list-item/styles.module.css.js.map +1 -0
- package/dist/components/dropdown/list-item/title.d.ts +10 -0
- package/dist/components/dropdown/list-item/title.js +9 -0
- package/dist/components/dropdown/list-item/title.js.map +1 -0
- package/dist/components/dropdown/styles.module.css +74 -0
- package/dist/components/dropdown/styles.module.css.js +24 -0
- package/dist/components/dropdown/styles.module.css.js.map +1 -0
- package/dist/components/dropdown/toggle-button/index.d.ts +30 -0
- package/dist/components/dropdown/toggle-button/index.js +54 -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/dropdown/toggle-button/styles.module.scss.js +14 -0
- package/dist/components/dropdown/toggle-button/styles.module.scss.js.map +1 -0
- package/dist/components/flight-icon/flight-icon.module.css +31 -0
- package/dist/components/flight-icon/flight-icon.module.css.js +12 -0
- package/dist/components/flight-icon/flight-icon.module.css.js.map +1 -0
- package/dist/components/flight-icon/index.d.ts +44 -0
- package/dist/components/flight-icon/index.js +58 -0
- package/dist/components/flight-icon/index.js.map +1 -0
- package/dist/components/form/checkbox/form-checkbox.module.css +88 -0
- package/dist/components/form/checkbox/form-checkbox.module.css.js +8 -0
- package/dist/components/form/checkbox/form-checkbox.module.css.js.map +1 -0
- package/dist/components/form/checkbox/index.d.ts +45 -0
- package/dist/components/form/checkbox/index.js +109 -0
- package/dist/components/form/checkbox/index.js.map +1 -0
- package/dist/components/form/error/form-error.module.css +23 -0
- package/dist/components/form/error/form-error.module.css.js +14 -0
- package/dist/components/form/error/form-error.module.css.js.map +1 -0
- package/dist/components/form/error/index.d.ts +16 -0
- package/dist/components/form/error/index.js +22 -0
- package/dist/components/form/error/index.js.map +1 -0
- package/dist/components/form/field/form-field.module.css +79 -0
- package/dist/components/form/field/form-field.module.css.js +17 -0
- package/dist/components/form/field/form-field.module.css.js.map +1 -0
- package/dist/components/form/field/index.d.ts +19 -0
- package/dist/components/form/field/index.js +46 -0
- package/dist/components/form/field/index.js.map +1 -0
- package/dist/components/form/fieldset/form-fieldset.module.css +48 -0
- package/dist/components/form/fieldset/form-fieldset.module.css.js +19 -0
- package/dist/components/form/fieldset/form-fieldset.module.css.js.map +1 -0
- package/dist/components/form/fieldset/index.d.ts +19 -0
- package/dist/components/form/fieldset/index.js +65 -0
- package/dist/components/form/fieldset/index.js.map +1 -0
- package/dist/components/form/file-input/form-file-input.module.scss +81 -0
- package/dist/components/form/file-input/form-file-input.module.scss.js +7 -0
- package/dist/components/form/file-input/form-file-input.module.scss.js.map +1 -0
- package/dist/components/form/file-input/index.d.ts +27 -0
- package/dist/components/form/file-input/index.js +68 -0
- package/dist/components/form/file-input/index.js.map +1 -0
- package/dist/components/form/helper-text/form-helper-text.module.css +10 -0
- package/dist/components/form/helper-text/form-helper-text.module.css.js +7 -0
- package/dist/components/form/helper-text/form-helper-text.module.css.js.map +1 -0
- package/dist/components/form/helper-text/index.d.ts +11 -0
- package/dist/components/form/helper-text/index.js +22 -0
- package/dist/components/form/helper-text/index.js.map +1 -0
- package/dist/components/form/indicator/form-indicator.module.css +10 -0
- package/dist/components/form/indicator/form-indicator.module.css.js +8 -0
- package/dist/components/form/indicator/form-indicator.module.css.js.map +1 -0
- package/dist/components/form/indicator/index.d.ts +9 -0
- package/dist/components/form/indicator/index.js +22 -0
- package/dist/components/form/indicator/index.js.map +1 -0
- package/dist/components/form/label/form-label.module.css +15 -0
- package/dist/components/form/label/form-label.module.css.js +10 -0
- package/dist/components/form/label/form-label.module.css.js.map +1 -0
- package/dist/components/form/label/index.d.ts +14 -0
- package/dist/components/form/label/index.js +33 -0
- package/dist/components/form/label/index.js.map +1 -0
- package/dist/components/form/legend/form-legend.module.css +17 -0
- package/dist/components/form/legend/form-legend.module.css.js +10 -0
- package/dist/components/form/legend/form-legend.module.css.js.map +1 -0
- package/dist/components/form/legend/index.d.ts +12 -0
- package/dist/components/form/legend/index.js +19 -0
- package/dist/components/form/legend/index.js.map +1 -0
- package/dist/components/form/radio/form-radio.module.scss +74 -0
- package/dist/components/form/radio/form-radio.module.scss.js +8 -0
- package/dist/components/form/radio/form-radio.module.scss.js.map +1 -0
- package/dist/components/form/radio/index.d.ts +44 -0
- package/dist/components/form/radio/index.js +100 -0
- package/dist/components/form/radio/index.js.map +1 -0
- package/dist/components/form/radio-card/description.d.ts +3 -0
- package/dist/components/form/radio-card/description.js +10 -0
- package/dist/components/form/radio-card/description.js.map +1 -0
- package/dist/components/form/radio-card/form-radio-card.module.css +153 -0
- package/dist/components/form/radio-card/form-radio-card.module.css.js +30 -0
- package/dist/components/form/radio-card/form-radio-card.module.css.js.map +1 -0
- package/dist/components/form/radio-card/group.d.ts +11 -0
- package/dist/components/form/radio-card/group.js +31 -0
- package/dist/components/form/radio-card/group.js.map +1 -0
- package/dist/components/form/radio-card/index.d.ts +48 -0
- package/dist/components/form/radio-card/index.js +67 -0
- package/dist/components/form/radio-card/index.js.map +1 -0
- package/dist/components/form/radio-card/label.d.ts +3 -0
- package/dist/components/form/radio-card/label.js +10 -0
- package/dist/components/form/radio-card/label.js.map +1 -0
- package/dist/components/form/select/form-select.module.css +89 -0
- package/dist/components/form/select/form-select.module.css.js +14 -0
- package/dist/components/form/select/form-select.module.css.js.map +1 -0
- package/dist/components/form/select/index.d.ts +21 -0
- package/dist/components/form/select/index.js +79 -0
- package/dist/components/form/select/index.js.map +1 -0
- package/dist/components/form/super-select/form-super-select.module.css +155 -0
- package/dist/components/form/super-select/form-super-select.module.css.js +22 -0
- package/dist/components/form/super-select/form-super-select.module.css.js.map +1 -0
- package/dist/components/form/super-select/index.d.ts +55 -0
- package/dist/components/form/super-select/index.js +170 -0
- package/dist/components/form/super-select/index.js.map +1 -0
- package/dist/components/form/text-input/index.d.ts +98 -0
- package/dist/components/form/text-input/index.js +91 -0
- package/dist/components/form/text-input/index.js.map +1 -0
- package/dist/components/form/text-input/styles.module.css +158 -0
- package/dist/components/form/text-input/styles.module.css.js +15 -0
- package/dist/components/form/text-input/styles.module.css.js.map +1 -0
- package/dist/components/form/textarea/form-textarea.module.css +88 -0
- package/dist/components/form/textarea/form-textarea.module.css.js +14 -0
- package/dist/components/form/textarea/form-textarea.module.css.js.map +1 -0
- package/dist/components/form/textarea/index.d.ts +19 -0
- package/dist/components/form/textarea/index.js +74 -0
- package/dist/components/form/textarea/index.js.map +1 -0
- package/dist/components/form/toggle/form-toggle.module.scss +164 -0
- package/dist/components/form/toggle/form-toggle.module.scss.js +12 -0
- package/dist/components/form/toggle/form-toggle.module.scss.js.map +1 -0
- package/dist/components/form/toggle/index.d.ts +78 -0
- package/dist/components/form/toggle/index.js +102 -0
- package/dist/components/form/toggle/index.js.map +1 -0
- package/dist/components/hds/wrappers/tooltip.d.ts +13 -0
- package/dist/components/hds/wrappers/tooltip.js +51 -0
- package/dist/components/hds/wrappers/tooltip.js.map +1 -0
- package/dist/components/icon-tile/index.d.ts +21 -0
- package/dist/components/icon-tile/index.js +50 -0
- package/dist/components/icon-tile/index.js.map +1 -0
- package/dist/components/icon-tile/style.module.scss +136 -0
- package/dist/components/icon-tile/style.module.scss.js +29 -0
- package/dist/components/icon-tile/style.module.scss.js.map +1 -0
- package/dist/components/index.d.ts +60 -0
- package/dist/components/index.js +119 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/inline-link/index.d.ts +40 -0
- package/dist/components/inline-link/index.js +33 -0
- package/dist/components/inline-link/index.js.map +1 -0
- package/dist/components/inline-link/inline-link.module.css +49 -0
- package/dist/components/inline-link/inline-link.module.css.js +11 -0
- package/dist/components/inline-link/inline-link.module.css.js.map +1 -0
- package/dist/components/interactive/index.d.ts +26 -0
- package/dist/components/interactive/index.js +59 -0
- package/dist/components/interactive/index.js.map +1 -0
- package/dist/components/legacy-button/index.d.ts +5 -0
- package/dist/components/legacy-button/index.js +65 -0
- package/dist/components/legacy-button/index.js.map +1 -0
- package/dist/components/legacy-button/types.d.ts +37 -0
- package/dist/components/legacy-button/utils.d.ts +9 -0
- package/dist/components/legacy-button/utils.js +39 -0
- package/dist/components/legacy-button/utils.js.map +1 -0
- package/dist/components/menu-primitive/index.d.ts +14 -0
- package/dist/components/menu-primitive/index.js +68 -0
- package/dist/components/menu-primitive/index.js.map +1 -0
- package/dist/components/menu-primitive/styles.module.css +16 -0
- package/dist/components/menu-primitive/styles.module.css.js +12 -0
- package/dist/components/menu-primitive/styles.module.css.js.map +1 -0
- package/dist/components/menu-primitive/use-menu-primitive.d.ts +9 -0
- package/dist/components/menu-primitive/use-menu-primitive.js +17 -0
- package/dist/components/menu-primitive/use-menu-primitive.js.map +1 -0
- package/dist/components/modal/index.d.ts +13 -0
- package/dist/components/modal/index.js +61 -0
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/modal/modal.module.css +22 -0
- package/dist/components/modal/modal.module.css.js +8 -0
- package/dist/components/modal/modal.module.css.js.map +1 -0
- package/dist/components/modal/use-modal.d.ts +8 -0
- package/dist/components/modal/use-modal.js +17 -0
- package/dist/components/modal/use-modal.js.map +1 -0
- package/dist/components/separator/index.d.ts +10 -0
- package/dist/components/separator/index.js +15 -0
- package/dist/components/separator/index.js.map +1 -0
- package/dist/components/separator/separator.module.css +15 -0
- package/dist/components/separator/separator.module.css.js +10 -0
- package/dist/components/separator/separator.module.css.js.map +1 -0
- package/dist/components/standalone-link/index.d.ts +23 -0
- package/dist/components/standalone-link/index.js +54 -0
- package/dist/components/standalone-link/index.js.map +1 -0
- package/dist/components/standalone-link/styles.module.scss +166 -0
- package/dist/components/standalone-link/styles.module.scss.js +17 -0
- package/dist/components/standalone-link/styles.module.scss.js.map +1 -0
- package/dist/components/table/index.d.ts +58 -0
- package/dist/components/table/index.js +52 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table.module.scss +192 -0
- package/dist/components/table/table.module.scss.js +33 -0
- package/dist/components/table/table.module.scss.js.map +1 -0
- package/dist/components/table/td.d.ts +17 -0
- package/dist/components/table/td.js +28 -0
- package/dist/components/table/td.js.map +1 -0
- package/dist/components/table/th-button-tooltip.d.ts +6 -0
- package/dist/components/table/th-button-tooltip.js +24 -0
- package/dist/components/table/th-button-tooltip.js.map +1 -0
- package/dist/components/table/th.d.ts +34 -0
- package/dist/components/table/th.js +43 -0
- package/dist/components/table/th.js.map +1 -0
- package/dist/components/table/tr.d.ts +12 -0
- package/dist/components/table/tr.js +9 -0
- package/dist/components/table/tr.js.map +1 -0
- package/dist/components/table/utils.d.ts +16 -0
- package/dist/components/table/utils.js +28 -0
- package/dist/components/table/utils.js.map +1 -0
- package/dist/components/tabs/index.d.ts +21 -0
- package/dist/components/tabs/index.js +117 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tab-panel.d.ts +5 -0
- package/dist/components/tabs/tab-panel.js +35 -0
- package/dist/components/tabs/tab-panel.js.map +1 -0
- package/dist/components/tabs/tab.d.ts +24 -0
- package/dist/components/tabs/tab.js +70 -0
- package/dist/components/tabs/tab.js.map +1 -0
- package/dist/components/tabs/tabs.module.scss +163 -0
- package/dist/components/tabs/tabs.module.scss.js +22 -0
- package/dist/components/tabs/tabs.module.scss.js.map +1 -0
- package/dist/components/tabs/use-tabs-context.d.ts +15 -0
- package/dist/components/tabs/use-tabs-context.js +16 -0
- package/dist/components/tabs/use-tabs-context.js.map +1 -0
- package/dist/components/text/index.d.ts +44 -0
- package/dist/components/text/index.js +112 -0
- package/dist/components/text/index.js.map +1 -0
- package/dist/components/text/style.module.scss +11 -0
- package/dist/components/text/style.module.scss.js +9 -0
- package/dist/components/text/style.module.scss.js.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.d.ts +8 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js +62 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css +76 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css.js +20 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css.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.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 +10 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/legend/index.js +13 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/legend/index.js.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/legend/style.module.css +29 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/legend/style.module.css.js +14 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/legend/style.module.css.js.map +1 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/style.module.css +76 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/style.module.css.js +28 -0
- package/dist/components/visualizations/bar-chart/horizontal-chart/style.module.css.js.map +1 -0
- package/dist/components/visualizations/bar-chart/index.d.ts +13 -0
- package/dist/components/visualizations/bar-chart/index.js +37 -0
- package/dist/components/visualizations/bar-chart/index.js.map +1 -0
- package/dist/components/visualizations/bar-chart/style.module.css +39 -0
- package/dist/components/visualizations/bar-chart/style.module.css.js +12 -0
- package/dist/components/visualizations/bar-chart/style.module.css.js.map +1 -0
- package/dist/components/visualizations/donut-chart/components/arc-tooltip/index.d.ts +3 -0
- package/dist/components/visualizations/donut-chart/components/arc-tooltip/index.js +14 -0
- package/dist/components/visualizations/donut-chart/components/arc-tooltip/index.js.map +1 -0
- package/dist/components/visualizations/donut-chart/components/arc-tooltip/styles.module.css +14 -0
- package/dist/components/visualizations/donut-chart/components/arc-tooltip/styles.module.css.js +10 -0
- package/dist/components/visualizations/donut-chart/components/arc-tooltip/styles.module.css.js.map +1 -0
- package/dist/components/visualizations/donut-chart/components/external-arc-label/index.d.ts +3 -0
- package/dist/components/visualizations/donut-chart/components/external-arc-label/index.js +58 -0
- package/dist/components/visualizations/donut-chart/components/external-arc-label/index.js.map +1 -0
- package/dist/components/visualizations/donut-chart/components/external-arc-label/styles.module.css +32 -0
- package/dist/components/visualizations/donut-chart/components/external-arc-label/styles.module.css.js +16 -0
- package/dist/components/visualizations/donut-chart/components/external-arc-label/styles.module.css.js.map +1 -0
- package/dist/components/visualizations/donut-chart/components/index.d.ts +3 -0
- package/dist/components/visualizations/donut-chart/components/internal-arc-label/index.d.ts +3 -0
- package/dist/components/visualizations/donut-chart/components/internal-arc-label/index.js +42 -0
- package/dist/components/visualizations/donut-chart/components/internal-arc-label/index.js.map +1 -0
- package/dist/components/visualizations/donut-chart/components/internal-arc-label/styles.module.css +20 -0
- package/dist/components/visualizations/donut-chart/components/internal-arc-label/styles.module.css.js +14 -0
- package/dist/components/visualizations/donut-chart/components/internal-arc-label/styles.module.css.js.map +1 -0
- package/dist/components/visualizations/donut-chart/index.d.ts +10 -0
- package/dist/components/visualizations/donut-chart/index.js +90 -0
- package/dist/components/visualizations/donut-chart/index.js.map +1 -0
- package/dist/components/visualizations/donut-chart/styles.module.css +73 -0
- package/dist/components/visualizations/donut-chart/styles.module.css.js +20 -0
- package/dist/components/visualizations/donut-chart/styles.module.css.js.map +1 -0
- package/dist/components/visualizations/donut-chart/types.d.ts +16 -0
- package/dist/hooks/use-media-query/index.js +16 -0
- package/dist/hooks/use-media-query/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +158 -0
- package/dist/index.js.map +1 -0
- package/dist/patterns/card/index.d.ts +5 -0
- package/dist/patterns/card/newsroom-card/index.d.ts +15 -0
- package/dist/patterns/card/newsroom-card/index.js +26 -0
- package/dist/patterns/card/newsroom-card/index.js.map +1 -0
- package/dist/patterns/card/newsroom-card/style.module.css +12 -0
- package/dist/patterns/card/newsroom-card/style.module.css.js +8 -0
- package/dist/patterns/card/newsroom-card/style.module.css.js.map +1 -0
- package/dist/patterns/card/partner-card/index.d.ts +18 -0
- package/dist/patterns/card/partner-card/index.js +42 -0
- package/dist/patterns/card/partner-card/index.js.map +1 -0
- package/dist/patterns/card/partner-card/style.module.css +24 -0
- package/dist/patterns/card/partner-card/style.module.css.js +12 -0
- package/dist/patterns/card/partner-card/style.module.css.js.map +1 -0
- package/dist/patterns/card/person-card/index.d.ts +15 -0
- package/dist/patterns/card/person-card/index.js +52 -0
- package/dist/patterns/card/person-card/index.js.map +1 -0
- package/dist/patterns/card/person-card/style.module.css +28 -0
- package/dist/patterns/card/person-card/style.module.css.js +12 -0
- package/dist/patterns/card/person-card/style.module.css.js.map +1 -0
- package/dist/patterns/card/primitives.d.ts +37 -0
- package/dist/patterns/card/primitives.js +77 -0
- package/dist/patterns/card/primitives.js.map +1 -0
- package/dist/patterns/card/promo-card/index.d.ts +18 -0
- package/dist/patterns/card/promo-card/index.js +36 -0
- package/dist/patterns/card/promo-card/index.js.map +1 -0
- package/dist/patterns/card/resource-card/index.d.ts +16 -0
- package/dist/patterns/card/resource-card/index.js +26 -0
- package/dist/patterns/card/resource-card/index.js.map +1 -0
- package/dist/patterns/card/style.module.css +121 -0
- package/dist/patterns/card/style.module.css.js +30 -0
- package/dist/patterns/card/style.module.css.js.map +1 -0
- package/dist/patterns/card/thumbnails/index.d.ts +13 -0
- package/dist/patterns/card/thumbnails/index.js +25 -0
- package/dist/patterns/card/thumbnails/index.js.map +1 -0
- package/dist/patterns/card/types.d.ts +41 -0
- package/dist/patterns/card/unified-card/index.d.ts +10 -0
- package/dist/patterns/card/unified-card/index.js +37 -0
- package/dist/patterns/card/unified-card/index.js.map +1 -0
- package/dist/patterns/copy-button/clipboard.d.ts +16 -0
- package/dist/patterns/copy-button/clipboard.js +78 -0
- package/dist/patterns/copy-button/clipboard.js.map +1 -0
- package/dist/patterns/copy-button/index.d.ts +19 -0
- package/dist/patterns/copy-button/index.js +57 -0
- package/dist/patterns/copy-button/index.js.map +1 -0
- package/dist/patterns/copy-button/style.module.css +23 -0
- package/dist/patterns/copy-button/style.module.css.js +13 -0
- package/dist/patterns/copy-button/style.module.css.js.map +1 -0
- package/dist/patterns/index.d.ts +15 -0
- package/dist/patterns/index.js +35 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/layout/index.d.ts +69 -0
- package/dist/patterns/layout/index.js +47 -0
- package/dist/patterns/layout/index.js.map +1 -0
- package/dist/patterns/layout/layout.module.css +72 -0
- package/dist/patterns/layout/layout.module.css.js +20 -0
- package/dist/patterns/layout/layout.module.css.js.map +1 -0
- package/dist/patterns/product-badge/index.d.ts +11 -0
- package/dist/patterns/product-badge/index.js +22 -0
- package/dist/patterns/product-badge/index.js.map +1 -0
- package/dist/patterns/product-badge/style.module.css +3 -0
- package/dist/patterns/product-badge/style.module.css.js +8 -0
- package/dist/patterns/product-badge/style.module.css.js.map +1 -0
- package/dist/patterns/product-logo/index.d.ts +48 -0
- package/dist/patterns/product-logo/index.js +130 -0
- package/dist/patterns/product-logo/index.js.map +1 -0
- package/dist/patterns/product-logo/product-logo.module.css +24 -0
- package/dist/patterns/product-logo/product-logo.module.css.js +13 -0
- package/dist/patterns/product-logo/product-logo.module.css.js.map +1 -0
- package/dist/patterns/related-content/index.d.ts +6 -0
- package/dist/patterns/related-content/index.js +65 -0
- package/dist/patterns/related-content/index.js.map +1 -0
- package/dist/patterns/related-content/style.module.css +74 -0
- package/dist/patterns/related-content/style.module.css.js +22 -0
- package/dist/patterns/related-content/style.module.css.js.map +1 -0
- package/dist/patterns/related-content/types.d.ts +14 -0
- package/dist/style.css +1 -0
- package/dist/styles/mixins/button.scss +284 -0
- package/dist/styles/mixins/focus-ring.scss +75 -0
- package/dist/utils/get-contrast-yiq.d.ts +20 -0
- package/dist/utils/get-contrast-yiq.js +13 -0
- package/dist/utils/get-contrast-yiq.js.map +1 -0
- package/dist/utils/hooks/use-screen-size.d.ts +5 -0
- package/dist/utils/hooks/use-screen-size.js +10 -0
- package/dist/utils/hooks/use-screen-size.js.map +1 -0
- package/dist/utils/i18n/index.d.ts +1 -0
- package/dist/utils/i18n/index.js +41 -0
- package/dist/utils/i18n/index.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/make-normalizer/index.d.ts +30 -0
- package/dist/utils/make-normalizer/index.js +34 -0
- package/dist/utils/make-normalizer/index.js.map +1 -0
- package/dist/utils/mds-context/index.d.ts +59 -0
- package/dist/utils/mds-context/index.js +85 -0
- package/dist/utils/mds-context/index.js.map +1 -0
- package/package.json +113 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsxs as c, jsx as p } from "react/jsx-runtime";
|
|
2
|
+
import f from "classnames";
|
|
3
|
+
import { Interactive as I } from "../interactive/index.js";
|
|
4
|
+
import i from "./inline-link.module.css.js";
|
|
5
|
+
import { FlightIcon as d } from "../flight-icon/index.js";
|
|
6
|
+
const g = ({
|
|
7
|
+
text: m,
|
|
8
|
+
color: o = "primary",
|
|
9
|
+
icon: r,
|
|
10
|
+
iconPosition: e = "trailing",
|
|
11
|
+
className: s,
|
|
12
|
+
isHrefExternal: t,
|
|
13
|
+
...a
|
|
14
|
+
}) => {
|
|
15
|
+
const l = r || !t ? r : "external-link", n = l && /* @__PURE__ */ p(d, { name: l, size: 16, className: i.icon });
|
|
16
|
+
return /* @__PURE__ */ c(
|
|
17
|
+
I,
|
|
18
|
+
{
|
|
19
|
+
className: f(i["link-inline"], i[`color-${o}`], s),
|
|
20
|
+
...a,
|
|
21
|
+
children: [
|
|
22
|
+
n && e === "leading" && n,
|
|
23
|
+
m,
|
|
24
|
+
n && e === "trailing" && n
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
};
|
|
29
|
+
g.displayName = "InlineLink";
|
|
30
|
+
export {
|
|
31
|
+
g as InlineLink
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/inline-link/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { Interactive } from '../interactive'\nimport s from './inline-link.module.css'\nimport type { FlightIconName } from '../flight-icon'\nimport { FlightIcon } from '../flight-icon'\n\ninterface InlineLinkProps {\n\t/**\n\t * There are two available colors for an `<InlineLink />`: primary and secondary.\n\t */\n\tcolor?: 'primary' | 'secondary'\n\t/**\n\t * Use this parameter to show an icon.\n\t */\n\ticon?: FlightIconName\n\t/**\n\t * Positions the icon before or after the text.\n\t */\n\ticonPosition?: 'leading' | 'trailing'\n\t/**\n\t * URL parameter that’s passed down to the `<a>` element.\n\t */\n\thref: string\n\t/**\n\t * Controls if the <a> link is external. For security reasons, we add the target=\"_blank\" and rel=\"noopener noreferrer\" attributes to it by default.\n\t * default: `false`\n\t */\n\tisHrefExternal?: boolean\n\t/**\n\t * The content of the <a> HTML element.\n\t */\n\ttext: string\n\t/**\n\t * Optional class name to add to the component.\n\t */\n\tclassName?: string\n\tprefetch?: boolean\n\tlocale?: string\n}\n\nconst InlineLink = ({\n\ttext,\n\tcolor = 'primary',\n\ticon,\n\ticonPosition = 'trailing',\n\tclassName,\n\tisHrefExternal,\n\t...props\n}: InlineLinkProps) => {\n\tconst resolvedIcon = icon || !isHrefExternal ? icon : 'external-link'\n\tconst iconElement = resolvedIcon && (\n\t\t<FlightIcon name={resolvedIcon} size={16} className={s.icon} />\n\t)\n\n\treturn (\n\t\t<Interactive\n\t\t\tclassName={classNames(s['link-inline'], s[`color-${color}`], className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{iconElement && iconPosition === 'leading' && iconElement}\n\t\t\t{text}\n\t\t\t{iconElement && iconPosition === 'trailing' && iconElement}\n\t\t</Interactive>\n\t)\n}\n\nInlineLink.displayName = 'InlineLink'\n\nexport type { InlineLinkProps }\nexport { InlineLink }\n"],"names":["InlineLink","text","color","icon","iconPosition","className","isHrefExternal","props","resolvedIcon","iconElement","jsx","FlightIcon","s","jsxs","Interactive","classNames"],"mappings":";;;;;AAwCA,MAAMA,IAAa,CAAC;AAAA,EACnB,MAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,MAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,GAAGC;AACJ,MAAuB;AACtB,QAAMC,IAAeL,KAAQ,CAACG,IAAiBH,IAAO,iBAChDM,IAAcD,KACnB,gBAAAE,EAACC,GAAA,EAAW,MAAMH,GAAc,MAAM,IAAI,WAAWI,EAAE,KAAA,CAAM;AAG9D,SACC,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,WAAWC,EAAWH,EAAE,aAAa,GAAGA,EAAE,SAASV,CAAK,EAAE,GAAGG,CAAS;AAAA,MACrE,GAAGE;AAAA,MAEH,UAAA;AAAA,QAAAE,KAAeL,MAAiB,aAAaK;AAAA,QAC7CR;AAAA,QACAQ,KAAeL,MAAiB,cAAcK;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlD;AAEAT,EAAW,cAAc;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
.link-inline {
|
|
2
|
+
text-decoration: underline;
|
|
3
|
+
border-radius: 2px; /* used for the focus-ring border-radius */
|
|
4
|
+
|
|
5
|
+
&:focus,
|
|
6
|
+
&:focus-visible {
|
|
7
|
+
text-decoration: none;
|
|
8
|
+
outline: 2px solid var(--mds-color-focus-action-internal);
|
|
9
|
+
outline-offset: 1px;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.color-primary {
|
|
14
|
+
color: var(--mds-color-foreground-action);
|
|
15
|
+
|
|
16
|
+
&:hover {
|
|
17
|
+
color: var(--mds-color-foreground-action-hover);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&:active {
|
|
21
|
+
color: var(--mds-color-foreground-action-active);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.color-secondary {
|
|
26
|
+
color: var(--mds-color-foreground-strong);
|
|
27
|
+
|
|
28
|
+
&:hover {
|
|
29
|
+
color: var(--mds-color-foreground-primary);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&:active {
|
|
33
|
+
color: var(--mds-color-foreground-faint);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.icon {
|
|
38
|
+
width: 1em; /* uses the current font-size for the width of the icon */
|
|
39
|
+
height: 1em; /* uses the current font-size for the height of the icon */
|
|
40
|
+
vertical-align: text-bottom;
|
|
41
|
+
|
|
42
|
+
&:first-child {
|
|
43
|
+
margin-right: 0.25em;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&:last-child {
|
|
47
|
+
margin-left: 0.25em;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const o = "icon__CPQmv", n = {
|
|
2
|
+
"link-inline": "link-inline__Wl8cA",
|
|
3
|
+
"color-primary": "color-primary__XlogH",
|
|
4
|
+
"color-secondary": "color-secondary__sf-Wg",
|
|
5
|
+
icon: o
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
n as default,
|
|
9
|
+
o as icon
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=inline-link.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-link.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ForwardRefExoticComponent, ButtonHTMLAttributes, MouseEventHandler } from 'react';
|
|
2
|
+
interface InteractiveProps extends React.HTMLAttributes<HTMLElement> {
|
|
3
|
+
isHrefExternal?: boolean;
|
|
4
|
+
href?: string;
|
|
5
|
+
onClick?: MouseEventHandler;
|
|
6
|
+
type?: ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
7
|
+
prefetch?: boolean;
|
|
8
|
+
locale?: string;
|
|
9
|
+
}
|
|
10
|
+
declare const Interactive: ForwardRefExoticComponent<InteractiveProps & import('react').RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
11
|
+
/**
|
|
12
|
+
* Smaller, local version of our getLocalizedLinkProps util,
|
|
13
|
+
* cloned here to work around a cyclic dependency issue
|
|
14
|
+
* with the main @web/utils package.
|
|
15
|
+
*
|
|
16
|
+
* @param url An internal URL path
|
|
17
|
+
* @param locale A supported locale
|
|
18
|
+
* @returns A prefixed URL if locale is defined, otherwise the URL without prefix
|
|
19
|
+
*/
|
|
20
|
+
export declare const getLocalizedLinkProps: (href: string, locale?: string, isHrefExternal?: boolean) => {
|
|
21
|
+
href: string;
|
|
22
|
+
hrefLang: string | undefined;
|
|
23
|
+
isHrefExternal?: boolean | undefined;
|
|
24
|
+
};
|
|
25
|
+
export type { InteractiveProps };
|
|
26
|
+
export { Interactive };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as f } from "react";
|
|
4
|
+
import { useMDSLink as l } from "../../utils/mds-context/index.js";
|
|
5
|
+
const p = f((r, e) => {
|
|
6
|
+
const t = l(), {
|
|
7
|
+
href: i,
|
|
8
|
+
className: o,
|
|
9
|
+
isHrefExternal: n,
|
|
10
|
+
onClick: s,
|
|
11
|
+
children: a,
|
|
12
|
+
locale: d,
|
|
13
|
+
...u
|
|
14
|
+
} = r;
|
|
15
|
+
return i ? /* @__PURE__ */ c(
|
|
16
|
+
t,
|
|
17
|
+
{
|
|
18
|
+
className: o,
|
|
19
|
+
target: n ? "_blank" : void 0,
|
|
20
|
+
rel: n ? "noopener noreferrer" : void 0,
|
|
21
|
+
onClick: s,
|
|
22
|
+
...g(i, d, n),
|
|
23
|
+
...u,
|
|
24
|
+
ref: e,
|
|
25
|
+
children: a
|
|
26
|
+
}
|
|
27
|
+
) : /* @__PURE__ */ c(
|
|
28
|
+
"button",
|
|
29
|
+
{
|
|
30
|
+
type: "button",
|
|
31
|
+
className: o,
|
|
32
|
+
onClick: s,
|
|
33
|
+
...u,
|
|
34
|
+
ref: e,
|
|
35
|
+
children: a
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
});
|
|
39
|
+
p.displayName = "Interactive";
|
|
40
|
+
const g = (r, e, t) => t ? {
|
|
41
|
+
href: r,
|
|
42
|
+
hrefLang: void 0
|
|
43
|
+
} : ["en", "de", "es", "fr", "ja", "ko", "pt", "id"].includes(
|
|
44
|
+
r.substring(1, 3)
|
|
45
|
+
) ? {
|
|
46
|
+
href: r,
|
|
47
|
+
hrefLang: r.substring(1, 3)
|
|
48
|
+
} : r.startsWith("/") && e ? {
|
|
49
|
+
href: `/${e}${r}`,
|
|
50
|
+
hrefLang: e
|
|
51
|
+
} : {
|
|
52
|
+
href: r,
|
|
53
|
+
hrefLang: void 0
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
p as Interactive,
|
|
57
|
+
g as getLocalizedLinkProps
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/interactive/index.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef, type ForwardRefExoticComponent } from 'react'\nimport type { ButtonHTMLAttributes, MouseEventHandler } from 'react'\nimport { useMDSLink } from '../../utils/mds-context'\n\ninterface InteractiveProps extends React.HTMLAttributes<HTMLElement> {\n\tisHrefExternal?: boolean\n\thref?: string\n\tonClick?: MouseEventHandler\n\ttype?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n\tprefetch?: boolean\n\tlocale?: string\n}\n\nconst Interactive = forwardRef<\n\tHTMLAnchorElement | HTMLButtonElement,\n\tInteractiveProps\n>((props, ref) => {\n\tconst Link = useMDSLink()\n\tconst {\n\t\thref,\n\t\tclassName,\n\t\tisHrefExternal,\n\t\tonClick,\n\t\tchildren,\n\t\tlocale,\n\t\t...rest\n\t} = props\n\n\t// TODO: trigger link on space key up\n\tif (href) {\n\t\treturn (\n\t\t\t<Link\n\t\t\t\tclassName={className}\n\t\t\t\ttarget={isHrefExternal ? '_blank' : undefined}\n\t\t\t\trel={isHrefExternal ? 'noopener noreferrer' : undefined}\n\t\t\t\tonClick={onClick}\n\t\t\t\t{...getLocalizedLinkProps(href, locale, isHrefExternal)}\n\t\t\t\t{...rest}\n\t\t\t\tref={ref as ForwardRefExoticComponent<HTMLAnchorElement>}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Link>\n\t\t)\n\t} else {\n\t\treturn (\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName={className}\n\t\t\t\tonClick={onClick}\n\t\t\t\t{...rest}\n\t\t\t\tref={ref as ForwardRefExoticComponent<HTMLButtonElement>}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</button>\n\t\t)\n\t}\n})\nInteractive.displayName = 'Interactive'\n\n/**\n * Smaller, local version of our getLocalizedLinkProps util,\n * cloned here to work around a cyclic dependency issue\n * with the main @web/utils package.\n *\n * @param url An internal URL path\n * @param locale A supported locale\n * @returns A prefixed URL if locale is defined, otherwise the URL without prefix\n */\nexport const getLocalizedLinkProps = (\n\thref: string,\n\tlocale?: string,\n\tisHrefExternal?: boolean\n): {\n\thref: string\n\threfLang: string | undefined\n\tisHrefExternal?: boolean\n} => {\n\tif (isHrefExternal) {\n\t\treturn {\n\t\t\thref: href,\n\t\t\threfLang: undefined,\n\t\t}\n\t}\n\n\tif (\n\t\t['en', 'de', 'es', 'fr', 'ja', 'ko', 'pt', 'id'].includes(\n\t\t\thref.substring(1, 3)\n\t\t)\n\t) {\n\t\t// Don't localize if the href is already localized\n\t\treturn {\n\t\t\thref: href,\n\t\t\threfLang: href.substring(1, 3),\n\t\t}\n\t}\n\n\tif (href.startsWith('/') && locale) {\n\t\treturn {\n\t\t\thref: `/${locale}${href}`,\n\t\t\threfLang: locale,\n\t\t}\n\t}\n\n\treturn {\n\t\thref: href,\n\t\threfLang: undefined,\n\t}\n}\n\nexport type { InteractiveProps }\nexport { Interactive }\n"],"names":["Interactive","forwardRef","props","ref","Link","useMDSLink","href","className","isHrefExternal","onClick","children","locale","rest","jsx","getLocalizedLinkProps"],"mappings":";;;;AAmBC,MAAAA,IAAaC,EAAW,CAAAC,GAAAC,MAAA;AACxB,QAAMC,IAAAC,EAAA,GACL;AAAA,IACA,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,OACGC;AAAA,EAGJ,IAAIV;AACH,aACE,gBAAAW;AAAA,IAAAT;AAAA,IAAA;AAAA,MAEA,WAAAG;AAAA,MACA,QAAKC,IAAiB,WAAA;AAAA,MACtB,KAAAA,IAAA,wBAAA;AAAA,MACC,SAAAC;AAAA,MACA,GAAGK,EAAAR,GAAAK,GAAAH,CAAA;AAAA,MACJ,GAAAI;AAAA,MAEC,KAAAT;AAAA,MAAA,UAAAO;AAAA,IACF;AAAA,EAEF,IAEG,gBAAAG;AAAA,IAAA;AAAA,IAAA;AAAA,MAEA,MAAA;AAAA,MACA,WAAAN;AAAA,MACC,SAAAE;AAAA,MACD,GAAAG;AAAA,MAEC,KAAAT;AAAA,MAAA,UAAAO;AAAA,IACF;AAAA,EAEF;AAED,CAAA;AAWOV,EAAM,cAAA;AASZ,MAAIc,IAAgB,CAAAR,GAAAK,GAAAH,MACnBA,IACC;AAAA,EACA,MAAAF;AAAA,EACD,UAAA;AACD,WAIO,MAAU,MAAI,MAAA,MAAA,MAAA,MAAA,IAAA,EAAA;AAAA,EACpBA,EACC,UAAA,GAAA,CAAA;AAED,IACC;AAAA,EACA,MAAAA;AAAA,EACD,UAAAA,EAAA,UAAA,GAAA,CAAA;AACD,IAGCA,EAAO,WAAA,GAAA,KAAAK,IACN;AAAA,EACA,UAAUA,CAAA,GAAAL,CAAA;AAAA,EACX,UAAAK;AACD,IAGC;AAAA,EACA,MAAAL;AAAA,EACD,UAAA;AACD;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ForwardRefExoticComponent } from 'react';
|
|
2
|
+
import { ButtonProps } from './types';
|
|
3
|
+
/** @deprecated Use <Button> from '@hashicorp/mds-react/button' instead. Will be removed in v1.0. */
|
|
4
|
+
declare const MDSButton: ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
5
|
+
export { MDSButton };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as b } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as S } from "react";
|
|
3
|
+
import { determineColor as x, LINK_TYPE_ICON_MAP as l } from "./utils.js";
|
|
4
|
+
import { StandaloneLink as _ } from "../standalone-link/index.js";
|
|
5
|
+
import { Button as D } from "../button/index.js";
|
|
6
|
+
const H = S(
|
|
7
|
+
({
|
|
8
|
+
locale: t,
|
|
9
|
+
text: a,
|
|
10
|
+
title: i,
|
|
11
|
+
url: n,
|
|
12
|
+
href: d,
|
|
13
|
+
linkType: o,
|
|
14
|
+
onClick: m,
|
|
15
|
+
external: f,
|
|
16
|
+
className: u,
|
|
17
|
+
size: c,
|
|
18
|
+
icon: s,
|
|
19
|
+
iconPosition: e = "trailing",
|
|
20
|
+
label: B,
|
|
21
|
+
disabled: E,
|
|
22
|
+
type: M,
|
|
23
|
+
theme: r,
|
|
24
|
+
...P
|
|
25
|
+
}, g) => x(r) === "tertiary" ? /* @__PURE__ */ b(
|
|
26
|
+
_,
|
|
27
|
+
{
|
|
28
|
+
text: a || i,
|
|
29
|
+
color: r?.background === "dark" ? "secondary-inverted" : "secondary",
|
|
30
|
+
href: n || d,
|
|
31
|
+
icon: o ? l[o] : s,
|
|
32
|
+
iconPosition: o ? "trailing" : e,
|
|
33
|
+
className: u,
|
|
34
|
+
onClick: m,
|
|
35
|
+
size: c,
|
|
36
|
+
isHrefExternal: o === "outbound" || f,
|
|
37
|
+
ref: g,
|
|
38
|
+
locale: t
|
|
39
|
+
}
|
|
40
|
+
) : /* @__PURE__ */ b(
|
|
41
|
+
D,
|
|
42
|
+
{
|
|
43
|
+
text: a || i,
|
|
44
|
+
href: n || d,
|
|
45
|
+
isHrefExternal: o === "outbound" || f,
|
|
46
|
+
color: x(r),
|
|
47
|
+
type: M,
|
|
48
|
+
icon: o ? l[o] : s,
|
|
49
|
+
iconPosition: o ? "trailing" : e,
|
|
50
|
+
onClick: m,
|
|
51
|
+
className: u,
|
|
52
|
+
size: c === "small" ? "medium" : "large",
|
|
53
|
+
"aria-label": B,
|
|
54
|
+
disabled: E,
|
|
55
|
+
ref: g,
|
|
56
|
+
locale: t,
|
|
57
|
+
...P
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
);
|
|
61
|
+
H.displayName = "MDSButton";
|
|
62
|
+
export {
|
|
63
|
+
H as MDSButton
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/legacy-button/index.tsx"],"sourcesContent":["import { type ForwardRefExoticComponent, forwardRef } from 'react'\nimport type { ButtonProps } from './types'\nimport { determineColor, LINK_TYPE_ICON_MAP } from './utils'\nimport { StandaloneLink } from '../standalone-link'\nimport { Button } from '../button'\n\n/** @deprecated Use <Button> from '@hashicorp/mds-react/button' instead. Will be removed in v1.0. */\nconst MDSButton = forwardRef<\n\tHTMLAnchorElement | HTMLButtonElement,\n\tButtonProps\n>(\n\t(\n\t\t{\n\t\t\tlocale,\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\turl,\n\t\t\thref,\n\t\t\tlinkType,\n\t\t\tonClick,\n\t\t\texternal,\n\t\t\tclassName,\n\t\t\tsize,\n\t\t\ticon,\n\t\t\ticonPosition = 'trailing',\n\t\t\tlabel,\n\t\t\tdisabled,\n\t\t\ttype,\n\t\t\ttheme,\n\t\t\t...rest\n\t\t},\n\t\tref\n\t) => {\n\t\tconst color = determineColor(theme)\n\n\t\tif (color === 'tertiary') {\n\t\t\t// We prefer the Standalone Link component over the tertiary\n\t\t\t// button styles.\n\t\t\treturn (\n\t\t\t\t<StandaloneLink\n\t\t\t\t\ttext={(text || title) as string}\n\t\t\t\t\tcolor={\n\t\t\t\t\t\ttheme?.background === 'dark' ? 'secondary-inverted' : 'secondary'\n\t\t\t\t\t}\n\t\t\t\t\thref={url || href}\n\t\t\t\t\ticon={linkType ? LINK_TYPE_ICON_MAP[linkType] : icon}\n\t\t\t\t\ticonPosition={linkType ? 'trailing' : iconPosition}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tonClick={onClick as () => void}\n\t\t\t\t\tsize={size}\n\t\t\t\t\tisHrefExternal={linkType === 'outbound' || external}\n\t\t\t\t\tref={ref as ForwardRefExoticComponent<HTMLAnchorElement>}\n\t\t\t\t\tlocale={locale}\n\t\t\t\t/>\n\t\t\t)\n\t\t}\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\ttext={text || title}\n\t\t\t\thref={url || href}\n\t\t\t\tisHrefExternal={linkType === 'outbound' || external}\n\t\t\t\tcolor={determineColor(theme)}\n\t\t\t\ttype={type}\n\t\t\t\ticon={linkType ? LINK_TYPE_ICON_MAP[linkType] : icon}\n\t\t\t\ticonPosition={linkType ? 'trailing' : iconPosition}\n\t\t\t\tonClick={onClick as React.MouseEventHandler<HTMLButtonElement>}\n\t\t\t\tclassName={className}\n\t\t\t\t// Default buttons to the large size unless we specifically request the\n\t\t\t\t// small variant\n\t\t\t\tsize={size === 'small' ? 'medium' : 'large'}\n\t\t\t\taria-label={label}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tref={ref as ForwardRefExoticComponent<HTMLButtonElement>}\n\t\t\t\tlocale={locale}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t)\n\t}\n)\n\nMDSButton.displayName = 'MDSButton'\n\nexport { MDSButton }\n"],"names":["MDSButton","forwardRef","locale","text","title","url","href","linkType","onClick","external","className","size","icon","iconPosition","label","disabled","type","theme","rest","ref","determineColor","jsx","StandaloneLink","LINK_TYPE_ICON_MAP","Button"],"mappings":";;;;;AAOA,MAAMA,IAAYC;AAAA,EAIjB,CACC;AAAA,IACC,QAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,KAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAEJC,MAEcC,EAAeH,CAAK,MAEpB,aAIZ,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,MAAOnB,KAAQC;AAAA,MACf,OACCa,GAAO,eAAe,SAAS,uBAAuB;AAAA,MAEvD,MAAMZ,KAAOC;AAAA,MACb,MAAMC,IAAWgB,EAAmBhB,CAAQ,IAAIK;AAAA,MAChD,cAAcL,IAAW,aAAaM;AAAA,MACtC,WAAAH;AAAA,MACA,SAAAF;AAAA,MACA,MAAAG;AAAA,MACA,gBAAgBJ,MAAa,cAAcE;AAAA,MAC3C,KAAAU;AAAA,MACA,QAAAjB;AAAA,IAAA;AAAA,EAAA,IAMF,gBAAAmB;AAAA,IAACG;AAAA,IAAA;AAAA,MACA,MAAMrB,KAAQC;AAAA,MACd,MAAMC,KAAOC;AAAA,MACb,gBAAgBC,MAAa,cAAcE;AAAA,MAC3C,OAAOW,EAAeH,CAAK;AAAA,MAC3B,MAAAD;AAAA,MACA,MAAMT,IAAWgB,EAAmBhB,CAAQ,IAAIK;AAAA,MAChD,cAAcL,IAAW,aAAaM;AAAA,MACtC,SAAAL;AAAA,MACA,WAAAE;AAAA,MAGA,MAAMC,MAAS,UAAU,WAAW;AAAA,MACpC,cAAYG;AAAA,MACZ,UAAAC;AAAA,MACA,KAAAI;AAAA,MACA,QAAAjB;AAAA,MACC,GAAGgB;AAAA,IAAA;AAAA,EAAA;AAIR;AAEAlB,EAAU,cAAc;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { COLORS } from './utils';
|
|
2
|
+
type HashiCorpProduct = 'hashicorp' | 'boundary' | 'consul' | 'nomad' | 'packer' | 'terraform' | 'vault' | 'vagrant' | 'waypoint';
|
|
3
|
+
export type Size = 'medium' | 'small';
|
|
4
|
+
export type ThemeBackground = 'light' | 'dark' | 'brand';
|
|
5
|
+
export interface Theme {
|
|
6
|
+
variant?: ThemeVariant;
|
|
7
|
+
background?: ThemeBackground;
|
|
8
|
+
brand?: HashiCorpProduct | 'neutral';
|
|
9
|
+
}
|
|
10
|
+
export type LinkType = 'inbound' | 'outbound' | 'anchor' | 'download';
|
|
11
|
+
export type ThemeVariant = 'primary' | 'secondary' | 'tertiary' | 'tertiary-neutral' | 'ghost';
|
|
12
|
+
export type ButtonColor = (typeof COLORS)[number];
|
|
13
|
+
export interface ButtonBaseProps {
|
|
14
|
+
url?: string;
|
|
15
|
+
href?: string;
|
|
16
|
+
label?: string;
|
|
17
|
+
className?: string;
|
|
18
|
+
external?: boolean;
|
|
19
|
+
onClick?: React.MouseEventHandler<HTMLButtonElement> | React.MouseEventHandler<HTMLAnchorElement>;
|
|
20
|
+
size?: Size;
|
|
21
|
+
linkType?: LinkType;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
icon?: string;
|
|
24
|
+
iconPosition?: 'leading' | 'trailing';
|
|
25
|
+
theme?: Theme;
|
|
26
|
+
type?: 'button' | 'submit' | 'reset';
|
|
27
|
+
locale?: string;
|
|
28
|
+
}
|
|
29
|
+
/** @deprecated Use type ButtonProps from '@hashicorp/mds-react/button' instead. Will be removed in v1.0. */
|
|
30
|
+
export type ButtonProps = (ButtonBaseProps & {
|
|
31
|
+
title: string;
|
|
32
|
+
text?: string;
|
|
33
|
+
}) | (ButtonBaseProps & {
|
|
34
|
+
title?: undefined;
|
|
35
|
+
text: string;
|
|
36
|
+
});
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ButtonColor, Theme } from './types';
|
|
2
|
+
export declare const COLORS: readonly ["primary", "primary-black", "primary-white", "secondary", "secondary-high-contrast", "secondary-white", "secondary-black", "tertiary", "critical", "boundary", "consul", "nomad", "packer", "terraform", "vagrant", "vault", "waypoint", "hashicorp"];
|
|
3
|
+
export declare function determineColor(theme?: Theme): ButtonColor;
|
|
4
|
+
export declare const LINK_TYPE_ICON_MAP: {
|
|
5
|
+
inbound: string;
|
|
6
|
+
outbound: string;
|
|
7
|
+
download: string;
|
|
8
|
+
anchor: string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
function n(r) {
|
|
2
|
+
const a = r?.variant ? r.variant : "primary";
|
|
3
|
+
if (a === "primary")
|
|
4
|
+
switch (r?.brand) {
|
|
5
|
+
case "hashicorp":
|
|
6
|
+
return "primary";
|
|
7
|
+
case "boundary":
|
|
8
|
+
case "consul":
|
|
9
|
+
case "nomad":
|
|
10
|
+
case "packer":
|
|
11
|
+
case "terraform":
|
|
12
|
+
case "vagrant":
|
|
13
|
+
case "vault":
|
|
14
|
+
case "waypoint":
|
|
15
|
+
return r.brand;
|
|
16
|
+
case "neutral":
|
|
17
|
+
return "secondary-high-contrast";
|
|
18
|
+
default:
|
|
19
|
+
return "primary";
|
|
20
|
+
}
|
|
21
|
+
if (a === "secondary")
|
|
22
|
+
return "secondary";
|
|
23
|
+
if (a === "tertiary" || a === "tertiary-neutral" || a === "ghost")
|
|
24
|
+
return "tertiary";
|
|
25
|
+
throw new Error(
|
|
26
|
+
`Unable to determine HDS Button color from theme: ${JSON.stringify(r)}`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
const t = {
|
|
30
|
+
inbound: "arrow-right",
|
|
31
|
+
outbound: "external-link",
|
|
32
|
+
download: "download",
|
|
33
|
+
anchor: "anchor"
|
|
34
|
+
};
|
|
35
|
+
export {
|
|
36
|
+
t as LINK_TYPE_ICON_MAP,
|
|
37
|
+
n as determineColor
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/components/legacy-button/utils.tsx"],"sourcesContent":["import type { ButtonColor, Theme, ThemeVariant } from './types'\n\nexport const COLORS = [\n\t'primary',\n\t'primary-black',\n\t'primary-white',\n\t'secondary', // deprecated; maps to secondary-white\n\t'secondary-high-contrast', // alternates between secondary-black and secondary-white based on theme\n\t'secondary-white',\n\t'secondary-black',\n\t'tertiary',\n\t'critical',\n\t'boundary',\n\t'consul',\n\t'nomad',\n\t'packer',\n\t'terraform',\n\t'vagrant',\n\t'vault',\n\t'waypoint',\n\t'hashicorp', // alias to primary\n] as const\n\nexport function determineColor(theme?: Theme): ButtonColor {\n\tconst variant: ThemeVariant = theme?.variant ? theme.variant : 'primary'\n\n\tif (variant === 'primary') {\n\t\tswitch (theme?.brand) {\n\t\t\tcase 'hashicorp':\n\t\t\t\treturn 'primary'\n\t\t\tcase 'boundary':\n\t\t\tcase 'consul':\n\t\t\tcase 'nomad':\n\t\t\tcase 'packer':\n\t\t\tcase 'terraform':\n\t\t\tcase 'vagrant':\n\t\t\tcase 'vault':\n\t\t\tcase 'waypoint':\n\t\t\t\treturn theme.brand\n\t\t\tcase 'neutral':\n\t\t\t\treturn 'secondary-high-contrast'\n\t\t\tdefault:\n\t\t\t\treturn 'primary'\n\t\t}\n\t}\n\n\tif (variant === 'secondary') {\n\t\treturn 'secondary'\n\t}\n\n\tif (\n\t\tvariant === 'tertiary' ||\n\t\tvariant === 'tertiary-neutral' ||\n\t\tvariant === 'ghost'\n\t) {\n\t\treturn 'tertiary'\n\t}\n\n\tthrow new Error(\n\t\t`Unable to determine HDS Button color from theme: ${JSON.stringify(theme)}`\n\t)\n}\n\nexport const LINK_TYPE_ICON_MAP = {\n\tinbound: 'arrow-right',\n\toutbound: 'external-link',\n\tdownload: 'download',\n\tanchor: 'anchor',\n}\n"],"names":["determineColor","theme","variant","LINK_TYPE_ICON_MAP"],"mappings":"AAuBO,SAASA,EAAeC,GAA4B;AAC1D,QAAMC,IAAwBD,GAAO,UAAUA,EAAM,UAAU;AAE/D,MAAIC,MAAY;AACf,YAAQD,GAAO,OAAA;AAAA,MACd,KAAK;AACJ,eAAO;AAAA,MACR,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACJ,eAAOA,EAAM;AAAA,MACd,KAAK;AACJ,eAAO;AAAA,MACR;AACC,eAAO;AAAA,IAAA;AAIV,MAAIC,MAAY;AACf,WAAO;AAGR,MACCA,MAAY,cACZA,MAAY,sBACZA,MAAY;AAEZ,WAAO;AAGR,QAAM,IAAI;AAAA,IACT,oDAAoD,KAAK,UAAUD,CAAK,CAAC;AAAA,EAAA;AAE3E;AAEO,MAAME,IAAqB;AAAA,EACjC,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AACT;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
interface MenuPrimitiveProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
onClose?: () => void;
|
|
4
|
+
isFullWidth?: boolean;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
declare const Provider: ({ onClose, isFullWidth, children, className, ...rest }: MenuPrimitiveProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const Toggle: ({ children }: {
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare const Content: ({ children }: {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export { Provider, Toggle, Content };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
3
|
+
import { useState as N, useRef as f, useCallback as i, useMemo as P } from "react";
|
|
4
|
+
import R from "classnames";
|
|
5
|
+
import { MenuPrimitiveContext as b, useMenuPrimitive as p } from "./use-menu-primitive.js";
|
|
6
|
+
import u from "./styles.module.css.js";
|
|
7
|
+
const E = ({
|
|
8
|
+
onClose: e,
|
|
9
|
+
isFullWidth: n,
|
|
10
|
+
children: d,
|
|
11
|
+
className: g,
|
|
12
|
+
...v
|
|
13
|
+
}) => {
|
|
14
|
+
const [l, r] = N(!1), m = f(null), o = f(null), t = i(() => {
|
|
15
|
+
r(!1), e && e();
|
|
16
|
+
}, [r, e]), a = i(() => {
|
|
17
|
+
r((s) => !s), o?.current?.focus();
|
|
18
|
+
}, [o, r]), x = i(
|
|
19
|
+
(s) => {
|
|
20
|
+
m?.current?.contains(
|
|
21
|
+
s.relatedTarget || document.activeElement
|
|
22
|
+
) || t();
|
|
23
|
+
},
|
|
24
|
+
[t]
|
|
25
|
+
), O = i(
|
|
26
|
+
(s) => {
|
|
27
|
+
s.key === "Escape" && (t(), o?.current?.querySelector("button")?.focus());
|
|
28
|
+
},
|
|
29
|
+
[t]
|
|
30
|
+
), M = P(
|
|
31
|
+
() => ({
|
|
32
|
+
isOpen: l,
|
|
33
|
+
onClickToggle: a,
|
|
34
|
+
toggleRef: o,
|
|
35
|
+
closeMenu: t
|
|
36
|
+
}),
|
|
37
|
+
[l, a, o, t]
|
|
38
|
+
);
|
|
39
|
+
return /* @__PURE__ */ c(b.Provider, { value: M, children: /* @__PURE__ */ c(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
className: R(
|
|
43
|
+
u["menu-primitive"],
|
|
44
|
+
{
|
|
45
|
+
[u["width-full"]]: n
|
|
46
|
+
},
|
|
47
|
+
g
|
|
48
|
+
),
|
|
49
|
+
onBlur: x,
|
|
50
|
+
onKeyUp: O,
|
|
51
|
+
ref: m,
|
|
52
|
+
...v,
|
|
53
|
+
children: d
|
|
54
|
+
}
|
|
55
|
+
) });
|
|
56
|
+
}, I = ({ children: e }) => {
|
|
57
|
+
const { toggleRef: n } = p();
|
|
58
|
+
return /* @__PURE__ */ c("div", { className: "hds-menu-primitive__toggle", ref: n, children: e });
|
|
59
|
+
}, S = ({ children: e }) => {
|
|
60
|
+
const { isOpen: n } = p();
|
|
61
|
+
return /* @__PURE__ */ c("div", { className: n ? u.isOpen : u.isClosed, tabIndex: -1, children: e });
|
|
62
|
+
};
|
|
63
|
+
export {
|
|
64
|
+
S as Content,
|
|
65
|
+
E as Provider,
|
|
66
|
+
I as Toggle
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/menu-primitive/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n\ttype ReactNode,\n\ttype FocusEvent,\n\ttype KeyboardEvent,\n\ttype HTMLAttributes,\n} from 'react'\nimport classNames from 'classnames'\nimport {\n\tMenuPrimitiveContext,\n\tuseMenuPrimitive,\n\ttype MenuPrimitiveContextState,\n} from './use-menu-primitive'\nimport s from './styles.module.css'\n\ninterface MenuPrimitiveProps extends HTMLAttributes<HTMLDivElement> {\n\tonClose?: () => void\n\tisFullWidth?: boolean\n\tchildren: ReactNode\n}\n\nconst Provider = ({\n\tonClose,\n\tisFullWidth,\n\tchildren,\n\tclassName,\n\t...rest\n}: MenuPrimitiveProps) => {\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst menuRef = useRef<HTMLDivElement | null>(null)\n\tconst toggleRef = useRef<HTMLDivElement | null>(null)\n\n\tconst closeMenu = useCallback(() => {\n\t\tsetIsOpen(false)\n\t\tif (onClose) {\n\t\t\tonClose()\n\t\t}\n\t}, [setIsOpen, onClose])\n\n\tconst onClickToggle = useCallback(() => {\n\t\tsetIsOpen((prevState) => !prevState)\n\t\ttoggleRef?.current?.focus()\n\t}, [toggleRef, setIsOpen])\n\n\tconst onFocusOut = useCallback(\n\t\t(event: FocusEvent) => {\n\t\t\tif (\n\t\t\t\t!menuRef?.current?.contains(\n\t\t\t\t\tevent.relatedTarget || document.activeElement\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcloseMenu()\n\t\t\t}\n\t\t},\n\t\t[closeMenu]\n\t)\n\n\tconst onKeyUp = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tcloseMenu()\n\t\t\t\ttoggleRef?.current?.querySelector('button')?.focus()\n\t\t\t}\n\t\t},\n\t\t[closeMenu]\n\t)\n\n\tconst contextValue: MenuPrimitiveContextState = useMemo(\n\t\t() => ({\n\t\t\tisOpen,\n\t\t\tonClickToggle,\n\t\t\ttoggleRef,\n\t\t\tcloseMenu,\n\t\t}),\n\t\t[isOpen, onClickToggle, toggleRef, closeMenu]\n\t)\n\n\treturn (\n\t\t<MenuPrimitiveContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\n\t\t\t\t\ts['menu-primitive'],\n\t\t\t\t\t{\n\t\t\t\t\t\t[s['width-full']]: isFullWidth,\n\t\t\t\t\t},\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tonBlur={onFocusOut}\n\t\t\t\tonKeyUp={onKeyUp}\n\t\t\t\tref={menuRef}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</MenuPrimitiveContext.Provider>\n\t)\n}\n\nconst Toggle = ({ children }: { children: ReactNode }) => {\n\tconst { toggleRef } = useMenuPrimitive()\n\treturn (\n\t\t<div className=\"hds-menu-primitive__toggle\" ref={toggleRef}>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nconst Content = ({ children }: { children: ReactNode }) => {\n\tconst { isOpen } = useMenuPrimitive()\n\treturn (\n\t\t<div className={isOpen ? s.isOpen : s.isClosed} tabIndex={-1}>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nexport { Provider, Toggle, Content }\n"],"names":["Provider","onClose","isFullWidth","children","className","rest","isOpen","setIsOpen","useState","menuRef","useRef","toggleRef","closeMenu","useCallback","prevState","event","contextValue","useMemo","onClickToggle","jsx","MenuPrimitiveContext","classNames","s","onFocusOut","onKeyUp","useMenuPrimitive"],"mappings":";;;;;;AA0BkB,MACjBA,IAAA,CAAA;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACD,GAAAC;AACC,MAAA;AACA,QAAM,CAAAC,GAAAC,KAA4CC,EAAA,EAAA,GAC5CC,IAAAC,EAAY,OAEZC,IAAYD,EAAA,OACjBE,IAAeC,EAAA,MAAA;AACf,IAAAN,IAAa,QAEbN,EAAA;AAAA,EAGD,GAAA,CAAAM,GAAMN,CAAgB,CAAA,OACVY,QAAwB;AACnC,IAAAN,EAAA,CAAWO,MAAS,CAAAA,CAAM,GAC3BH,GAAI,SAAW,MAAU;AAAA,EAEzB,GAAA,CAAAA,GAAMJ,CAAa,CAAA,OACKM;AAAA,IACtB,CAAAE,MACE;AAAkB,MAClBN,GAAM;QACPM,EACC,iBAAA,SAAA;AAAA,MACD,KACDH,EAAA;AAAA,IAED;AAAA,IACD,CAAAA,CAAA;AAAA,EAEA,OAC2BC;AAAA,IACzB,CAAAE,MAAI;AACH,gBAAU,aACVH,EAAA,GACDD,GAAA,SAAA,cAAA,QAAA,GAAA,MAAA;AAAA,IAED;AAAA,IACD,CAAAC,CAAA;AAAA,EAEA,GACCI,IAAOC;AAAA,IAAA,OACN;AAAA,MACA,QAAAX;AAAA,MACA,eAAAY;AAAA,MACA,WAAAP;AAAA,MACD,WAAAC;AAAA,IACA;AAAA,IACD,CAAAN,GAAAY,GAAAP,GAAAC,CAAA;AAAA,EAEA;AAEE,SAAC,gBAAAO,EAAAC,EAAA,UAAA,EAAA,OAAAJ,GAAA,UAAA,gBAAAG;AAAA,IAAA;AAAA,IAAA;AAAA,MACW,WACRE;AAAA,QACFC,EAAA,gBAAA;AAAA,QAAA;AAAA,UAEA,CAAAA,EAAA,YAAA,CAAA,GAAApB;AAAA,QACA;AAAA,QACDE;AAAA,MACA;AAAA,MACA,QAAAmB;AAAA,MACA,SAAAC;AAAA,MACC,KAAGf;AAAA,MAEH,GAAAJ;AAAA,MAAA,UAAAF;AAAA;EAIL,EAAA,CAAA;AAEA,OACS,CAAA,EAAA,UAAAA;AACR,6BACM;AAIP,SAAA,gBAAAgB,EAAA,OAAA,EAAA,WAAA,8BAAA,KAAAR,GAAA,UAAAR,EAAA,CAAA;AAEA,OACS,CAAA,EAAO,UAAAA;AACf,QAAA,EAAA,QAAAG,EAAA,IAAAmB,EACM;AAIP,SAAA,gBAAAN,EAAA,OAAA,EAAA,WAAAb,IAAAgB,EAAA,SAAAA,EAAA,UAAA,UAAA,IAAA,UAAAnB,EAAA,CAAA;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const i = "isOpen__Dbse-", s = "isClosed__HWTqi", e = {
|
|
2
|
+
"menu-primitive": "menu-primitive__EJFpE",
|
|
3
|
+
"width-full": "width-full__35Qjo",
|
|
4
|
+
isOpen: i,
|
|
5
|
+
isClosed: s
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
e as default,
|
|
9
|
+
s as isClosed,
|
|
10
|
+
i as isOpen
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=styles.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MouseEventHandler, RefObject } from 'react';
|
|
2
|
+
export interface MenuPrimitiveContextState {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClickToggle: MouseEventHandler<HTMLButtonElement>;
|
|
5
|
+
toggleRef: RefObject<HTMLDivElement>;
|
|
6
|
+
closeMenu: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const MenuPrimitiveContext: import('react').Context<MenuPrimitiveContextState | undefined>;
|
|
9
|
+
export declare function useMenuPrimitive(): MenuPrimitiveContextState;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext as i, useContext as n } from "react";
|
|
3
|
+
const t = i(void 0);
|
|
4
|
+
t.displayName = "MenuPrimitiveContext";
|
|
5
|
+
function r() {
|
|
6
|
+
const e = n(t);
|
|
7
|
+
if (e === void 0)
|
|
8
|
+
throw new Error(
|
|
9
|
+
"useMenuPrimitive must be used within a MenuPrimitiveContext.Provider"
|
|
10
|
+
);
|
|
11
|
+
return e;
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
t as MenuPrimitiveContext,
|
|
15
|
+
r as useMenuPrimitive
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=use-menu-primitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-menu-primitive.js","sources":["../../../src/components/menu-primitive/use-menu-primitive.ts"],"sourcesContent":["'use client'\n\nimport {\n\tcreateContext,\n\tuseContext,\n\ttype MouseEventHandler,\n\ttype RefObject,\n} from 'react'\n\nexport interface MenuPrimitiveContextState {\n\tisOpen: boolean\n\tonClickToggle: MouseEventHandler<HTMLButtonElement>\n\ttoggleRef: RefObject<HTMLDivElement>\n\tcloseMenu: () => void\n}\n\nexport const MenuPrimitiveContext = createContext<\n\tMenuPrimitiveContextState | undefined\n>(undefined)\nMenuPrimitiveContext.displayName = 'MenuPrimitiveContext'\n\nexport function useMenuPrimitive(): MenuPrimitiveContextState {\n\tconst context = useContext(MenuPrimitiveContext)\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t'useMenuPrimitive must be used within a MenuPrimitiveContext.Provider'\n\t\t)\n\t}\n\treturn context\n}\n"],"names":["MenuPrimitiveContext","createContext","useMenuPrimitive","context","useContext"],"mappings":";;AAmBA,MAAAA,IAAqBC,EAAc,MAAA;AAE5BD,gBAAuD;AAC7D,SAAME;AACN,QAAIC,IAAYC,EAAWJ,CAAA;AAC1B,MAAAG,MAAU;AAAA,UACT,IAAA;AAAA,MACD;AAAA,IACD;AAED,SAAAA;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useModal } from './use-modal';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
interface ModalProps {
|
|
4
|
+
initialIsOpen?: boolean;
|
|
5
|
+
initialModalContent?: ReactNode;
|
|
6
|
+
onClose?: () => void;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
declare const ModalProvider: {
|
|
10
|
+
({ onClose, initialIsOpen, initialModalContent, children, }: ModalProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
displayName: string;
|
|
12
|
+
};
|
|
13
|
+
export { useModal, ModalProvider };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as d, Fragment as x, jsx as l } from "react/jsx-runtime";
|
|
3
|
+
import { useState as m, useCallback as c, useMemo as y, useEffect as h } from "react";
|
|
4
|
+
import k from "react-focus-lock";
|
|
5
|
+
import { Dialog as p } from "../dialog-primitive/index.js";
|
|
6
|
+
import { ModalContext as E } from "./use-modal.js";
|
|
7
|
+
import { useModal as I } from "./use-modal.js";
|
|
8
|
+
import D from "./modal.module.css.js";
|
|
9
|
+
const L = ({
|
|
10
|
+
onClose: s,
|
|
11
|
+
initialIsOpen: f = !1,
|
|
12
|
+
initialModalContent: u = null,
|
|
13
|
+
children: v
|
|
14
|
+
}) => {
|
|
15
|
+
const [r, a] = m(
|
|
16
|
+
u
|
|
17
|
+
), [e, t] = m(f), o = c(() => {
|
|
18
|
+
t(!1), a(null), s && s();
|
|
19
|
+
}, [t, s]), i = c(
|
|
20
|
+
(n) => {
|
|
21
|
+
a(n), t(!0);
|
|
22
|
+
},
|
|
23
|
+
[t]
|
|
24
|
+
), M = y(
|
|
25
|
+
() => ({
|
|
26
|
+
isOpen: e,
|
|
27
|
+
openModal: i,
|
|
28
|
+
modalContent: r,
|
|
29
|
+
closeModal: o
|
|
30
|
+
}),
|
|
31
|
+
[e, i, o, r]
|
|
32
|
+
);
|
|
33
|
+
return h(() => {
|
|
34
|
+
const n = (w) => {
|
|
35
|
+
w.key === "Escape" && e && o();
|
|
36
|
+
};
|
|
37
|
+
return e && window.addEventListener("keydown", n), () => {
|
|
38
|
+
e && window.removeEventListener("keydown", n);
|
|
39
|
+
};
|
|
40
|
+
}, [e, o]), /* @__PURE__ */ d(E.Provider, { value: M, children: [
|
|
41
|
+
v,
|
|
42
|
+
e && r && /* @__PURE__ */ d(x, { children: [
|
|
43
|
+
/* @__PURE__ */ l(k, { children: /* @__PURE__ */ l(
|
|
44
|
+
p.Wrapper,
|
|
45
|
+
{
|
|
46
|
+
onDismiss: o,
|
|
47
|
+
className: D.modal,
|
|
48
|
+
open: e,
|
|
49
|
+
children: r
|
|
50
|
+
}
|
|
51
|
+
) }),
|
|
52
|
+
/* @__PURE__ */ l(p.Overlay, {})
|
|
53
|
+
] })
|
|
54
|
+
] });
|
|
55
|
+
};
|
|
56
|
+
L.displayName = "ModalProvider";
|
|
57
|
+
export {
|
|
58
|
+
L as ModalProvider,
|
|
59
|
+
I as useModal
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/modal/index.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo, useState, useCallback, useEffect } from 'react'\nimport FocusLock from 'react-focus-lock'\nimport { Dialog } from '../dialog-primitive'\nimport { ModalContext, useModal } from './use-modal'\nimport type { ReactNode } from 'react'\nimport type { ModalContextState } from './use-modal'\nimport s from './modal.module.css'\n\ninterface ModalProps {\n\tinitialIsOpen?: boolean\n\tinitialModalContent?: ReactNode\n\tonClose?: () => void\n\tchildren: ReactNode\n}\n\nconst ModalProvider = ({\n\tonClose,\n\tinitialIsOpen = false,\n\tinitialModalContent = null,\n\tchildren,\n}: ModalProps) => {\n\tconst [modalContent, setModalContent] = useState<ReactNode | null>(\n\t\tinitialModalContent\n\t)\n\tconst [isOpen, setIsOpen] = useState(initialIsOpen)\n\n\tconst closeModal = useCallback(() => {\n\t\tsetIsOpen(false)\n\t\tsetModalContent(null)\n\t\tif (onClose) {\n\t\t\tonClose()\n\t\t}\n\t}, [setIsOpen, onClose])\n\n\tconst openModal = useCallback(\n\t\t(content: ReactNode) => {\n\t\t\tsetModalContent(content)\n\t\t\tsetIsOpen(true)\n\t\t},\n\t\t[setIsOpen]\n\t)\n\n\tconst contextValue: ModalContextState = useMemo(\n\t\t() => ({\n\t\t\tisOpen,\n\t\t\topenModal,\n\t\t\tmodalContent,\n\t\t\tcloseModal,\n\t\t}),\n\t\t[isOpen, openModal, closeModal, modalContent]\n\t)\n\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (event.key === 'Escape' && isOpen) {\n\t\t\t\tcloseModal()\n\t\t\t}\n\t\t}\n\t\tif (isOpen) {\n\t\t\twindow.addEventListener('keydown', handleKeyDown)\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (isOpen) {\n\t\t\t\twindow.removeEventListener('keydown', handleKeyDown)\n\t\t\t}\n\t\t}\n\t}, [isOpen, closeModal])\n\n\treturn (\n\t\t<ModalContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t\t{isOpen && modalContent && (\n\t\t\t\t<>\n\t\t\t\t\t<FocusLock>\n\t\t\t\t\t\t<Dialog.Wrapper\n\t\t\t\t\t\t\tonDismiss={closeModal}\n\t\t\t\t\t\t\tclassName={s.modal}\n\t\t\t\t\t\t\topen={isOpen}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{modalContent}\n\t\t\t\t\t\t</Dialog.Wrapper>\n\t\t\t\t\t</FocusLock>\n\t\t\t\t\t<Dialog.Overlay />\n\t\t\t\t</>\n\t\t\t)}\n\t\t</ModalContext.Provider>\n\t)\n}\n\nModalProvider.displayName = 'ModalProvider'\n\nexport { useModal, ModalProvider }\n"],"names":["ModalProvider","onClose","initialIsOpen","initialModalContent","children","modalContent","setModalContent","useState","isOpen","setIsOpen","closeModal","useCallback","content","contextValue","useMemo","openModal","useEffect","handleKeyDown","event","jsxs","ModalContext","jsx","FocusLock","Dialog","s"],"mappings":";;;;;;;;AAiBuB,MACtBA,IAAA,CAAA;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC,IAAA;AAAA,EACA,qBAAAC,IAAA;AAAA,EACD,UAAAC;AACC;AAAwC,QACvC,CAAAC,GAAAC,CAAA,IAAAC;AAAA,IACDJ;AAAA,EACA,GAEM,CAAAK,GAAAC,CAAa,IAAAF,EAAkBL,CAAA,GACpCQ,IAAeC,EAAA,MAAA;AACf,IAAAF,EAAA,EAAA,GACAH,EAAa,IAAA,QAEbL,EAAA;AAAA,EAGD,GAAA,CAAAQ,GAAMR,CAAY,CAAA,OACOU;AAAA,IACvB,CAAAC,MAAA;AACA,MAAAN,EAAcM,CAAA,GACfH,EAAA,EAAA;AAAA,IACA;AAAA,IACD,CAAAA,CAAA;AAAA,EAEA,GACCI,IAAOC;AAAA,IAAA,OACN;AAAA,MACA,QAAAN;AAAA,MACA,WAAAO;AAAA,MACA,cAAAV;AAAA,MACD,YAAAK;AAAA,IACA;AAAA,IACD,CAAAF,GAAAO,GAAAL,GAAAL,CAAA;AAAA,EAEA;AACC,SAAAW,EAAM,MAAA;AACL,UAAIC,IAAc,CAAAC;AACjB,gBAAW,YAAAV,KACZE,EAAA;AAAA,IAED;AACC,gBACD,OAAA,iBAAA,WAAAO,CAAA,SAGK;AACH,WACD,OAAA,oBAAA,WAAAA,CAAA;AAAA,IAEF;AAAA,EAEA,GAAA,CAAAT,GAAAE,CAAA,CACC,GACE,gBAAAS,EAAAC,EAAA,UAAA,EAAA,OAAAP,GAAA,UAAA;AAAA,IACAT;AAAA,IAECI,KAAAH,KACC,gBAAAc,iBAAA;AAAA,MAAQ,gBAAAE,EAAAC,GAAA,EAAA,UAAA,gBAAAD;AAAA,QAAPE,EAAA;AAAA,QAAA;AAAA,UAEA,WAAWb;AAAA,UACX,WAAMc,EAAA;AAAA,UAEL;UAAA,UAAAnB;AAAA;MAEH,EAAA,CAAA;AAAA,MAED,gBAAAgB,EAAAE,EAAA,SAAA,CAAA,CAAA;AAAA,MAEF,CAAA;AAAA,EAEF,EAAA,CAAA;AAEA;;"}
|