gd-design-library 0.8.0 → 1.0.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 (295) hide show
  1. package/ai/README.md +81 -7
  2. package/ai/codegen.d.ts +0 -10
  3. package/ai/index.d.ts +0 -1
  4. package/ai/schemas/components/Accordion.d.ts +39 -0
  5. package/ai/schemas/components/Avatar.d.ts +44 -0
  6. package/ai/schemas/components/Box.d.ts +101 -0
  7. package/ai/schemas/components/Breadcrumbs.d.ts +39 -0
  8. package/ai/schemas/components/Button.d.ts +45 -7
  9. package/ai/schemas/components/Card.d.ts +56 -0
  10. package/ai/schemas/components/ChatBubble.d.ts +43 -0
  11. package/ai/schemas/components/ChatContainer.d.ts +11 -0
  12. package/ai/schemas/components/Column.d.ts +11 -0
  13. package/ai/schemas/components/ContentCarousel.d.ts +78 -5
  14. package/ai/schemas/components/Counter.d.ts +11 -0
  15. package/ai/schemas/components/DragAndDropFiles.d.ts +11 -0
  16. package/ai/schemas/components/FlexContainer.d.ts +11 -0
  17. package/ai/schemas/components/Form.d.ts +11 -0
  18. package/ai/schemas/components/Icon.d.ts +85 -0
  19. package/ai/schemas/components/Image.d.ts +11 -0
  20. package/ai/schemas/components/InlineNotification.d.ts +11 -0
  21. package/ai/schemas/components/Input.d.ts +11 -0
  22. package/ai/schemas/components/InputFile.d.ts +11 -0
  23. package/ai/schemas/components/Label.d.ts +11 -0
  24. package/ai/schemas/components/Link.d.ts +11 -0
  25. package/ai/schemas/components/List.d.ts +11 -0
  26. package/ai/schemas/components/Loader.d.ts +11 -0
  27. package/ai/schemas/components/Modal.d.ts +11 -0
  28. package/ai/schemas/components/Portal.d.ts +11 -0
  29. package/ai/schemas/components/Price.d.ts +11 -0
  30. package/ai/schemas/components/ProgressBar.d.ts +11 -0
  31. package/ai/schemas/components/RadioGroup.d.ts +11 -0
  32. package/ai/schemas/components/Rating.d.ts +11 -0
  33. package/ai/schemas/components/Row.d.ts +11 -0
  34. package/ai/schemas/components/Scroll.d.ts +11 -0
  35. package/ai/schemas/components/Search.d.ts +11 -0
  36. package/ai/schemas/components/Select.d.ts +11 -0
  37. package/ai/schemas/components/Separator.d.ts +11 -0
  38. package/ai/schemas/components/Skeleton.d.ts +11 -0
  39. package/ai/schemas/components/Slider.d.ts +11 -0
  40. package/ai/schemas/components/Snackbar.d.ts +11 -0
  41. package/ai/schemas/components/SnackbarManager.d.ts +11 -0
  42. package/ai/schemas/components/Stepper.d.ts +11 -0
  43. package/ai/schemas/components/Switch.d.ts +11 -0
  44. package/ai/schemas/components/Tabs.d.ts +11 -0
  45. package/ai/schemas/components/Textarea.d.ts +13 -0
  46. package/ai/schemas/components/Toggle.d.ts +11 -0
  47. package/ai/schemas/components/Tooltip.d.ts +11 -0
  48. package/ai/schemas/components/Typography.d.ts +11 -0
  49. package/ai/schemas/components/Wrapper.d.ts +11 -0
  50. package/assets/icons/chat-bubble.d.ts +5 -0
  51. package/assets/icons/chat-bubble.js +10 -0
  52. package/assets/icons/chat.d.ts +5 -0
  53. package/assets/icons/chat.js +10 -0
  54. package/assets/icons/edit.d.ts +1 -3
  55. package/assets/icons/edit.js +7 -14
  56. package/assets/icons/phone.d.ts +5 -0
  57. package/assets/icons/phone.js +10 -0
  58. package/assets/index.d.ts +3 -0
  59. package/assets/styles.css +1 -1
  60. package/components/core/Box/Box.d.ts +2 -0
  61. package/components/core/Box/Box.js +26 -0
  62. package/components/core/Box/Box.types.d.ts +18 -0
  63. package/components/core/Box/BoxStyled.d.ts +2 -0
  64. package/components/core/Box/BoxStyled.js +26 -0
  65. package/components/core/Box/constants.d.ts +1 -0
  66. package/components/core/Box/constants.js +4 -0
  67. package/components/core/Box/index.d.ts +3 -0
  68. package/components/core/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  69. package/components/core/Breadcrumbs/BreadcrumbsStyled.d.ts +1 -1
  70. package/components/core/Breadcrumbs/BreadcrumbsStyled.js +48 -39
  71. package/components/core/Button/Button.d.ts +1 -1
  72. package/components/core/Button/Button.js +26 -26
  73. package/components/core/Button/Button.types.d.ts +7 -5
  74. package/components/core/Button/ButtonStyled.d.ts +4 -4
  75. package/components/core/Button/ButtonStyled.js +40 -35
  76. package/components/core/Dropdown/DropdownStyled.js +15 -10
  77. package/components/core/DropdownItem/DropdownItemStyled.js +15 -9
  78. package/components/core/Form/FormStyled.d.ts +1 -1
  79. package/components/core/Form/FormStyled.js +15 -9
  80. package/components/core/Icon/Icon.js +9 -9
  81. package/components/core/Icon/constants.d.ts +16 -3
  82. package/components/core/Icon/constants.js +106 -100
  83. package/components/core/Image/Image.d.ts +1 -1
  84. package/components/core/Image/Image.js +27 -27
  85. package/components/core/Image/ImageStyled.d.ts +1 -1
  86. package/components/core/Image/ImageStyled.js +54 -32
  87. package/components/core/InlineNotification/InlineNotificationStyled.d.ts +1 -1
  88. package/components/core/InlineNotification/InlineNotificationStyled.js +21 -18
  89. package/components/core/Input/Input.d.ts +1 -1
  90. package/components/core/Input/InputAdornment/InputAdornmentStyled.js +14 -8
  91. package/components/core/Input/InputHelper/InputHelperStyled.js +14 -8
  92. package/components/core/Input/InputStyled.js +14 -8
  93. package/components/core/Input/InputWrapper/InputWrapperStyled.js +14 -9
  94. package/components/core/Label/LabelStyled.js +13 -12
  95. package/components/core/Link/LinkStyled.js +19 -14
  96. package/components/core/List/ListStyled.js +29 -22
  97. package/components/core/Loader/LoaderStyled.js +30 -32
  98. package/components/core/Menu/Menu.d.ts +1 -1
  99. package/components/core/Menu/MenuStyled.d.ts +1 -1
  100. package/components/core/Menu/MenuStyled.js +29 -20
  101. package/components/core/Modal/ModalStyled.js +76 -45
  102. package/components/core/Portal/Portal.d.ts +1 -1
  103. package/components/core/Scroll/ScrollStyled.d.ts +1 -1
  104. package/components/core/Scroll/ScrollStyled.js +42 -36
  105. package/components/core/Select/Select.js +60 -57
  106. package/components/core/Select/SelectStyled.d.ts +1 -2
  107. package/components/core/Select/SelectStyled.js +62 -48
  108. package/components/core/Separator/SeparatorStyled.d.ts +1 -1
  109. package/components/core/Separator/SeparatorStyled.js +56 -45
  110. package/components/core/Skeleton/SkeletonStyled.d.ts +1 -1
  111. package/components/core/Skeleton/SkeletonStyled.js +20 -19
  112. package/components/core/Slider/SliderStyled.js +14 -12
  113. package/components/core/Snackbar/SnackbarStyled.js +98 -71
  114. package/components/core/Switch/SwitchStyled.js +59 -34
  115. package/components/core/Textarea/TextareaStyled.js +19 -14
  116. package/components/core/Toggle/Toggle.js +17 -17
  117. package/components/core/Toggle/ToggleStyled.js +15 -10
  118. package/components/core/Tooltip/TooltipStyled.js +24 -17
  119. package/components/core/Tooltip/utils.d.ts +1 -1
  120. package/components/core/Typography/Typography.d.ts +1 -1
  121. package/components/core/Typography/Typography.js +10 -10
  122. package/components/core/Typography/TypographyStyled.d.ts +1 -1
  123. package/components/core/Typography/TypographyStyled.js +28 -23
  124. package/components/core/Wrapper/WrapperStyled.js +18 -17
  125. package/components/core/index.d.ts +1 -0
  126. package/components/domainSpecific/Accordion/AccordionStyled.js +39 -26
  127. package/components/domainSpecific/Accordion/index.d.ts +1 -0
  128. package/components/domainSpecific/Avatar/Avatar.js +16 -16
  129. package/components/domainSpecific/Avatar/AvatarStyled.js +62 -46
  130. package/components/domainSpecific/Card/Card.d.ts +11 -13
  131. package/components/domainSpecific/Card/Card.js +28 -40
  132. package/components/domainSpecific/Card/Card.types.d.ts +2 -16
  133. package/components/domainSpecific/Card/CardButton/CardButtonStyled.js +17 -11
  134. package/components/domainSpecific/Card/CardCounter/CardCounterStyled.js +16 -10
  135. package/components/domainSpecific/Card/CardDescription/CardDescriptionStyled.js +17 -16
  136. package/components/domainSpecific/Card/CardImage/CardImageStyled.js +16 -10
  137. package/components/domainSpecific/Card/CardPrice/CardPriceStyled.js +16 -10
  138. package/components/domainSpecific/Card/CardRating/CardRatingStyled.js +16 -10
  139. package/components/domainSpecific/Card/CardTitle/CardTitleStyled.js +16 -15
  140. package/components/domainSpecific/Carousel/Carousel.js +72 -72
  141. package/components/domainSpecific/Carousel/CarouselStyled.js +112 -97
  142. package/components/domainSpecific/ChatBubble/ChatBubbleStyled.d.ts +1 -1
  143. package/components/domainSpecific/ChatBubble/ChatBubbleStyled.js +50 -28
  144. package/components/domainSpecific/ContentCarousel/ContentCarousel.d.ts +1 -1
  145. package/components/domainSpecific/ContentCarousel/ContentCarousel.js +37 -38
  146. package/components/domainSpecific/ContentCarousel/ContentCarouselStyled.d.ts +0 -1
  147. package/components/domainSpecific/ContentCarousel/ContentCarouselStyled.js +24 -20
  148. package/components/domainSpecific/Counter/CounterStyled.js +20 -17
  149. package/components/domainSpecific/DragAndDropFiles/DragAndDropFilesStyled.js +12 -10
  150. package/components/domainSpecific/Header/HeaderStyled.js +101 -88
  151. package/components/domainSpecific/Price/Price.d.ts +1 -1
  152. package/components/domainSpecific/Price/PriceStyled.js +28 -24
  153. package/components/domainSpecific/ProgressBar/ProgressBarStyled.js +47 -42
  154. package/components/domainSpecific/RadioGroup/RadioGroup.js +38 -38
  155. package/components/domainSpecific/RadioGroup/RadioGroupStyled.js +89 -84
  156. package/components/domainSpecific/Rating/Rating.d.ts +1 -1
  157. package/components/domainSpecific/Rating/Rating.js +41 -41
  158. package/components/domainSpecific/Rating/RatingStyled.js +42 -37
  159. package/components/domainSpecific/Search/SearchStyled.js +15 -9
  160. package/components/domainSpecific/SearchModal/SearchInput/SearchInputStyled.js +18 -15
  161. package/components/domainSpecific/SearchModal/SearchItems/SearchItemsStyled.js +63 -54
  162. package/components/domainSpecific/SearchModal/SearchLoader/SearchLoaderStyled.js +9 -7
  163. package/components/domainSpecific/SearchModal/SearchModalStyled.d.ts +1 -1
  164. package/components/domainSpecific/SearchModal/SearchModalStyled.js +25 -18
  165. package/components/domainSpecific/SearchModal/constants.d.ts +1 -1
  166. package/components/domainSpecific/SearchModal/constants.js +1 -1
  167. package/components/domainSpecific/Stepper/StepperStyled.js +41 -35
  168. package/components/domainSpecific/Tabs/TabsStyled.js +51 -43
  169. package/components/index.d.ts +0 -1
  170. package/components/index.types.d.ts +14 -0
  171. package/components/layout/ChatContainer/ChatContainerStyled.d.ts +1 -1
  172. package/components/layout/ChatContainer/ChatContainerStyled.js +118 -59
  173. package/components/layout/Column/ColumnStyled.js +28 -27
  174. package/components/layout/FlexContainer/FlexContainerStyled.js +13 -12
  175. package/components/layout/Row/RowStyled.js +26 -25
  176. package/components/templates/index.d.ts +0 -1
  177. package/components/widget/DragAndDrop/DragAndDrop.d.ts +1 -1
  178. package/components/widget/DragAndDrop/DragAndDrop.js +15 -15
  179. package/components/widget/DragAndDrop/DragAndDropStyled.d.ts +1 -1
  180. package/components/widget/DragAndDrop/DragAndDropStyled.js +48 -41
  181. package/hooks/useCarousel/useCarousel.d.ts +1 -10
  182. package/hooks/useCarousel/useCarousel.js +50 -46
  183. package/hooks/useTheme/useTheme.types.d.ts +1 -0
  184. package/hooks/useTheme/utils.d.ts +7 -2
  185. package/index.js +358 -345
  186. package/llms.txt +87 -229
  187. package/package.json +1 -1
  188. package/tokens/accordion.d.ts +1 -62
  189. package/tokens/accordion.js +30 -33
  190. package/tokens/avatar.d.ts +1 -120
  191. package/tokens/avatar.js +29 -31
  192. package/tokens/box.d.ts +5 -0
  193. package/tokens/box.js +50 -0
  194. package/tokens/breadcrumbs.d.ts +1 -30
  195. package/tokens/breadcrumbs.js +12 -12
  196. package/tokens/button.d.ts +1 -155
  197. package/tokens/button.js +104 -160
  198. package/tokens/card.d.ts +5 -175
  199. package/tokens/card.js +101 -149
  200. package/tokens/carousel.d.ts +1 -197
  201. package/tokens/carousel.js +43 -45
  202. package/tokens/chat.d.ts +1 -128
  203. package/tokens/chat.js +77 -60
  204. package/tokens/chatbubble.d.ts +1 -48
  205. package/tokens/chatbubble.js +42 -41
  206. package/tokens/colors.d.ts +193 -48
  207. package/tokens/colors.js +202 -57
  208. package/tokens/constants.js +1 -1
  209. package/tokens/counter.d.ts +1 -38
  210. package/tokens/counter.js +7 -7
  211. package/tokens/defaultTheme.d.ts +586 -3555
  212. package/tokens/defaultTheme.js +16 -12
  213. package/tokens/draganddrop.d.ts +1 -61
  214. package/tokens/draganddrop.js +35 -38
  215. package/tokens/font.d.ts +7 -0
  216. package/tokens/font.js +7 -0
  217. package/tokens/header.d.ts +1 -107
  218. package/tokens/header.js +34 -36
  219. package/tokens/image.d.ts +1 -31
  220. package/tokens/image.js +18 -20
  221. package/tokens/index.d.ts +512 -3161
  222. package/tokens/index.js +119 -112
  223. package/tokens/inlineNotification.d.ts +1 -62
  224. package/tokens/inlineNotification.js +25 -26
  225. package/tokens/input.d.ts +1 -212
  226. package/tokens/input.js +69 -62
  227. package/tokens/link.d.ts +1 -80
  228. package/tokens/link.js +66 -40
  229. package/tokens/list.d.ts +1 -89
  230. package/tokens/list.js +38 -46
  231. package/tokens/loader.d.ts +1 -135
  232. package/tokens/loader.js +31 -33
  233. package/tokens/menu.d.ts +1 -15
  234. package/tokens/menu.js +6 -9
  235. package/tokens/modal.d.ts +1 -89
  236. package/tokens/modal.js +59 -49
  237. package/tokens/price.d.ts +1 -23
  238. package/tokens/price.js +16 -18
  239. package/tokens/progressbar.d.ts +1 -51
  240. package/tokens/progressbar.js +20 -23
  241. package/tokens/radiogroup.d.ts +1 -80
  242. package/tokens/radiogroup.js +32 -34
  243. package/tokens/radius.d.ts +1 -1
  244. package/tokens/radius.js +8 -9
  245. package/tokens/rating.d.ts +1 -65
  246. package/tokens/rating.js +16 -15
  247. package/tokens/scroll.d.ts +1 -91
  248. package/tokens/scroll.js +20 -22
  249. package/tokens/search.d.ts +1 -39
  250. package/tokens/search.js +7 -8
  251. package/tokens/searchModal.d.ts +1 -155
  252. package/tokens/searchModal.js +81 -58
  253. package/tokens/select.d.ts +1 -93
  254. package/tokens/select.js +39 -40
  255. package/tokens/shadow.d.ts +9 -8
  256. package/tokens/shadow.js +14 -16
  257. package/tokens/skeleton.d.ts +1 -68
  258. package/tokens/skeleton.js +20 -22
  259. package/tokens/slider.d.ts +1 -58
  260. package/tokens/slider.js +11 -11
  261. package/tokens/snackbar.d.ts +1 -156
  262. package/tokens/snackbar.js +83 -79
  263. package/tokens/spacing.d.ts +23 -0
  264. package/tokens/spacing.js +23 -0
  265. package/tokens/stepper.d.ts +1 -132
  266. package/tokens/stepper.js +52 -58
  267. package/tokens/switch.d.ts +1 -67
  268. package/tokens/switch.js +15 -15
  269. package/tokens/tabs.d.ts +1 -88
  270. package/tokens/tabs.js +33 -37
  271. package/tokens/toggle.d.ts +1 -9
  272. package/tokens/toggle.js +10 -11
  273. package/tokens/tooltip.d.ts +1 -61
  274. package/tokens/tooltip.js +22 -23
  275. package/tokens/typography.d.ts +1 -127
  276. package/tokens/typography.js +106 -90
  277. package/tokens/utils.d.ts +7 -2
  278. package/tokens/utils.js +27 -21
  279. package/types/button.d.ts +3 -11
  280. package/types/button.js +3 -4
  281. package/types/carousel.d.ts +10 -0
  282. package/types/typography.d.ts +3 -0
  283. package/types/typography.js +3 -3
  284. package/utils/helpers.d.ts +8 -0
  285. package/utils/helpers.js +52 -40
  286. package/components/domainSpecific/Card/CartStyled.d.ts +0 -2
  287. package/components/domainSpecific/Card/CartStyled.js +0 -26
  288. package/components/templates/SkeletonSearch/SkeletonSearch.d.ts +0 -2
  289. package/components/templates/SkeletonSearch/SkeletonSearch.js +0 -30
  290. package/components/templates/SkeletonSearch/SkeletonSearch.types.d.ts +0 -6
  291. package/components/templates/SkeletonSearch/SkeletonSearchStyled.d.ts +0 -11
  292. package/components/templates/SkeletonSearch/SkeletonSearchStyled.js +0 -97
  293. package/components/templates/SkeletonSearch/constants.d.ts +0 -2
  294. package/components/templates/SkeletonSearch/constants.js +0 -5
  295. package/components/templates/SkeletonSearch/index.d.ts +0 -2
package/ai/README.md CHANGED
@@ -14,7 +14,7 @@ Core rule (must follow):
14
14
 
15
15
  Single-source import (enforced):
16
16
 
17
- - Correct: `import { Form, Input, Button, Typography, FlexContainer, Column, Card, Link } from 'gd-design-library';`
17
+ - Correct: `import { Form, Input, Button, Typography, Box, FlexContainer, Column, Card, Link } from 'gd-design-library';`
18
18
  - Incorrect: `import Button from 'some-ui-lib';`, `import { Box } from '@mui/material';`, or using `./styles.css` for layout spacing.
19
19
 
20
20
  How to use the AI helpers
@@ -48,12 +48,12 @@ Practical generation tips (what the model should output)
48
48
 
49
49
  API guardrails from the schema/prompt (must-follow)
50
50
 
51
- - Row/Column/Card.Row/Card.Column: use `isWrap` (boolean), NOT `wrap`.
51
+ - Row/Column/Card.Row/Card.Column: use `isWrap` (boolean), NOT `wrap`. **IMPORTANT: `isWrap` defaults to `true`**, use `isWrap={false}` to prevent wrapping.
52
+ - Icon: **ONLY use icon names from the available list**: 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, attachment, upload, folder, folderOpen, contentCopy, fileCopy, eye, volumeUp, send, chat, chatBubble, phone, processing, wifiTethering, star, starOutlined, thumbUp, thumbDown, thumbUpFilled, thumbDownFilled, errorOutline. Do NOT use icons not in this list (e.g., no "settings", "close", "add", "info" icons).
52
53
  - Image and Card.Image: `width` and `height` props are numbers only (e.g., `width={96}`), not strings like `"96px"`.
53
54
  - Card.Title and other Card subcomponents: `sizeVariant` only accepts `CardSizeVariant.Default` or `CardSizeVariant.Sm`.
54
55
  - Counter and Card.Counter: use `initial` (not `value`) for the starting quantity; use `onCounterChange` as the change handler.
55
- - Button `variant` must be one of `ButtonVariant.Contained | ButtonVariant.Outlined | ButtonVariant.Text | ButtonVariant.Inherit`.
56
- - Button `color` must be one of `ButtonColorVariant.Primary | ButtonColorVariant.Secondary`.
56
+ - Button `variant` must be one of `ButtonVariant.Primary | ButtonVariant.Secondary | ButtonVariant.Tertiary | ButtonVariant.Outlined | ButtonVariant.Text | ButtonVariant.Inherit`.
57
57
 
58
58
  Component catalog
59
59
 
@@ -63,7 +63,7 @@ Component catalog
63
63
  - The list includes layout, forms, feedback, display, navigation, and theme provider/hook entries. Always consult these when unsure.
64
64
  - Quick categories (from schema v1.0.0):
65
65
  - Theme: useTheme.provider (ThemeProvider), useTheme.hook (useTheme)
66
- - Layout: FlexContainer, Column, Row, Wrapper, Scroll, Separator
66
+ - Layout: Box, FlexContainer, Column, Row, Wrapper, Scroll, Separator
67
67
  - Forms: Form, Input, Select, Search, Label, Textarea, Switch, Toggle, RadioGroup, Slider, InputFile, DragAndDropFiles
68
68
  - Feedback & overlays: InlineNotification, Loader, Skeleton, Snackbar, SnackbarManager, Tooltip, Modal, Portal
69
69
  - Navigation & structure: Breadcrumbs, Tabs, Stepper, List, Accordion, Link
@@ -79,18 +79,92 @@ Patterns from stories (grounded tips)
79
79
  - Accessibility: use `ariaDescribedBy` to connect helper/error text; set `readOnly`/`disabled` as needed; `autoFocus` is available.
80
80
  - Limits and events: `maxLength` to constrain length; `onCustomResize` receives `{ height, width }` when user resizes.
81
81
  - Buttons:
82
- - Variants: `ButtonVariant.Contained | Outlined | Text | Inherit`; Colors: `ButtonColorVariant.Primary | Secondary`. For icon-only buttons, set `isIcon`.
82
+ - Variants: `ButtonVariant.Primary | Secondary | Tertiary | Outlined | Text | Inherit`. For icon-only buttons, set `isIcon`.
83
+ - Rounded: Use `rounded` prop with values: `none | xs | sm | md | lg | xl | round`. Use `round` for circular icon buttons.
83
84
  - Forms and labels:
84
85
  - Always provide a visible label via the `label` prop or a separate `<Label htmlFor>` paired with the input `name/id`. Wrap controls with `<Form>` and handle submit via `onSubmit`.
85
86
  - Layout composition:
87
+ - Use `Box` as the foundational layout primitive with built-in flexbox support and interaction states. Box provides `variant` (horizontal/vertical), `isBordered`, `isHighlighted`, and `withShadowHover` props.
86
88
  - Use `FlexContainer` with `Column`/`Row` and `gap` to manage spacing. Avoid raw CSS margins except where necessary.
89
+ - Prefer `Box` over raw divs for all container needs to maintain design system consistency and leverage built-in theming.
90
+ - Communication icons:
91
+ - Use `Icon name="chat"` for general chat or messaging functionality indicators
92
+ - Apply `Icon name="chatBubble"` for individual message bubbles or conversation threads
93
+ - Use `Icon name="phone"` for contact, calling, or communication features
94
+ - Combine with `ChatContainer` and `ChatBubble` components for complete chat interfaces
95
+
96
+ - Complete icon catalog (50+ icons organized by category):
97
+ - Status & Feedback: `cross`, `success`, `error`, `warning`, `info`, `dot`, `check`, `errorOutline`
98
+ - Navigation & Direction: `arrowDown`, `arrowRight`, `arrowLeft`, `arrowForward`, `keyboardArrowDown`, `keyboardArrowUp`
99
+ - UI & Interface: `mobileMenu`, `home`, `slash`
100
+ - E-commerce & Shopping: `localShipping`, `favorite`, `favoriteOutlined`, `shoppingBag`, `paymentCard`
101
+ - User & Account: `accountCircle`, `portrait`
102
+ - Actions & Operations: `deleteOutlined`, `minus`, `plus`, `edit`, `search`, `filter`, `ruler`
103
+ - File & Document: `attachment`, `upload`, `folder`, `folderOpen`, `contentCopy`, `fileCopy`
104
+ - Media & Communication: `eye`, `volumeUp`, `send`, `chat`, `chatBubble`, `phone`
105
+ - System & Technical: `processing`, `wifiTethering`
106
+ - Rating & Feedback: `star`, `starOutlined`, `thumbUp`, `thumbDown`, `thumbUpFilled`, `thumbDownFilled`
107
+ - TextArea component for multi-line text input:
108
+ - Use `Textarea` for detailed information like comments, descriptions, or messages
109
+ - Apply `dynamicHeightAdjustment={true}` for auto-growing text areas
110
+ - Set `maxLength` with character counter display for constrained input
111
+ - Use `resize="vertical"` for height adjustment while preventing horizontal resize
112
+ - Apply `minHeight` and `maxHeight` for size constraints with flexibility
113
+ - Combine with `Label` component using `htmlFor` for accessibility
114
+ - Use `rows` prop for initial visible height without CSS
115
+ - Apply `placeholder` with helpful instructions for user guidance
116
+ - Set `readOnly` with custom styles for display-only text
117
+ - Use with `Form` component and validation for required long-form fields
118
+ - Apply `onChange` with debouncing for auto-save features
119
+ - Combine with `InlineNotification` for validation messages
120
+ - Use `resize="none"` (default) for consistent layout
121
+ - Apply `autoFocus` for primary input fields
122
+ - Set with monospace font via `styles` for code or structured text
123
+ - Use `maxHeight` with overflow scrolling for bounded input areas
124
+ - Apply `dynamicHeightAdjustment` with `maxHeight` for auto-grow with limits
125
+ - Combine with word count display for word limits
126
+ - Use `disabled` during form submission
127
+ - Apply with consistent width or full-width for form alignment
128
+ - Set `onCustomResize` to track user resize preferences
129
+ - Use `defaultValue` for uncontrolled components
130
+ - Apply `value` with `onChange` for controlled components
131
+ - Combine with real-time preview for markdown or rich text editing
132
+ - Use `ariaDescribedBy` for screen reader accessibility
133
+ - Apply with border color changes based on validation state
134
+ - Set `resize="both"` for full user control in resizable panels
135
+ - Use with minimum `rows={3}` for better visual presence
136
+ - Apply with tab key handling for code editors
137
+ - Combine with floating label pattern for modern designs
138
+ - Use `maxLength` with preventOverflow logic
139
+ - Apply with line number display for code editing
140
+ - Set with spell check control for different content types
141
+ - Use in `Modal` for feedback forms
142
+ - Apply with paste event handling for content formatting
143
+ - Combine with emoji picker or formatting toolbar
144
+ - Use `rows` with `dynamicHeightAdjustment` for initial size with growth
145
+ - Apply with consistent padding and font size
146
+ - Use with keyboard shortcuts for power users
147
+ - Apply in `Card` components for comment sections
148
+ - Combine with mention/autocomplete functionality
149
+ - Use with draft saving to localStorage
150
+ - Apply `resize="horizontal"` rarely, only when width adjustment needed
151
+ - Set with custom scrollbar styling
152
+ - Use with focus and blur events for validation timing
153
+ - Apply with consistent error state styling
154
+ - Combine with file drop support
155
+ - Use `dynamicHeightAdjustment` for chat inputs and comments
156
+ - Constrain `maxHeight` to avoid screen takeover
157
+ - Prefer `resize="vertical"` for longer text areas
158
+ - Provide `ariaDescribedBy` for helper text or character counters
87
159
  - Cards and images:
160
+ - `Card` now accepts all `Box` props including `variant`, `isBordered`, `isHighlighted`, and `withShadowHover`.
161
+ - Use `Card withShadowHover` for interactive/clickable cards with elevation effect on hover. Combine with `backgroundColor="#fff"` and `cursor: "pointer"` for better visibility.
88
162
  - `Card.Title` uses `sizeVariant={CardSizeVariant.Default | CardSizeVariant.Sm}` only. `Card.Image` and `Image` require numeric `width`/`height` props.
89
163
 
90
164
  Example: Correct usage
91
165
 
92
166
  ```
93
- import { Form, Input, Button, Typography, FlexContainer, Column, Card, Link } from 'gd-design-library';
167
+ import { Form, Input, Button, Typography, Box, FlexContainer, Column, Card, Link } from 'gd-design-library';
94
168
 
95
169
  export function LoginCard() {
96
170
  return (
package/ai/codegen.d.ts CHANGED
@@ -1,10 +0,0 @@
1
- export type AIIntent = 'login';
2
- export interface GenerateOptions {
3
- componentName?: string;
4
- }
5
- /**
6
- * Returns a TSX string for a classic Login page composed with gd-design-library components.
7
- * The output is intentionally framework-agnostic TSX that can be pasted into a React project.
8
- */
9
- export declare function generateLoginPageTSX(options?: GenerateOptions): string;
10
- export declare function generateUIFromIntent(intent: AIIntent, options?: GenerateOptions): string;
package/ai/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  export * from './prompts';
2
- export * from './codegen';
3
2
  export * from './schemas/components';
@@ -3,6 +3,17 @@ declare const _default: {
3
3
  name: string;
4
4
  import: string;
5
5
  description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
6
17
  props: ({
7
18
  name: string;
8
19
  type: string;
@@ -28,7 +39,35 @@ declare const _default: {
28
39
  required: boolean;
29
40
  default?: undefined;
30
41
  })[];
42
+ quickStart: {
43
+ basic: string;
44
+ controlled: string;
45
+ multiple: string;
46
+ faq: string;
47
+ };
48
+ commonPatterns: {
49
+ 'FAQ Section': {
50
+ code: string;
51
+ useCase: string;
52
+ };
53
+ 'Settings Panel': {
54
+ code: string;
55
+ useCase: string;
56
+ };
57
+ 'Step-by-Step Guide': {
58
+ code: string;
59
+ useCase: string;
60
+ };
61
+ };
31
62
  examples: string[];
63
+ troubleshooting: {
64
+ 'Items not expanding': string;
65
+ 'Multiple items not expanding': string;
66
+ 'State not updating': string;
67
+ 'Accessibility issues': string;
68
+ 'Performance issues': string;
69
+ };
70
+ bestPractices: string[];
32
71
  };
33
72
  compositionTips: string[];
34
73
  };
@@ -3,6 +3,17 @@ declare const _default: {
3
3
  name: string;
4
4
  import: string;
5
5
  description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
6
17
  props: ({
7
18
  name: string;
8
19
  type: string;
@@ -34,7 +45,40 @@ declare const _default: {
34
45
  default: {};
35
46
  enum?: undefined;
36
47
  })[];
48
+ quickStart: {
49
+ basic: string;
50
+ initials: string;
51
+ withBadge: string;
52
+ icon: string;
53
+ online: string;
54
+ };
55
+ commonPatterns: {
56
+ 'User Profile': {
57
+ code: string;
58
+ useCase: string;
59
+ };
60
+ 'Comment Author': {
61
+ code: string;
62
+ useCase: string;
63
+ };
64
+ 'Online Status': {
65
+ code: string;
66
+ useCase: string;
67
+ };
68
+ 'Team Member': {
69
+ code: string;
70
+ useCase: string;
71
+ };
72
+ };
37
73
  examples: string[];
74
+ troubleshooting: {
75
+ 'Image not loading': string;
76
+ 'Badge not showing': string;
77
+ 'Size not applying': string;
78
+ 'Accessibility issues': string;
79
+ 'Fallback not working': string;
80
+ };
81
+ bestPractices: string[];
38
82
  };
39
83
  compositionTips: string[];
40
84
  };
@@ -0,0 +1,101 @@
1
+ declare const _default: {
2
+ component: {
3
+ name: string;
4
+ import: string;
5
+ description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
17
+ props: ({
18
+ name: string;
19
+ type: string;
20
+ description: string;
21
+ default: string;
22
+ enum: string[];
23
+ required: boolean;
24
+ } | {
25
+ name: string;
26
+ type: string;
27
+ description: string;
28
+ default: boolean;
29
+ enum?: undefined;
30
+ required?: undefined;
31
+ } | {
32
+ name: string;
33
+ type: string;
34
+ description: string;
35
+ required: boolean;
36
+ default?: undefined;
37
+ enum?: undefined;
38
+ } | {
39
+ name: string;
40
+ type: string;
41
+ description: string;
42
+ default: number;
43
+ enum?: undefined;
44
+ required?: undefined;
45
+ } | {
46
+ name: string;
47
+ type: string;
48
+ description: string;
49
+ default?: undefined;
50
+ enum?: undefined;
51
+ required?: undefined;
52
+ } | {
53
+ name: string;
54
+ type: string;
55
+ description: string;
56
+ default: {};
57
+ enum?: undefined;
58
+ required?: undefined;
59
+ })[];
60
+ quickStart: {
61
+ basic: string;
62
+ horizontal: string;
63
+ bordered: string;
64
+ interactive: string;
65
+ centered: string;
66
+ };
67
+ commonPatterns: {
68
+ 'Card Container': {
69
+ code: string;
70
+ useCase: string;
71
+ };
72
+ 'Horizontal Layout': {
73
+ code: string;
74
+ useCase: string;
75
+ };
76
+ 'Vertical Stack': {
77
+ code: string;
78
+ useCase: string;
79
+ };
80
+ 'Centered Content': {
81
+ code: string;
82
+ useCase: string;
83
+ };
84
+ 'Dashboard Section': {
85
+ code: string;
86
+ useCase: string;
87
+ };
88
+ };
89
+ examples: string[];
90
+ troubleshooting: {
91
+ 'Children not aligning correctly': string;
92
+ 'Hover effects not working': string;
93
+ 'Border not showing': string;
94
+ 'Gap not working': string;
95
+ 'Focus ring not visible': string;
96
+ };
97
+ bestPractices: string[];
98
+ };
99
+ compositionTips: string[];
100
+ };
101
+ export default _default;
@@ -3,6 +3,17 @@ declare const _default: {
3
3
  name: string;
4
4
  import: string;
5
5
  description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
6
17
  props: ({
7
18
  name: string;
8
19
  type: string;
@@ -28,7 +39,35 @@ declare const _default: {
28
39
  default: boolean;
29
40
  required?: undefined;
30
41
  })[];
42
+ quickStart: {
43
+ basic: string;
44
+ withIcon: string;
45
+ bordered: string;
46
+ custom: string;
47
+ };
48
+ commonPatterns: {
49
+ 'E-commerce': {
50
+ code: string;
51
+ useCase: string;
52
+ };
53
+ Documentation: {
54
+ code: string;
55
+ useCase: string;
56
+ };
57
+ 'Admin Panel': {
58
+ code: string;
59
+ useCase: string;
60
+ };
61
+ };
31
62
  examples: string[];
63
+ troubleshooting: {
64
+ 'Links not working': string;
65
+ 'Separator not showing': string;
66
+ 'Accessibility issues': string;
67
+ 'Items not displaying': string;
68
+ 'Styling issues': string;
69
+ };
70
+ bestPractices: string[];
32
71
  };
33
72
  compositionTips: string[];
34
73
  };
@@ -3,6 +3,17 @@ declare const _default: {
3
3
  name: string;
4
4
  import: string;
5
5
  description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
6
17
  props: ({
7
18
  name: string;
8
19
  type: string;
@@ -10,13 +21,6 @@ declare const _default: {
10
21
  default: string;
11
22
  enum: string[];
12
23
  required?: undefined;
13
- } | {
14
- name: string;
15
- type: string;
16
- description: string;
17
- default: string;
18
- enum?: undefined;
19
- required?: undefined;
20
24
  } | {
21
25
  name: string;
22
26
  type: string;
@@ -53,7 +57,41 @@ declare const _default: {
53
57
  enum?: undefined;
54
58
  required?: undefined;
55
59
  })[];
60
+ quickStart: {
61
+ basic: string;
62
+ primary: string;
63
+ secondary: string;
64
+ rounded: string;
65
+ icon: string;
66
+ withIcon: string;
67
+ };
68
+ commonPatterns: {
69
+ 'Primary Action': {
70
+ code: string;
71
+ useCase: string;
72
+ };
73
+ 'Secondary Action': {
74
+ code: string;
75
+ useCase: string;
76
+ };
77
+ 'Icon Button': {
78
+ code: string;
79
+ useCase: string;
80
+ };
81
+ 'Form Submit': {
82
+ code: string;
83
+ useCase: string;
84
+ };
85
+ };
56
86
  examples: string[];
87
+ troubleshooting: {
88
+ 'Button not clickable': string;
89
+ 'Accessibility issues': string;
90
+ 'Styling not applied': string;
91
+ 'Form submission not working': string;
92
+ 'Icon not displaying': string;
93
+ };
94
+ bestPractices: string[];
57
95
  };
58
96
  compositionTips: string[];
59
97
  };
@@ -3,6 +3,17 @@ declare const _default: {
3
3
  name: string;
4
4
  import: string;
5
5
  description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
6
17
  props: ({
7
18
  name: string;
8
19
  type: string;
@@ -39,7 +50,52 @@ declare const _default: {
39
50
  default?: undefined;
40
51
  enum?: undefined;
41
52
  })[];
53
+ quickStart: {
54
+ basic: string;
55
+ bordered: string;
56
+ horizontal: string;
57
+ highlighted: string;
58
+ interactive: string;
59
+ combined: string;
60
+ scrollable: string;
61
+ };
62
+ commonPatterns: {
63
+ 'E-commerce Product Card (Vertical)': {
64
+ code: string;
65
+ useCase: string;
66
+ };
67
+ 'Horizontal Media Card': {
68
+ code: string;
69
+ useCase: string;
70
+ };
71
+ 'Compact Interactive Card': {
72
+ code: string;
73
+ useCase: string;
74
+ };
75
+ 'Simple Content Card': {
76
+ code: string;
77
+ useCase: string;
78
+ };
79
+ 'Clickable Card with Shadow': {
80
+ code: string;
81
+ useCase: string;
82
+ };
83
+ 'Combined Effects Card': {
84
+ code: string;
85
+ useCase: string;
86
+ };
87
+ };
42
88
  examples: string[];
89
+ troubleshooting: {
90
+ 'Content overflowing': string;
91
+ 'Card too wide on large screens': string;
92
+ 'Inconsistent spacing': string;
93
+ 'Horizontal layout not working': string;
94
+ 'Border not showing': string;
95
+ 'Shadow hover not visible': string;
96
+ 'Hover effects not working': string;
97
+ };
98
+ bestPractices: string[];
43
99
  };
44
100
  compositionTips: string[];
45
101
  };
@@ -3,6 +3,17 @@ declare const _default: {
3
3
  name: string;
4
4
  import: string;
5
5
  description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
6
17
  props: ({
7
18
  name: string;
8
19
  type: string;
@@ -32,7 +43,39 @@ declare const _default: {
32
43
  default?: undefined;
33
44
  required?: undefined;
34
45
  })[];
46
+ quickStart: {
47
+ question: string;
48
+ answer: string;
49
+ pending: string;
50
+ withActions: string;
51
+ };
52
+ commonPatterns: {
53
+ 'User Question': {
54
+ code: string;
55
+ useCase: string;
56
+ };
57
+ 'AI Response': {
58
+ code: string;
59
+ useCase: string;
60
+ };
61
+ 'Typing Indicator': {
62
+ code: string;
63
+ useCase: string;
64
+ };
65
+ 'System Message': {
66
+ code: string;
67
+ useCase: string;
68
+ };
69
+ };
35
70
  examples: string[];
71
+ troubleshooting: {
72
+ 'Actions not showing': string;
73
+ 'Status not updating': string;
74
+ 'Styling issues': string;
75
+ 'Accessibility issues': string;
76
+ 'Content not displaying': string;
77
+ };
78
+ bestPractices: string[];
36
79
  };
37
80
  compositionTips: string[];
38
81
  };
@@ -3,6 +3,17 @@ declare const _default: {
3
3
  name: string;
4
4
  import: string;
5
5
  description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
6
17
  props: ({
7
18
  name: string;
8
19
  type: string;
@@ -3,6 +3,17 @@ declare const _default: {
3
3
  name: string;
4
4
  import: string;
5
5
  description: string;
6
+ category: string;
7
+ complexity: string;
8
+ accessibility: string;
9
+ performance: string;
10
+ dependencies: string[];
11
+ peerDependencies: string[];
12
+ bundleSize: string;
13
+ browserSupport: string;
14
+ touchSupport: boolean;
15
+ keyboardSupport: boolean;
16
+ screenReaderSupport: boolean;
6
17
  props: ({
7
18
  name: string;
8
19
  type: string;