jvetrau-ds 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/attach/attach.cjs +88 -0
- package/components/attach/attach.cjs.map +1 -0
- package/components/attach/attach.d.cts +18 -0
- package/components/attach/attach.d.ts +18 -0
- package/components/attach/attach.js +86 -0
- package/components/attach/attach.js.map +1 -0
- package/components/attach.cjs +13 -0
- package/components/attach.cjs.map +1 -0
- package/components/attach.d.cts +2 -0
- package/components/attach.d.ts +2 -0
- package/components/attach.js +3 -0
- package/components/attach.js.map +1 -0
- package/components/avatar/avatar.cjs +54 -0
- package/components/avatar/avatar.cjs.map +1 -0
- package/components/avatar/avatar.d.cts +17 -0
- package/components/avatar/avatar.d.ts +17 -0
- package/components/avatar/avatar.js +52 -0
- package/components/avatar/avatar.js.map +1 -0
- package/components/avatar.cjs +13 -0
- package/components/avatar.cjs.map +1 -0
- package/components/avatar.d.cts +2 -0
- package/components/avatar.d.ts +2 -0
- package/components/avatar.js +3 -0
- package/components/avatar.js.map +1 -0
- package/components/button/button.cjs +54 -0
- package/components/button/button.cjs.map +1 -0
- package/components/button/button.d.cts +9 -0
- package/components/button/button.d.ts +9 -0
- package/components/button/button.js +48 -0
- package/components/button/button.js.map +1 -0
- package/components/button-icon/button-icon.cjs +48 -0
- package/components/button-icon/button-icon.cjs.map +1 -0
- package/components/button-icon/button-icon.d.cts +11 -0
- package/components/button-icon/button-icon.d.ts +11 -0
- package/components/button-icon/button-icon.js +42 -0
- package/components/button-icon/button-icon.js.map +1 -0
- package/components/button-icon.cjs +13 -0
- package/components/button-icon.cjs.map +1 -0
- package/components/button-icon.d.cts +3 -0
- package/components/button-icon.d.ts +3 -0
- package/components/button-icon.js +3 -0
- package/components/button-icon.js.map +1 -0
- package/components/button.cjs +13 -0
- package/components/button.cjs.map +1 -0
- package/components/button.d.cts +2 -0
- package/components/button.d.ts +2 -0
- package/components/button.js +3 -0
- package/components/button.js.map +1 -0
- package/components/card/card.cjs +37 -0
- package/components/card/card.cjs.map +1 -0
- package/components/card/card.d.cts +11 -0
- package/components/card/card.d.ts +11 -0
- package/components/card/card.js +35 -0
- package/components/card/card.js.map +1 -0
- package/components/card.cjs +13 -0
- package/components/card.cjs.map +1 -0
- package/components/card.d.cts +2 -0
- package/components/card.d.ts +2 -0
- package/components/card.js +3 -0
- package/components/card.js.map +1 -0
- package/components/checkbox/checkbox.cjs +36 -0
- package/components/checkbox/checkbox.cjs.map +1 -0
- package/components/checkbox/checkbox.d.cts +8 -0
- package/components/checkbox/checkbox.d.ts +8 -0
- package/components/checkbox/checkbox.js +34 -0
- package/components/checkbox/checkbox.js.map +1 -0
- package/components/checkbox.cjs +13 -0
- package/components/checkbox.cjs.map +1 -0
- package/components/checkbox.d.cts +2 -0
- package/components/checkbox.d.ts +2 -0
- package/components/checkbox.js +3 -0
- package/components/checkbox.js.map +1 -0
- package/components/dropdown/dropdown.cjs +122 -0
- package/components/dropdown/dropdown.cjs.map +1 -0
- package/components/dropdown/dropdown.d.cts +26 -0
- package/components/dropdown/dropdown.d.ts +26 -0
- package/components/dropdown/dropdown.js +120 -0
- package/components/dropdown/dropdown.js.map +1 -0
- package/components/dropdown.cjs +13 -0
- package/components/dropdown.cjs.map +1 -0
- package/components/dropdown.d.cts +2 -0
- package/components/dropdown.d.ts +2 -0
- package/components/dropdown.js +3 -0
- package/components/dropdown.js.map +1 -0
- package/components/field/field.cjs +44 -0
- package/components/field/field.cjs.map +1 -0
- package/components/field/field.d.cts +15 -0
- package/components/field/field.d.ts +15 -0
- package/components/field/field.js +42 -0
- package/components/field/field.js.map +1 -0
- package/components/field.cjs +13 -0
- package/components/field.cjs.map +1 -0
- package/components/field.d.cts +2 -0
- package/components/field.d.ts +2 -0
- package/components/field.js +3 -0
- package/components/field.js.map +1 -0
- package/components/helpers/classnames.cjs +22 -0
- package/components/helpers/classnames.cjs.map +1 -0
- package/components/helpers/classnames.d.cts +4 -0
- package/components/helpers/classnames.d.ts +4 -0
- package/components/helpers/classnames.js +20 -0
- package/components/helpers/classnames.js.map +1 -0
- package/components/input/input.cjs +29 -0
- package/components/input/input.cjs.map +1 -0
- package/components/input/input.d.cts +8 -0
- package/components/input/input.d.ts +8 -0
- package/components/input/input.js +27 -0
- package/components/input/input.js.map +1 -0
- package/components/input.cjs +13 -0
- package/components/input.cjs.map +1 -0
- package/components/input.d.cts +2 -0
- package/components/input.d.ts +2 -0
- package/components/input.js +3 -0
- package/components/input.js.map +1 -0
- package/components/logo/logo.cjs +56 -0
- package/components/logo/logo.cjs.map +1 -0
- package/components/logo/logo.d.cts +9 -0
- package/components/logo/logo.d.ts +9 -0
- package/components/logo/logo.js +49 -0
- package/components/logo/logo.js.map +1 -0
- package/components/logo.cjs +13 -0
- package/components/logo.cjs.map +1 -0
- package/components/logo.d.cts +2 -0
- package/components/logo.d.ts +2 -0
- package/components/logo.js +3 -0
- package/components/logo.js.map +1 -0
- package/components/menu/menu.cjs +106 -0
- package/components/menu/menu.cjs.map +1 -0
- package/components/menu/menu.d.cts +18 -0
- package/components/menu/menu.d.ts +18 -0
- package/components/menu/menu.js +100 -0
- package/components/menu/menu.js.map +1 -0
- package/components/menu.cjs +13 -0
- package/components/menu.cjs.map +1 -0
- package/components/menu.d.cts +2 -0
- package/components/menu.d.ts +2 -0
- package/components/menu.js +3 -0
- package/components/menu.js.map +1 -0
- package/components/panel/panel.cjs +37 -0
- package/components/panel/panel.cjs.map +1 -0
- package/components/panel/panel.d.cts +10 -0
- package/components/panel/panel.d.ts +10 -0
- package/components/panel/panel.js +35 -0
- package/components/panel/panel.js.map +1 -0
- package/components/panel.cjs +13 -0
- package/components/panel.cjs.map +1 -0
- package/components/panel.d.cts +2 -0
- package/components/panel.d.ts +2 -0
- package/components/panel.js +3 -0
- package/components/panel.js.map +1 -0
- package/components/progressbar/progressbar.cjs +220 -0
- package/components/progressbar/progressbar.cjs.map +1 -0
- package/components/progressbar/progressbar.d.cts +17 -0
- package/components/progressbar/progressbar.d.ts +17 -0
- package/components/progressbar/progressbar.js +218 -0
- package/components/progressbar/progressbar.js.map +1 -0
- package/components/progressbar.cjs +13 -0
- package/components/progressbar.cjs.map +1 -0
- package/components/progressbar.d.cts +2 -0
- package/components/progressbar.d.ts +2 -0
- package/components/progressbar.js +3 -0
- package/components/progressbar.js.map +1 -0
- package/components/radio/radio.cjs +36 -0
- package/components/radio/radio.cjs.map +1 -0
- package/components/radio/radio.d.cts +8 -0
- package/components/radio/radio.d.ts +8 -0
- package/components/radio/radio.js +34 -0
- package/components/radio/radio.js.map +1 -0
- package/components/radio.cjs +13 -0
- package/components/radio.cjs.map +1 -0
- package/components/radio.d.cts +2 -0
- package/components/radio.d.ts +2 -0
- package/components/radio.js +3 -0
- package/components/radio.js.map +1 -0
- package/components/richedit/richedit.cjs +29 -0
- package/components/richedit/richedit.cjs.map +1 -0
- package/components/richedit/richedit.d.cts +8 -0
- package/components/richedit/richedit.d.ts +8 -0
- package/components/richedit/richedit.js +27 -0
- package/components/richedit/richedit.js.map +1 -0
- package/components/richedit.cjs +13 -0
- package/components/richedit.cjs.map +1 -0
- package/components/richedit.d.cts +2 -0
- package/components/richedit.d.ts +2 -0
- package/components/richedit.js +3 -0
- package/components/richedit.js.map +1 -0
- package/components/search/search.cjs +30 -0
- package/components/search/search.cjs.map +1 -0
- package/components/search/search.d.cts +8 -0
- package/components/search/search.d.ts +8 -0
- package/components/search/search.js +28 -0
- package/components/search/search.js.map +1 -0
- package/components/search.cjs +13 -0
- package/components/search.cjs.map +1 -0
- package/components/search.d.cts +2 -0
- package/components/search.d.ts +2 -0
- package/components/search.js +3 -0
- package/components/search.js.map +1 -0
- package/components/select/select.cjs +31 -0
- package/components/select/select.cjs.map +1 -0
- package/components/select/select.d.cts +8 -0
- package/components/select/select.d.ts +8 -0
- package/components/select/select.js +29 -0
- package/components/select/select.js.map +1 -0
- package/components/select.cjs +13 -0
- package/components/select.cjs.map +1 -0
- package/components/select.d.cts +2 -0
- package/components/select.d.ts +2 -0
- package/components/select.js +3 -0
- package/components/select.js.map +1 -0
- package/components/tabs/tabs.cjs +19 -0
- package/components/tabs/tabs.cjs.map +1 -0
- package/components/tabs/tabs.d.cts +7 -0
- package/components/tabs/tabs.d.ts +7 -0
- package/components/tabs/tabs.js +17 -0
- package/components/tabs/tabs.js.map +1 -0
- package/components/tabs.cjs +13 -0
- package/components/tabs.cjs.map +1 -0
- package/components/tabs.d.cts +2 -0
- package/components/tabs.d.ts +2 -0
- package/components/tabs.js +3 -0
- package/components/tabs.js.map +1 -0
- package/components/tag/tag.cjs +28 -0
- package/components/tag/tag.cjs.map +1 -0
- package/components/tag/tag.d.cts +8 -0
- package/components/tag/tag.d.ts +8 -0
- package/components/tag/tag.js +26 -0
- package/components/tag/tag.js.map +1 -0
- package/components/tag.cjs +13 -0
- package/components/tag.cjs.map +1 -0
- package/components/tag.d.cts +2 -0
- package/components/tag.d.ts +2 -0
- package/components/tag.js +3 -0
- package/components/tag.js.map +1 -0
- package/components/textarea/textarea.cjs +29 -0
- package/components/textarea/textarea.cjs.map +1 -0
- package/components/textarea/textarea.d.cts +8 -0
- package/components/textarea/textarea.d.ts +8 -0
- package/components/textarea/textarea.js +27 -0
- package/components/textarea/textarea.js.map +1 -0
- package/components/textarea.cjs +13 -0
- package/components/textarea.cjs.map +1 -0
- package/components/textarea.d.cts +2 -0
- package/components/textarea.d.ts +2 -0
- package/components/textarea.js +3 -0
- package/components/textarea.js.map +1 -0
- package/components/video/video.cjs +348 -0
- package/components/video/video.cjs.map +1 -0
- package/components/video/video.d.cts +29 -0
- package/components/video/video.d.ts +29 -0
- package/components/video/video.js +339 -0
- package/components/video/video.js.map +1 -0
- package/components/video.cjs +13 -0
- package/components/video.cjs.map +1 -0
- package/components/video.d.cts +2 -0
- package/components/video.d.ts +2 -0
- package/components/video.js +3 -0
- package/components/video.js.map +1 -0
- package/components.cjs +106 -0
- package/components.cjs.map +1 -0
- package/components.d.cts +18 -0
- package/components.d.ts +18 -0
- package/components.js +18 -0
- package/components.js.map +1 -0
- package/icon-types.d.cts +2 -57
- package/icon-types.d.ts +2 -57
- package/icons/assets/arrow-link.cjs +14 -0
- package/icons/assets/arrow-link.cjs.map +1 -0
- package/icons/assets/arrow-link.d.cts +6 -0
- package/icons/assets/arrow-link.d.ts +6 -0
- package/icons/assets/arrow-link.js +12 -0
- package/icons/assets/arrow-link.js.map +1 -0
- package/icons/assets/arrow-right.cjs +14 -0
- package/icons/assets/arrow-right.cjs.map +1 -0
- package/icons/assets/arrow-right.d.cts +6 -0
- package/icons/assets/arrow-right.d.ts +6 -0
- package/icons/assets/arrow-right.js +12 -0
- package/icons/assets/arrow-right.js.map +1 -0
- package/icons/assets/chevron-right.cjs +14 -0
- package/icons/assets/chevron-right.cjs.map +1 -0
- package/icons/assets/chevron-right.d.cts +6 -0
- package/icons/assets/chevron-right.d.ts +6 -0
- package/icons/assets/chevron-right.js +12 -0
- package/icons/assets/chevron-right.js.map +1 -0
- package/icons/assets/fullscreen.cjs +14 -0
- package/icons/assets/fullscreen.cjs.map +1 -0
- package/icons/assets/fullscreen.d.cts +6 -0
- package/icons/assets/fullscreen.d.ts +6 -0
- package/icons/assets/fullscreen.js +12 -0
- package/icons/assets/fullscreen.js.map +1 -0
- package/icons/assets/pause.cjs +14 -0
- package/icons/assets/pause.cjs.map +1 -0
- package/icons/assets/pause.d.cts +6 -0
- package/icons/assets/pause.d.ts +6 -0
- package/icons/assets/pause.js +12 -0
- package/icons/assets/pause.js.map +1 -0
- package/icons/assets/play.cjs +14 -0
- package/icons/assets/play.cjs.map +1 -0
- package/icons/assets/play.d.cts +6 -0
- package/icons/assets/play.d.ts +6 -0
- package/icons/assets/play.js +12 -0
- package/icons/assets/play.js.map +1 -0
- package/icons/assets/settings.cjs +14 -0
- package/icons/assets/settings.cjs.map +1 -0
- package/icons/assets/settings.d.cts +6 -0
- package/icons/assets/settings.d.ts +6 -0
- package/icons/assets/settings.js +12 -0
- package/icons/assets/settings.js.map +1 -0
- package/icons/assets/sound-off.cjs +14 -0
- package/icons/assets/sound-off.cjs.map +1 -0
- package/icons/assets/sound-off.d.cts +6 -0
- package/icons/assets/sound-off.d.ts +6 -0
- package/icons/assets/sound-off.js +12 -0
- package/icons/assets/sound-off.js.map +1 -0
- package/icons/assets/sound.cjs +14 -0
- package/icons/assets/sound.cjs.map +1 -0
- package/icons/assets/sound.d.cts +6 -0
- package/icons/assets/sound.d.ts +6 -0
- package/icons/assets/sound.js +12 -0
- package/icons/assets/sound.js.map +1 -0
- package/icons/icon.cjs +43 -0
- package/icons/icon.cjs.map +1 -0
- package/icons/icon.d.cts +10 -0
- package/icons/icon.d.ts +10 -0
- package/icons/icon.js +41 -0
- package/icons/icon.js.map +1 -0
- package/icons/manifest.cjs +63 -0
- package/icons/manifest.cjs.map +1 -0
- package/icons/manifest.d.cts +2 -0
- package/icons/manifest.d.ts +2 -0
- package/icons/manifest.js +61 -0
- package/icons/manifest.js.map +1 -0
- package/icons/public.cjs +16 -0
- package/icons/public.cjs.map +1 -0
- package/icons/public.d.cts +3 -0
- package/icons/public.d.ts +3 -0
- package/icons/public.js +3 -0
- package/icons/public.js.map +1 -0
- package/icons/registry.cjs +11 -0
- package/icons/registry.cjs.map +1 -0
- package/icons/registry.d.cts +6 -0
- package/icons/registry.d.ts +6 -0
- package/icons/registry.js +9 -0
- package/icons/registry.js.map +1 -0
- package/icons/types.cjs +4 -0
- package/icons/types.cjs.map +1 -0
- package/icons/types.d.cts +2 -0
- package/icons/types.d.ts +2 -0
- package/icons/types.js +3 -0
- package/icons/types.js.map +1 -0
- package/icons.cjs +7 -192
- package/icons.cjs.map +1 -1
- package/icons.d.cts +3 -10
- package/icons.d.ts +3 -10
- package/icons.js +1 -197
- package/icons.js.map +1 -1
- package/index.cjs +162 -1640
- package/index.cjs.map +1 -1
- package/index.d.cts +29 -203
- package/index.d.ts +29 -203
- package/index.js +27 -1615
- package/index.js.map +1 -1
- package/layouts/base/base.cjs +37 -0
- package/layouts/base/base.cjs.map +1 -0
- package/layouts/base/base.d.cts +11 -0
- package/layouts/base/base.d.ts +11 -0
- package/layouts/base/base.js +31 -0
- package/layouts/base/base.js.map +1 -0
- package/layouts/base.cjs +13 -0
- package/layouts/base.cjs.map +1 -0
- package/layouts/base.d.cts +3 -0
- package/layouts/base.d.ts +3 -0
- package/layouts/base.js +3 -0
- package/layouts/base.js.map +1 -0
- package/layouts/foundation/foundation.cjs +31 -0
- package/layouts/foundation/foundation.cjs.map +1 -0
- package/layouts/foundation/foundation.d.cts +9 -0
- package/layouts/foundation/foundation.d.ts +9 -0
- package/layouts/foundation/foundation.js +29 -0
- package/layouts/foundation/foundation.js.map +1 -0
- package/layouts/foundation.cjs +13 -0
- package/layouts/foundation.cjs.map +1 -0
- package/layouts/foundation.d.cts +2 -0
- package/layouts/foundation.d.ts +2 -0
- package/layouts/foundation.js +3 -0
- package/layouts/foundation.js.map +1 -0
- package/layouts/public.cjs +28 -0
- package/layouts/public.cjs.map +1 -0
- package/layouts/public.d.cts +4 -0
- package/layouts/public.d.ts +4 -0
- package/layouts/public.js +5 -0
- package/layouts/public.js.map +1 -0
- package/layouts/sidebar/sidebar.cjs +43 -0
- package/layouts/sidebar/sidebar.cjs.map +1 -0
- package/layouts/sidebar/sidebar.d.cts +13 -0
- package/layouts/sidebar/sidebar.d.ts +13 -0
- package/layouts/sidebar/sidebar.js +37 -0
- package/layouts/sidebar/sidebar.js.map +1 -0
- package/layouts/sidebar.cjs +13 -0
- package/layouts/sidebar.cjs.map +1 -0
- package/layouts/sidebar.d.cts +3 -0
- package/layouts/sidebar.d.ts +3 -0
- package/layouts/sidebar.js +3 -0
- package/layouts/sidebar.js.map +1 -0
- package/layouts.cjs +22 -94
- package/layouts.cjs.map +1 -1
- package/layouts.d.cts +4 -25
- package/layouts.d.ts +4 -25
- package/layouts.js +3 -94
- package/layouts.js.map +1 -1
- package/lib/naming.cjs +45 -0
- package/lib/naming.cjs.map +1 -0
- package/lib/naming.d.cts +11 -0
- package/lib/naming.d.ts +11 -0
- package/lib/naming.js +35 -0
- package/lib/naming.js.map +1 -0
- package/lib/resolve-asset.cjs +17 -0
- package/lib/resolve-asset.cjs.map +1 -0
- package/lib/resolve-asset.d.cts +3 -0
- package/lib/resolve-asset.d.ts +3 -0
- package/lib/resolve-asset.js +14 -0
- package/lib/resolve-asset.js.map +1 -0
- package/package.json +1 -1
- package/patterns/footer/footer.cjs +23 -0
- package/patterns/footer/footer.cjs.map +1 -0
- package/patterns/footer/footer.d.cts +10 -0
- package/patterns/footer/footer.d.ts +10 -0
- package/patterns/footer/footer.js +21 -0
- package/patterns/footer/footer.js.map +1 -0
- package/patterns/footer.cjs +13 -0
- package/patterns/footer.cjs.map +1 -0
- package/patterns/footer.d.cts +2 -0
- package/patterns/footer.d.ts +2 -0
- package/patterns/footer.js +3 -0
- package/patterns/footer.js.map +1 -0
- package/patterns/header/header.cjs +33 -0
- package/patterns/header/header.cjs.map +1 -0
- package/patterns/header/header.d.cts +10 -0
- package/patterns/header/header.d.ts +10 -0
- package/patterns/header/header.js +31 -0
- package/patterns/header/header.js.map +1 -0
- package/patterns/header.cjs +13 -0
- package/patterns/header.cjs.map +1 -0
- package/patterns/header.d.cts +2 -0
- package/patterns/header.d.ts +2 -0
- package/patterns/header.js +3 -0
- package/patterns/header.js.map +1 -0
- package/patterns/public.cjs +28 -0
- package/patterns/public.cjs.map +1 -0
- package/patterns/public.d.cts +4 -0
- package/patterns/public.d.ts +4 -0
- package/patterns/public.js +5 -0
- package/patterns/public.js.map +1 -0
- package/patterns/screen-header/screen-header.cjs +34 -0
- package/patterns/screen-header/screen-header.cjs.map +1 -0
- package/patterns/screen-header/screen-header.d.cts +11 -0
- package/patterns/screen-header/screen-header.d.ts +11 -0
- package/patterns/screen-header/screen-header.js +32 -0
- package/patterns/screen-header/screen-header.js.map +1 -0
- package/patterns/screen-header.cjs +13 -0
- package/patterns/screen-header.cjs.map +1 -0
- package/patterns/screen-header.d.cts +2 -0
- package/patterns/screen-header.d.ts +2 -0
- package/patterns/screen-header.js +3 -0
- package/patterns/screen-header.js.map +1 -0
- package/patterns.cjs +22 -83
- package/patterns.cjs.map +1 -1
- package/patterns.d.cts +4 -25
- package/patterns.d.ts +4 -25
- package/patterns.js +3 -83
- package/patterns.js.map +1 -1
- package/tokens.cjs +5 -18087
- package/tokens.cjs.map +1 -1
- package/tokens.js +1 -18090
- package/tokens.js.map +1 -1
- package/types-PU1522Kr.d.cts +57 -0
- package/types-PU1522Kr.d.ts +57 -0
- package/assets/src/components/logo/assets/logo-symbol.svg +0 -20
- package/assets/src/components/logo/assets/logo-wordmark.svg +0 -3
- package/assets/src/icons/assets/sound-off.svg +0 -3
- /package/{assets/components/logo → components/logo/assets}/logo-symbol.svg +0 -0
- /package/{assets/components/logo → components/logo/assets}/logo-wordmark.svg +0 -0
- /package/{assets/icons → icons/assets}/sound-off.svg +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
require('./attach.css');
|
|
5
|
+
var classnames = require('../helpers/classnames');
|
|
6
|
+
|
|
7
|
+
function isImageAttach(item) {
|
|
8
|
+
return item.mimeType?.startsWith("image/") ?? false;
|
|
9
|
+
}
|
|
10
|
+
function formatFileSize(sizeBytes) {
|
|
11
|
+
if (sizeBytes === void 0) {
|
|
12
|
+
return "Size unknown";
|
|
13
|
+
}
|
|
14
|
+
if (sizeBytes < 1024) {
|
|
15
|
+
return `${sizeBytes} B`;
|
|
16
|
+
}
|
|
17
|
+
if (sizeBytes < 1024 * 1024) {
|
|
18
|
+
return `${Math.round(sizeBytes / 1024)} KB`;
|
|
19
|
+
}
|
|
20
|
+
return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;
|
|
21
|
+
}
|
|
22
|
+
const Attach = ({
|
|
23
|
+
items,
|
|
24
|
+
onRemove,
|
|
25
|
+
removeLabel = "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
|
|
26
|
+
emptyLabel,
|
|
27
|
+
className = "",
|
|
28
|
+
...props
|
|
29
|
+
}) => {
|
|
30
|
+
if (items.length === 0) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const classes = classnames.classnames("attach", className, {});
|
|
34
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
className: classes,
|
|
38
|
+
...props,
|
|
39
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "attach__list", children: items.map((item) => {
|
|
40
|
+
const isImage = isImageAttach(item);
|
|
41
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
42
|
+
"li",
|
|
43
|
+
{
|
|
44
|
+
className: "attach__item",
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
+
"a",
|
|
48
|
+
{
|
|
49
|
+
className: "attach__link",
|
|
50
|
+
href: item.url,
|
|
51
|
+
target: "_blank",
|
|
52
|
+
rel: "noreferrer",
|
|
53
|
+
children: isImage ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
54
|
+
"img",
|
|
55
|
+
{
|
|
56
|
+
className: "attach__preview",
|
|
57
|
+
src: item.url,
|
|
58
|
+
alt: item.name
|
|
59
|
+
}
|
|
60
|
+
) : /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "attach__file", children: [
|
|
61
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "attach__name", children: item.name }),
|
|
62
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "attach__size", children: formatFileSize(item.sizeBytes) })
|
|
63
|
+
] })
|
|
64
|
+
}
|
|
65
|
+
),
|
|
66
|
+
onRemove && /* @__PURE__ */ jsxRuntime.jsx(
|
|
67
|
+
"button",
|
|
68
|
+
{
|
|
69
|
+
className: "attach__remove",
|
|
70
|
+
type: "button",
|
|
71
|
+
"aria-label": `${removeLabel} \u0444\u0430\u0439\u043B ${item.name}`,
|
|
72
|
+
onClick: () => onRemove(item.id),
|
|
73
|
+
children: removeLabel
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
item.id
|
|
79
|
+
);
|
|
80
|
+
}) })
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
};
|
|
84
|
+
var attach_default = Attach;
|
|
85
|
+
|
|
86
|
+
module.exports = attach_default;
|
|
87
|
+
//# sourceMappingURL=attach.cjs.map
|
|
88
|
+
//# sourceMappingURL=attach.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/attach/attach.tsx"],"names":["classnames","jsx","jsxs"],"mappings":";;;;;;AAoBA,SAAS,cAAc,IAAA,EAAkB;AACvC,EAAA,OAAO,IAAA,CAAK,QAAA,EAAU,UAAA,CAAW,QAAQ,CAAA,IAAK,KAAA;AAChD;AAEA,SAAS,eAAe,SAAA,EAAoB;AAC1C,EAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,IAAA,OAAO,cAAA;AAAA,EACT;AAEA,EAAA,IAAI,YAAY,IAAA,EAAM;AACpB,IAAA,OAAO,GAAG,SAAS,CAAA,EAAA,CAAA;AAAA,EACrB;AAEA,EAAA,IAAI,SAAA,GAAY,OAAO,IAAA,EAAM;AAC3B,IAAA,OAAO,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,SAAA,GAAY,IAAI,CAAC,CAAA,GAAA,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,IAAI,SAAA,GAAY,IAAA,GAAO,IAAA,EAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,GAAA,CAAA;AAChD;AAEA,MAAM,SAAgC,CAAC;AAAA,EACrC,KAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,4CAAA;AAAA,EACd,UAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,OAAA,GAAUA,qBAAA,CAAW,QAAA,EAAU,SAAA,EAAW,EAAE,CAAA;AAElD,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEJ,yCAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBACX,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,QAAA,MAAM,OAAA,GAAU,cAAc,IAAI,CAAA;AAElC,QAAA,uBACEC,eAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,cAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAAD,cAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,cAAA;AAAA,kBACV,MAAM,IAAA,CAAK,GAAA;AAAA,kBACX,MAAA,EAAO,QAAA;AAAA,kBACP,GAAA,EAAI,YAAA;AAAA,kBAEH,QAAA,EAAA,OAAA,mBACCA,cAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAU,iBAAA;AAAA,sBACV,KAAK,IAAA,CAAK,GAAA;AAAA,sBACV,KAAK,IAAA,CAAK;AAAA;AAAA,mBACZ,mBAEAC,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EACd,QAAA,EAAA;AAAA,oCAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EACb,QAAA,EAAA,IAAA,CAAK,IAAA,EACR,CAAA;AAAA,mDAEC,MAAA,EAAA,EAAK,SAAA,EAAU,gBACb,QAAA,EAAA,cAAA,CAAe,IAAA,CAAK,SAAS,CAAA,EAChC;AAAA,mBAAA,EACF;AAAA;AAAA,eAEJ;AAAA,cAEC,QAAA,oBACCA,cAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,gBAAA;AAAA,kBACV,IAAA,EAAK,QAAA;AAAA,kBACL,YAAA,EAAY,CAAA,EAAG,WAAW,CAAA,0BAAA,EAAS,KAAK,IAAI,CAAA,CAAA;AAAA,kBAC5C,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA,CAAK,EAAE,CAAA;AAAA,kBAE9B,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,WAAA;AAAA,UApCG,IAAA,CAAK;AAAA,SAsCZ;AAAA,MAEJ,CAAC,CAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"attach.cjs","sourcesContent":["import React from 'react';\nimport './attach.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AttachItem {\n id: string;\n name: string;\n url: string;\n mimeType?: string;\n sizeBytes?: number;\n}\n\nexport interface AttachProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: AttachItem[];\n onRemove?: (id: string) => void;\n removeLabel?: string;\n emptyLabel?: string;\n}\n\nfunction isImageAttach(item: AttachItem) {\n return item.mimeType?.startsWith('image/') ?? false;\n}\n\nfunction formatFileSize(sizeBytes?: number) {\n if (sizeBytes === undefined) {\n return 'Size unknown';\n }\n\n if (sizeBytes < 1024) {\n return `${sizeBytes} B`;\n }\n\n if (sizeBytes < 1024 * 1024) {\n return `${Math.round(sizeBytes / 1024)} KB`;\n }\n\n return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;\n}\n\nconst Attach: React.FC<AttachProps> = ({\n items,\n onRemove,\n removeLabel = 'Удалить',\n emptyLabel,\n className = '',\n ...props\n}) => {\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames('attach', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <ul className=\"attach__list\">\n {items.map((item) => {\n const isImage = isImageAttach(item);\n\n return (\n <li\n key={item.id}\n className=\"attach__item\"\n >\n <a\n className=\"attach__link\"\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {isImage ? (\n <img\n className=\"attach__preview\"\n src={item.url}\n alt={item.name}\n />\n ) : (\n <span className=\"attach__file\">\n <span className=\"attach__name\">\n {item.name}\n </span>\n\n <span className=\"attach__size\">\n {formatFileSize(item.sizeBytes)}\n </span>\n </span>\n )}\n </a>\n\n {onRemove && (\n <button\n className=\"attach__remove\"\n type=\"button\"\n aria-label={`${removeLabel} файл ${item.name}`}\n onClick={() => onRemove(item.id)}\n >\n {removeLabel}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default Attach;"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface AttachItem {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
url: string;
|
|
7
|
+
mimeType?: string;
|
|
8
|
+
sizeBytes?: number;
|
|
9
|
+
}
|
|
10
|
+
interface AttachProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
11
|
+
items: AttachItem[];
|
|
12
|
+
onRemove?: (id: string) => void;
|
|
13
|
+
removeLabel?: string;
|
|
14
|
+
emptyLabel?: string;
|
|
15
|
+
}
|
|
16
|
+
declare const Attach: React.FC<AttachProps>;
|
|
17
|
+
|
|
18
|
+
export { type AttachItem, type AttachProps, Attach as default };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface AttachItem {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
url: string;
|
|
7
|
+
mimeType?: string;
|
|
8
|
+
sizeBytes?: number;
|
|
9
|
+
}
|
|
10
|
+
interface AttachProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
11
|
+
items: AttachItem[];
|
|
12
|
+
onRemove?: (id: string) => void;
|
|
13
|
+
removeLabel?: string;
|
|
14
|
+
emptyLabel?: string;
|
|
15
|
+
}
|
|
16
|
+
declare const Attach: React.FC<AttachProps>;
|
|
17
|
+
|
|
18
|
+
export { type AttachItem, type AttachProps, Attach as default };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import './attach.css';
|
|
3
|
+
import { classnames } from '../helpers/classnames';
|
|
4
|
+
|
|
5
|
+
function isImageAttach(item) {
|
|
6
|
+
return item.mimeType?.startsWith("image/") ?? false;
|
|
7
|
+
}
|
|
8
|
+
function formatFileSize(sizeBytes) {
|
|
9
|
+
if (sizeBytes === void 0) {
|
|
10
|
+
return "Size unknown";
|
|
11
|
+
}
|
|
12
|
+
if (sizeBytes < 1024) {
|
|
13
|
+
return `${sizeBytes} B`;
|
|
14
|
+
}
|
|
15
|
+
if (sizeBytes < 1024 * 1024) {
|
|
16
|
+
return `${Math.round(sizeBytes / 1024)} KB`;
|
|
17
|
+
}
|
|
18
|
+
return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;
|
|
19
|
+
}
|
|
20
|
+
const Attach = ({
|
|
21
|
+
items,
|
|
22
|
+
onRemove,
|
|
23
|
+
removeLabel = "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
|
|
24
|
+
emptyLabel,
|
|
25
|
+
className = "",
|
|
26
|
+
...props
|
|
27
|
+
}) => {
|
|
28
|
+
if (items.length === 0) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const classes = classnames("attach", className, {});
|
|
32
|
+
return /* @__PURE__ */ jsx(
|
|
33
|
+
"div",
|
|
34
|
+
{
|
|
35
|
+
className: classes,
|
|
36
|
+
...props,
|
|
37
|
+
children: /* @__PURE__ */ jsx("ul", { className: "attach__list", children: items.map((item) => {
|
|
38
|
+
const isImage = isImageAttach(item);
|
|
39
|
+
return /* @__PURE__ */ jsxs(
|
|
40
|
+
"li",
|
|
41
|
+
{
|
|
42
|
+
className: "attach__item",
|
|
43
|
+
children: [
|
|
44
|
+
/* @__PURE__ */ jsx(
|
|
45
|
+
"a",
|
|
46
|
+
{
|
|
47
|
+
className: "attach__link",
|
|
48
|
+
href: item.url,
|
|
49
|
+
target: "_blank",
|
|
50
|
+
rel: "noreferrer",
|
|
51
|
+
children: isImage ? /* @__PURE__ */ jsx(
|
|
52
|
+
"img",
|
|
53
|
+
{
|
|
54
|
+
className: "attach__preview",
|
|
55
|
+
src: item.url,
|
|
56
|
+
alt: item.name
|
|
57
|
+
}
|
|
58
|
+
) : /* @__PURE__ */ jsxs("span", { className: "attach__file", children: [
|
|
59
|
+
/* @__PURE__ */ jsx("span", { className: "attach__name", children: item.name }),
|
|
60
|
+
/* @__PURE__ */ jsx("span", { className: "attach__size", children: formatFileSize(item.sizeBytes) })
|
|
61
|
+
] })
|
|
62
|
+
}
|
|
63
|
+
),
|
|
64
|
+
onRemove && /* @__PURE__ */ jsx(
|
|
65
|
+
"button",
|
|
66
|
+
{
|
|
67
|
+
className: "attach__remove",
|
|
68
|
+
type: "button",
|
|
69
|
+
"aria-label": `${removeLabel} \u0444\u0430\u0439\u043B ${item.name}`,
|
|
70
|
+
onClick: () => onRemove(item.id),
|
|
71
|
+
children: removeLabel
|
|
72
|
+
}
|
|
73
|
+
)
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
item.id
|
|
77
|
+
);
|
|
78
|
+
}) })
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
};
|
|
82
|
+
var attach_default = Attach;
|
|
83
|
+
|
|
84
|
+
export { attach_default as default };
|
|
85
|
+
//# sourceMappingURL=attach.js.map
|
|
86
|
+
//# sourceMappingURL=attach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/attach/attach.tsx"],"names":[],"mappings":"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","file":"attach.js","sourcesContent":["import React from 'react';\nimport './attach.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AttachItem {\n id: string;\n name: string;\n url: string;\n mimeType?: string;\n sizeBytes?: number;\n}\n\nexport interface AttachProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: AttachItem[];\n onRemove?: (id: string) => void;\n removeLabel?: string;\n emptyLabel?: string;\n}\n\nfunction isImageAttach(item: AttachItem) {\n return item.mimeType?.startsWith('image/') ?? false;\n}\n\nfunction formatFileSize(sizeBytes?: number) {\n if (sizeBytes === undefined) {\n return 'Size unknown';\n }\n\n if (sizeBytes < 1024) {\n return `${sizeBytes} B`;\n }\n\n if (sizeBytes < 1024 * 1024) {\n return `${Math.round(sizeBytes / 1024)} KB`;\n }\n\n return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;\n}\n\nconst Attach: React.FC<AttachProps> = ({\n items,\n onRemove,\n removeLabel = 'Удалить',\n emptyLabel,\n className = '',\n ...props\n}) => {\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames('attach', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <ul className=\"attach__list\">\n {items.map((item) => {\n const isImage = isImageAttach(item);\n\n return (\n <li\n key={item.id}\n className=\"attach__item\"\n >\n <a\n className=\"attach__link\"\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {isImage ? (\n <img\n className=\"attach__preview\"\n src={item.url}\n alt={item.name}\n />\n ) : (\n <span className=\"attach__file\">\n <span className=\"attach__name\">\n {item.name}\n </span>\n\n <span className=\"attach__size\">\n {formatFileSize(item.sizeBytes)}\n </span>\n </span>\n )}\n </a>\n\n {onRemove && (\n <button\n className=\"attach__remove\"\n type=\"button\"\n aria-label={`${removeLabel} файл ${item.name}`}\n onClick={() => onRemove(item.id)}\n >\n {removeLabel}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default Attach;"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var attach = require('./attach');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var attach__default = /*#__PURE__*/_interopDefault(attach);
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
module.exports = attach__default.default;
|
|
12
|
+
//# sourceMappingURL=attach.cjs.map
|
|
13
|
+
//# sourceMappingURL=attach.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"attach.cjs","sourcesContent":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"attach.js","sourcesContent":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
require('./avatar.css');
|
|
5
|
+
var classnames = require('../helpers/classnames');
|
|
6
|
+
|
|
7
|
+
const Avatar = ({
|
|
8
|
+
src,
|
|
9
|
+
alt = "",
|
|
10
|
+
initials,
|
|
11
|
+
className = "",
|
|
12
|
+
onClick,
|
|
13
|
+
...props
|
|
14
|
+
}) => {
|
|
15
|
+
const isInteractive = !!onClick;
|
|
16
|
+
const classes = classnames.classnames("avatar", className, {
|
|
17
|
+
"avatar--button": isInteractive
|
|
18
|
+
});
|
|
19
|
+
const content = src ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
20
|
+
"img",
|
|
21
|
+
{
|
|
22
|
+
className: "avatar__image",
|
|
23
|
+
src,
|
|
24
|
+
alt
|
|
25
|
+
}
|
|
26
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "avatar__initials", children: initials });
|
|
27
|
+
if (isInteractive) {
|
|
28
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29
|
+
"button",
|
|
30
|
+
{
|
|
31
|
+
className: classes,
|
|
32
|
+
type: "button",
|
|
33
|
+
"aria-label": props["aria-label"] ?? alt,
|
|
34
|
+
onClick,
|
|
35
|
+
...props,
|
|
36
|
+
children: content
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
className: classes,
|
|
44
|
+
"aria-label": alt,
|
|
45
|
+
...props,
|
|
46
|
+
children: content
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
var avatar_default = Avatar;
|
|
51
|
+
|
|
52
|
+
module.exports = avatar_default;
|
|
53
|
+
//# sourceMappingURL=avatar.cjs.map
|
|
54
|
+
//# sourceMappingURL=avatar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/avatar/avatar.tsx"],"names":["classnames","jsx"],"mappings":";;;;;;AA2BA,MAAM,SAAgC,CAAC;AAAA,EACrC,GAAA;AAAA,EACA,GAAA,GAAM,EAAA;AAAA,EACN,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAC,OAAA;AAExB,EAAA,MAAM,OAAA,GAAUA,qBAAA,CAAW,QAAA,EAAU,SAAA,EAAW;AAAA,IAC9C,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAED,EAAA,MAAM,UAAU,GAAA,mBACdC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,eAAA;AAAA,MACV,GAAA;AAAA,MACA;AAAA;AAAA,GACF,mBAEAA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBACb,QAAA,EAAA,QAAA,EACH,CAAA;AAGF,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,uBACEA,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,OAAA;AAAA,QACX,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,KAAA,CAAM,YAAY,CAAA,IAAK,GAAA;AAAA,QACnC,OAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,YAAA,EAAY,GAAA;AAAA,MACX,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"avatar.cjs","sourcesContent":["import React from 'react';\nimport './avatar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AvatarBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n}\n\ntype AvatarStaticProps =\n AvatarBaseProps &\n React.HTMLAttributes<HTMLDivElement> & {\n onClick?: undefined;\n };\n\ntype AvatarButtonProps =\n AvatarBaseProps &\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n };\n\nexport type AvatarProps =\n | AvatarStaticProps\n | AvatarButtonProps;\n\nconst Avatar: React.FC<AvatarProps> = ({\n src,\n alt = '',\n initials,\n className = '',\n onClick,\n ...props\n}) => {\n const isInteractive = !!onClick;\n\n const classes = classnames('avatar', className, {\n 'avatar--button': isInteractive,\n });\n\n const content = src ? (\n <img\n className=\"avatar__image\"\n src={src}\n alt={alt}\n />\n ) : (\n <span className=\"avatar__initials\">\n {initials}\n </span>\n );\n\n if (isInteractive) {\n return (\n <button\n className={classes}\n type=\"button\"\n aria-label={props['aria-label'] ?? alt}\n onClick={onClick}\n {...props as React.ButtonHTMLAttributes<HTMLButtonElement>}\n >\n {content}\n </button>\n );\n }\n\n return (\n <div\n className={classes}\n aria-label={alt}\n {...props as React.HTMLAttributes<HTMLDivElement>}\n >\n {content}\n </div>\n );\n};\n\nexport default Avatar;"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface AvatarBaseProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
src?: string;
|
|
5
|
+
alt?: string;
|
|
6
|
+
initials?: string;
|
|
7
|
+
}
|
|
8
|
+
type AvatarStaticProps = AvatarBaseProps & React.HTMLAttributes<HTMLDivElement> & {
|
|
9
|
+
onClick?: undefined;
|
|
10
|
+
};
|
|
11
|
+
type AvatarButtonProps = AvatarBaseProps & React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
12
|
+
onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
13
|
+
};
|
|
14
|
+
type AvatarProps = AvatarStaticProps | AvatarButtonProps;
|
|
15
|
+
declare const Avatar: React.FC<AvatarProps>;
|
|
16
|
+
|
|
17
|
+
export { type AvatarBaseProps, type AvatarProps, Avatar as default };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface AvatarBaseProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
src?: string;
|
|
5
|
+
alt?: string;
|
|
6
|
+
initials?: string;
|
|
7
|
+
}
|
|
8
|
+
type AvatarStaticProps = AvatarBaseProps & React.HTMLAttributes<HTMLDivElement> & {
|
|
9
|
+
onClick?: undefined;
|
|
10
|
+
};
|
|
11
|
+
type AvatarButtonProps = AvatarBaseProps & React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
12
|
+
onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
13
|
+
};
|
|
14
|
+
type AvatarProps = AvatarStaticProps | AvatarButtonProps;
|
|
15
|
+
declare const Avatar: React.FC<AvatarProps>;
|
|
16
|
+
|
|
17
|
+
export { type AvatarBaseProps, type AvatarProps, Avatar as default };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import './avatar.css';
|
|
3
|
+
import { classnames } from '../helpers/classnames';
|
|
4
|
+
|
|
5
|
+
const Avatar = ({
|
|
6
|
+
src,
|
|
7
|
+
alt = "",
|
|
8
|
+
initials,
|
|
9
|
+
className = "",
|
|
10
|
+
onClick,
|
|
11
|
+
...props
|
|
12
|
+
}) => {
|
|
13
|
+
const isInteractive = !!onClick;
|
|
14
|
+
const classes = classnames("avatar", className, {
|
|
15
|
+
"avatar--button": isInteractive
|
|
16
|
+
});
|
|
17
|
+
const content = src ? /* @__PURE__ */ jsx(
|
|
18
|
+
"img",
|
|
19
|
+
{
|
|
20
|
+
className: "avatar__image",
|
|
21
|
+
src,
|
|
22
|
+
alt
|
|
23
|
+
}
|
|
24
|
+
) : /* @__PURE__ */ jsx("span", { className: "avatar__initials", children: initials });
|
|
25
|
+
if (isInteractive) {
|
|
26
|
+
return /* @__PURE__ */ jsx(
|
|
27
|
+
"button",
|
|
28
|
+
{
|
|
29
|
+
className: classes,
|
|
30
|
+
type: "button",
|
|
31
|
+
"aria-label": props["aria-label"] ?? alt,
|
|
32
|
+
onClick,
|
|
33
|
+
...props,
|
|
34
|
+
children: content
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
return /* @__PURE__ */ jsx(
|
|
39
|
+
"div",
|
|
40
|
+
{
|
|
41
|
+
className: classes,
|
|
42
|
+
"aria-label": alt,
|
|
43
|
+
...props,
|
|
44
|
+
children: content
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
var avatar_default = Avatar;
|
|
49
|
+
|
|
50
|
+
export { avatar_default as default };
|
|
51
|
+
//# sourceMappingURL=avatar.js.map
|
|
52
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/avatar/avatar.tsx"],"names":[],"mappings":";;;;AA2BA,MAAM,SAAgC,CAAC;AAAA,EACrC,GAAA;AAAA,EACA,GAAA,GAAM,EAAA;AAAA,EACN,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAC,OAAA;AAExB,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,QAAA,EAAU,SAAA,EAAW;AAAA,IAC9C,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAED,EAAA,MAAM,UAAU,GAAA,mBACd,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,eAAA;AAAA,MACV,GAAA;AAAA,MACA;AAAA;AAAA,GACF,mBAEA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBACb,QAAA,EAAA,QAAA,EACH,CAAA;AAGF,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,uBACE,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,OAAA;AAAA,QACX,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,KAAA,CAAM,YAAY,CAAA,IAAK,GAAA;AAAA,QACnC,OAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,YAAA,EAAY,GAAA;AAAA,MACX,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"avatar.js","sourcesContent":["import React from 'react';\nimport './avatar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AvatarBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n}\n\ntype AvatarStaticProps =\n AvatarBaseProps &\n React.HTMLAttributes<HTMLDivElement> & {\n onClick?: undefined;\n };\n\ntype AvatarButtonProps =\n AvatarBaseProps &\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n };\n\nexport type AvatarProps =\n | AvatarStaticProps\n | AvatarButtonProps;\n\nconst Avatar: React.FC<AvatarProps> = ({\n src,\n alt = '',\n initials,\n className = '',\n onClick,\n ...props\n}) => {\n const isInteractive = !!onClick;\n\n const classes = classnames('avatar', className, {\n 'avatar--button': isInteractive,\n });\n\n const content = src ? (\n <img\n className=\"avatar__image\"\n src={src}\n alt={alt}\n />\n ) : (\n <span className=\"avatar__initials\">\n {initials}\n </span>\n );\n\n if (isInteractive) {\n return (\n <button\n className={classes}\n type=\"button\"\n aria-label={props['aria-label'] ?? alt}\n onClick={onClick}\n {...props as React.ButtonHTMLAttributes<HTMLButtonElement>}\n >\n {content}\n </button>\n );\n }\n\n return (\n <div\n className={classes}\n aria-label={alt}\n {...props as React.HTMLAttributes<HTMLDivElement>}\n >\n {content}\n </div>\n );\n};\n\nexport default Avatar;"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var avatar = require('./avatar');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var avatar__default = /*#__PURE__*/_interopDefault(avatar);
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
module.exports = avatar__default.default;
|
|
12
|
+
//# sourceMappingURL=avatar.cjs.map
|
|
13
|
+
//# sourceMappingURL=avatar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"avatar.cjs","sourcesContent":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"avatar.js","sourcesContent":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
require('./button.css');
|
|
6
|
+
var classnames = require('../helpers/classnames');
|
|
7
|
+
var Icon = require('../../icons/icon');
|
|
8
|
+
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var Icon__default = /*#__PURE__*/_interopDefault(Icon);
|
|
12
|
+
|
|
13
|
+
const Button = ({
|
|
14
|
+
state = "default",
|
|
15
|
+
icon,
|
|
16
|
+
className = "",
|
|
17
|
+
disabled = false,
|
|
18
|
+
children,
|
|
19
|
+
...props
|
|
20
|
+
}) => {
|
|
21
|
+
const isIconOnly = !!icon && !children;
|
|
22
|
+
const classes = classnames.classnames("button", className, {
|
|
23
|
+
"button--primary": state === "primary",
|
|
24
|
+
"button--disabled": disabled,
|
|
25
|
+
"button--icon-only": isIconOnly
|
|
26
|
+
});
|
|
27
|
+
let resolvedIcon = icon;
|
|
28
|
+
if (react.isValidElement(icon) && icon.type === Icon__default.default) {
|
|
29
|
+
const iconElement = icon;
|
|
30
|
+
resolvedIcon = react.cloneElement(iconElement, {
|
|
31
|
+
size: iconElement.props.size ?? "s",
|
|
32
|
+
className: classnames.classnames("button__icon", iconElement.props.className),
|
|
33
|
+
"aria-hidden": iconElement.props["aria-hidden"] ?? true,
|
|
34
|
+
focusable: iconElement.props.focusable ?? false
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
38
|
+
"button",
|
|
39
|
+
{
|
|
40
|
+
className: classes,
|
|
41
|
+
disabled,
|
|
42
|
+
...props,
|
|
43
|
+
children: [
|
|
44
|
+
resolvedIcon,
|
|
45
|
+
children
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
var button_default = Button;
|
|
51
|
+
|
|
52
|
+
module.exports = button_default;
|
|
53
|
+
//# sourceMappingURL=button.cjs.map
|
|
54
|
+
//# sourceMappingURL=button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button/button.tsx"],"names":["classnames","isValidElement","Icon","cloneElement","jsxs"],"mappings":";;;;;;;;;;;;AAeA,MAAM,SAAgC,CAAC;AAAA,EACrC,KAAA,GAAQ,SAAA;AAAA,EACR,IAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,UAAA,GAAa,CAAC,CAAC,IAAA,IAAQ,CAAC,QAAA;AAE9B,EAAA,MAAM,OAAA,GAAUA,qBAAA,CAAW,QAAA,EAAU,SAAA,EAAW;AAAA,IAC9C,mBAAmB,KAAA,KAAU,SAAA;AAAA,IAC7B,kBAAA,EAAoB,QAAA;AAAA,IACpB,mBAAA,EAAqB;AAAA,GACtB,CAAA;AAED,EAAA,IAAI,YAAA,GAAe,IAAA;AAEnB,EAAA,IAAIC,oBAAA,CAAe,IAAI,CAAA,IAAK,IAAA,CAAK,SAASC,qBAAA,EAAM;AAC9C,IAAA,MAAM,WAAA,GAAc,IAAA;AAEpB,IAAA,YAAA,GAAeC,mBAAa,WAAA,EAAa;AAAA,MACvC,IAAA,EAAM,WAAA,CAAY,KAAA,CAAM,IAAA,IAAQ,GAAA;AAAA,MAChC,SAAA,EAAWH,qBAAA,CAAW,cAAA,EAAgB,WAAA,CAAY,MAAM,SAAS,CAAA;AAAA,MACjE,aAAA,EAAe,WAAA,CAAY,KAAA,CAAM,aAAa,CAAA,IAAK,IAAA;AAAA,MACnD,SAAA,EAAW,WAAA,CAAY,KAAA,CAAM,SAAA,IAAa;AAAA,KAC3C,CAAA;AAAA,EACH;AAEA,EAAA,uBACEI,eAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,QAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,YAAA;AAAA,QACA;AAAA;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"button.cjs","sourcesContent":["import React, {\n cloneElement,\n isValidElement,\n type ReactElement,\n} from 'react';\nimport './button.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon, { type IconProps } from '../../icons/icon';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n state?: 'default' | 'primary';\n icon?: React.ReactNode;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n state = 'default',\n icon,\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const isIconOnly = !!icon && !children;\n\n const classes = classnames('button', className, {\n 'button--primary': state === 'primary',\n 'button--disabled': disabled,\n 'button--icon-only': isIconOnly,\n });\n\n let resolvedIcon = icon;\n\n if (isValidElement(icon) && icon.type === Icon) {\n const iconElement = icon as ReactElement<IconProps>;\n\n resolvedIcon = cloneElement(iconElement, {\n size: iconElement.props.size ?? 's',\n className: classnames('button__icon', iconElement.props.className),\n 'aria-hidden': iconElement.props['aria-hidden'] ?? true,\n focusable: iconElement.props.focusable ?? false,\n });\n }\n\n return (\n <button\n className={classes}\n disabled={disabled}\n {...props}\n >\n {resolvedIcon}\n {children}\n </button>\n );\n};\n\nexport default Button;"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
+
state?: 'default' | 'primary';
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
declare const Button: React.FC<ButtonProps>;
|
|
8
|
+
|
|
9
|
+
export { type ButtonProps, Button as default };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
+
state?: 'default' | 'primary';
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
declare const Button: React.FC<ButtonProps>;
|
|
8
|
+
|
|
9
|
+
export { type ButtonProps, Button as default };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { isValidElement, cloneElement } from 'react';
|
|
3
|
+
import './button.css';
|
|
4
|
+
import { classnames } from '../helpers/classnames';
|
|
5
|
+
import Icon from '../../icons/icon';
|
|
6
|
+
|
|
7
|
+
const Button = ({
|
|
8
|
+
state = "default",
|
|
9
|
+
icon,
|
|
10
|
+
className = "",
|
|
11
|
+
disabled = false,
|
|
12
|
+
children,
|
|
13
|
+
...props
|
|
14
|
+
}) => {
|
|
15
|
+
const isIconOnly = !!icon && !children;
|
|
16
|
+
const classes = classnames("button", className, {
|
|
17
|
+
"button--primary": state === "primary",
|
|
18
|
+
"button--disabled": disabled,
|
|
19
|
+
"button--icon-only": isIconOnly
|
|
20
|
+
});
|
|
21
|
+
let resolvedIcon = icon;
|
|
22
|
+
if (isValidElement(icon) && icon.type === Icon) {
|
|
23
|
+
const iconElement = icon;
|
|
24
|
+
resolvedIcon = cloneElement(iconElement, {
|
|
25
|
+
size: iconElement.props.size ?? "s",
|
|
26
|
+
className: classnames("button__icon", iconElement.props.className),
|
|
27
|
+
"aria-hidden": iconElement.props["aria-hidden"] ?? true,
|
|
28
|
+
focusable: iconElement.props.focusable ?? false
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return /* @__PURE__ */ jsxs(
|
|
32
|
+
"button",
|
|
33
|
+
{
|
|
34
|
+
className: classes,
|
|
35
|
+
disabled,
|
|
36
|
+
...props,
|
|
37
|
+
children: [
|
|
38
|
+
resolvedIcon,
|
|
39
|
+
children
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
};
|
|
44
|
+
var button_default = Button;
|
|
45
|
+
|
|
46
|
+
export { button_default as default };
|
|
47
|
+
//# sourceMappingURL=button.js.map
|
|
48
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button/button.tsx"],"names":[],"mappings":";;;;;;AAeA,MAAM,SAAgC,CAAC;AAAA,EACrC,KAAA,GAAQ,SAAA;AAAA,EACR,IAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,UAAA,GAAa,CAAC,CAAC,IAAA,IAAQ,CAAC,QAAA;AAE9B,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,QAAA,EAAU,SAAA,EAAW;AAAA,IAC9C,mBAAmB,KAAA,KAAU,SAAA;AAAA,IAC7B,kBAAA,EAAoB,QAAA;AAAA,IACpB,mBAAA,EAAqB;AAAA,GACtB,CAAA;AAED,EAAA,IAAI,YAAA,GAAe,IAAA;AAEnB,EAAA,IAAI,cAAA,CAAe,IAAI,CAAA,IAAK,IAAA,CAAK,SAAS,IAAA,EAAM;AAC9C,IAAA,MAAM,WAAA,GAAc,IAAA;AAEpB,IAAA,YAAA,GAAe,aAAa,WAAA,EAAa;AAAA,MACvC,IAAA,EAAM,WAAA,CAAY,KAAA,CAAM,IAAA,IAAQ,GAAA;AAAA,MAChC,SAAA,EAAW,UAAA,CAAW,cAAA,EAAgB,WAAA,CAAY,MAAM,SAAS,CAAA;AAAA,MACjE,aAAA,EAAe,WAAA,CAAY,KAAA,CAAM,aAAa,CAAA,IAAK,IAAA;AAAA,MACnD,SAAA,EAAW,WAAA,CAAY,KAAA,CAAM,SAAA,IAAa;AAAA,KAC3C,CAAA;AAAA,EACH;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,QAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,YAAA;AAAA,QACA;AAAA;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"button.js","sourcesContent":["import React, {\n cloneElement,\n isValidElement,\n type ReactElement,\n} from 'react';\nimport './button.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon, { type IconProps } from '../../icons/icon';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n state?: 'default' | 'primary';\n icon?: React.ReactNode;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n state = 'default',\n icon,\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const isIconOnly = !!icon && !children;\n\n const classes = classnames('button', className, {\n 'button--primary': state === 'primary',\n 'button--disabled': disabled,\n 'button--icon-only': isIconOnly,\n });\n\n let resolvedIcon = icon;\n\n if (isValidElement(icon) && icon.type === Icon) {\n const iconElement = icon as ReactElement<IconProps>;\n\n resolvedIcon = cloneElement(iconElement, {\n size: iconElement.props.size ?? 's',\n className: classnames('button__icon', iconElement.props.className),\n 'aria-hidden': iconElement.props['aria-hidden'] ?? true,\n focusable: iconElement.props.focusable ?? false,\n });\n }\n\n return (\n <button\n className={classes}\n disabled={disabled}\n {...props}\n >\n {resolvedIcon}\n {children}\n </button>\n );\n};\n\nexport default Button;"]}
|