UNPKG

@fireng/layout

Version:

Angular directives for responsive layout and visual adjustments using Fireng breakpoints.

1 lines 35.5 kB
{"version":3,"file":"fireng-layout.mjs","sources":["../../../projects/layout/src/lib/atomic-directives/fireng-justify-content.directive.ts","../../../projects/layout/src/lib/atomic-directives/fireng-flex-direction.directive.ts","../../../projects/layout/src/lib/atomic-directives/fireng-flex-wrap.directive.ts","../../../projects/layout/src/lib/atomic-directives/fireng-gap-directive.ts","../../../projects/layout/src/lib/atomic-directives/fireng-align-item.directive.ts","../../../projects/layout/src/lib/atomic-directives/fireng-align-content.directive.ts","../../../projects/layout/src/lib/atomic-directives/fireng-display.directive.ts","../../../projects/layout/src/lib/primary-directive/fireng-style.directive.ts","../../../projects/layout/src/lib/primary-directive/fireng-box.directive.ts","../../../projects/layout/src/public-api.ts","../../../projects/layout/src/fireng-layout.ts"],"sourcesContent":["import { computed, Directive, inject, input } from '@angular/core';\r\nimport { FirengResponsiveMap, FirengScreenService } from '@fireng/core';\r\nimport { FirengJustifyContent } from '../fireng.types';\r\n\r\n@Directive({\r\n selector: '[fireJustifyContent]',\r\n standalone: true,\r\n host: {\r\n '[style.justifyContent]': 'activeJustifyContent()',\r\n },\r\n})\r\nexport class FirengJustifyContentDirective {\r\n /**\r\n * Defines how flex items are distributed along the main axis of their container,\r\n * after any flexible lengths and auto margins have been applied.\r\n * Accepted values for justifyContent are:\r\n * - `flex-start`: Items are packed towards the start of the flex-direction.\r\n * - `flex-end`: Items are packed towards the end of the flex-direction.\r\n * - `center`: Items are centered along the main axis.\r\n * - `space-between`: Items are evenly distributed with the first item at the start\r\n * and the last item at the end.\r\n * - `space-around`: Items are evenly distributed with equal space around them.\r\n * - `space-evenly`: Items are evenly distributed with equal space around them,\r\n * including the space at the ends.\r\n *\r\n * Other accepted values include:\r\n * `start`, `end`, `left`, `right`, `normal`, `stretch`,\r\n * `safe center`, `unsafe center`.\r\n *\r\n * This input also accepts values from `FirengCssOverflowAlignment` (e.g., `safe`, `unsafe`)\r\n * when combined with alignment keywords (like `center`).\r\n *\r\n * Global CSS values are also accepted: `inherit`, `initial`, `unset`, `revert`.\r\n *\r\n * For more details on the justify-content property, refer to the MDN documentation:\r\n * @see [MDN - justify-content](https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content)\r\n *\r\n * Can also be provided as a responsive map for different screen sizes.\r\n * @example\r\n * // Static usage:\r\n * <div fireJustifyContent=\"center\">...</div>\r\n * <div fireJustifyContent=\"space-between\">...</div>\r\n * <div fireJustifyContent=\"safe center\">...</div>\r\n * <div fireJustifyContent=\"unset\">...</div> // Example with a global value\r\n * // Responsive usage:\r\n * <div fireJustifyContent=\"{ xs: 'flex-start', sm: 'center', md: 'space-between', lg: 'inherit' }\">...</div>\r\n * @defaultValue `normal`\r\n */\r\n public justifyContent = input<\r\n FirengJustifyContent | FirengResponsiveMap<FirengJustifyContent>\r\n >('normal', { alias: 'fireJustifyContent' });\r\n\r\n private readonly screenService = inject(FirengScreenService);\r\n\r\n // Compute the active justify content based on the current screen size\r\n private readonly activeJustifyContent = computed(() => {\r\n const justify = this.justifyContent();\r\n if (typeof justify === 'string') {\r\n return justify;\r\n } else {\r\n const resolvedValue = this.screenService.resolveBreakpointValue(\r\n justify,\r\n 'normal' // Default value if no breakpoint matches\r\n );\r\n return resolvedValue();\r\n }\r\n });\r\n}\r\n","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { FirengFlexDirection } from '../fireng.types';\r\nimport { FirengResponsiveMap, FirengScreenService } from '@fireng/core';\r\n\r\n@Directive({\r\n selector: '[fireFlexDirection]',\r\n standalone: true,\r\n host: {\r\n '[style.flexDirection]': 'activeFlexDirection()',\r\n },\r\n})\r\nexport class FirengFlexDirectionDirective {\r\n /**\r\n * Defines the primary axis along which flex items are laid out and the direction\r\n * in which they are placed.\r\n * Accepted values for flexDirection are:\r\n * - `row`: Items are placed in a row, from left to right in LTR context.\r\n * - `column`: Items are placed in a column, from top to bottom.\r\n * - `row-reverse`: Items are placed in a row, from right to left in LTR context.\r\n * - `column-reverse`: Items are placed in a column, from bottom to top.\r\n *\r\n * Global CSS values are also accepted: `inherit`, `initial`, `unset`, `revert`.\r\n *\r\n * For more details on the flex-direction property, refer to the MDN documentation:\r\n * @see [MDN - flex-direction](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction)\r\n *\r\n * Can also be provided as a responsive map for different screen sizes.\r\n * @example\r\n * // Static usage:\r\n * <div fireFlexDirection=\"column\">...</div>\r\n * <div fireFlexDirection=\"unset\">...</div>\r\n * // Responsive usage:\r\n * <div fireFlexDirection=\"{ sm: 'row', md: 'column-reverse', lg: 'inherit' }\">...</div>\r\n * @defaultValue `row`\r\n */\r\n public flexDirection = input<\r\n FirengFlexDirection | FirengResponsiveMap<FirengFlexDirection>\r\n >('row', {\r\n alias: 'fireFlexDirection',\r\n });\r\n\r\n private readonly screenService = inject(FirengScreenService);\r\n\r\n // Compute the active flex direction based on the current screen size\r\n private readonly activeFlexDirection = computed(() => {\r\n const direction = this.flexDirection();\r\n if (typeof direction === 'string') {\r\n return direction;\r\n } else {\r\n const resolvedValue = this.screenService.resolveBreakpointValue(\r\n direction,\r\n 'row' // Default value if no breakpoint matches\r\n );\r\n return resolvedValue();\r\n }\r\n });\r\n}\r\n","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { FirengFlexWrap } from '../fireng.types';\r\nimport { FirengResponsiveMap, FirengScreenService } from '@fireng/core';\r\n\r\n@Directive({\r\n selector: '[fireFlexWrap]',\r\n standalone: true,\r\n host: {\r\n '[style.flexWrap]': 'activeFlexWrap()',\r\n },\r\n})\r\nexport class FirengFlexWrapDirective {\r\n /**\r\n * Defines how flex items are placed in the flex container, allowing them to\r\n * wrap onto multiple lines.\r\n * Accepted values for flexWrap are:\r\n * - `nowrap`: All flex items will be on one line.\r\n * - `wrap`: Flex items will wrap onto multiple lines.\r\n * - `wrap-reverse`: Flex items will wrap onto multiple lines in reverse order.\r\n *\r\n * Global CSS values are also accepted: `inherit`, `initial`, `unset`, `revert`.\r\n *\r\n * For more details on the flex-wrap property, refer to the MDN documentation:\r\n * @see [MDN - flex-wrap](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap)\r\n *\r\n * Can also be provided as a responsive map for different screen sizes.\r\n * @example\r\n * // Static usage:\r\n * <div fireFlexWrap=\"wrap\">...</div>\r\n * <div fireFlexWrap=\"initial\">...</div>\r\n * // Responsive usage:\r\n * <div fireFlexWrap=\"{ xs: 'nowrap', sm: 'wrap', md: 'wrap-reverse', lg: 'unset' }\">...</div>\r\n * @defaultValue `nowrap`\r\n */\r\n public flexWrap = input<FirengFlexWrap | FirengResponsiveMap<FirengFlexWrap>>(\r\n 'nowrap',\r\n { alias: 'fireFlexWrap' }\r\n );\r\n\r\n private readonly screenService = inject(FirengScreenService);\r\n\r\n // Compute the active flex wrap based on the current screen size\r\n private readonly activeFlexWrap = computed(() => {\r\n const wrap = this.flexWrap();\r\n if (typeof wrap === 'string') {\r\n return wrap;\r\n } else {\r\n // Resolve the value based on the current breakpoint\r\n const resolvedValue = this.screenService.resolveBreakpointValue(\r\n wrap,\r\n 'nowrap' // Default value if no breakpoint matches\r\n );\r\n return resolvedValue();\r\n }\r\n });\r\n}\r\n","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { FirengGap } from '../fireng.types';\r\nimport { FirengResponsiveMap, FirengScreenService } from '@fireng/core';\r\n\r\n@Directive({\r\n selector: '[fireGap]',\r\n standalone: true,\r\n host: {\r\n '[style.gap]': 'activeGap()',\r\n },\r\n})\r\nexport class FirengGapDirective {\r\n /**\r\n * Defines the gap (gutters) between rows and columns in flex and grid layouts.\r\n * This is a shorthand for `row-gap` and `column-gap`.\r\n * Accepted values for gap are any valid CSS <length> or <percentage> value,\r\n * which can be a single value (for both row and column gap) or two values\r\n * (first for row-gap, second for column-gap).\r\n *\r\n * Global CSS values are also accepted: `inherit`, `initial`, `unset`, `revert`.\r\n *\r\n * For more details on the gap property, refer to the MDN documentation:\r\n * @see [MDN - gap](https://developer.mozilla.org/en-US/docs/Web/CSS/gap)\r\n *\r\n * Can also be provided as a responsive map for different screen sizes.\r\n * @example\r\n * // Static usage:\r\n * <div fireGap=\"20px\">...</div>\r\n * <div fireGap=\"1em 0.5em\">...</div>\r\n * <div fireGap=\"calc(10% + 20px)\">...</div>\r\n * <div fireGap=\"unset\">...</div> // Example with a global value\r\n * // Responsive usage:\r\n * <div fireGap=\"{ xs: '8px', sm: '1em 2em', md: '3vmin 2vmax', lg: 'inherit' }\">...</div>\r\n * @defaultValue `normal`\r\n */\r\n public gap = input<FirengGap | FirengResponsiveMap<FirengGap>>('normal', {\r\n alias: 'fireGap',\r\n });\r\n\r\n private readonly screenService = inject(FirengScreenService);\r\n\r\n // Compute the active gap based on the current screen size\r\n private readonly activeGap = computed(() => {\r\n const gap = this.gap();\r\n if (typeof gap === 'string') {\r\n return gap;\r\n } else {\r\n // Resolve the value based on the current breakpoint\r\n const resolvedValue = this.screenService.resolveBreakpointValue(\r\n gap,\r\n '0px' // Default value if no breakpoint matches\r\n );\r\n return resolvedValue();\r\n }\r\n });\r\n}\r\n","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { FirengAlignItems } from '../fireng.types';\r\nimport { FirengResponsiveMap, FirengScreenService } from '@fireng/core';\r\n\r\n@Directive({\r\n selector: '[fireAlignItem]',\r\n standalone: true,\r\n host: {\r\n '[style.alignItems]': 'activeAlignItem()',\r\n },\r\n})\r\nexport class FirengAlignItemDirective {\r\n /**\r\n * Defines how flex items are aligned along the cross axis of their container\r\n * (perpendicular to the main axis).\r\n * Accepted values for alignItems are:\r\n * - `flex-start`: Items are aligned to the start of the cross axis.\r\n * - `flex-end`: Items are aligned to the end of the cross axis.\r\n * - `center`: Items are centered along the cross axis.\r\n * - `baseline`: Items are aligned such that their baselines align.\r\n * - `stretch`: Items stretch to fill the container (this is the default behavior).\r\n *\r\n * Other accepted values include: `normal`, `start`, `end`, `self-start`, `self-end`,\r\n * `anchor-center`, `first baseline`, `last baseline`, `safe center`, `unsafe center`.\r\n *\r\n * Global CSS values are also accepted: `inherit`, `initial`, `unset`, `revert`.\r\n *\r\n * For more details on align-items properties, refer to the MDN documentation:\r\n * @see [MDN - align-items](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items)\r\n *\r\n * Can also be provided as a responsive map for different screen sizes.\r\n * @example\r\n * // Static usage:\r\n * <div fireAlignItems=\"center\">...</div>\r\n * <div fireAlignItems=\"baseline\">...</div>\r\n * <div fireAlignItems=\"unset\">...</div>\r\n * // Responsive usage:\r\n * <div fireAlignItems=\"{ xs: 'flex-start', sm: 'center', md: 'stretch', lg: 'inherit' }\">...</div>\r\n * @defaultValue `normal`\r\n */\r\n public alignItems = input<\r\n FirengAlignItems | FirengResponsiveMap<FirengAlignItems>\r\n >('normal', {\r\n alias: 'fireAlignItems',\r\n });\r\n\r\n private screenService = inject(FirengScreenService);\r\n\r\n // Compute the active align items based on the current screen size\r\n private readonly activeAlignItem = computed(() => {\r\n const align = this.alignItems();\r\n\r\n if (typeof align === 'string') {\r\n return align;\r\n } else {\r\n const resolvedValue = this.screenService.resolveBreakpointValue(\r\n align,\r\n 'normal' // Default value if no breakpoint matches\r\n );\r\n\r\n return resolvedValue();\r\n }\r\n });\r\n}\r\n","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { FirengResponsiveMap, FirengScreenService } from '@fireng/core';\r\nimport { FirengAlignContent } from '../fireng.types';\r\n\r\n@Directive({\r\n selector: '[fireAlignContent]',\r\n standalone: true,\r\n host: {\r\n '[style.alignContent]': 'activeAlignContent()',\r\n },\r\n})\r\nexport class FirengAlignContentDirective {\r\n /**\r\n * Defines how lines of flex items are distributed and aligned within a flex container\r\n * when there is extra space in the cross axis and the container has multiple lines of items.\r\n * Accepted values for alignContent are:\r\n * - `stretch`: Lines stretch to take up the remaining space.\r\n * - `flex-start`: Lines are packed towards the start of the cross axis.\r\n * - `flex-end`: Lines are packed towards the end of the cross axis.\r\n * - `center`: Lines are centered along the cross axis.\r\n * - `space-between`: Lines are evenly distributed with the first line at the start\r\n * and the last line at the end.\r\n * - `space-around`: Lines are evenly distributed with equal space around them.\r\n * Note: The space between lines is double the space at the ends.\r\n * - `space-evenly`: Lines are evenly distributed with equal space around them,\r\n * including the space at the ends.\r\n *\r\n * Other accepted values include: `start`, `end`, `baseline`, `first baseline`, `last baseline`.\r\n *\r\n * Other accepted values include: `normal`, `start`, `end`, `self-start`, `self-end`,\r\n * `anchor-center`, `first baseline`, `last baseline`, `safe center`, `unsafe center`.\r\n *\r\n * Global CSS values are also accepted: `inherit`, `initial`, `unset`, `revert`.\r\n *\r\n * For more details on the align-content property, refer to the MDN documentation:\r\n * @see [MDN - align-content](https://developer.mozilla.org/en-US/docs/Web/CSS/align-content)\r\n *\r\n * Can also be provided as a responsive map for different screen sizes.\r\n * @example\r\n * // Static usage:\r\n * <div fireAlignContent=\"space-between\">...</div>\r\n * <div fireAlignContent=\"center\">...</div>\r\n * <div fireAlignContent=\"unset\">...</div>\r\n * // Responsive usage:\r\n * <div fireAlignContent=\"{ xs: 'flex-start', sm: 'stretch', md: 'space-around', lg: 'inherit' }\">...</div>\r\n * @defaultValue `normal`\r\n */\r\n public alignContent = input<\r\n FirengAlignContent | FirengResponsiveMap<FirengAlignContent>\r\n >('normal', {\r\n alias: 'fireAlignContent',\r\n });\r\n\r\n private screenService = inject(FirengScreenService);\r\n\r\n // Compute the active align content based on the current screen size\r\n private readonly activeAlignContent = computed(() => {\r\n const align = this.alignContent();\r\n\r\n if (typeof align === 'string') {\r\n return align;\r\n } else {\r\n const resolvedValue = this.screenService.resolveBreakpointValue(\r\n align,\r\n 'normal' // Default value if no breakpoint matches\r\n );\r\n\r\n return resolvedValue();\r\n }\r\n });\r\n}\r\n","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { FirengDisplay } from '../fireng.types';\r\nimport { FirengResponsiveMap, FirengScreenService } from '@fireng/core';\r\n\r\n@Directive({\r\n selector: '[fireDisplay]',\r\n standalone: true,\r\n host: {\r\n '[style.display]': 'activeDisplay()',\r\n },\r\n})\r\nexport class FirengDisplayDirective {\r\n /**\r\n * Defines the display type of an element, determining its layout behavior.\r\n * Accepted values for display are:\r\n * - `block`: The element generates a block-level box.\r\n * - `inline`: The element generates an inline-level box.\r\n * - `inline-block`: The element generates a block-level box that flows with surrounding content as if it were a single inline box.\r\n * - `flex`: The element generates a block-level flex container.\r\n * - `inline-flex`: The element generates an inline-level flex container.\r\n * - `grid`: The element generates a block-level grid container.\r\n * - `inline-grid`: The element generates an inline-level grid container.\r\n * - `none`: The element and its descendants are hidden, and it takes up no space.\r\n * - `contents`: The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes.\r\n *\r\n * Other accepted values include: `flow-root`, `block flex`, `block flow`, `block flow-root`,\r\n * `block grid`, `inline flex`, `inline flow`, `inline flow-root`, `inline grid`,\r\n * `table`, `table-row`, `list-item`.\r\n *\r\n * Global CSS values are also accepted: `inherit`, `initial`, `unset`, `revert`.\r\n *\r\n * For more details on the display property, refer to the MDN documentation:\r\n * @see [MDN - display](https://developer.mozilla.org/en-US/docs/Web/CSS/display)\r\n *\r\n * Can also be provided as a responsive map for different screen sizes.\r\n * @example\r\n * // Static usage:\r\n * <div fireDisplay=\"flex\">...</div>\r\n * <span fireDisplay=\"inline-block\">...</span>\r\n * <div fireDisplay=\"block flex\">...</div>\r\n * <div fireDisplay=\"unset\">...</div>\r\n * // Responsive usage:\r\n * <div fireDisplay=\"{ xs: 'block', sm: 'flex', md: 'inline-block', lg: 'none' }\">...</div>\r\n * @defaultValue 'inline'\r\n */\r\n public display = input<FirengDisplay | FirengResponsiveMap<FirengDisplay>>(\r\n 'inline',\r\n {\r\n alias: 'fireDisplay',\r\n }\r\n );\r\n\r\n private screenService = inject(FirengScreenService);\r\n\r\n // Compute the active display based on the current screen size\r\n private readonly activeDisplay = computed(() => {\r\n const displayInput = this.display();\r\n\r\n if (typeof displayInput === 'string') {\r\n return displayInput;\r\n } else {\r\n const resolvedValue = this.screenService.resolveBreakpointValue(\r\n displayInput,\r\n 'inline' // Default value if no breakpoint matches\r\n );\r\n\r\n return resolvedValue();\r\n }\r\n });\r\n}\r\n","import { computed, Directive, inject, input } from '@angular/core';\r\nimport { FirengScreenService } from '@fireng/core';\r\nimport { FirengStyle } from '../fireng.types';\r\n\r\n@Directive({\r\n selector: '[fireStyle]',\r\n standalone: true,\r\n host: {\r\n '[style]': 'activeStyle()',\r\n },\r\n})\r\nexport class FirengStyleDirective {\r\n /**\r\n * Applies dynamic and responsive custom CSS styles directly to the host element,\r\n * providing fine-grained control over any valid CSS property.\r\n *\r\n * This input accepts a plain JavaScript object (a map) where:\r\n * - Keys are standard CSS property names in **camelCase** (e.g., `backgroundColor`, `fontSize`, `padding`, `borderLeft`).\r\n *\r\n * Values for these properties can be:\r\n * - A static CSS value string (e.g., `'red'`, `'10px'`, `'flex'`, `'inherit'`).\r\n * - A `FirengResponsiveMap<string>` object for breakpoint-specific styling (e.g., `{ xs: '16px', sm: '24px' }`).\r\n *\r\n * This allows for highly flexible styling, supporting any CSS property that can be set via\r\n * an element's `style` attribute, including global CSS values for individual properties.\r\n *\r\n * @example\r\n * // Applying various custom styles, including a responsive font size:\r\n * <span\r\n * [fireStyle]=\"{\r\n * color: 'white',\r\n * backgroundColor: '#007bff',\r\n * fontSize: { xs: '16px', sm: '24px' }, // Responsive value for fontSize\r\n * padding: '10px 20px',\r\n * borderRadius: '5px'\r\n * }\"\r\n * >\r\n * Responsive Text\r\n * </span>\r\n * @defaultValue `{}`\r\n */\r\n public style = input<FirengStyle>({}, { alias: 'fireStyle' });\r\n\r\n private readonly screenService = inject(FirengScreenService);\r\n\r\n // Compute the active style based on the current screen size\r\n private readonly activeStyle = computed(() => {\r\n const styleInput = this.style();\r\n if (!styleInput || typeof styleInput !== 'object') {\r\n return {};\r\n }\r\n\r\n return Object.fromEntries(\r\n Object.entries(styleInput).reduce<[string, string][]>(\r\n (acc, [prop, val]) => {\r\n if (typeof val === 'string') {\r\n acc.push([prop, val]);\r\n } else {\r\n const resolved =\r\n this.screenService.resolveBreakpointValue<string>(val)();\r\n if (resolved) {\r\n acc.push([prop, resolved]);\r\n }\r\n }\r\n return acc;\r\n },\r\n []\r\n )\r\n );\r\n });\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { FirengJustifyContentDirective } from '../atomic-directives/fireng-justify-content.directive';\r\nimport { FirengFlexDirectionDirective } from '../atomic-directives/fireng-flex-direction.directive';\r\nimport { FirengFlexWrapDirective } from '../atomic-directives/fireng-flex-wrap.directive';\r\nimport { FirengGapDirective } from '../atomic-directives/fireng-gap-directive';\r\nimport { FirengAlignItemDirective } from '../atomic-directives/fireng-align-item.directive';\r\nimport { FirengAlignContentDirective } from '../atomic-directives/fireng-align-content.directive';\r\nimport { FirengDisplayDirective } from '../atomic-directives/fireng-display.directive';\r\nimport { FirengStyleDirective } from './fireng-style.directive';\r\n\r\n@Directive({\r\n selector: '[fireBox]',\r\n standalone: true,\r\n hostDirectives: [\r\n {\r\n directive: FirengStyleDirective,\r\n inputs: ['fireStyle: style'],\r\n },\r\n {\r\n directive: FirengDisplayDirective,\r\n inputs: ['fireDisplay: display'],\r\n },\r\n {\r\n directive: FirengJustifyContentDirective,\r\n inputs: ['fireJustifyContent: justifyContent'],\r\n },\r\n {\r\n directive: FirengFlexDirectionDirective,\r\n inputs: ['fireFlexDirection: flexDirection'],\r\n },\r\n {\r\n directive: FirengFlexWrapDirective,\r\n inputs: ['fireFlexWrap: flexWrap'],\r\n },\r\n {\r\n directive: FirengGapDirective,\r\n inputs: ['fireGap: gap'],\r\n },\r\n {\r\n directive: FirengAlignItemDirective,\r\n inputs: ['fireAlignItems: alignItems'],\r\n },\r\n {\r\n directive: FirengAlignContentDirective,\r\n inputs: ['fireAlignContent: alignContent'],\r\n },\r\n ],\r\n})\r\nexport class FirengBoxDirective {}\r\n","// Primary Directives\r\nexport * from './lib/primary-directive/fireng-box.directive';\r\n\r\n// Atomic Directives\r\nexport * from './lib/atomic-directives/fireng-align-content.directive';\r\nexport * from './lib/atomic-directives/fireng-align-item.directive';\r\nexport * from './lib/atomic-directives/fireng-justify-content.directive';\r\nexport * from './lib/atomic-directives/fireng-flex-direction.directive';\r\nexport * from './lib/atomic-directives/fireng-flex-wrap.directive';\r\nexport * from './lib/atomic-directives/fireng-gap-directive';\r\nexport * from './lib/atomic-directives/fireng-display.directive';\r\nexport * from './lib/primary-directive/fireng-style.directive';\r\n\r\n// Types\r\nexport * from './lib/fireng.types';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FirengStyleDirective","i2.FirengDisplayDirective","i3.FirengJustifyContentDirective","i4.FirengFlexDirectionDirective","i5.FirengFlexWrapDirective","i6.FirengGapDirective","i7.FirengAlignItemDirective","i8.FirengAlignContentDirective"],"mappings":"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"}