gd-design-library 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +2 -2
  2. package/ai/README.md +210 -16
  3. package/ai/schemas/components/Accordion.d.ts +84 -0
  4. package/ai/schemas/components/Button.d.ts +12 -0
  5. package/ai/schemas/components/ChatContainer.d.ts +0 -8
  6. package/ai/schemas/components/Column.d.ts +5 -5
  7. package/ai/schemas/components/InputFile.d.ts +17 -5
  8. package/ai/schemas/components/Menu.d.ts +37 -0
  9. package/ai/schemas/components/Row.d.ts +6 -6
  10. package/ai/schemas/components/Scroll.d.ts +7 -0
  11. package/ai/schemas/components/Typography.d.ts +0 -21
  12. package/assets/icons/account_circle.d.ts +1 -3
  13. package/assets/icons/account_circle.js +7 -14
  14. package/assets/icons/arrow-down.d.ts +2 -3
  15. package/assets/icons/arrow-down.js +6 -11
  16. package/assets/icons/arrow-forward.d.ts +1 -3
  17. package/assets/icons/arrow-forward.js +6 -13
  18. package/assets/icons/attachment.d.ts +1 -3
  19. package/assets/icons/attachment.js +7 -14
  20. package/assets/icons/check.d.ts +1 -3
  21. package/assets/icons/check.js +5 -11
  22. package/assets/icons/chevron-left.d.ts +1 -3
  23. package/assets/icons/chevron-left.js +7 -14
  24. package/assets/icons/chevron-right.d.ts +1 -3
  25. package/assets/icons/chevron-right.js +6 -13
  26. package/assets/icons/content-copy.d.ts +1 -3
  27. package/assets/icons/content-copy.js +7 -14
  28. package/assets/icons/delete_outlined.d.ts +1 -3
  29. package/assets/icons/delete_outlined.js +5 -12
  30. package/assets/icons/dot.d.ts +1 -3
  31. package/assets/icons/dot.js +5 -11
  32. package/assets/icons/error_outline.d.ts +1 -4
  33. package/assets/icons/error_outline.js +6 -18
  34. package/assets/icons/eye.d.ts +1 -3
  35. package/assets/icons/eye.js +7 -14
  36. package/assets/icons/file-copy.d.ts +1 -3
  37. package/assets/icons/file-copy.js +7 -13
  38. package/assets/icons/filter.d.ts +1 -3
  39. package/assets/icons/filter.js +6 -13
  40. package/assets/icons/folder.d.ts +1 -3
  41. package/assets/icons/folder.js +6 -13
  42. package/assets/icons/folderOpen.d.ts +1 -3
  43. package/assets/icons/folderOpen.js +7 -14
  44. package/assets/icons/home.d.ts +1 -3
  45. package/assets/icons/home.js +6 -13
  46. package/assets/icons/local_shipping.d.ts +1 -3
  47. package/assets/icons/local_shipping.js +4 -11
  48. package/assets/icons/minus.d.ts +1 -3
  49. package/assets/icons/minus.js +7 -13
  50. package/assets/icons/mobile_menu_button.d.ts +1 -3
  51. package/assets/icons/mobile_menu_button.js +7 -14
  52. package/assets/icons/paymentCard.d.ts +1 -3
  53. package/assets/icons/paymentCard.js +6 -13
  54. package/assets/icons/plus.d.ts +1 -3
  55. package/assets/icons/plus.js +5 -11
  56. package/assets/icons/portrait.d.ts +1 -3
  57. package/assets/icons/portrait.js +5 -12
  58. package/assets/icons/processing.d.ts +1 -3
  59. package/assets/icons/processing.js +6 -13
  60. package/assets/icons/ruler.d.ts +1 -3
  61. package/assets/icons/ruler.js +6 -13
  62. package/assets/icons/search.d.ts +1 -3
  63. package/assets/icons/search.js +6 -13
  64. package/assets/icons/shopping_bag.d.ts +1 -3
  65. package/assets/icons/shopping_bag.js +7 -14
  66. package/assets/icons/slash.d.ts +1 -3
  67. package/assets/icons/slash.js +6 -13
  68. package/assets/icons/star.d.ts +1 -3
  69. package/assets/icons/star.js +6 -12
  70. package/assets/icons/starOutlined.d.ts +1 -3
  71. package/assets/icons/starOutlined.js +5 -11
  72. package/assets/icons/toast_error.d.ts +1 -3
  73. package/assets/icons/toast_error.js +9 -15
  74. package/assets/icons/toast_info.d.ts +1 -3
  75. package/assets/icons/toast_info.js +7 -13
  76. package/assets/icons/toast_warning.d.ts +1 -3
  77. package/assets/icons/toast_warning.js +7 -13
  78. package/assets/icons/upload.d.ts +1 -3
  79. package/assets/icons/upload.js +6 -13
  80. package/assets/icons/volume-up.d.ts +1 -3
  81. package/assets/icons/volume-up.js +6 -13
  82. package/assets/icons/wifiTethering.d.ts +1 -3
  83. package/assets/icons/wifiTethering.js +4 -11
  84. package/components/core/Button/Button.js +30 -27
  85. package/components/core/Button/Button.types.d.ts +2 -2
  86. package/components/core/Button/ButtonStyled.js +40 -39
  87. package/components/core/Dropdown/Dropdown.d.ts +1 -1
  88. package/components/core/Dropdown/Dropdown.js +16 -16
  89. package/components/core/Dropdown/Dropdown.types.d.ts +3 -3
  90. package/components/core/Dropdown/DropdownStyled.js +13 -14
  91. package/components/core/Icon/Icon.js +41 -33
  92. package/components/core/Icon/Icon.types.d.ts +2 -1
  93. package/components/core/Icon/constants.d.ts +37 -109
  94. package/components/core/Input/Input.d.ts +1 -1
  95. package/components/core/InputFile/InputFile.d.ts +0 -32
  96. package/components/core/InputFile/InputFile.js +47 -33
  97. package/components/core/InputFile/InputFileStyled.js +24 -22
  98. package/components/core/Loader/Loader.js +19 -17
  99. package/components/core/Loader/Loader.types.d.ts +3 -1
  100. package/components/core/Loader/LoaderStyled.js +34 -30
  101. package/components/core/Menu/Menu.d.ts +2 -2
  102. package/components/core/Menu/Menu.js +113 -93
  103. package/components/core/Menu/Menu.types.d.ts +16 -11
  104. package/components/core/Menu/MenuStyled.d.ts +1 -1
  105. package/components/core/Menu/constants.js +4 -12
  106. package/components/core/Modal/Modal.js +60 -36
  107. package/components/core/Modal/ModalStyled.js +21 -22
  108. package/components/core/Scroll/Scroll.d.ts +6 -0
  109. package/components/core/Scroll/Scroll.js +53 -31
  110. package/components/core/Scroll/Scroll.types.d.ts +5 -0
  111. package/components/core/Scroll/ScrollBar.js +45 -43
  112. package/components/core/Scroll/ScrollStyled.js +46 -42
  113. package/components/core/Scroll/constants.d.ts +2 -0
  114. package/components/core/Scroll/constants.js +6 -4
  115. package/components/core/Select/Select.js +162 -134
  116. package/components/core/Select/Select.types.d.ts +2 -4
  117. package/components/core/Snackbar/Snackbar.js +60 -37
  118. package/components/core/Snackbar/Snackbar.types.d.ts +1 -2
  119. package/components/core/Snackbar/SnackbarManager.js +45 -30
  120. package/components/core/Snackbar/SnackbarStyled.d.ts +5 -5
  121. package/components/core/Snackbar/SnackbarStyled.js +111 -101
  122. package/components/core/Textarea/Textarea.d.ts +4 -0
  123. package/components/core/Tooltip/Tooltip.js +68 -44
  124. package/components/core/Tooltip/TooltipStyled.js +26 -27
  125. package/components/core/Tooltip/utils.js +47 -45
  126. package/components/core/Typography/Typography.js +18 -18
  127. package/components/core/Typography/Typography.types.d.ts +3 -3
  128. package/components/core/Typography/TypographyStyled.js +28 -29
  129. package/components/domainSpecific/Accordion/Accordion.d.ts +1 -1
  130. package/components/domainSpecific/Accordion/Accordion.js +19 -17
  131. package/components/domainSpecific/Accordion/Accordion.types.d.ts +7 -4
  132. package/components/domainSpecific/Accordion/AccordionContent/AccordionContent.d.ts +1 -1
  133. package/components/domainSpecific/Accordion/AccordionContent/AccordionContent.js +13 -12
  134. package/components/domainSpecific/Accordion/AccordionHeader/AccordionHeader.d.ts +1 -1
  135. package/components/domainSpecific/Accordion/AccordionHeader/AccordionHeader.js +15 -14
  136. package/components/domainSpecific/Accordion/AccordionItem/AccordionItem.d.ts +1 -1
  137. package/components/domainSpecific/Accordion/AccordionItem/AccordionItem.js +18 -16
  138. package/components/domainSpecific/Accordion/AccordionStyled.js +44 -35
  139. package/components/domainSpecific/Card/Card.js +31 -27
  140. package/components/domainSpecific/Card/CardTitle/constants.js +4 -4
  141. package/components/domainSpecific/Header/Header.js +4 -4
  142. package/components/domainSpecific/SearchModal/SearchModal.js +0 -1
  143. package/components/domainSpecific/SearchModal/SearchModal.types.d.ts +1 -1
  144. package/components/index.types.d.ts +1 -0
  145. package/components/layout/ChatContainer/ChatContainer.d.ts +1 -1
  146. package/components/layout/ChatContainer/ChatContainer.js +58 -41
  147. package/components/layout/ChatContainer/ChatContainer.types.d.ts +8 -5
  148. package/components/layout/ChatContainer/ChatContainerStyled.d.ts +2 -0
  149. package/components/layout/ChatContainer/ChatContainerStyled.js +105 -84
  150. package/components/layout/Column/Column.types.d.ts +3 -1
  151. package/components/layout/Column/ColumnStyled.js +23 -23
  152. package/components/layout/FlexContainer/FlexContainerStyled.js +7 -8
  153. package/components/layout/Row/Row.d.ts +1 -1
  154. package/components/layout/Row/Row.js +20 -20
  155. package/components/layout/Row/Row.types.d.ts +3 -1
  156. package/components/layout/Row/RowStyled.js +26 -26
  157. package/constants/index.d.ts +0 -1
  158. package/hooks/index.d.ts +1 -0
  159. package/hooks/useLogger/NoOpLogger.d.ts +11 -0
  160. package/hooks/useLogger/NoOpLogger.js +15 -0
  161. package/hooks/useLogger/index.d.ts +2 -0
  162. package/hooks/useLogger/useLogger.d.ts +4 -0
  163. package/hooks/useLogger/useLogger.js +27 -0
  164. package/hooks/useLogger/useLogger.types.d.ts +30 -0
  165. package/hooks/useTheme/NoOpTheme.d.ts +4050 -0
  166. package/hooks/useTheme/NoOpTheme.js +15 -0
  167. package/hooks/useTheme/useTheme.d.ts +3 -4
  168. package/hooks/useTheme/useTheme.js +62 -41
  169. package/hooks/useTheme/useTheme.types.d.ts +3 -2
  170. package/index.d.ts +4 -0
  171. package/index.js +354 -350
  172. package/llms.txt +39 -19
  173. package/package.json +1 -1
  174. package/tokens/accordion.d.ts +9 -3
  175. package/tokens/accordion.js +14 -11
  176. package/tokens/button.d.ts +17 -19
  177. package/tokens/button.js +54 -56
  178. package/tokens/card.d.ts +2 -3
  179. package/tokens/card.js +50 -53
  180. package/tokens/carousel.d.ts +2 -2
  181. package/tokens/carousel.js +8 -9
  182. package/tokens/chat.d.ts +69 -48
  183. package/tokens/chat.js +86 -68
  184. package/tokens/constants.d.ts +0 -1
  185. package/tokens/constants.js +1 -1
  186. package/tokens/defaultTheme.d.ts +199 -112
  187. package/tokens/defaultTheme.js +27 -25
  188. package/tokens/header.d.ts +1 -1
  189. package/tokens/header.js +3 -4
  190. package/tokens/index.d.ts +175 -104
  191. package/tokens/index.js +102 -101
  192. package/tokens/input.d.ts +2 -2
  193. package/tokens/input.js +25 -26
  194. package/tokens/inputfile.d.ts +1 -1
  195. package/tokens/inputfile.js +4 -4
  196. package/tokens/link.d.ts +5 -0
  197. package/tokens/loader.d.ts +3 -0
  198. package/tokens/loader.js +3 -0
  199. package/tokens/menu.d.ts +1 -0
  200. package/tokens/menu.js +1 -0
  201. package/tokens/modal.d.ts +6 -4
  202. package/tokens/modal.js +42 -60
  203. package/tokens/scroll.d.ts +19 -2
  204. package/tokens/scroll.js +23 -7
  205. package/tokens/select.d.ts +9 -7
  206. package/tokens/select.js +30 -29
  207. package/tokens/snackbar.d.ts +36 -20
  208. package/tokens/snackbar.js +92 -93
  209. package/tokens/stepper.d.ts +1 -1
  210. package/tokens/stepper.js +3 -3
  211. package/tokens/tabs.d.ts +1 -1
  212. package/tokens/tabs.js +1 -1
  213. package/tokens/textarea.d.ts +4 -0
  214. package/tokens/tooltip.d.ts +5 -1
  215. package/tokens/tooltip.js +23 -21
  216. package/tokens/typography.js +114 -116
  217. package/tokens/values.d.ts +5 -1
  218. package/tokens/values.js +12 -8
  219. package/tokens/wrapper.d.ts +2 -2
  220. package/tokens/wrapper.js +7 -7
  221. package/tokens/zIndex.d.ts +9 -0
  222. package/tokens/zIndex.js +12 -0
  223. package/types/index.d.ts +0 -1
  224. package/types/styles.d.ts +1 -0
  225. package/utils/helpers.js +14 -15
  226. package/CHANGELOG.md +0 -177
  227. package/constants/positioning.d.ts +0 -9
  228. package/constants/positioning.js +0 -11
  229. package/types/chat.d.ts +0 -5
  230. package/types/chat.js +0 -4
package/llms.txt CHANGED
@@ -39,18 +39,21 @@ Each component has:
39
39
  #### 3. Available Components (47+ total)
40
40
 
41
41
  **Theme & Context:**
42
- - [ThemeProvider](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/providers-themeprovider--docs) - Context provider for theme support and configuration
42
+ - [Dynamic Theme Switching in a Component Library](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-dynamic-theme-switching--docs) - Comprehensive Guide for Implementation, Accessibility, Logging, and Best Practices
43
+ - [GridKit Theme & Design Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-design-tokens-overview--docs) - Comprehensive Guide for Implementation, Accessibility, Logging, and Best Practices
43
44
  - useTheme - Hook for accessing and managing themes programmatically
44
45
 
45
46
  **Layout Components:**
46
47
  - [Box](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/atoms-box--docs) - Foundational layout primitive with flexbox support, focus management, and interaction states. Base component for Card and other containers
47
48
  - [FlexContainer](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/layout-structure-flexcontainer--docs) - Flexible container with CSS flexbox properties and responsive design
48
49
  - [Column](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/layout-structure-column--docs) - Vertical layout container with alignment and spacing controls
50
+ - As prop: Use `as="main"` or `as="section"` for semantic HTML and better accessibility. Example: `<Column as="main" gutter={16}>...</Column>`
49
51
  - [Row](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/layout-structure-row--docs) - Horizontal layout container with flexible item distribution
52
+ - As prop: Use `as="nav"` or `as="header"` for semantic HTML and better accessibility. Example: `<Row as="nav" justify="space-between">...</Row>`
50
53
  - [Wrapper](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-wrapper--docs) - Generic wrapper component for content organization
51
54
  - [Scroll](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-scroll--docs) - Scrollable container with customizable scroll behavior
52
55
  - [Separator](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/atoms-separator--docs) - Visual separator element for content division
53
- - [ChatContainer](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/layout-structure-chatcontainer--docs) - Specialized container for chat interface layouts
56
+ - [ChatContainer](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/layout-structure-chatcontainer--docs) - Specialized layout component for chat interfaces with collapsible sidebar, minified sidebar state, and imperative ref controls
54
57
 
55
58
  **Form Components:**
56
59
  - [Form](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-form--docs) - Semantic form wrapper with validation and event handling
@@ -68,7 +71,7 @@ Each component has:
68
71
 
69
72
  **Feedback & Overlays:**
70
73
  - [InlineNotification](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-inlinenotification--docs) - Inline status messages and alerts
71
- - [Loader](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/atoms-loader--docs) - Loading indicator with multiple animation styles
74
+ - [Loader](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/atoms-loader--docs) - Loading indicator with multiple animation styles (circle, dots), size variants (xs-xl), wrapper variants (inline, section, fullPage), and rounded border support. Note: rounded prop only applies to "dots" animation type, not "circle"
72
75
  - [Skeleton](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/atoms-skeleton--docs) - Content placeholder for loading states
73
76
  - [Snackbar](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-snackbar--docs) - Toast notifications with auto-dismiss
74
77
  - SnackbarManager - Snackbar management system for multiple notifications
@@ -81,16 +84,29 @@ Each component has:
81
84
  - [Tabs](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/organisms-tabs--docs) - Tab navigation component with keyboard support
82
85
  - [Stepper](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/organisms-stepper--docs) - Step-by-step navigation indicator
83
86
  - [List](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-list--docs) - List container component with flexible item rendering
84
- - [Accordion](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/organisms-accordion--docs) - Collapsible content sections with animation
87
+ - [Accordion](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/organisms-accordion--docs) - Collapsible content sections with animation. Built with subcomponents: AccordionItem (wrapper with unique id), AccordionHeader (clickable header with optional expandIcon), AccordionContent (collapsible content). Supports controlled/uncontrolled modes, multiple expand, and custom styling per subcomponent
88
+ - [AccordionItem](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/organisms-accordion-accordionitem--docs) - Individual accordion item wrapper (requires unique id prop). **Supports all Box layout props** including margin, padding, width, height, flex, position, and more for flexible layout control
89
+ - [AccordionHeader](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/organisms-accordion-accordionheader--docs) - Clickable header with optional expandIcon and rich content support
90
+ - [AccordionContent](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/organisms-accordion-accordioncontent--docs) - Collapsible content section with smooth animations
85
91
  - [Link](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-link--docs) - Navigation link component with external link support
86
92
  - [Dropdown](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-dropdown--docs) - Dropdown menu container with positioning
87
93
  - [DropdownItem](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-dropdownitem--docs) - Individual dropdown menu item
88
- - [Menu](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-menu--docs) - Menu component for navigation and actions
94
+ - [Menu](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-menu--docs) - Menu component for navigation and actions with accurate corner positioning, ref API for programmatic control (open, close), closeOnSelect prop for multi-select scenarios, placement prop for explicit positioning, and full Box layout support.
95
+ - Ref API: Use `ref.open(event.target)` and `ref.close(event.target)` for programmatic control. Pass `event.target` as the parameter to identify API-controlled interactions, which helps distinguish programmatic control from user interactions. Access current state via `ref.isOpen`, `ref.selectedValue`. Example: `<Button onClick={(e) => menuRef.current?.open(e.target)}>Open Menu</Button>`.
96
+ - Close on select: Set `closeOnSelect={false}` to keep menu open after selecting items, useful for multiple selections.
97
+ - Placement: Use `placement="top-left"`, `placement="top-right"`, `placement="bottom-left"`, or `placement="bottom-right"` to explicitly set menu position relative to trigger edges. Defaults to `"bottom-right"` if not specified. Placement provides accurate corner positioning aligned to trigger edges.
98
+ - Positioning: Menu uses absolute positioning with viewport-based coordinate calculations that account for scroll position, ensuring accurate placement in Portal-rendered content.
99
+ - Box props: Full Box component props support for flexible layout control - use `margin`, `padding`, `position`, `flex`, `gap`, `width`, `height`, `minWidth`, `minHeight`, `maxWidth`, `maxHeight`, `display`, `overflow`, `zIndex`, and more for precise positioning and spacing. Example: `<Menu padding="16px" marginTop="8px" content={menuItems}>Menu</Menu>` or `<Menu width="200px" maxHeight="300px" overflow="auto" content={menuItems}>Menu</Menu>`.
89
100
 
90
101
  **Display & Content:**
91
102
  - [Typography](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/atoms-typography--docs) - Text component with hierarchical variants and styling
92
103
  - [Button](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-button--docs) - Interactive button with multiple styles and states
93
- - [Icon](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/atoms-icon--docs) - Icon component with 50+ built-in icons and custom support
104
+ - Icon-only usage: when using `isIcon`, pass the icon via `iconStart` and omit `children`. Always provide `ariaLabel`.
105
+ - Interactive states: Built-in hover, active (press), and disabled states with smooth transitions. Use `className` for custom CSS classes (e.g., `className="active"`, `className="hover"`, `className="disabled"`) and `styles` prop for inline styles.
106
+ - State control via className: Control button states using `className` prop with values like `"active"`, `"hover"`, or combine with `disabled` prop for disabled state.
107
+ - Box props: Use Box layout props like `justifyContent="start"` to align button content, and combine with `alignItems`, `gap`, `margin`, `padding`, `width`, `height` for flexible layouts. Button extends Box component props for full layout control.
108
+ - [Icon](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/atoms-icon--docs) - Icon component with 51 built-in icons from IconsList. **CRITICAL: Use ONLY these exact icon names**: cross, success, error, warning, info, dot, check, arrowDown, arrowRight, arrowLeft, arrowForward, keyboardArrowDown, keyboardArrowUp, mobileMenu, home, slash, localShipping, favorite, favoriteOutlined, shoppingBag, paymentCard, accountCircle, portrait, deleteOutlined, minus, plus, edit, search, filter, ruler, processing, eye, attachment, upload, folder, folderOpen, wifiTethering, contentCopy, thumbUp, thumbDown, fileCopy, send, thumbUpFilled, thumbDownFilled, chat, chatBubble, phone, star, starOutlined, errorOutline, volumeUp. Do NOT use: "add" (use plus), "chevronRight" (use arrowRight), "expandMore" (use arrowDown), "close" (use cross), "settings", "infoIcon", or any other invented names
109
+ - Box props: Icon supports full Box component props for flexible layout control. Use `margin`, `padding`, `position`, `flex`, `gap`, and more for precise positioning and spacing. Example: `<Icon name="check" marginRight="12px" />` or `<Icon name="search" position="absolute" top="10px" right="10px" />`
94
110
  - [Image](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/molecules-image--docs) - Image component with optimization and fallback handling
95
111
  - [Card](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/templates-card--docs) - Content container with subcomponents, layout variants, and interactive hover effects. Built on Box with support for withShadowHover
96
112
  - [Avatar](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/organisms-avatar--docs) - User avatar component with fallback and badge support
@@ -142,21 +158,25 @@ const fullPrompt = `${CLAUDE_GRIDKIT_SYSTEM_PROMPT}\n\nTask: Create a dashboard
142
158
  ### Storybook Resources
143
159
 
144
160
  **Instructions & Getting Started:**
145
- - [Introduction](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/introduction--docs) - Overview of the GridKit Design System and component library architecture
146
- - [Installation](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/installation--docs) - Step-by-step guide for integrating the design system into projects
147
- - [Usage Guidelines](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/usage--docs) - Best practices for implementing components and maintaining consistency
148
- - [Contributing](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/contributing--docs) - Guidelines for contributing to the design system and component development
161
+ - [Introduction](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/introduction-welcome--docs) - Overview of the GridKit Design System and component library architecture
162
+ - [Installation](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/introduction-getting-started--docs) - Step-by-step guide for integrating the design system into projects
163
+ - [Theme Tokens Usage](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/introduction-theme-tokens-usage--docs) - Approaches to using theme tokens in your components.
164
+ - [Logging and Debugging](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/introduction-logging-and-debugging--docs) - Guidelines for logging, includes a flexible, non-intrusive logging system that allows you to monitor component behavior, debug issues, and integrate with your existing logging infrastructure.
165
+ - [Usage Guidelines](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/patterns-best-practices-ux-ui-design-patterns-and-best-practices--docs) - Best practices for implementing components and maintaining consistency
166
+ - [Contributing](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/introduction-feedback-contribution--docs) - Guidelines for contributing to the design system and component development
149
167
 
150
168
  **Theme & Tokens:**
151
- - [Theme Overview](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-overview--docs) - Comprehensive guide to the theming system and customization options
152
- - [Color Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-colors--docs) - Complete color palette with semantic naming and usage guidelines
153
- - [Typography Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-typography--docs) - Font scales, weights, and text styling tokens for consistent typography
154
- - [Spacing Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-spacing--docs) - Spacing scale and layout tokens for consistent margins, padding, and gaps
155
- - [Breakpoint Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-breakpoints--docs) - Responsive breakpoint definitions for mobile-first design
156
- - [Shadow Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-shadows--docs) - Elevation and shadow tokens for depth and visual hierarchy
157
- - [Border Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-borders--docs) - Border radius, width, and style tokens for consistent component styling
158
- - [Animation Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-animations--docs) - Motion and transition tokens for smooth user interactions
159
- - [Theme Customization](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-customization--docs) - Guide for creating custom themes and extending the design system
169
+ - [Theme Overview](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-theme--docs) - Comprehensive guide to the theming system and customization options
170
+ - [Color Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-colors--docs) - Complete color palette with semantic naming and usage guidelines
171
+ - [Typography Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-fonts--docs) - Font scales, weights, and text styling tokens for consistent typography
172
+ - [Spacing Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-spacing--docs) - Spacing scale and layout tokens for consistent margins, padding, and gaps
173
+ - [Radius Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-radius--docs) - Border radius tokens for consistent component styling
174
+ - [Breakpoint Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-breakpoints--docs) - Responsive breakpoint definitions for mobile-first design
175
+ - [Shadow Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-shadows--docs) - Elevation and shadow tokens for depth and visual hierarchy
176
+ - [Animation Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-animations--docs) - Motion and transition tokens for smooth user interactions
177
+ - [Values Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-values--docs) - Miscellaneous value tokens for various UI properties
178
+ - [zIndex Tokens](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/theme-tokens-zindex--docs) - zIndex tokens for controlling visual stacking order
179
+ - [Theme Customization](https://storybook.cto-rnd-system-design.griddynamics.net/?path=/docs/introduction-getting-started--docs) - Guide for creating custom themes and extending the design system
160
180
 
161
181
  ### Support
162
182
  - Component schemas provide comprehensive prop documentation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gd-design-library",
3
- "version": "1.0.2",
3
+ "version": "1.2.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -1,16 +1,16 @@
1
- import { TextAlign } from '../types';
2
1
  export declare const accordion: {
3
2
  header: {
4
3
  default: {
5
4
  width: string;
6
- textAlign: TextAlign;
5
+ textAlign: string;
7
6
  cursor: string;
8
- border: number;
7
+ border: string;
9
8
  backgroundColor: (theme: Record<symbol, unknown>) => string;
10
9
  paddingTop: (theme: Record<symbol, unknown>) => string;
11
10
  paddingBottom: (theme: Record<symbol, unknown>) => string;
12
11
  display: string;
13
12
  alignItems: string;
13
+ justifyContent: string;
14
14
  ':first-of-type': {
15
15
  flex: string;
16
16
  };
@@ -48,6 +48,12 @@ export declare const accordion: {
48
48
  };
49
49
  };
50
50
  };
51
+ itemNoSeparator: {
52
+ default: {
53
+ position: string;
54
+ padding: (theme: Record<symbol, unknown>) => string;
55
+ };
56
+ };
51
57
  icon: {
52
58
  default: {
53
59
  transition: (theme: Record<symbol, unknown>) => string;
@@ -1,20 +1,17 @@
1
- import { flexAlignItems as o, display as t } from "./display.js";
2
- import { cursors as a } from "./cursors.js";
3
- import { borders as i } from "./borders.js";
4
1
  import { get as n } from "../utils/helpers.js";
5
- import { TextAlign as r } from "../types/typography.js";
6
- const g = {
2
+ const o = {
7
3
  header: {
8
4
  default: {
9
5
  width: "100%",
10
- textAlign: r.Left,
11
- cursor: a.pointer,
12
- border: i.none,
6
+ textAlign: "left",
7
+ cursor: "pointer",
8
+ border: "0",
13
9
  backgroundColor: (e) => n(e, "colors.transparent", "theme.colors.transparent"),
14
10
  paddingTop: (e) => n(e, "spacing.md", "theme.spacing.md"),
15
11
  paddingBottom: (e) => n(e, "spacing.md", "theme.spacing.md"),
16
- display: t.flex,
17
- alignItems: o.center,
12
+ display: "flex",
13
+ alignItems: "center",
14
+ justifyContent: "space-between",
18
15
  ":first-of-type": {
19
16
  flex: "1"
20
17
  }
@@ -52,6 +49,12 @@ const g = {
52
49
  }
53
50
  }
54
51
  },
52
+ itemNoSeparator: {
53
+ default: {
54
+ position: "relative",
55
+ padding: (e) => n(e, "spacing.none", "theme.spacing.none")
56
+ }
57
+ },
55
58
  icon: {
56
59
  default: {
57
60
  transition: (e) => n(e, "values.transitions.accordion.icon", "theme.values.transitions.accordion.icon")
@@ -65,5 +68,5 @@ const g = {
65
68
  }
66
69
  };
67
70
  export {
68
- g as accordion
71
+ o as accordion
69
72
  };
@@ -59,43 +59,41 @@ export declare const button: {
59
59
  primary: {
60
60
  color: (theme: Record<symbol, unknown>) => string;
61
61
  background: (theme: Record<symbol, unknown>) => string;
62
- '&:hover': {
62
+ '&:hover, &.hover': {
63
63
  background: (theme: Record<symbol, unknown>) => string;
64
64
  };
65
- '&:active': {
65
+ '&:active, &.active': {
66
66
  background: (theme: Record<symbol, unknown>) => string;
67
67
  };
68
- '&:disabled': {
68
+ '&:disabled, &.disabled': {
69
69
  background: (theme: Record<symbol, unknown>) => string;
70
70
  };
71
71
  };
72
72
  secondary: {
73
73
  color: (theme: Record<symbol, unknown>) => string;
74
74
  background: (theme: Record<symbol, unknown>) => string;
75
- '&:hover': {
75
+ '&:hover, &.hover': {
76
76
  background: (theme: Record<symbol, unknown>) => string;
77
77
  color: (theme: Record<symbol, unknown>) => string;
78
78
  };
79
- '&:active': {
79
+ '&:active, &.active': {
80
80
  color: (theme: Record<symbol, unknown>) => string;
81
81
  background: (theme: Record<symbol, unknown>) => string;
82
82
  };
83
- '&:disabled': {
83
+ '&:disabled, &.disabled': {
84
84
  background: (theme: Record<symbol, unknown>) => string;
85
85
  };
86
86
  };
87
87
  tertiary: {
88
88
  background: string;
89
89
  color: (theme: Record<symbol, unknown>) => string;
90
- '&:hover': {
91
- color: (theme: Record<symbol, unknown>) => string;
90
+ '&:hover, &.hover': {
92
91
  background: (theme: Record<symbol, unknown>) => string;
93
92
  };
94
- '&:active': {
95
- color: (theme: Record<symbol, unknown>) => string;
93
+ '&:active, &.active': {
96
94
  background: (theme: Record<symbol, unknown>) => string;
97
95
  };
98
- '&:disabled': {
96
+ '&:disabled, &.disabled': {
99
97
  background: string;
100
98
  };
101
99
  };
@@ -103,14 +101,14 @@ export declare const button: {
103
101
  background: string;
104
102
  color: (theme: Record<symbol, unknown>) => string;
105
103
  border: (theme: Record<symbol, unknown>) => string;
106
- '&:hover': {
104
+ '&:hover, &.hover': {
107
105
  background: (theme: Record<symbol, unknown>) => string;
108
106
  };
109
- '&:active': {
107
+ '&:active, &.active': {
110
108
  color: (theme: Record<symbol, unknown>) => string;
111
109
  background: (theme: Record<symbol, unknown>) => string;
112
110
  };
113
- '&:disabled': {
111
+ '&:disabled, &.disabled': {
114
112
  background: string;
115
113
  borderColor: (theme: Record<symbol, unknown>) => string;
116
114
  };
@@ -118,19 +116,19 @@ export declare const button: {
118
116
  text: {
119
117
  background: string;
120
118
  color: (theme: Record<symbol, unknown>) => string;
121
- '&:hover': {
119
+ '&:hover, &.hover': {
122
120
  color: (theme: Record<symbol, unknown>) => string;
123
121
  };
124
- '&:active': {
122
+ '&:active, &.active': {
125
123
  color: (theme: Record<symbol, unknown>) => string;
126
124
  };
127
125
  };
128
126
  inherit: {
129
127
  fontWeight: string;
130
- '&:hover': {};
131
- '&:not(:disabled):active': {
128
+ '&:not(:disabled):active, &.active': {
132
129
  transform: string;
133
130
  };
134
- '&:disabled': {};
131
+ '&:hover, &.hover': {};
132
+ '&:disabled, &.disabled': {};
135
133
  };
136
134
  };
package/tokens/button.js CHANGED
@@ -1,37 +1,37 @@
1
1
  import { borders as t } from "./borders.js";
2
- import { getFocusStyles as c } from "./utils.js";
3
- import { get as e } from "../utils/helpers.js";
2
+ import { getFocusStyles as a } from "./utils.js";
3
+ import { get as o } from "../utils/helpers.js";
4
4
  const d = {
5
5
  default: {
6
6
  border: 0,
7
7
  outline: 0,
8
- fontWeight: (o) => e(o, "font.weight.medium", "theme.font.weight.medium"),
9
- padding: (o) => {
10
- const r = e(o, "spacing.sm", "theme.spacing.sm"), l = e(o, "spacing.md", "theme.spacing.md");
8
+ fontWeight: (e) => o(e, "font.weight.medium", "theme.font.weight.medium"),
9
+ padding: (e) => {
10
+ const r = o(e, "spacing.sm", "theme.spacing.sm"), l = o(e, "spacing.md", "theme.spacing.md");
11
11
  return r && l ? `${r} ${l}` : "theme.spacing.sm theme.spacing.lg";
12
12
  },
13
13
  display: "flex",
14
14
  alignItems: "center",
15
- gap: (o) => e(o, "spacing.sm", "theme.spacing.sm"),
16
- transition: (o) => e(o, "values.transitions.button.default", "theme.values.transitions.button.default"),
15
+ gap: (e) => o(e, "spacing.sm", "theme.spacing.sm"),
16
+ transition: (e) => o(e, "values.transitions.button.default", "theme.values.transitions.button.default"),
17
17
  cursor: "pointer",
18
- "&:focus-visible": (o) => c({
18
+ "&:focus-visible": (e) => a({
19
19
  inset: "-4px",
20
20
  border: t.generic({
21
21
  width: "2px",
22
- color: e(o, "colors.border.focus", "theme.colors.border.focus")
22
+ color: o(e, "colors.border.focus", "theme.colors.border.focus")
23
23
  })
24
24
  }),
25
25
  "&:disabled, &:disabled *": {
26
26
  cursor: "default",
27
- color: (o) => e(o, "colors.text.disabled", "theme.colors.text.disabled")
27
+ color: (e) => o(e, "colors.text.disabled", "theme.colors.text.disabled")
28
28
  }
29
29
  },
30
30
  attrs: {
31
31
  rounded: "none"
32
32
  },
33
33
  icon: {
34
- padding: (o) => e(o, "spacing.sm", "theme.spacing.sm"),
34
+ padding: (e) => o(e, "spacing.sm", "theme.spacing.sm"),
35
35
  "& span": {
36
36
  display: "flex",
37
37
  justifyContent: "center",
@@ -57,84 +57,82 @@ const d = {
57
57
  default: {}
58
58
  },
59
59
  primary: {
60
- color: (o) => e(o, "colors.text.black", "theme.colors.text.black"),
61
- background: (o) => e(o, "colors.bg.fill.primary", "theme.colors.bg.fill.primary"),
62
- "&:hover": {
63
- background: (o) => e(o, "colors.bg.fill.secondary", "theme.colors.bg.fill.secondary")
60
+ color: (e) => o(e, "colors.text.black", "theme.colors.text.black"),
61
+ background: (e) => o(e, "colors.bg.fill.primary", "theme.colors.bg.fill.primary"),
62
+ "&:hover, &.hover": {
63
+ background: (e) => o(e, "colors.bg.fill.secondary", "theme.colors.bg.fill.secondary")
64
64
  },
65
- "&:active": {
66
- background: (o) => e(o, "colors.bg.fill.warning.primary.default", e(o, "colors.bg.fill.warning.primary.default", "theme.colors.bg.fill.warning.primary.default"))
65
+ "&:active, &.active": {
66
+ background: (e) => o(e, "colors.bg.fill.warning.primary.default", o(e, "colors.bg.fill.warning.primary.default", "theme.colors.bg.fill.warning.primary.default"))
67
67
  },
68
- "&:disabled": {
69
- background: (o) => e(o, "colors.bg.fill.disabled", "theme.colors.bg.fill.disabled")
68
+ "&:disabled, &.disabled": {
69
+ background: (e) => o(e, "colors.bg.fill.disabled", "theme.colors.bg.fill.disabled")
70
70
  }
71
71
  },
72
72
  secondary: {
73
- color: (o) => e(o, "colors.text.default", "theme.colors.text.default"),
74
- background: (o) => e(o, "colors.bg.fill.hover", "theme.colors.bg.fill.hover"),
75
- "&:hover": {
76
- background: (o) => e(o, "colors.bg.fill.primary", "theme.colors.bg.fill.primary"),
77
- color: (o) => e(o, "colors.text.black", "theme.colors.text.black")
73
+ color: (e) => o(e, "colors.text.default", "theme.colors.text.default"),
74
+ background: (e) => o(e, "colors.bg.fill.hover", "theme.colors.bg.fill.hover"),
75
+ "&:hover, &.hover": {
76
+ background: (e) => o(e, "colors.bg.fill.primary", "theme.colors.bg.fill.primary"),
77
+ color: (e) => o(e, "colors.text.black", "theme.colors.text.black")
78
78
  },
79
- "&:active": {
80
- color: (o) => e(o, "colors.text.black", "theme.colors.text.black"),
81
- background: (o) => e(o, "colors.bg.fill.secondary", "theme.colors.bg.fill.secondary")
79
+ "&:active, &.active": {
80
+ color: (e) => o(e, "colors.text.black", "theme.colors.text.black"),
81
+ background: (e) => o(e, "colors.bg.fill.secondary", "theme.colors.bg.fill.secondary")
82
82
  },
83
- "&:disabled": {
84
- background: (o) => e(o, "colors.bg.fill.disabled", "theme.colors.bg.fill.disabled")
83
+ "&:disabled, &.disabled": {
84
+ background: (e) => o(e, "colors.bg.fill.disabled", "theme.colors.bg.fill.disabled")
85
85
  }
86
86
  },
87
87
  tertiary: {
88
88
  background: "transparent",
89
- color: (o) => e(o, "colors.text.default", "theme.colors.text.default"),
90
- "&:hover": {
91
- color: (o) => e(o, "colors.text.black", "theme.colors.text.black"),
92
- background: (o) => e(o, "colors.bg.fill.hover", "theme.colors.bg.fill.hover")
89
+ color: (e) => o(e, "colors.text.default", "theme.colors.text.default"),
90
+ "&:hover, &.hover": {
91
+ background: (e) => o(e, "colors.bg.fill.hover", "theme.colors.bg.fill.hover")
93
92
  },
94
- "&:active": {
95
- color: (o) => e(o, "colors.text.black", "theme.colors.text.black"),
96
- background: (o) => e(o, "colors.bg.fill.primary", "theme.colors.bg.fill.primary")
93
+ "&:active, &.active": {
94
+ background: (e) => o(e, "colors.bg.fill.primary", "theme.colors.bg.fill.primary")
97
95
  },
98
- "&:disabled": {
96
+ "&:disabled, &.disabled": {
99
97
  background: "transparent"
100
98
  }
101
99
  },
102
100
  outlined: {
103
101
  background: "transparent",
104
- color: (o) => e(o, "colors.text.default", "theme.colors.text.default"),
105
- border: (o) => t.generic({
106
- width: e(o, "values.borderThin", "theme.values.borderThin"),
107
- color: e(o, "colors.border.black", "theme.colors.border.black")
102
+ color: (e) => o(e, "colors.text.default", "theme.colors.text.default"),
103
+ border: (e) => t.generic({
104
+ width: o(e, "values.borderThin", "theme.values.borderThin"),
105
+ color: o(e, "colors.border.black", "theme.colors.border.black")
108
106
  }),
109
- "&:hover": {
110
- background: (o) => e(o, "colors.bg.fill.hover", "theme.colors.bg.fill.hover")
107
+ "&:hover, &.hover": {
108
+ background: (e) => o(e, "colors.bg.fill.hover", "theme.colors.bg.fill.hover")
111
109
  },
112
- "&:active": {
113
- color: (o) => e(o, "colors.text.black", "theme.colors.text.black"),
114
- background: (o) => e(o, "colors.bg.fill.primary", "theme.colors.bg.fill.primary")
110
+ "&:active, &.active": {
111
+ color: (e) => o(e, "colors.text.black", "theme.colors.text.black"),
112
+ background: (e) => o(e, "colors.bg.fill.primary", "theme.colors.bg.fill.primary")
115
113
  },
116
- "&:disabled": {
114
+ "&:disabled, &.disabled": {
117
115
  background: "transparent",
118
- borderColor: (o) => e(o, "colors.border.disabled", "theme.colors.border.disabled")
116
+ borderColor: (e) => o(e, "colors.border.disabled", "theme.colors.border.disabled")
119
117
  }
120
118
  },
121
119
  text: {
122
120
  background: "transparent",
123
- color: (o) => e(o, "colors.text.default", "theme.colors.text.default"),
124
- "&:hover": {
125
- color: (o) => e(o, "colors.text.primary", "theme.colors.text.primary")
121
+ color: (e) => o(e, "colors.text.default", "theme.colors.text.default"),
122
+ "&:hover, &.hover": {
123
+ color: (e) => o(e, "colors.text.primary", "theme.colors.text.primary")
126
124
  },
127
- "&:active": {
128
- color: (o) => e(o, "colors.text.secondary", "theme.colors.text.secondary")
125
+ "&:active, &.active": {
126
+ color: (e) => o(e, "colors.text.secondary", "theme.colors.text.secondary")
129
127
  }
130
128
  },
131
129
  inherit: {
132
130
  fontWeight: "inherit",
133
- "&:hover": {},
134
- "&:not(:disabled):active": {
131
+ "&:not(:disabled):active, &.active": {
135
132
  transform: "none"
136
133
  },
137
- "&:disabled": {}
134
+ "&:hover, &.hover": {},
135
+ "&:disabled, &.disabled": {}
138
136
  }
139
137
  };
140
138
  export {
package/tokens/card.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { FlexDirection } from '../types';
2
1
  /**
3
2
  * Card component tokens
4
3
  * Base styles (display flex, focus-visible) are now handled by the Box component
@@ -48,7 +47,7 @@ export declare const card: {
48
47
  };
49
48
  sm: (theme: Record<symbol, unknown>) => {
50
49
  color: string;
51
- flexDirection: FlexDirection;
50
+ flexDirection: string;
52
51
  fontSize: string;
53
52
  fontWeight: string;
54
53
  lineHeight: string;
@@ -63,7 +62,7 @@ export declare const card: {
63
62
  };
64
63
  sm: (theme: Record<symbol, unknown>) => {
65
64
  color: string;
66
- flexDirection: FlexDirection;
65
+ flexDirection: string;
67
66
  fontSize: string;
68
67
  fontWeight: string;
69
68
  lineHeight: string;