UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

507 lines 22.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAnimationStyles = exports.getStyles = exports.getPseudoStyles = exports.getWordWrapStyles = exports.getPointerStyles = exports.getTypographyStyles = exports.getGenericTypographyStyles = exports.getBoxShadowStyles = exports.getPositionStyles = exports.getPaddingStyles = exports.getMeasuresStyles = exports.getMarginStyles = exports.getDisplayStyles = exports.getBorderStyles = exports.getBackgroundStyles = exports.getScrollStyles = void 0; const styled_components_1 = require("styled-components"); /** * Get scroll styles. * @param {ScrollTypes} prop - scroll styles */ const getScrollStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { scrollbar_width, scrollbar_color, overflow_block, overflow_inline, overflow_x, overflow_y, overflow, overflow_clip_margin, scrollbar_gutter, scroll_behavior, scroll_margin, scroll_padding, scroll_snap_align, scroll_snap_stop, scroll_snap_type, webkit_scrollbar, scroll_container, scrollbar_aria_role, } = prop; return (0, styled_components_1.css) ` ${scrollbar_width && `scrollbar-width: ${scrollbar_width};`} ${scrollbar_color && `scrollbar-color: ${scrollbar_color};`} ${overflow_block && `overflow-block: ${overflow_block};`} ${overflow_inline && `overflow-inline: ${overflow_inline};`} ${overflow_x && `overflow-x: ${overflow_x};`} ${overflow_y && `overflow-y: ${overflow_y};`} ${overflow && `overflow: ${overflow};`} ${overflow_clip_margin && `overflow-clip-margin: ${overflow_clip_margin};`} ${scrollbar_gutter && `scrollbar-gutter: ${scrollbar_gutter};`} ${scroll_behavior && `scroll-behavior: ${scroll_behavior};`} ${scroll_margin && `scroll-margin: ${scroll_margin};`} ${scroll_padding && `scroll-padding: ${scroll_padding};`} ${scroll_snap_align && `scroll-snap-align: ${scroll_snap_align};`} ${scroll_snap_stop && `scroll-snap-stop: ${scroll_snap_stop};`} ${scroll_snap_type && `scroll-snap-type: ${scroll_snap_type};`} ${webkit_scrollbar && `::-webkit-scrollbar: ${webkit_scrollbar};`} ${scroll_container && `scroll-container: ${scroll_container};`} ${scrollbar_aria_role && `scrollbar-aria-role: ${scrollbar_aria_role};`} `; }; exports.getScrollStyles = getScrollStyles; /** * Returns the background styles. * @param {BackgroundTypes} prop - The background properties. * @returns {string} - The background styles. * @category styles * @example * getBackgroundStyles({ background: '10px' }); * // Returns: background: 10px; */ const getBackgroundStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { background, background_color, background_image, background_position, background_repeat, background_size, opacity, accent_color, } = prop; return (0, styled_components_1.css) ` ${background && `background: ${background};`} ${background_color && `background-color: ${background_color};`} ${background_image && `background-image: ${background_image};`} ${background_position && `background-position: ${background_position};`} ${background_repeat && `background-repeat: ${background_repeat};`} ${background_size && `background-size: ${background_size};`} ${opacity && `opacity: ${opacity};`} ${accent_color && `accent-color: ${accent_color};`} `; }; exports.getBackgroundStyles = getBackgroundStyles; /** * Get border styles. * @param {BorderTypes} prop - border styles * @category styles * @example * const Component = styled.div<BorderTypes>` * ${getBorderStyles} * `; * @returns {string} border styles * , */ const getBorderStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { border, border_top, border_right, border_bottom, border_left, border_radius, border_width, border_left_width, border_right_width, border_top_width, border_bottom_width, border_color, border_left_color, border_right_color, border_top_color, border_bottom_color, border_top_left_radius, border_top_right_radius, border_bottom_left_radius, border_bottom_right_radius, border_style, border_left_style, border_top_style, border_right_style, border_bottom_style, outline, outline_style, outline_color, outline_width, outline_offset, } = prop; return (0, styled_components_1.css) ` ${border && `border: ${border};`} ${border_top && `border-top: ${border_top};`} ${border_right && `border-right: ${border_right};`} ${border_bottom && `border-bottom: ${border_bottom};`} ${border_left && `border-left: ${border_left};`} ${border_radius && `border-radius: ${border_radius};`} ${border_width && `border-width: ${border_width};`} ${border_left_width && `border-left-width: ${border_left_width};`} ${border_right_width && `border-right-width: ${border_right_width};`} ${border_top_width && `border-top-width: ${border_top_width};`} ${border_bottom_width && `border-bottom-width: ${border_bottom_width};`} ${border_color && `border-color: ${border_color};`} ${border_left_color && `border-left-color: ${border_left_color};`} ${border_right_color && `border-right-color: ${border_right_color};`} ${border_top_color && `border-top-color: ${border_top_color};`} ${border_bottom_color && `border-bottom-color: ${border_bottom_color};`} ${border_top_left_radius && `border-top-left-radius: ${border_top_left_radius};`} ${border_top_right_radius && `border-top-right-radius: ${border_top_right_radius};`} ${border_bottom_left_radius && `border-bottom-left-radius: ${border_bottom_left_radius};`} ${border_bottom_right_radius && `border-bottom-right-radius: ${border_bottom_right_radius};`} ${border_style && `border-style: ${border_style};`} ${border_left_style && `border-left-style: ${border_left_style};`} ${border_top_style && `border-top-style: ${border_top_style};`} ${border_right_style && `border-right-style: ${border_right_style};`} ${border_bottom_style && `border-bottom-style: ${border_bottom_style};`} ${outline && `outline: ${outline};`} ${outline_style && `outline-style: ${outline_style};`} ${outline_color && `outline-color: ${outline_color};`} ${outline_width && `outline-width: ${outline_width};`} ${outline_offset && `outline-offset: ${outline_offset};`} `; }; exports.getBorderStyles = getBorderStyles; /** * Get display styles. * @param {DisplayTypes} prop - display styles * @category styles * @example * const Component = styled.div<DisplayTypes>` * ${getDisplayStyles} * `; * @returns {string} display styles * , */ const getDisplayStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { display, visibility, overflow, overflow_x, overflow_y, flex, flex_direction, flex_wrap, flex_flow, flex_grow, flex_shrink, flex_basis, justify_content, justify_items, align_items, align_self, align_content, order, flex_order, flex_align_self, flex_justify_self, flex_align_content, flex_align_items, gap, row_gap, column_gap, grid, grid_area, grid_template, grid_template_areas, grid_template_rows, grid_template_columns, grid_row, grid_row_start, grid_row_end, grid_column, grid_column_start, grid_column_end, grid_gap, grid_row_gap, grid_column_gap, grid_auto_flow, grid_auto_rows, grid_auto_columns, } = prop; return (0, styled_components_1.css) ` ${display && `display: ${display};`} ${visibility && `visibility: ${visibility};`} ${overflow && `overflow: ${overflow};`} ${overflow_x && `overflow-x: ${overflow_x};`} ${overflow_y && `overflow-y: ${overflow_y};`} ${flex && `flex: ${flex};`} ${flex_direction && `flex-direction: ${flex_direction};`} ${flex_wrap && `flex-wrap: ${flex_wrap};`} ${flex_flow && `flex-flow: ${flex_flow};`} ${flex_grow && `flex-grow: ${flex_grow};`} ${flex_shrink && `flex-shrink: ${flex_shrink};`} ${flex_basis && `flex-basis: ${flex_basis};`} ${justify_content && `justify-content: ${justify_content};`} ${justify_items && `justify-items: ${justify_items};`} ${align_items && `align-items: ${align_items};`} ${align_self && `align-self: ${align_self};`} ${align_content && `align-content: ${align_content};`} ${order && `order: ${order};`} ${flex_order && `order: ${flex_order};`} ${flex_align_self && `align-self: ${flex_align_self};`} ${flex_justify_self && `justify-self: ${flex_justify_self};`} ${flex_align_content && `align-content: ${flex_align_content};`} ${flex_align_items && `align-items: ${flex_align_items};`} ${gap && `gap: ${gap};`} ${row_gap && `row-gap: ${row_gap};`} ${column_gap && `column-gap: ${column_gap};`} ${grid && `grid: ${grid};`} ${grid_area && `grid-area: ${grid_area};`} ${grid_template && `grid-template: ${grid_template};`} ${grid_template_areas && `grid-template-areas: ${grid_template_areas};`} ${grid_template_rows && `grid-template-rows: ${grid_template_rows};`} ${grid_template_columns && `grid-template-columns: ${grid_template_columns};`} ${grid_row && `grid-row: ${grid_row};`} ${grid_row_start && `grid-row-start: ${grid_row_start};`} ${grid_row_end && `grid-row-end: ${grid_row_end};`} ${grid_column && `grid-column: ${grid_column};`} ${grid_column_start && `grid-column-start: ${grid_column_start};`} ${grid_column_end && `grid-column-end: ${grid_column_end};`} ${grid_gap && `grid-gap: ${grid_gap};`} ${grid_row_gap && `grid-row-gap: ${grid_row_gap};`} ${grid_column_gap && `grid-column-gap: ${grid_column_gap};`} ${grid_auto_flow && `grid-auto-flow: ${grid_auto_flow};`} ${grid_auto_rows && `grid-auto-rows: ${grid_auto_rows};`} ${grid_auto_columns && `grid-auto-columns: ${grid_auto_columns};`} `; }; exports.getDisplayStyles = getDisplayStyles; /** * Get margin styles. * @param {MarginTypes} prop - margin styles * @category styles * @example * const Component = styled.div<MarginTypes>` * ${getMarginStyles} * `; * @returns {string} margin styles * , */ const getMarginStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { margin, margin_left, margin_right, margin_top, margin_bottom } = prop; return (0, styled_components_1.css) ` ${margin && `margin: ${margin};`} ${margin_left && `margin-left: ${margin_left};`} ${margin_right && `margin-right: ${margin_right};`} ${margin_top && `margin-top: ${margin_top};`} ${margin_bottom && `margin-bottom: ${margin_bottom};`} `; }; exports.getMarginStyles = getMarginStyles; /** * Get measures styles. * @param {MeasuresType} prop - measures styles * @category styles * @example * const Component = styled.div<MeasuresType>` * ${getMeasuresStyles} * `; * @returns {string} measures styles * , */ const getMeasuresStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { box_sizing, width, min_width, max_width, height, min_height, max_height } = prop; return (0, styled_components_1.css) ` ${box_sizing && `box-sizing: ${box_sizing};`} ${width && `width: ${width};`} ${min_width && `min-width: ${min_width};`} ${max_width && `max-width: ${max_width};`} ${height && `height: ${height};`} ${min_height && `min-height: ${min_height};`} ${max_height && `max-height: ${max_height};`} `; }; exports.getMeasuresStyles = getMeasuresStyles; /** * Returns the padding styles. * @param {PaddingTypes} prop - The padding properties. * @returns {string} - The padding styles. * @category styles * @example * getPaddingStyles({ padding: '10px' }); * // Returns: padding: 10px; */ const getPaddingStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { padding, padding_left, padding_right, padding_top, padding_bottom } = prop; return (0, styled_components_1.css) ` ${padding && `padding: ${padding};`} ${padding_left && `padding-left: ${padding_left};`} ${padding_right && `padding-right: ${padding_right};`} ${padding_top && `padding-top: ${padding_top};`} ${padding_bottom && `padding-bottom: ${padding_bottom};`} `; }; exports.getPaddingStyles = getPaddingStyles; /** * Get position styles. * @param {PositionTypes} prop - position styles * @category styles * @example * const Component = styled.div<PositionTypes>` * ${getPositionStyles} * `; * @returns {string} position styles * , */ const getPositionStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { position, top, right, bottom, left, float, transform, z_index, transform_style, translate, } = prop; return (0, styled_components_1.css) ` ${position && `position: ${position};`} ${transform_style && `transform-style: ${transform_style};`} ${top && `top: ${top};`} ${right && `right: ${right};`} ${bottom && `bottom: ${bottom};`} ${left && `left: ${left};`} ${float && `float: ${float};`} ${transform && `transform: ${transform};`} ${z_index && `z-index: ${z_index};`} ${translate && `translate: ${translate};`} `; }; exports.getPositionStyles = getPositionStyles; /** * Returns the box shadow styles. * @param {BoxShadowTypes} prop - The box shadow properties. * @returns {string} - The box shadow styles. * @category styles * @example * getBoxShadowStyles({ box_shadow: '10px' }); * // Returns: box-shadow: 10px; * */ const getBoxShadowStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { box_shadow } = prop; return (0, styled_components_1.css) ` ${box_shadow && `box-shadow: ${box_shadow};`} `; }; exports.getBoxShadowStyles = getBoxShadowStyles; const getGenericTypographyStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { font_family, font_size, font_weight, font_style, line_height, letter_spacing, text_align, text_decoration, text_transform, white_space, word_break, word_wrap, text_overflow, text_shadow, text_indent, text_justify, color, overflow, filter, webkit_line_clamp, webkit_box_orient, } = prop; return (0, styled_components_1.css) ` ${font_family && `font-family: ${font_family};`} ${font_size && `font-size: ${font_size};`} ${!!font_weight && `font-weight: ${font_weight};`} ${font_style && `font-style: ${font_style};`} ${line_height && `line-height: ${line_height};`} ${letter_spacing && `letter-spacing: ${letter_spacing};`} ${text_align && `text-align: ${text_align};`} ${text_decoration && `text-decoration: ${text_decoration};`} ${text_transform && `text-transform: ${text_transform};`} ${white_space && `white-space: ${white_space};`} ${word_break && `word-break: ${word_break};`} ${word_wrap && `word-wrap: ${word_wrap};`} ${text_overflow && `text-overflow: ${text_overflow};`} ${text_shadow && `text-shadow: ${text_shadow};`} ${text_indent && `text-indent: ${text_indent};`} ${text_justify && `text-justify: ${text_justify};`} ${color && `color: ${color};`} ${overflow && `overflow: ${overflow};`} ${filter && `filter: ${filter};`} ${webkit_line_clamp && `-webkit-line-clamp: ${webkit_line_clamp};`} ${webkit_box_orient && `-webkit-box-orient: ${webkit_box_orient};`} `; }; exports.getGenericTypographyStyles = getGenericTypographyStyles; /** * Get typography styles. * @param {TypographyTypes} prop - typography styles * @category styles * @example * const Component = styled.div<TypographyTypes>` * ${getTypographyStyles} * `; * @returns {string} typography styles * , */ const getTypographyStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } return (0, styled_components_1.css) ` ${({ theme: { MEDIA_QUERIES: { onlyDesktop, onlyTablet, onlyMobile }, }, }) => (0, styled_components_1.css) ` ${(0, exports.getGenericTypographyStyles)(prop)} ${onlyDesktop} { ${(0, exports.getGenericTypographyStyles)(prop.DESKTOP)} } ${onlyTablet} { ${(0, exports.getGenericTypographyStyles)(prop.TABLET)} } ${onlyMobile} { ${(0, exports.getGenericTypographyStyles)(prop.MOBILE)} } `} `; }; exports.getTypographyStyles = getTypographyStyles; /** * Get pointer styles. * @param {PointerTypes} prop - pointer styles * @category styles * @example * const Component = styled.div<PointerTypes>` * ${getPointerStyles} * `; * @returns {string} pointer styles * , */ const getPointerStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { cursor, pointer_events } = prop; return (0, styled_components_1.css) ` ${cursor && `cursor: ${cursor};`} ${pointer_events && `pointer-events: ${pointer_events};`} `; }; exports.getPointerStyles = getPointerStyles; const getWordWrapStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { word_wrap, word_break, white_space, text_overflow } = prop; return (0, styled_components_1.css) ` ${word_wrap && `word-wrap: ${word_wrap};`} ${word_break && `word-break: ${word_break};`} ${white_space && `white-space: ${white_space};`} ${text_overflow && `text-overflow: ${text_overflow};`} `; }; exports.getWordWrapStyles = getWordWrapStyles; const getGenericStyles = (styles) => { return (0, styled_components_1.css) ` ${(0, exports.getPaddingStyles)(styles)} ${(0, exports.getBorderStyles)(styles)} ${(0, exports.getBoxShadowStyles)(styles)} ${(0, exports.getBackgroundStyles)(styles)} ${(0, exports.getMeasuresStyles)(styles)} ${(0, exports.getDisplayStyles)(styles)} ${(0, exports.getMarginStyles)(styles)} ${(0, exports.getPositionStyles)(styles)} ${(0, exports.getPointerStyles)(styles)} ${(0, exports.getWordWrapStyles)(styles)} ${(0, exports.getAnimationStyles)(styles)} ${(0, exports.getScrollStyles)(styles)} `; }; const getPseudoStyles = (pseudoKey, { content, ...styles }) => { const isAfterOrBefore = pseudoKey.includes('after') || pseudoKey.includes('before'); return (0, styled_components_1.css) ` ${pseudoKey} { ${isAfterOrBefore && content !== undefined && `content: '${content}'`}; ${getGenericStyles(styles)}; ${(0, exports.getTypographyStyles)(styles)}; } `; }; exports.getPseudoStyles = getPseudoStyles; const getPseudoElementOrClassKeys = (styles) => { if (!styles) { return (0, styled_components_1.css) ``; } // pseudo elements const afterKey = '&::after'; const beforeKey = '&::before'; const backdropKey = '&::backdrop'; const passwordRevealButtonKey = '&::-ms-reveal'; const webkitInnerSpinButtonKey = '&::-webkit-inner-spin-button'; const webkitOuterSpinButtonKey = '&::-webkit-outer-spin-button'; const ariaInvalidKey = '&:is([aria-invalid="true"])'; const focusVisibleKey = '&:focus-visible'; // pseudo classes const disabledKey = '&:disabled'; const focusKey = '&:focus'; // others const dataTruncateKey = '&[data-truncate="true"]'; const dataFilledKey = '&[data-filled="true"]'; return (0, styled_components_1.css) ` ${styles.after && (0, exports.getPseudoStyles)(afterKey, styles.after)} ${styles.before && (0, exports.getPseudoStyles)(beforeKey, styles.before)} ${styles.backdrop && (0, exports.getPseudoStyles)(backdropKey, styles.backdrop)} ${styles.focusVisible && (0, exports.getPseudoStyles)(focusVisibleKey, styles.focusVisible)} ${styles.ariaInvalid && (0, exports.getPseudoStyles)(ariaInvalidKey, styles.ariaInvalid)} ${styles.passwordRevealButton && (0, exports.getPseudoStyles)(passwordRevealButtonKey, styles.passwordRevealButton)} ${styles.webkitInnerSpinButton && (0, exports.getPseudoStyles)(webkitInnerSpinButtonKey, styles.webkitInnerSpinButton)} ${styles.webkitOuterSpinButton && (0, exports.getPseudoStyles)(webkitOuterSpinButtonKey, styles.webkitOuterSpinButton)} ${styles.disabled && (0, exports.getPseudoStyles)(disabledKey, styles.disabled)} ${styles.focus && (0, exports.getPseudoStyles)(focusKey, styles.focus)} ${styles.dataTruncate && (0, exports.getPseudoStyles)(dataTruncateKey, styles.dataTruncate)} ${styles.dataFilled && (0, exports.getPseudoStyles)(dataFilledKey, styles.dataFilled)} `; }; const getStyles = (styles) => { return (0, styled_components_1.css) ` ${getGenericStyles(styles)} ${getPseudoElementOrClassKeys(styles)} ${({ theme: { MEDIA_QUERIES: { onlyDesktop, onlyTablet, onlyMobile }, }, }) => (0, styled_components_1.css) ` ${onlyDesktop} { ${getGenericStyles(styles?.DESKTOP)} ${getPseudoElementOrClassKeys(styles?.DESKTOP)} } ${onlyTablet} { ${getGenericStyles(styles?.TABLET)} ${getPseudoElementOrClassKeys(styles?.TABLET)} } ${onlyMobile} { ${getGenericStyles(styles?.MOBILE)} ${getPseudoElementOrClassKeys(styles?.MOBILE)} } `} `; }; exports.getStyles = getStyles; /** * Get animation styles. * @param {AnimationType} prop - animation styles * @category styles * @example * const Component = styled.div<AnimationType>` * ${getAnimationStyles} * `; * @returns {string} animation styles * , */ const getAnimationStyles = (prop) => { if (!prop) { return (0, styled_components_1.css) ``; } const { transition, transition_delay, transition_duration, transition_property, transition_timing_function, } = prop; return (0, styled_components_1.css) ` ${transition && `transition: ${transition};`} ${transition_delay && `transition-delay: ${transition_delay};`} ${transition_duration && `transition-duration: ${transition_duration};`} ${transition_property && `transition-property: ${transition_property};`} ${transition_timing_function && `transition-timing-function: ${transition_timing_function};`} `; }; exports.getAnimationStyles = getAnimationStyles; //# sourceMappingURL=getStyles.js.map