├── .babelrc
├── .github
├── CODEOWNERS
├── ISSUE_TEMPLATE
│ ├── demo-improvements.yml
│ ├── propose-a-new-component.yml
│ ├── propose-an-improvement.yml
│ ├── report-a-bug.yml
│ └── test.yml
├── SCRIPTS
│ ├── commentCoverage.js
│ ├── exportCoverageFromJsonSummary.js
│ ├── exportCoverageFromMarkdownShields.js
│ └── updateCoverageBadges.js
├── dependabot.yml
├── pull_request_template.md
└── workflows
│ ├── main.md
│ └── main.yml
├── .gitignore
├── .npmrc
├── .nvmrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── STRUCTURE.md
├── components
├── README.md
├── atom
│ ├── .gitkeep
│ ├── actionButton
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ActionButtonCatalog.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── ActionButtonLink.js
│ │ │ ├── ActionButtonWrapper.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── backToTop
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── BackToTopButton.js
│ │ │ ├── calcBackToTopEngine.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── badge
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── assets
│ │ │ └── screenshot.png
│ │ ├── demo
│ │ │ ├── ArticleA11y.js
│ │ │ ├── ArticleContent.js
│ │ │ ├── ArticleCustomType.js
│ │ │ ├── ArticleDarkMode.js
│ │ │ ├── ArticleDesign.js
│ │ │ ├── ArticleIsFitted.js
│ │ │ ├── ArticleSizes.js
│ │ │ ├── ArticleType.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── _config.scss
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── button
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── SPEC.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleAlignment.js
│ │ │ │ ├── ArticleColor.js
│ │ │ │ ├── ArticleDesign.js
│ │ │ │ ├── ArticleDesignColor.js
│ │ │ │ ├── ArticleElevation.js
│ │ │ │ ├── ArticleKeyboardNavigation.js
│ │ │ │ ├── ArticleLink.js
│ │ │ │ ├── ArticleNegative.js
│ │ │ │ ├── ArticlePlayground.js
│ │ │ │ ├── ArticleShape.js
│ │ │ │ ├── ArticleSize.js
│ │ │ │ └── ArticleSocialColor.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Button.js
│ │ │ ├── ButtonIcon.js
│ │ │ ├── ButtonLink.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── card
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── DefaultDemo.js
│ │ │ ├── PlaceHolder.js
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── checkbox
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleCustomIcons.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDisabled.js
│ │ │ │ ├── ArticlePlayground.js
│ │ │ │ ├── ArticleSizes.js
│ │ │ │ ├── ArticleStatus.js
│ │ │ │ └── ArticleValues.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── CheckboxIcon.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── helpText
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleCheckbox.js
│ │ │ │ ├── ArticleInput.js
│ │ │ │ └── ArticleTextArea.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── icon
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleColorInheritance.js
│ │ │ │ ├── ArticleColorsAndSizes.js
│ │ │ │ ├── ArticleLazy.js
│ │ │ │ ├── ArticlePolymorphic.js
│ │ │ │ ├── ArticleShapesAndSizes.js
│ │ │ │ └── ArticleSpan.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Icon.js
│ │ │ ├── LazyIcon.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── image
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── ConnectionViewer.js
│ │ │ ├── ImageNotFoundIcon.js
│ │ │ ├── article
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleFallbackImage.js
│ │ │ │ ├── ArticleLazyImage.js
│ │ │ │ ├── ArticleLcpImage.js
│ │ │ │ ├── ArticlePlaceHolder.js
│ │ │ │ ├── ArticleSkeleton.js
│ │ │ │ ├── ArticleSpinner.js
│ │ │ │ └── ArticleViewport.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── ErrorImage.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ ├── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ │ └── types.js
│ │ └── test
│ │ │ └── index.test.js
│ ├── input
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleAddonAndIcon.js
│ │ │ │ ├── ArticleBorderless.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDisabledReadOnly.js
│ │ │ │ ├── ArticleErrorStatus.js
│ │ │ │ ├── ArticleInlineForm.js
│ │ │ │ ├── ArticleKeyboardNavigation.js
│ │ │ │ ├── ArticlePlaceholderValueAndDefaultValue.js
│ │ │ │ ├── ArticleShape.js
│ │ │ │ ├── ArticleSize.js
│ │ │ │ ├── ArticleState.js
│ │ │ │ └── ArticleType.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Container
│ │ │ │ ├── InputContainer.js
│ │ │ │ └── index.scss
│ │ │ ├── Input
│ │ │ │ ├── Component
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── settings.scss
│ │ │ │ ├── Wrappers
│ │ │ │ │ ├── Addons
│ │ │ │ │ │ ├── InputAddons.js
│ │ │ │ │ │ ├── config.js
│ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ └── settings.scss
│ │ │ │ │ ├── Button
│ │ │ │ │ │ ├── InputButton.js
│ │ │ │ │ │ ├── config.js
│ │ │ │ │ │ └── index.scss
│ │ │ │ │ ├── Icons
│ │ │ │ │ │ ├── InputIcons.js
│ │ │ │ │ │ ├── config.js
│ │ │ │ │ │ ├── index.scss
│ │ │ │ │ │ └── settings.scss
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── settings.scss
│ │ │ │ └── index.js
│ │ │ ├── Mask
│ │ │ │ ├── iMask.js
│ │ │ │ └── index.js
│ │ │ ├── Password
│ │ │ │ ├── config.js
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ └── styles
│ │ │ │ │ ├── index.scss
│ │ │ │ │ └── settings.scss
│ │ │ ├── config.js
│ │ │ ├── helpers
│ │ │ │ ├── getComponentAndProps.js
│ │ │ │ └── isValidInputValue.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── mixins.scss
│ │ │ ├── settings.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── kbd
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleCombinations.js
│ │ │ │ ├── ArticleGuidelines.js
│ │ │ │ └── ArticleKeyboard.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── label
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.tsx
│ │ │ │ ├── ArticleFontSize.tsx
│ │ │ │ ├── ArticleInline.tsx
│ │ │ │ └── ArticleType.tsx
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── index.d.ts
│ │ ├── mod.d.ts
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.scss
│ │ │ ├── index.tsx
│ │ │ ├── settings.tsx
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ ├── test
│ │ │ └── index.test.tsx
│ │ └── tsconfig.json
│ ├── panel
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── PanelAsColor
│ │ │ │ ├── ArticleAlpha.js
│ │ │ │ ├── ArticleColor.js
│ │ │ │ ├── ArticleContainer.js
│ │ │ │ ├── ArticleElevated.js
│ │ │ │ ├── ArticleIsFullHeight.js
│ │ │ │ └── ArticleRounded.js
│ │ │ ├── PanelAsImage
│ │ │ │ ├── ArticleElevated.js
│ │ │ │ ├── ArticleHorizontallyCropped.js
│ │ │ │ ├── ArticleIsFullHeight.js
│ │ │ │ ├── ArticleOverlay.js
│ │ │ │ ├── ArticlePlaceholder.js
│ │ │ │ ├── ArticleResized.js
│ │ │ │ ├── ArticleRounded.js
│ │ │ │ └── ArticleVerticallyCropped.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── ColorPanel.js
│ │ │ ├── ImagePanel.js
│ │ │ ├── constants.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── pinInput
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleAutoFocus.js
│ │ │ ├── ArticleChildren.js
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleDisabled.js
│ │ │ ├── ArticleLength.js
│ │ │ ├── ArticleMask.js
│ │ │ ├── ArticlePassword.js
│ │ │ ├── ArticlePlaceholder.js
│ │ │ ├── ArticleReferenced.js
│ │ │ ├── ArticleSizes.js
│ │ │ ├── ArticleStatus.js
│ │ │ ├── ArticleValue.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── PinInput.scss
│ │ │ ├── PinInputChildren.js
│ │ │ ├── PinInputChildren.scss
│ │ │ ├── PinInputContext.js
│ │ │ ├── PinInputField.js
│ │ │ ├── PinInputField.scss
│ │ │ ├── config.js
│ │ │ ├── config.scss
│ │ │ ├── hooks
│ │ │ │ ├── useKeyPress.js
│ │ │ │ └── useUpdateEffect.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── reducer
│ │ │ │ ├── actionTypes.js
│ │ │ │ ├── actions.js
│ │ │ │ ├── index.js
│ │ │ │ ├── reducer.js
│ │ │ │ └── usePinInputReducer.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── popover
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── Content.js
│ │ │ ├── Icons
│ │ │ │ └── IconClose.js
│ │ │ ├── ReMountDebounced.js
│ │ │ ├── articles
│ │ │ │ ├── ArticleArrow.js
│ │ │ │ ├── ArticleBehavior.js
│ │ │ │ ├── ArticleCloseIcon.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticlePosition.js
│ │ │ │ ├── ArticleRef.js
│ │ │ │ └── ArticleType.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── PopoverExtendChildren.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── progressBar
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── DynamicProgressBar.js
│ │ │ ├── InputRangeProgressBar.js
│ │ │ ├── StaticWithAnimation.js
│ │ │ ├── articles
│ │ │ │ ├── ArticleCircleDefault.js
│ │ │ │ ├── ArticleLinearDefault.js
│ │ │ │ ├── ArticleLinearDoubleDefault.js
│ │ │ │ └── ArticleTypes.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── ProgressBarCircle
│ │ │ │ ├── Circle
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── settings.js
│ │ │ │ ├── Indicator.js
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ ├── settings.js
│ │ │ │ └── settings.scss
│ │ │ ├── ProgressBarLine
│ │ │ │ ├── Indicator
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── settings.js
│ │ │ │ ├── Line.js
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ ├── settings.js
│ │ │ │ ├── settings.scss
│ │ │ │ ├── useIndicator.js
│ │ │ │ └── usePercentage.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── radioButton
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── skeleton
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleAnimation.js
│ │ │ ├── ArticleCount.js
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleSize.js
│ │ │ ├── ArticleVariant.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── slider
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleRangeControlledState.js
│ │ │ ├── ArticleRangeDefault.js
│ │ │ ├── ArticleRangeInvertColors.js
│ │ │ ├── ArticleRangeMarks.js
│ │ │ ├── ArticleRangeSteps.js
│ │ │ ├── ArticleSliderControlledState.js
│ │ │ ├── ArticleSliderDefault.js
│ │ │ ├── ArticleSliderDisabled.js
│ │ │ ├── ArticleSliderFullWidth.js
│ │ │ ├── ArticleSliderHideMarks.js
│ │ │ ├── ArticleSliderInvertColors.js
│ │ │ ├── ArticleSliderMarks.js
│ │ │ ├── ArticleSliderSteps.js
│ │ │ ├── ArticleSliderThreshold.js
│ │ │ ├── ArticleSliderValueLabel.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── utils.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Handler.js
│ │ │ ├── Label.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── markerFactory.js
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── spinner
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CustomChildren.js
│ │ │ ├── CustomLoader.js
│ │ │ ├── FullScreenSpinner.js
│ │ │ ├── SpinnerWrapper.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── DefaultSpinner.js
│ │ │ ├── SUILoader
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── switch
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleColors.js
│ │ │ │ ├── ArticleControlledAndUncontrolled.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDesigns.js
│ │ │ │ ├── ArticleDisabled.js
│ │ │ │ ├── ArticleFullWidth.js
│ │ │ │ ├── ArticleIcons.js
│ │ │ │ ├── ArticleLoading.js
│ │ │ │ ├── ArticleReadOnly.js
│ │ │ │ └── ArticleSizes.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── SwitchDesign
│ │ │ │ ├── AtomSwitchSingle.js
│ │ │ │ ├── AtomSwitchToggle.js
│ │ │ │ └── helpers.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── table
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── tag
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleColor.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDesign.js
│ │ │ │ ├── ArticleDisabled.js
│ │ │ │ ├── ArticleIcons.js
│ │ │ │ ├── ArticleKeyboardNavigation.js
│ │ │ │ ├── ArticleKind.js
│ │ │ │ ├── ArticlePressed.js
│ │ │ │ ├── ArticleReadOnly.js
│ │ │ │ ├── ArticleResponsive.js
│ │ │ │ ├── ArticleSize.js
│ │ │ │ └── ArticleTypes.js
│ │ │ ├── icons.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Actionable
│ │ │ │ ├── AtomTagActionableIcon.js
│ │ │ │ ├── Container.js
│ │ │ │ ├── TagLink.js
│ │ │ │ ├── index.js
│ │ │ │ └── settings.js
│ │ │ ├── Standard.js
│ │ │ ├── _settings.scss
│ │ │ ├── constants.js
│ │ │ ├── helpers.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ ├── settings.scss
│ │ │ │ └── utils.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── textarea
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── Text-area-field.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── toast
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── Icons
│ │ │ │ └── index.js
│ │ │ ├── ToastDemo.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── _settings.scss
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── tooltip
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ColorArticle.js
│ │ │ ├── ControlledAndUncontrolledArticle.js
│ │ │ ├── DefaultArticle.js
│ │ │ ├── DelayArticle.js
│ │ │ ├── IsArrowedArticle.js
│ │ │ ├── PlacementArticle.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── TooltipExtendChildren.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── upload
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── icons
│ │ │ │ ├── iconActive.js
│ │ │ │ ├── iconError.js
│ │ │ │ └── iconSuccess.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── validationText
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ └── ArticleNodes.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ └── videoPlayer
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── assets
│ │ └── preview.jpg
│ │ ├── demo
│ │ ├── DemoPlayer.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ ├── components
│ │ │ ├── HLSPlayer.js
│ │ │ ├── NativePlayer.js
│ │ │ ├── VimeoPlayer.js
│ │ │ └── YouTubePlayer.js
│ │ ├── hooks
│ │ │ ├── hls
│ │ │ │ ├── useInitHlsEffect.js
│ │ │ │ └── useTimeLimitCheck.js
│ │ │ ├── native
│ │ │ │ ├── useGetBlobAsVideoSrcEffect.js
│ │ │ │ └── useGetSrcWithMediaFragments.js
│ │ │ ├── useDetectVideoType.js
│ │ │ ├── useImperativeApi.js
│ │ │ ├── useScrollAutoplayEffect.js
│ │ │ ├── useVideoPlayer.js
│ │ │ ├── vimeo
│ │ │ │ ├── useTimeLimitCheck.js
│ │ │ │ ├── useVideoMetadata.js
│ │ │ │ ├── useVimeoApi.js
│ │ │ │ └── useVimeoProperties.js
│ │ │ └── youtube
│ │ │ │ └── useYouTubeProperties.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ └── settings
│ │ │ ├── index.js
│ │ │ └── players.js
│ │ └── test
│ │ └── index.test.js
├── behavior
│ └── sticky
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ ├── LoremIpsum.js
│ │ ├── articles
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleGridDemo.js
│ │ │ ├── ArticleScrollUp.js
│ │ │ ├── ArticleStacked.js
│ │ │ └── ArticleStickyState.js
│ │ ├── hooks
│ │ │ ├── useMeasure.js
│ │ │ └── useRefs.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ ├── package.json
│ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ ├── StickyScrollUp.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ ├── settings.js
│ │ └── styles
│ │ │ ├── index.scss
│ │ │ └── settings.scss
│ │ └── test
│ │ └── index.test.js
├── ecosystem
│ └── .gitkeep
├── globals.js
├── hook
│ ├── .gitkeep
│ └── usePortal
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ ├── articles
│ │ │ ├── ArticleCloseOnEvent.js
│ │ │ ├── ArticleCustom.js
│ │ │ ├── ArticleCustom
│ │ │ │ ├── usePopper.js
│ │ │ │ └── useTooltip.js
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleStateful.js
│ │ │ ├── ArticleStateless.js
│ │ │ └── ArticleTarget.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ ├── package.json
│ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ ├── index.js
│ │ ├── index.scss
│ │ └── settings.js
│ │ └── test
│ │ └── index.test.js
├── layout
│ └── grid
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ ├── ArticleAlignContent.js
│ │ ├── ArticleAlignItems.js
│ │ ├── ArticleCombine.js
│ │ ├── ArticleDefault.js
│ │ ├── ArticleGutter.js
│ │ ├── ArticleInject.js
│ │ ├── ArticleIsGapless.js
│ │ ├── ArticleJustifyContent.js
│ │ ├── ArticleOffset.js
│ │ ├── ArticleResponsive.js
│ │ ├── demoBox.js
│ │ ├── demoWrapper.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ ├── _settings.scss
│ │ ├── gridItem
│ │ │ ├── index.js
│ │ │ └── settings.js
│ │ ├── helpers.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ ├── settings.js
│ │ └── styles
│ │ │ ├── index.scss
│ │ │ └── settings.scss
│ │ └── test
│ │ └── index.test.js
├── molecule
│ ├── .gitkeep
│ ├── accordion
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── LoremIpsum.js
│ │ │ ├── articles
│ │ │ │ ├── ArticleBehavior.js
│ │ │ │ ├── ArticleCustom.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDisabled.js
│ │ │ │ ├── ArticleHeight.js
│ │ │ │ ├── ArticleIcon.js
│ │ │ │ ├── ArticleLabelWrap.js
│ │ │ │ ├── ArticleSpacing.js
│ │ │ │ ├── ArticleTransition.js
│ │ │ │ └── custom
│ │ │ │ │ ├── HeaderCustom.js
│ │ │ │ │ └── PanelCustom.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── AccordionItem.js
│ │ │ ├── AccordionItemHeader.js
│ │ │ ├── AccordionItemHeaderChildrenDefault.js
│ │ │ ├── AccordionItemHeaderIcon.js
│ │ │ ├── AccordionItemHeaderIconDefault.js
│ │ │ ├── AccordionItemPanel.js
│ │ │ ├── AccordionItemPanelDefaultChildren.js
│ │ │ ├── _settings.scss
│ │ │ ├── context
│ │ │ │ ├── AccordionContext.js
│ │ │ │ ├── AccordionProvider.js
│ │ │ │ ├── index.js
│ │ │ │ └── useAccordionContext.js
│ │ │ ├── hook
│ │ │ │ └── useMeasure.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── autosuggest
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleArrayObjects
│ │ │ │ └── index.js
│ │ │ ├── ArticleDependantSelection
│ │ │ │ ├── components
│ │ │ │ │ └── ComboCountries.js
│ │ │ │ └── index.js
│ │ │ ├── ArticleIsOpenProp
│ │ │ │ └── index.js
│ │ │ ├── ArticleMultipleSelection
│ │ │ │ └── index.js
│ │ │ ├── ArticleSingleSelection
│ │ │ │ └── index.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── Icons
│ │ │ │ └── index.js
│ │ │ ├── config.js
│ │ │ ├── data
│ │ │ │ ├── countries.json
│ │ │ │ └── regions.json
│ │ │ ├── hoc
│ │ │ │ └── withDynamicOptions.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── services
│ │ │ │ └── index.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── components
│ │ │ │ ├── InputWithClearUI
│ │ │ │ │ ├── config.js
│ │ │ │ │ └── index.js
│ │ │ │ ├── MultipleSelection
│ │ │ │ │ └── index.js
│ │ │ │ └── SingleSelection
│ │ │ │ │ └── index.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── autosuggestField
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── Icons
│ │ │ │ └── index.js
│ │ │ ├── data
│ │ │ │ └── countries.json
│ │ │ ├── hoc
│ │ │ │ └── withDynamicOptions.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── services
│ │ │ │ └── index.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── avatar
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleBadge.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleImage.js
│ │ │ │ ├── ArticleLoading.js
│ │ │ │ ├── ArticleName.js
│ │ │ │ ├── ArticleRef.js
│ │ │ │ └── ArticleSize.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── AvatarBadge
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ ├── settings.js
│ │ │ │ └── settings.scss
│ │ │ ├── AvatarFallback
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ │ ├── AvatarFallbackIcon
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ ├── settings.js
│ │ │ │ └── settings.scss
│ │ │ ├── AvatarFallbackName
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ ├── settings.js
│ │ │ │ └── settings.scss
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ ├── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ │ └── useBackgroundColor.js
│ │ └── test
│ │ │ └── index.test.js
│ ├── badgeCounter
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleA11y.js
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleLabel.js
│ │ │ ├── ArticleSizes.js
│ │ │ ├── ArticleStatus.js
│ │ │ ├── ArticleVariant.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── breadcrumb
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── article
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleCustomIcon.js
│ │ │ │ ├── ArticleDefaut.js
│ │ │ │ ├── ArticleKeyboardNavigation.js
│ │ │ │ └── ArticleScrollable.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ ├── settings.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── buttonGroup
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ButtonDesignByState.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── articles
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDesign.js
│ │ │ │ ├── ArticleDisplay.js
│ │ │ │ ├── ArticleMode.js
│ │ │ │ ├── ArticleShape.js
│ │ │ │ ├── ArticleSize.js
│ │ │ │ ├── ArticleSpaced.js
│ │ │ │ └── ArticleVertical.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── buttonGroupField
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleInformation.js
│ │ │ ├── ArticleSemantic.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── carousel
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── MIGRATION.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleControlled.js
│ │ │ │ ├── ArticleCustomArrows.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDynamicContent.js
│ │ │ │ ├── ArticleFullWidth.js
│ │ │ │ ├── ArticleHandlers.js
│ │ │ │ ├── ArticleInfiniteLoop.js
│ │ │ │ ├── ArticleKeyboardNavigation.js
│ │ │ │ ├── ArticleMultipleSlides.js
│ │ │ │ ├── ArticlePreloadItems.js
│ │ │ │ └── components
│ │ │ │ │ └── CustomArrow.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── CarouselArrow.js
│ │ │ ├── CarouselContainer.js
│ │ │ ├── CarouselItem.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ ├── slidy.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── checkboxField
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleA11y.js
│ │ │ ├── ArticleDisabled.js
│ │ │ ├── ArticleSize.js
│ │ │ ├── ArticleStatus.js
│ │ │ ├── ArticleWithCustomCheckedIcon.js
│ │ │ ├── ArticleWithHelpText.js
│ │ │ ├── ArticleWithLabelFullWidth.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── coachmark
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleDefaultTooltipVariants.js
│ │ │ ├── CloseIcon.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Tooltip
│ │ │ │ └── index.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── collapsible
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleAlignment.js
│ │ │ ├── ArticleButtonTextAlignment.js
│ │ │ ├── ArticleControlled.js
│ │ │ ├── ArticleCustomHeight.js
│ │ │ ├── ArticleGradient.js
│ │ │ ├── ArticleNoCollapse.js
│ │ │ ├── ArticleTransition.js
│ │ │ ├── ArticleUncontrolled.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── config
│ │ │ │ └── index.js
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── _settings.scss
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── dataCounter
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── Articles
│ │ │ │ ├── ArticleBounds.js
│ │ │ │ ├── ArticleDisabled.js
│ │ │ │ ├── ArticleIcons.js
│ │ │ │ ├── ArticleLoading.js
│ │ │ │ ├── ArticleSizes.js
│ │ │ │ └── ArticleState.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ │ └── useMouseHold.js
│ │ └── test
│ │ │ └── index.test.js
│ ├── drawer
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── DemoAnimationDuration.js
│ │ │ ├── DemoDefault.js
│ │ │ ├── DemoPageScrollable.js
│ │ │ ├── DemoPlacement.js
│ │ │ ├── DemoSize.js
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Overlay.js
│ │ │ ├── _settings.scss
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── dropdownList
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleCheckbox.js
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleDesign.js
│ │ │ ├── ArticlePosition.js
│ │ │ ├── ArticleSize.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── ExtendedChildren.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── dropdownOption
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleBehavior.js
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleDescription.js
│ │ │ ├── ArticleHighLight.js
│ │ │ ├── ArticleLeftAddonAndDescription.js
│ │ │ ├── ArticleLeftAddons.js
│ │ │ ├── ArticleTextWrap.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LoremIpsum.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── _settings.scss
│ │ │ ├── config.js
│ │ │ ├── handlersFactory
│ │ │ │ └── index.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── field
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Label.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ │ ├── useStatusValidationText.js
│ │ │ └── useTypeValidationLabel.js
│ │ └── test
│ │ │ └── index.test.js
│ ├── imageEditor
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleCustomChildren.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ └── CustomChildren.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── ImageEditorCropper.js
│ │ │ ├── ImageEditorDefault.js
│ │ │ ├── ImageEditorSliders.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── prop-types.js
│ │ │ ├── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ │ └── utils
│ │ │ │ └── cropImage.js
│ │ └── test
│ │ │ └── index.test.js
│ ├── inputField
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── inputTags
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── Data.js
│ │ │ ├── articles
│ │ │ │ ├── ArticleBorderless.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDisableReadOnly.js
│ │ │ │ ├── ArticleHandlers.js
│ │ │ │ ├── ArticleMaxTagsAndAllowDuplicates.js
│ │ │ │ ├── ArticleSemantic.js
│ │ │ │ ├── ArticleSizeAndTagSize.js
│ │ │ │ └── ArticleTagsSize.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── modal
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── articles
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleAPI.js
│ │ │ │ ├── ArticleControlled.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleEffect.js
│ │ │ │ ├── ArticleForm.js
│ │ │ │ ├── ArticleInset.js
│ │ │ │ ├── ArticleKeyboardNavigation.js
│ │ │ │ ├── ArticleSize.js
│ │ │ │ └── ArticleURLState.js
│ │ │ ├── config.js
│ │ │ ├── data
│ │ │ │ ├── photos.js
│ │ │ │ └── users.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── utils
│ │ │ │ ├── CodeEditor
│ │ │ │ ├── CodeEditor.js
│ │ │ │ ├── CodeEditorActions.js
│ │ │ │ ├── Context
│ │ │ │ │ └── index.js
│ │ │ │ ├── config.js
│ │ │ │ ├── index.js
│ │ │ │ └── index.scss
│ │ │ │ ├── LoremIpsum
│ │ │ │ └── index.js
│ │ │ │ └── index.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Modal.Body.index.scss
│ │ │ ├── Modal.Body.js
│ │ │ ├── Modal.Body.settings.scss
│ │ │ ├── Modal.CloseIconButton.index.scss
│ │ │ ├── Modal.CloseIconButton.js
│ │ │ ├── Modal.CloseIconButton.settings.scss
│ │ │ ├── Modal.CloseTrigger.index.scss
│ │ │ ├── Modal.CloseTrigger.js
│ │ │ ├── Modal.CloseTrigger.settings.scss
│ │ │ ├── Modal.Content.index.scss
│ │ │ ├── Modal.Content.js
│ │ │ ├── Modal.Content.settings.scss
│ │ │ ├── Modal.Description.index.scss
│ │ │ ├── Modal.Description.js
│ │ │ ├── Modal.Description.settings.scss
│ │ │ ├── Modal.Footer.index.scss
│ │ │ ├── Modal.Footer.js
│ │ │ ├── Modal.Footer.settings.scss
│ │ │ ├── Modal.Header.index.scss
│ │ │ ├── Modal.Header.js
│ │ │ ├── Modal.Header.settings.scss
│ │ │ ├── Modal.OpenTrigger.index.scss
│ │ │ ├── Modal.OpenTrigger.js
│ │ │ ├── Modal.OpenTrigger.settings.scss
│ │ │ ├── Modal.Overlay.index.scss
│ │ │ ├── Modal.Overlay.js
│ │ │ ├── Modal.Overlay.settings.scss
│ │ │ ├── Modal.Portal.index.scss
│ │ │ ├── Modal.Portal.js
│ │ │ ├── Modal.Portal.settings.scss
│ │ │ ├── Modal.Root.js
│ │ │ ├── Modal.ScrollArea.index.scss
│ │ │ ├── Modal.ScrollArea.js
│ │ │ ├── Modal.ScrollArea.settings.scss
│ │ │ ├── Modal.Title.index.scss
│ │ │ ├── Modal.Title.js
│ │ │ ├── Modal.Title.settings.scss
│ │ │ ├── _settings.scss
│ │ │ ├── config.js
│ │ │ ├── context
│ │ │ │ └── index.js
│ │ │ ├── hooks
│ │ │ │ ├── index.js
│ │ │ │ ├── useDelayedRender.js
│ │ │ │ └── useModalContext.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── notification
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleAlignItems.js
│ │ │ ├── ArticleAutoClose.js
│ │ │ ├── ArticleContainerOverride.js
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleMobileLeftIcon.js
│ │ │ ├── ArticlePosition.js
│ │ │ ├── ArticleRoundedCorners.js
│ │ │ ├── ArticleTypeAndVariation.js
│ │ │ ├── PositionNotification.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── utils.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── _settings.scss
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── pagination
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── DynamicMoleculePagination
│ │ │ │ └── index.js
│ │ │ ├── Icons
│ │ │ │ └── index.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── PageButton.js
│ │ │ ├── customPropTypes
│ │ │ │ ├── helpers.js
│ │ │ │ ├── index.js
│ │ │ │ ├── isValidPage.js
│ │ │ │ ├── isValidShowPages.js
│ │ │ │ └── isValidTotalPages.js
│ │ │ ├── helpers
│ │ │ │ └── pagination
│ │ │ │ │ ├── highRange.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── lowRange.js
│ │ │ │ │ ├── nextPage.js
│ │ │ │ │ ├── prevPage.js
│ │ │ │ │ └── range.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── phoneInput
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleStates.js
│ │ │ ├── ArticleTypes.js
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── photoUploader
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── articles
│ │ │ │ ├── Content.js
│ │ │ │ ├── DefaultArticle.js
│ │ │ │ ├── InitialPhotosArticle.js
│ │ │ │ └── WithContentArticle.js
│ │ │ ├── config.js
│ │ │ ├── icons.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── DragNotification
│ │ │ │ ├── config.js
│ │ │ │ └── index.js
│ │ │ ├── DragState
│ │ │ │ ├── config.js
│ │ │ │ └── index.js
│ │ │ ├── EmptyView
│ │ │ │ ├── config.js
│ │ │ │ └── index.js
│ │ │ ├── PhotosPreview
│ │ │ │ ├── config.js
│ │ │ │ └── index.js
│ │ │ ├── SkeletonCard
│ │ │ │ ├── config.js
│ │ │ │ └── index.js
│ │ │ ├── ThumbCard
│ │ │ │ ├── config.js
│ │ │ │ └── index.js
│ │ │ ├── config.js
│ │ │ ├── fileTools.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── photoTools.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── progressSteps
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CompressedProgressBarArticle.js
│ │ │ ├── ContentTypeProgressStepsArticle.js
│ │ │ ├── CustomIconsProgressStepsArticle.js
│ │ │ ├── DefaultProgressStepsArticle.js
│ │ │ ├── Icons
│ │ │ │ └── index.js
│ │ │ ├── JustifyContentProgressBarArticle.js
│ │ │ ├── OnChangeHandlerProgressStepsArticle.js
│ │ │ ├── VerticalProgressBarArticle.js
│ │ │ ├── components
│ │ │ │ └── Contents.js
│ │ │ ├── config
│ │ │ │ └── index.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── components
│ │ │ │ └── MoleculeProgressStep
│ │ │ │ │ ├── config.js
│ │ │ │ │ └── index.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── quickAction
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleDisabled.js
│ │ │ ├── ArticleSize.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── config
│ │ │ │ └── index.js
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── radioButtonField
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleHelpText.js
│ │ │ ├── ArticleStatus.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── radioButtonGroup
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── articles
│ │ │ │ ├── ArticleAtomRadioButton.js
│ │ │ │ ├── ArticleChangeProps.js
│ │ │ │ └── ArticleMoleculeRadioButtonField.js
│ │ │ ├── components
│ │ │ │ └── CustomLabel.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── rating
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── Icons
│ │ │ │ ├── index.js
│ │ │ │ ├── starFilled.js
│ │ │ │ ├── starFilledCustom.js
│ │ │ │ ├── starHalfFilled.js
│ │ │ │ ├── starOutline.js
│ │ │ │ └── starOutlineCustom.js
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Icons
│ │ │ │ ├── index.js
│ │ │ │ ├── starFilled.js
│ │ │ │ ├── starHalfFilled.js
│ │ │ │ └── starOutline.js
│ │ │ ├── components
│ │ │ │ ├── Star.js
│ │ │ │ ├── StarHover.js
│ │ │ │ └── settings.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── select
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── Icons
│ │ │ │ └── index.js
│ │ │ ├── articles
│ │ │ │ ├── ArticleControlledUncontrolledValue.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleHasSearch.js
│ │ │ │ ├── ArticleIsBorderless.js
│ │ │ │ ├── ArticleSize.js
│ │ │ │ └── ArticleStatus.js
│ │ │ ├── data
│ │ │ │ └── fullNames.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── components
│ │ │ │ ├── MoleculeInputSelect.js
│ │ │ │ ├── MultipleSelection.js
│ │ │ │ ├── Search.js
│ │ │ │ ├── SingleSelection.js
│ │ │ │ └── config.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── selectField
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── Icons
│ │ │ │ └── index.js
│ │ │ ├── data
│ │ │ │ └── index.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── selectPopover
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── Custom
│ │ │ │ ├── CustomContentWrapper.js
│ │ │ │ └── CustomRenderActions.js
│ │ │ ├── Icons
│ │ │ │ └── index.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── RenderActions.js
│ │ │ ├── RenderActionsDefault.js
│ │ │ ├── _settings.scss
│ │ │ ├── components
│ │ │ │ └── SelectIcon.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── stepper
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CustomStep.js
│ │ │ ├── Icon.js
│ │ │ ├── LoremIpsum.js
│ │ │ ├── articles
│ │ │ │ ├── ArticleCustomStep.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDefaultStep.js
│ │ │ │ ├── ArticleDesignAlignment.js
│ │ │ │ ├── ArticleIconsConnector.js
│ │ │ │ └── ArticlePlayground.js
│ │ │ ├── customSteps
│ │ │ │ ├── DotCustomStep
│ │ │ │ │ ├── DotCustomStep.js
│ │ │ │ │ └── index.scss
│ │ │ │ └── TextCustomStep
│ │ │ │ │ ├── TextCustomStep.js
│ │ │ │ │ └── index.scss
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── Step
│ │ │ │ ├── DefaultStep.js
│ │ │ │ ├── Step.js
│ │ │ │ ├── index.scss
│ │ │ │ ├── settings.js
│ │ │ │ └── settings.scss
│ │ │ ├── Stepper
│ │ │ │ └── Stepper.js
│ │ │ ├── context
│ │ │ │ ├── StepsContext.js
│ │ │ │ ├── StepsProvider.js
│ │ │ │ ├── index.js
│ │ │ │ └── useStepsContext.js
│ │ │ ├── hooks
│ │ │ │ └── useRefs.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── prop-types.js
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── tabs
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── Articles
│ │ │ │ ├── ArticleActiveTabs.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleIconsCounters.js
│ │ │ │ ├── ArticleType.js
│ │ │ │ └── ArticleVariant.js
│ │ │ ├── CHANGELOG.md
│ │ │ ├── components
│ │ │ │ ├── Content.js
│ │ │ │ └── LoremIpsum.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── _settings.scss
│ │ │ ├── components
│ │ │ │ ├── MoleculeTab.js
│ │ │ │ ├── MoleculeTabs.js
│ │ │ │ └── config.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── textareaField
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── CHANGELOG.md
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ ├── updatingValue.js
│ │ │ └── withState.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── thumbnail
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── ImageCaption.js
│ │ │ ├── ThumbnailLink.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ └── validationCode
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ ├── articles
│ │ │ ├── ArticleAutoFocus.js
│ │ │ ├── ArticleDefault.js
│ │ │ ├── ArticleDisabled.js
│ │ │ ├── ArticleForwardRef.js
│ │ │ ├── ArticleLength.js
│ │ │ ├── ArticleMask.js
│ │ │ ├── ArticleOnlyInput.js
│ │ │ ├── ArticlePassword.js
│ │ │ ├── ArticlePlaceholder.js
│ │ │ ├── ArticleSizes.js
│ │ │ ├── ArticleStatus.js
│ │ │ └── ArticleUncontrolled.js
│ │ ├── index.js
│ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ ├── config.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ └── styles
│ │ │ ├── index.scss
│ │ │ └── settings.scss
│ │ └── test
│ │ └── index.test.js
├── organism
│ ├── .gitkeep
│ └── nestedCheckboxes
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ ├── NestedExample.js
│ │ ├── articles
│ │ │ ├── ArticleDefault.js
│ │ │ └── ArticleMultipleNesting.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ ├── package.json
│ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ ├── hooks
│ │ │ └── useMutationObserver.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ ├── settings.js
│ │ └── styles
│ │ │ ├── index.scss
│ │ │ └── settings.scss
│ │ └── test
│ │ └── index.test.js
├── primitive
│ ├── .gitkeep
│ ├── injector
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── Child.js
│ │ │ ├── OtherChild.js
│ │ │ ├── article
│ │ │ │ ├── ArticleClassName.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleFragment.js
│ │ │ │ ├── ArticleHandlers.js
│ │ │ │ ├── ArticleProps.js
│ │ │ │ ├── ArticleProviso.js
│ │ │ │ └── ArticleStyles.js
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── settings.js
│ │ └── test
│ │ │ └── index.test.js
│ ├── linkBox
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── article
│ │ │ │ ├── ArticleA11y.js
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ └── ArticleNesting.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── PrimitiveLinkBoxLink.js
│ │ │ ├── PrimitiveLinkBoxRaised.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── settings.js
│ │ │ └── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── loadingIcon
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ └── index.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── polymorphicElement
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── index.js
│ │ │ └── index.scss
│ │ └── test
│ │ │ └── index.test.js
│ ├── typography
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ │ ├── LoremIpsum.js
│ │ │ ├── articles
│ │ │ │ ├── ArticleDefault.js
│ │ │ │ ├── ArticleDesign.js
│ │ │ │ ├── ArticleIsBlurred.js
│ │ │ │ ├── ArticleLink.js
│ │ │ │ ├── ArticleStyles.js
│ │ │ │ └── ArticleTypes.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ └── package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── component
│ │ │ │ └── index.js
│ │ │ ├── config.js
│ │ │ ├── index.js
│ │ │ ├── index.scss
│ │ │ ├── styles
│ │ │ │ ├── index.scss
│ │ │ │ └── settings.scss
│ │ │ └── useTypography.js
│ │ └── test
│ │ │ └── index.test.js
│ └── visuallyHidden
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── demo
│ │ ├── articles
│ │ │ ├── ArticleA11y.js
│ │ │ └── ArticleVisuallyHidden.js
│ │ ├── index.js
│ │ ├── index.scss
│ │ ├── package.json
│ │ └── settings.js
│ │ ├── package.json
│ │ ├── src
│ │ ├── index.js
│ │ ├── index.scss
│ │ ├── settings.js
│ │ └── styles
│ │ │ ├── index.scss
│ │ │ └── settings.scss
│ │ └── test
│ │ └── index.test.js
└── specie
│ └── .gitkeep
├── contributor-docs
├── Accessibility Standards.md
├── Definition of Done (DoD).md
├── Definition of Ready (DoR).md
├── Our Agreements.md
└── README.md
├── package-lock.json
├── package.json
├── scripts
├── build-themes.js
└── replace-npm-ignore.js
├── themes
├── _common.scss
├── _destyle.scss
├── adevinta.scss
├── carfactory.scss
├── epreselec.scss
├── fotocasa.scss
├── habitaclia-v2.scss
├── habitaclia.scss
├── infojobs.scss
├── milanuncios.scss
├── motor.scss
└── sui.scss
├── tsconfig.json
├── utils
├── sui-component-dependencies
│ ├── CHANGELOG.md
│ ├── LICENSE.md
│ ├── README.md
│ └── package.json
├── sui-theme
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ └── src
│ │ ├── _default.scss
│ │ ├── _reset.scss
│ │ ├── _settings.scss
│ │ ├── _typography.scss
│ │ ├── classes.scss
│ │ ├── classes
│ │ ├── README.md
│ │ ├── _margins.scss
│ │ ├── _paddings.scss
│ │ └── index.scss
│ │ ├── components
│ │ ├── _badge.scss
│ │ ├── _button.scss
│ │ ├── _card.scss
│ │ ├── _icon.scss
│ │ ├── _input.scss
│ │ ├── _select.scss
│ │ ├── _tabs.scss
│ │ ├── _tag.scss
│ │ ├── atom
│ │ │ └── input
│ │ │ │ ├── _placeholders.scss
│ │ │ │ ├── _settings.scss
│ │ │ │ └── index.scss
│ │ └── thumbnail
│ │ │ └── _basic.scss
│ │ ├── icons
│ │ └── _arrow.scss
│ │ ├── index.scss
│ │ ├── layout
│ │ ├── _breakpoints.scss
│ │ └── _grid.scss
│ │ ├── settings-compat-v7
│ │ ├── _animation.scss
│ │ ├── _box-style.scss
│ │ ├── _color.scss
│ │ ├── _components.scss
│ │ ├── _font.scss
│ │ ├── _index.scss
│ │ ├── _layout.scss
│ │ └── _spacing.scss
│ │ ├── settings
│ │ ├── _box-style.scss
│ │ ├── _color.scss
│ │ ├── _font.scss
│ │ ├── _layers.scss
│ │ ├── _motion.scss
│ │ ├── _opacity.scss
│ │ ├── _size.scss
│ │ └── _spacing.scss
│ │ ├── utils.scss
│ │ └── utils
│ │ ├── _breakpoints.scss
│ │ ├── _colors.scss
│ │ ├── _forms.scss
│ │ ├── _grid.scss
│ │ ├── _image.scss
│ │ ├── _list.scss
│ │ ├── _opacity.scss
│ │ ├── _scrollbars.scss
│ │ ├── _spacing.scss
│ │ ├── _string.scss
│ │ ├── _text.scss
│ │ └── _url.scss
└── sui-tokens
│ ├── .gitignore
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── LICENSE.md
│ ├── README.md
│ ├── bin
│ ├── tokens-json.mts
│ ├── tokens-scss.mts
│ └── tokens.mts
│ ├── package.json
│ ├── src
│ ├── build.ts
│ ├── checker.ts
│ ├── default.tokens.config.ts
│ ├── generate.ts
│ ├── index.ts
│ └── types.ts
│ └── tsconfig.json
└── vercel.json
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["sui"]
3 | }
4 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # Each line is a file pattern followed by one or more owners.
2 |
3 | # These owners will be the default owners for everything in the repo.
4 | * @sui-bot @kikoruiz @andresin87 @andresz1
5 |
6 | # Order is important. The last matching pattern has the most precedence.
7 | # So if a pull request only touches javascript files, only these owners
8 | # will be requested to review.
9 | # *.js @octocat @github/js
10 |
11 | # You can also use email addresses if you prefer.
12 | # docs/* docs@example.com
13 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: 'npm'
4 | directory: '/'
5 | schedule:
6 | interval: 'weekly'
7 | ignore:
8 | - dependency-name: '*'
9 | update-types: ['version-update:semver-major']
10 | commit-message:
11 | prefix: 'upgrade'
12 | include: 'scope'
13 | labels:
14 | - 'dependencies'
15 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # project
2 | public/
3 | .sui/
4 |
5 | # environment
6 | .env
7 |
8 | # OS
9 | .DS_Store
10 |
11 | # server
12 | .tern-port
13 |
14 | # IDEs
15 | .vscode/
16 | .idea
17 |
18 | # framework
19 | .vercel
20 |
21 | # language
22 | node_modules/
23 | lib/
24 | */**/lib/
25 | npm-debug.log
26 | components/**/**/themes
27 | */**/package-lock.json
28 |
29 | # coverage
30 | coverage/
31 | .coverage/
32 | .vim
33 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | legacy-peer-deps=true
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 20.13
--------------------------------------------------------------------------------
/components/atom/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/atom/.gitkeep
--------------------------------------------------------------------------------
/components/atom/actionButton/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/actionButton/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/actionButton/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-action-button-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/actionButton/src/ActionButtonLink.js:
--------------------------------------------------------------------------------
1 | import {forwardRef} from 'react'
2 |
3 | import PropTypes from 'prop-types'
4 |
5 | const ActionButtonLink = forwardRef(({children, ...props}, ref) => (
6 |
7 | {children}
8 |
9 | ))
10 |
11 | ActionButtonLink.propTypes = {
12 | children: PropTypes.node
13 | }
14 |
15 | ActionButtonLink.displayName = 'ActionButtonLink'
16 |
17 | export default ActionButtonLink
18 |
--------------------------------------------------------------------------------
/components/atom/actionButton/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-icon/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/atom/backToTop/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/backToTop/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/backToTop/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
3 | $base-class: 'DemoAtomBackToTop';
4 | $section: 'section';
5 |
6 | $base-class-section: '.#{$base-class}-#{$section}';
7 |
8 | #{$base-class-section} {
9 | // Add here your magic
10 | }
11 |
--------------------------------------------------------------------------------
/components/atom/backToTop/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-back-to-top-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/backToTop/src/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-AtomBackToTop'
2 | export const CLASS_ICON = `${BASE_CLASS}-icon`
3 | export const CLASS_TEXT = `${BASE_CLASS}-text`
4 | export const CLASS_SHOW = `${BASE_CLASS}--show`
5 | export const CLASS_HIDE = `${BASE_CLASS}--hide`
6 | export const CLASS_READY = `${BASE_CLASS}--ready`
7 |
8 | export const SCROLL_BEHAVIOR = {
9 | SMOOTH: 'smooth',
10 | AUTO: 'auto'
11 | }
12 |
13 | export const STYLES = {
14 | DARK: 'dark',
15 | LIGHT: 'light'
16 | }
17 |
--------------------------------------------------------------------------------
/components/atom/backToTop/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/badge/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
3 |
--------------------------------------------------------------------------------
/components/atom/badge/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/badge/assets/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/atom/badge/assets/screenshot.png
--------------------------------------------------------------------------------
/components/atom/badge/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-badge-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/badge/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoAtomBadge`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
4 | export const extendedColors = [
5 | 'theblue',
6 | 'wiggins',
7 | 'sky',
8 | 'surfer',
9 | 'kiwi',
10 | 'lavender',
11 | 'sugarcotton',
12 | 'jungle',
13 | 'night',
14 | 'chilli',
15 | 'apple'
16 | ]
17 |
--------------------------------------------------------------------------------
/components/atom/badge/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/badge/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../_config.scss';
2 |
--------------------------------------------------------------------------------
/components/atom/button/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
3 |
--------------------------------------------------------------------------------
/components/atom/button/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/button/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-icon/lib/index.scss';
2 | @import '~@s-ui/react-atom-kbd/lib/index.scss';
3 |
4 | @import '../src/index';
5 |
--------------------------------------------------------------------------------
/components/atom/button/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-button-demo",
3 | "version": "2.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1",
15 | "@s-ui/react-atom-kbd": "1",
16 | "use-prefers-color-scheme": "1.1.3"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/atom/button/src/ButtonLink.js:
--------------------------------------------------------------------------------
1 | import {forwardRef} from 'react'
2 |
3 | import PropTypes from 'prop-types'
4 |
5 | const ButtonLink = forwardRef(({children, ...props}, ref) => (
6 |
7 | {children}
8 |
9 | ))
10 |
11 | ButtonLink.displayName = 'ButtonLink'
12 |
13 | ButtonLink.propTypes = {
14 | children: PropTypes.node
15 | }
16 |
17 | export default ButtonLink
18 |
--------------------------------------------------------------------------------
/components/atom/button/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-primitive-loading-icon/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/atom/card/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/card/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/card/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-card-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-layout-media-query": "1"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/atom/card/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/checkbox/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/checkbox/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/checkbox/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-icon/lib/index';
2 | @import '~@s-ui/react-atom-kbd/lib/index';
3 | @import '~@s-ui/react-primitive-visually-hidden/lib/index';
4 |
5 | @import '../src/index';
6 |
7 | .DemoAtomCheckbox {
8 | padding: 20px;
9 | }
10 |
--------------------------------------------------------------------------------
/components/atom/checkbox/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/helpText/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/helpText/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/helpText/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-input/lib/index';
2 | @import '~@s-ui/react-atom-textarea/lib/index';
3 | @import '~@s-ui/react-atom-checkbox/lib/index';
4 | @import '~@s-ui/react-atom-label/lib/index';
5 | @import '~@s-ui/react-atom-kbd/lib/index';
6 |
7 | @import '../src/index';
8 |
--------------------------------------------------------------------------------
/components/atom/helpText/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/helpText/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-AtomHelpText'
2 |
--------------------------------------------------------------------------------
/components/atom/helpText/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-AtomHelpText';
2 |
3 | #{$base-class} {
4 | color: $c-help-text;
5 | display: block;
6 | font-size: $fz-atom-help-text;
7 | margin: $m-atom-help-text;
8 | }
9 |
--------------------------------------------------------------------------------
/components/atom/helpText/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $c-help-text: $c-gray !default;
2 | $fz-atom-help-text: $fz-xs !default;
3 | $m-atom-help-text: $m-s 0 0 !default;
4 |
--------------------------------------------------------------------------------
/components/atom/icon/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/icon/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/icon/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-icon-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-button": "2"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/atom/icon/src/LazyIcon.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 |
3 | import {useNearScreen} from '@s-ui/react-hooks/lib/useOnScreen'
4 |
5 | import AtomIcon from './Icon.js'
6 |
7 | export default function LazyIcon({children, ...restOfProps}) {
8 | const [isIntersecting, outerRef] = useNearScreen()
9 |
10 | return {isIntersecting ? children : }
11 | }
12 |
13 | LazyIcon.propTypes = {
14 | children: PropTypes.element
15 | }
16 |
--------------------------------------------------------------------------------
/components/atom/icon/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/image/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/image/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/image/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2022-04-05)
4 |
5 |
6 | ### Bug Fixes
7 |
8 | * **components/atom/image/demo:** resolve linting errors ([f00fe69](https://github.com/SUI-Components/sui-components/commit/f00fe692ee64281268b94aba4e46ce4230be22db))
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/components/atom/image/demo/ImageNotFoundIcon.js:
--------------------------------------------------------------------------------
1 | import {BootstrapIcon} from '@s-ui/documentation-library'
2 | import AtomIcon, {ATOM_ICON_COLORS, ATOM_ICON_SIZES} from '@s-ui/react-atom-icon'
3 |
4 | const ImageNotFoundIcon = () => {
5 | return (
6 |
7 |
8 |
9 | )
10 | }
11 |
12 | export default ImageNotFoundIcon
13 |
--------------------------------------------------------------------------------
/components/atom/image/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-spinner/lib/index';
2 | @import '~@s-ui/react-atom-icon/lib/index';
3 |
4 | @import '../src/index';
5 |
6 | .DemoAtomImage {
7 | &-section {
8 | .placeholder-demo,
9 | .skeleton-demo {
10 | .sui-AtomImage .sui-AtomImage-image {
11 | opacity: 1;
12 | &:hover {
13 | opacity: 0;
14 | transition: opacity 0.8s ease-in-out;
15 | }
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/components/atom/image/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-image-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1",
15 | "@s-ui/react-atom-spinner": "1",
16 | "react-use": "15"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/atom/image/src/ErrorImage.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 |
3 | const ErrorImage = ({className, icon: Icon, text}) => (
4 |
5 | {Icon}
6 | {Boolean(text) &&
{text}
}
7 |
8 | )
9 |
10 | ErrorImage.displayName = 'ErrorImage'
11 |
12 | ErrorImage.propTypes = {
13 | className: PropTypes.string,
14 | icon: PropTypes.node,
15 | text: PropTypes.node
16 | }
17 |
18 | export default ErrorImage
19 |
--------------------------------------------------------------------------------
/components/atom/image/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/image/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $bgc-atom-image: $c-gray-light !default;
2 | $trsdu-atom-image: 1s !default;
3 |
4 | $bgs-atom-image-placeholder: cover !default;
5 | $bgs-atom-image-skeleton: contain !default;
6 |
--------------------------------------------------------------------------------
/components/atom/input/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/input/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/input/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-label/lib/index';
2 | @import '~@s-ui/react-primitive-visually-hidden/lib/index';
3 | @import '~@s-ui/react-atom-button/lib/index';
4 | @import '~@s-ui/react-atom-kbd/lib/index';
5 |
6 | @import '../src/index';
7 |
8 | .DemoAtomInput {
9 | padding: 20px;
10 | }
11 |
--------------------------------------------------------------------------------
/components/atom/input/src/Input/Wrappers/Addons/config.js:
--------------------------------------------------------------------------------
1 | import cx from 'classnames'
2 |
3 | import {BASE} from '../../../config.js'
4 |
5 | export const BASE_CLASS_ADDON = `${BASE}--withAddon`
6 | export const BASE_CLASS_ADDON_WRAPPER = `${BASE_CLASS_ADDON}Wrapper`
7 | export const ADDON_TYPES = {
8 | LEFT: 'left',
9 | RIGHT: 'right'
10 | }
11 |
12 | export const getClassName = ({type}) => cx(BASE_CLASS_ADDON, `${BASE_CLASS_ADDON}--${type}`)
13 |
--------------------------------------------------------------------------------
/components/atom/input/src/Input/Wrappers/Addons/settings.scss:
--------------------------------------------------------------------------------
1 | $bdw-atom-input-addon-right: $bdw-s $bdw-s $bdw-s 0 !default;
2 | $bdw-atom-input-addon-left: $bdw-s 0 $bdw-s $bdw-s !default;
3 | $bgc-atom-input-addon: $c-gray-light-5 !default;
4 | $bdc-atom-input-addon: $c-gray-light !default;
5 | $c-atom-input-addon: $c-gray-light-1 !default;
6 | $p-atom-input-addon-left: $p-l !default;
7 | $p-atom-input-addon-right: $p-l !default;
8 |
--------------------------------------------------------------------------------
/components/atom/input/src/Input/Wrappers/Button/config.js:
--------------------------------------------------------------------------------
1 | import {BASE} from '../../../config.js'
2 |
3 | export const BASE_CLASS_BUTTON = `${BASE}--withButton`
4 |
--------------------------------------------------------------------------------
/components/atom/input/src/Input/Wrappers/Button/index.scss:
--------------------------------------------------------------------------------
1 | #{$base-class}--withButton {
2 | display: flex;
3 | width: 100%;
4 |
5 | &-input {
6 | flex: 1;
7 | width: 100%;
8 | }
9 |
10 | &-button {
11 | margin-left: $m-m;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/input/src/Input/Wrappers/index.scss:
--------------------------------------------------------------------------------
1 | @import './Addons/index';
2 | @import './Icons/index';
3 | @import './Button/index';
4 |
--------------------------------------------------------------------------------
/components/atom/input/src/Input/Wrappers/settings.scss:
--------------------------------------------------------------------------------
1 | @import './Addons/settings';
2 | @import './Icons/settings';
3 |
--------------------------------------------------------------------------------
/components/atom/input/src/Mask/iMask.js:
--------------------------------------------------------------------------------
1 | import {IMaskMixin} from 'react-imask'
2 |
3 | import Input from '../Input/index.js'
4 |
5 | const IMask = IMaskMixin(({inputRef, value, size, ...props}) => {
6 | return
7 | })
8 |
9 | export default IMask
10 |
--------------------------------------------------------------------------------
/components/atom/input/src/Password/config.js:
--------------------------------------------------------------------------------
1 | import {BASE_CLASS} from '../config.js'
2 |
3 | export const BASE_CLASS_PASSWORD = `${BASE_CLASS}-password`
4 | export const BASE_CLASS_PASSWORD_TOGGLE_BUTTON = `${BASE_CLASS_PASSWORD}--toggleButton`
5 |
6 | export const TEXT = 'text'
7 | export const PASSWORD = 'password'
8 |
--------------------------------------------------------------------------------
/components/atom/input/src/Password/index.scss:
--------------------------------------------------------------------------------
1 | @import './styles/settings.scss';
2 | @import './styles/index.scss';
3 |
--------------------------------------------------------------------------------
/components/atom/input/src/Password/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $r-atom-input-password-toggle-button: $gutter !default;
2 | $c-atom-input-password-toggle-button: $c-primary !default;
3 | $pr-atom-input-password: 0px !default;
4 |
--------------------------------------------------------------------------------
/components/atom/input/src/helpers/getComponentAndProps.js:
--------------------------------------------------------------------------------
1 | import Input from '../Input/index.js'
2 | import Mask from '../Mask/index.js'
3 | import Password from '../Password/index.js'
4 |
5 | export default ({type, ...rest}) => {
6 | switch (type) {
7 | case 'sui-password':
8 | return [Password, {...rest, type}]
9 | case 'mask':
10 | return [Mask, {...rest}]
11 | default:
12 | return [Input, {...rest, type}]
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/components/atom/input/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/input/src/settings.scss:
--------------------------------------------------------------------------------
1 | @import './Input/Component/settings';
2 |
3 | @import './Input/Wrappers/settings';
4 |
5 | @import './Password/styles/settings.scss';
6 |
--------------------------------------------------------------------------------
/components/atom/input/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-AtomInput';
2 |
3 | @import '../Input/Component/index';
4 | @import '../Container/index';
5 | @import '../Input/Wrappers/index';
6 | @import '../Password/index';
7 |
--------------------------------------------------------------------------------
/components/atom/input/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../settings.scss';
2 |
3 | @import '../mixins.scss';
4 |
--------------------------------------------------------------------------------
/components/atom/kbd/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/kbd/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/kbd/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2025-01-24)
4 |
5 |
6 | ### Features
7 |
8 | * add new component ([a5ff2e5](https://github.com/SUI-Components/sui-components/commit/a5ff2e5ddaacd4da1d61ff2ce0a96bb0f74a34fc))
9 | * pass the tests ([dfa6b11](https://github.com/SUI-Components/sui-components/commit/dfa6b119ac5c8faecbb740429099d4812e634255))
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/components/atom/kbd/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-input/lib/index';
2 | @import '~@s-ui/react-atom-textarea/lib/index';
3 | @import '~@s-ui/react-atom-checkbox/lib/index';
4 | @import '~@s-ui/react-atom-label/lib/index';
5 |
6 | @import '../src/index';
7 |
--------------------------------------------------------------------------------
/components/atom/kbd/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-kbd-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | }
15 | }
--------------------------------------------------------------------------------
/components/atom/kbd/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoKbd`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/atom/kbd/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/kbd/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-AtomKbd'
2 |
--------------------------------------------------------------------------------
/components/atom/kbd/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-AtomKbd';
2 |
3 | #{$base-class} {
4 | display: inline;
5 | color: $c-black;
6 | font-size: $fz-s;
7 | font-weight: $fw-bold;
8 | padding-inline: $p-m;
9 | border-style: solid;
10 | border-width: $bdw-s $bdw-s $bdw-m $bdw-s;
11 | border-color: color-mix(in srgb, $c-black 50%, $c-white 50%);
12 | border-radius: $bdrs-l;
13 | background-color: color-mix(in srgb, $c-black 5%, $c-white);
14 | }
15 |
--------------------------------------------------------------------------------
/components/atom/kbd/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // add here the style tokens
2 |
--------------------------------------------------------------------------------
/components/atom/label/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/label/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/label/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index.scss';
2 |
3 | @import '~@s-ui/react-atom-icon/lib/index';
4 | @import '~@s-ui/react-atom-input/lib/index';
5 | @import '~@s-ui/react-atom-button/lib/index';
6 | @import '~@s-ui/react-atom-checkbox/lib/index';
7 |
8 | @import '../src/index';
9 |
--------------------------------------------------------------------------------
/components/atom/label/index.d.ts:
--------------------------------------------------------------------------------
1 | import type {FC} from 'react'
2 |
3 | import type {RenderOptions, RenderResult} from '@testing-library/react'
4 |
5 | interface SetupEnvironmentOptions extends RenderOptions {
6 | contexts: unknown[]
7 | }
8 |
9 | declare global {
10 | interface Window {
11 | setupEnvironment: (
12 | Component: FC,
13 | {contexts, hydrate, queries, wrapper}?: SetupEnvironmentOptions
14 | ) => (props: {[k: string]: unknown}) => RenderResult
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/atom/label/mod.d.ts:
--------------------------------------------------------------------------------
1 | declare module '@s-ui/documentation-library'
2 | declare module '@s-ui/react-atom-button'
3 | declare module '@s-ui/react-atom-checkbox'
4 | declare module '@s-ui/react-atom-icon'
5 | declare module '@s-ui/react-atom-input'
6 |
--------------------------------------------------------------------------------
/components/atom/label/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/label/src/settings.tsx:
--------------------------------------------------------------------------------
1 | export const CLASSNAME = 'sui-AtomLabel'
2 |
3 | export const TYPES = {
4 | SUCCESS: 'success',
5 | ERROR: 'error',
6 | ALERT: 'alert',
7 | CONTRAST: 'contrast',
8 | DISABLED: 'disabled'
9 | } as const
10 |
11 | export const FONT_SIZES = {
12 | LARGE: 'large',
13 | MEDIUM: 'medium',
14 | SMALL: 'small',
15 | XSMALL: 'xsmall'
16 | } as const
17 |
--------------------------------------------------------------------------------
/components/atom/label/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "./lib",
5 | "rootDirs": ["src", "demo", "test"]
6 | },
7 | "exclude": ["lib"]
8 | }
9 |
--------------------------------------------------------------------------------
/components/atom/panel/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/panel/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/panel/demo/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoAtomPanel`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
4 | export const flexWrapper = {
5 | background: 'white',
6 | color: 'grey',
7 | display: 'flex',
8 | flexWrap: 'wrap',
9 | justifyContent: 'center'
10 | }
11 |
12 | export const flexItem = {
13 | flex: '0 0 auto',
14 | margin: '15px',
15 | textAlign: 'center'
16 | }
17 |
--------------------------------------------------------------------------------
/components/atom/panel/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-panel-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "",
11 | "license": "MIT"
12 | }
13 |
--------------------------------------------------------------------------------
/components/atom/panel/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/pinInput/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/pinInput/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/pinInput/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
3 | .DemoAtomPinInput {
4 | // Do your magic
5 | }
6 |
--------------------------------------------------------------------------------
/components/atom/pinInput/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-pin-input-demo",
3 | "version": "1.2.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-atom-validation-code"
6 | }
7 |
--------------------------------------------------------------------------------
/components/atom/pinInput/src/PinInput.scss:
--------------------------------------------------------------------------------
1 | #{$base-class} {
2 | // Add your magic
3 | }
4 |
--------------------------------------------------------------------------------
/components/atom/pinInput/src/PinInputChildren.scss:
--------------------------------------------------------------------------------
1 | @use 'sass:math';
2 |
3 | #{$base-class}FieldsWrapper {
4 | display: flex;
5 | flex-wrap: wrap;
6 | margin: 0 #{- math.div($m-pin-input-children, 2)};
7 | row-gap: $m-pin-input-children;
8 | > .sui-PinInputField {
9 | margin: 0 math.div($m-pin-input-children, 2);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/components/atom/pinInput/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings';
4 | @import './styles/index';
5 |
--------------------------------------------------------------------------------
/components/atom/pinInput/src/reducer/index.js:
--------------------------------------------------------------------------------
1 | import actions from './actions.js'
2 | import actionTypes from './actionTypes.js'
3 | import {pinInputReducer} from './reducer.js'
4 | import usePinInputReducer from './usePinInputReducer.js'
5 |
6 | export {actionTypes}
7 | export {pinInputReducer as reducer}
8 | export {actions}
9 | export {usePinInputReducer}
10 |
--------------------------------------------------------------------------------
/components/atom/pinInput/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-PinInput';
2 |
3 | @import '../PinInput.scss';
4 | @import '../PinInputChildren.scss';
5 | @import '../PinInputField.scss';
6 |
--------------------------------------------------------------------------------
/components/atom/pinInput/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../config.scss';
2 |
--------------------------------------------------------------------------------
/components/atom/popover/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/popover/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/popover/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2022-04-05)
4 |
5 |
6 | ### Bug Fixes
7 |
8 | * **components/atom/popover/demo:** resolve linting errors ([8428420](https://github.com/SUI-Components/sui-components/commit/8428420dbe8cf517decb5835c5a8ac3304affec3))
9 |
10 |
11 | ### Features
12 |
13 | * **components/atom/tooltip:** Wip ([2ce257d](https://github.com/SUI-Components/sui-components/commit/2ce257d40534784874fbc6ce861eea0600c37a93))
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/components/atom/popover/demo/Content.js:
--------------------------------------------------------------------------------
1 | import {forwardRef} from 'react'
2 |
3 | const Content = forwardRef((props, forwardedRef) => {
4 | return (
5 |
6 |
7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut id mauris ornare, imperdiet nunc a, interdum dolor.
8 |
9 |
10 | )
11 | })
12 |
13 | export default Content
14 |
--------------------------------------------------------------------------------
/components/atom/popover/demo/Icons/IconClose.js:
--------------------------------------------------------------------------------
1 | import {AntDesignIcon} from '@s-ui/documentation-library'
2 | import AtomIcon from '@s-ui/react-atom-icon'
3 |
4 | const IconClose = ({...props}) => (
5 |
6 |
7 |
8 | )
9 |
10 | IconClose.displayName = 'IconArrowDown'
11 | IconClose.propTypes = {}
12 |
13 | export default IconClose
14 |
--------------------------------------------------------------------------------
/components/atom/popover/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-popover-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1",
15 | "react-use": "17"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/components/atom/popover/demo/settings.js:
--------------------------------------------------------------------------------
1 | const BASE_CLASS_DEMO = `DemoAtomPopover`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/atom/popover/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/progressBar/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/progressBar/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/progressBar/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-progress-bar-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/progressBar/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoAtomPopover`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
4 | export const getShuffledValue = () => Math.trunc(Math.random() * 100 + 1)
5 |
--------------------------------------------------------------------------------
/components/atom/progressBar/src/ProgressBarCircle/Circle/settings.js:
--------------------------------------------------------------------------------
1 | export const SIZES = {
2 | LARGE: 'large',
3 | SMALL: 'small'
4 | }
5 |
6 | export const MODIFIERS = {
7 | LOADING: 'loading',
8 | PROGRESS: 'progress',
9 | ERROR: 'error'
10 | }
11 |
12 | export const MAX_TRANSITION_TIME_IN_MS = 1250
13 |
--------------------------------------------------------------------------------
/components/atom/progressBar/src/ProgressBarCircle/settings.js:
--------------------------------------------------------------------------------
1 | import {BASE_CLASS, SIZES} from '../settings.js'
2 |
3 | export const BASE_CLASS_NAME = `${BASE_CLASS}Circle`
4 |
5 | export const INDICATOR_CLASS_NAME = `${BASE_CLASS_NAME}-indicator`
6 |
7 | export const SIZE_TO_WIDTH_LINE_MAP = {
8 | [SIZES.EXTRA_LARGE]: 6,
9 | [SIZES.LARGE]: 4,
10 | [SIZES.MEDIUM]: 8,
11 | [SIZES.SMALL]: 8
12 | }
13 |
14 | export const STROKE_SIZE_MAP = {
15 | [SIZES.LARGE]: 18,
16 | [SIZES.MEDIUM]: 12,
17 | [SIZES.SMALL]: 6
18 | }
19 |
--------------------------------------------------------------------------------
/components/atom/progressBar/src/ProgressBarLine/Indicator/settings.js:
--------------------------------------------------------------------------------
1 | import {BASE_CLASS_LINE} from '../settings.js'
2 |
3 | export const CLASS_INDICATOR = `${BASE_CLASS_LINE}-indicator`
4 |
--------------------------------------------------------------------------------
/components/atom/progressBar/src/ProgressBarLine/useIndicator.js:
--------------------------------------------------------------------------------
1 | import Indicator from './Indicator/index.js'
2 |
3 | const useIndicator = ({hideIndicator, indicatorBottom, percentage, indicatorTotal}) => {
4 | if (hideIndicator) return []
5 | const indicator = (
6 |
7 | )
8 | return [!indicatorBottom ? indicator : null, indicatorBottom ? indicator : null]
9 | }
10 |
11 | export default useIndicator
12 |
--------------------------------------------------------------------------------
/components/atom/progressBar/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/progressBar/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-AtomProgressBarV2';
2 |
3 | @import '../ProgressBarLine/index.scss';
4 | @import '../ProgressBarCircle/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/progressBar/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../ProgressBarLine/settings.scss';
2 | @import '../ProgressBarCircle/settings.scss';
3 |
--------------------------------------------------------------------------------
/components/atom/radioButton/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/radioButton/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/radioButton/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-radio-button-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/radioButton/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/radioButton/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-AtomRadioButton'
2 | export const CLASS_HIDDEN = `is-hidden`
3 |
--------------------------------------------------------------------------------
/components/atom/skeleton/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/skeleton/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/skeleton/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
3 | $base-class: 'DemoAtomSkeleton';
4 | $section: 'section';
5 |
6 | $base-class-section: '.#{$base-class}-#{$section}';
7 |
8 | #{$base-class-section} {
9 | // Add here your magic
10 | }
11 |
--------------------------------------------------------------------------------
/components/atom/skeleton/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-skeleton-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/skeleton/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoAtomSkeleton`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/atom/skeleton/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/skeleton/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-AtomSkeleton'
2 |
3 | export const ATOM_SKELETON_ANIMATIONS = {
4 | wave: 'wave',
5 | pulse: 'pulse'
6 | }
7 |
8 | export const ATOM_SKELETON_VARIANTS = {
9 | round: 'round',
10 | circle: 'circle',
11 | square: 'square'
12 | }
13 |
--------------------------------------------------------------------------------
/components/atom/slider/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/slider/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/slider/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-slider-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-button": "2",
15 | "@s-ui/react-atom-checkbox": "3",
16 | "@s-ui/react-atom-icon": "1",
17 | "@s-ui/react-atom-input": "5"
18 | }
19 | }
--------------------------------------------------------------------------------
/components/atom/slider/demo/utils.js:
--------------------------------------------------------------------------------
1 | export const range = n => Array.from(Array(n).keys())
2 |
--------------------------------------------------------------------------------
/components/atom/slider/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~rc-slider/assets/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/atom/spinner/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/spinner/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/spinner/demo/CustomLoader.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable react/prop-types */
2 |
3 | const CustomLoader = ({children}) => {
4 | return {children}
5 | }
6 |
7 | export default CustomLoader
8 |
--------------------------------------------------------------------------------
/components/atom/spinner/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoAtomSpinner`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
4 | export const dashStyle = {
5 | border: '1px dashed lightgrey',
6 | padding: 30
7 | }
8 |
--------------------------------------------------------------------------------
/components/atom/spinner/src/DefaultSpinner.js:
--------------------------------------------------------------------------------
1 | import {forwardRef} from 'react'
2 |
3 | import PropTypes from 'prop-types'
4 |
5 | const DefaultSpinner = forwardRef(({isDelayed, loader}, forwardedRef) => {
6 | return {!isDelayed ? loader : }
7 | })
8 |
9 | DefaultSpinner.propTypes = {
10 | isDelayed: PropTypes.bool,
11 | loader: PropTypes.object
12 | }
13 |
14 | DefaultSpinner.displayName = 'DefaultSpinner'
15 |
16 | export default DefaultSpinner
17 |
--------------------------------------------------------------------------------
/components/atom/spinner/src/SUILoader/index.js:
--------------------------------------------------------------------------------
1 | const SUILoader = () =>
2 |
3 | SUILoader.displayName = 'SUILoader'
4 |
5 | export default SUILoader
6 |
--------------------------------------------------------------------------------
/components/atom/spinner/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './SUILoader/settings.scss';
5 |
6 | @import './styles/index.scss';
7 | @import './SUILoader/index.scss';
8 |
--------------------------------------------------------------------------------
/components/atom/switch/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/switch/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/switch/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '@s-ui/react-primitive-visually-hidden/lib/index';
2 | @import '@s-ui/react-atom-kbd/lib/index';
3 |
4 | @import '../src/index';
5 |
--------------------------------------------------------------------------------
/components/atom/switch/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-switch-demo",
3 | "version": "1.3.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "dependencies": {
11 | "@s-ui/react-primitive-visually-hidden": "1",
12 | "@s-ui/react-atom-kbd": "1"
13 | },
14 | "keywords": [],
15 | "author": "",
16 | "license": "MIT"
17 | }
18 |
--------------------------------------------------------------------------------
/components/atom/switch/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-label/lib/index';
3 | @import '~@s-ui/react-primitive-loading-icon/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/atom/table/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/table/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/table/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-button/lib/index';
3 | @import '../src/index';
4 |
--------------------------------------------------------------------------------
/components/atom/table/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-table-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-atom-table",
6 | "dependencies": {
7 | "@s-ui/react-atom-button": "2"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/components/atom/table/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/table/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'react-AtomTable'
2 | export const CELL_BASE_CLASS = `${BASE_CLASS}-cell`
3 | export const ROW_BASE_CLASS = `${BASE_CLASS}-row`
4 |
5 | export const TABLE_CELL_TYPE = {
6 | header: 'th',
7 | data: 'td'
8 | }
9 |
10 | export const TABLE_CELL_PADDING = {
11 | xs: 'xs',
12 | s: 's',
13 | m: 'm',
14 | l: 'l',
15 | xl: 'l'
16 | }
17 |
--------------------------------------------------------------------------------
/components/atom/table/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $bgc-atom-table: inherit !default;
2 | $bgc-atom-table-header-cell: transparent !default;
3 | $bgc-atom-table-row: $c-gray-light-4 !default;
4 | $bdrs-atom-table: 0 !default;
5 | $bgc-atom-table-row-actionable--hover: $c-gray-light-4 !default;
6 | $bgc-atom-table-row-actionable--active: $c-gray-light-3 !default;
7 | $bd-atom-table-row: $bdw-s solid $c-gray-light-5 !default;
8 | $c-atom-table-header-cell: $c-gray-dark !default;
9 | $bdb-atom-table-header-cell: none !default;
10 |
--------------------------------------------------------------------------------
/components/atom/tag/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
3 |
--------------------------------------------------------------------------------
/components/atom/tag/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/tag/src/helpers.js:
--------------------------------------------------------------------------------
1 | /**
2 | * returns key:value in obj except for those keys defined in props
3 | * @param {Object} obj
4 | * @param {Array.} props
5 | * @return {Object}
6 | */
7 | export const filterKeys = (obj, listOfProps) =>
8 | Object.keys(obj).reduce((acc, key) => {
9 | if (listOfProps.indexOf(key) === -1) {
10 | acc[key] = obj[key]
11 | }
12 | return acc
13 | }, {})
14 |
--------------------------------------------------------------------------------
/components/atom/tag/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/utils.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/atom/tag/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../_settings.scss';
2 |
--------------------------------------------------------------------------------
/components/atom/textarea/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/textarea/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/textarea/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-textarea-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/textarea/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-input/lib/index';
3 | @import '~@s-ui/react-atom-help-text/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/atom/toast/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/toast/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/toast/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-icon/lib/index.scss';
2 |
3 | @import '../src/index';
4 |
--------------------------------------------------------------------------------
/components/atom/toast/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-toast-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1",
15 | "react-json-view": "1.21.3"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/components/atom/toast/src/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-AtomToast'
2 |
3 | export const POSITIONS = {
4 | topLeft: 'top-left',
5 | top: 'top',
6 | topRight: 'top-right',
7 | bottomLeft: 'bottom-left',
8 | bottom: 'bottom',
9 | bottomRight: 'bottom-right'
10 | }
11 |
12 | export const AUTO_CLOSE_TIMES = {
13 | short: 3000,
14 | medium: 6000,
15 | long: 9000
16 | }
17 |
18 | export const EFFECT_DELAY = {
19 | close: 1000,
20 | open: 1
21 | }
22 |
--------------------------------------------------------------------------------
/components/atom/toast/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/toast/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../_settings.scss';
2 |
--------------------------------------------------------------------------------
/components/atom/tooltip/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/tooltip/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/tooltip/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-tooltip-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/tooltip/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/tooltip/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../settings.scss';
2 |
--------------------------------------------------------------------------------
/components/atom/upload/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/upload/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/upload/demo/icons/iconError.js:
--------------------------------------------------------------------------------
1 | const IconError = (
2 |
5 | )
6 |
7 | export default IconError
8 |
--------------------------------------------------------------------------------
/components/atom/upload/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-upload-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-button": "2",
15 | "@s-ui/react-atom-spinner": "1",
16 | "@s-ui/react-layout-media-query": "1"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/atom/upload/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-button/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/atom/validationText/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/validationText/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/validationText/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-validation-text-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/atom/validationText/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/atom/validationText/src/settings.js:
--------------------------------------------------------------------------------
1 | import cx from 'classnames'
2 |
3 | export const BASE_CLASS = 'sui-AtomValidationText'
4 |
5 | export const TYPES = {
6 | SUCCESS: 'success',
7 | ERROR: 'error',
8 | ALERT: 'alert'
9 | }
10 |
11 | export const getClassNames = type => cx(BASE_CLASS, `${BASE_CLASS}--${type}`)
12 |
--------------------------------------------------------------------------------
/components/atom/validationText/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-AtomValidationText';
2 |
3 | #{$base-class} {
4 | display: block;
5 | font-size: $fz-atom-validation-text;
6 | margin: $m-atom-validation-text;
7 |
8 | @each $type, $color in $validation {
9 | &--#{$type} {
10 | color: $color;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/components/atom/validationText/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $fz-atom-validation-text: $fz-xs !default;
2 | $m-atom-validation-text: $m-s 0 0 !default;
3 | $validation: success $c-success, error $c-error, alert $c-alert;
4 |
--------------------------------------------------------------------------------
/components/atom/videoPlayer/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/atom/videoPlayer/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/atom/videoPlayer/assets/preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/atom/videoPlayer/assets/preview.jpg
--------------------------------------------------------------------------------
/components/atom/videoPlayer/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index.scss';
2 | .DemoVideoPlayer {
3 | max-width: 500px;
4 | &Component {
5 | margin-top: 32px;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/components/atom/videoPlayer/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-atom-video-player-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-atom-video-player"
6 | }
--------------------------------------------------------------------------------
/components/atom/videoPlayer/src/hooks/useImperativeApi.js:
--------------------------------------------------------------------------------
1 | import {useImperativeHandle} from 'react'
2 |
3 | const useImperativeApi = ({ref, getCurrentTime}) => {
4 | useImperativeHandle(
5 | ref,
6 | () => {
7 | return {
8 | getCurrentTime
9 | }
10 | },
11 | []
12 | )
13 | }
14 |
15 | export default useImperativeApi
16 |
--------------------------------------------------------------------------------
/components/behavior/sticky/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/behavior/sticky/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/behavior/sticky/demo/hooks/useMeasure.js:
--------------------------------------------------------------------------------
1 | import useMeasure from 'react-use/lib/useMeasure.js'
2 |
3 | const useSize = useMeasure
4 |
5 | export default useSize
6 |
--------------------------------------------------------------------------------
/components/behavior/sticky/demo/hooks/useRefs.js:
--------------------------------------------------------------------------------
1 | import {useRef} from 'react'
2 |
3 | const useRefs = (value = []) => {
4 | const refs = useRef(value)
5 | return [
6 | index => {
7 | return refs.current[index]
8 | },
9 | index => {
10 | return node => {
11 | if (node === null) return
12 | refs.current[index] = {current: node}
13 | }
14 | },
15 | () => refs.current
16 | ]
17 | }
18 |
19 | export default useRefs
20 |
--------------------------------------------------------------------------------
/components/behavior/sticky/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
3 | $h-times: 6;
4 | $h-demo-behavior-sticky: $h-times * 100vh;
5 | .DemoBehaviorSticky {
6 | height: $h-demo-behavior-sticky;
7 | &-placeholder {
8 | max-height: 100vh;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/components/behavior/sticky/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-behavior-sticky-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-hooks": "1",
15 | "lorem-ipsum": "2.0.4",
16 | "react-use": "17.4.0"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/behavior/sticky/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/behavior/sticky/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-BehaviorSticky'
2 | export const STICKY_CLASS_CONTAINER = 'sui-BehaviorSticky__container'
3 | export const CLASS_SCROLL_UP = 'sui-BehaviorStickyScrollUp'
4 | export const CLASS_ANIMATE = `${BASE_CLASS}--animate`
5 |
--------------------------------------------------------------------------------
/components/behavior/sticky/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-BehaviorSticky';
2 |
3 | #{$base-class} {
4 | overflow: hidden;
5 | position: fixed;
6 | transform-style: flat;
7 | z-index: $z-navigation;
8 |
9 | &--animate {
10 | animation: slide-down 0.7s;
11 |
12 | * {
13 | z-index: 0;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/behavior/sticky/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @keyframes slide-down {
2 | 0% {
3 | transform: translateY(-100%);
4 | opacity: 0;
5 | z-index: 0;
6 | }
7 |
8 | 100% {
9 | transform: translateY(0);
10 | opacity: 1;
11 | z-index: $z-navigation;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/components/ecosystem/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/ecosystem/.gitkeep
--------------------------------------------------------------------------------
/components/globals.js:
--------------------------------------------------------------------------------
1 | import * as DOC from '@s-ui/documentation-library'
2 |
3 | const docName = 'DOC'
4 |
5 | ;((condition, name) => {
6 | if (condition) {
7 | window[name] = DOC
8 | }
9 | })(window[docName] === undefined, docName)
10 |
--------------------------------------------------------------------------------
/components/hook/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/hook/.gitkeep
--------------------------------------------------------------------------------
/components/hook/usePortal/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/hook/usePortal/.gitignore
--------------------------------------------------------------------------------
/components/hook/usePortal/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/hook/usePortal/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
3 | .sui-DemoTooltip {
4 | background-color: $c-primary-light;
5 | border-radius: $bdrs-base;
6 | padding: $p-base;
7 | border-width: $bdw-m;
8 | border-color: $c-primary;
9 | border-style: solid;
10 | }
11 |
--------------------------------------------------------------------------------
/components/hook/usePortal/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-hook-use-portal-demo",
3 | "private": true,
4 | "version": "1.0.0",
5 | "description": "",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "dependencies": {
10 | "@popperjs/core": "2.11.6",
11 | "@s-ui/react-hooks": "1",
12 | "react-fast-compare": "3.2.2"
13 | },
14 | "keywords": [],
15 | "author": "",
16 | "license": "MIT"
17 | }
18 |
--------------------------------------------------------------------------------
/components/hook/usePortal/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoUsePortal`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/hook/usePortal/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
--------------------------------------------------------------------------------
/components/hook/usePortal/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-Portal'
2 |
3 | export const DEFAULT_IS_OPEN = true
4 |
--------------------------------------------------------------------------------
/components/layout/grid/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
3 |
--------------------------------------------------------------------------------
/components/layout/grid/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/layout/grid/demo/demoWrapper.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 |
3 | const styles = {
4 | background: '#eee',
5 | padding: 0
6 | }
7 |
8 | export default function DemoWrapper({children, style}) {
9 | return {children}
10 | }
11 |
12 | DemoWrapper.propTypes = {
13 | children: PropTypes.node.isRequired,
14 | style: PropTypes.object
15 | }
16 |
--------------------------------------------------------------------------------
/components/layout/grid/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
3 | body {
4 | background: #fefefe;
5 | }
6 |
7 | .SUI-Preview {
8 | max-width: 1240px;
9 | padding: 32px;
10 | margin: 0 auto;
11 | }
12 |
13 | .sui-StudioPreview .sui-Studio-code {
14 | white-space: inherit;
15 | line-height: 22px;
16 | }
17 |
--------------------------------------------------------------------------------
/components/layout/grid/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-layout-grid-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "react-use": "17"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/layout/grid/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/layout/grid/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../_settings.scss';
2 |
--------------------------------------------------------------------------------
/components/molecule/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/molecule/.gitkeep
--------------------------------------------------------------------------------
/components/molecule/accordion/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/accordion/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-icon/lib/index';
2 | @import '~@s-ui/react-atom-tag/lib/index';
3 | @import '../src/index.scss';
4 |
5 | .demo-header-custom {
6 | font-size: 1rem;
7 | }
8 |
--------------------------------------------------------------------------------
/components/molecule/accordion/demo/settings.js:
--------------------------------------------------------------------------------
1 | const BASE_CLASS_DEMO = `DemoMoleculeDrawer`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/molecule/accordion/src/context/AccordionContext.js:
--------------------------------------------------------------------------------
1 | import {createContext} from 'react'
2 |
3 | import {HEADER_ICON_POSITION} from '../settings.js'
4 |
5 | export const defaultAccordionContext = {
6 | icon: undefined,
7 | headerIconPosition: HEADER_ICON_POSITION.RIGHT,
8 | values: []
9 | }
10 |
11 | const AccordionContext = createContext(defaultAccordionContext)
12 |
13 | export default AccordionContext
14 |
--------------------------------------------------------------------------------
/components/molecule/accordion/src/context/index.js:
--------------------------------------------------------------------------------
1 | import AccordionContext, {defaultAccordionContext} from './AccordionContext.js'
2 | import AccordionProvider from './AccordionProvider.js'
3 | import useAccordionContext from './useAccordionContext.js'
4 |
5 | export default AccordionContext
6 |
7 | export {AccordionContext, defaultAccordionContext, AccordionProvider, useAccordionContext}
8 |
--------------------------------------------------------------------------------
/components/molecule/accordion/src/hook/useMeasure.js:
--------------------------------------------------------------------------------
1 | import useMeasure from 'react-use/lib/useMeasure.js'
2 |
3 | const useSize = useMeasure.bind()
4 |
5 | export default useSize
6 |
--------------------------------------------------------------------------------
/components/molecule/accordion/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/autosuggest/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/autosuggest/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/autosuggest/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2022-02-11)
4 |
5 |
6 | ### Features
7 |
8 | * **components/molecule/autosuggest/demo:** update shape demo ([19e8316](https://github.com/SUI-Components/sui-components/commit/19e831674cd893f0dc9c688e486630729903bcac))
9 | * **components/molecule/autosuggest:** adds demo with the new prop ([1954edf](https://github.com/SUI-Components/sui-components/commit/1954edf95333b2e1c8b3aadfb88a5f1d840b672a))
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/components/molecule/autosuggest/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-icon/lib/index';
3 | @import '~@s-ui/react-molecule-dropdown-option/lib/index';
4 | @import '~@s-ui/react-molecule-select/lib/index';
5 | @import '~@s-ui/react-atom-button/lib/index';
6 |
7 | @import '../src/index';
8 |
--------------------------------------------------------------------------------
/components/molecule/autosuggest/src/components/InputWithClearUI/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = `sui-MoleculeAutosuggest-input`
2 | export const CLASS_CONTAINER = `${BASE_CLASS}-container`
3 | export const CLASS_ICON_CLEAR = `${BASE_CLASS}-clear-icon`
4 |
--------------------------------------------------------------------------------
/components/molecule/autosuggest/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-input/lib/index';
3 | @import '~@s-ui/react-molecule-input-tags/lib/index';
4 | @import '~@s-ui/react-molecule-dropdown-list/lib/index';
5 |
6 | @import './styles/settings.scss';
7 | @import './styles/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/autosuggest/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $z-autosuggest-list: $z-navigation !default;
2 |
3 | $bdw-autosuggest-container: $bdw-s !default;
4 |
--------------------------------------------------------------------------------
/components/molecule/autosuggestField/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/autosuggestField/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/autosuggestField/demo/Icons/index.js:
--------------------------------------------------------------------------------
1 | const IconClose = () => (
2 |
8 | )
9 |
10 | export {IconClose}
11 |
--------------------------------------------------------------------------------
/components/molecule/autosuggestField/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-molecule-dropdown-option/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | .DemoMoleculeAutosuggestField {
6 | margin-bottom: 500px;
7 | padding: 20px;
8 |
9 | &-list {
10 | background: white;
11 | width: 300px;
12 | }
13 |
14 | &-section {
15 | margin: 10px;
16 | }
17 |
18 | pre {
19 | padding: 16px;
20 | width: 300px;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/components/molecule/autosuggestField/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-molecule-field/lib/index';
3 | @import '~@s-ui/react-molecule-autosuggest/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/autosuggestField/src/settings.js:
--------------------------------------------------------------------------------
1 | import {MoleculeAutosuggestStates} from '@s-ui/react-molecule-autosuggest'
2 |
3 | export const getErrorState = ({successText, errorText}) => {
4 | if (successText) return false
5 | if (errorText) return true
6 | }
7 |
8 | export const getState = ({successText, errorState, alertText}) => {
9 | if (successText) return MoleculeAutosuggestStates.SUCCESS
10 | if (errorState) return MoleculeAutosuggestStates.ERROR
11 | if (alertText) return MoleculeAutosuggestStates.ALERT
12 | }
13 |
--------------------------------------------------------------------------------
/components/molecule/autosuggestField/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-MoleculeAutosuggestField';
2 |
3 | #{$base-class} {
4 | // do your magic 💅
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/autosuggestField/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/molecule/avatar/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/avatar/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/avatar/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
3 | $base-class: 'DemoMoleculeAvatar';
4 | $section: 'section';
5 |
6 | $base-class-section: '.#{$base-class}-#{$section}';
7 |
8 | #{$base-class-section} {
9 | // Add here your magic
10 | }
11 |
--------------------------------------------------------------------------------
/components/molecule/avatar/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-avatar-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarBadge/settings.js:
--------------------------------------------------------------------------------
1 | export const AVATAR_BADGE_STATUSES = {
2 | ERROR: 'error',
3 | SUCCESS: 'success',
4 | ALERT: 'alert',
5 | MUTED: 'muted'
6 | }
7 |
8 | export const AVATAR_BADGE_PLACEMENTS = {
9 | TOP: 'top',
10 | BOTTOM: 'bottom'
11 | }
12 |
13 | export const AVATAR_BADGE_SIZES = {
14 | XXLARGE: 'xxlarge',
15 | XLARGE: 'xlarge',
16 | LARGE: 'large',
17 | MEDIUM: 'medium',
18 | SMALL: 'small',
19 | XSMALL: 'xsmall'
20 | }
21 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarFallback/index.scss:
--------------------------------------------------------------------------------
1 | @import '../AvatarFallbackName/index.scss';
2 | @import '../AvatarFallbackIcon/index.scss';
3 |
4 | $base-class-fallback-icon: '#{$base-class}FallbackIcon';
5 |
6 | #{$base-class} {
7 | fill: $c-avatar-fallback-icon;
8 | }
9 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarFallback/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../AvatarFallbackName/settings.scss';
2 | @import '../AvatarFallbackIcon/settings.scss';
3 |
4 | $c-avatar-fallback-icon: inherit !default;
5 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarFallbackIcon/index.scss:
--------------------------------------------------------------------------------
1 | $base-class-fallback-icon: '#{$base-class}FallbackIcon';
2 |
3 | #{$base-class-fallback-icon} {
4 | width: 100%;
5 | height: 100%;
6 | }
7 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarFallbackIcon/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_NAME = 'sui-MoleculeAvatarFallbackIcon'
2 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarFallbackIcon/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarFallbackName/index.scss:
--------------------------------------------------------------------------------
1 | $base-class-fallback-name: #{$base-class}FallbackName;
2 |
3 | #{$base-class-fallback-name} {
4 | align-items: center;
5 | color: $c-avatar-fallback-name;
6 | display: flex;
7 | height: 100%;
8 | justify-content: center;
9 | margin: 0;
10 | text-transform: uppercase;
11 | width: 100%;
12 | }
13 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarFallbackName/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_NAME = 'sui-MoleculeAvatarFallbackName'
2 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/AvatarFallbackName/settings.scss:
--------------------------------------------------------------------------------
1 | $c-avatar-fallback-name: inherit !default;
2 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-image/lib/index';
3 | @import '~@s-ui/react-atom-skeleton/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/avatar/src/settings.js:
--------------------------------------------------------------------------------
1 | export const AVATAR_SIZES = {
2 | XXLARGE: 'xxlarge',
3 | XLARGE: 'xlarge',
4 | LARGE: 'large',
5 | MEDIUM: 'medium',
6 | SMALL: 'small',
7 | XSMALL: 'xsmall'
8 | }
9 |
10 | export const baseClassName = 'sui-MoleculeAvatar'
11 |
--------------------------------------------------------------------------------
/components/molecule/badgeCounter/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/badgeCounter/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/badgeCounter/demo/config.js:
--------------------------------------------------------------------------------
1 | import {AntDesignIcon} from '@s-ui/documentation-library'
2 | import AtomIcon, {ATOM_ICON_SIZES} from '@s-ui/react-atom-icon'
3 |
4 | export const BASE_CLASS_DEMO = `DemoMoleculeBadgeCounter`
5 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
6 |
7 | export const infoIcon = (
8 |
9 |
10 |
11 | )
12 |
--------------------------------------------------------------------------------
/components/molecule/badgeCounter/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-button/lib/index';
2 | @import '~@s-ui/react-atom-icon/lib/index';
3 |
4 | @import '../src/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/badgeCounter/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-badge-counter-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "",
11 | "license": "MIT",
12 | "dependencies": {
13 | "@s-ui/react-atom-button": "2",
14 | "@s-ui/react-atom-icon": "1",
15 | "@s-ui/react-primitive-visually-hidden": "1"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/components/molecule/badgeCounter/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/breadcrumb/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | lib
3 | node_modules
4 |
--------------------------------------------------------------------------------
/components/molecule/breadcrumb/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/breadcrumb/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-breadcrumb-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "",
11 | "license": "MIT",
12 | "dependencies": {
13 | "@s-ui/react-primitive-visually-hidden": "1"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/components/molecule/breadcrumb/src/index.scss:
--------------------------------------------------------------------------------
1 | /* sass-lint:disable no-important, class-name-format*/
2 | @import '~@s-ui/theme/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/molecule/breadcrumb/src/settings.js:
--------------------------------------------------------------------------------
1 | import cx from 'classnames'
2 |
3 | export const BASE_CLASS = 'sui-BreadcrumbBasic'
4 |
5 | export const breadcrumbClassName = ({isExpanded, isScrollable, className}) =>
6 | cx(
7 | BASE_CLASS,
8 | {
9 | 'is-expanded': isExpanded,
10 | 'is-scrollable': isScrollable
11 | },
12 | className
13 | )
14 |
15 | export const isFunction = fn => typeof fn === 'function'
16 |
--------------------------------------------------------------------------------
/components/molecule/breadcrumb/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../settings.scss';
2 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2022-04-05)
4 |
5 |
6 | ### Bug Fixes
7 |
8 | * **components/molecule/buttonGroup/demo:** resolve linting errors ([723b9be](https://github.com/SUI-Components/sui-components/commit/723b9be23fd033da1f7f669ee5419e8581d2ed90))
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-button/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | $base-class: '.DemoMoleculeButtonGroup';
6 |
7 | #{$base-class} {
8 | // Do your magic
9 | }
10 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/demo/settings.js:
--------------------------------------------------------------------------------
1 | const BASE_CLASS_DEMO = `DemoMoleculeButtonGroup`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/src/config.js:
--------------------------------------------------------------------------------
1 | export const DEFAULT_COLUMNS = 2
2 | export const SPACED = {
3 | XSMALL: 'xsmall',
4 | SMALL: 'small',
5 | MEDIUM: 'medium',
6 | LARGE: 'large'
7 | }
8 |
9 | export const DISPLAY = {
10 | FLEX: 'flex',
11 | GRID: 'grid'
12 | }
13 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-MoleculeButtonGroup'
2 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroup/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroupField/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/buttonGroupField/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/buttonGroupField/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-button/lib/index';
2 | @import '../src/index';
3 |
4 | .DemoMoleculeButtonGroupField {
5 | // do your magic
6 | }
7 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroupField/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-button-group-field-demo",
3 | "version": "1.2.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-button": "2"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroupField/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-molecule-field/lib/index';
3 | @import '~@s-ui/react-molecule-button-group/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroupField/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-MoleculeButtonGroupField';
2 |
3 | #{$base-class} {
4 | // do your magic 💅
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/buttonGroupField/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/molecule/carousel/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/carousel/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/carousel/demo/articles/components/CustomArrow.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 |
3 | import {BASE_CLASS_DEMO} from '../../settings.js'
4 |
5 | const CustomArrow = ({children}) => {children}
6 |
7 | CustomArrow.propTypes = {
8 | children: PropTypes.node
9 | }
10 |
11 | export default CustomArrow
12 |
--------------------------------------------------------------------------------
/components/molecule/carousel/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
3 | $base-class: '.DemoMoleculeCarousel';
4 |
5 | #{$base-class} {
6 | &-customArrow {
7 | font-size: 3em;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/components/molecule/carousel/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-carousel-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-molecule-carousel"
6 | }
--------------------------------------------------------------------------------
/components/molecule/carousel/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoMoleculeCarousel`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/molecule/carousel/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/checkboxField/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/checkboxField/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/checkboxField/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import 'components/atom/icon/src/index.scss';
2 | @import '../src/index';
3 |
--------------------------------------------------------------------------------
/components/molecule/checkboxField/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-checkbox-field-demo",
3 | "version": "1.3.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/hoc": "1"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/molecule/checkboxField/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-molecule-field/lib/index';
3 | @import '~@s-ui/react-atom-checkbox/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/checkboxField/src/settings.js:
--------------------------------------------------------------------------------
1 | import {atomCheckboxSizes, atomCheckboxStatus} from '@s-ui/react-atom-checkbox'
2 |
3 | export const BASE_CLASS = 'sui-MoleculeCheckboxField'
4 |
5 | export const SIZES = {...atomCheckboxSizes}
6 | export const STATUSES = {...atomCheckboxStatus}
7 |
--------------------------------------------------------------------------------
/components/molecule/checkboxField/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $fw-molecule-checkbox-field-label: $fw-atom-label !default;
2 | $c-molecule-checkbox-field-label: $c-atom-label !default;
3 | $w-molecule-checkbox-field-input: $p-base * 2 !default;
4 | $h-molecule-checkbox-field-input: $p-base * 2 !default;
5 |
6 | $c-molecule-checkbox-field: (
7 | success: $c-success,
8 | error: $c-error,
9 | alert: $c-alert
10 | ) !default;
11 |
--------------------------------------------------------------------------------
/components/molecule/coachmark/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/coachmark/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/coachmark/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-badge/lib/index.scss';
2 |
3 | @import '../src/index';
4 |
--------------------------------------------------------------------------------
/components/molecule/coachmark/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-coachmark-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-molecule-coachmark",
6 | "dependencies": {
7 | "@s-ui/react-atom-badge": "2"
8 | }
9 | }
--------------------------------------------------------------------------------
/components/molecule/coachmark/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-icon/lib/index.scss';
3 | @import '~@s-ui/react-atom-button/lib/index.scss';
4 | @import '~@s-ui/react-atom-image/lib/index.scss';
5 |
6 | @import './styles/settings.scss';
7 | @import './styles/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/collapsible/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/collapsible/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/collapsible/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-collapsible-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/hoc": "1"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/molecule/collapsible/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/collapsible/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../settings';
2 |
--------------------------------------------------------------------------------
/components/molecule/dataCounter/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/dataCounter/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/dataCounter/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-data-counter-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/dataCounter/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-button/lib/index';
3 | @import '~@s-ui/react-atom-input/lib/index';
4 | @import '~@s-ui/react-molecule-field/lib/index';
5 |
6 | @import './styles/settings.scss';
7 | @import './styles/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/dataCounter/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $h-atom-input--m: 40px !default;
2 | $w-atom-input--m: $h-atom-input--m !default;
3 | $h-atom-input--s: 32px !default;
4 | $w-atom-input--s: $h-atom-input--s !default;
5 |
--------------------------------------------------------------------------------
/components/molecule/drawer/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/drawer/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/drawer/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-drawer-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/drawer/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/drawer/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-MoleculeDrawer'
2 |
3 | export const PLACEMENTS = {
4 | TOP: 'top',
5 | RIGHT: 'right',
6 | BOTTOM: 'bottom',
7 | LEFT: 'left'
8 | }
9 |
10 | export const SIZES = {
11 | AUTO: 'auto',
12 | M: 'm',
13 | FILL: 'fill'
14 | }
15 |
16 | export const ANIMATION_DURATION = {
17 | NONE: 'none', // 0
18 | FAST: 'fast', // 100ms
19 | NORMAL: 'normal', // 300ms
20 | SLOW: 'slow' // 500ms
21 | }
22 |
--------------------------------------------------------------------------------
/components/molecule/drawer/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../_settings.scss';
2 |
--------------------------------------------------------------------------------
/components/molecule/dropdownList/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/dropdownList/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/dropdownList/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2021-09-28)
4 |
5 |
6 | ### Features
7 |
8 | * **components/molecule/dropdownList/demo:** import component styles in demo ([218b87b](https://github.com/SUI-Components/sui-components/commit/218b87b43db44943951e0d04afb15c58b9337123))
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/components/molecule/dropdownList/demo/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = 'DemoMoleculeDropdownList'
2 | export const CLASS_DEMO_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
4 | export const OPTIONS = ['Option 1', 'Option 2', 'Option 3', 'Option 4', 'Option 5', 'Option 6', 'Option 7']
5 |
--------------------------------------------------------------------------------
/components/molecule/dropdownList/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-molecule-dropdown-option/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | .DemoMoleculeDropdownList {
6 | padding: 20px;
7 |
8 | &-list {
9 | background: white;
10 | width: 300px;
11 | }
12 |
13 | pre {
14 | padding: 16px;
15 | width: 300px;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/components/molecule/dropdownList/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-dropdown-list-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-molecule-dropdown-option": "2"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/molecule/dropdownList/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/dropdownOption/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/dropdownOption/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/dropdownOption/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2022-01-27)
4 |
5 |
6 | ### Features
7 |
8 | * **components/molecule/dropdownOption/demo:** add example with description ([95b4d42](https://github.com/SUI-Components/sui-components/commit/95b4d425d44fa3e528e072d16726bc7545a32876))
9 | * **components/molecule/dropdownOption:** add demo ([4f5bab4](https://github.com/SUI-Components/sui-components/commit/4f5bab4eee034b88eeb5f73ea240228668cfb740))
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/components/molecule/dropdownOption/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 | @import '~@s-ui/react-atom-image/lib/index';
3 |
4 | .DemoMoleculeDropdownOption {
5 | padding: 20px;
6 |
7 | &-option {
8 | border: 1px dotted gray;
9 | background: white;
10 | }
11 |
12 | pre {
13 | padding: 16px;
14 | width: 300px;
15 | }
16 |
17 | &-image {
18 | display: flex;
19 | height: $sz-icon-m;
20 | width: $sz-icon-m;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/components/molecule/dropdownOption/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-checkbox/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/molecule/dropdownOption/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../settings.scss';
2 |
--------------------------------------------------------------------------------
/components/molecule/field/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/field/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/field/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-field-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/field/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-validation-text/lib/index';
3 | @import '~@s-ui/react-atom-label/lib/index';
4 | @import '~@s-ui/react-atom-help-text/lib/index';
5 |
6 | @import './styles/settings.scss';
7 | @import './styles/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/field/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $fw-molecule-field-label: $fw-regular !default;
2 | $mb-molecule-field-label: $m-m !default;
3 | $ml-molecule-field-label: $m-m !default;
4 |
5 | $ai-molecule-field-label-container: center !default;
6 | $as-molecule-field-node-label-container: center !default;
7 |
--------------------------------------------------------------------------------
/components/molecule/imageEditor/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/imageEditor/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/imageEditor/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-image-editor-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/imageEditor/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoMoleculeImageEditor`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
4 | export const DEMO_IMAGE =
5 | 'https://lp-cms-production.imgix.net/features/2019/06/panda-d55d15231c4f.jpg?auto=compress&fit=crop&fm=auto&sharp=10&vib=20&w=1200&h=800'
6 |
--------------------------------------------------------------------------------
/components/molecule/imageEditor/src/config.js:
--------------------------------------------------------------------------------
1 | export const baseClass = 'sui-MoleculeImageEditor'
2 | export const DEFAULT_ASPECT = 4 / 3
3 | export const noop = () => {}
4 |
5 | export const getRotationDegrees = rotation => (rotation * 360) / 100
6 |
--------------------------------------------------------------------------------
/components/molecule/imageEditor/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-slider/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/molecule/imageEditor/src/prop-types.js:
--------------------------------------------------------------------------------
1 | export const debouncingTimePropType = function (props, propName, componentName) {
2 | const prop = props[propName]
3 | if (typeof prop !== 'number' || prop < 1) {
4 | return new Error('Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Validation failed.')
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/components/molecule/imageEditor/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $c-molecule-image-editor-label: $c-gray !default;
2 | $h-molecule-image-editor: 300px !default;
3 | $mb-molecule-image-editor-crop: $m-xxl !default;
4 | $mt-molecule-image-editor-slider: $m-xl !default;
5 | $w-molecule-image-editor-label-text: 50px !default;
6 |
--------------------------------------------------------------------------------
/components/molecule/inputField/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/inputField/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/inputField/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-input-field-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/inputField/src/config.js:
--------------------------------------------------------------------------------
1 | import {inputStates} from '@s-ui/react-atom-input'
2 |
3 | export const getErrorState = ({successText, errorText}) => {
4 | if (successText) return false
5 | if (errorText) return true
6 | }
7 |
8 | export const getState = ({successText, errorState, alertText}) => {
9 | if (successText) return inputStates.SUCCESS
10 | if (errorState) return inputStates.ERROR
11 | if (alertText) return inputStates.ALERT
12 | }
13 |
--------------------------------------------------------------------------------
/components/molecule/inputField/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-molecule-field/lib/index';
3 | @import '~@s-ui/react-atom-input/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/inputField/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-MoleculeInputField';
2 |
3 | #{$base-class} {
4 | // do your magic 💅
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/inputField/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/molecule/inputTags/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/inputTags/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/inputTags/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-icon/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | .DemoMoleculeInputTags {
6 | padding: 20px;
7 |
8 | &-section {
9 | margin: 10px;
10 | }
11 |
12 | pre {
13 | padding: 16px;
14 | width: 300px;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/molecule/inputTags/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-input-tags-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/molecule/inputTags/demo/settings.js:
--------------------------------------------------------------------------------
1 | import {AntDesignIcon} from '@s-ui/documentation-library'
2 | import AtomIcon from '@s-ui/react-atom-icon'
3 |
4 | export const BASE_CLASS_DEMO = 'DemoMoleculeInputTags'
5 | export const CLASS_DEMO_SECTION = `${BASE_CLASS_DEMO}-section`
6 |
7 | export const closeIcon = (
8 |
9 |
10 |
11 | )
12 |
--------------------------------------------------------------------------------
/components/molecule/inputTags/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-input/lib/index';
3 | @import '~@s-ui/react-atom-tag/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/inputTags/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $sizes-atom-input-paddings: m $p-m, s $p-s !default;
2 | $bg-input-tag-disable: $c-gray-light-4 !default;
3 | $bdrs-molecule-input-tags: $bdrs-atom-input !default;
4 |
--------------------------------------------------------------------------------
/components/molecule/modal/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/modal/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/modal/demo/utils/CodeEditor/index.js:
--------------------------------------------------------------------------------
1 | import CodeEditor from './CodeEditor.js'
2 |
3 | export default CodeEditor
4 |
--------------------------------------------------------------------------------
/components/molecule/modal/demo/utils/index.js:
--------------------------------------------------------------------------------
1 | import CodeEditor from './CodeEditor/index.js'
2 | import LoremIpsum from './LoremIpsum/index.js'
3 |
4 | export {CodeEditor, LoremIpsum}
5 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Body.index.scss:
--------------------------------------------------------------------------------
1 | @use 'sass:math';
2 |
3 | $base-class-element: '#{$base-class}-Body';
4 |
5 | #{$base-class-element} {
6 | overflow: hidden;
7 | flex-grow: 0;
8 | display: flex;
9 | flex-flow: column;
10 | &:not(#{$base-class-element}-is-inset) {
11 | padding-inline: $px-molecule-modal-body;
12 | padding-block: $py-molecule-modal-body;
13 | }
14 | &:has(#{$base-class-element}-is-inset) {
15 | padding-inline: 0;
16 | margin-block: 0;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Body.settings.scss:
--------------------------------------------------------------------------------
1 | $px-molecule-modal-body: $px-molecule-modal-content !default;
2 | $py-molecule-modal-body: $py-molecule-modal-content !default;
3 |
4 | $bgc-molecule-modal-scrollbar-track: color-mix(in srgb, $c-black 10%, $c-white) !default;
5 | $bdc-molecule-modal-scrollbar-track: color-mix(in srgb, $c-black 20%, $c-white) !default;
6 |
7 | $bgc-molecule-modal-scrollbar-thumb: color-mix(in srgb, $c-black 30%, $c-white) !default;
8 | $bdc-molecule-modal-scrollbar-thumb: transparent !default;
9 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.CloseTrigger.index.scss:
--------------------------------------------------------------------------------
1 | $base-class-element: '#{$base-class}-CloseTrigger';
2 |
3 | #{$base-class-element} {
4 | // here the molecule-modal-open-trigger styles
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.CloseTrigger.settings.scss:
--------------------------------------------------------------------------------
1 | // Here the molecule-modal-close-trigger tokens
2 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Description.index.scss:
--------------------------------------------------------------------------------
1 | $base-class-element: '#{$base-class}-Description';
2 |
3 | #{$base-class-element} {
4 | margin-inline: $mx-molecule-modal-description;
5 | margin-block: $my-molecule-modal-description;
6 |
7 | padding-inline: $px-molecule-modal-description;
8 | padding-block: $py-molecule-modal-description;
9 | }
10 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Description.settings.scss:
--------------------------------------------------------------------------------
1 | $mx-molecule-modal-description: 0 !default;
2 | $my-molecule-modal-description: 0 !default;
3 |
4 | $px-molecule-modal-description: 0 !default;
5 | $py-molecule-modal-description: 0 !default;
6 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Footer.settings.scss:
--------------------------------------------------------------------------------
1 | $px-molecule-modal-footer: $px-molecule-modal-content !default;
2 | $py-molecule-modal-footer: $py-molecule-modal-content !default;
3 |
4 | $h-molecule-modal-footer: 5 * $sz-base !default;
5 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Header.settings.scss:
--------------------------------------------------------------------------------
1 | $px-molecule-modal-header: $px-molecule-modal-content !default;
2 | $py-molecule-modal-header: $py-molecule-modal-content !default;
3 |
4 | $h-molecule-modal-header: 5 * $sz-base !default;
5 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.OpenTrigger.index.scss:
--------------------------------------------------------------------------------
1 | $base-class-element: '#{$base-class}-OpenTrigger';
2 |
3 | #{$base-class-element} {
4 | // here the molecule-modal-open-trigger styles
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.OpenTrigger.settings.scss:
--------------------------------------------------------------------------------
1 | // Here the molecule-modal-open-trigger tokens
2 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Overlay.settings.scss:
--------------------------------------------------------------------------------
1 | $bgc-molecule-modal-overlay: color-mix(
2 | in srgb,
3 | $bg-molecule-modal #{'#{$op-molecule-modal * 100}%'},
4 | transparent
5 | ) !default;
6 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Portal.index.scss:
--------------------------------------------------------------------------------
1 | $base-class-element: '#{$base-class}-Portal';
2 |
3 | #{$base-class-element} {
4 | // Does nothing
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Portal.settings.scss:
--------------------------------------------------------------------------------
1 | $animdur-molecule-modal-portal: 250ms !default;
2 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Title.index.scss:
--------------------------------------------------------------------------------
1 | $base-class-element: '#{$base-class}-Title';
2 |
3 | #{$base-class-element} {
4 | margin: 0;
5 | text-wrap: nowrap;
6 | text-overflow: ellipsis;
7 | overflow: hidden;
8 | }
9 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/Modal.Title.settings.scss:
--------------------------------------------------------------------------------
1 | $py-molecule-modal-title: $py-molecule-modal-content !default;
2 | $px-molecule-modal-title: $px-molecule-modal-content !default;
3 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-MoleculeModal'
2 |
3 | export const MODAL_SIZES = {
4 | XSMALL: 'xsmall',
5 | SMALL: 'small',
6 | MEDIUM: 'medium',
7 | LARGE: 'large',
8 | FULL: 'full'
9 | }
10 |
11 | export const MODAL_ANIMATIONS = {
12 | FADE: 'fade',
13 | SLIDE: 'slide',
14 | BLOOM: 'bloom',
15 | NONE: 'none'
16 | }
17 |
18 | export const ANIMATION_ENTER_DELAY = 0
19 | export const ANIMATION_EXIT_DELAY = 200
20 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/context/index.js:
--------------------------------------------------------------------------------
1 | import {createContext} from 'react'
2 |
3 | const defaultContext = {
4 | isOpen: false,
5 | forceMount: undefined,
6 | setForceMount: () => {},
7 | animation: 'none',
8 | setAnimation: () => {},
9 | hasAnimation: false,
10 | isMounted: false,
11 | isRendered: false
12 | }
13 |
14 | const ModalContext = createContext(defaultContext)
15 |
16 | export default ModalContext
17 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/hooks/index.js:
--------------------------------------------------------------------------------
1 | import useDelayedRender from './useDelayedRender.js'
2 | import useModalContext from './useModalContext.js'
3 |
4 | export {useDelayedRender, useModalContext}
5 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/hooks/useModalContext.js:
--------------------------------------------------------------------------------
1 | import {useContext} from 'react'
2 |
3 | import ModalContext from '../context/index.js'
4 |
5 | const useModalContext = () => {
6 | return useContext(ModalContext)
7 | }
8 |
9 | export default useModalContext
10 |
--------------------------------------------------------------------------------
/components/molecule/modal/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-primitive-visually-hidden/lib/index';
3 | @import '~@s-ui/react-atom-icon/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/notification/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/notification/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/notification/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-notification-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/notification/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-button/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/molecule/notification/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../_settings.scss';
2 |
--------------------------------------------------------------------------------
/components/molecule/pagination/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/pagination/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/pagination/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2021-09-28)
4 |
5 |
6 | ### Features
7 |
8 | * **components/molecule/pagination/demo:** import component styles in demo ([5c5a207](https://github.com/SUI-Components/sui-components/commit/5c5a20742f103079682369b213220cd397dbfe31))
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/components/molecule/pagination/src/customPropTypes/index.js:
--------------------------------------------------------------------------------
1 | import isValidPage from './isValidPage.js'
2 | import isValidShowPages from './isValidShowPages.js'
3 | import isValidTotalPages from './isValidTotalPages.js'
4 |
5 | export {isValidPage, isValidShowPages, isValidTotalPages}
6 |
--------------------------------------------------------------------------------
/components/molecule/pagination/src/helpers/pagination/index.js:
--------------------------------------------------------------------------------
1 | import nextPage from './nextPage.js'
2 | import prevPage from './prevPage.js'
3 | import range from './range.js'
4 |
5 | export {prevPage, nextPage, range}
6 |
--------------------------------------------------------------------------------
/components/molecule/pagination/src/helpers/pagination/nextPage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Gets the next page number taking into account possible compressed mode
3 | * @param {object} params - parameters pagination
4 | * @param {number} params.page - Original page number
5 | * @param {number} params.totalPages - Total number of pages
6 | * @return {number} next page number
7 | */
8 | const nextPage = ({page, totalPages}) => (page !== totalPages ? page + 1 : null)
9 |
10 | export default nextPage
11 |
--------------------------------------------------------------------------------
/components/molecule/pagination/src/helpers/pagination/prevPage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Gets the previous page number taking into account possible compressed mode
3 | * @param {object} params - parameters pagination
4 | * @param {number} params.page - Original page number
5 | * @return {number} previous page number
6 | */
7 | const prevPage = ({page}) => (page !== 1 ? page - 1 : null)
8 |
9 | export default prevPage
10 |
--------------------------------------------------------------------------------
/components/molecule/pagination/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import '~@s-ui/react-molecule-button-group/lib/index';
4 | @import '~@s-ui/react-atom-button/lib/index';
5 |
6 | @import './styles/settings.scss';
7 | @import './styles/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/pagination/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-MoleculePagination'
2 | export const PAGE_NUMBER_HOLDER = '%{pageNumber}'
3 | export const DIVIDER = '···'
4 |
5 | export const defaultCreateUrl = ({pageNumber, urlPattern}) => urlPattern.replace(PAGE_NUMBER_HOLDER, pageNumber)
6 |
7 | export const noop = () => {}
8 |
--------------------------------------------------------------------------------
/components/molecule/pagination/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-MoleculePagination';
2 |
3 | #{$base-class} {
4 | @include reset-list;
5 | display: flex;
6 |
7 | &-item:not(:first-child) {
8 | margin-left: $m-pagination-items;
9 | }
10 |
11 | &-divider {
12 | align-items: center;
13 | display: flex;
14 | justify-content: center;
15 | margin-left: $m-s;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/components/molecule/pagination/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $trf-pagination-prev-button-icon: none !default;
2 | $trf-pagination-next-button-icon: none !default;
3 | $c-pagination-button-icon-path: inherit !default;
4 | $m-pagination-items: $m-s !default;
5 |
--------------------------------------------------------------------------------
/components/molecule/phoneInput/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/phoneInput/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/phoneInput/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-phone-input-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-molecule-phone-input"
6 | }
7 |
--------------------------------------------------------------------------------
/components/molecule/phoneInput/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import '~@s-ui/react-molecule-dropdown-option/lib/index.scss';
4 | @import '~@s-ui/react-molecule-dropdown-list/lib/index.scss';
5 | @import '~@s-ui/react-molecule-input-field/lib/index.scss';
6 | @import '~@s-ui/react-atom-button/lib/index.scss';
7 |
8 | @import './styles/settings.scss';
9 | @import './styles/index.scss';
10 |
--------------------------------------------------------------------------------
/components/molecule/phoneInput/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $h-molecule-phone-input: 40px !default;
2 | $fz-molecule-phone-input-input-prefix-code: $fz-m !default;
3 | $fz-molecule-phone-input-input: $fz-base !default;
4 | $fz-molecule-phone-input-dropdown-option-label: $fz-m !default;
5 | $fz-molecule-phone-input-label: $fz-s !default;
6 | $fz-molecule-phone-input-info: $fz-xs !default;
7 |
--------------------------------------------------------------------------------
/components/molecule/photoUploader/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/photoUploader/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/photoUploader/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2021-07-01)
4 |
5 |
6 | ### Bug Fixes
7 |
8 | * **components/molecule/photoUploader/demo:** fix demo ([5f0c787](https://github.com/SUI-Components/sui-components/commit/5f0c787fc5d15b39e17e4080b088c6faa19d4be4))
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/components/molecule/photoUploader/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 | @import 'components/molecule/select/src/index.scss';
3 | @import 'components/molecule/dropdownOption/src/index.scss';
4 |
5 | .demo-child-body {
6 | padding: 8px;
7 | border-bottom: 1px solid #222222;
8 | background-color: white;
9 | }
10 |
--------------------------------------------------------------------------------
/components/molecule/photoUploader/src/DragNotification/config.js:
--------------------------------------------------------------------------------
1 | import {BASE_CLASS_NAME} from '../config.js'
2 |
3 | export const MOLECULE_NOTIFICATION_TYPE = 'error'
4 | export const NOTIFICATION_CLASS_NAME = `${BASE_CLASS_NAME}-notification`
5 |
--------------------------------------------------------------------------------
/components/molecule/photoUploader/src/DragState/config.js:
--------------------------------------------------------------------------------
1 | import {BASE_CLASS_NAME} from '../config.js'
2 |
3 | export const DRAG_STATE_CLASS_NAME = `${BASE_CLASS_NAME}-dragState`
4 |
--------------------------------------------------------------------------------
/components/molecule/photoUploader/src/PhotosPreview/config.js:
--------------------------------------------------------------------------------
1 | import {BASE_CLASS_NAME} from '../config.js'
2 |
3 | export const PREVIEW_CARD_CLASS_NAME = `${BASE_CLASS_NAME}-preview`
4 |
--------------------------------------------------------------------------------
/components/molecule/photoUploader/src/SkeletonCard/config.js:
--------------------------------------------------------------------------------
1 | import {BASE_CLASS_NAME} from '../config.js'
2 |
3 | export const SKELETON_CLASS_NAME = `${BASE_CLASS_NAME}-skeleton`
4 |
--------------------------------------------------------------------------------
/components/molecule/photoUploader/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-button/lib/index';
3 | @import '~@s-ui/react-atom-icon/lib/index';
4 | @import '~@s-ui/react-molecule-notification/lib/index';
5 |
6 | @import './styles/settings.scss';
7 | @import './styles/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/progressSteps/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/progressSteps/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/progressSteps/demo/Icons/index.js:
--------------------------------------------------------------------------------
1 | import {AntDesignIcon} from '@s-ui/documentation-library'
2 | import AtomIcon, {ATOM_ICON_SIZES} from '@s-ui/react-atom-icon'
3 |
4 | const iconFillCheck = (
5 |
6 |
7 |
8 | )
9 |
10 | export {iconFillCheck}
11 |
--------------------------------------------------------------------------------
/components/molecule/progressSteps/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-progress-steps-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/molecule/progressSteps/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-molecule-stepper/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/molecule/quickAction/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/quickAction/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/quickAction/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-quick-action-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/quickAction/src/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-MoleculeQuickAction'
2 |
3 | export const SIZES = {
4 | SMALL: 'small',
5 | MEDIUM: 'medium',
6 | LARGE: 'large'
7 | }
8 |
9 | export const getClassName = variant => `${BASE_CLASS}--${variant}`
10 |
--------------------------------------------------------------------------------
/components/molecule/quickAction/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonField/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/radioButtonField/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/radioButtonField/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-radio-button-field-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonField/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const styleList = {
2 | listStyle: 'none'
3 | }
4 |
5 | export const styleListItem = {
6 | marginTop: '50px'
7 | }
8 |
9 | export const BASE_CLASS_DEMO = `DemoMoleculeRadioButtonField`
10 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
11 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonField/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-molecule-field/lib/index';
3 | @import '~@s-ui/react-atom-radio-button/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonField/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-MoleculeRadioButtonField'
2 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonField/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $c-molecule-radio-button-field-label--disabled: $c-gray-light !default;
2 | $m-molecule-radio-button-field: 0 !default;
3 | $m-molecule-radio-button-field-container: 0 !default;
4 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonGroup/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/radioButtonGroup/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/radioButtonGroup/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2022-02-07)
4 |
5 |
6 | ### Features
7 |
8 | * **components/molecule/radioButtonGroup/demo:** Add articles for radio button group ([9a9506a](https://github.com/SUI-Components/sui-components/commit/9a9506a55957fdc802c1041988804759a12c14b4))
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonGroup/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import 'components/atom/radioButton/src/index';
2 | @import 'components/molecule/radioButtonField/src/index';
3 | @import '../src/index';
4 |
5 | .DemoMoleculeRadioButtonGroup {
6 | padding: 20px;
7 | .sui-MoleculeRadioButtonField {
8 | margin-bottom: 15px;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonGroup/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonGroup/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-MoleculeRadioButtonGroup'
2 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonGroup/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-MoleculeRadioButtonGroup';
2 |
3 | #{$base-class} {
4 | // do your magic 💅
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/radioButtonGroup/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/molecule/rating/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/rating/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/rating/demo/Icons/index.js:
--------------------------------------------------------------------------------
1 | import IconStarFilled from './starFilled.js'
2 | import IconStarFilledCustom from './starFilledCustom.js'
3 | import IconStarHalfFilled from './starHalfFilled.js'
4 | import IconStarOutline from './starOutline.js'
5 | import IconStarOutlineCustom from './starOutlineCustom.js'
6 |
7 | export {IconStarFilled, IconStarHalfFilled, IconStarOutline, IconStarFilledCustom, IconStarOutlineCustom}
8 |
--------------------------------------------------------------------------------
/components/molecule/rating/demo/Icons/starFilled.js:
--------------------------------------------------------------------------------
1 | const StarFilled = () => (
2 |
5 | )
6 |
7 | export default StarFilled
8 |
--------------------------------------------------------------------------------
/components/molecule/rating/demo/Icons/starHalfFilled.js:
--------------------------------------------------------------------------------
1 | const StarHalfFilled = () => (
2 |
5 | )
6 |
7 | export default StarHalfFilled
8 |
--------------------------------------------------------------------------------
/components/molecule/rating/demo/Icons/starOutline.js:
--------------------------------------------------------------------------------
1 | const StarOutline = () => (
2 |
5 | )
6 |
7 | export default StarOutline
8 |
--------------------------------------------------------------------------------
/components/molecule/rating/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-rating-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT"
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/rating/src/Icons/index.js:
--------------------------------------------------------------------------------
1 | import IconStarFilled from './starFilled.js'
2 | import IconStarHalfFilled from './starHalfFilled.js'
3 | import IconStarOutline from './starOutline.js'
4 |
5 | export {IconStarFilled, IconStarHalfFilled, IconStarOutline}
6 |
--------------------------------------------------------------------------------
/components/molecule/rating/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-icon/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/molecule/select/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/select/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/select/demo/data/fullNames.js:
--------------------------------------------------------------------------------
1 | import {faker} from '@faker-js/faker'
2 |
3 | export const getFullNames = (n = 0) => {
4 | return Array.from({length: n}, () => {
5 | const firstName = faker.person.firstName()
6 | const middleName = faker.person.middleName()
7 | const lastName = faker.person.lastName()
8 | const nameCode = `${firstName[0]}${middleName[0]}${lastName[0]}`
9 | return {name: `${firstName} ${middleName} ${lastName}`, code: nameCode}
10 | })
11 | }
12 |
--------------------------------------------------------------------------------
/components/molecule/select/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-molecule-dropdown-option/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | .DemoMoleculeSelect {
6 | margin-bottom: 500px;
7 | padding: 20px;
8 |
9 | &-list {
10 | background: white;
11 | width: 300px;
12 | }
13 |
14 | &-section {
15 | margin: 10px;
16 | }
17 |
18 | pre {
19 | padding: 16px;
20 | width: 300px;
21 | }
22 |
23 | &-noResults {
24 | padding: 20px 24px;
25 | color: #b8b8b8;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/components/molecule/select/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-select-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-molecule-dropdown-option": "2",
15 | "@faker-js/faker": "9"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/components/molecule/select/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-input/lib/index';
3 | @import '~@s-ui/react-molecule-input-tags/lib/index';
4 | @import '~@s-ui/react-molecule-dropdown-list/lib/index';
5 |
6 | @import './styles/settings.scss';
7 | @import './styles/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/selectField/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/selectField/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/selectField/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-molecule-dropdown-option/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | .DemoMoleculeSelect {
6 | margin-bottom: 500px;
7 | padding: 20px;
8 |
9 | &-list {
10 | background: white;
11 | width: 300px;
12 | }
13 |
14 | &-section {
15 | margin: 10px;
16 | }
17 |
18 | pre {
19 | padding: 16px;
20 | width: 300px;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/components/molecule/selectField/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-select-field-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/hoc": "1",
15 | "@s-ui/react-molecule-dropdown-option": "2",
16 | "@s-ui/react-molecule-field": "1"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/molecule/selectField/src/config.js:
--------------------------------------------------------------------------------
1 | import {moleculeSelectStates} from '@s-ui/react-molecule-select'
2 |
3 | export const hasErrors = ({successText, errorText}) => {
4 | if (errorText) return true
5 | if (successText) return false
6 | }
7 |
8 | export const getState = ({successText, errorState, alertText}) => {
9 | if (successText) return moleculeSelectStates.SUCCESS
10 | if (errorState) return moleculeSelectStates.ERROR
11 | if (alertText) return moleculeSelectStates.ALERT
12 | }
13 |
--------------------------------------------------------------------------------
/components/molecule/selectField/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-molecule-field/lib/index';
3 | @import '~@s-ui/react-molecule-select/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/selectField/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-MoleculeSelectField';
2 |
3 | #{$base-class} {
4 | // do your magic 💅
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/selectField/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/molecule/selectPopover/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/selectPopover/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/selectPopover/demo/config.js:
--------------------------------------------------------------------------------
1 | export const demoExample = [
2 | {id: 'nested-01', label: 'Compra', checked: false},
3 | {id: 'nested-02', label: 'Alquiler', checked: false},
4 | {id: 'nested-03', label: 'Alquiler con opción a compra', checked: false}
5 | ]
6 |
--------------------------------------------------------------------------------
/components/molecule/selectPopover/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-button/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/molecule/stepper/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/stepper/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/stepper/demo/Icon.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 |
3 | import AtomIcon from '@s-ui/react-atom-icon'
4 | import Element from '@s-ui/react-primitive-polymorphic-element'
5 |
6 | const Icon = ({as, icon}) => (
7 |
8 |
9 |
10 | )
11 |
12 | Icon.propTypes = {
13 | as: PropTypes.elementType,
14 | icon: PropTypes.string
15 | }
16 |
17 | Icon.displayName = 'Icon'
18 |
19 | export default Icon
20 |
--------------------------------------------------------------------------------
/components/molecule/stepper/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import './customSteps/DotCustomStep/index.scss';
2 | @import './customSteps/TextCustomStep/index.scss';
3 |
--------------------------------------------------------------------------------
/components/molecule/stepper/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-stepper-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for sui-molecule-stepper",
6 | "dependencies": {
7 | "@s-ui/react-atom-icon": "1",
8 | "@s-ui/react-hooks": "1",
9 | "@s-ui/react-primitive-injector": "1.1.0",
10 | "@s-ui/react-primitive-polymorphic-element": "1",
11 | "lorem-ipsum": "2.0.4"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/stepper/demo/settings.js:
--------------------------------------------------------------------------------
1 | import {AntDesignIcon} from '@s-ui/documentation-library'
2 |
3 | import Icon from './Icon.js'
4 |
5 | export const visitedIcon =
6 | export const currentIcon =
7 | export const defaultIcon =
8 |
--------------------------------------------------------------------------------
/components/molecule/stepper/src/Step/settings.scss:
--------------------------------------------------------------------------------
1 | $w-stepper-separator-horizontal: calc(100% - #{2 * ($m-stepper+ $bdw-stepper)}) !default;
2 |
--------------------------------------------------------------------------------
/components/molecule/stepper/src/context/index.js:
--------------------------------------------------------------------------------
1 | import StepsContext, {defaultStepsContext} from './StepsContext.js'
2 | import StepsProvider from './StepsProvider.js'
3 | import useStepsContext from './useStepsContext.js'
4 |
5 | export default StepsContext
6 |
7 | export {StepsContext, StepsProvider, useStepsContext, defaultStepsContext}
8 |
--------------------------------------------------------------------------------
/components/molecule/stepper/src/context/useStepsContext.js:
--------------------------------------------------------------------------------
1 | import {useContext} from 'react'
2 |
3 | import StepsContext from './StepsContext.js'
4 |
5 | export const useStepsContext = () => {
6 | return useContext(StepsContext)
7 | }
8 |
9 | export default useStepsContext
10 |
--------------------------------------------------------------------------------
/components/molecule/stepper/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './Step/settings.scss';
5 |
6 | @import './styles/index.scss';
7 | @import './Step/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/stepper/src/prop-types.js:
--------------------------------------------------------------------------------
1 | export const naturalNumber = function (props, propName, componentName) {
2 | if (typeof props[propName] !== 'number' || props[propName] % 1 !== 0 || props[propName] < 0) {
3 | return new Error('Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Validation failed.')
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/components/molecule/tabs/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/tabs/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/tabs/demo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2021-09-28)
4 |
5 |
6 | ### Features
7 |
8 | * **components/molecule/tabs/demo:** import component styles in demo ([36f53fd](https://github.com/SUI-Components/sui-components/commit/36f53fd8f6722ea562a1554cff60f9e0dd93ee74))
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/components/molecule/tabs/demo/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = 'DemoMoleculeTabs'
2 | export const CLASS_DEMO_SECTION = `${BASE_CLASS_DEMO}-section`
3 | export const CLASS_DEMO_CONTENT_TAB = `${BASE_CLASS_DEMO}-contentTab`
4 |
--------------------------------------------------------------------------------
/components/molecule/tabs/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-icon/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | .DemoMoleculeTabs {
6 | &-section {
7 | .demo-content-paragraph {
8 | &::first-letter {
9 | text-transform: capitalize;
10 | }
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/components/molecule/tabs/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-tabs-demo",
3 | "version": "1.1.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1.14.0",
15 | "@s-ui/react-layout-media-query": "1",
16 | "lorem-ipsum": "2.0.4"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/molecule/tabs/src/components/config.js:
--------------------------------------------------------------------------------
1 | import {BASE_CLASS} from '../config.js'
2 |
3 | export const CLASS_TAB = `${BASE_CLASS}-item`
4 | export const CLASS_TAB_ICON = `${CLASS_TAB}-icon`
5 | export const CLASS_TAB_COUNT = `${CLASS_TAB}-count`
6 |
7 | /* status */
8 | export const CLASS_TAB_ACTIVE = `is-active`
9 | export const CLASS_TAB_DISABLED = `is-disabled`
10 |
--------------------------------------------------------------------------------
/components/molecule/tabs/src/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = `sui-MoleculeTabs`
2 |
3 | export const CLASS_SCROLLER = `${BASE_CLASS}-scroller`
4 | export const CLASS_CONTENT = `${BASE_CLASS}-content`
5 |
6 | export const TYPES = {
7 | HORIZONTAL: 'horizontal',
8 | VERTICAL: 'vertical',
9 | FULLWIDTH: 'fullWidth'
10 | }
11 |
12 | export const VARIANTS = {
13 | HIGHLIGHTED: 'highlighted',
14 | CLASSIC: 'classic'
15 | }
16 |
--------------------------------------------------------------------------------
/components/molecule/tabs/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/molecule/tabs/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | @import '../_settings.scss';
2 |
--------------------------------------------------------------------------------
/components/molecule/textareaField/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/textareaField/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/textareaField/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-textarea-field-demo",
3 | "version": "1.2.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "",
11 | "license": "MIT",
12 | "dependencies": {
13 | "@s-ui/react-atom-button": "2"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/components/molecule/textareaField/demo/withState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable react/prop-types */
2 | import {useCallback, useState} from 'react'
3 |
4 | export default BaseComponent =>
5 | ({value, onChange, ...otherProps}) => {
6 | const [ownValue, setValue] = useState(value || '')
7 | return (
8 | setValue(value), [setValue])}
12 | />
13 | )
14 | }
15 |
--------------------------------------------------------------------------------
/components/molecule/textareaField/src/config.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-TextareaField'
2 |
--------------------------------------------------------------------------------
/components/molecule/textareaField/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-textarea/lib/index';
3 | @import '~@s-ui/react-molecule-field/lib/index';
4 |
5 | @import './styles/settings.scss';
6 | @import './styles/index.scss';
7 |
--------------------------------------------------------------------------------
/components/molecule/textareaField/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-TextareaField';
2 |
3 | #{$base-class} {
4 | &-helpText {
5 | margin: 0;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/components/molecule/textareaField/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/molecule/thumbnail/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/thumbnail/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/thumbnail/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-spinner/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | .DemoMoleculeThumbnail {
6 | padding: 20px;
7 |
8 | &-table {
9 | margin-bottom: 20px;
10 | }
11 |
12 | &-cell {
13 | width: 25%;
14 | vertical-align: top;
15 | text-align: center;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/components/molecule/thumbnail/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-thumbnail-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-spinner": "1",
15 | "@s-ui/react-layout-media-query": "1"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/components/molecule/thumbnail/src/ThumbnailLink.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 |
3 | const ThumbnailLink = ({children, ...rest} = {}) => {children}
4 |
5 | ThumbnailLink.displayName = 'ThumbnailLink'
6 | ThumbnailLink.propTypes = {
7 | children: PropTypes.node
8 | }
9 |
10 | export default ThumbnailLink
11 |
--------------------------------------------------------------------------------
/components/molecule/thumbnail/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-atom-image/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/molecule/validationCode/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/molecule/validationCode/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/molecule/validationCode/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-molecule-validation-code-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-molecule-validation-code"
6 | }
7 |
--------------------------------------------------------------------------------
/components/molecule/validationCode/src/config.js:
--------------------------------------------------------------------------------
1 | export {
2 | pinInputStatus as validationCodeStatus,
3 | pinInputSizes as validationCodeSizes,
4 | pinInputMask as validationCodeMask
5 | } from '@s-ui/react-atom-pin-input'
6 |
7 | export const BASE_CLASS = 'sui-MoleculeValidationCode'
8 |
9 | export const normalizeValue = value => {
10 | if (value === undefined) {
11 | return value
12 | }
13 | return `${typeof value === 'string' ? value.split('') : value}`
14 | }
15 |
--------------------------------------------------------------------------------
/components/molecule/validationCode/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '@s-ui/react-atom-pin-input/lib/index';
3 | @import '@s-ui/react-atom-validation-text/lib/index';
4 | @import '@s-ui/react-atom-button/lib/index';
5 |
6 | @import './styles/settings.scss';
7 | @import './styles/index.scss';
8 |
--------------------------------------------------------------------------------
/components/molecule/validationCode/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // do your magic 💅
2 |
--------------------------------------------------------------------------------
/components/organism/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/organism/.gitkeep
--------------------------------------------------------------------------------
/components/organism/nestedCheckboxes/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/organism/nestedCheckboxes/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/organism/nestedCheckboxes/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-icon/lib/index';
2 |
3 | @import '../src/index';
4 |
5 | .DemoOrganismNestedCheckboxes {
6 | padding: 15px;
7 |
8 | h1 {
9 | margin-top: 0;
10 | }
11 |
12 | h2 {
13 | margin-top: 30px;
14 | }
15 |
16 | small {
17 | font-weight: normal;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/components/organism/nestedCheckboxes/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-organism-nested-checkboxes-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/hoc": "1",
15 | "@s-ui/react-atom-icon": "1",
16 | "react-json-view": "1.21.3"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/components/organism/nestedCheckboxes/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 | @import '~@s-ui/react-molecule-checkbox-field/lib/index';
3 |
4 | @import './styles/settings.scss';
5 | @import './styles/index.scss';
6 |
--------------------------------------------------------------------------------
/components/organism/nestedCheckboxes/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $pl-organism-nested-checkboxes: $p-l !default;
2 |
--------------------------------------------------------------------------------
/components/primitive/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/primitive/.gitkeep
--------------------------------------------------------------------------------
/components/primitive/injector/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/primitive/injector/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/primitive/injector/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-primitive-injector-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-primitive-injector",
6 | "dependencies": {
7 | "react-json-view": "1.21.3"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/components/primitive/injector/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const demoBaseClassName = 'PrimitiveInjectorDemo'
2 |
--------------------------------------------------------------------------------
/components/primitive/injector/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
--------------------------------------------------------------------------------
/components/primitive/linkBox/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/primitive/linkBox/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/primitive/linkBox/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.2.0 (2025-05-26)
4 |
5 |
6 | ### Features
7 |
8 | * add forwardRef ([bfe2a74](https://github.com/SUI-Components/sui-components/commit/bfe2a7463c4c744258bf14c5775ff6f393e92d52))
9 |
10 |
11 |
12 | # 1.1.0 (2025-02-26)
13 |
14 |
15 | ### Features
16 |
17 | * add new component ([237f7b8](https://github.com/SUI-Components/sui-components/commit/237f7b8cf03491ad8bafedecbf9b33d2ae44b754))
--------------------------------------------------------------------------------
/components/primitive/linkBox/demo/config.js:
--------------------------------------------------------------------------------
1 | export const demoBaseClassName = 'PrimitiveLinkBoxDemo'
2 |
--------------------------------------------------------------------------------
/components/primitive/linkBox/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-tag/lib/index.scss';
2 |
3 | @import '../src/index.scss';
4 |
--------------------------------------------------------------------------------
/components/primitive/linkBox/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-primitive-link-box-demo",
3 | "version": "0.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-primitive-link-box",
6 | "dependencies": {
7 | "@s-ui/react-atom-tag": "4"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/components/primitive/linkBox/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/primitive/linkBox/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_NAME = 'sui-PrimitiveLinkBox'
2 |
--------------------------------------------------------------------------------
/components/primitive/linkBox/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-PrimitiveLinkBox';
2 |
3 | #{$base-class} {
4 | position: relative;
5 |
6 | #{$base-class}Link {
7 | &::before {
8 | content: '';
9 | position: absolute;
10 | display: block;
11 | height: 100%;
12 | left: 0;
13 | top: 0;
14 | width: 100%;
15 | }
16 | }
17 |
18 | #{$base-class}Raised {
19 | z-index: $z-linkbox-raised;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/components/primitive/linkBox/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | $z-linkbox-raised: $z-dropdown-menu;
2 |
--------------------------------------------------------------------------------
/components/primitive/loadingIcon/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/primitive/loadingIcon/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/primitive/loadingIcon/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.2.0 (2024-02-06)
4 |
5 |
6 | ### Features
7 |
8 | * Apply small style adjustments ([77d2ae4](https://github.com/SUI-Components/sui-components/commit/77d2ae463ffe0ee597925fbd794237419ffeb5c5))
9 |
10 |
11 |
12 | # 1.1.0 (2024-02-06)
13 |
14 |
15 | ### Features
16 |
17 | * Add loadingIcon component to primitives ([a82e641](https://github.com/SUI-Components/sui-components/commit/a82e64128442dcd5c01c6a4b7e73cdd64c067d04))
--------------------------------------------------------------------------------
/components/primitive/loadingIcon/demo/index.js:
--------------------------------------------------------------------------------
1 | import PrimitiveLoadingIcon from 'components/primitive/loadingIcon/src'
2 |
3 | import {H1, Paragraph} from '@s-ui/documentation-library'
4 | export default () => (
5 |
6 |
PrimitiveLoadingIcon
7 |
8 | An animated loop used for giving users feedback while the content of a page or section is being loaded.
9 |
10 |
11 |
12 | )
13 |
--------------------------------------------------------------------------------
/components/primitive/loadingIcon/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-primitive-loading-icon-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-primitive-loading-icon"
6 | }
--------------------------------------------------------------------------------
/components/primitive/loadingIcon/src/index.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 |
3 | const PrimitiveLoadingIcon = ({role = 'status', ...props}) => {
4 | return
5 | }
6 | PrimitiveLoadingIcon.propTypes = {
7 | role: PropTypes.string
8 | }
9 | PrimitiveLoadingIcon.displayName = 'PrimitiveLoadingIcon'
10 |
11 | export default PrimitiveLoadingIcon
12 |
--------------------------------------------------------------------------------
/components/primitive/polymorphicElement/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/primitive/polymorphicElement/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/primitive/polymorphicElement/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-primitive-polymorphic-element-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-primitive-polymorphic-element"
6 | }
7 |
--------------------------------------------------------------------------------
/components/primitive/polymorphicElement/src/index.js:
--------------------------------------------------------------------------------
1 | import {forwardRef} from 'react'
2 |
3 | import PropTypes from 'prop-types'
4 |
5 | const PolymorphicElement = forwardRef(({as: Component = 'span', ...props}, forwardedRef) => {
6 | return
7 | })
8 |
9 | PolymorphicElement.displayName = 'PolymorphicElement'
10 | PolymorphicElement.propTypes = {
11 | as: PropTypes.elementType
12 | }
13 |
14 | export default PolymorphicElement
15 |
--------------------------------------------------------------------------------
/components/primitive/polymorphicElement/src/index.scss:
--------------------------------------------------------------------------------
1 | // Leave for retrocompatibility
2 |
--------------------------------------------------------------------------------
/components/primitive/typography/.gitignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/primitive/typography/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 |
--------------------------------------------------------------------------------
/components/primitive/typography/demo/config.js:
--------------------------------------------------------------------------------
1 | const BASE_CLASS_DEMO = `DemoPrimitiveTypography`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/primitive/typography/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '../src/index';
2 |
--------------------------------------------------------------------------------
/components/primitive/typography/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-primitive-typography-demo",
3 | "version": "1.0.0",
4 | "private": true,
5 | "description": "Demo for @s-ui/react-primitive-typography",
6 | "dependencies": {
7 | "@s-ui/react-primitive-polymorphic-element": "1",
8 | "lodash.merge": "4.6.2"
9 | },
10 | "devDependencies": {
11 | "lorem-ipsum": "2.0.4"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/components/primitive/typography/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 | src
4 | test
5 | node_modules
6 | CHANGELOG.md
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | # 1.1.0 (2025-01-30)
4 |
5 |
6 | ### Features
7 |
8 | * add new component ([68c043a](https://github.com/SUI-Components/sui-components/commit/68c043a2ca6804730e1b5462e1152750b72c8653))
9 | * lock file ([4ff67fc](https://github.com/SUI-Components/sui-components/commit/4ff67fc70a9fcc6acd442ef0a5b62f84574dfce1))
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/demo/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/react-atom-icon/lib/index.scss';
2 |
3 | @import '../src/index';
4 |
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@s-ui/react-primitive-visually-hidden-demo",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "private": true,
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "MIT",
13 | "dependencies": {
14 | "@s-ui/react-atom-icon": "1"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/demo/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_DEMO = `DemoVisuallyHidden`
2 | export const CLASS_SECTION = `${BASE_CLASS_DEMO}-section`
3 |
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/src/index.scss:
--------------------------------------------------------------------------------
1 | @import '~@s-ui/theme/lib/index';
2 |
3 | @import './styles/settings.scss';
4 | @import './styles/index.scss';
5 |
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/src/settings.js:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS = 'sui-PrimitiveVisuallyHidden'
2 |
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | $base-class: '.sui-PrimitiveVisuallyHidden';
2 |
3 | #{$base-class} {
4 | position: absolute;
5 | border: 0;
6 | width: 0;
7 | height: 1px;
8 | padding: 0;
9 | margin: -1px;
10 | overflow: hidden;
11 | clip: rect(0 0 0 0);
12 | white-space: nowrap;
13 | word-wrap: normal;
14 | }
15 |
--------------------------------------------------------------------------------
/components/primitive/visuallyHidden/src/styles/settings.scss:
--------------------------------------------------------------------------------
1 | // add here the style tokens
2 |
--------------------------------------------------------------------------------
/components/specie/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SUI-Components/sui-components/c1a094b120632a3f22f91bfc09e6a7ff215203ce/components/specie/.gitkeep
--------------------------------------------------------------------------------
/contributor-docs/README.md:
--------------------------------------------------------------------------------
1 | # Contributor Documents
2 |
3 | - [Our agreements]()
4 | - [Definition of Ready (DoR)]()
5 | - [Definition of Done (DoD)]()
6 | - [Accessibility Standards]()
7 |
--------------------------------------------------------------------------------
/scripts/replace-npm-ignore.js:
--------------------------------------------------------------------------------
1 | const {writeFileSync} = require('fs-extra')
2 | const path = require('path')
3 | const glob = require('glob')
4 |
5 | const content = `assets
6 | demo
7 | src
8 | test
9 | CHANGELOG.md`
10 |
11 | glob('components/*/*/package.json', (_, files) => {
12 | files.forEach(file => {
13 | const ignoreFileName = file.replace('/package.json', '/.npmignore')
14 | const fullPath = path.join(process.cwd(), ignoreFileName)
15 | writeFileSync(fullPath, content)
16 | })
17 | })
18 |
--------------------------------------------------------------------------------
/themes/_common.scss:
--------------------------------------------------------------------------------
1 | // Show some details about theme
2 | .sui-StudioPreview:before {
3 | background: rgba(#000, 0.75);
4 | bottom: 10px;
5 | content: 'THEME: #{$ff-sans-serif} @ #{$fz-base}';
6 | color: #fff;
7 | font-family: 'Lucida Console', Monaco, monospace;
8 | padding: 0.25em 0.5em;
9 | position: fixed;
10 | }
11 |
12 | .sui-StudioTable {
13 | td,
14 | th {
15 | vertical-align: baseline;
16 | padding: 8px;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/themes/adevinta.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | //
3 |
4 | // Inherit from original theme
5 | @import '~@s-ui/theme/lib/index';
6 | @import '~@adv-ui/adv-theme/lib/index';
7 |
8 | // Common css for sui-studio
9 | @import './common';
10 |
11 | // Load font
12 | @import url('https://fonts.googleapis.com/css?family=Roboto:#{$fw-light},#{$fw-regular},#{$fw-regular}i,#{$fw-semi-bold},#{$fw-bold},#{$fw-bold}i');
13 |
--------------------------------------------------------------------------------
/themes/carfactory.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | @import '~@s-ui/theme/lib/settings';
3 |
4 | // Inherit from original theme
5 | @import '~@s-ui/theme/lib/settings-compat-v7/index';
6 | @import '~@s-ui/theme/lib/index';
7 | @import '~@adv-ui/cf-theme/lib/index';
8 |
9 | // Common css for sui-studio
10 | @import './common';
11 |
12 | // Load font
13 | //
14 |
--------------------------------------------------------------------------------
/themes/epreselec.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | //
3 |
4 | // Inherit from original theme
5 | @import '~@s-ui/theme/lib/settings';
6 | @import '~@adv-ui/ep-theme/lib/index';
7 |
8 | // Common css for sui-studio
9 | @import './common';
10 |
11 | // Load font
12 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:#{$fw-light},#{$fw-regular},#{$fw-regular}i,#{$fw-semi-bold},#{$fw-bold},#{$fw-bold}i');
13 |
--------------------------------------------------------------------------------
/themes/fotocasa.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | //
3 |
4 | // Inherit from original theme
5 | @import '~@s-ui/theme/lib/index';
6 | @import '~@adv-ui/fc-theme/lib/index';
7 |
8 | // Common css for sui-studio
9 | @import './common';
10 |
11 | // Load font
12 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:#{$fw-light},#{$fw-regular},#{$fw-regular}i,#{$fw-semi-bold},#{$fw-bold},#{$fw-bold}i');
13 |
--------------------------------------------------------------------------------
/themes/habitaclia-v2.scss:
--------------------------------------------------------------------------------
1 | // Inherit from original theme
2 | @import '~@s-ui/theme/lib/index';
3 | @import '~@adv-ui/hb-theme-v2/lib/index';
4 |
5 | // Common css for sui-studio
6 | @import './common';
7 |
8 | // Load font
9 | //
10 |
--------------------------------------------------------------------------------
/themes/habitaclia.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | //
3 |
4 | // Inherit from original theme
5 | @import '~@s-ui/theme/lib/index';
6 | @import '~@adv-ui/hab-theme/lib/index';
7 |
8 | // Common css for sui-studio
9 | @import './common';
10 |
11 | // Load font
12 | //
13 |
--------------------------------------------------------------------------------
/themes/infojobs.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | $ff-sans-serif: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji,
3 | Segoe UI Emoji;
4 | $fz-base: 16px;
5 |
6 | // Inherit from original theme
7 | @import '~@s-ui/theme/lib/settings';
8 | @import '~@adv-ui/ij-theme/lib/index';
9 | @import '~@adv-ui/ij-theme/lib/normalize';
10 |
11 | // Common css for sui-studio
12 | @import './common';
13 |
--------------------------------------------------------------------------------
/themes/milanuncios.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | //
3 |
4 | // Inherit from original theme
5 | @import '~@s-ui/theme/lib/index';
6 | @import '~@adv-ui/ma-theme/lib/index';
7 |
8 | // Common css for sui-studio
9 | @import './common';
10 |
11 | // Load font
12 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:#{$fw-light},#{$fw-regular},#{$fw-regular}i,#{$fw-semi-bold},#{$fw-bold},#{$fw-bold}i');
13 |
--------------------------------------------------------------------------------
/themes/motor.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | @import '~@s-ui/theme/lib/settings';
3 |
4 | // Inherit from original theme
5 | @import '~@s-ui/theme/lib/utils';
6 | @import '~@adv-ui/mt-theme/lib/motor';
7 |
8 | // Common css for sui-studio
9 | @import './common';
10 |
11 | // Load font
12 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:#{$fw-light},#{$fw-regular},#{$fw-regular}i,#{$fw-semi-bold},#{$fw-bold},#{$fw-bold}i');
13 |
--------------------------------------------------------------------------------
/themes/sui.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | $ff-sans-serif: 'Open Sans', Helvetica, sans-serif !default;
3 | $fz-base: 14px !default;
4 |
5 | // Inherit from original theme
6 | @import '~@s-ui/theme/lib/index';
7 |
8 | // Common css for sui-studio
9 | @import './common';
10 |
11 | // Load font
12 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:#{$fw-light},#{$fw-regular},#{$fw-regular}i,#{$fw-semi-bold},#{$fw-bold},#{$fw-bold}i');
13 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@s-ui/bundler/tsconfig.json",
3 | "compilerOptions": {
4 | "rootDir": "./"
5 | },
6 | "include": ["src", "domain", "components", "utils"]
7 | }
--------------------------------------------------------------------------------
/utils/sui-component-dependencies/README.md:
--------------------------------------------------------------------------------
1 | # sui-common-dependencies
2 | > A set of dependencies of all SUI components.
3 |
4 | It provides:
5 | * Unified dependencies versions accross components
6 | * Minified boilerplate
7 |
8 | ## Installation
9 |
10 | ```sh
11 | $ npm install @s-ui/component-dependencies --save-dev
12 | ```
13 |
--------------------------------------------------------------------------------
/utils/sui-theme/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | npm-debug.log
3 | src
4 | .editorconfig
5 | .gitignore
6 | .sass-lint.yml
7 | .scss-lint.yml
8 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/_default.scss:
--------------------------------------------------------------------------------
1 | @mixin p {
2 | margin: 0 0 $m-v;
3 | }
4 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/classes.scss:
--------------------------------------------------------------------------------
1 | //Classes
2 | @import './classes/index.scss';
3 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/classes/_margins.scss:
--------------------------------------------------------------------------------
1 | @import './../utils/spacing';
2 |
3 | $m-sides: ('', 'top', 'right', 'bottom', 'left') !default;
4 |
5 | $m-sizes: (
6 | giant: $m-giant,
7 | xxxl: $m-xxxl,
8 | xxl: $m-xxl,
9 | xl: $m-xl,
10 | l: $m-l,
11 | m: $m-m,
12 | s: $m-s,
13 | xs: $m-xs
14 | ) !default;
15 |
16 | @each $side in $m-sides {
17 | @include create-space('margin', $side, $m-sizes);
18 | }
19 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/classes/_paddings.scss:
--------------------------------------------------------------------------------
1 | @import './../utils/spacing';
2 |
3 | $p-sides: ('', 'top', 'right', 'bottom', 'left') !default;
4 |
5 | $p-sizes: (
6 | giant: $p-giant,
7 | xxxl: $p-xxxl,
8 | xxl: $p-xxl,
9 | xl: $p-xl,
10 | l: $p-l,
11 | m: $p-m,
12 | s: $p-s,
13 | xs: $p-xs
14 | ) !default;
15 |
16 | @each $side in $p-sides {
17 | @include create-space('padding', $side, $p-sizes);
18 | }
19 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/classes/index.scss:
--------------------------------------------------------------------------------
1 | @import './margins';
2 | @import './paddings';
3 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/components/_icon.scss:
--------------------------------------------------------------------------------
1 | // Icon sizes
2 |
3 | @mixin sui-icon--small {
4 | height: $sz-icon-s;
5 | width: $sz-icon-s;
6 | }
7 |
8 | @mixin sui-icon--medium {
9 | height: 20px;
10 | width: 20px;
11 | }
12 |
13 | @mixin sui-icon--large {
14 | height: $sz-icon-m;
15 | width: $sz-icon-m;
16 | }
17 |
18 | @mixin sui-icon--xlarge {
19 | height: $sz-icon-xxl;
20 | width: $sz-icon-xxl;
21 | }
22 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/components/atom/input/index.scss:
--------------------------------------------------------------------------------
1 | @import './settings';
2 | @import './placeholders';
3 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/components/thumbnail/_basic.scss:
--------------------------------------------------------------------------------
1 | $jc-thumbnail-basic-image: flex-start !default;
2 | $ar-thumbnail-basic-image: auto !default;
3 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/layout/_breakpoints.scss:
--------------------------------------------------------------------------------
1 | $breakpoints: (
2 | xxs: 0,
3 | xs: 480px,
4 | s: 600px,
5 | m: 840px,
6 | l: 960px,
7 | xl: 1280px,
8 | xxl: 1440px
9 | ) !default;
10 |
11 | $breakpoint-names: map-keys($breakpoints) !default;
12 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/settings-compat-v7/_animation.scss:
--------------------------------------------------------------------------------
1 | // --- Animation --- //
2 |
3 | // Transitions
4 | $trsdu-base: 0.3s !default;
5 | $trsdu-slow: $trsdu-base * 2 !default;
6 | $trsdu-fast: $trsdu-base * 0.5 !default;
7 | $trs-base: $trsdu-base ease !default;
8 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/settings-compat-v7/_box-style.scss:
--------------------------------------------------------------------------------
1 | // --- Box Style --- //
2 |
3 | // Border radius
4 | $bdrs-none: 0 !default;
5 | $bdrs-small: ceil(4px * 0.5) !default;
6 |
7 | // Box shadows
8 | $bxsh-spread: 3px !default;
9 | $bxsh-base: 0 1px $bxsh-spread rgba($c-black, 0.15) !default;
10 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/settings-compat-v7/_color.scss:
--------------------------------------------------------------------------------
1 | // --- Colors --- //
2 | // This is a layer to maintain compatiblity with version 7-
3 |
4 | // Colors non-existing in the new color palette
5 | $c-highlighted: #f2cd96 !default; // seem not used
6 | $c-featured: #ffe613 !default; // used as category tag
7 | $c-white: #ffffff !default; // not semantic
8 | $c-black: #000000 !default; // not semantic
9 |
10 | // Colors renamed in the new color palette
11 | $c-warning: #f5a623 !default; // This color corresponds to $c-alert
12 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/settings/_layers.scss:
--------------------------------------------------------------------------------
1 | // --- Layers --- //
2 |
3 | // z-index
4 | $z-spinner: 1500 !default;
5 | $z-cmp: 1400 !default;
6 | $z-banner: 1300 !default;
7 | $z-notifications: 1200 !default;
8 | $z-modal: 1100 !default;
9 | $z-sidebar: 1000 !default;
10 | $z-tooltips: 900 !default;
11 | $z-navigation: 800 !default;
12 | $z-dropdown-menu: 1 !default;
13 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/settings/_opacity.scss:
--------------------------------------------------------------------------------
1 | // --- Opacity --- //
2 | //
3 | // Alpha value for rgba
4 |
5 | $c-opacity: (15, 25, 50, 75, 100) !default;
6 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/utils.scss:
--------------------------------------------------------------------------------
1 | // Utils
2 | @import './utils/breakpoints';
3 | @import './utils/colors';
4 | @import './utils/forms';
5 | @import './utils/grid';
6 | @import './utils/image';
7 | @import './utils/list';
8 | @import './utils/opacity';
9 | @import './utils/string';
10 | @import './utils/scrollbars';
11 | @import './utils/text';
12 | @import './utils/url';
13 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/utils/_image.scss:
--------------------------------------------------------------------------------
1 | // Mixin to maintain an elements aspect ratio, even as it scales.
2 | @use 'sass:math';
3 |
4 | @mixin aspect-ratio($width: 16, $height: 9) {
5 | position: relative;
6 |
7 | &::before {
8 | content: '';
9 | display: block;
10 | padding-top: math.div($height, $width) * 100%;
11 | width: 100%;
12 | }
13 |
14 | > * {
15 | bottom: 0;
16 | left: 0;
17 | position: absolute;
18 | right: 0;
19 | top: 0;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/utils/_scrollbars.scss:
--------------------------------------------------------------------------------
1 | @mixin hide-scrollbar {
2 | /* hide scrollbar on Chrome, Safari and Opera */
3 | &::-webkit-scrollbar {
4 | /* to make it work on iOS devices */
5 | background: transparent;
6 | display: none;
7 | height: 0;
8 | width: 0;
9 | }
10 |
11 | /* hide scrollbar on IE, Edge and Firefox */
12 | -ms-overflow-style: none; /* IE and Edge */
13 | scrollbar-width: none; /* Firefox */
14 | }
15 |
--------------------------------------------------------------------------------
/utils/sui-theme/src/utils/_url.scss:
--------------------------------------------------------------------------------
1 | // --- Functions --- //
2 |
3 | // Image URL
4 | @function image-url($image, $url: $url-statics + 'images') {
5 | $url-slash: if(str-index($image, '/'), '', '/');
6 | @return url('#{$url}#{$url-slash}#{$image}');
7 | }
8 |
--------------------------------------------------------------------------------
/utils/sui-tokens/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
--------------------------------------------------------------------------------
/utils/sui-tokens/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | demo
3 |
4 | test
5 | node_modules
6 | CHANGELOG.md
7 |
--------------------------------------------------------------------------------
/utils/sui-tokens/bin/tokens-json.mts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env -S npx tsx
2 |
3 | import {Command} from 'commander'
4 |
5 | import {runJSON} from '../src/build'
6 |
7 | const program = new Command()
8 |
9 | program
10 | .description('building scss tokens file')
11 | .option('-c, --configuration ', 'configuration file route')
12 | .option('-o, --output