@edvisor/product-language 0.10.2 → 0.10.3
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/index.d.ts +2 -0
- package/index.js +11271 -0
- package/lib/components/alert-banner/alert-banner.d.ts +15 -0
- package/lib/components/alert-banner/alert-level-flags.d.ts +18 -0
- package/lib/components/alert-banner/index.d.ts +1 -0
- package/lib/components/badge/badge-type-flags.d.ts +18 -0
- package/lib/components/badge/badge.d.ts +5 -0
- package/lib/components/badge/index.d.ts +1 -0
- package/{src/lib/components/card/atoms/card-frame.tsx → lib/components/card/atoms/card-frame.d.ts} +7 -16
- package/lib/components/card/atoms/index.d.ts +1 -0
- package/lib/components/card/card.d.ts +14 -0
- package/lib/components/card/components/card-alert-banner-slot.d.ts +6 -0
- package/lib/components/card/components/card-controls-slot.d.ts +5 -0
- package/lib/components/card/components/card-section-slot.d.ts +11 -0
- package/lib/components/card/components/index.d.ts +3 -0
- package/lib/components/card/index.d.ts +3 -0
- package/lib/components/card/molecules/index.d.ts +1 -0
- package/lib/components/card/molecules/left-right-card.d.ts +16 -0
- package/lib/components/checkbox/checkbox.d.ts +11 -0
- package/lib/components/checkbox/helpers.d.ts +12 -0
- package/lib/components/checkbox/index.d.ts +1 -0
- package/lib/components/date-picker/components/custom-calendar.d.ts +6 -0
- package/lib/components/date-picker/components/index.d.ts +1 -0
- package/lib/components/date-picker/date-picker.d.ts +4 -0
- package/lib/components/date-picker/helpers/date-picker-factory.d.ts +34 -0
- package/lib/components/date-picker/index.d.ts +1 -0
- package/lib/components/divider/divider-type-flags.d.ts +9 -0
- package/lib/components/divider/divider.d.ts +7 -0
- package/lib/components/divider/index.d.ts +1 -0
- package/lib/components/flag/flag-size-flags.d.ts +12 -0
- package/lib/components/flag/flag.d.ts +9 -0
- package/lib/components/flag/flag.list.d.ts +782 -0
- package/lib/components/flag/index.d.ts +1 -0
- package/lib/components/icon/icon-list.d.ts +132 -0
- package/lib/components/icon/icon.d.ts +131 -0
- package/lib/components/icon/index.d.ts +1 -0
- package/lib/components/index.d.ts +24 -0
- package/lib/components/input-field/components/index.d.ts +2 -0
- package/lib/components/input-field/components/labeled-input.d.ts +10 -0
- package/lib/components/input-field/components/stepper.d.ts +7 -0
- package/lib/components/input-field/index.d.ts +3 -0
- package/lib/components/input-field/input-field.d.ts +26 -0
- package/lib/components/input-field/input-number.d.ts +18 -0
- package/lib/components/input-field/input-text.d.ts +14 -0
- package/lib/components/layout/flex.d.ts +16 -0
- package/lib/components/layout/grid-layout.d.ts +11 -0
- package/lib/components/layout/index.d.ts +3 -0
- package/lib/components/layout/left-right-layout.d.ts +34 -0
- package/lib/components/link/index.d.ts +1 -0
- package/lib/components/link/link.d.ts +14 -0
- package/lib/components/modal/index.d.ts +3 -0
- package/lib/components/modal/modal-base.d.ts +28 -0
- package/lib/components/modal/modal-destructive.d.ts +11 -0
- package/lib/components/modal/modal.d.ts +13 -0
- package/lib/components/molecules/avatar/avatar-size-flags.d.ts +12 -0
- package/lib/components/molecules/avatar/avatar.d.ts +12 -0
- package/lib/components/molecules/avatar/index.d.ts +1 -0
- package/lib/components/molecules/button/button-flags.d.ts +44 -0
- package/lib/components/molecules/button/button.d.ts +12 -0
- package/lib/components/molecules/button/index.d.ts +1 -0
- package/lib/components/molecules/index.d.ts +3 -0
- package/lib/components/molecules/input-checkbox/index.d.ts +1 -0
- package/lib/components/molecules/input-checkbox/input-checkbox.d.ts +8 -0
- package/lib/components/organisms/choice-list/choice-list.d.ts +9 -0
- package/lib/components/organisms/choice-list/index.d.ts +1 -0
- package/lib/components/organisms/index.d.ts +2 -0
- package/lib/components/organisms/multi-choice-list/index.d.ts +1 -0
- package/lib/components/organisms/multi-choice-list/multi-choice-list.d.ts +11 -0
- package/lib/components/progress-bar/index.d.ts +1 -0
- package/lib/components/progress-bar/progress-bar-size-flags.d.ts +10 -0
- package/lib/components/progress-bar/progress-bar.d.ts +8 -0
- package/lib/components/radio-button/index.d.ts +1 -0
- package/lib/components/radio-button/radio-button.d.ts +10 -0
- package/lib/components/range-slider/components/bar-chart.d.ts +8 -0
- package/lib/components/range-slider/components/handle.d.ts +12 -0
- package/lib/components/range-slider/components/rail.d.ts +9 -0
- package/lib/components/range-slider/components/slider-component.d.ts +12 -0
- package/lib/components/range-slider/components/slider-inputs.d.ts +14 -0
- package/lib/components/range-slider/components/tick.d.ts +10 -0
- package/lib/components/range-slider/components/track.d.ts +11 -0
- package/lib/components/range-slider/index.d.ts +2 -0
- package/lib/components/range-slider/range-slider.d.ts +15 -0
- package/lib/components/range-slider/slider.d.ts +11 -0
- package/lib/components/range-slider/types.d.ts +11 -0
- package/lib/components/select/components/helpers.d.ts +17 -0
- package/lib/components/select/components/menu-container.d.ts +3 -0
- package/lib/components/select/components/menu-list.d.ts +3 -0
- package/lib/components/select/components/menu-row.d.ts +9 -0
- package/lib/components/select/components/menu.d.ts +3 -0
- package/lib/components/select/components/option.d.ts +3 -0
- package/lib/components/select/components/select-label.d.ts +1 -0
- package/lib/components/select/components/value-component-multi.d.ts +4 -0
- package/lib/components/select/components/value-component-single.d.ts +4 -0
- package/lib/components/select/components/value.d.ts +4 -0
- package/lib/components/select/index.d.ts +3 -0
- package/lib/components/select/select.d.ts +10 -0
- package/lib/components/select/types.d.ts +133 -0
- package/lib/components/select/utils.d.ts +15 -0
- package/{src/lib/components/radio-button/index.tsx → lib/components/spinner/index.d.ts} +1 -1
- package/lib/components/spinner/spinner-size-flags.d.ts +10 -0
- package/lib/components/spinner/spinner.d.ts +9 -0
- package/lib/components/tabs/components/index.d.ts +1 -0
- package/lib/components/tabs/components/tab.d.ts +8 -0
- package/lib/components/tabs/index.d.ts +1 -0
- package/lib/components/tabs/tabs.d.ts +16 -0
- package/lib/components/tag/components/close-button.d.ts +8 -0
- package/lib/components/tag/components/index.d.ts +2 -0
- package/lib/components/tag/components/tag-label.d.ts +8 -0
- package/lib/components/tag/index.d.ts +1 -0
- package/lib/components/tag/tag.d.ts +10 -0
- package/lib/components/thumbnail/index.d.ts +1 -0
- package/lib/components/thumbnail/thumbnail-size-flags.d.ts +10 -0
- package/lib/components/thumbnail/thumbnail.d.ts +10 -0
- package/lib/components/tooltip/index.d.ts +1 -0
- package/lib/components/tooltip/tooltip.d.ts +26 -0
- package/lib/components/tree-view/components/tree-node.d.ts +3 -0
- package/lib/components/tree-view/helper.d.ts +12 -0
- package/lib/components/tree-view/index.d.ts +2 -0
- package/lib/components/tree-view/tree-view.d.ts +3 -0
- package/lib/components/tree-view/types.d.ts +63 -0
- package/lib/components/typography/index.d.ts +1 -0
- package/lib/components/typography/typography.d.ts +24 -0
- package/lib/foundations/color-system/base-palette/base-palette.d.ts +76 -0
- package/lib/foundations/color-system/base-palette/index.d.ts +1 -0
- package/lib/foundations/color-system/color-guidelines/color-guidelines.d.ts +133 -0
- package/lib/foundations/color-system/color-guidelines/index.d.ts +1 -0
- package/lib/foundations/color-system/components/color-sample.d.ts +17 -0
- package/lib/foundations/color-system/components/index.d.ts +1 -0
- package/lib/foundations/color-system/index.d.ts +1 -0
- package/lib/foundations/index.d.ts +4 -0
- package/lib/foundations/shadows/components.d.ts +8 -0
- package/lib/foundations/shadows/index.d.ts +1 -0
- package/lib/foundations/shadows/shadows.d.ts +8 -0
- package/lib/foundations/spacing/index.d.ts +1 -0
- package/lib/foundations/spacing/spacing-guidelines.d.ts +33 -0
- package/lib/foundations/spacing/spacing.d.ts +18 -0
- package/lib/foundations/typography/constants.d.ts +22 -0
- package/lib/foundations/typography/fonts.d.ts +1 -0
- package/lib/foundations/typography/index.d.ts +1 -0
- package/lib/foundations/typography/text-aspect-flags.d.ts +19 -0
- package/lib/foundations/typography/typography.d.ts +24 -0
- package/lib/helpers/generic-types.d.ts +21 -0
- package/lib/helpers/index.d.ts +8 -0
- package/lib/helpers/isReactElementOfType.d.ts +8 -0
- package/lib/helpers/nothing.d.ts +10 -0
- package/{src/lib/helpers/numbers.ts → lib/helpers/numbers.d.ts} +50 -67
- package/lib/helpers/safe-navigation.d.ts +17 -0
- package/lib/helpers/slots.d.ts +17 -0
- package/lib/helpers/strings.d.ts +1 -0
- package/lib/helpers/useInputElementState.d.ts +30 -0
- package/lib/helpers/useKeyDown.d.ts +1 -0
- package/package.json +27 -2
- package/.babelrc +0 -12
- package/.eslintrc.json +0 -147
- package/.release-it.json +0 -17
- package/.storybook/main.js +0 -57
- package/.storybook/manager.js +0 -7
- package/.storybook/preview.js +0 -15
- package/.storybook/tsconfig.json +0 -30
- package/jest.config.ts +0 -15
- package/jest.setup.ts +0 -2
- package/project.json +0 -98
- package/src/README.md +0 -61
- package/src/assets/svg/example_icon.svg +0 -3
- package/src/assets/svg/example_icon_white.svg +0 -3
- package/src/assets/svg/spinner.svg +0 -3
- package/src/assets/svg/spinner_white.svg +0 -3
- package/src/helpers/index.ts +0 -4
- package/src/helpers/playground.ts +0 -26
- package/src/helpers/talesOf.tsx +0 -42
- package/src/index.ts +0 -2
- package/src/lib/components/README.md +0 -49
- package/src/lib/components/alert-banner/alert-banner.test.tsx +0 -93
- package/src/lib/components/alert-banner/alert-banner.tsx +0 -117
- package/src/lib/components/alert-banner/alert-level-flags.ts +0 -101
- package/src/lib/components/alert-banner/index.ts +0 -1
- package/src/lib/components/alert-banner/storybook/alert-banner.stories.mdx +0 -67
- package/src/lib/components/alert-banner/storybook/components.tsx +0 -124
- package/src/lib/components/badge/badge-type-flags.ts +0 -72
- package/src/lib/components/badge/badge.test.tsx +0 -29
- package/src/lib/components/badge/badge.tsx +0 -22
- package/src/lib/components/badge/index.ts +0 -1
- package/src/lib/components/badge/stories/badge.stories.mdx +0 -44
- package/src/lib/components/badge/stories/components.tsx +0 -49
- package/src/lib/components/card/atoms/index.ts +0 -1
- package/src/lib/components/card/card.test.tsx +0 -162
- package/src/lib/components/card/card.tsx +0 -78
- package/src/lib/components/card/components/card-alert-banner-slot.tsx +0 -16
- package/src/lib/components/card/components/card-controls-slot.tsx +0 -19
- package/src/lib/components/card/components/card-section-slot.tsx +0 -51
- package/src/lib/components/card/components/index.ts +0 -3
- package/src/lib/components/card/index.ts +0 -3
- package/src/lib/components/card/molecules/index.ts +0 -1
- package/src/lib/components/card/molecules/left-right-card.test.tsx +0 -89
- package/src/lib/components/card/molecules/left-right-card.tsx +0 -63
- package/src/lib/components/card/storybook/card.stories.mdx +0 -100
- package/src/lib/components/card/storybook/components.tsx +0 -227
- package/src/lib/components/checkbox/checkbox.test.tsx +0 -39
- package/src/lib/components/checkbox/checkbox.tsx +0 -70
- package/src/lib/components/checkbox/helpers.tsx +0 -98
- package/src/lib/components/checkbox/index.tsx +0 -1
- package/src/lib/components/checkbox/stories/checkbox.stories.mdx +0 -57
- package/src/lib/components/checkbox/stories/components.tsx +0 -84
- package/src/lib/components/date-picker/components/custom-calendar.tsx +0 -193
- package/src/lib/components/date-picker/components/index.ts +0 -1
- package/src/lib/components/date-picker/data-picker.test.tsx +0 -220
- package/src/lib/components/date-picker/date-picker.tsx +0 -10
- package/src/lib/components/date-picker/helpers/date-picker-factory.tsx +0 -210
- package/src/lib/components/date-picker/index.ts +0 -1
- package/src/lib/components/date-picker/storybook/components.tsx +0 -259
- package/src/lib/components/date-picker/storybook/date-picker.stories.mdx +0 -133
- package/src/lib/components/divider/divider-type-flags.tsx +0 -37
- package/src/lib/components/divider/divider.test.tsx +0 -34
- package/src/lib/components/divider/divider.tsx +0 -37
- package/src/lib/components/divider/index.tsx +0 -1
- package/src/lib/components/divider/stories/components.tsx +0 -13
- package/src/lib/components/divider/stories/divider.stories.mdx +0 -44
- package/src/lib/components/flag/flag-size-flags.tsx +0 -55
- package/src/lib/components/flag/flag.list.tsx +0 -788
- package/src/lib/components/flag/flag.test.tsx +0 -65
- package/src/lib/components/flag/flag.tsx +0 -97
- package/src/lib/components/flag/index.tsx +0 -1
- package/src/lib/components/flag/stories/components.tsx +0 -403
- package/src/lib/components/flag/stories/flag.stories.mdx +0 -48
- package/src/lib/components/flag/stories/playGround-select.tsx +0 -145
- package/src/lib/components/icon/icon-list.tsx +0 -135
- package/src/lib/components/icon/icon.test.tsx +0 -47
- package/src/lib/components/icon/icon.tsx +0 -181
- package/src/lib/components/icon/index.tsx +0 -1
- package/src/lib/components/icon/stories/components.tsx +0 -282
- package/src/lib/components/icon/stories/icon.stories.mdx +0 -65
- package/src/lib/components/index.ts +0 -26
- package/src/lib/components/input-field/components/index.ts +0 -2
- package/src/lib/components/input-field/components/labeled-input.tsx +0 -57
- package/src/lib/components/input-field/components/stepper.tsx +0 -64
- package/src/lib/components/input-field/index.ts +0 -6
- package/src/lib/components/input-field/input-field.test.tsx +0 -107
- package/src/lib/components/input-field/input-field.tsx +0 -154
- package/src/lib/components/input-field/input-number.tsx +0 -41
- package/src/lib/components/input-field/input-text.tsx +0 -30
- package/src/lib/components/input-field/storybook/components.tsx +0 -367
- package/src/lib/components/input-field/storybook/input-field.stories.mdx +0 -120
- package/src/lib/components/layout/flex.tsx +0 -22
- package/src/lib/components/layout/grid-layout.tsx +0 -40
- package/src/lib/components/layout/index.ts +0 -3
- package/src/lib/components/layout/left-right-layout.tsx +0 -67
- package/src/lib/components/link/index.ts +0 -1
- package/src/lib/components/link/link.test.tsx +0 -29
- package/src/lib/components/link/link.tsx +0 -56
- package/src/lib/components/link/storybook/link.stories.mdx +0 -52
- package/src/lib/components/modal/index.ts +0 -3
- package/src/lib/components/modal/modal-base.tsx +0 -129
- package/src/lib/components/modal/modal-destructive.tsx +0 -70
- package/src/lib/components/modal/modal.test.tsx +0 -138
- package/src/lib/components/modal/modal.tsx +0 -114
- package/src/lib/components/modal/storybook/components.tsx +0 -105
- package/src/lib/components/modal/storybook/modal-destructive.stories.mdx +0 -31
- package/src/lib/components/modal/storybook/modal.stories.mdx +0 -50
- package/src/lib/components/molecules/avatar/avatar-size-flags.tsx +0 -55
- package/src/lib/components/molecules/avatar/avatar.test.tsx +0 -114
- package/src/lib/components/molecules/avatar/avatar.tsx +0 -80
- package/src/lib/components/molecules/avatar/index.tsx +0 -1
- package/src/lib/components/molecules/avatar/stories/avatar.stories.mdx +0 -52
- package/src/lib/components/molecules/avatar/stories/components.tsx +0 -36
- package/src/lib/components/molecules/button/button-flags.tsx +0 -340
- package/src/lib/components/molecules/button/button.test.tsx +0 -77
- package/src/lib/components/molecules/button/button.tsx +0 -212
- package/src/lib/components/molecules/button/index.tsx +0 -1
- package/src/lib/components/molecules/button/stories/button.stories.mdx +0 -105
- package/src/lib/components/molecules/button/stories/components.tsx +0 -90
- package/src/lib/components/molecules/index.ts +0 -3
- package/src/lib/components/molecules/input-checkbox/index.tsx +0 -1
- package/src/lib/components/molecules/input-checkbox/input-checkbox.test.tsx +0 -34
- package/src/lib/components/molecules/input-checkbox/input-checkbox.tsx +0 -50
- package/src/lib/components/molecules/input-checkbox/stories/components.tsx +0 -53
- package/src/lib/components/molecules/input-checkbox/stories/input-checkbox.stories.mdx +0 -49
- package/src/lib/components/organisms/choice-list/choice-list.test.tsx +0 -36
- package/src/lib/components/organisms/choice-list/choice-list.tsx +0 -72
- package/src/lib/components/organisms/choice-list/index.tsx +0 -1
- package/src/lib/components/organisms/choice-list/stories/choice-list.stories.mdx +0 -57
- package/src/lib/components/organisms/choice-list/stories/components.tsx +0 -45
- package/src/lib/components/organisms/index.ts +0 -2
- package/src/lib/components/organisms/multi-choice-list/index.tsx +0 -1
- package/src/lib/components/organisms/multi-choice-list/multi-choice-list.test.tsx +0 -33
- package/src/lib/components/organisms/multi-choice-list/multi-choice-list.tsx +0 -53
- package/src/lib/components/organisms/multi-choice-list/stories/components.tsx +0 -124
- package/src/lib/components/organisms/multi-choice-list/stories/multi-choice-list.stories.mdx +0 -99
- package/src/lib/components/progress-bar/index.ts +0 -1
- package/src/lib/components/progress-bar/progress-bar-size-flags.tsx +0 -37
- package/src/lib/components/progress-bar/progress-bar.test.tsx +0 -66
- package/src/lib/components/progress-bar/progress-bar.tsx +0 -42
- package/src/lib/components/progress-bar/storybook/components.tsx +0 -62
- package/src/lib/components/progress-bar/storybook/progress-bar.stories.mdx +0 -43
- package/src/lib/components/radio-button/radio-button.tsx +0 -135
- package/src/lib/components/radio-button/radio.test.tsx +0 -59
- package/src/lib/components/radio-button/stories/components.tsx +0 -36
- package/src/lib/components/radio-button/stories/radio-button.stories.mdx +0 -44
- package/src/lib/components/range-slider/components/bar-chart.tsx +0 -50
- package/src/lib/components/range-slider/components/handle.tsx +0 -58
- package/src/lib/components/range-slider/components/rail.tsx +0 -44
- package/src/lib/components/range-slider/components/slider-component.tsx +0 -98
- package/src/lib/components/range-slider/components/slider-inputs.tsx +0 -150
- package/src/lib/components/range-slider/components/tick.tsx +0 -51
- package/src/lib/components/range-slider/components/track.tsx +0 -67
- package/src/lib/components/range-slider/index.tsx +0 -2
- package/src/lib/components/range-slider/range-slider.test.tsx +0 -185
- package/src/lib/components/range-slider/range-slider.tsx +0 -132
- package/src/lib/components/range-slider/slider.test.tsx +0 -89
- package/src/lib/components/range-slider/slider.tsx +0 -80
- package/src/lib/components/range-slider/stories/components.tsx +0 -179
- package/src/lib/components/range-slider/stories/range-slider.stories.mdx +0 -84
- package/src/lib/components/range-slider/types.ts +0 -18
- package/src/lib/components/select/components/menu-container.tsx +0 -69
- package/src/lib/components/select/components/menu-list.tsx +0 -195
- package/src/lib/components/select/components/menu-row.tsx +0 -43
- package/src/lib/components/select/components/menu.tsx +0 -151
- package/src/lib/components/select/components/option.tsx +0 -91
- package/src/lib/components/select/components/select-label.tsx +0 -10
- package/src/lib/components/select/components/value-component-multi.tsx +0 -40
- package/src/lib/components/select/components/value-component-single.tsx +0 -27
- package/src/lib/components/select/components/value.tsx +0 -370
- package/src/lib/components/select/index.tsx +0 -3
- package/src/lib/components/select/select.test.tsx +0 -148
- package/src/lib/components/select/select.tsx +0 -337
- package/src/lib/components/select/storybook/components.tsx +0 -999
- package/src/lib/components/select/storybook/radio-group.tsx +0 -157
- package/src/lib/components/select/storybook/select.stories.mdx +0 -172
- package/src/lib/components/select/types.ts +0 -149
- package/src/lib/components/select/utils.ts +0 -101
- package/src/lib/components/spinner/index.tsx +0 -1
- package/src/lib/components/spinner/spinner-size-flags.tsx +0 -39
- package/src/lib/components/spinner/spinner.test.tsx +0 -31
- package/src/lib/components/spinner/spinner.tsx +0 -54
- package/src/lib/components/spinner/stories/components.tsx +0 -39
- package/src/lib/components/spinner/stories/spinner.stories.mdx +0 -35
- package/src/lib/components/tabs/components/index.ts +0 -1
- package/src/lib/components/tabs/components/tab.tsx +0 -85
- package/src/lib/components/tabs/index.tsx +0 -1
- package/src/lib/components/tabs/storybook/components.tsx +0 -317
- package/src/lib/components/tabs/storybook/tabs.stories.mdx +0 -105
- package/src/lib/components/tabs/tabs.test.tsx +0 -86
- package/src/lib/components/tabs/tabs.tsx +0 -115
- package/src/lib/components/tag/components/close-button.tsx +0 -85
- package/src/lib/components/tag/components/index.ts +0 -2
- package/src/lib/components/tag/components/tag-label.tsx +0 -45
- package/src/lib/components/tag/index.tsx +0 -1
- package/src/lib/components/tag/stories/components.tsx +0 -86
- package/src/lib/components/tag/stories/tag.stories.mdx +0 -42
- package/src/lib/components/tag/tag.test.tsx +0 -36
- package/src/lib/components/tag/tag.tsx +0 -33
- package/src/lib/components/thumbnail/index.tsx +0 -1
- package/src/lib/components/thumbnail/stories/thumbnail.stories.mdx +0 -44
- package/src/lib/components/thumbnail/thumbnail-size-flags.tsx +0 -41
- package/src/lib/components/thumbnail/thumbnail.test.tsx +0 -51
- package/src/lib/components/thumbnail/thumbnail.tsx +0 -44
- package/src/lib/components/tooltip/index.tsx +0 -1
- package/src/lib/components/tooltip/stories/components.tsx +0 -224
- package/src/lib/components/tooltip/stories/tooltip.stories.mdx +0 -63
- package/src/lib/components/tooltip/tooltip.test.tsx +0 -22
- package/src/lib/components/tooltip/tooltip.tsx +0 -179
- package/src/lib/components/tree-view/components/tree-node.tsx +0 -203
- package/src/lib/components/tree-view/helper.tsx +0 -171
- package/src/lib/components/tree-view/index.ts +0 -2
- package/src/lib/components/tree-view/stories/components.tsx +0 -640
- package/src/lib/components/tree-view/stories/tree-view.stories.mdx +0 -127
- package/src/lib/components/tree-view/tree-view.test.tsx +0 -146
- package/src/lib/components/tree-view/tree-view.tsx +0 -168
- package/src/lib/components/tree-view/types.tsx +0 -70
- package/src/lib/components/typography/index.ts +0 -1
- package/src/lib/components/typography/storybook/components.tsx +0 -288
- package/src/lib/components/typography/storybook/typography.stories.mdx +0 -90
- package/src/lib/components/typography/typography.test.tsx +0 -97
- package/src/lib/components/typography/typography.tsx +0 -99
- package/src/lib/foundations/color-system/base-palette/base-palette.stories.tsx +0 -123
- package/src/lib/foundations/color-system/base-palette/base-palette.ts +0 -93
- package/src/lib/foundations/color-system/base-palette/index.ts +0 -1
- package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.mdx +0 -85
- package/src/lib/foundations/color-system/color-guidelines/color-guidelines.stories.tsx +0 -231
- package/src/lib/foundations/color-system/color-guidelines/color-guidelines.ts +0 -160
- package/src/lib/foundations/color-system/color-guidelines/index.ts +0 -1
- package/src/lib/foundations/color-system/components/color-sample.tsx +0 -99
- package/src/lib/foundations/color-system/components/index.ts +0 -1
- package/src/lib/foundations/color-system/index.ts +0 -1
- package/src/lib/foundations/index.ts +0 -4
- package/src/lib/foundations/shadows/components.tsx +0 -59
- package/src/lib/foundations/shadows/index.ts +0 -1
- package/src/lib/foundations/shadows/shadows.stories.mdx +0 -71
- package/src/lib/foundations/shadows/shadows.tsx +0 -47
- package/src/lib/foundations/spacing/index.ts +0 -1
- package/src/lib/foundations/spacing/spacing-guidelines.ts +0 -37
- package/src/lib/foundations/spacing/spacing.stories.mdx +0 -51
- package/src/lib/foundations/spacing/spacing.ts +0 -18
- package/src/lib/foundations/typography/constants.ts +0 -25
- package/src/lib/foundations/typography/fonts.ts +0 -205
- package/src/lib/foundations/typography/index.tsx +0 -1
- package/src/lib/foundations/typography/text-aspect-flags.ts +0 -61
- package/src/lib/foundations/typography/typography.tsx +0 -102
- package/src/lib/helpers/generic-types.ts +0 -44
- package/src/lib/helpers/index.ts +0 -8
- package/src/lib/helpers/isReactElementOfType.test.tsx +0 -108
- package/src/lib/helpers/isReactElementOfType.ts +0 -42
- package/src/lib/helpers/nothing.tsx +0 -22
- package/src/lib/helpers/safe-navigation.ts +0 -57
- package/src/lib/helpers/slots.tsx +0 -126
- package/src/lib/helpers/strings.test.ts +0 -47
- package/src/lib/helpers/strings.ts +0 -16
- package/src/lib/helpers/useInputElementState.ts +0 -56
- package/src/lib/helpers/useKeyDown.ts +0 -17
- package/tsconfig.json +0 -35
- package/tsconfig.lib.json +0 -28
- package/tsconfig.spec.json +0 -21
package/src/README.md
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
Directory Structure
|
|
2
|
-
===================
|
|
3
|
-
|
|
4
|
-
Manifest Files (index.ts)
|
|
5
|
-
-------------------------
|
|
6
|
-
|
|
7
|
-
RWC, and now product-language, export components to be consumed by another system. Their API is a list of components that they export, and this API is declared in src/index.ts the “root manifest”.
|
|
8
|
-
|
|
9
|
-
```ts
|
|
10
|
-
// src/index.ts
|
|
11
|
-
export * from 'src/components'
|
|
12
|
-
export * from 'src/foundations'
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
And then things get… recursive.
|
|
16
|
-
|
|
17
|
-
The “components” directory is a module that exports components to be consumed by another system. It’s API is the list of components it exports, and this API is declared in src/components/index.ts
|
|
18
|
-
|
|
19
|
-
```ts
|
|
20
|
-
// src/components/index.ts
|
|
21
|
-
export * from 'src/components/atoms'
|
|
22
|
-
export * from 'src/components/molecules'
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
The “molecules” directory is a module that exports components to be consumed by another system. It’s API is the list of components it exports, and this API is declared in src/components/molecules/index.ts
|
|
26
|
-
|
|
27
|
-
```ts
|
|
28
|
-
// src/components/molecules/index.ts
|
|
29
|
-
export * from 'src/components/molecules/button
|
|
30
|
-
export * from 'src/components/molecules/card
|
|
31
|
-
export * from 'src/components/molecules/input-field
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
The “button” directory is a module that exports components to be consumed by another system. It’s API is the list of components it exports, and this API is declared in src/components/molecules/button/index.ts
|
|
35
|
-
|
|
36
|
-
This file, this index.ts file is the public API or public interface of the button module. A public interface should only expose public things. Private things should not be exported. So for example:
|
|
37
|
-
|
|
38
|
-
```ts
|
|
39
|
-
// src/components/molecules/button/index.ts
|
|
40
|
-
|
|
41
|
-
export * from './stories' // NOPE! this is not public
|
|
42
|
-
export * from './components' // Nope! don't expose implementation details
|
|
43
|
-
|
|
44
|
-
// in most cases, this is all you need
|
|
45
|
-
export * from './Button.tsx'
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Within the Button module, we have to be careful to remember that these index files are the public api they are not to be consumed internally. So for example in a storybook file:
|
|
49
|
-
|
|
50
|
-
```ts
|
|
51
|
-
// src/components/molecules/button/stories/button.stories.mdx
|
|
52
|
-
|
|
53
|
-
import { Button } from '../index' // Nope!
|
|
54
|
-
import { Button } from '../Button' // yes!
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Importing from the index file within the module that index file describes is a potential problem, it can cause cyclic dependencies which can be hard to debug.
|
|
58
|
-
|
|
59
|
-
On a similar note: your stories and tests folders don’t need index files at all. They are just there to provide a place to put helpers specific to the stories and tests for the component. They are not modules that export components for other systems to use, so they do not need an index.ts file.
|
|
60
|
-
|
|
61
|
-
On the other hand, the components folder in the Button module should have an index.ts file since it exposes a list of components that Button consumes. Doing this also makes it easier to lift a helper component from the Button module to a shared place if you discover you’ve created a helpful shared component.
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M14.3751 15.6444H1.62507C1.12228 15.6444 0.714355 16.0527 0.714355 16.5559C0.714355 17.0902 1.12228 17.5 1.62507 17.5H14.3751C14.8779 17.5 15.2858 17.0917 15.2858 16.5885C15.2858 16.0846 14.8798 15.6444 14.3751 15.6444ZM12.1932 7.16719L8.91078 10.6583V1.41451C8.91078 0.908303 8.50476 0.5 8.00007 0.5C7.49538 0.5 7.08936 0.908304 7.08936 1.41147V10.6552L3.80585 7.16719C3.62674 6.97366 3.38503 6.8788 3.14293 6.8788C2.91882 6.8788 2.69478 6.96068 2.51909 7.12681C2.15268 7.47095 2.13507 8.04777 2.47996 8.41433L7.33711 13.5788C7.68098 13.9467 8.31916 13.9467 8.66296 13.5788L13.5201 8.41433C13.8652 8.04766 13.8474 7.47099 13.481 7.12681C13.1152 6.78013 12.5385 6.76496 12.1932 7.16719Z" fill="#6B7280"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M14.3751 15.6444H1.62507C1.12228 15.6444 0.714355 16.0527 0.714355 16.5559C0.714355 17.0902 1.12228 17.5 1.62507 17.5H14.3751C14.8779 17.5 15.2858 17.0917 15.2858 16.5885C15.2858 16.0846 14.8798 15.6444 14.3751 15.6444ZM12.1932 7.16719L8.91078 10.6583V1.41451C8.91078 0.908303 8.50476 0.5 8.00007 0.5C7.49538 0.5 7.08936 0.908304 7.08936 1.41147V10.6552L3.80585 7.16719C3.62674 6.97366 3.38503 6.8788 3.14293 6.8788C2.91882 6.8788 2.69478 6.96068 2.51909 7.12681C2.15268 7.47095 2.13507 8.04777 2.47996 8.41433L7.33711 13.5788C7.68098 13.9467 8.31916 13.9467 8.66296 13.5788L13.5201 8.41433C13.8652 8.04766 13.8474 7.47099 13.481 7.12681C13.1152 6.78013 12.5385 6.76496 12.1932 7.16719Z" fill="white"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2.09302C5.18538 2.09302 2.09302 5.18538 2.09302 9C2.09302 12.8146 5.18538 15.907 9 15.907C9.57797 15.907 10.0465 16.3755 10.0465 16.9535C10.0465 17.5315 9.57797 18 9 18C4.02944 18 0 13.9706 0 9C0 4.02944 4.02944 0 9 0C11.5884 0 13.9229 1.09405 15.5635 2.84196C15.959 3.26339 15.938 3.92567 15.5166 4.3212C15.0951 4.71674 14.4329 4.69575 14.0373 4.27432C12.7759 2.93035 10.9866 2.09302 9 2.09302Z" fill="#6B7280"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 2.09302C5.18538 2.09302 2.09302 5.18538 2.09302 9C2.09302 12.8146 5.18538 15.907 9 15.907C9.57797 15.907 10.0465 16.3755 10.0465 16.9535C10.0465 17.5315 9.57797 18 9 18C4.02944 18 0 13.9706 0 9C0 4.02944 4.02944 0 9 0C11.5884 0 13.9229 1.09405 15.5635 2.84196C15.959 3.26339 15.938 3.92567 15.5166 4.3212C15.0951 4.71674 14.4329 4.69575 14.0373 4.27432C12.7759 2.93035 10.9866 2.09302 9 2.09302Z" fill="white"/>
|
|
3
|
-
</svg>
|
package/src/helpers/index.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components'
|
|
2
|
-
import { Playground } from 'storybook-addon-jarle-monaco'
|
|
3
|
-
import { Margin, Surface, Text } from '@foundations'
|
|
4
|
-
export { Playground } from 'storybook-addon-jarle-monaco'
|
|
5
|
-
|
|
6
|
-
/** when using playground with a card inside we style it in night mode */
|
|
7
|
-
export const CardPlayground = styled(Playground)`
|
|
8
|
-
background: ${Surface.Neutral.Default};
|
|
9
|
-
|
|
10
|
-
margin-bottom: ${Margin.xxl};
|
|
11
|
-
|
|
12
|
-
> div:nth-of-type(2) {
|
|
13
|
-
background: ${Surface.Default.Inverse};
|
|
14
|
-
color: ${Text.OnPrimary};
|
|
15
|
-
}
|
|
16
|
-
`
|
|
17
|
-
|
|
18
|
-
/** when using playground with a card inside we style it in night mode */
|
|
19
|
-
export const OverflowPlayground = styled(Playground)`
|
|
20
|
-
margin-bottom: ${Margin.xxl};
|
|
21
|
-
overflow: visible !important;
|
|
22
|
-
|
|
23
|
-
> div {
|
|
24
|
-
overflow: visible;
|
|
25
|
-
}
|
|
26
|
-
`
|
package/src/helpers/talesOf.tsx
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { storiesOf as _storiesOf } from '@storybook/react'
|
|
2
|
-
import { StoryFn } from '@storybook/addons'
|
|
3
|
-
import { isDefined, isNil } from '@helpers'
|
|
4
|
-
import { StoryFnReactReturnType } from '@storybook/react/dist/ts3.9/client/preview/types'
|
|
5
|
-
|
|
6
|
-
const DIRECTORY_BASE_PATH = 'packages/product-language/src/lib/'
|
|
7
|
-
|
|
8
|
-
const getStoryPath = (filepath: string) => {
|
|
9
|
-
const path = filepath.split('/')
|
|
10
|
-
|
|
11
|
-
return isDefined(path)
|
|
12
|
-
? path
|
|
13
|
-
.slice(0, path.length - 1) // remove the filename
|
|
14
|
-
.join('/')
|
|
15
|
-
.replace(DIRECTORY_BASE_PATH, '') // remove the base path
|
|
16
|
-
: 'misc'
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function getStoryTitle (filepath: string, storyName? : string): string {
|
|
20
|
-
const path = filepath.split('/')
|
|
21
|
-
|
|
22
|
-
const nameFromPath = isDefined(path) ? path.pop()?.split('.').shift() : undefined
|
|
23
|
-
|
|
24
|
-
if (isNil(nameFromPath)) return 'Base'
|
|
25
|
-
|
|
26
|
-
if (isDefined(storyName)) return `${nameFromPath}/${storyName}`
|
|
27
|
-
|
|
28
|
-
return nameFromPath
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export type StoryComponent = StoryFn<StoryFnReactReturnType>
|
|
32
|
-
|
|
33
|
-
export function talesOf (filepath: string, module: NodeModule, Storybook?: StoryComponent, storyName?: string) {
|
|
34
|
-
if (isNil(Storybook)) {
|
|
35
|
-
return _storiesOf(getStoryPath(filepath), module)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const title = getStoryTitle(filepath, storyName)
|
|
39
|
-
|
|
40
|
-
return _storiesOf(getStoryPath(filepath), module)
|
|
41
|
-
.add(title, Storybook)
|
|
42
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
Components
|
|
2
|
-
==========
|
|
3
|
-
|
|
4
|
-
This folder contains the components that will be exported from the Product Language and used in the front-end.
|
|
5
|
-
|
|
6
|
-
```
|
|
7
|
-
/src
|
|
8
|
-
/lib
|
|
9
|
-
/components
|
|
10
|
-
/alert-banner
|
|
11
|
-
/card
|
|
12
|
-
index.ts
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
The index.ts file is a manifest and anything in the manifest will be available the clients.
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
/src
|
|
19
|
-
/lib
|
|
20
|
-
/components
|
|
21
|
-
/alert-banner
|
|
22
|
-
/card
|
|
23
|
-
/components
|
|
24
|
-
/helpers
|
|
25
|
-
index.tsx
|
|
26
|
-
card.tsx
|
|
27
|
-
card.stories.tsx
|
|
28
|
-
card.spec.ts
|
|
29
|
-
index.ts
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
inside of any component, like `card` you will find another index.ts file. This is a manifest and it should only declare the main file of the component as an export:
|
|
33
|
-
|
|
34
|
-
```ts
|
|
35
|
-
export * from './card'
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
None of the specs, stories, sub-components, helpers, or any other kind of thing should appear in the manifest. Using manifests like this allows us to give each component a rich eco-system of helpers and sub-components without needing to move everything to a global scope.
|
|
39
|
-
|
|
40
|
-
For example, here is a helper in card/helpers.ts
|
|
41
|
-
|
|
42
|
-
```ts
|
|
43
|
-
// this is not a real helper, just an example
|
|
44
|
-
export function makeCardTitle (title: string) {
|
|
45
|
-
return `Card: ${title}`
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
This helper is obviously tightly coupled to the card "concern". It should not be declared in a global helpers file, that wouldn't make sense and it would lower cohesion in the app. In addition, it should not be exported from the manifest, since it is not intended for the client to use it.
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { render, screen } from '@testing-library/react'
|
|
2
|
-
import userEvent from '@testing-library/user-event'
|
|
3
|
-
import { AlertBanner } from './alert-banner'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
describe('Alert banner tests', () => {
|
|
7
|
-
it('should render the alert banner when attribute open is true', async () => {
|
|
8
|
-
render (
|
|
9
|
-
<AlertBanner
|
|
10
|
-
open={true}
|
|
11
|
-
onClose={() => { return }}
|
|
12
|
-
>
|
|
13
|
-
Alert Banner
|
|
14
|
-
</AlertBanner>
|
|
15
|
-
)
|
|
16
|
-
expect(screen.getByRole('alert')).toBeInTheDocument()
|
|
17
|
-
})
|
|
18
|
-
it('should not render the close button by default', async () => {
|
|
19
|
-
const handleClose = jest.fn()
|
|
20
|
-
|
|
21
|
-
render (
|
|
22
|
-
<AlertBanner
|
|
23
|
-
open={true}
|
|
24
|
-
onClose={handleClose}
|
|
25
|
-
>
|
|
26
|
-
Alert Banner
|
|
27
|
-
</AlertBanner>
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
expect(handleClose).not.toHaveBeenCalled()
|
|
31
|
-
const closeButton = screen.queryByLabelText('Close')
|
|
32
|
-
expect(closeButton).not.toBeInTheDocument()
|
|
33
|
-
|
|
34
|
-
})
|
|
35
|
-
it('should render the close button and handle the close function', async () => {
|
|
36
|
-
const handleClose = jest.fn()
|
|
37
|
-
|
|
38
|
-
render (
|
|
39
|
-
<AlertBanner
|
|
40
|
-
open={true}
|
|
41
|
-
onClose={handleClose}
|
|
42
|
-
dismissible={true}
|
|
43
|
-
>
|
|
44
|
-
Alert Banner
|
|
45
|
-
</AlertBanner>
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
expect(handleClose).not.toHaveBeenCalled()
|
|
49
|
-
const closeButton = screen.getByLabelText('Close')
|
|
50
|
-
expect(closeButton).toBeInTheDocument()
|
|
51
|
-
await userEvent.click(closeButton)
|
|
52
|
-
expect(handleClose).toHaveBeenCalled()
|
|
53
|
-
|
|
54
|
-
})
|
|
55
|
-
it('should render the primary action button and handle event after click', async () => {
|
|
56
|
-
const handlePrimaryButtonClick = jest.fn()
|
|
57
|
-
|
|
58
|
-
render (
|
|
59
|
-
<AlertBanner
|
|
60
|
-
primaryButtonLabel="Do thing!"
|
|
61
|
-
onPrimaryAction={handlePrimaryButtonClick}
|
|
62
|
-
>
|
|
63
|
-
Alert Banner
|
|
64
|
-
</AlertBanner>
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
expect(handlePrimaryButtonClick).not.toHaveBeenCalled()
|
|
68
|
-
const primaryButton = screen.getByText('Do thing!')
|
|
69
|
-
expect(primaryButton).toBeInTheDocument()
|
|
70
|
-
await userEvent.click(primaryButton)
|
|
71
|
-
expect(handlePrimaryButtonClick).toHaveBeenCalled()
|
|
72
|
-
|
|
73
|
-
})
|
|
74
|
-
it('should render the secondary action button and handle event after click', async () => {
|
|
75
|
-
const handleSecondaryButtonClick = jest.fn()
|
|
76
|
-
|
|
77
|
-
render (
|
|
78
|
-
<AlertBanner
|
|
79
|
-
secondaryButtonLabel="Do other thing!"
|
|
80
|
-
onSecondaryAction={handleSecondaryButtonClick}
|
|
81
|
-
>
|
|
82
|
-
Alert Banner
|
|
83
|
-
</AlertBanner>
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
expect(handleSecondaryButtonClick).not.toHaveBeenCalled()
|
|
87
|
-
const primaryButton = screen.getByText('Do other thing!')
|
|
88
|
-
expect(primaryButton).toBeInTheDocument()
|
|
89
|
-
await userEvent.click(primaryButton)
|
|
90
|
-
expect(handleSecondaryButtonClick).toHaveBeenCalled()
|
|
91
|
-
|
|
92
|
-
})
|
|
93
|
-
})
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components'
|
|
2
|
-
import { FC, Hex, is, isDefined, Nothing, PropsWithChildren, safeCallback } from '@helpers'
|
|
3
|
-
import { AlertLevelProps, getBackgroundColor, getBorderColor, getIcon } from './alert-level-flags'
|
|
4
|
-
import { Gap, Padding } from '@foundations'
|
|
5
|
-
import { CardFrame } from 'components/card/atoms'
|
|
6
|
-
import { IconMinor } from 'components/icon'
|
|
7
|
-
import { Button } from 'components/molecules/button'
|
|
8
|
-
import { Body} from 'components/typography'
|
|
9
|
-
interface IAlertBannerProps extends PropsWithChildren {
|
|
10
|
-
dismissible?: boolean
|
|
11
|
-
className?: string
|
|
12
|
-
open?: boolean
|
|
13
|
-
primaryButtonLabel?: string
|
|
14
|
-
secondaryButtonLabel?: string
|
|
15
|
-
onPrimaryAction?: () => void
|
|
16
|
-
onSecondaryAction?: () => void
|
|
17
|
-
onClose?: () => void
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export type AlertBannerProps = IAlertBannerProps & AlertLevelProps
|
|
21
|
-
|
|
22
|
-
const InCardFrame = styled(CardFrame).attrs({ as: 'div' })<{ background: Hex, border: Hex}>`
|
|
23
|
-
display: flex;
|
|
24
|
-
padding: ${Padding.m};
|
|
25
|
-
width: fill-available;
|
|
26
|
-
position: relative;
|
|
27
|
-
flex-wrap: wrap;
|
|
28
|
-
background: ${({ background }) => background};
|
|
29
|
-
border: 1px solid ${({ border }) => border};
|
|
30
|
-
`
|
|
31
|
-
|
|
32
|
-
const IconContainer = styled.div<{ iconColor: Hex }>`
|
|
33
|
-
width: fit-content;
|
|
34
|
-
svg[role='icon'] {
|
|
35
|
-
position: initial;
|
|
36
|
-
path {
|
|
37
|
-
fill: ${(props) => props.iconColor};
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
`
|
|
41
|
-
|
|
42
|
-
const AlertFooter = styled.footer`
|
|
43
|
-
width: 100%;
|
|
44
|
-
padding: ${Padding.m} ${Padding.xl} ${Padding.none} ;
|
|
45
|
-
bottom: 0;
|
|
46
|
-
box-sizing: border-box;
|
|
47
|
-
display: flex;
|
|
48
|
-
gap: ${Gap.xs};
|
|
49
|
-
`
|
|
50
|
-
|
|
51
|
-
const Content = styled(Body)`
|
|
52
|
-
padding-left: ${Padding.m};
|
|
53
|
-
flex: 1;
|
|
54
|
-
overflow: auto;
|
|
55
|
-
`
|
|
56
|
-
|
|
57
|
-
const CloseButton = styled(IconMinor.Xmark)`
|
|
58
|
-
cursor: pointer;
|
|
59
|
-
position: absolute;
|
|
60
|
-
top: 12px;
|
|
61
|
-
right: 12px;
|
|
62
|
-
border-radius: 3px;
|
|
63
|
-
`
|
|
64
|
-
|
|
65
|
-
export const AlertBanner: FC<AlertBannerProps> = (props) => {
|
|
66
|
-
const {
|
|
67
|
-
open = true,
|
|
68
|
-
dismissible = false,
|
|
69
|
-
primaryButtonLabel,
|
|
70
|
-
secondaryButtonLabel,
|
|
71
|
-
onPrimaryAction,
|
|
72
|
-
onSecondaryAction,
|
|
73
|
-
onClose,
|
|
74
|
-
} = props
|
|
75
|
-
|
|
76
|
-
const background = getBackgroundColor(props)
|
|
77
|
-
const border = getBorderColor(props)
|
|
78
|
-
|
|
79
|
-
const { icon: LevelIcon, color: iconColor } = getIcon(props)
|
|
80
|
-
|
|
81
|
-
const handleClose = () => {
|
|
82
|
-
safeCallback(onClose)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if(!is(open)) {
|
|
86
|
-
return <Nothing />
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return (
|
|
90
|
-
<InCardFrame role="alert" background={background} border={border} className={props.className}>
|
|
91
|
-
<IconContainer iconColor={iconColor}>
|
|
92
|
-
<LevelIcon></LevelIcon>
|
|
93
|
-
</IconContainer>
|
|
94
|
-
<Content>
|
|
95
|
-
{props.children}
|
|
96
|
-
</Content>
|
|
97
|
-
{ is(dismissible)
|
|
98
|
-
? <CloseButton aria-label="Close" onClick={handleClose}></CloseButton>
|
|
99
|
-
: <Nothing></Nothing>
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
{ isDefined(primaryButtonLabel) || isDefined(secondaryButtonLabel)
|
|
103
|
-
? <AlertFooter>
|
|
104
|
-
{ isDefined(primaryButtonLabel)
|
|
105
|
-
? <Button outline onClick={onPrimaryAction} name="alert-banner-primary-button">{primaryButtonLabel}</Button>
|
|
106
|
-
: <Nothing />
|
|
107
|
-
}
|
|
108
|
-
{ isDefined(secondaryButtonLabel)
|
|
109
|
-
? <Button plain subtle onClick={onSecondaryAction} name="alert-banner-secondary-button">{secondaryButtonLabel}</Button>
|
|
110
|
-
: <Nothing />
|
|
111
|
-
}
|
|
112
|
-
</AlertFooter>
|
|
113
|
-
: <Nothing />
|
|
114
|
-
}
|
|
115
|
-
</InCardFrame>
|
|
116
|
-
)
|
|
117
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
// this file was generated, but it is safe to modify
|
|
2
|
-
import { Borders, Surface, Icons } from '@foundations'
|
|
3
|
-
import { bitwiseOr, Hex, MappedEnum, RequireOnlyOne, PropsWithChildren } from '@helpers'
|
|
4
|
-
import { ComponentType } from 'react'
|
|
5
|
-
import { Icon } from '../icon'
|
|
6
|
-
|
|
7
|
-
const enum AlertLevel {
|
|
8
|
-
neutral = 1,
|
|
9
|
-
info = 2,
|
|
10
|
-
success = 4,
|
|
11
|
-
warning = 8,
|
|
12
|
-
critical = 16,
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
type AlertLevels<T> = MappedEnum<typeof AlertLevel, T>
|
|
16
|
-
|
|
17
|
-
function toAlertLevel(n: number): AlertLevel {
|
|
18
|
-
switch (n) {
|
|
19
|
-
case AlertLevel.neutral:
|
|
20
|
-
return AlertLevel.neutral
|
|
21
|
-
case AlertLevel.info:
|
|
22
|
-
return AlertLevel.info
|
|
23
|
-
case AlertLevel.success:
|
|
24
|
-
return AlertLevel.success
|
|
25
|
-
case AlertLevel.warning:
|
|
26
|
-
return AlertLevel.warning
|
|
27
|
-
case AlertLevel.critical:
|
|
28
|
-
return AlertLevel.critical
|
|
29
|
-
default:
|
|
30
|
-
return AlertLevel.neutral
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type AlertLevelProps = Partial<RequireOnlyOne<AlertLevels<boolean>>> &
|
|
35
|
-
PropsWithChildren
|
|
36
|
-
|
|
37
|
-
const AlertLevelBackgroundColors = {
|
|
38
|
-
[AlertLevel.neutral]: Surface.Neutral.Subdued,
|
|
39
|
-
[AlertLevel.info]: Surface.Highlight.Subdued,
|
|
40
|
-
[AlertLevel.success]: Surface.Success.Subdued,
|
|
41
|
-
[AlertLevel.warning]: Surface.Warning.Subdued,
|
|
42
|
-
[AlertLevel.critical]: Surface.Critical.Subdued,
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const AlertLevelBorderColors = {
|
|
46
|
-
[AlertLevel.neutral]: Borders.Default.Default,
|
|
47
|
-
[AlertLevel.info]: Borders.Highlight.Subdued,
|
|
48
|
-
[AlertLevel.success]: Borders.Success.Subdued,
|
|
49
|
-
[AlertLevel.warning]: Borders.Warning.Subdued,
|
|
50
|
-
[AlertLevel.critical]: Borders.Critical.Subdued,
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const AlertLevelIcons = {
|
|
54
|
-
[AlertLevel.neutral]: { icon: Icon.CircleInfo, color: Icons.Default },
|
|
55
|
-
[AlertLevel.info]: { icon: Icon.CircleInfo, color: Icons.Highlight },
|
|
56
|
-
[AlertLevel.success]: { icon: Icon.CircleCheck, color: Icons.Success },
|
|
57
|
-
[AlertLevel.warning]: { icon: Icon.TriangleExclamation, color: Icons.Warning },
|
|
58
|
-
[AlertLevel.critical]: { icon: Icon.DiamondExclamation, color: Icons.Critical },
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export function getBackgroundColor(props: AlertLevelProps): Hex {
|
|
62
|
-
return AlertLevelBackgroundColors[
|
|
63
|
-
toAlertLevel(
|
|
64
|
-
bitwiseOr([
|
|
65
|
-
props.neutral,
|
|
66
|
-
props.info,
|
|
67
|
-
props.success,
|
|
68
|
-
props.warning,
|
|
69
|
-
props.critical,
|
|
70
|
-
])
|
|
71
|
-
)
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export function getBorderColor(props: AlertLevelProps): Hex {
|
|
76
|
-
return AlertLevelBorderColors[
|
|
77
|
-
toAlertLevel(
|
|
78
|
-
bitwiseOr([
|
|
79
|
-
props.neutral,
|
|
80
|
-
props.info,
|
|
81
|
-
props.success,
|
|
82
|
-
props.warning,
|
|
83
|
-
props.critical,
|
|
84
|
-
])
|
|
85
|
-
)
|
|
86
|
-
]
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export function getIcon(props: AlertLevelProps): { icon: ComponentType, color: Hex } {
|
|
90
|
-
return AlertLevelIcons[
|
|
91
|
-
toAlertLevel(
|
|
92
|
-
bitwiseOr([
|
|
93
|
-
props.neutral,
|
|
94
|
-
props.info,
|
|
95
|
-
props.success,
|
|
96
|
-
props.warning,
|
|
97
|
-
props.critical,
|
|
98
|
-
])
|
|
99
|
-
)
|
|
100
|
-
]
|
|
101
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './alert-banner'
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Canvas, Meta, Story } from '@storybook/addon-docs';
|
|
2
|
-
import { Card, SpaceBetween } from '@components'
|
|
3
|
-
import {
|
|
4
|
-
SimpleAlertBanner,
|
|
5
|
-
TypeVariantAlertBanner,
|
|
6
|
-
DismissibleAlertBanner,
|
|
7
|
-
ActionsAlertBanner
|
|
8
|
-
} from './components'
|
|
9
|
-
|
|
10
|
-
import { AlertBanner } from '../alert-banner'
|
|
11
|
-
import { Heading3, Body } from '../../typography'
|
|
12
|
-
|
|
13
|
-
<Meta title="Components/AlertBanner" component={AlertBanner}/>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
# Alert Banner
|
|
17
|
-
• Alert Banners informs user about important changes or persistent conditions.
|
|
18
|
-
Use this component if you need to communicate to users in a prominent way.
|
|
19
|
-
|
|
20
|
-
For more details, check out the component page on [Figma](https://www.figma.com/file/ue1CurHfZ426o2T2l8Dk64/Edvisor-Product-Language?node-id=1082%3A1049&t=lBbNjmK8G41XPGz9-0)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
## How to use
|
|
24
|
-
|
|
25
|
-
```javascript
|
|
26
|
-
// Import the component
|
|
27
|
-
import { AlertBanner } from './index'
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// Render the component sending the parameters
|
|
31
|
-
<AlertBanner default>
|
|
32
|
-
<div> Content </div>
|
|
33
|
-
</AlertBanner>
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Simple Alert Banner
|
|
38
|
-
<SimpleAlertBanner />
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
### Alert Banner with different type
|
|
43
|
-
The possible values are `neutral` \| `info` \| `success` \| `warning` \| `critical`
|
|
44
|
-
<TypeVariantAlertBanner />
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
### Dismissible alert banner
|
|
48
|
-
|
|
49
|
-
<DismissibleAlertBanner/>
|
|
50
|
-
|
|
51
|
-
### Alert banner with action buttons
|
|
52
|
-
<ActionsAlertBanner />
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
## API
|
|
56
|
-
|
|
57
|
-
| Name | Type | Description |
|
|
58
|
-
| ----------------------------------------------------- ----- | ------------ | --------------------------------------------------------- |
|
|
59
|
-
| `dismissible?` | `boolean` | Defines if the user can dismiss alert |
|
|
60
|
-
| `className?` | `string` | Class to be attached to the Container |
|
|
61
|
-
| `open?` | `boolean` | Defines if the alert is visible on screen |
|
|
62
|
-
| `primaryButtonLabel?` | `boolean` | Text on the primary button |
|
|
63
|
-
| `secondaryButtonLabel?` | `boolean` | Text on the secondary button |
|
|
64
|
-
| `onPrimaryAction?` | `() => void` | Primary button event handler function |
|
|
65
|
-
| `onSecondaryAction?` | `() => void` | Secondary button event handler function |
|
|
66
|
-
| `onClose?` | `() => void` | Callback function invoked to close the alert banner |
|
|
67
|
-
| `neutral` \| `info` \| `success` \| `warning` \| `critical` | boolean | Define the color and icons of the alert |
|