@axzydev/axzy_ui_system 1.2.13 → 1.2.15

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 (260) hide show
  1. package/README.md +43 -0
  2. package/dist/index.cjs +6503 -6398
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.css +1 -1
  5. package/dist/index.css.map +1 -1
  6. package/dist/index.d.cts +169 -110
  7. package/dist/index.d.ts +169 -110
  8. package/dist/index.js +6519 -6414
  9. package/dist/index.js.map +1 -1
  10. package/package.json +4 -2
  11. package/src/App.tsx +86 -81
  12. package/src/components/{avatar → atoms/avatar}/avatar.doc.mdx +2 -2
  13. package/src/components/{avatar → atoms/avatar}/avatar.stories.tsx +1 -2
  14. package/src/components/{avatar → atoms/avatar}/avatar.tsx +1 -1
  15. package/src/components/{badget → atoms/badget}/badget.doc.mdx +4 -4
  16. package/src/components/{badget → atoms/badget}/badget.props.ts +1 -1
  17. package/src/components/{badget → atoms/badget}/badget.stories.tsx +1 -2
  18. package/src/components/{badget → atoms/badget}/badget.tsx +3 -3
  19. package/src/components/{button → atoms/button}/button.doc.mdx +3 -3
  20. package/src/components/{button → atoms/button}/button.props.ts +3 -3
  21. package/src/components/{button → atoms/button}/button.stories.tsx +1 -2
  22. package/src/components/{button → atoms/button}/button.tsx +7 -7
  23. package/src/components/{checkbox → atoms/checkbox}/checkbox.doc.mdx +2 -2
  24. package/src/components/{checkbox → atoms/checkbox}/checkbox.stories.tsx +2 -3
  25. package/src/components/{checkbox → atoms/checkbox}/checkbox.tsx +1 -1
  26. package/src/components/{divider → atoms/divider}/divider.doc.mdx +2 -2
  27. package/src/components/{divider → atoms/divider}/divider.stories.tsx +3 -4
  28. package/src/components/{flex → atoms/flex}/flex.doc.mdx +2 -2
  29. package/src/components/{flex → atoms/flex}/flex.stories.tsx +1 -2
  30. package/src/components/{grid → atoms/grid}/grid.doc.mdx +2 -2
  31. package/src/components/{grid → atoms/grid}/grid.stories.tsx +1 -2
  32. package/src/components/{image → atoms/image}/image.doc.mdx +2 -2
  33. package/src/components/{image → atoms/image}/image.stories.tsx +1 -2
  34. package/src/components/{input → atoms/input}/input.doc.mdx +3 -3
  35. package/src/components/{input → atoms/input}/input.props.ts +3 -3
  36. package/src/components/{input → atoms/input}/input.stories.tsx +2 -4
  37. package/src/components/{input → atoms/input}/input.tsx +5 -14
  38. package/src/components/{loader → atoms/loader}/loader.doc.mdx +2 -2
  39. package/src/components/{loader → atoms/loader}/loader.stories.tsx +2 -3
  40. package/src/components/{loader → atoms/loader}/loader.tsx +1 -1
  41. package/src/components/{popover → atoms/popover}/popover.doc.mdx +2 -2
  42. package/src/components/{popover → atoms/popover}/popover.stories.tsx +3 -4
  43. package/src/components/{progress → atoms/progress}/progress.doc.mdx +2 -2
  44. package/src/components/{progress → atoms/progress}/progress.stories.tsx +2 -3
  45. package/src/components/{radio → atoms/radio}/radio.doc.mdx +2 -2
  46. package/src/components/{radio → atoms/radio}/radio.stories.tsx +1 -3
  47. package/src/components/{radio → atoms/radio}/radio.tsx +1 -1
  48. package/src/components/{segmented-control → atoms/segmented-control}/segmented-control.doc.mdx +2 -2
  49. package/src/components/{segmented-control → atoms/segmented-control}/segmented-control.stories.tsx +1 -2
  50. package/src/components/{segmented-control → atoms/segmented-control}/segmented-control.tsx +1 -1
  51. package/src/components/{skeleton → atoms/skeleton}/skeleton.doc.mdx +2 -2
  52. package/src/components/{skeleton → atoms/skeleton}/skeleton.stories.tsx +2 -3
  53. package/src/components/{slide → atoms/slide}/slide.doc.mdx +2 -2
  54. package/src/components/{slide → atoms/slide}/slide.stories.tsx +1 -2
  55. package/src/components/{slider → atoms/slider}/slider.doc.mdx +2 -2
  56. package/src/components/{slider → atoms/slider}/slider.stories.tsx +1 -2
  57. package/src/components/{slider → atoms/slider}/slider.tsx +1 -1
  58. package/src/components/{stack → atoms/stack}/stack.doc.mdx +2 -2
  59. package/src/components/{stack → atoms/stack}/stack.stories.tsx +2 -3
  60. package/src/components/{text → atoms/text}/text.doc.mdx +2 -2
  61. package/src/components/{text → atoms/text}/text.stories.tsx +1 -2
  62. package/src/components/{textarea → atoms/textarea}/textarea.doc.mdx +2 -2
  63. package/src/components/{textarea → atoms/textarea}/textarea.props.ts +0 -2
  64. package/src/components/{textarea → atoms/textarea}/textarea.stories.tsx +1 -2
  65. package/src/components/{textarea → atoms/textarea}/textarea.tsx +1 -1
  66. package/src/components/{tooltip → atoms/tooltip}/tooltip.doc.mdx +2 -2
  67. package/src/components/{tooltip → atoms/tooltip}/tooltip.stories.tsx +2 -3
  68. package/src/components/{tooltip → atoms/tooltip}/tooltip.tsx +1 -1
  69. package/src/components/isolation/isolation.stories.tsx +202 -0
  70. package/src/components/{alert → molecules/alert}/alert.doc.mdx +2 -2
  71. package/src/components/{alert → molecules/alert}/alert.stories.tsx +1 -2
  72. package/src/components/{alert → molecules/alert}/alert.tsx +1 -2
  73. package/src/components/{breadcrumbs → molecules/breadcrumbs}/breadcrumbs.doc.mdx +2 -2
  74. package/src/components/{breadcrumbs → molecules/breadcrumbs}/breadcrumbs.stories.tsx +1 -2
  75. package/src/components/{breadcrumbs → molecules/breadcrumbs}/breadcrumbs.tsx +1 -1
  76. package/src/components/{calendar → molecules/calendar}/calendar.doc.mdx +2 -2
  77. package/src/components/{calendar → molecules/calendar}/calendar.stories.tsx +1 -2
  78. package/src/components/{calendar → molecules/calendar}/calendar.tsx +42 -42
  79. package/src/components/molecules/calendar/index.ts +2 -0
  80. package/src/components/{card → molecules/card}/card.doc.mdx +2 -2
  81. package/src/components/{card → molecules/card}/card.stories.tsx +2 -3
  82. package/src/components/{card → molecules/card}/card.tsx +4 -4
  83. package/src/components/{date-picker → molecules/date-picker}/date-picker.doc.mdx +3 -3
  84. package/src/components/{date-picker → molecules/date-picker}/date-picker.props.ts +1 -1
  85. package/src/components/{date-picker → molecules/date-picker}/date-picker.stories.tsx +1 -3
  86. package/src/components/{date-picker → molecules/date-picker}/datePicker.tsx +3 -3
  87. package/src/components/{empty-state → molecules/empty-state}/empty-state.doc.mdx +3 -3
  88. package/src/components/{empty-state → molecules/empty-state}/empty-state.stories.tsx +3 -4
  89. package/src/components/{empty-state → molecules/empty-state}/empty-state.tsx +1 -1
  90. package/src/components/{form-header → molecules/form-header}/form-header.doc.mdx +2 -2
  91. package/src/components/{form-header → molecules/form-header}/form-header.stories.tsx +1 -2
  92. package/src/components/{form-header → molecules/form-header}/form-header.tsx +2 -2
  93. package/src/components/{pagination → molecules/pagination}/pagination.doc.mdx +2 -2
  94. package/src/components/{pagination → molecules/pagination}/pagination.stories.tsx +1 -2
  95. package/src/components/{pagination → molecules/pagination}/pagination.tsx +8 -8
  96. package/src/components/{search-select → molecules/search-select}/index.ts +1 -1
  97. package/src/components/{search-select → molecules/search-select}/search-select.doc.mdx +2 -2
  98. package/src/components/{search-select → molecules/search-select}/search-select.props.ts +3 -0
  99. package/src/components/{search-select → molecules/search-select}/search-select.stories.tsx +1 -2
  100. package/src/components/{search-select → molecules/search-select}/search-select.tsx +8 -6
  101. package/src/components/{select → molecules/select}/select.doc.mdx +2 -2
  102. package/src/components/{select → molecules/select}/select.stories.tsx +1 -2
  103. package/src/components/{select → molecules/select}/select.tsx +8 -16
  104. package/src/components/{stat-card → molecules/stat-card}/stat-card.doc.mdx +2 -2
  105. package/src/components/{stat-card → molecules/stat-card}/stat-card.stories.tsx +2 -3
  106. package/src/components/{stat-card → molecules/stat-card}/stat-card.tsx +1 -1
  107. package/src/components/{stepper → molecules/stepper}/stepper.doc.mdx +2 -2
  108. package/src/components/{stepper → molecules/stepper}/stepper.stories.tsx +1 -2
  109. package/src/components/{stepper → molecules/stepper}/stepper.tsx +9 -10
  110. package/src/components/{table → molecules/table}/table.doc.mdx +2 -2
  111. package/src/components/{table → molecules/table}/table.stories.tsx +5 -22
  112. package/src/components/{table → molecules/table}/table.tsx +5 -15
  113. package/src/components/{tabs → molecules/tabs}/tabs.doc.mdx +2 -2
  114. package/src/components/{tabs → molecules/tabs}/tabs.stories.tsx +1 -2
  115. package/src/components/{tabs → molecules/tabs}/tabs.tsx +1 -1
  116. package/src/components/{time-picker → molecules/time-picker}/timePicker.doc.mdx +3 -3
  117. package/src/components/{time-picker → molecules/time-picker}/timePicker.props.ts +4 -2
  118. package/src/components/{time-picker → molecules/time-picker}/timePicker.stories.tsx +3 -4
  119. package/src/components/{time-picker → molecules/time-picker}/timePicker.tsx +5 -5
  120. package/src/components/{confirm-dialog → organisms/confirm-dialog}/confirm-dialog.doc.mdx +2 -2
  121. package/src/components/{confirm-dialog → organisms/confirm-dialog}/confirm-dialog.stories.tsx +2 -3
  122. package/src/components/{confirm-dialog → organisms/confirm-dialog}/confirm-dialog.tsx +4 -4
  123. package/src/components/{data-table → organisms/data-table}/ITDataTable.doc.mdx +2 -2
  124. package/src/components/{data-table → organisms/data-table}/ITDataTable.stories.tsx +3 -4
  125. package/src/components/{data-table → organisms/data-table}/dataTable.props.ts +1 -1
  126. package/src/components/{data-table → organisms/data-table}/dataTable.tsx +11 -9
  127. package/src/components/{dialog → organisms/dialog}/dialog.doc.mdx +2 -2
  128. package/src/components/{dialog → organisms/dialog}/dialog.stories.tsx +3 -5
  129. package/src/components/{dialog → organisms/dialog}/dialog.tsx +2 -2
  130. package/src/components/{drawer → organisms/drawer}/drawer.doc.mdx +2 -2
  131. package/src/components/{drawer → organisms/drawer}/drawer.stories.tsx +2 -3
  132. package/src/components/{drawer → organisms/drawer}/drawer.tsx +1 -1
  133. package/src/components/{dropfile → organisms/dropfile}/dropfile.doc.mdx +3 -3
  134. package/src/components/{dropfile → organisms/dropfile}/dropfile.props.ts +8 -4
  135. package/src/components/{dropfile → organisms/dropfile}/dropfile.stories.tsx +2 -5
  136. package/src/components/{dropfile → organisms/dropfile}/dropfile.tsx +25 -12
  137. package/src/components/{form-builder → organisms/form-builder}/fieldRenderer.tsx +30 -20
  138. package/src/components/{form-builder → organisms/form-builder}/formBuilder.context.tsx +3 -2
  139. package/src/components/{form-builder → organisms/form-builder}/formBuilder.doc.mdx +2 -2
  140. package/src/components/{form-builder → organisms/form-builder}/formBuilder.stories.tsx +0 -1
  141. package/src/components/{form-builder → organisms/form-builder}/formBuilder.tsx +4 -5
  142. package/src/components/{form-builder → organisms/form-builder}/useFormBuilder.ts +4 -4
  143. package/src/components/{navbar → organisms/navbar}/navbar.doc.mdx +2 -2
  144. package/src/components/{navbar → organisms/navbar}/navbar.stories.tsx +1 -2
  145. package/src/components/{navbar → organisms/navbar}/navbar.tsx +1 -1
  146. package/src/components/{page-header → organisms/page-header}/page-header.doc.mdx +2 -2
  147. package/src/components/{page-header → organisms/page-header}/page-header.props.ts +1 -1
  148. package/src/components/{page-header → organisms/page-header}/page-header.stories.tsx +5 -6
  149. package/src/components/{page-header → organisms/page-header}/page-header.tsx +2 -2
  150. package/src/components/{searchTable → organisms/searchTable}/components/EditableCell.tsx +4 -5
  151. package/src/components/{searchTable → organisms/searchTable}/components/PaginationControls.tsx +6 -6
  152. package/src/components/{searchTable → organisms/searchTable}/components/PaginationInfo.tsx +1 -1
  153. package/src/components/{searchTable → organisms/searchTable}/components/SearchAndSortBar.tsx +3 -3
  154. package/src/components/{searchTable → organisms/searchTable}/components/SearchInput.tsx +1 -1
  155. package/src/components/{searchTable → organisms/searchTable}/components/SortButton.tsx +1 -1
  156. package/src/components/{searchTable → organisms/searchTable}/components/TableEmptyState.tsx +1 -1
  157. package/src/components/{searchTable → organisms/searchTable}/components/TableHeaderCell.tsx +1 -1
  158. package/src/components/{searchTable → organisms/searchTable}/searchTable.doc.mdx +2 -2
  159. package/src/components/{searchTable → organisms/searchTable}/searchTable.stories.tsx +1 -2
  160. package/src/components/{searchTable → organisms/searchTable}/searchTable.tsx +1 -2
  161. package/src/components/{sidebar → organisms/sidebar}/sidebar.doc.mdx +2 -2
  162. package/src/components/{sidebar → organisms/sidebar}/sidebar.stories.tsx +1 -2
  163. package/src/components/{sidebar → organisms/sidebar}/sidebar.tsx +45 -43
  164. package/src/components/{toast → organisms/toast}/toast.doc.mdx +2 -2
  165. package/src/components/{toast → organisms/toast}/toast.stories.tsx +2 -3
  166. package/src/components/{toast → organisms/toast}/toast.tsx +1 -2
  167. package/src/components/{topbar → organisms/topbar}/topbar.doc.mdx +2 -2
  168. package/src/components/{topbar → organisms/topbar}/topbar.stories.tsx +1 -2
  169. package/src/components/{topbar → organisms/topbar}/topbar.tsx +25 -25
  170. package/src/components/{triple-filter → organisms/triple-filter}/tripleFilter.doc.mdx +2 -2
  171. package/src/components/{triple-filter → organisms/triple-filter}/tripleFilter.props.ts +0 -1
  172. package/src/components/{triple-filter → organisms/triple-filter}/tripleFilter.stories.tsx +0 -1
  173. package/src/components/{triple-filter → organisms/triple-filter}/tripleFilter.tsx +1 -1
  174. package/src/components/{layout → templates/layout}/layout.doc.mdx +2 -2
  175. package/src/components/{layout → templates/layout}/layout.props.ts +2 -2
  176. package/src/components/{layout → templates/layout}/layout.stories.tsx +1 -2
  177. package/src/components/{layout → templates/layout}/layout.tsx +2 -2
  178. package/src/components/{page → templates/page}/page.doc.mdx +2 -2
  179. package/src/components/{page → templates/page}/page.props.ts +1 -1
  180. package/src/components/{page → templates/page}/page.stories.tsx +6 -7
  181. package/src/components/{page → templates/page}/page.tsx +6 -6
  182. package/src/components/theme-provider/themePresets.ts +154 -0
  183. package/src/components/theme-provider/themeProvider.doc.mdx +10 -2
  184. package/src/components/theme-provider/themeProvider.props.ts +6 -0
  185. package/src/components/theme-provider/themeProvider.stories.tsx +3 -4
  186. package/src/components/theme-provider/themeProvider.tsx +210 -268
  187. package/src/hooks/useEditableRow.ts +1 -1
  188. package/src/index.css +36 -86
  189. package/src/index.ts +97 -97
  190. package/src/showcases/DataShowcases.tsx +4 -8
  191. package/src/showcases/FeedbackShowcases.tsx +6 -6
  192. package/src/showcases/FormShowcases.tsx +7 -7
  193. package/src/showcases/GettingStartedShowcase.tsx +8 -9
  194. package/src/showcases/HomeShowcase.tsx +12 -12
  195. package/src/showcases/LayoutPrimitivesShowcases.tsx +36 -57
  196. package/src/showcases/PageShowcases.tsx +41 -53
  197. package/src/showcases/ShowcaseLayout.tsx +1 -2
  198. package/src/showcases/SizesShowcase.tsx +85 -0
  199. package/src/showcases/StructureShowcases.tsx +31 -33
  200. package/src/theme/theme-context.ts +37 -0
  201. package/src/theme/theme.ts +71 -64
  202. package/src/theme/theme.types.ts +41 -0
  203. package/src/types/badget.types.ts +3 -3
  204. package/src/types/button.types.ts +3 -3
  205. package/src/types/sizes.types.ts +2 -1
  206. package/src/utils/styles.ts +37 -0
  207. package/src/components/calendar/index.ts +0 -3
  208. package/src/components/stepper/stepper.css +0 -26
  209. package/src/components/toast/toast.css +0 -32
  210. package/src/types/input.types.ts +0 -14
  211. /package/src/components/{avatar → atoms/avatar}/avatar.props.ts +0 -0
  212. /package/src/components/{checkbox → atoms/checkbox}/checkbox.props.ts +0 -0
  213. /package/src/components/{divider → atoms/divider}/divider.props.ts +0 -0
  214. /package/src/components/{divider → atoms/divider}/divider.tsx +0 -0
  215. /package/src/components/{flex → atoms/flex}/flex.props.ts +0 -0
  216. /package/src/components/{flex → atoms/flex}/flex.tsx +0 -0
  217. /package/src/components/{grid → atoms/grid}/grid.props.ts +0 -0
  218. /package/src/components/{grid → atoms/grid}/grid.tsx +0 -0
  219. /package/src/components/{image → atoms/image}/image.props.ts +0 -0
  220. /package/src/components/{image → atoms/image}/image.tsx +0 -0
  221. /package/src/components/{loader → atoms/loader}/loader.props.ts +0 -0
  222. /package/src/components/{popover → atoms/popover}/popover.props.ts +0 -0
  223. /package/src/components/{popover → atoms/popover}/popover.tsx +0 -0
  224. /package/src/components/{progress → atoms/progress}/progress.props.ts +0 -0
  225. /package/src/components/{progress → atoms/progress}/progress.tsx +0 -0
  226. /package/src/components/{radio → atoms/radio}/radio.props.ts +0 -0
  227. /package/src/components/{segmented-control → atoms/segmented-control}/segmented-control.props.ts +0 -0
  228. /package/src/components/{skeleton → atoms/skeleton}/skeleton.props.ts +0 -0
  229. /package/src/components/{skeleton → atoms/skeleton}/skeleton.tsx +0 -0
  230. /package/src/components/{slide → atoms/slide}/slide.props.ts +0 -0
  231. /package/src/components/{slide → atoms/slide}/slide.tsx +0 -0
  232. /package/src/components/{slider → atoms/slider}/slider.props.ts +0 -0
  233. /package/src/components/{stack → atoms/stack}/stack.props.ts +0 -0
  234. /package/src/components/{stack → atoms/stack}/stack.tsx +0 -0
  235. /package/src/components/{text → atoms/text}/text.props.ts +0 -0
  236. /package/src/components/{text → atoms/text}/text.tsx +0 -0
  237. /package/src/components/{tooltip → atoms/tooltip}/tooltip.props.ts +0 -0
  238. /package/src/components/{alert → molecules/alert}/alert.props.ts +0 -0
  239. /package/src/components/{breadcrumbs → molecules/breadcrumbs}/breadcrumbs.props.ts +0 -0
  240. /package/src/components/{calendar → molecules/calendar}/calendar.props.ts +0 -0
  241. /package/src/components/{card → molecules/card}/card.props.ts +0 -0
  242. /package/src/components/{empty-state → molecules/empty-state}/empty-state.props.ts +0 -0
  243. /package/src/components/{form-header → molecules/form-header}/form-header.props.ts +0 -0
  244. /package/src/components/{pagination → molecules/pagination}/pagination.props.ts +0 -0
  245. /package/src/components/{select → molecules/select}/select.props.ts +0 -0
  246. /package/src/components/{stat-card → molecules/stat-card}/stat-card.props.ts +0 -0
  247. /package/src/components/{stepper → molecules/stepper}/stepper.props.ts +0 -0
  248. /package/src/components/{table → molecules/table}/table.props.ts +0 -0
  249. /package/src/components/{tabs → molecules/tabs}/tabs.props.ts +0 -0
  250. /package/src/components/{confirm-dialog → organisms/confirm-dialog}/confirm-dialog.props.ts +0 -0
  251. /package/src/components/{dialog → organisms/dialog}/dialog.props.ts +0 -0
  252. /package/src/components/{drawer → organisms/drawer}/drawer.props.ts +0 -0
  253. /package/src/components/{form-builder → organisms/form-builder}/formBuilder.props.ts +0 -0
  254. /package/src/components/{navbar → organisms/navbar}/navbar.props.ts +0 -0
  255. /package/src/components/{searchTable → organisms/searchTable}/components/TableHeader.tsx +0 -0
  256. /package/src/components/{searchTable → organisms/searchTable}/components/TableRow.tsx +0 -0
  257. /package/src/components/{searchTable → organisms/searchTable}/searchTable.props.ts +0 -0
  258. /package/src/components/{sidebar → organisms/sidebar}/sidebar.props.ts +0 -0
  259. /package/src/components/{toast → organisms/toast}/toast.props.ts +0 -0
  260. /package/src/components/{topbar → organisms/topbar}/topbar.props.ts +0 -0
@@ -1,34 +1,19 @@
1
- import React, { useState, ReactNode } from "react";
2
- import { FaCode, FaTimes } from "react-icons/fa";
3
- import ITStack from "../components/stack/stack";
4
- import ITFlex from "../components/flex/flex";
5
- import ITGrid from "../components/grid/grid";
6
- import ITCard from "../components/card/card";
7
- import ITButton from "../components/button/button";
8
- import ITStatCard from "../components/stat-card/stat-card";
9
- import ITAvatar from "../components/avatar/avatar";
10
- import ITSlider from "../components/slider/slider";
11
- import ITSegmentedControl from "../components/segmented-control/segmented-control";
12
- import ITSlideToggle from "../components/slide/slide";
13
- import ITSelect from "../components/select/select";
14
- import ITInput from "../components/input/input";
15
- import ITText from "../components/text/text";
1
+ import React, { useState } from "react";
2
+ import { FaCode } from "react-icons/fa";
3
+ import ITStack from "../components/atoms/stack/stack";
4
+ import ITFlex from "../components/atoms/flex/flex";
5
+ import ITGrid from "../components/atoms/grid/grid";
6
+ import ITCard from "../components/molecules/card/card";
7
+ import ITButton from "../components/atoms/button/button";
8
+ import ITStatCard from "../components/molecules/stat-card/stat-card";
9
+ import ITAvatar from "../components/atoms/avatar/avatar";
10
+ import ITSlider from "../components/atoms/slider/slider";
11
+ import ITSegmentedControl from "../components/atoms/segmented-control/segmented-control";
12
+ import ITSlideToggle from "../components/atoms/slide/slide";
13
+ import ITSelect from "../components/molecules/select/select";
14
+ import ITInput from "../components/atoms/input/input";
16
15
  import { ShowcaseLayout, CodeViewer } from "./ShowcaseLayout";
17
16
 
18
- const DemoBox = ({ children, className = "" }: { children: ReactNode; className?: string }) => (
19
- <div className={`bg-primary-100 dark:bg-primary-900/30 text-primary-700 dark:text-primary-300 rounded-lg p-3 text-center text-sm font-medium ${className}`}>
20
- {children}
21
- </div>
22
- );
23
-
24
- const DemoCard = ({ children, className = "" }: { children: ReactNode; className?: string }) => (
25
- <div className={`bg-white dark:bg-slate-800 rounded-xl border border-slate-200 dark:border-slate-700 p-4 shadow-sm ${className}`}>
26
- <div className="h-8 w-8 rounded-lg bg-primary-100 dark:bg-primary-900/50 mb-3" />
27
- <p className="text-sm font-semibold text-slate-700 dark:text-slate-200">{children}</p>
28
- <p className="text-xs text-slate-400 mt-1">Descripción del item</p>
29
- </div>
30
- );
31
-
32
17
  // ─────────────────────────────────────────
33
18
  // 1. ITStack Showcase
34
19
  // ─────────────────────────────────────────
@@ -421,10 +406,10 @@ export const StackShowcase = () => {
421
406
  <p className="text-xs text-slate-500 dark:text-slate-400">128 active records</p>
422
407
  </div>
423
408
  <ITStack direction="row" spacing={2}>
424
- <ITButton variant="outlined" color="gray" size="small">
409
+ <ITButton variant="outlined" color="gray" size="sm">
425
410
  Export
426
411
  </ITButton>
427
- <ITButton variant="filled" color="primary" size="small">
412
+ <ITButton variant="filled" color="primary" size="sm">
428
413
  + New Record
429
414
  </ITButton>
430
415
  </ITStack>
@@ -494,7 +479,7 @@ export const StackShowcase = () => {
494
479
  <p className="text-sm font-semibold text-emerald-900 dark:text-emerald-200">Deployment successful</p>
495
480
  <p className="text-xs text-emerald-700 dark:text-emerald-400 mt-0.5">Your changes are live in production.</p>
496
481
  </div>
497
- <ITButton variant="icon-only" color="gray" size="small">
482
+ <ITButton variant="icon-only" color="gray" size="sm">
498
483
  <span className="text-lg leading-none">×</span>
499
484
  </ITButton>
500
485
  </ITStack>
@@ -556,7 +541,7 @@ const PatternCard = ({ title, desc, code, children }: { title: string; desc?: st
556
541
  {desc && <p className="text-[11px] text-slate-500 dark:text-slate-400 mt-0.5">{desc}</p>}
557
542
  </div>
558
543
  {code && (
559
- <ITButton variant="outlined" color="gray" size="small" onClick={() => setShowCode(!showCode)}>
544
+ <ITButton variant="outlined" color="gray" size="sm" onClick={() => setShowCode(!showCode)}>
560
545
  <ITFlex align="center" gap={1}>
561
546
  <FaCode size={9} />
562
547
  {showCode ? "Hide code" : "Code"}
@@ -590,8 +575,8 @@ const FLEX_PATTERN_CODES = {
590
575
  <p>Last edited 2 min ago</p>
591
576
  </ITFlex>
592
577
  <ITFlex direction="row" gap={2}>
593
- <ITButton label="Cancel" variant="outlined" color="gray" size="small" />
594
- <ITButton label="Save" variant="filled" color="primary" size="small" />
578
+ <ITButton label="Cancel" variant="outlined" color="gray" size="sm" />
579
+ <ITButton label="Save" variant="filled" color="primary" size="sm" />
595
580
  </ITFlex>
596
581
  </ITFlex>`,
597
582
  growItems: `<ITFlex direction="row" gap={3}>
@@ -615,7 +600,7 @@ const FLEX_PATTERN_CODES = {
615
600
  <p className="text-lg font-bold ...">All set!</p>
616
601
  <p className="text-xs ...">Your workspace is ready to use.</p>
617
602
  </div>
618
- <ITButton label="Get started" variant="filled" color="primary" size="small" />
603
+ <ITButton label="Get started" variant="filled" color="primary" size="sm" />
619
604
  </ITFlex>`,
620
605
  formRowWrap: `<ITFlex
621
606
  direction="row"
@@ -784,8 +769,8 @@ export const FlexShowcase = () => {
784
769
  <p className="text-[11px] text-slate-500 dark:text-slate-400">Last edited 2 min ago</p>
785
770
  </ITFlex>
786
771
  <ITFlex direction="row" gap={2}>
787
- <ITButton label="Cancel" variant="outlined" color="gray" size="small" />
788
- <ITButton label="Save" variant="filled" color="primary" size="small" />
772
+ <ITButton label="Cancel" variant="outlined" color="gray" size="sm" />
773
+ <ITButton label="Save" variant="filled" color="primary" size="sm" />
789
774
  </ITFlex>
790
775
  </ITFlex>
791
776
  </div>
@@ -827,7 +812,7 @@ export const FlexShowcase = () => {
827
812
  <p className="text-lg font-bold text-slate-800 dark:text-slate-100">All set!</p>
828
813
  <p className="text-xs text-slate-500 dark:text-slate-400 mt-1">Your workspace is ready to use.</p>
829
814
  </div>
830
- <ITButton label="Get started" variant="filled" color="primary" size="small" />
815
+ <ITButton label="Get started" variant="filled" color="primary" size="sm" />
831
816
  </ITFlex>
832
817
  </div>
833
818
  </PatternCard>
@@ -1038,7 +1023,7 @@ export const GridShowcase = () => {
1038
1023
  <p className="text-base font-bold text-slate-800 dark:text-slate-100">Overview</p>
1039
1024
  <p className="text-[11px] text-slate-500 dark:text-slate-400">Last 30 days</p>
1040
1025
  </div>
1041
- <ITButton label="+ New project" variant="filled" color="primary" size="small" />
1026
+ <ITButton label="+ New project" variant="filled" color="primary" size="sm" />
1042
1027
  </ITFlex>
1043
1028
  <ITGrid container spacing={2}>
1044
1029
  {[
@@ -1084,7 +1069,7 @@ export const GridShowcase = () => {
1084
1069
  <span className="px-2 py-0.5 rounded-full text-[10px] font-semibold bg-primary-600 text-white">Design</span>
1085
1070
  <span className="px-2 py-0.5 rounded-full text-[10px] font-semibold bg-slate-200 dark:bg-slate-700 text-slate-600 dark:text-slate-300">Figma</span>
1086
1071
  </div>
1087
- <ITButton label="Follow" variant="outlined" color="primary" size="small" className="mt-4 w-full" />
1072
+ <ITButton label="Follow" variant="outlined" color="primary" size="sm" className="mt-4 w-full" />
1088
1073
  </div>
1089
1074
  </ITGrid>
1090
1075
  <ITGrid item xs={12} md={8}>
@@ -1168,8 +1153,8 @@ export const GridShowcase = () => {
1168
1153
  </ITGrid>
1169
1154
  </ITGrid>
1170
1155
  <div className="flex justify-end gap-2 pt-2 border-t border-slate-100 dark:border-slate-800">
1171
- <ITButton label="Cancel" variant="outlined" color="gray" size="small" />
1172
- <ITButton label="Save changes" variant="filled" color="primary" size="small" />
1156
+ <ITButton label="Cancel" variant="outlined" color="gray" size="sm" />
1157
+ <ITButton label="Save changes" variant="filled" color="primary" size="sm" />
1173
1158
  </div>
1174
1159
  </div>
1175
1160
  </ITGrid>
@@ -1224,7 +1209,7 @@ export const GridShowcase = () => {
1224
1209
  ))}
1225
1210
  </div>
1226
1211
  </div>
1227
- <ITButton label="Share article" variant="outlined" color="primary" size="small" className="w-full" />
1212
+ <ITButton label="Share article" variant="outlined" color="primary" size="sm" className="w-full" />
1228
1213
  </div>
1229
1214
  </ITGrid>
1230
1215
  </ITGrid>
@@ -1294,7 +1279,7 @@ export const GridShowcase = () => {
1294
1279
  label={plan.cta}
1295
1280
  variant={plan.featured ? "filled" : "outlined"}
1296
1281
  color={plan.featured ? "primary" : "gray"}
1297
- size="small"
1282
+ size="sm"
1298
1283
  className="w-full mt-4"
1299
1284
  />
1300
1285
  </div>
@@ -1313,16 +1298,9 @@ export const GridShowcase = () => {
1313
1298
 
1314
1299
  // ─────────────────────────────────────────
1315
1300
  // 4. Composite Screen Examples
1316
- // ─────────────────────────────────────────
1317
- const SectionTitle = ({ children }: { children: string }) => (
1318
- <h3 className="text-lg font-bold text-slate-800 dark:text-white mb-1">{children}</h3>
1319
- );
1301
+ // ─────────────────────────────────────────
1320
1302
 
1321
- const SectionDesc = ({ children }: { children: string }) => (
1322
- <p className="text-sm text-slate-500 dark:text-slate-400 mb-4">{children}</p>
1323
- );
1324
-
1325
- export const ScreenDashboardShowcase = () => {
1303
+ export const ScreenDashboardShowcase = () => {
1326
1304
  const code = `// Dashboard completo en 30 líneas
1327
1305
  <ITStack spacing={6}>
1328
1306
  {/* Header row */}
@@ -1377,7 +1355,7 @@ export const ScreenDashboardShowcase = () => {
1377
1355
  <h2 className="text-xl font-bold text-slate-800 dark:text-white">Dashboard</h2>
1378
1356
  <p className="text-xs text-slate-400">Resumen de actividad del sistema</p>
1379
1357
  </div>
1380
- <ITButton label="Exportar" variant="outlined" size="small" />
1358
+ <ITButton label="Exportar" variant="outlined" size="sm" />
1381
1359
  </ITFlex>
1382
1360
 
1383
1361
  <ITGrid container spacing={3}>
@@ -1486,6 +1464,7 @@ export const ScreenFormShowcase = () => {
1486
1464
  label="Nombre"
1487
1465
  placeholder="Ej: Juan"
1488
1466
  onChange={() => {}}
1467
+ size="sm"
1489
1468
  />
1490
1469
  </ITGrid>
1491
1470
  <ITGrid item xs={12} md={6}>
@@ -1530,8 +1509,8 @@ export const ScreenFormShowcase = () => {
1530
1509
  </ITGrid>
1531
1510
  <ITGrid item xs={12}>
1532
1511
  <ITFlex justify="end" gap={3}>
1533
- <ITButton label="Cancelar" variant="outlined" size="small" />
1534
- <ITButton label="Guardar" size="small" />
1512
+ <ITButton label="Cancelar" variant="outlined" size="sm" />
1513
+ <ITButton label="Guardar" size="sm" />
1535
1514
  </ITFlex>
1536
1515
  </ITGrid>
1537
1516
  </ITGrid>
@@ -10,37 +10,25 @@ import {
10
10
  FaEye,
11
11
  FaPlus,
12
12
  FaDownload,
13
- FaFilter,
14
13
  FaSearch,
15
- FaCheckCircle,
16
- FaTimesCircle,
17
- FaClock,
18
- FaEnvelope,
19
- FaPhone,
20
- FaMapMarkerAlt,
21
14
  FaBell,
22
15
  FaSave,
23
- FaSignOutAlt,
24
16
  FaShieldAlt,
25
17
  FaPalette,
26
- FaLanguage,
27
18
  FaDollarSign,
28
- FaArrowUp,
29
- FaArrowDown,
30
19
  } from "react-icons/fa";
31
- import ITPage from "../components/page/page";
32
- import ITPageHeader from "../components/page-header/page-header";
33
- import ITButton from "../components/button/button";
34
- import ITCard from "../components/card/card";
35
- import ITStack from "../components/stack/stack";
36
- import ITGrid from "../components/grid/grid";
37
- import ITStatCard from "../components/stat-card/stat-card";
38
- import ITFlex from "../components/flex/flex";
39
- import ITAvatar from "../components/avatar/avatar";
40
- import ITSlideToggle from "../components/slide/slide";
41
- import ITText from "@/components/text/text";
42
- import ITTable from "@/components/table/table";
43
- import type { Column } from "@/components/table/table.props";
20
+ import ITPage from "../components/templates/page/page";
21
+ import ITPageHeader from "../components/organisms/page-header/page-header";
22
+ import ITButton from "../components/atoms/button/button";
23
+ import ITCard from "../components/molecules/card/card";
24
+ import ITStack from "../components/atoms/stack/stack";
25
+ import ITGrid from "../components/atoms/grid/grid";
26
+ import ITFlex from "../components/atoms/flex/flex";
27
+ import ITAvatar from "../components/atoms/avatar/avatar";
28
+ import ITSlideToggle from "../components/atoms/slide/slide";
29
+ import ITText from "@/components/atoms/text/text";
30
+ import ITTable from "@/components/molecules/table/table";
31
+ import type { Column } from "@/components/molecules/table/table.props";
44
32
  import { ShowcaseLayout } from "./ShowcaseLayout";
45
33
 
46
34
  export const PageHeaderShowcase = () => {
@@ -61,8 +49,8 @@ export const PageHeaderShowcase = () => {
61
49
  if (showBack) lines.push(` backAction={() => history.back()}`);
62
50
  if (actionsVariant !== "none") {
63
51
  const acts = [];
64
- acts.push(`<ITButton label="Add member" variant="filled" color="primary" size="small" />`);
65
- if (actionsVariant === "double" || actionsVariant === "full") acts.push(`<ITButton label="Export" variant="outlined" color="gray" size="small" />`);
52
+ acts.push(`<ITButton label="Add member" variant="filled" color="primary" size="sm" />`);
53
+ if (actionsVariant === "double" || actionsVariant === "full") acts.push(`<ITButton label="Export" variant="outlined" color="gray" size="sm" />`);
66
54
  lines.push(` actions={<>${acts.join("")}</>}`);
67
55
  }
68
56
  lines.push(`/>`);
@@ -72,9 +60,9 @@ export const PageHeaderShowcase = () => {
72
60
  const actionEl =
73
61
  actionsVariant === "none" ? undefined : (
74
62
  <ITFlex gap={2}>
75
- <ITButton label="Add member" variant="filled" color="primary" size="small" />
63
+ <ITButton label="Add member" variant="filled" color="primary" size="sm" />
76
64
  {(actionsVariant === "double" || actionsVariant === "full") && (
77
- <ITButton label="Export" variant="outlined" color="gray" size="small" />
65
+ <ITButton label="Export" variant="outlined" color="gray" size="sm" />
78
66
  )}
79
67
  </ITFlex>
80
68
  );
@@ -134,7 +122,7 @@ export const PageHeaderShowcase = () => {
134
122
  <option value="pending">Pending</option>
135
123
  <option value="inactive">Inactive</option>
136
124
  </select>
137
- <ITButton label="Clear" variant="text" color="gray" size="small" />
125
+ <ITButton label="Clear" variant="text" color="gray" size="sm" />
138
126
  </ITFlex>
139
127
  </div>
140
128
  )}
@@ -199,7 +187,7 @@ export const PageHeaderShowcase = () => {
199
187
  label={v.charAt(0).toUpperCase() + v.slice(1)}
200
188
  variant={actionsVariant === v ? "filled" : "outlined"}
201
189
  color="primary"
202
- size="small"
190
+ size="sm"
203
191
  onClick={() => setActionsVariant(v)}
204
192
  />
205
193
  ))}
@@ -231,8 +219,8 @@ export const PageHeaderShowcase = () => {
231
219
  backAction={() => {}}
232
220
  actions={
233
221
  <ITFlex gap={2}>
234
- <ITButton label="Export" variant="outlined" color="gray" size="small" />
235
- <ITButton label="Add member" variant="filled" color="primary" size="small" />
222
+ <ITButton label="Export" variant="outlined" color="gray" size="sm" />
223
+ <ITButton label="Add member" variant="filled" color="primary" size="sm" />
236
224
  </ITFlex>
237
225
  }
238
226
  />
@@ -294,8 +282,8 @@ export const PageHeaderShowcase = () => {
294
282
  backAction={() => {}}
295
283
  actions={
296
284
  <ITFlex gap={2}>
297
- <ITButton label="Cancel" variant="outlined" color="gray" size="small" />
298
- <ITButton label="Save changes" variant="filled" color="primary" size="small" />
285
+ <ITButton label="Cancel" variant="outlined" color="gray" size="sm" />
286
+ <ITButton label="Save changes" variant="filled" color="primary" size="sm" />
299
287
  </ITFlex>
300
288
  }
301
289
  />
@@ -335,7 +323,7 @@ export const PageHeaderShowcase = () => {
335
323
  <option>This quarter</option>
336
324
  <option>Custom range</option>
337
325
  </select>
338
- <ITButton label="Refresh" variant="outlined" color="gray" size="small" />
326
+ <ITButton label="Refresh" variant="outlined" color="gray" size="sm" />
339
327
  </ITFlex>
340
328
  }
341
329
  />
@@ -353,8 +341,8 @@ export const PageHeaderShowcase = () => {
353
341
  description="Configure your workspace preferences, notifications and security options."
354
342
  actions={
355
343
  <ITFlex gap={2}>
356
- <ITButton label="Reset" variant="outlined" color="gray" size="small" />
357
- <ITButton label="Save" variant="filled" color="primary" size="small" />
344
+ <ITButton label="Reset" variant="outlined" color="gray" size="sm" />
345
+ <ITButton label="Save" variant="filled" color="primary" size="sm" />
358
346
  </ITFlex>
359
347
  }
360
348
  />
@@ -380,7 +368,7 @@ export const PageHeaderShowcase = () => {
380
368
  <FaSearch size={11} className="absolute left-3 top-1/2 -translate-y-1/2 text-slate-400" />
381
369
  <input type="text" placeholder="Search..." className="w-[180px] pl-9 pr-3 py-2 text-xs border border-slate-200 dark:border-slate-700 rounded-lg bg-slate-50 dark:bg-slate-800 text-slate-800 dark:text-white outline-none focus:ring-2 focus:ring-primary-500" />
382
370
  </div>
383
- <ITButton label="Invite" variant="filled" color="primary" size="small" />
371
+ <ITButton label="Invite" variant="filled" color="primary" size="sm" />
384
372
  </ITFlex>
385
373
  }
386
374
  />
@@ -458,7 +446,7 @@ export const PageShowcase = () => {
458
446
  error={error}
459
447
  empty={isEmpty}
460
448
  onRetry={refetch}
461
- actions={<ITButton label="Invite" size="small" />}
449
+ actions={<ITButton label="Invite" size="sm" />}
462
450
  >
463
451
  <ITTable columns={[...]} data={users} />
464
452
  </ITPage>`;
@@ -616,8 +604,8 @@ export const PageShowcase = () => {
616
604
  empty={state === "empty"}
617
605
  emptyTitle="No team members yet"
618
606
  emptyDescription="Invite your first team member to get started."
619
- emptyAction={<ITButton label="Invite members" size="small" icon={<FaPlus />} />}
620
- actions={<ITButton label="Invite" size="small" icon={<FaPlus />} />}
607
+ emptyAction={<ITButton label="Invite members" size="sm" icon={<FaPlus />} />}
608
+ actions={<ITButton label="Invite" size="sm" icon={<FaPlus />} />}
621
609
  >
622
610
  <ITTable
623
611
  columns={columns}
@@ -640,7 +628,7 @@ export const PageShowcase = () => {
640
628
  key={s}
641
629
  label={s.charAt(0).toUpperCase() + s.slice(1)}
642
630
  variant={state === s ? "filled" : "outlined"}
643
- size="small"
631
+ size="sm"
644
632
  onClick={() => setState(s)}
645
633
  />
646
634
  ))}
@@ -659,13 +647,13 @@ export const PageShowcase = () => {
659
647
  <ITButton
660
648
  label="List"
661
649
  variant={screen === "list" ? "filled" : "outlined"}
662
- size="small"
650
+ size="sm"
663
651
  onClick={() => handleBackToList()}
664
652
  />
665
653
  <ITButton
666
654
  label="Detail (last viewed)"
667
655
  variant={screen === "detail" ? "filled" : "outlined"}
668
- size="small"
656
+ size="sm"
669
657
  disabled={!selectedUser}
670
658
  onClick={() => screen === "list" && selectedUser ? setScreen("detail") : handleBackToList()}
671
659
  />
@@ -693,8 +681,8 @@ export const PageShowcase = () => {
693
681
  breadcrumbs={[{ label: "Admin", href: "#" }, { label: "Users" }]}
694
682
  actions={
695
683
  <ITFlex gap={2}>
696
- <ITButton label="Export" variant="outlined" size="small" icon={<FaDownload />} />
697
- <ITButton label="Add user" size="small" icon={<FaPlus />} />
684
+ <ITButton label="Export" variant="outlined" size="sm" icon={<FaDownload />} />
685
+ <ITButton label="Add user" size="sm" icon={<FaPlus />} />
698
686
  </ITFlex>
699
687
  }
700
688
  >
@@ -721,8 +709,8 @@ export const PageShowcase = () => {
721
709
  backAction={() => {}}
722
710
  actions={
723
711
  <ITFlex gap={2}>
724
- <ITButton label="Delete" variant="outlined" color="gray" size="small" icon={<FaTrash />} />
725
- <ITButton label="Edit" size="small" icon={<FaEdit />} />
712
+ <ITButton label="Delete" variant="outlined" color="gray" size="sm" icon={<FaTrash />} />
713
+ <ITButton label="Edit" size="sm" icon={<FaEdit />} />
726
714
  </ITFlex>
727
715
  }
728
716
  >
@@ -768,8 +756,8 @@ export const PageShowcase = () => {
768
756
  backAction={() => {}}
769
757
  actions={
770
758
  <ITFlex gap={2}>
771
- <ITButton label="Cancel" variant="outlined" color="gray" size="small" />
772
- <ITButton label="Save changes" size="small" icon={<FaSave />} />
759
+ <ITButton label="Cancel" variant="outlined" color="gray" size="sm" />
760
+ <ITButton label="Save changes" size="sm" icon={<FaSave />} />
773
761
  </ITFlex>
774
762
  }
775
763
  >
@@ -778,7 +766,7 @@ export const PageShowcase = () => {
778
766
  <ITCard title="Profile photo">
779
767
  <div className="flex flex-col items-center gap-4">
780
768
  <ITAvatar initials="AL" size="xl" />
781
- <ITButton label="Upload image" variant="outlined" size="small" />
769
+ <ITButton label="Upload image" variant="outlined" size="sm" />
782
770
  </div>
783
771
  </ITCard>
784
772
  </ITGrid>
@@ -817,8 +805,8 @@ export const PageShowcase = () => {
817
805
  breadcrumbs={[{ label: "Dashboard", href: "#" }, { label: "Orders" }]}
818
806
  actions={
819
807
  <ITFlex gap={2}>
820
- <ITButton label="Export" variant="outlined" color="gray" size="small" icon={<FaDownload />} />
821
- <ITButton label="New order" size="small" icon={<FaPlus />} />
808
+ <ITButton label="Export" variant="outlined" color="gray" size="sm" icon={<FaDownload />} />
809
+ <ITButton label="New order" size="sm" icon={<FaPlus />} />
822
810
  </ITFlex>
823
811
  }
824
812
  >
@@ -1,7 +1,6 @@
1
1
  import React, { useState } from "react";
2
2
  import { FaCheck, FaCopy, FaBookOpen, FaCog, FaCode, FaEye } from "react-icons/fa";
3
- import ITCard from "../components/card/card";
4
- import ITGrid from "../components/grid/grid";
3
+ import ITGrid from "../components/atoms/grid/grid";
5
4
  import { useITTheme } from "../components/theme-provider/themeProvider";
6
5
 
7
6
  export const CodeViewer: React.FC<{ code: string; compact?: boolean }> = ({ code, compact }) => {
@@ -0,0 +1,85 @@
1
+ import React, { useState } from "react";
2
+ import { FaCode } from "react-icons/fa";
3
+ import {
4
+ ITButton,
5
+ ITInput,
6
+ ITSelect,
7
+ ITBadget,
8
+ } from "../index";
9
+ import { CodeViewer } from "./ShowcaseLayout";
10
+
11
+ type SizeKey = "sm" | "md" | "lg";
12
+
13
+ const sizes: SizeKey[] = ["sm", "md", "lg"];
14
+
15
+ const sizeDemoCode = (s: SizeKey) => `// Medida estándar "${s}" — misma escala en todos los componentes
16
+ <ITInput size="${s}" label="Nombre" />
17
+ <ITSelect size="${s}" label="Rol" />
18
+ <ITButton size="${s}">Guardar</ITButton>
19
+ <ITBadget size="${s}">Activo</ITBadget>`;
20
+
21
+ const SizeRow = ({ size, isOpen, onToggleShow }: { size: SizeKey; isOpen: boolean; onToggleShow: () => void }) => (
22
+ <div className="bg-white dark:bg-slate-900 rounded-xl border border-slate-200 dark:border-slate-700 shadow-sm overflow-hidden">
23
+ <div className="px-6 py-4 border-b border-slate-200 dark:border-slate-700 flex items-center justify-between">
24
+ <div>
25
+ <h3 className="text-sm font-bold text-slate-800 dark:text-white uppercase">{size}</h3>
26
+ <p className="text-xs text-slate-500 mt-1">Medida estándar del sistema</p>
27
+ </div>
28
+ <ITButton variant="outlined" color="gray" size="sm" onClick={onToggleShow}>
29
+ <span className="inline-flex items-center gap-1.5"><FaCode size={12} /> Código</span>
30
+ </ITButton>
31
+ </div>
32
+ <div className="px-6 py-5 space-y-4">
33
+ <div>
34
+ <p className="text-xs text-slate-400 mb-1.5">ITInput</p>
35
+ <ITInput name={`names_${size}`} label="Nombre" placeholder="Ej: Juan" onChange={() => {}} onBlur={() => {}} size={size} />
36
+ </div>
37
+ <div>
38
+ <p className="text-xs text-slate-400 mb-1.5">ITSelect</p>
39
+ <ITSelect
40
+ name={`roles_${size}`}
41
+ label="Rol"
42
+ placeholder="Selecciona una opción"
43
+ size={size}
44
+ onChange={() => {}}
45
+ onBlur={() => {}}
46
+ options={[
47
+ { label: "Administrador", value: "admin" },
48
+ { label: "Colaborador", value: "staff" },
49
+ ]}
50
+ />
51
+ </div>
52
+ <div className="flex flex-wrap items-center gap-3 pt-1">
53
+ <p className="text-xs text-slate-400 mr-1">ITButton / ITBadget</p>
54
+ <ITButton size={size}>Guardar</ITButton>
55
+ <ITButton variant="outlined" color="gray" size={size}>Cancelar</ITButton>
56
+ <ITBadget size={size}>Activo</ITBadget>
57
+ <ITBadget size={size} variant="outlined">Borrador</ITBadget>
58
+ </div>
59
+ </div>
60
+ {isOpen && (
61
+ <div className="border-t border-slate-200 dark:border-slate-700">
62
+ <CodeViewer code={sizeDemoCode(size)} />
63
+ </div>
64
+ )}
65
+ </div>
66
+ );
67
+
68
+ export const SizesShowcase = () => {
69
+ const [openSize, setOpenSize] = useState<SizeKey | null>(null);
70
+
71
+ return (
72
+ <div className="space-y-6">
73
+ <div>
74
+ <h2 className="text-xl font-bold text-slate-900 dark:text-white">Medidas estándar · sm / md / lg</h2>
75
+ <p className="text-sm text-slate-500 mt-1">
76
+ Una sola escala para todos los componentes. El tamaño del formulario, select, botón y badge
77
+ se controla con la misma prop <code className="px-1 py-0.5 bg-slate-100 dark:bg-slate-800 rounded text-slate-700 dark:text-slate-300">size</code>.
78
+ </p>
79
+ </div>
80
+ {sizes.map((s) => (
81
+ <SizeRow key={s} size={s} isOpen={openSize === s} onToggleShow={() => setOpenSize(openSize === s ? null : s)} />
82
+ ))}
83
+ </div>
84
+ );
85
+ };