@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
@@ -4,13 +4,13 @@ import clsx from "clsx";
4
4
  import React, { useState, useEffect, useCallback, useRef } from "react";
5
5
  import { FaCheck, FaSpinner, FaTimes, FaTable, FaThLarge } from "react-icons/fa";
6
6
  import { MdOutlineSwapVert } from "react-icons/md";
7
- import ITInput from "../input/input";
8
- import ITPagination from "../pagination/pagination";
9
- import ITSelect from "../select/select";
10
- import { Column } from "../table/table.props";
11
- import { formatCurrencyMX } from "../table/table";
7
+ import ITInput from "@/components/atoms/input/input";
8
+ import ITPagination from "@/components/molecules/pagination/pagination";
9
+ import ITSelect from "@/components/molecules/select/select";
10
+ import { Column } from "@/components/molecules/table/table.props";
11
+ import { formatCurrencyMX } from "@/utils/table.utils";
12
12
  import { ITDataTableProps } from "./dataTable.props";
13
- import ITText from "@/components/text/text";
13
+ import ITText from "@/components/atoms/text/text";
14
14
  import {
15
15
  tableActionsCell,
16
16
  tableBody,
@@ -80,7 +80,6 @@ export default function ITDataTable<T extends Record<string, unknown>>({
80
80
  itemsPerPage,
81
81
  filters,
82
82
  sortConfig,
83
- totalPages,
84
83
  goToPage,
85
84
  handleFilterChange,
86
85
  handleSort,
@@ -88,6 +87,7 @@ export default function ITDataTable<T extends Record<string, unknown>>({
88
87
  } = useTableState({ defaultItemsPerPage });
89
88
 
90
89
  const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
90
+ const hasFetchedRef = useRef(false);
91
91
 
92
92
  const computedTotalPages = Math.ceil(totalItems / itemsPerPage) || 1;
93
93
 
@@ -102,17 +102,19 @@ export default function ITDataTable<T extends Record<string, unknown>>({
102
102
  });
103
103
  setData(response.data || []);
104
104
  setTotalItems(response.total || 0);
105
+ hasFetchedRef.current = true;
105
106
  } catch (error) {
106
107
  console.error("ITDataTable: Error fetching data", error);
107
108
  setData([]);
108
109
  setTotalItems(0);
110
+ hasFetchedRef.current = true;
109
111
  } finally {
110
112
  setIsLoading(false);
111
113
  }
112
114
  }, [currentPage, itemsPerPage, filters, sortConfig, fetchData, externalFilters]);
113
115
 
114
116
  useEffect(() => {
115
- if (!fetchOnMount && data.length === 0 && !isLoading) return;
117
+ if (!fetchOnMount && !hasFetchedRef.current) return;
116
118
 
117
119
  if (debounceTimerRef.current) clearTimeout(debounceTimerRef.current);
118
120
 
@@ -123,7 +125,7 @@ export default function ITDataTable<T extends Record<string, unknown>>({
123
125
  return () => {
124
126
  if (debounceTimerRef.current) clearTimeout(debounceTimerRef.current);
125
127
  };
126
- }, [currentPage, itemsPerPage, sortConfig, filters, externalFilters, reloadTrigger, fetchOnMount, performFetch]);
128
+ }, [currentPage, itemsPerPage, sortConfig, filters, externalFilters, reloadTrigger, fetchOnMount, performFetch, debounceMs]);
127
129
 
128
130
  const renderFilterInput = (col: Column<T>) => {
129
131
  if (!col.filter) return null;
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as Stories from './dialog.stories';
2
+ import * as StoriesData from './dialog.stories';
3
3
 
4
- <Meta of={Stories} />
4
+ <Meta of={StoriesData} />
5
5
 
6
6
  # ITDialog
7
7
 
@@ -1,7 +1,7 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import ITDialog from './dialog';
1
+ import type { Meta } from '@storybook/react';
2
+ import ITDialog from '@/components/organisms/dialog/dialog';
3
3
  import { useState } from 'react';
4
- import ITButton from '../button/button';
4
+ import ITButton from '@/components/atoms/button/button';
5
5
 
6
6
  const meta = {
7
7
  title: 'Components/Feedback/ITDialog',
@@ -9,7 +9,6 @@ const meta = {
9
9
  parameters: {
10
10
  layout: 'centered',
11
11
  },
12
- tags: ['autodocs'],
13
12
  argTypes: {
14
13
  isOpen: { control: 'boolean' },
15
14
  onClose: { action: 'closed' },
@@ -19,7 +18,6 @@ const meta = {
19
18
  } satisfies Meta<typeof ITDialog>;
20
19
 
21
20
  export default meta;
22
- type Story = StoryObj<typeof meta>;
23
21
 
24
22
  // Wrapper to handle open/close state
25
23
  const DialogWrapper = (args: any) => {
@@ -4,8 +4,8 @@ import { useEffect, useRef } from "react";
4
4
  import { FaRegTimesCircle } from "react-icons/fa";
5
5
  import { ITDialogProps } from "./dialog.props";
6
6
  import useClickOutside from "@/hooks/useClickOutside";
7
- import ITFormHeader from "../form-header/form-header";
8
- import ITText from "@/components/text/text";
7
+ import ITFormHeader from "@/components/molecules/form-header/form-header";
8
+ import ITText from "@/components/atoms/text/text";
9
9
 
10
10
  /**
11
11
  * Modal dialog rendered via React portal with overlay backdrop.
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as Stories from './drawer.stories';
2
+ import * as StoriesData from './drawer.stories';
3
3
 
4
- <Meta of={Stories} />
4
+ <Meta of={StoriesData} />
5
5
 
6
6
  # ITDrawer
7
7
 
@@ -1,12 +1,11 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react";
2
2
  import { useState } from "react";
3
- import ITDrawer from "./drawer";
4
- import ITButton from "../button/button";
3
+ import ITDrawer from "@/components/organisms/drawer/drawer";
4
+ import ITButton from "@/components/atoms/button/button";
5
5
 
6
6
  const meta: Meta<typeof ITDrawer> = {
7
7
  title: "Components/Overlay/ITDrawer",
8
8
  component: ITDrawer,
9
- tags: ["autodocs"],
10
9
  };
11
10
 
12
11
  export default meta;
@@ -3,7 +3,7 @@ import { ITDrawerProps } from "./drawer.props";
3
3
  import { FaTimes } from "react-icons/fa";
4
4
  import useClickOutside from "@/hooks/useClickOutside";
5
5
  import { useRef } from "react";
6
- import ITText from "@/components/text/text";
6
+ import ITText from "@/components/atoms/text/text";
7
7
 
8
8
  /**
9
9
  * Sliding panel drawer from the left or right screen edge.
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as Stories from './dropfile.stories';
2
+ import * as StoriesData from './dropfile.stories';
3
3
 
4
- <Meta of={Stories} />
4
+ <Meta of={StoriesData} />
5
5
 
6
6
  # ITDropfile
7
7
 
@@ -57,7 +57,7 @@ import { ITDropfile, UploadStatus, FileTypeEnum } from '@axzydev/axzy_ui_system'
57
57
  />
58
58
  ```
59
59
 
60
- Use this when you'd otherwise write your own button + modal wrapper around `ITDropfile` — it's built in. The button shows the picked file's name (and status badge, if `showStatusBadge`) once one is selected, and reopens the same dropzone/preview to change it. The modal auto-closes ~900ms after a successful confirm.
60
+ Use this when you'd otherwise write your own button + modal wrapper around `ITDropfile` — it's built in. The button shows the picked file's name (and status badge, if `showStatusBadge`) once one is selected, and reopens the same dropzone/preview to change it. ~900ms after a successful confirm the modal closes **and the selection resets**, so the button goes back to `buttonLabel`, ready to upload another file — this mode is built for repeated uploads (e.g. an attachments list), replacing the old pattern of remounting `ITDropfile` with a changing `key` after each upload.
61
61
 
62
62
  ## Notes
63
63
 
@@ -46,10 +46,14 @@ export interface ITDropfileProps {
46
46
  initialPreviewUrl?: string | null;
47
47
  /**
48
48
  * Presentation mode. `"drop"` renders the dropzone/preview inline (default,
49
- * current behavior). `"button"` renders a compact trigger button instead —
50
- * clicking it opens the same dropzone/preview UI inside an `ITDialog`, so
51
- * callers don't need to build their own "open a modal" button around
52
- * `ITDropfile`.
49
+ * current behavior, unaffected by anything below). `"button"` renders a
50
+ * compact trigger button instead — clicking it opens the same
51
+ * dropzone/preview UI inside an `ITDialog`, so callers don't need to build
52
+ * their own "open a modal" button around `ITDropfile`. Meant for repeated
53
+ * uploads (e.g. an attachments list): ~900ms after a successful confirm,
54
+ * the modal closes AND the selection resets, so the trigger goes back to
55
+ * `buttonLabel` ready for the next file — same effect callers previously
56
+ * got by remounting `ITDropfile` with a changing `key`.
53
57
  * @default "drop"
54
58
  */
55
59
  view?: "drop" | "button";
@@ -1,6 +1,5 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import ITDropfile, { FileTypeEnum, UploadStatus } from './dropfile';
3
- import { useState } from 'react';
1
+ import type { Meta } from '@storybook/react';
2
+ import ITDropfile, { UploadStatus } from '@/components/organisms/dropfile/dropfile';
4
3
 
5
4
  const meta = {
6
5
  title: 'Components/Actions/ITDropfile',
@@ -8,7 +7,6 @@ const meta = {
8
7
  parameters: {
9
8
  layout: 'centered',
10
9
  },
11
- tags: ['autodocs'],
12
10
  argTypes: {
13
11
  onFileSelect: { action: 'file selected' },
14
12
  onCancel: { action: 'cancelled' },
@@ -26,7 +24,6 @@ const meta = {
26
24
  } satisfies Meta<typeof ITDropfile>;
27
25
 
28
26
  export default meta;
29
- type Story = StoryObj<typeof meta>;
30
27
 
31
28
  // Wrapper for stateful file handling in story
32
29
  const DropfileWrapper = (args: any) => {
@@ -2,9 +2,9 @@ import React, { useState, useEffect } from "react";
2
2
  import { useDropzone } from "react-dropzone";
3
3
  // import pdfjsLib from "@/hooks/pdf"; // Disabled as hook is missing
4
4
  import clsx from "clsx";
5
- import ITText from "@/components/text/text";
6
- import ITButton from "@/components/button/button";
7
- import ITDialog from "@/components/dialog/dialog";
5
+ import ITText from "@/components/atoms/text/text";
6
+ import ITButton from "@/components/atoms/button/button";
7
+ import ITDialog from "@/components/organisms/dialog/dialog";
8
8
  import { ITDropfileProps, FileTypeEnum, UploadStatus } from "./dropfile.props";
9
9
  export { FileTypeEnum, UploadStatus } from "./dropfile.props";
10
10
 
@@ -292,15 +292,28 @@ const ITDropfile: React.FC<ITDropfileProps> = ({
292
292
  handleCancel();
293
293
  };
294
294
 
295
- // In "button" view, close the modal a moment after a successful upload so
296
- // the trigger collapses back to its compact state instead of leaving the
297
- // modal open on a finished confirmation.
295
+ // In "button" view, close the modal a moment after a successful upload and
296
+ // clear the selection so the trigger collapses back to its compact,
297
+ // ready-for-the-next-file state mirrors what consumers previously did by
298
+ // hand (closing their own modal + remounting ITDropfile via a `key`) to
299
+ // upload attachments one after another.
298
300
  useEffect(() => {
299
301
  if (view === "button" && isConfirmed && uploadStatus === UploadStatus.UPLOADED) {
300
- const timeout = setTimeout(() => setIsModalOpen(false), 900);
302
+ const timeout = setTimeout(() => {
303
+ setIsModalOpen(false);
304
+ setSelectedFile(null);
305
+ setFileType(null);
306
+ setIsConfirmed(false);
307
+ if (externalStatus === undefined) setInternalUploadStatus(UploadStatus.PENDING);
308
+ onStatusChange?.(UploadStatus.PENDING);
309
+ setImagePreview((current) => {
310
+ if (current) URL.revokeObjectURL(current);
311
+ return null;
312
+ });
313
+ }, 900);
301
314
  return () => clearTimeout(timeout);
302
315
  }
303
- }, [view, isConfirmed, uploadStatus]);
316
+ }, [view, isConfirmed, uploadStatus, externalStatus, onStatusChange]);
304
317
 
305
318
  const headerRow = (
306
319
  <div className="flex items-center justify-between mb-2">
@@ -396,7 +409,7 @@ const ITDropfile: React.FC<ITDropfileProps> = ({
396
409
  type="button"
397
410
  variant="outlined"
398
411
  color="secondary"
399
- size="small"
412
+ size="sm"
400
413
  onClick={handleCancel}
401
414
  >
402
415
  <ITText>Cancelar</ITText>
@@ -405,7 +418,7 @@ const ITDropfile: React.FC<ITDropfileProps> = ({
405
418
  type="button"
406
419
  variant="filled"
407
420
  color="primary"
408
- size="small"
421
+ size="sm"
409
422
  onClick={handleConfirm}
410
423
  >
411
424
  <div className="flex items-center gap-2">
@@ -421,7 +434,7 @@ const ITDropfile: React.FC<ITDropfileProps> = ({
421
434
  type="button"
422
435
  variant="outlined"
423
436
  color="danger"
424
- size="small"
437
+ size="sm"
425
438
  onClick={handleDelete}
426
439
  >
427
440
  <svg className="w-3 h-3" fill="none" viewBox="0 0 24 24" stroke="currentColor">
@@ -458,7 +471,7 @@ const ITDropfile: React.FC<ITDropfileProps> = ({
458
471
  type="button"
459
472
  variant="outlined"
460
473
  color={hasFile ? "primary" : "secondary"}
461
- size="small"
474
+ size="sm"
462
475
  onClick={() => setIsModalOpen(true)}
463
476
  >
464
477
  <div className="flex items-center gap-2 max-w-[220px]">
@@ -1,31 +1,36 @@
1
- import React, { memo, useCallback, useEffect, useState } from "react";
1
+ import React, { memo, useCallback, useEffect, useMemo, useState, useRef } from "react";
2
2
  import clsx from "clsx";
3
3
  import { FieldConfigV2 } from "@/types/field.types";
4
4
  import { useITFormBuilderContext } from "./formBuilder.context";
5
- import ITInput from "../input/input";
6
- import ITSelect from "../select/select";
7
- import ITDatePicker from "../date-picker/datePicker";
8
- import ITTimePicker from "../time-picker/timePicker";
9
- import ITSearchSelect from "../search-select/search-select";
5
+ import ITInput from "@/components/atoms/input/input";
6
+ import ITSelect from "@/components/molecules/select/select";
7
+ import ITDatePicker from "@/components/molecules/date-picker/datePicker";
8
+ import ITTimePicker from "@/components/molecules/time-picker/timePicker";
9
+ import ITSearchSelect from "@/components/molecules/search-select/search-select";
10
10
  import { useFieldRules } from "./useFormBuilder";
11
11
  import { getColSpanClass, getGridColsClass } from "@/utils/styles";
12
- import ITText from "@/components/text/text";
12
+ import ITText from "@/components/atoms/text/text";
13
13
  import { FaSpinner } from "react-icons/fa";
14
14
 
15
15
  function useAsyncOptions(options: FieldConfigV2["options"], depends: any[]) {
16
16
  const [resolved, setResolved] = useState<{ value: string; label: string }[]>([]);
17
17
  const [loading, setLoading] = useState(false);
18
+ const optionsRef = useRef(options);
19
+ optionsRef.current = options;
18
20
 
19
21
  useEffect(() => {
20
- if (typeof options === "function") {
22
+ const opts = optionsRef.current;
23
+ if (typeof opts === "function") {
21
24
  setLoading(true);
22
- options().then((result) => {
25
+ opts().then((result) => {
23
26
  setResolved(result.map(o => ({ value: String(o.value), label: o.label })));
24
27
  setLoading(false);
25
28
  });
26
- } else if (Array.isArray(options)) {
27
- setResolved(options.map(o => ({ value: String(o.value), label: o.label })));
29
+ } else if (Array.isArray(opts)) {
30
+ setResolved(opts.map(o => ({ value: String(o.value), label: o.label })));
28
31
  }
32
+ // Dependencias dinámicas por diseño (campos dependientes) — no verificables estáticamente.
33
+ // eslint-disable-next-line react-hooks/exhaustive-deps
29
34
  }, depends);
30
35
 
31
36
  return { options: resolved, loading };
@@ -61,16 +66,19 @@ const ITFieldRenderer = ({
61
66
  return () => {
62
67
  context.unregisterField(config.name);
63
68
  };
69
+ // `config`/`context` son estables en el provider; solo el name define el registro.
70
+ // eslint-disable-next-line react-hooks/exhaustive-deps
64
71
  }, [config.name]);
65
72
 
66
- if (!isVisible) return null;
67
-
68
- const activeConfig = {
69
- ...config,
70
- ...dynamicProps,
71
- required: isRequired,
72
- disabled: isDisabled,
73
- };
73
+ const activeConfig = useMemo(
74
+ () => ({
75
+ ...config,
76
+ ...dynamicProps,
77
+ required: isRequired,
78
+ disabled: isDisabled,
79
+ }),
80
+ [config, dynamicProps, isRequired, isDisabled],
81
+ );
74
82
 
75
83
  const {
76
84
  name,
@@ -96,9 +104,11 @@ const ITFieldRenderer = ({
96
104
  await activeConfig.onChangeAction(finalValue, context);
97
105
  }
98
106
  },
99
- [name, context]
107
+ [name, context, activeConfig]
100
108
  );
101
109
 
110
+ if (!isVisible) return null;
111
+
102
112
  const renderField = () => {
103
113
  switch (type) {
104
114
  case "text":
@@ -1,6 +1,5 @@
1
- import React, { createContext, useContext, useEffect, useState } from 'react';
1
+ import React, { createContext, useContext, useState } from 'react';
2
2
  import { FieldConfigV2, FieldContextV2 } from '@/types/field.types';
3
- import * as Yup from 'yup';
4
3
 
5
4
  interface ITFormBuilderContextType extends FieldContextV2 {
6
5
  config: FieldConfigV2[];
@@ -61,6 +60,8 @@ export const ITFormBuilderProvider = ({
61
60
  );
62
61
  };
63
62
 
63
+ // Hook de acceso al contexto — patrón requerido junto al provider en el mismo archivo.
64
+ // eslint-disable-next-line react-refresh/only-export-components
64
65
  export const useITFormBuilderContext = () => {
65
66
  const context = useContext(ITFormBuilderContext);
66
67
  if (!context) {
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as Stories from './formBuilder.stories';
2
+ import * as StoriesData from './formBuilder.stories';
3
3
 
4
- <Meta of={Stories} />
4
+ <Meta of={StoriesData} />
5
5
 
6
6
  # ITFormBuilder
7
7
 
@@ -17,7 +17,6 @@ const meta: Meta<typeof ITFormBuilder> = {
17
17
  },
18
18
  },
19
19
  },
20
- tags: ["autodocs"],
21
20
  };
22
21
 
23
22
  export default meta;
@@ -1,8 +1,7 @@
1
- import clsx from "clsx";
2
- import ITInput from "../input/input";
3
- import ITSelect from "../select/select";
1
+ import ITInput from "@/components/atoms/input/input";
2
+ import ITSelect from "@/components/molecules/select/select";
4
3
  import { ITFormBuilderProps } from "./formBuilder.props";
5
- import ITDatePicker from "../date-picker/datePicker";
4
+ import ITDatePicker from "@/components/molecules/date-picker/datePicker";
6
5
  import { useEffect, useState, useMemo } from "react";
7
6
  import { ITFormBuilderProvider } from "./formBuilder.context";
8
7
  import ITFieldRenderer from "./fieldRenderer";
@@ -65,7 +64,7 @@ export default function ITFormBuilder({
65
64
  setFieldError = () => {},
66
65
  isSubmitting = false,
67
66
  }: ITFormBuilderProps) {
68
- const [mounted, setMounted] = useState(false);
67
+ const [, setMounted] = useState(false);
69
68
 
70
69
  useEffect(() => {
71
70
  setMounted(true);
@@ -53,12 +53,12 @@ export const useFieldRules = (
53
53
  const isVisible = useMemo(() => {
54
54
  if (!fieldConfig.renderWhen) return true;
55
55
  return fieldConfig.renderWhen(dependentValues);
56
- }, [fieldConfig.renderWhen, dependentValues]);
56
+ }, [fieldConfig, dependentValues]);
57
57
 
58
58
  const dynamicProps = useMemo(() => {
59
59
  if (!fieldConfig.dynamicProps) return {};
60
60
  return fieldConfig.dynamicProps(dependentValues);
61
- }, [fieldConfig.dynamicProps, dependentValues]);
61
+ }, [fieldConfig, dependentValues]);
62
62
 
63
63
  const isRequired = useMemo(() => {
64
64
  if (typeof dynamicProps.required !== 'undefined') return dynamicProps.required;
@@ -66,7 +66,7 @@ export const useFieldRules = (
66
66
  return fieldConfig.required(dependentValues);
67
67
  }
68
68
  return fieldConfig.required || false;
69
- }, [fieldConfig.required, dynamicProps.required, dependentValues]);
69
+ }, [fieldConfig, dynamicProps.required, dependentValues]);
70
70
 
71
71
  const isDisabled = useMemo(() => {
72
72
  if (typeof dynamicProps.disabled !== 'undefined') return dynamicProps.disabled;
@@ -74,7 +74,7 @@ export const useFieldRules = (
74
74
  return fieldConfig.disabled(dependentValues);
75
75
  }
76
76
  return fieldConfig.disabled || false;
77
- }, [fieldConfig.disabled, dynamicProps.disabled, dependentValues]);
77
+ }, [fieldConfig, dynamicProps.disabled, dependentValues]);
78
78
 
79
79
  return { isVisible, dynamicProps, isRequired, isDisabled };
80
80
  };
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as Stories from './navbar.stories';
2
+ import * as StoriesData from './navbar.stories';
3
3
 
4
- <Meta of={Stories} />
4
+ <Meta of={StoriesData} />
5
5
 
6
6
  # ITNavbar
7
7
 
@@ -1,12 +1,11 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
- import ITNavbar from './navbar';
2
+ import ITNavbar from '@/components/organisms/navbar/navbar';
3
3
  import { FaHome, FaChartBar, FaCog, FaUsers } from 'react-icons/fa';
4
4
 
5
5
  const meta = {
6
6
  title: 'Components/Layout & Navigation/ITNavbar',
7
7
  component: ITNavbar,
8
8
  parameters: { layout: 'fullscreen' },
9
- tags: ['autodocs'],
10
9
  argTypes: {
11
10
  logoText: { control: 'text', description: 'Text displayed next to the logo' },
12
11
  navigationItems: { control: false, description: 'Navigation items with optional sub-items' },
@@ -2,7 +2,7 @@ import useClickOutside from "@/hooks/useClickOutside";
2
2
  import { useRef, useState } from "react";
3
3
  import { FaChevronDown, FaChevronRight, FaUserCircle } from "react-icons/fa";
4
4
  import { ITNavbarProps, ITNavigationItem } from "./navbar.props";
5
- import ITText from "@/components/text/text";
5
+ import ITText from "@/components/atoms/text/text";
6
6
  import { theme } from "@/theme/theme";
7
7
 
8
8
  /**
@@ -1,7 +1,7 @@
1
1
  import { Meta, Title, Description, Primary, Controls, Stories } from '@storybook/blocks';
2
- import * as Stories from './page-header.stories';
2
+ import * as StoriesData from './page-header.stories';
3
3
 
4
- <Meta of={Stories} />
4
+ <Meta of={StoriesData} />
5
5
 
6
6
  # ITPageHeader
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from "react";
2
- import { ITBreadcrumbItem } from "../breadcrumbs/breadcrumbs.props";
2
+ import { ITBreadcrumbItem } from "@/components/molecules/breadcrumbs/breadcrumbs.props";
3
3
 
4
4
  /** Props for the ITPageHeader component. */
5
5
  export interface ITPageHeaderProps {
@@ -1,12 +1,11 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react-vite";
2
2
  import { FaUsers } from "react-icons/fa";
3
- import ITPageHeader from "./page-header";
4
- import ITButton from "../button/button";
3
+ import ITPageHeader from "@/components/organisms/page-header/page-header";
4
+ import ITButton from "@/components/atoms/button/button";
5
5
 
6
6
  const meta: Meta<typeof ITPageHeader> = {
7
7
  title: "Components/Layout/ITPageHeader",
8
8
  component: ITPageHeader,
9
- tags: ["autodocs"],
10
9
  };
11
10
 
12
11
  export default meta;
@@ -41,8 +40,8 @@ export const WithActions: Story = {
41
40
  ],
42
41
  actions: (
43
42
  <>
44
- <ITButton label="Exportar" variant="outlined" size="small" />
45
- <ITButton label="Nueva Orden" size="small" />
43
+ <ITButton label="Exportar" variant="outlined" size="sm" />
44
+ <ITButton label="Nueva Orden" size="sm" />
46
45
  </>
47
46
  ),
48
47
  },
@@ -57,7 +56,7 @@ export const WithBackAction: Story = {
57
56
  { label: "Productos", href: "#" },
58
57
  { label: "Detalle" },
59
58
  ],
60
- actions: <ITButton label="Editar" size="small" />,
59
+ actions: <ITButton label="Editar" size="sm" />,
61
60
  },
62
61
  };
63
62
 
@@ -1,7 +1,7 @@
1
1
  import { FaChevronLeft } from "react-icons/fa";
2
2
  import { ITPageHeaderProps } from "./page-header.props";
3
- import ITBreadcrumbs from "../breadcrumbs/breadcrumbs";
4
- import ITText from "@/components/text/text";
3
+ import ITBreadcrumbs from "@/components/molecules/breadcrumbs/breadcrumbs";
4
+ import ITText from "@/components/atoms/text/text";
5
5
 
6
6
  /**
7
7
  * Page title bar with breadcrumbs, description, back button, and action buttons.
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
2
  import { SearchColumn } from "../searchTable.props";
3
- import ITInput from "@/components/input/input";
4
- import ITSelect from "@/components/select/select";
5
- import ITDatePicker from "@/components/date-picker/datePicker";
6
- import ITText from "@/components/text/text";
3
+ import ITInput from "@/components/atoms/input/input";
4
+ import ITSelect from "@/components/molecules/select/select";
5
+ import ITDatePicker from "@/components/molecules/date-picker/datePicker";
6
+ import ITText from "@/components/atoms/text/text";
7
7
 
8
8
  interface EditableCellProps<T> {
9
9
  column: SearchColumn<T>;
@@ -18,7 +18,6 @@ export default function EditableCell<T>({
18
18
  value,
19
19
  onChange,
20
20
  error,
21
- row,
22
21
  }: EditableCellProps<T>) {
23
22
  const validate = (val: any) => {
24
23
  if (column.validation) return column.validation(val);
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
2
  import { FaArrowLeft, FaArrowRight } from "react-icons/fa";
3
3
  import PaginationInfo from "./PaginationInfo";
4
- import ITSelect from "@/components/select/select";
5
- import ITButton from "@/components/button/button";
6
- import ITText from "@/components/text/text";
4
+ import ITSelect from "@/components/molecules/select/select";
5
+ import ITButton from "@/components/atoms/button/button";
6
+ import ITText from "@/components/atoms/text/text";
7
7
 
8
8
  interface PaginationControlsProps {
9
9
  pageIndex: number;
@@ -46,7 +46,7 @@ export default function PaginationControls({
46
46
  value={String(itemsPerPage)}
47
47
  onChange={(e) => onItemsPerPageChange(Number(e.target.value))}
48
48
  onBlur={() => {}}
49
- size="small"
49
+ size="sm"
50
50
  className="w-20"
51
51
  />
52
52
  </div>
@@ -55,7 +55,7 @@ export default function PaginationControls({
55
55
  <div className="flex items-center space-x-2">
56
56
  <ITButton
57
57
  color="secondary"
58
- size="small"
58
+ size="sm"
59
59
  onClick={() => onPageChange(pageIndex - 1)}
60
60
  disabled={!hasPreviousPage}
61
61
  className="min-w-[32px]"
@@ -70,7 +70,7 @@ export default function PaginationControls({
70
70
  </ITText>
71
71
 
72
72
  <ITButton
73
- size="small"
73
+ size="sm"
74
74
  color="secondary"
75
75
  onClick={() => onPageChange(pageIndex + 1)}
76
76
  disabled={!hasNextPage}