@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,155 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
position: relative;
|
|
3
|
+
width: 100%;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.trigger {
|
|
7
|
+
width: 100%;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
|
|
10
|
+
/* Select large styles */
|
|
11
|
+
max-width: 100%;
|
|
12
|
+
|
|
13
|
+
--mds-padding: calc(var(--mds-form-control-padding) + 4px);
|
|
14
|
+
|
|
15
|
+
min-height: 3rem;
|
|
16
|
+
background-position: right 11px top 16px; /* we have to take into account the border */
|
|
17
|
+
padding: var(--mds-padding);
|
|
18
|
+
padding-right: calc(
|
|
19
|
+
var(--mds-padding) + 24px
|
|
20
|
+
); /* extra space for the icon */
|
|
21
|
+
|
|
22
|
+
color: var(--mds-form-control-base-foreground-value-color);
|
|
23
|
+
background-color: var(--mds-form-control-base-surface-color-default);
|
|
24
|
+
background-image: var(--mds-form-select-background-image-data-url);
|
|
25
|
+
background-repeat: no-repeat;
|
|
26
|
+
background-size: var(--mds-form-select-background-image-size)
|
|
27
|
+
var(--mds-form-select-background-image-size);
|
|
28
|
+
border: var(--mds-form-control-border-width) solid
|
|
29
|
+
var(--mds-form-control-base-border-color-default);
|
|
30
|
+
border-radius: var(--mds-form-control-border-radius);
|
|
31
|
+
box-shadow: var(--mds-elevation-low-box-shadow);
|
|
32
|
+
appearance: none;
|
|
33
|
+
|
|
34
|
+
/* STATUS */
|
|
35
|
+
|
|
36
|
+
&:hover {
|
|
37
|
+
border-color: var(--mds-form-control-base-border-color-hover);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* focus (same for all the states) */
|
|
41
|
+
|
|
42
|
+
&:focus {
|
|
43
|
+
border-color: var(--mds-color-focus-action-internal);
|
|
44
|
+
|
|
45
|
+
/* Notice: Safari doesn't apply a rounded border */
|
|
46
|
+
outline: 3px solid var(--mds-color-focus-action-external);
|
|
47
|
+
outline-offset: 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* DISABLED */
|
|
51
|
+
|
|
52
|
+
&:disabled {
|
|
53
|
+
color: var(--mds-form-control-disabled-foreground-color);
|
|
54
|
+
background-color: var(--mds-form-control-disabled-surface-color);
|
|
55
|
+
background-image: var(
|
|
56
|
+
--mds-form-select-background-image-data-url-disabled
|
|
57
|
+
);
|
|
58
|
+
border-color: var(--mds-form-control-disabled-border-color);
|
|
59
|
+
box-shadow: none;
|
|
60
|
+
cursor: not-allowed;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
composes: mds-typography-font-weight-regular from global;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.search-input-wrapper {
|
|
67
|
+
width: 100%;
|
|
68
|
+
padding: 11px 11px 1px 11px;
|
|
69
|
+
& input {
|
|
70
|
+
padding: 7px;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.popover {
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
position: absolute;
|
|
77
|
+
top: calc(100% + 4px);
|
|
78
|
+
left: 0;
|
|
79
|
+
display: flex;
|
|
80
|
+
flex-direction: column;
|
|
81
|
+
width: 100%;
|
|
82
|
+
background-color: var(--mds-color-surface-primary);
|
|
83
|
+
border-radius: 6px;
|
|
84
|
+
box-shadow: var(--mds-surface-high-box-shadow);
|
|
85
|
+
z-index: 2;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.list {
|
|
89
|
+
list-style: none;
|
|
90
|
+
margin: 0;
|
|
91
|
+
padding: 3px 0;
|
|
92
|
+
overflow-y: auto;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.option {
|
|
96
|
+
min-height: 36px;
|
|
97
|
+
padding: 7px 7px 7px 40px;
|
|
98
|
+
isolation: isolate; /* used to create a new stacking context (needed to have the pseudo element below text/icon but not the parent container) */
|
|
99
|
+
cursor: pointer;
|
|
100
|
+
position: relative; /* needed to have the pseudo element below text/icon but not the parent container */
|
|
101
|
+
line-height: var(--mds-typography-legacy-body-100-line-height);
|
|
102
|
+
|
|
103
|
+
&:hover,
|
|
104
|
+
&[data-vfocused='true'] {
|
|
105
|
+
& .option-text {
|
|
106
|
+
color: var(--mds-color-foreground-action-hover);
|
|
107
|
+
|
|
108
|
+
&::after {
|
|
109
|
+
display: block;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.option-text {
|
|
116
|
+
composes: mds-typography-font-weight-regular from global;
|
|
117
|
+
composes: mds-typography-legacy-body-200 from global;
|
|
118
|
+
|
|
119
|
+
/* the bar that appears when hovering or "focusing" on an option */
|
|
120
|
+
&::after {
|
|
121
|
+
position: absolute;
|
|
122
|
+
z-index: -1;
|
|
123
|
+
left: 4px;
|
|
124
|
+
width: 2px;
|
|
125
|
+
top: 6px;
|
|
126
|
+
bottom: 6px;
|
|
127
|
+
border-radius: 1px;
|
|
128
|
+
content: '';
|
|
129
|
+
background-color: var(--mds-color-foreground-action-hover);
|
|
130
|
+
display: none;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.interactive-icon {
|
|
135
|
+
display: block;
|
|
136
|
+
margin-top: 2px;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.interactive-icon-leading {
|
|
140
|
+
margin-right: 8px;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.interactive-icon-trailing {
|
|
144
|
+
margin-left: 8px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.interactive-loading-wrapper {
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
padding: 8px 10px 8px 16px;
|
|
151
|
+
|
|
152
|
+
& .interactive-icon {
|
|
153
|
+
color: var(--mds-color-foreground-primary);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const t = "root__yeZ3n", i = "trigger__CTK51 mds-typography-font-weight-regular", o = "popover__68RkH", r = "list__jTTmL", e = "option__LWP6l", n = {
|
|
2
|
+
root: t,
|
|
3
|
+
trigger: i,
|
|
4
|
+
"search-input-wrapper": "search-input-wrapper__JU5Rc",
|
|
5
|
+
popover: o,
|
|
6
|
+
list: r,
|
|
7
|
+
option: e,
|
|
8
|
+
"option-text": "option-text__fWrXg mds-typography-font-weight-regular mds-typography-legacy-body-200",
|
|
9
|
+
"interactive-icon": "interactive-icon__vZiDi",
|
|
10
|
+
"interactive-icon-leading": "interactive-icon-leading__rsHgU",
|
|
11
|
+
"interactive-icon-trailing": "interactive-icon-trailing__oEWQo",
|
|
12
|
+
"interactive-loading-wrapper": "interactive-loading-wrapper__yVz-7"
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
n as default,
|
|
16
|
+
r as list,
|
|
17
|
+
e as option,
|
|
18
|
+
o as popover,
|
|
19
|
+
t as root,
|
|
20
|
+
i as trigger
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=form-super-select.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-super-select.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { TComboBoxItem, ComboBoxSearchInputProps } from '../../combo-box-primitive';
|
|
2
|
+
import { FieldProps } from '../field';
|
|
3
|
+
type SuperSelectSearchInputProps = ComboBoxSearchInputProps;
|
|
4
|
+
interface SuperSelectOptionProps extends TComboBoxItem {
|
|
5
|
+
isLoading?: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Leading icon. Acceptable value: any [icon](https://helios.hashicorp.design/icons/library) name.
|
|
8
|
+
*/
|
|
9
|
+
icon?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Trailing icon. Acceptable value: any [icon](https://helios.hashicorp.design/icons/library) name.
|
|
12
|
+
*/
|
|
13
|
+
trailingIcon?: string;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
type TSuperSelectOption = TComboBoxItem;
|
|
17
|
+
interface SuperSelectFieldProps extends Omit<FieldProps, 'children' | 'id' | 'layout'> {
|
|
18
|
+
id?: string;
|
|
19
|
+
options: SuperSelectOptionProps[];
|
|
20
|
+
/**
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
searchProps?: SuperSelectSearchInputProps;
|
|
24
|
+
/**
|
|
25
|
+
* Used for assistive technologies,
|
|
26
|
+
* indicate the category of options you are presenting
|
|
27
|
+
* eg. Schools | Languages | Countries
|
|
28
|
+
*/
|
|
29
|
+
listLabel: string;
|
|
30
|
+
/**
|
|
31
|
+
* Is actually a `max-height` for the list.
|
|
32
|
+
* Pass this when you have a lot of options and want to limit the height of the list.
|
|
33
|
+
* @default `240px`
|
|
34
|
+
*/
|
|
35
|
+
listHeight?: `${number}em` | `${number}px` | `${number}%`;
|
|
36
|
+
/**
|
|
37
|
+
* Callback for when the list is scrolled.
|
|
38
|
+
* This is useful for implementing pagination, recommended for large lists.
|
|
39
|
+
*/
|
|
40
|
+
onScroll?: (e: React.UIEvent<HTMLUListElement>) => void;
|
|
41
|
+
onChangeSelectedOption?: (option: SuperSelectOptionProps) => void;
|
|
42
|
+
onChangeVFocusedOption?: (option: SuperSelectOptionProps) => void;
|
|
43
|
+
onSearchBlur?: () => void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Convenience component for using {@link SuperSelect}
|
|
47
|
+
* with a {@link Field} component. This should cover most use cases
|
|
48
|
+
* unless you need advanced patterns like pagination, async options, etc. outside of a form context.
|
|
49
|
+
*/
|
|
50
|
+
declare const SuperSelectField: {
|
|
51
|
+
({ label, helperText, error, id, searchProps, options, listLabel, listHeight, onScroll, onChangeSelectedOption, onChangeVFocusedOption, onSearchBlur, ...rest }: SuperSelectFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
displayName: string;
|
|
53
|
+
};
|
|
54
|
+
export type { TSuperSelectOption, SuperSelectOptionProps, SuperSelectSearchInputProps, };
|
|
55
|
+
export { SuperSelectField };
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { jsx as e, jsxs as m, Fragment as B } from "react/jsx-runtime";
|
|
2
|
+
import { useId as F } from "react";
|
|
3
|
+
import s from "classnames";
|
|
4
|
+
import { Field as L } from "../field/index.js";
|
|
5
|
+
import { FlightIcon as d } from "../../flight-icon/index.js";
|
|
6
|
+
import { ComboBox as l } from "../../combo-box-primitive/index.js";
|
|
7
|
+
import r from "./form-super-select.module.css.js";
|
|
8
|
+
const O = ({
|
|
9
|
+
children: i,
|
|
10
|
+
onChangeSelectedOption: t,
|
|
11
|
+
onChangeVFocusedOption: n
|
|
12
|
+
}) => /* @__PURE__ */ e(
|
|
13
|
+
l.Root,
|
|
14
|
+
{
|
|
15
|
+
onChangeSelectedOption: t,
|
|
16
|
+
onChangeVFocusedOption: n,
|
|
17
|
+
children: /* @__PURE__ */ e("div", { className: r.root, children: i })
|
|
18
|
+
}
|
|
19
|
+
), R = ({ className: i }) => /* @__PURE__ */ e(l.Trigger, { className: s(r.trigger, i), children: /* @__PURE__ */ e(l.Value, {}) }), T = ({ children: i }) => /* @__PURE__ */ e(l.Popover, { className: r.popover, children: i }), j = ({
|
|
20
|
+
placeholder: i = "Search",
|
|
21
|
+
value: t,
|
|
22
|
+
onChange: n,
|
|
23
|
+
onBlur: c
|
|
24
|
+
}) => /* @__PURE__ */ e("div", { className: r["search-input-wrapper"], children: /* @__PURE__ */ e(
|
|
25
|
+
l.SearchInput,
|
|
26
|
+
{
|
|
27
|
+
placeholder: i,
|
|
28
|
+
value: t,
|
|
29
|
+
onChange: n,
|
|
30
|
+
onBlur: c
|
|
31
|
+
}
|
|
32
|
+
) }), k = ({
|
|
33
|
+
label: i,
|
|
34
|
+
children: t,
|
|
35
|
+
className: n,
|
|
36
|
+
maxHeight: c,
|
|
37
|
+
onScroll: o
|
|
38
|
+
}) => /* @__PURE__ */ e(
|
|
39
|
+
l.List,
|
|
40
|
+
{
|
|
41
|
+
label: i,
|
|
42
|
+
className: s(r.list, n),
|
|
43
|
+
maxHeight: c,
|
|
44
|
+
onScroll: o,
|
|
45
|
+
children: t
|
|
46
|
+
}
|
|
47
|
+
), C = ({
|
|
48
|
+
value: i,
|
|
49
|
+
label: t,
|
|
50
|
+
isLoading: n,
|
|
51
|
+
icon: c,
|
|
52
|
+
className: o,
|
|
53
|
+
trailingIcon: p
|
|
54
|
+
}) => /* @__PURE__ */ e(
|
|
55
|
+
l.Item,
|
|
56
|
+
{
|
|
57
|
+
value: i,
|
|
58
|
+
label: t,
|
|
59
|
+
className: s(r.option, o),
|
|
60
|
+
children: n ? /* @__PURE__ */ m("div", { className: r["interactive-loading-wrapper"], children: [
|
|
61
|
+
/* @__PURE__ */ e(
|
|
62
|
+
"div",
|
|
63
|
+
{
|
|
64
|
+
className: s(
|
|
65
|
+
r["interactive-icon"],
|
|
66
|
+
r["interactive-icon-leading"]
|
|
67
|
+
),
|
|
68
|
+
children: /* @__PURE__ */ e(d, { name: "loading", isInlineBlock: !1 })
|
|
69
|
+
}
|
|
70
|
+
),
|
|
71
|
+
/* @__PURE__ */ e("span", { className: r["option-text"], children: t })
|
|
72
|
+
] }) : /* @__PURE__ */ m(B, { children: [
|
|
73
|
+
c && /* @__PURE__ */ e(
|
|
74
|
+
"span",
|
|
75
|
+
{
|
|
76
|
+
className: s(
|
|
77
|
+
r["interactive-icon"],
|
|
78
|
+
r["interactive-icon-leading"]
|
|
79
|
+
),
|
|
80
|
+
children: /* @__PURE__ */ e(d, { name: c, isInlineBlock: !1 })
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
/* @__PURE__ */ e("span", { className: r["option-text"], children: t }),
|
|
84
|
+
p && /* @__PURE__ */ e(
|
|
85
|
+
"span",
|
|
86
|
+
{
|
|
87
|
+
className: s(
|
|
88
|
+
r["interactive-icon"],
|
|
89
|
+
r["interactive-icon-trailing"]
|
|
90
|
+
),
|
|
91
|
+
children: /* @__PURE__ */ e(d, { name: p, isInlineBlock: !1 })
|
|
92
|
+
}
|
|
93
|
+
)
|
|
94
|
+
] })
|
|
95
|
+
}
|
|
96
|
+
), a = Object.freeze({
|
|
97
|
+
Root: O,
|
|
98
|
+
Trigger: R,
|
|
99
|
+
Popover: T,
|
|
100
|
+
/**
|
|
101
|
+
* Note that this only acts as a view layer,
|
|
102
|
+
* it does not participate in the search logic.
|
|
103
|
+
* This is left for the consumer to implement.
|
|
104
|
+
*/
|
|
105
|
+
SearchInput: j,
|
|
106
|
+
List: k,
|
|
107
|
+
Option: C
|
|
108
|
+
}), w = ({
|
|
109
|
+
label: i,
|
|
110
|
+
helperText: t,
|
|
111
|
+
error: n,
|
|
112
|
+
id: c,
|
|
113
|
+
searchProps: o,
|
|
114
|
+
options: p,
|
|
115
|
+
listLabel: h,
|
|
116
|
+
listHeight: S = "240px",
|
|
117
|
+
onScroll: g,
|
|
118
|
+
onChangeSelectedOption: v,
|
|
119
|
+
onChangeVFocusedOption: N,
|
|
120
|
+
onSearchBlur: f,
|
|
121
|
+
...I
|
|
122
|
+
}) => {
|
|
123
|
+
const x = F();
|
|
124
|
+
return /* @__PURE__ */ e(
|
|
125
|
+
L,
|
|
126
|
+
{
|
|
127
|
+
label: i,
|
|
128
|
+
helperText: t,
|
|
129
|
+
error: n,
|
|
130
|
+
id: c ?? x,
|
|
131
|
+
layout: "vertical",
|
|
132
|
+
...I,
|
|
133
|
+
children: /* @__PURE__ */ m(
|
|
134
|
+
a.Root,
|
|
135
|
+
{
|
|
136
|
+
onChangeSelectedOption: v,
|
|
137
|
+
onChangeVFocusedOption: N,
|
|
138
|
+
children: [
|
|
139
|
+
/* @__PURE__ */ e(a.Trigger, {}),
|
|
140
|
+
/* @__PURE__ */ m(a.Popover, { children: [
|
|
141
|
+
o && /* @__PURE__ */ e(
|
|
142
|
+
a.SearchInput,
|
|
143
|
+
{
|
|
144
|
+
placeholder: o.placeholder,
|
|
145
|
+
value: o.value,
|
|
146
|
+
onChange: o.onChange,
|
|
147
|
+
onBlur: f
|
|
148
|
+
}
|
|
149
|
+
),
|
|
150
|
+
/* @__PURE__ */ e(
|
|
151
|
+
a.List,
|
|
152
|
+
{
|
|
153
|
+
label: h,
|
|
154
|
+
maxHeight: S,
|
|
155
|
+
onScroll: g,
|
|
156
|
+
children: p.map((u) => /* @__PURE__ */ e(a.Option, { ...u }, u.value))
|
|
157
|
+
}
|
|
158
|
+
)
|
|
159
|
+
] })
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
}
|
|
164
|
+
);
|
|
165
|
+
};
|
|
166
|
+
w.displayName = "SuperSelectField";
|
|
167
|
+
export {
|
|
168
|
+
w as SuperSelectField
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/form/super-select/index.tsx"],"sourcesContent":["import { useId } from 'react'\nimport classNames from 'classnames'\nimport { Field } from '../field'\nimport { FlightIcon } from '../../flight-icon'\nimport { ComboBox } from '../../combo-box-primitive'\nimport type {\n\tTComboBoxItem,\n\tComboBoxSearchInputProps,\n\tComboBoxListProps,\n} from '../../combo-box-primitive'\nimport type { FieldProps } from '../field'\nimport s from './form-super-select.module.css'\n\ntype SuperSelectRootProps = {\n\tchildren: React.ReactNode\n\tonChangeSelectedOption?: (option: TComboBoxItem) => void\n\tonChangeVFocusedOption?: (option: TComboBoxItem) => void\n}\n\nconst SuperSelectRoot = ({\n\tchildren,\n\tonChangeSelectedOption,\n\tonChangeVFocusedOption,\n}: SuperSelectRootProps) => {\n\treturn (\n\t\t<ComboBox.Root\n\t\t\tonChangeSelectedOption={onChangeSelectedOption}\n\t\t\tonChangeVFocusedOption={onChangeVFocusedOption}\n\t\t>\n\t\t\t<div className={s.root}>{children}</div>\n\t\t</ComboBox.Root>\n\t)\n}\n\ninterface SuperSelectTriggerProps {\n\tclassName?: string\n}\n\nconst SuperSelectTrigger = ({ className }: SuperSelectTriggerProps) => {\n\treturn (\n\t\t<ComboBox.Trigger className={classNames(s.trigger, className)}>\n\t\t\t<ComboBox.Value />\n\t\t</ComboBox.Trigger>\n\t)\n}\n\ntype SuperSelectPopoverProps = {\n\tchildren: React.ReactNode\n}\n\nconst SuperSelectPopover = ({ children }: SuperSelectPopoverProps) => {\n\treturn <ComboBox.Popover className={s.popover}>{children}</ComboBox.Popover>\n}\n\ntype SuperSelectSearchInputProps = ComboBoxSearchInputProps\n\nconst SuperSelectSearchInput = ({\n\tplaceholder = 'Search',\n\tvalue,\n\tonChange,\n\tonBlur,\n}: SuperSelectSearchInputProps) => {\n\treturn (\n\t\t<div className={s['search-input-wrapper']}>\n\t\t\t<ComboBox.SearchInput\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={onChange}\n\t\t\t\tonBlur={onBlur}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\ntype SuperSelectListProps = ComboBoxListProps\n\nconst SuperSelectList = ({\n\tlabel,\n\tchildren,\n\tclassName,\n\tmaxHeight,\n\tonScroll,\n}: SuperSelectListProps) => {\n\treturn (\n\t\t<ComboBox.List\n\t\t\tlabel={label}\n\t\t\tclassName={classNames(s.list, className)}\n\t\t\tmaxHeight={maxHeight}\n\t\t\tonScroll={onScroll}\n\t\t>\n\t\t\t{children}\n\t\t</ComboBox.List>\n\t)\n}\n\ninterface SuperSelectOptionProps extends TComboBoxItem {\n\tisLoading?: boolean\n\t/**\n\t * Leading icon. Acceptable value: any [icon](https://helios.hashicorp.design/icons/library) name.\n\t */\n\ticon?: string\n\t/**\n\t * Trailing icon. Acceptable value: any [icon](https://helios.hashicorp.design/icons/library) name.\n\t */\n\ttrailingIcon?: string\n\tclassName?: string\n}\n\nconst SuperSelectOption = ({\n\tvalue,\n\tlabel,\n\tisLoading,\n\ticon,\n\tclassName,\n\ttrailingIcon,\n}: SuperSelectOptionProps) => {\n\treturn (\n\t\t<ComboBox.Item\n\t\t\tvalue={value}\n\t\t\tlabel={label}\n\t\t\tclassName={classNames(s.option, className)}\n\t\t>\n\t\t\t{isLoading ? (\n\t\t\t\t<div className={s['interactive-loading-wrapper']}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\ts['interactive-icon'],\n\t\t\t\t\t\t\ts['interactive-icon-leading']\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlightIcon name=\"loading\" isInlineBlock={false} />\n\t\t\t\t\t</div>\n\t\t\t\t\t<span className={s['option-text']}>{label}</span>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{icon && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\ts['interactive-icon'],\n\t\t\t\t\t\t\t\ts['interactive-icon-leading']\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlightIcon name={icon} isInlineBlock={false} />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t\t<span className={s['option-text']}>{label}</span>\n\t\t\t\t\t{trailingIcon && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\ts['interactive-icon'],\n\t\t\t\t\t\t\t\ts['interactive-icon-trailing']\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlightIcon name={trailingIcon} isInlineBlock={false} />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</ComboBox.Item>\n\t)\n}\n\ntype TSuperSelectOption = TComboBoxItem\n\nconst SuperSelect = Object.freeze({\n\tRoot: SuperSelectRoot,\n\tTrigger: SuperSelectTrigger,\n\tPopover: SuperSelectPopover,\n\t/**\n\t * Note that this only acts as a view layer,\n\t * it does not participate in the search logic.\n\t * This is left for the consumer to implement.\n\t */\n\tSearchInput: SuperSelectSearchInput,\n\tList: SuperSelectList,\n\tOption: SuperSelectOption,\n})\n\ninterface SuperSelectFieldProps\n\textends Omit<FieldProps, 'children' | 'id' | 'layout'> {\n\tid?: string\n\toptions: SuperSelectOptionProps[]\n\t/**\n\t * @default false\n\t */\n\tsearchProps?: SuperSelectSearchInputProps\n\t/**\n\t * Used for assistive technologies,\n\t * indicate the category of options you are presenting\n\t * eg. Schools | Languages | Countries\n\t */\n\tlistLabel: string\n\t/**\n\t * Is actually a `max-height` for the list.\n\t * Pass this when you have a lot of options and want to limit the height of the list.\n\t * @default `240px`\n\t */\n\tlistHeight?: `${number}em` | `${number}px` | `${number}%`\n\t/**\n\t * Callback for when the list is scrolled.\n\t * This is useful for implementing pagination, recommended for large lists.\n\t */\n\tonScroll?: (e: React.UIEvent<HTMLUListElement>) => void\n\tonChangeSelectedOption?: (option: SuperSelectOptionProps) => void\n\tonChangeVFocusedOption?: (option: SuperSelectOptionProps) => void\n\tonSearchBlur?: () => void\n}\n\n/**\n * Convenience component for using {@link SuperSelect}\n * with a {@link Field} component. This should cover most use cases\n * unless you need advanced patterns like pagination, async options, etc. outside of a form context.\n */\nconst SuperSelectField = ({\n\tlabel,\n\thelperText,\n\terror,\n\tid,\n\tsearchProps,\n\toptions,\n\tlistLabel,\n\tlistHeight = '240px',\n\tonScroll,\n\tonChangeSelectedOption,\n\tonChangeVFocusedOption,\n\tonSearchBlur,\n\t...rest\n}: SuperSelectFieldProps) => {\n\tconst genID = useId()\n\tconst fieldId = id ?? genID\n\n\treturn (\n\t\t<Field\n\t\t\tlabel={label}\n\t\t\thelperText={helperText}\n\t\t\terror={error}\n\t\t\tid={fieldId}\n\t\t\tlayout={'vertical'}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<SuperSelect.Root\n\t\t\t\tonChangeSelectedOption={onChangeSelectedOption}\n\t\t\t\tonChangeVFocusedOption={onChangeVFocusedOption}\n\t\t\t>\n\t\t\t\t<SuperSelect.Trigger />\n\t\t\t\t<SuperSelect.Popover>\n\t\t\t\t\t{searchProps && (\n\t\t\t\t\t\t<SuperSelect.SearchInput\n\t\t\t\t\t\t\tplaceholder={searchProps.placeholder}\n\t\t\t\t\t\t\tvalue={searchProps.value}\n\t\t\t\t\t\t\tonChange={searchProps.onChange}\n\t\t\t\t\t\t\tonBlur={onSearchBlur}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<SuperSelect.List\n\t\t\t\t\t\tlabel={listLabel}\n\t\t\t\t\t\tmaxHeight={listHeight}\n\t\t\t\t\t\tonScroll={onScroll}\n\t\t\t\t\t>\n\t\t\t\t\t\t{options.map((option) => (\n\t\t\t\t\t\t\t<SuperSelect.Option key={option.value} {...option} />\n\t\t\t\t\t\t))}\n\t\t\t\t\t</SuperSelect.List>\n\t\t\t\t</SuperSelect.Popover>\n\t\t\t</SuperSelect.Root>\n\t\t</Field>\n\t)\n}\n\nSuperSelectField.displayName = 'SuperSelectField'\n\nexport type {\n\tTSuperSelectOption,\n\tSuperSelectOptionProps,\n\tSuperSelectSearchInputProps,\n}\n\nexport { SuperSelectField }\n"],"names":["SuperSelectRoot","children","onChangeSelectedOption","onChangeVFocusedOption","jsx","ComboBox","s","SuperSelectTrigger","className","classNames","SuperSelectPopover","SuperSelectSearchInput","placeholder","value","onChange","onBlur","SuperSelectList","label","maxHeight","onScroll","SuperSelectOption","isLoading","icon","trailingIcon","jsxs","FlightIcon","Fragment","SuperSelect","SuperSelectField","helperText","error","id","searchProps","options","listLabel","listHeight","onSearchBlur","rest","genID","useId","Field","option"],"mappings":";;;;;;;AAmBA,MAAMA,IAAkB,CAAC;AAAA,EACxB,UAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,wBAAAC;AACD,MAEE,gBAAAC;AAAA,EAACC,EAAS;AAAA,EAAT;AAAA,IACA,wBAAAH;AAAA,IACA,wBAAAC;AAAA,IAEA,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWE,EAAE,MAAO,UAAAL,EAAA,CAAS;AAAA,EAAA;AAAA,GAS/BM,IAAqB,CAAC,EAAE,WAAAC,QAE5B,gBAAAJ,EAACC,EAAS,SAAT,EAAiB,WAAWI,EAAWH,EAAE,SAASE,CAAS,GAC3D,UAAA,gBAAAJ,EAACC,EAAS,OAAT,CAAA,CAAe,GACjB,GAQIK,IAAqB,CAAC,EAAE,UAAAT,0BACrBI,EAAS,SAAT,EAAiB,WAAWC,EAAE,SAAU,UAAAL,GAAS,GAKpDU,IAAyB,CAAC;AAAA,EAC/B,aAAAC,IAAc;AAAA,EACd,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AACD,MAEE,gBAAAX,EAAC,OAAA,EAAI,WAAWE,EAAE,sBAAsB,GACvC,UAAA,gBAAAF;AAAA,EAACC,EAAS;AAAA,EAAT;AAAA,IACA,aAAAO;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,EAAA;AAAA,GAEF,GAMIC,IAAkB,CAAC;AAAA,EACxB,OAAAC;AAAA,EACA,UAAAhB;AAAA,EACA,WAAAO;AAAA,EACA,WAAAU;AAAA,EACA,UAAAC;AACD,MAEE,gBAAAf;AAAA,EAACC,EAAS;AAAA,EAAT;AAAA,IACA,OAAAY;AAAA,IACA,WAAWR,EAAWH,EAAE,MAAME,CAAS;AAAA,IACvC,WAAAU;AAAA,IACA,UAAAC;AAAA,IAEC,UAAAlB;AAAA,EAAA;AAAA,GAkBEmB,IAAoB,CAAC;AAAA,EAC1B,OAAAP;AAAA,EACA,OAAAI;AAAA,EACA,WAAAI;AAAA,EACA,MAAAC;AAAA,EACA,WAAAd;AAAA,EACA,cAAAe;AACD,MAEE,gBAAAnB;AAAA,EAACC,EAAS;AAAA,EAAT;AAAA,IACA,OAAAQ;AAAA,IACA,OAAAI;AAAA,IACA,WAAWR,EAAWH,EAAE,QAAQE,CAAS;AAAA,IAExC,cACA,gBAAAgB,EAAC,OAAA,EAAI,WAAWlB,EAAE,6BAA6B,GAC9C,UAAA;AAAA,MAAA,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,WAAWK;AAAA,YACVH,EAAE,kBAAkB;AAAA,YACpBA,EAAE,0BAA0B;AAAA,UAAA;AAAA,UAG7B,UAAA,gBAAAF,EAACqB,GAAA,EAAW,MAAK,WAAU,eAAe,GAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,wBAEjD,QAAA,EAAK,WAAWnB,EAAE,aAAa,GAAI,UAAAW,EAAA,CAAM;AAAA,IAAA,EAAA,CAC3C,IAEA,gBAAAO,EAAAE,GAAA,EACE,UAAA;AAAA,MAAAJ,KACA,gBAAAlB;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,WAAWK;AAAA,YACVH,EAAE,kBAAkB;AAAA,YACpBA,EAAE,0BAA0B;AAAA,UAAA;AAAA,UAG7B,UAAA,gBAAAF,EAACqB,GAAA,EAAW,MAAMH,GAAM,eAAe,GAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,wBAG/C,QAAA,EAAK,WAAWhB,EAAE,aAAa,GAAI,UAAAW,GAAM;AAAA,MACzCM,KACA,gBAAAnB;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,WAAWK;AAAA,YACVH,EAAE,kBAAkB;AAAA,YACpBA,EAAE,2BAA2B;AAAA,UAAA;AAAA,UAG9B,UAAA,gBAAAF,EAACqB,GAAA,EAAW,MAAMF,GAAc,eAAe,GAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IACvD,EAAA,CAEF;AAAA,EAAA;AAAA,GAQEI,IAAc,OAAO,OAAO;AAAA,EACjC,MAAM3B;AAAA,EACN,SAASO;AAAA,EACT,SAASG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,aAAaC;AAAA,EACb,MAAMK;AAAA,EACN,QAAQI;AACT,CAAC,GAqCKQ,IAAmB,CAAC;AAAA,EACzB,OAAAX;AAAA,EACA,YAAAY;AAAA,EACA,OAAAC;AAAA,EACA,IAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,UAAAhB;AAAA,EACA,wBAAAjB;AAAA,EACA,wBAAAC;AAAA,EACA,cAAAiC;AAAA,EACA,GAAGC;AACJ,MAA6B;AAC5B,QAAMC,IAAQC,EAAA;AAGd,SACC,gBAAAnC;AAAA,IAACoC;AAAA,IAAA;AAAA,MACA,OAAAvB;AAAA,MACA,YAAAY;AAAA,MACA,OAAAC;AAAA,MACA,IAPcC,KAAMO;AAAA,MAQpB,QAAQ;AAAA,MACP,GAAGD;AAAA,MAEJ,UAAA,gBAAAb;AAAA,QAACG,EAAY;AAAA,QAAZ;AAAA,UACA,wBAAAzB;AAAA,UACA,wBAAAC;AAAA,UAEA,UAAA;AAAA,YAAA,gBAAAC,EAACuB,EAAY,SAAZ,EAAoB;AAAA,YACrB,gBAAAH,EAACG,EAAY,SAAZ,EACC,UAAA;AAAA,cAAAK,KACA,gBAAA5B;AAAA,gBAACuB,EAAY;AAAA,gBAAZ;AAAA,kBACA,aAAaK,EAAY;AAAA,kBACzB,OAAOA,EAAY;AAAA,kBACnB,UAAUA,EAAY;AAAA,kBACtB,QAAQI;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGV,gBAAAhC;AAAA,gBAACuB,EAAY;AAAA,gBAAZ;AAAA,kBACA,OAAOO;AAAA,kBACP,WAAWC;AAAA,kBACX,UAAAhB;AAAA,kBAEC,UAAAc,EAAQ,IAAI,CAACQ,MACb,gBAAArC,EAACuB,EAAY,QAAZ,EAAuC,GAAGc,KAAlBA,EAAO,KAAmB,CACnD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF,EAAA,CACD;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACD;AAAA,EAAA;AAGH;AAEAb,EAAiB,cAAc;"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { HTMLInputTypeAttribute, HTMLProps, ReactNode } from 'react';
|
|
2
|
+
interface TextInputBaseProps {
|
|
3
|
+
/**
|
|
4
|
+
* Sets the native HTML `type` of the `<input>`.
|
|
5
|
+
*/
|
|
6
|
+
type?: HTMLInputTypeAttribute;
|
|
7
|
+
/**
|
|
8
|
+
* Applies an “invalid” appearance to the control but doesn’t modify its logical validity.
|
|
9
|
+
*/
|
|
10
|
+
isInvalid?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* When true, it shows a loading indicator instead of a magnifying glass; only applicable when `type="search"`.
|
|
13
|
+
*/
|
|
14
|
+
isLoading?: boolean;
|
|
15
|
+
isRequired?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
id?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Can be used to supply any props that the native `<input>` element supports (such as `value`, `placeholder`, in addition to events like `onChange` and `onBlur`)
|
|
20
|
+
*/
|
|
21
|
+
field: HTMLProps<HTMLInputElement>;
|
|
22
|
+
/**
|
|
23
|
+
* Sets the size of the input to match either medium Buttons or large Buttons.
|
|
24
|
+
*/
|
|
25
|
+
size?: 'medium' | 'large';
|
|
26
|
+
error?: ReactNode;
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
}
|
|
29
|
+
declare const TextInputBase: {
|
|
30
|
+
({ type, isInvalid, isLoading, isRequired, className, id, field, size, error, ...rest }: TextInputBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
displayName: string;
|
|
32
|
+
};
|
|
33
|
+
interface TextInputProps {
|
|
34
|
+
/**
|
|
35
|
+
* When provided, appends a badge next to the label text.
|
|
36
|
+
*/
|
|
37
|
+
badgeText?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the native HTML `type` of the `<input>`.
|
|
40
|
+
*/
|
|
41
|
+
type?: HTMLInputTypeAttribute;
|
|
42
|
+
/**
|
|
43
|
+
* Applies an “invalid” appearance to the control but doesn’t modify its logical validity.
|
|
44
|
+
*/
|
|
45
|
+
isInvalid?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* When true, it shows a loading indicator instead of a magnifying glass; only applicable when `type="search"`.
|
|
48
|
+
*/
|
|
49
|
+
isLoading?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Appends a `Required` indicator next to the label text and sets the `required` attribute on the control when user input is required.
|
|
52
|
+
*/
|
|
53
|
+
isRequired?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Appends an `Optional` indicator next to the label text when user input is optional.
|
|
56
|
+
*/
|
|
57
|
+
isOptional?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Input control’s ID attribute.
|
|
60
|
+
*
|
|
61
|
+
* By default, the ID is automatically generated by the component. Use this argument to pass a custom ID.
|
|
62
|
+
*/
|
|
63
|
+
id?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Container that renders its content inside the `<label>` element. The content can be a simple string or a `ReactNode`, in which case it inherits the text style.
|
|
66
|
+
*
|
|
67
|
+
* The `for` attribute of the label is automatically generated using the `controlId` value of the control.
|
|
68
|
+
*/
|
|
69
|
+
label?: ReactNode;
|
|
70
|
+
/**
|
|
71
|
+
* Container that renders its content inside the "helper text" block. The content can be a simple string or a `ReactNode`, in which case it inherits the text style.
|
|
72
|
+
*
|
|
73
|
+
* The `id` attribute of the message is automatically generated using the `controlId` value of the control.
|
|
74
|
+
*/
|
|
75
|
+
helperText?: ReactNode;
|
|
76
|
+
/**
|
|
77
|
+
* Container that renders its content inside the "error" block. The content can be a simple string or a `ReactNode`, in which case it inherits the text style.
|
|
78
|
+
*
|
|
79
|
+
* The `id` attribute of the error message is automatically generated using the `controlId` value of the control.
|
|
80
|
+
*/
|
|
81
|
+
error?: ReactNode;
|
|
82
|
+
/**
|
|
83
|
+
* Can be used to supply any props that the native `<input>` element supports (such as `value`, `placeholder`, in addition to events like `onChange` and `onBlur`)
|
|
84
|
+
*/
|
|
85
|
+
field: HTMLProps<HTMLInputElement>;
|
|
86
|
+
className?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Sets the size of the input to match either medium Buttons or large Buttons.
|
|
89
|
+
*/
|
|
90
|
+
size?: 'medium' | 'large';
|
|
91
|
+
disabled?: boolean;
|
|
92
|
+
}
|
|
93
|
+
declare const TextInput: {
|
|
94
|
+
({ badgeText, type, isInvalid, isLoading, isRequired, isOptional, id, label, helperText, error, field, className, size, ...rest }: TextInputProps): import("react/jsx-runtime").JSX.Element;
|
|
95
|
+
displayName: string;
|
|
96
|
+
};
|
|
97
|
+
export type { TextInputBaseProps, TextInputProps };
|
|
98
|
+
export { TextInputBase, TextInput };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import g from "classnames";
|
|
3
|
+
import { useId as x } from "react";
|
|
4
|
+
import { Field as $ } from "../field/index.js";
|
|
5
|
+
import r from "./styles.module.css.js";
|
|
6
|
+
const f = ({
|
|
7
|
+
type: i,
|
|
8
|
+
isInvalid: n,
|
|
9
|
+
isLoading: d,
|
|
10
|
+
isRequired: o,
|
|
11
|
+
className: t,
|
|
12
|
+
id: e,
|
|
13
|
+
field: s,
|
|
14
|
+
size: a = "medium",
|
|
15
|
+
error: m,
|
|
16
|
+
...p
|
|
17
|
+
}) => {
|
|
18
|
+
const u = x();
|
|
19
|
+
return /* @__PURE__ */ c(
|
|
20
|
+
"input",
|
|
21
|
+
{
|
|
22
|
+
id: e ?? u,
|
|
23
|
+
type: i,
|
|
24
|
+
className: g(
|
|
25
|
+
r["text-input"],
|
|
26
|
+
r[`size-${a}`],
|
|
27
|
+
{
|
|
28
|
+
[r.invalid]: n,
|
|
29
|
+
[r.loading]: d
|
|
30
|
+
},
|
|
31
|
+
t
|
|
32
|
+
),
|
|
33
|
+
required: o,
|
|
34
|
+
"aria-describedby": `${m ? "error" : "helper-text"}-${e}`,
|
|
35
|
+
...s,
|
|
36
|
+
...p
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
f.displayName = "TextInputBase";
|
|
41
|
+
const b = ({
|
|
42
|
+
badgeText: i,
|
|
43
|
+
type: n = "text",
|
|
44
|
+
isInvalid: d,
|
|
45
|
+
isLoading: o,
|
|
46
|
+
isRequired: t,
|
|
47
|
+
isOptional: e,
|
|
48
|
+
id: s,
|
|
49
|
+
label: a,
|
|
50
|
+
helperText: m,
|
|
51
|
+
error: p,
|
|
52
|
+
field: u,
|
|
53
|
+
className: l,
|
|
54
|
+
size: y = "medium",
|
|
55
|
+
...N
|
|
56
|
+
}) => {
|
|
57
|
+
const T = x(), I = s ?? T;
|
|
58
|
+
return /* @__PURE__ */ c(
|
|
59
|
+
$,
|
|
60
|
+
{
|
|
61
|
+
label: a,
|
|
62
|
+
badgeText: i,
|
|
63
|
+
helperText: m,
|
|
64
|
+
error: p,
|
|
65
|
+
isRequired: t,
|
|
66
|
+
isOptional: e,
|
|
67
|
+
id: I,
|
|
68
|
+
layout: "vertical",
|
|
69
|
+
className: l,
|
|
70
|
+
children: /* @__PURE__ */ c(
|
|
71
|
+
f,
|
|
72
|
+
{
|
|
73
|
+
id: I,
|
|
74
|
+
type: n,
|
|
75
|
+
isInvalid: d,
|
|
76
|
+
isLoading: o,
|
|
77
|
+
isRequired: t,
|
|
78
|
+
field: u,
|
|
79
|
+
size: y,
|
|
80
|
+
...N
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
b.displayName = "TextInput";
|
|
87
|
+
export {
|
|
88
|
+
b as TextInput,
|
|
89
|
+
f as TextInputBase
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/form/text-input/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport type { HTMLInputTypeAttribute, HTMLProps, ReactNode } from 'react'\nimport { useId } from 'react'\nimport { Field } from '../field'\nimport s from './styles.module.css'\n\ninterface TextInputBaseProps {\n\t/**\n\t * Sets the native HTML `type` of the `<input>`.\n\t */\n\ttype?: HTMLInputTypeAttribute\n\n\t/**\n\t * Applies an “invalid” appearance to the control but doesn’t modify its logical validity.\n\t */\n\tisInvalid?: boolean\n\n\t/**\n\t * When true, it shows a loading indicator instead of a magnifying glass; only applicable when `type=\"search\"`.\n\t */\n\tisLoading?: boolean\n\tisRequired?: boolean\n\tclassName?: string\n\tid?: string\n\n\t/**\n\t * Can be used to supply any props that the native `<input>` element supports (such as `value`, `placeholder`, in addition to events like `onChange` and `onBlur`)\n\t */\n\tfield: HTMLProps<HTMLInputElement>\n\n\t/**\n\t * Sets the size of the input to match either medium Buttons or large Buttons.\n\t */\n\tsize?: 'medium' | 'large'\n\terror?: ReactNode\n\tdisabled?: boolean\n}\n\nconst TextInputBase = ({\n\ttype,\n\tisInvalid,\n\tisLoading,\n\tisRequired,\n\tclassName,\n\tid,\n\tfield,\n\tsize = 'medium',\n\terror,\n\t...rest\n}: TextInputBaseProps) => {\n\tconst generatedId = useId()\n\tconst inputId = id ?? generatedId\n\n\treturn (\n\t\t<input\n\t\t\tid={inputId}\n\t\t\ttype={type}\n\t\t\tclassName={classNames(\n\t\t\t\ts['text-input'],\n\t\t\t\ts[`size-${size}`],\n\t\t\t\t{\n\t\t\t\t\t[s['invalid']]: isInvalid,\n\t\t\t\t\t[s['loading']]: isLoading,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\trequired={isRequired}\n\t\t\taria-describedby={`${error ? 'error' : 'helper-text'}-${id}`}\n\t\t\t{...field}\n\t\t\t{...rest}\n\t\t/>\n\t)\n}\n\nTextInputBase.displayName = 'TextInputBase'\n\ninterface TextInputProps {\n\t/**\n\t * When provided, appends a badge next to the label text.\n\t */\n\tbadgeText?: string\n\n\t/**\n\t * Sets the native HTML `type` of the `<input>`.\n\t */\n\ttype?: HTMLInputTypeAttribute\n\n\t/**\n\t * Applies an “invalid” appearance to the control but doesn’t modify its logical validity.\n\t */\n\tisInvalid?: boolean\n\n\t/**\n\t * When true, it shows a loading indicator instead of a magnifying glass; only applicable when `type=\"search\"`.\n\t */\n\tisLoading?: boolean\n\n\t/**\n\t * Appends a `Required` indicator next to the label text and sets the `required` attribute on the control when user input is required.\n\t */\n\tisRequired?: boolean\n\n\t/**\n\t * Appends an `Optional` indicator next to the label text when user input is optional.\n\t */\n\tisOptional?: boolean\n\n\t/**\n\t * Input control’s ID attribute.\n\t *\n\t * By default, the ID is automatically generated by the component. Use this argument to pass a custom ID.\n\t */\n\tid?: string\n\n\t/**\n\t * Container that renders its content inside the `<label>` element. The content can be a simple string or a `ReactNode`, in which case it inherits the text style.\n\t *\n\t * The `for` attribute of the label is automatically generated using the `controlId` value of the control.\n\t */\n\tlabel?: ReactNode\n\n\t/**\n\t * Container that renders its content inside the \"helper text\" block. The content can be a simple string or a `ReactNode`, in which case it inherits the text style.\n\t *\n\t * The `id` attribute of the message is automatically generated using the `controlId` value of the control.\n\t */\n\thelperText?: ReactNode\n\n\t/**\n\t * Container that renders its content inside the \"error\" block. The content can be a simple string or a `ReactNode`, in which case it inherits the text style.\n\t *\n\t * The `id` attribute of the error message is automatically generated using the `controlId` value of the control.\n\t */\n\terror?: ReactNode\n\n\t/**\n\t * Can be used to supply any props that the native `<input>` element supports (such as `value`, `placeholder`, in addition to events like `onChange` and `onBlur`)\n\t */\n\tfield: HTMLProps<HTMLInputElement>\n\tclassName?: string\n\n\t/**\n\t * Sets the size of the input to match either medium Buttons or large Buttons.\n\t */\n\tsize?: 'medium' | 'large'\n\tdisabled?: boolean\n}\n\nconst TextInput = ({\n\tbadgeText,\n\ttype = 'text',\n\tisInvalid,\n\tisLoading,\n\tisRequired,\n\tisOptional,\n\tid,\n\tlabel,\n\thelperText,\n\terror,\n\tfield,\n\tclassName,\n\tsize = 'medium',\n\t...rest\n}: TextInputProps) => {\n\tconst generatedId = useId()\n\tconst inputId = id ?? generatedId\n\n\treturn (\n\t\t<Field\n\t\t\tlabel={label}\n\t\t\tbadgeText={badgeText}\n\t\t\thelperText={helperText}\n\t\t\terror={error}\n\t\t\tisRequired={isRequired}\n\t\t\tisOptional={isOptional}\n\t\t\tid={inputId}\n\t\t\tlayout=\"vertical\"\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<TextInputBase\n\t\t\t\tid={inputId}\n\t\t\t\ttype={type}\n\t\t\t\tisInvalid={isInvalid}\n\t\t\t\tisLoading={isLoading}\n\t\t\t\tisRequired={isRequired}\n\t\t\t\tfield={field}\n\t\t\t\tsize={size}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t</Field>\n\t)\n}\n\nTextInput.displayName = 'TextInput'\n\nexport type { TextInputBaseProps, TextInputProps }\nexport { TextInputBase, TextInput }\n"],"names":["TextInputBase","type","isInvalid","isLoading","isRequired","className","id","field","size","error","rest","generatedId","useId","jsx","classNames","s","TextInput","badgeText","isOptional","label","helperText","inputId","Field"],"mappings":";;;;;AAsCA,MAAMA,IAAgB,CAAC;AAAA,EACtB,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,GAAGC;AACJ,MAA0B;AACzB,QAAMC,IAAcC,EAAA;AAGpB,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,IAJcP,KAAMK;AAAA,MAKpB,MAAAV;AAAA,MACA,WAAWa;AAAA,QACVC,EAAE,YAAY;AAAA,QACdA,EAAE,QAAQP,CAAI,EAAE;AAAA,QAChB;AAAA,UACC,CAACO,EAAE,OAAU,GAAGb;AAAA,UAChB,CAACa,EAAE,OAAU,GAAGZ;AAAA,QAAA;AAAA,QAEjBE;AAAA,MAAA;AAAA,MAED,UAAUD;AAAA,MACV,oBAAkB,GAAGK,IAAQ,UAAU,aAAa,IAAIH,CAAE;AAAA,MACzD,GAAGC;AAAA,MACH,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEAV,EAAc,cAAc;AA0E5B,MAAMgB,IAAY,CAAC;AAAA,EAClB,WAAAC;AAAA,EACA,MAAAhB,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAc;AAAA,EACA,IAAAZ;AAAA,EACA,OAAAa;AAAA,EACA,YAAAC;AAAA,EACA,OAAAX;AAAA,EACA,OAAAF;AAAA,EACA,WAAAF;AAAA,EACA,MAAAG,IAAO;AAAA,EACP,GAAGE;AACJ,MAAsB;AACrB,QAAMC,IAAcC,EAAA,GACdS,IAAUf,KAAMK;AAEtB,SACC,gBAAAE;AAAA,IAACS;AAAA,IAAA;AAAA,MACA,OAAAH;AAAA,MACA,WAAAF;AAAA,MACA,YAAAG;AAAA,MACA,OAAAX;AAAA,MACA,YAAAL;AAAA,MACA,YAAAc;AAAA,MACA,IAAIG;AAAA,MACJ,QAAO;AAAA,MACP,WAAAhB;AAAA,MAEA,UAAA,gBAAAQ;AAAA,QAACb;AAAA,QAAA;AAAA,UACA,IAAIqB;AAAA,UACJ,MAAApB;AAAA,UACA,WAAAC;AAAA,UACA,WAAAC;AAAA,UACA,YAAAC;AAAA,UACA,OAAAG;AAAA,UACA,MAAAC;AAAA,UACC,GAAGE;AAAA,QAAA;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAM,EAAU,cAAc;"}
|