pixelon 0.3.25 → 0.3.26

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 (231) hide show
  1. package/dist/components/atoms/chat/AudioWaves/AudioWaves(1).d.ts +21 -0
  2. package/dist/components/atoms/chat/AudioWaves/index(1).d.ts +2 -0
  3. package/dist/components/atoms/chat/DateDivider/DateDivider(1).d.ts +7 -0
  4. package/dist/components/atoms/chat/Loader/Loader(1).d.ts +10 -0
  5. package/dist/components/atoms/chat/Loader/index(1).d.ts +2 -0
  6. package/dist/components/atoms/chat/Select/index(1).d.ts +2 -0
  7. package/dist/components/atoms/lumi/Button/Button(1).d.ts +17 -0
  8. package/dist/components/atoms/lumi/Checkbox/Checkbox(1).d.ts +5 -0
  9. package/dist/components/atoms/lumi/Checkbox/index(1).d.ts +2 -0
  10. package/dist/components/atoms/lumi/Checkbox/index(2).d.ts +2 -0
  11. package/dist/components/atoms/lumi/Checkbox/types(1).d.ts +93 -0
  12. package/dist/components/atoms/lumi/CurrencyDisplay/index(1).d.ts +2 -0
  13. package/dist/components/atoms/lumi/DateDisplay/index(1).d.ts +2 -0
  14. package/dist/components/atoms/lumi/DateDisplay/index(2).d.ts +2 -0
  15. package/dist/components/atoms/lumi/DateInput/DateInput(1).d.ts +27 -0
  16. package/dist/components/atoms/lumi/DateInput/WebDatePicker(1).d.ts +19 -0
  17. package/dist/components/atoms/lumi/DateInput/WebDatePicker(2).d.ts +19 -0
  18. package/dist/components/atoms/lumi/Icon/Icon(1).d.ts +52 -0
  19. package/dist/components/atoms/lumi/Input/index(1).d.ts +3 -0
  20. package/dist/components/atoms/lumi/Popover/index(1).d.ts +2 -0
  21. package/dist/components/atoms/lumi/Popover/types(1).d.ts +62 -0
  22. package/dist/components/atoms/lumi/TextArea/index(1).d.ts +2 -0
  23. package/dist/components/atoms/lumi/TextArea/types(1).d.ts +35 -0
  24. package/dist/components/atoms/lumi/TimeInput/TimeInput(1).d.ts +27 -0
  25. package/dist/components/atoms/lumi/TimeInput/TimeInput(2).d.ts +27 -0
  26. package/dist/components/molecules/chat/Drawer/Drawer.d.ts +2 -0
  27. package/dist/components/molecules/chat/FullscreenViewer/hooks/useSwipeGestures(1).d.ts +12 -0
  28. package/dist/components/molecules/chat/StructuredContent/StructuredContent(1).d.ts +10 -0
  29. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/CarouselDisplay.d.ts +4 -0
  30. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/components/CarouselCard/CarouselCard.d.ts +15 -0
  31. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/components/CarouselConfirm/CarouselConfirm.d.ts +10 -0
  32. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/components/CarouselSearch/CarouselSearch.d.ts +8 -0
  33. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/components/CarouselTrack/CarouselTrack.d.ts +11 -0
  34. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/store/actions.d.ts +26 -0
  35. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/store/carouselStore.d.ts +8 -0
  36. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/store/index.d.ts +6 -0
  37. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/store/storeKeys.d.ts +10 -0
  38. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/store/types.d.ts +11 -0
  39. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/types.d.ts +43 -0
  40. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/useCarouselSearch.d.ts +15 -0
  41. package/dist/components/molecules/chat/StructuredContent/components/CarouselDisplay/useStoreState.d.ts +3 -0
  42. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/DynamicField(1).d.ts +13 -0
  43. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/DynamicField.d.ts +13 -0
  44. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/ReactiveForm.d.ts +4 -0
  45. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/ReactiveFormView.d.ts +10 -0
  46. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/buildYupSchema(1).d.ts +4 -0
  47. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/buildYupSchema.d.ts +4 -0
  48. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/resolveVariables.d.ts +20 -0
  49. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/types(1).d.ts +91 -0
  50. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/types.d.ts +100 -0
  51. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/useReactiveEndpoints(1).d.ts +17 -0
  52. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/useReactiveEndpoints(2).d.ts +23 -0
  53. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/useReactiveEndpoints.d.ts +23 -0
  54. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/useReactiveForm(1).d.ts +38 -0
  55. package/dist/components/molecules/chat/StructuredContent/components/ReactiveForm/useReactiveForm.d.ts +38 -0
  56. package/dist/components/molecules/chat/StructuredContent/components/index.d.ts +2 -0
  57. package/dist/components/molecules/chat/StructuredContent/helpers/contentParser(1).d.ts +7 -0
  58. package/dist/components/molecules/chat/StructuredContent/helpers/fetchViaEventBus.d.ts +2 -0
  59. package/dist/components/molecules/chat/StructuredContent/index(1).d.ts +2 -0
  60. package/dist/components/molecules/lumi/Breadcrumb/Breadcrumb(1).d.ts +10 -0
  61. package/dist/components/molecules/lumi/Breadcrumb/Breadcrumb(2).d.ts +10 -0
  62. package/dist/components/molecules/lumi/Breadcrumb/types(1).d.ts +105 -0
  63. package/dist/components/molecules/lumi/Checkbox/Checkbox(1).d.ts +11 -0
  64. package/dist/components/molecules/lumi/Checkbox/index(1).d.ts +4 -0
  65. package/dist/components/molecules/lumi/Checkbox/use-cases/index(1).d.ts +1 -0
  66. package/dist/components/molecules/lumi/Checkbox/validation-helpers(1).d.ts +151 -0
  67. package/dist/components/molecules/lumi/DateInput/FormDateInput(1).d.ts +12 -0
  68. package/dist/components/molecules/lumi/DateInput/index(1).d.ts +2 -0
  69. package/dist/components/molecules/lumi/DateInput/use-cases/FormDateInputClearWithResetUseCase(1).d.ts +21 -0
  70. package/dist/components/molecules/lumi/DateInput/use-cases/FormDateInputErrorVisibilityUseCase(1).d.ts +21 -0
  71. package/dist/components/molecules/lumi/Drawer/Drawer(1).d.ts +39 -0
  72. package/dist/components/molecules/lumi/Drawer/index(1).d.ts +2 -0
  73. package/dist/components/molecules/lumi/DropdownMenu/DropdownMenu(1).d.ts +22 -0
  74. package/dist/components/molecules/lumi/DropdownMenu/index(1).d.ts +2 -0
  75. package/dist/components/molecules/lumi/DropdownMenu/types(1).d.ts +29 -0
  76. package/dist/components/molecules/lumi/Filter/FilterRow(1).d.ts +13 -0
  77. package/dist/components/molecules/lumi/Filter/helpers/conditionHelpers(1).d.ts +14 -0
  78. package/dist/components/molecules/lumi/Filter/index(1).d.ts +5 -0
  79. package/dist/components/molecules/lumi/Filter/types(1).d.ts +115 -0
  80. package/dist/components/molecules/lumi/Input/Input(1).d.ts +12 -0
  81. package/dist/components/molecules/lumi/Menu/Menu(1).d.ts +18 -0
  82. package/dist/components/molecules/lumi/Menu/MenuContext(1).d.ts +41 -0
  83. package/dist/components/molecules/lumi/Menu/MenuItem(1).d.ts +6 -0
  84. package/dist/components/molecules/lumi/Menu/MenuItem(2).d.ts +6 -0
  85. package/dist/components/molecules/lumi/Menu/MenuItemGroup(1).d.ts +6 -0
  86. package/dist/components/molecules/lumi/Menu/SubMenu(1).d.ts +6 -0
  87. package/dist/components/molecules/lumi/Menu/iconHelper(1).d.ts +15 -0
  88. package/dist/components/molecules/lumi/Menu/index(1).d.ts +8 -0
  89. package/dist/components/molecules/lumi/Menu/index(2).d.ts +8 -0
  90. package/dist/components/molecules/lumi/Menu/types(1).d.ts +119 -0
  91. package/dist/components/molecules/lumi/Pagination/Pagination(1).d.ts +4 -0
  92. package/dist/components/molecules/lumi/Pagination/index(1).d.ts +2 -0
  93. package/dist/components/molecules/lumi/Select/Select(1).d.ts +14 -0
  94. package/dist/components/molecules/lumi/Select/Select(2).d.ts +14 -0
  95. package/dist/components/molecules/lumi/Select/Select(3).d.ts +14 -0
  96. package/dist/components/molecules/lumi/Select/index(1).d.ts +2 -0
  97. package/dist/components/molecules/lumi/Select/index(2).d.ts +2 -0
  98. package/dist/components/molecules/lumi/Select/use-cases/FormSelectClearWithResetUseCase(1).d.ts +21 -0
  99. package/dist/components/molecules/lumi/Select/use-cases/FormSelectClearWithResetUseCase(2).d.ts +21 -0
  100. package/dist/components/molecules/lumi/Select/use-cases/index(1).d.ts +2 -0
  101. package/dist/components/molecules/lumi/Select/use-cases/index(2).d.ts +2 -0
  102. package/dist/components/molecules/lumi/Table/Table(1).d.ts +6 -0
  103. package/dist/components/molecules/lumi/Table/Table(2).d.ts +6 -0
  104. package/dist/components/molecules/lumi/Table/index(1).d.ts +2 -0
  105. package/dist/components/molecules/lumi/Table/types(1).d.ts +177 -0
  106. package/dist/components/molecules/lumi/Table/types(2).d.ts +177 -0
  107. package/dist/components/molecules/lumi/Tabs/Tabs(1).d.ts +4 -0
  108. package/dist/components/molecules/lumi/Tabs/Tabs(2).d.ts +4 -0
  109. package/dist/components/molecules/lumi/Tabs/index(1).d.ts +2 -0
  110. package/dist/components/molecules/lumi/Tabs/index(2).d.ts +2 -0
  111. package/dist/components/molecules/lumi/TimeInput/FormTimeInput(1).d.ts +12 -0
  112. package/dist/components/molecules/lumi/TimeInput/use-cases/FormTimeInputClearWithResetUseCase(1).d.ts +21 -0
  113. package/dist/components/molecules/lumi/TimeInput/use-cases/FormTimeInputErrorVisibilityUseCase(1).d.ts +21 -0
  114. package/dist/components/molecules/lumi/TimeInput/use-cases/index(1).d.ts +4 -0
  115. package/dist/components/organisms/chat/Chat/Chat(1).d.ts +12 -0
  116. package/dist/components/organisms/chat/Chat/hooks/useChatHandlers(1).d.ts +15 -0
  117. package/dist/components/organisms/chat/Chat/hooks/useChatStore.d.ts +3 -0
  118. package/dist/components/organisms/chat/Chat/hooks/useKeyboardLock(1).d.ts +15 -0
  119. package/dist/components/organisms/chat/Chat/index(1).d.ts +3 -0
  120. package/dist/components/organisms/chat/Chat/store/actions.d.ts +3 -0
  121. package/dist/components/organisms/chat/Chat/store/index(1).d.ts +4 -0
  122. package/dist/components/organisms/chat/Chat/store/types.d.ts +3 -0
  123. package/dist/components/organisms/chat/Chat/use-cases/GroupMessagesByDateUseCase(1).d.ts +20 -0
  124. package/dist/components/organisms/chat/index(1).d.ts +3 -0
  125. package/dist/components/organisms/chat/index(2).d.ts +3 -0
  126. package/dist/components/organisms/lumi/ActionBar/ActionBar(1).d.ts +18 -0
  127. package/dist/components/organisms/lumi/ActionBar/types(1).d.ts +57 -0
  128. package/dist/components/organisms/lumi/BaseNavbar/types(1).d.ts +34 -0
  129. package/dist/components/organisms/lumi/BaseWorkspace/BaseWorkspace(1).d.ts +28 -0
  130. package/dist/components/organisms/lumi/BaseWorkspace/index(1).d.ts +2 -0
  131. package/dist/components/organisms/lumi/Calendar/components/CalendarEvent(1).d.ts +18 -0
  132. package/dist/components/organisms/lumi/Calendar/components/CalendarEvent(2).d.ts +18 -0
  133. package/dist/components/organisms/lumi/Calendar/components/CalendarEvent(3).d.ts +18 -0
  134. package/dist/components/organisms/lumi/Calendar/components/CalendarHeader(1).d.ts +14 -0
  135. package/dist/components/organisms/lumi/Calendar/components/TimeGutter(1).d.ts +10 -0
  136. package/dist/components/organisms/lumi/Calendar/components/TimeGutter(2).d.ts +10 -0
  137. package/dist/components/organisms/lumi/Calendar/hooks/index(1).d.ts +4 -0
  138. package/dist/components/organisms/lumi/Calendar/hooks/useCalendarHeight(1).d.ts +58 -0
  139. package/dist/components/organisms/lumi/Calendar/hooks/useCalendarHeight(2).d.ts +58 -0
  140. package/dist/components/organisms/lumi/Calendar/hooks/useEventLayout(1).d.ts +21 -0
  141. package/dist/components/organisms/lumi/Calendar/hooks/useEventLayout(2).d.ts +21 -0
  142. package/dist/components/organisms/lumi/Calendar/hooks/useTimeSlots(1).d.ts +14 -0
  143. package/dist/components/organisms/lumi/Calendar/hooks/useTimeSlots(2).d.ts +14 -0
  144. package/dist/components/organisms/lumi/Calendar/hooks/useTimeSlots(3).d.ts +14 -0
  145. package/dist/components/organisms/lumi/Calendar/i18n/index(1).d.ts +1 -0
  146. package/dist/components/organisms/lumi/Calendar/i18n/index(2).d.ts +1 -0
  147. package/dist/components/organisms/lumi/Calendar/i18n/translations(1).d.ts +34 -0
  148. package/dist/components/organisms/lumi/Calendar/index(1).d.ts +2 -0
  149. package/dist/components/organisms/lumi/Calendar/utils/dateUtils(1).d.ts +140 -0
  150. package/dist/components/organisms/lumi/Calendar/utils/dateUtils(2).d.ts +140 -0
  151. package/dist/components/organisms/lumi/Calendar/utils/index(1).d.ts +2 -0
  152. package/dist/components/organisms/lumi/Calendar/utils/multiDayUtils(1).d.ts +73 -0
  153. package/dist/components/organisms/lumi/Calendar/views/DayView(1).d.ts +17 -0
  154. package/dist/components/organisms/lumi/Calendar/views/DayView(2).d.ts +17 -0
  155. package/dist/components/organisms/lumi/Calendar/views/MonthView(1).d.ts +17 -0
  156. package/dist/components/organisms/lumi/Calendar/views/MonthView(2).d.ts +17 -0
  157. package/dist/components/organisms/lumi/Calendar/views/WeekView(1).d.ts +19 -0
  158. package/dist/components/organisms/lumi/Calendar/views/WeekView(2).d.ts +19 -0
  159. package/dist/components/organisms/lumi/Calendar/views/YearView(1).d.ts +13 -0
  160. package/dist/components/organisms/lumi/Calendar/views/index(1).d.ts +4 -0
  161. package/dist/components/organisms/lumi/Calendar/views/index(2).d.ts +4 -0
  162. package/dist/components/organisms/lumi/DashboardNavbar/index(1).d.ts +7 -0
  163. package/dist/components/organisms/lumi/DashboardNavbar/types(1).d.ts +52 -0
  164. package/dist/components/organisms/lumi/DashboardWorkspace/DashboardWorkspace(1).d.ts +23 -0
  165. package/dist/components/organisms/lumi/DashboardWorkspace/DashboardWorkspace(2).d.ts +23 -0
  166. package/dist/components/organisms/lumi/DashboardWorkspace/index(1).d.ts +7 -0
  167. package/dist/components/organisms/lumi/DashboardWorkspace/index(2).d.ts +7 -0
  168. package/dist/components/organisms/lumi/DashboardWorkspace/types(1).d.ts +60 -0
  169. package/dist/components/organisms/lumi/DashboardWorkspace/types(2).d.ts +60 -0
  170. package/dist/components/organisms/lumi/DynamicForm/DynamicForm(1).d.ts +21 -0
  171. package/dist/components/organisms/lumi/DynamicForm/helpers/fieldMapper(1).d.ts +17 -0
  172. package/dist/components/organisms/lumi/DynamicForm/helpers/fieldMapper(2).d.ts +17 -0
  173. package/dist/components/organisms/lumi/DynamicForm/helpers/fieldRenderer(1).d.ts +6 -0
  174. package/dist/components/organisms/lumi/DynamicForm/helpers/fieldRenderer(2).d.ts +6 -0
  175. package/dist/components/organisms/lumi/DynamicForm/index(1).d.ts +2 -0
  176. package/dist/components/organisms/lumi/DynamicForm/index(2).d.ts +2 -0
  177. package/dist/components/organisms/lumi/DynamicForm/types(1).d.ts +96 -0
  178. package/dist/components/organisms/lumi/DynamicForm/types(2).d.ts +96 -0
  179. package/dist/components/organisms/lumi/FormDrawer/FormDrawer(1).d.ts +5 -0
  180. package/dist/components/organisms/lumi/FormDrawer/index(1).d.ts +3 -0
  181. package/dist/components/organisms/lumi/FormDrawer/types(1).d.ts +61 -0
  182. package/dist/components/organisms/lumi/FormDrawer/types(2).d.ts +61 -0
  183. package/dist/components/organisms/lumi/Stepper/StepIndicator(1).d.ts +4 -0
  184. package/dist/components/organisms/lumi/Stepper/Stepper(1).d.ts +5 -0
  185. package/dist/components/organisms/lumi/Stepper/index(1).d.ts +3 -0
  186. package/dist/components/organisms/lumi/Stepper/types(1).d.ts +96 -0
  187. package/dist/components/organisms/lumi/Stepper/types(2).d.ts +96 -0
  188. package/dist/components/organisms/lumi/index(1).d.ts +10 -0
  189. package/dist/components/organisms/lumi/index(2).d.ts +10 -0
  190. package/dist/components/templates/chat/ChatWidget/ChatWidget(1).d.ts +10 -0
  191. package/dist/components/templates/chat/ChatWidget/hooks/index(1).d.ts +1 -0
  192. package/dist/components/templates/chat/ChatWidget/index(1).d.ts +2 -0
  193. package/dist/components/templates/chat/ChatWidget/index(2).d.ts +2 -0
  194. package/dist/components/templates/chat/ChatWidget/types(1).d.ts +90 -0
  195. package/dist/components/templates/lumi/Base/hooks/index(1).d.ts +2 -0
  196. package/dist/components/templates/lumi/Base/hooks/useAppHeight(1).d.ts +21 -0
  197. package/dist/components/templates/lumi/Base/index(1).d.ts +2 -0
  198. package/dist/components/templates/lumi/Base/types(1).d.ts +54 -0
  199. package/dist/components/templates/lumi/Crud/Crud(1).d.ts +6 -0
  200. package/dist/components/templates/lumi/Crud/Crud(2).d.ts +6 -0
  201. package/dist/components/templates/lumi/Crud/helpers/fieldMapper(1).d.ts +13 -0
  202. package/dist/components/templates/lumi/Crud/hooks/useCrudActions(1).d.ts +11 -0
  203. package/dist/components/templates/lumi/Crud/index(1).d.ts +2 -0
  204. package/dist/components/templates/lumi/Crud/store/actions(1).d.ts +45 -0
  205. package/dist/components/templates/lumi/Crud/store/crudStore(1).d.ts +8 -0
  206. package/dist/components/templates/lumi/Crud/store/index(1).d.ts +5 -0
  207. package/dist/components/templates/lumi/Crud/store/types(1).d.ts +71 -0
  208. package/dist/components/templates/lumi/Dashboard/Dashboard(1).d.ts +25 -0
  209. package/dist/components/templates/lumi/Dashboard/hooks/index(1).d.ts +12 -0
  210. package/dist/components/templates/lumi/Dashboard/hooks/index(2).d.ts +12 -0
  211. package/dist/components/templates/lumi/Dashboard/hooks/useDashboardStore(1).d.ts +34 -0
  212. package/dist/components/templates/lumi/Dashboard/hooks/useScrollToTop(1).d.ts +47 -0
  213. package/dist/components/templates/lumi/Dashboard/index(1).d.ts +10 -0
  214. package/dist/components/templates/lumi/Dashboard/store/storeKeys(1).d.ts +13 -0
  215. package/dist/components/templates/lumi/Dashboard/store/types(1).d.ts +73 -0
  216. package/dist/components/templates/lumi/Dashboard/store/types(2).d.ts +73 -0
  217. package/dist/components/templates/lumi/Dashboard/types(1).d.ts +114 -0
  218. package/dist/components/templates/lumi/Dashboard/types(2).d.ts +114 -0
  219. package/dist/components/templates/lumi/index(1).d.ts +3 -0
  220. package/dist/core/chat/ChatConfigContext(1).d.ts +36 -0
  221. package/dist/core/chat/chatMessage.d.ts +1 -1
  222. package/dist/core/eventBus/chatEventBus.d.ts +67 -0
  223. package/dist/index(1).esm.js +19378 -0
  224. package/dist/index(1).js +19487 -0
  225. package/dist/index.esm.js +2218 -348
  226. package/dist/index.js +2218 -348
  227. package/dist/styles(1).css +1 -0
  228. package/dist/styles.css +1 -1
  229. package/dist/styles.css.map +1 -1
  230. package/package.json +1 -1
  231. package/src/styles/index.scss +7 -0
@@ -0,0 +1,96 @@
1
+ import type { ReactNode } from 'react';
2
+ export type StepStatus = 'pending' | 'active' | 'completed' | 'error';
3
+ export interface StepConfig {
4
+ /** Identificador único del paso */
5
+ id: string;
6
+ /** Título del paso (opcional, se muestra en tooltip) */
7
+ title?: string;
8
+ /** Descripción del paso (opcional) */
9
+ description?: string;
10
+ /** Icono personalizado para el paso (opcional) */
11
+ icon?: ReactNode;
12
+ /** Si el paso está deshabilitado */
13
+ disabled?: boolean;
14
+ /** Función de validación antes de avanzar al siguiente paso */
15
+ validate?: () => boolean | Promise<boolean>;
16
+ /** Callback cuando el paso se completa */
17
+ onComplete?: () => void;
18
+ }
19
+ export interface StepperProps {
20
+ /** Configuración de los pasos */
21
+ steps: StepConfig[];
22
+ /** Índice del paso actual (controlado) */
23
+ currentStep?: number;
24
+ /** Paso inicial (no controlado) */
25
+ defaultStep?: number;
26
+ /** Callback cuando cambia el paso */
27
+ onStepChange?: (stepIndex: number, stepId: string) => void;
28
+ /** Callback cuando se completan todos los pasos */
29
+ onComplete?: () => void;
30
+ /** Callback cuando se cancela el flujo */
31
+ onCancel?: () => void;
32
+ /** Contenido de cada paso (children como función o array) */
33
+ children: ReactNode | ((step: StepConfig, index: number) => ReactNode);
34
+ /** Orientación del stepper */
35
+ orientation?: 'horizontal' | 'vertical';
36
+ /** Tamaño de los indicadores */
37
+ size?: 'small' | 'medium' | 'large';
38
+ /** Variante de los indicadores */
39
+ variant?: 'circle' | 'dot' | 'number';
40
+ /** Si se permite navegación libre entre pasos completados */
41
+ allowNavigation?: boolean;
42
+ /** Si se muestra la línea conectora entre pasos */
43
+ showConnector?: boolean;
44
+ /** Texto del botón anterior */
45
+ prevButtonText?: string;
46
+ /** Texto del botón siguiente */
47
+ nextButtonText?: string;
48
+ /** Texto del botón finalizar */
49
+ finishButtonText?: string;
50
+ /** Texto del botón cancelar */
51
+ cancelButtonText?: string;
52
+ /** Si se muestra el botón cancelar */
53
+ showCancelButton?: boolean;
54
+ /** Si se ocultan los botones de navegación */
55
+ hideNavigation?: boolean;
56
+ /** Renderizado personalizado del header */
57
+ renderHeader?: (props: StepperHeaderRenderProps) => ReactNode;
58
+ /** Renderizado personalizado del footer */
59
+ renderFooter?: (props: StepperFooterRenderProps) => ReactNode;
60
+ /** Clase CSS adicional */
61
+ className?: string;
62
+ /** Si está cargando (deshabilita navegación) */
63
+ loading?: boolean;
64
+ }
65
+ export interface StepperHeaderRenderProps {
66
+ steps: StepConfig[];
67
+ currentStep: number;
68
+ goToStep: (index: number) => void;
69
+ getStepStatus: (index: number) => StepStatus;
70
+ }
71
+ export interface StepperFooterRenderProps {
72
+ currentStep: number;
73
+ totalSteps: number;
74
+ isFirstStep: boolean;
75
+ isLastStep: boolean;
76
+ canGoNext: boolean;
77
+ canGoPrev: boolean;
78
+ goNext: () => void;
79
+ goPrev: () => void;
80
+ goToStep: (index: number) => void;
81
+ finish: () => void;
82
+ cancel: () => void;
83
+ loading: boolean;
84
+ }
85
+ export interface StepIndicatorProps {
86
+ step: StepConfig;
87
+ index: number;
88
+ status: StepStatus;
89
+ size: 'small' | 'medium' | 'large';
90
+ variant: 'circle' | 'dot' | 'number';
91
+ onClick?: () => void;
92
+ isClickable: boolean;
93
+ showConnector: boolean;
94
+ isLast: boolean;
95
+ orientation: 'horizontal' | 'vertical';
96
+ }
@@ -0,0 +1,10 @@
1
+ export { ActionBar, type ActionBarProps, type ActionConfig, type EnableCondition, } from './ActionBar';
2
+ export { DynamicForm, type DynamicFormProps, type FormFieldConfig, type MoleculeType, type SelectOption, } from './DynamicForm';
3
+ export { FormDrawer, type FormDrawerProps, type FormDrawerMode, DEFAULT_TITLES, } from './FormDrawer';
4
+ export { DashboardNavbar, type DashboardNavbarProps, } from './DashboardNavbar';
5
+ export { DashboardSidebar, type DashboardSidebarProps, } from './DashboardSidebar';
6
+ export { DashboardWorkspace, type DashboardWorkspaceProps, } from './DashboardWorkspace';
7
+ export { BaseNavbar, type BaseNavbarProps, } from './BaseNavbar';
8
+ export { BaseWorkspace, type BaseWorkspaceProps, } from './BaseWorkspace';
9
+ export { Calendar, type CalendarProps, type CalendarEvent, type CalendarView, type SlotInfo, type EventColorConfig, } from './Calendar';
10
+ export { Stepper, StepIndicator, type StepperProps, type StepConfig, type StepStatus, type StepperHeaderRenderProps, type StepperFooterRenderProps, } from './Stepper';
@@ -0,0 +1,10 @@
1
+ export { ActionBar, type ActionBarProps, type ActionConfig, type EnableCondition, } from './ActionBar';
2
+ export { DynamicForm, type DynamicFormProps, type FormFieldConfig, type MoleculeType, type SelectOption, } from './DynamicForm';
3
+ export { FormDrawer, type FormDrawerProps, type FormDrawerMode, DEFAULT_TITLES, } from './FormDrawer';
4
+ export { DashboardNavbar, type DashboardNavbarProps, } from './DashboardNavbar';
5
+ export { DashboardSidebar, type DashboardSidebarProps, } from './DashboardSidebar';
6
+ export { DashboardWorkspace, type DashboardWorkspaceProps, } from './DashboardWorkspace';
7
+ export { BaseNavbar, type BaseNavbarProps, } from './BaseNavbar';
8
+ export { BaseWorkspace, type BaseWorkspaceProps, } from './BaseWorkspace';
9
+ export { Calendar, type CalendarProps, type CalendarEvent, type CalendarView, type SlotInfo, type EventColorConfig, } from './Calendar';
10
+ export { Stepper, StepIndicator, type StepperProps, type StepConfig, type StepStatus, type StepperHeaderRenderProps, type StepperFooterRenderProps, } from './Stepper';
@@ -0,0 +1,10 @@
1
+ import { type FC } from 'react';
2
+ import type { ChatWidgetProps } from './types';
3
+ import './ChatWidget.scss';
4
+ /**
5
+ * ChatWidget - Template de Chat tipo Widget Flotante
6
+ *
7
+ * Widget de chat estilo WhatsApp/Intercom con un botón flotante (FAB)
8
+ * que al hacer clic despliega el chat en un contenedor elegante.
9
+ */
10
+ export declare const ChatWidget: FC<ChatWidgetProps>;
@@ -0,0 +1 @@
1
+ export { useChatWidget } from './useChatWidget';
@@ -0,0 +1,2 @@
1
+ export { ChatWidget } from './ChatWidget';
2
+ export type { ChatWidgetProps, ChatWidgetPosition, ChatWidgetOffset, ChatWidgetState, } from './types';
@@ -0,0 +1,2 @@
1
+ export { ChatWidget } from './ChatWidget';
2
+ export type { ChatWidgetProps, ChatWidgetPosition, ChatWidgetOffset, ChatWidgetState, } from './types';
@@ -0,0 +1,90 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ChatConfig } from '../../../../core/chat';
3
+ import type { ChatEventBus } from '../../../../core/eventBus';
4
+ /**
5
+ * Posición del widget en la pantalla
6
+ */
7
+ export type ChatWidgetPosition = 'bottom-right' | 'bottom-left';
8
+ /**
9
+ * Offset del widget desde los bordes
10
+ */
11
+ export interface ChatWidgetOffset {
12
+ x: number;
13
+ y: number;
14
+ }
15
+ /**
16
+ * Props del componente ChatWidget
17
+ */
18
+ export interface ChatWidgetProps {
19
+ /**
20
+ * EventBus para comunicación bidireccional con el Chat
21
+ */
22
+ eventBus: ChatEventBus;
23
+ /**
24
+ * Configuración estática/visual del chat
25
+ */
26
+ config?: Partial<ChatConfig>;
27
+ /**
28
+ * Estado inicial del widget (abierto/cerrado)
29
+ * @default false
30
+ */
31
+ defaultOpen?: boolean;
32
+ /**
33
+ * Estado controlado (abierto/cerrado)
34
+ * Si se proporciona, el componente es controlado
35
+ */
36
+ isOpen?: boolean;
37
+ /**
38
+ * Callback cuando cambia el estado abierto/cerrado
39
+ */
40
+ onOpenChange?: (isOpen: boolean) => void;
41
+ /**
42
+ * Posición del widget en la pantalla
43
+ * @default 'bottom-right'
44
+ */
45
+ position?: ChatWidgetPosition;
46
+ /**
47
+ * Offset desde los bordes (en píxeles)
48
+ * @default { x: 24, y: 24 }
49
+ */
50
+ offset?: ChatWidgetOffset;
51
+ /**
52
+ * Icono personalizado para el FAB cuando está cerrado
53
+ */
54
+ fabIcon?: ReactNode;
55
+ /**
56
+ * Icono cuando está abierto
57
+ */
58
+ fabCloseIcon?: ReactNode;
59
+ /**
60
+ * Color de fondo del FAB
61
+ * @default 'var(--chat-color-primary)'
62
+ */
63
+ fabColor?: string;
64
+ /**
65
+ * Ancho del contenedor de chat
66
+ * @default 380
67
+ */
68
+ width?: number | string;
69
+ /**
70
+ * Alto del contenedor de chat
71
+ * @default 520
72
+ */
73
+ height?: number | string;
74
+ /**
75
+ * Clases CSS adicionales para el contenedor principal
76
+ */
77
+ className?: string;
78
+ /**
79
+ * Test ID para testing
80
+ * @default 'chat-widget'
81
+ */
82
+ 'data-testid'?: string;
83
+ }
84
+ /**
85
+ * Estado interno del ChatWidget
86
+ */
87
+ export interface ChatWidgetState {
88
+ isOpen: boolean;
89
+ isAnimating: boolean;
90
+ }
@@ -0,0 +1,2 @@
1
+ export { useAppHeight } from './useAppHeight';
2
+ export { useResponsive, type ViewportInfo } from './useResponsive';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Hook para manejar la altura de la aplicación basada en el viewport
3
+ * Configura la variable CSS --app-height para manejar el viewport en dispositivos móviles
4
+ *
5
+ * Este hook es especialmente importante para:
6
+ * - Dispositivos iOS donde la barra de direcciones afecta el viewport
7
+ * - Teclados virtuales que reducen el espacio disponible
8
+ * - Cambios de orientación
9
+ *
10
+ * @example
11
+ * function Base() {
12
+ * useAppHeight();
13
+ *
14
+ * return (
15
+ * <div style={{ height: 'var(--app-height)' }}>
16
+ * contenido
17
+ * </div>
18
+ * );
19
+ * }
20
+ */
21
+ export declare const useAppHeight: () => void;
@@ -0,0 +1,2 @@
1
+ export { Base } from './Base';
2
+ export type { BaseProps } from './types';
@@ -0,0 +1,54 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * Props del template Base
4
+ */
5
+ export interface BaseProps {
6
+ /**
7
+ * Contenido del navbar (primera fila)
8
+ * Puede ser cualquier componente React: logos, menús, breadcrumbs, botones, etc.
9
+ */
10
+ navbarContent?: ReactNode;
11
+ /**
12
+ * Contenido principal (segunda fila - workspace)
13
+ */
14
+ children: ReactNode;
15
+ /**
16
+ * Altura del navbar en píxeles
17
+ * @default 64
18
+ */
19
+ navbarHeight?: number;
20
+ /**
21
+ * Color de fondo del navbar
22
+ * @default '#ffffff'
23
+ */
24
+ navbarBackgroundColor?: string;
25
+ /**
26
+ * Color de fondo del workspace
27
+ * @default '#fafafa'
28
+ */
29
+ workspaceBackgroundColor?: string;
30
+ /**
31
+ * Habilitar botón scroll to top en el workspace
32
+ * @default true
33
+ */
34
+ enableScrollToTop?: boolean;
35
+ /**
36
+ * Mostrar sombra en el navbar
37
+ * @default true
38
+ */
39
+ navbarShadow?: boolean;
40
+ /**
41
+ * Padding del workspace (CSS string)
42
+ * Se ajusta automáticamente en móvil (0px) vs desktop (valor prop)
43
+ * @default '24px'
44
+ */
45
+ workspacePadding?: string;
46
+ /**
47
+ * Clase CSS adicional para el contenedor principal
48
+ */
49
+ className?: string;
50
+ /**
51
+ * Test ID para testing
52
+ */
53
+ 'data-testid'?: string;
54
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrudProps } from './types';
2
+ import './Crud.scss';
3
+ export declare function Crud<T extends Record<string, unknown>>({ size, showActionBar, actionBarMode, renderByFields, dataSource, filters, total, onCreate, onEdit, onDelete, onView, onPaginationChange, onFilterChange, validationSchema, getRowKey, labels, disabledActions, loading, filterFields, defaultFilters, tableHeight, hidePagination, formDrawerWidth, formColumns, showRowActions, rowActionTypes, rowActions, customActions, customDrawers, onCustomAction, className, 'data-testid': testId, }: CrudProps<T>): import("react/jsx-runtime").JSX.Element;
4
+ export declare namespace Crud {
5
+ var displayName: string;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { CrudProps } from './types';
2
+ import './Crud.scss';
3
+ export declare function Crud<T extends Record<string, unknown>>({ size, showActionBar, actionBarMode, renderByFields, dataSource, filters, total, onCreate, onEdit, onDelete, onView, onPaginationChange, onFilterChange, validationSchema, getRowKey, labels, disabledActions, loading, filterFields, defaultFilters, tableHeight, hidePagination, formDrawerWidth, formColumns, showRowActions, rowActionTypes, rowActions, customActions, customDrawers, onCustomAction, className, 'data-testid': testId, }: CrudProps<T>): import("react/jsx-runtime").JSX.Element;
4
+ export declare namespace Crud {
5
+ var displayName: string;
6
+ }
@@ -0,0 +1,13 @@
1
+ import type { RenderFieldConfig } from '../types';
2
+ import type { ColumnUI } from '../../../../molecules/lumi/Table/types';
3
+ import type { FormFieldConfig } from '../../../../organisms/lumi/DynamicForm/types';
4
+ /**
5
+ * Mapea RenderFieldConfig a columnas de tabla
6
+ */
7
+ export declare function mapFieldsToTableColumns(fields: RenderFieldConfig[]): ColumnUI<Record<string, unknown>>[];
8
+ /**
9
+ * Mapea RenderFieldConfig a campos de formulario
10
+ * @param fields - Configuración de campos
11
+ * @param mode - Modo del formulario ('create' | 'edit' | 'view') para filtrar por showInModes
12
+ */
13
+ export declare function mapFieldsToFormFields(fields: RenderFieldConfig[], mode?: 'create' | 'edit' | 'view'): FormFieldConfig[];
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Hook para manejar las acciones del CRUD
3
+ */
4
+ export declare function useCrudActions<T extends Record<string, unknown>>(selectedRows: T[], onOpenForm: (mode: 'create' | 'edit' | 'view', data?: Partial<T>) => void, onOpenFilter: () => void, onOpenConfirm: (action: 'create' | 'edit' | 'delete', data?: Partial<T>, rows?: T[]) => void, onClearSelection: () => void, onView?: (rows: T[]) => Promise<void>, formMode?: 'create' | 'edit' | 'view' | null): {
5
+ handleCreate: () => void;
6
+ handleEdit: () => void;
7
+ handleView: () => Promise<void>;
8
+ handleDelete: () => void;
9
+ handleFilter: () => void;
10
+ handleFormSubmit: (data: Record<string, unknown>) => Promise<void>;
11
+ };
@@ -0,0 +1,2 @@
1
+ export { Crud } from './Crud';
2
+ export type { CrudProps, RenderFieldConfig, FilterConfig, PaginationState, CrudLabels, CustomAction, CustomDrawer, } from './types';
@@ -0,0 +1,45 @@
1
+ export declare const actionBarActions: {
2
+ setSelectedCount: (count: number, keys: Array<string | number>) => void;
3
+ setButtonDisabled: (buttonKey: "filter" | "create" | "edit" | "delete" | "view", disabled: boolean) => void;
4
+ setButtonLoading: (buttonKey: "filter" | "create" | "edit" | "delete" | "view", loading: boolean) => void;
5
+ };
6
+ export declare const tableActions: {
7
+ setSelection: (selectedKeys: Array<string | number>, selectedRows: unknown[]) => void;
8
+ clearSelection: () => void;
9
+ setLoading: (loading: boolean) => void;
10
+ setDataLoaded: (loaded: boolean) => void;
11
+ };
12
+ export declare const formDrawerActions: {
13
+ open: (mode: "create" | "edit" | "view", data?: Record<string, unknown>) => void;
14
+ close: () => void;
15
+ setDirty: (isDirty: boolean) => void;
16
+ setSubmitting: (isSubmitting: boolean) => void;
17
+ };
18
+ export declare const dynamicFormActions: {
19
+ setSubmitting: (isSubmitting: boolean) => void;
20
+ setValidating: (isValidating: boolean) => void;
21
+ setErrors: (errors: Record<string, string>) => void;
22
+ touchField: (fieldName: string) => void;
23
+ setUnsavedChanges: (hasChanges: boolean) => void;
24
+ reset: () => void;
25
+ };
26
+ export declare const filterDrawerActions: {
27
+ open: () => void;
28
+ close: () => void;
29
+ applyFilters: (filters: unknown[]) => void;
30
+ setTempFilters: (filters: unknown[]) => void;
31
+ clearFilters: () => void;
32
+ };
33
+ export declare const paginationActions: {
34
+ setCurrentPage: (page: number) => void;
35
+ setPageSize: (size: number) => void;
36
+ setTotal: (total: number) => void;
37
+ update: (current: number, pageSize: number, total: number) => void;
38
+ };
39
+ export declare const crudStateActions: {
40
+ setLoading: (loading: boolean) => void;
41
+ setInitialized: (initialized: boolean) => void;
42
+ setLastAction: (action: string | null) => void;
43
+ setError: (error: string | null) => void;
44
+ reset: () => void;
45
+ };
@@ -0,0 +1,8 @@
1
+ import type { CrudStoreState } from "./types";
2
+ export declare const crudStore: {
3
+ set: <K extends keyof CrudStoreState>(key: K, value: CrudStoreState[K]) => void;
4
+ get: <K extends keyof CrudStoreState>(key: K) => CrudStoreState[K];
5
+ subscribe: <K extends keyof CrudStoreState>(key: K, listener: (val: CrudStoreState[K]) => void) => () => void;
6
+ };
7
+ export declare const setCrudStore: <K extends keyof CrudStoreState>(key: K, partialValue: CrudStoreState[K] extends object ? Partial<CrudStoreState[K]> : CrudStoreState[K]) => void;
8
+ export declare const subscribeCrudProperty: <K extends keyof CrudStoreState>(key: K, path: string, callback: (value: any) => void) => any;
@@ -0,0 +1,5 @@
1
+ export { crudStore, setCrudStore, subscribeCrudProperty } from './crudStore';
2
+ export { CRUD_STORE_KEYS } from './storeKeys';
3
+ export type { CrudStoreKey } from './storeKeys';
4
+ export type { CrudStoreState } from './types';
5
+ export { actionBarActions, tableActions, formDrawerActions, dynamicFormActions, filterDrawerActions, paginationActions, crudStateActions, } from './actions';
@@ -0,0 +1,71 @@
1
+ import { CRUD_STORE_KEYS } from "./storeKeys";
2
+ /**
3
+ * Estado completo del store del CRUD template
4
+ */
5
+ export interface CrudStoreState {
6
+ [CRUD_STORE_KEYS.ACTION_BAR]: {
7
+ selectedCount: number;
8
+ selectedKeys: Array<string | number>;
9
+ buttons: {
10
+ filter: {
11
+ disabled: boolean;
12
+ loading: boolean;
13
+ };
14
+ create: {
15
+ disabled: boolean;
16
+ loading: boolean;
17
+ };
18
+ edit: {
19
+ disabled: boolean;
20
+ loading: boolean;
21
+ };
22
+ delete: {
23
+ disabled: boolean;
24
+ loading: boolean;
25
+ };
26
+ view: {
27
+ disabled: boolean;
28
+ loading: boolean;
29
+ };
30
+ };
31
+ };
32
+ [CRUD_STORE_KEYS.TABLE]: {
33
+ selection: {
34
+ selectedRowKeys: Array<string | number>;
35
+ selectedRows: unknown[];
36
+ };
37
+ loading: boolean;
38
+ dataLoaded: boolean;
39
+ };
40
+ [CRUD_STORE_KEYS.FORM_DRAWER]: {
41
+ isOpen: boolean;
42
+ mode: "create" | "edit" | "view";
43
+ data: Record<string, unknown> | null;
44
+ isDirty: boolean;
45
+ isSubmitting: boolean;
46
+ };
47
+ [CRUD_STORE_KEYS.DYNAMIC_FORM]: {
48
+ isSubmitting: boolean;
49
+ isValidating: boolean;
50
+ errors: Record<string, string>;
51
+ touchedFields: string[];
52
+ hasUnsavedChanges: boolean;
53
+ };
54
+ [CRUD_STORE_KEYS.FILTER_DRAWER]: {
55
+ isOpen: boolean;
56
+ appliedFilters: unknown[];
57
+ tempFilters: unknown[];
58
+ };
59
+ [CRUD_STORE_KEYS.PAGINATION]: {
60
+ current: number;
61
+ pageSize: number;
62
+ total: number;
63
+ totalPages: number;
64
+ };
65
+ [CRUD_STORE_KEYS.CRUD_STATE]: {
66
+ loading: boolean;
67
+ initialized: boolean;
68
+ lastAction: string | null;
69
+ error: string | null;
70
+ };
71
+ }
@@ -0,0 +1,25 @@
1
+ import { type FC } from 'react';
2
+ import type { DashboardProps } from './types';
3
+ import './Dashboard.scss';
4
+ /**
5
+ * Dashboard - Template de Lumi
6
+ *
7
+ * Template completo de Dashboard que integra:
8
+ * - DashboardNavbar: Barra superior con menú y breadcrumb
9
+ * - DashboardSidebar: Menú lateral en drawer
10
+ * - DashboardWorkspace: Área de trabajo con scroll
11
+ * - Sistema de store para gestión de estado
12
+ * - Sincronización automática menú-breadcrumb
13
+ * - Props controlado/no controlado
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <Dashboard
18
+ * menuItems={menuData}
19
+ * onMenuSelect={(info, breadcrumb) => navigate(info.item.route)}
20
+ * >
21
+ * <YourContent />
22
+ * </Dashboard>
23
+ * ```
24
+ */
25
+ export declare const Dashboard: FC<DashboardProps>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Hooks personalizados del Dashboard
3
+ *
4
+ * @module DashboardHooks
5
+ */
6
+ export { useAppHeight } from './useAppHeight';
7
+ export { useResponsive } from './useResponsive';
8
+ export type { ViewportInfo } from './useResponsive';
9
+ export { useScrollToTop } from './useScrollToTop';
10
+ export type { UseScrollToTopOptions, UseScrollToTopReturn } from './useScrollToTop';
11
+ export { useBreadcrumbSync } from './useBreadcrumbSync';
12
+ export { useDashboardStore } from './useDashboardStore';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Hooks personalizados del Dashboard
3
+ *
4
+ * @module DashboardHooks
5
+ */
6
+ export { useAppHeight } from './useAppHeight';
7
+ export { useResponsive } from './useResponsive';
8
+ export type { ViewportInfo } from './useResponsive';
9
+ export { useScrollToTop } from './useScrollToTop';
10
+ export type { UseScrollToTopOptions, UseScrollToTopReturn } from './useScrollToTop';
11
+ export { useBreadcrumbSync } from './useBreadcrumbSync';
12
+ export { useDashboardStore } from './useDashboardStore';
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Hook para interactuar con el store del dashboard
3
+ *
4
+ * Proporciona acceso reactivo a todas las secciones del store.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * function MyComponent() {
9
+ * const {
10
+ * drawerOpen,
11
+ * selectedKeys,
12
+ * breadcrumbItems,
13
+ * showScrollButton,
14
+ * } = useDashboardStore();
15
+ *
16
+ * return <div>{drawerOpen ? 'Open' : 'Closed'}</div>;
17
+ * }
18
+ * ```
19
+ */
20
+ export declare const useDashboardStore: () => {
21
+ drawerOpen: boolean;
22
+ drawerAnimating: boolean;
23
+ navbarHeight: number;
24
+ navbarShadow: boolean;
25
+ breadcrumbItems: import("../../../../..").LumiBreadcrumbItemType[];
26
+ breadcrumbScrollable: boolean;
27
+ selectedKeys: string[];
28
+ openKeys: string[];
29
+ scrollTop: number;
30
+ showScrollButton: boolean;
31
+ isMobile: boolean;
32
+ isTablet: boolean;
33
+ isDesktop: boolean;
34
+ };
@@ -0,0 +1,47 @@
1
+ import { type RefObject } from 'react';
2
+ /**
3
+ * Opciones para el hook useScrollToTop
4
+ */
5
+ export interface UseScrollToTopOptions {
6
+ /** Píxeles de scroll para mostrar el botón (default: 400) */
7
+ threshold?: number;
8
+ /** Duración de la animación en ms (default: 500) */
9
+ duration?: number;
10
+ /** Comportamiento del scroll (default: 'smooth') */
11
+ behavior?: ScrollBehavior;
12
+ }
13
+ /**
14
+ * Valor de retorno del hook
15
+ */
16
+ export interface UseScrollToTopReturn {
17
+ /** Si el botón debe mostrarse */
18
+ showButton: boolean;
19
+ /** Función para hacer scroll al tope */
20
+ scrollToTop: () => void;
21
+ /** Posición actual de scroll */
22
+ scrollTop: number;
23
+ }
24
+ /**
25
+ * Hook para manejar el comportamiento del botón "scroll to top"
26
+ *
27
+ * @param workspaceRef - Ref del contenedor con scroll
28
+ * @param options - Opciones de configuración
29
+ *
30
+ * @example
31
+ * function Workspace() {
32
+ * const workspaceRef = useRef<HTMLDivElement>(null);
33
+ * const { showButton, scrollToTop } = useScrollToTop(workspaceRef);
34
+ *
35
+ * return (
36
+ * <>
37
+ * <div ref={workspaceRef} className="workspace">
38
+ * contenido largo
39
+ * </div>
40
+ * {showButton && (
41
+ * <button onClick={scrollToTop}>arriba</button>
42
+ * )}
43
+ * </>
44
+ * );
45
+ * }
46
+ */
47
+ export declare const useScrollToTop: (workspaceRef: RefObject<HTMLElement>, options?: UseScrollToTopOptions) => UseScrollToTopReturn;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Dashboard - Template principal de navegación y layout
3
+ *
4
+ * @module Dashboard
5
+ */
6
+ export { Dashboard } from './Dashboard';
7
+ export type { DashboardProps } from './types';
8
+ export { useAppHeight, useResponsive, useScrollToTop, useBreadcrumbSync, useDashboardStore, } from './hooks';
9
+ export { dashboardStore, setDashboardStore, subscribeDashboardProperty, DASHBOARD_STORE_KEYS, drawerActions, navbarActions, breadcrumbActions, menuActions, workspaceActions, viewportActions, } from './store';
10
+ export type { DashboardStoreState } from './store';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Constantes para las keys del store del Dashboard
3
+ * Mantiene consistencia y evita errores de typo
4
+ */
5
+ export declare const DASHBOARD_STORE_KEYS: {
6
+ readonly DRAWER: "drawer";
7
+ readonly NAVBAR: "navbar";
8
+ readonly BREADCRUMB: "breadcrumb";
9
+ readonly MENU: "menu";
10
+ readonly WORKSPACE: "workspace";
11
+ readonly VIEWPORT: "viewport";
12
+ };
13
+ export type DashboardStoreKey = typeof DASHBOARD_STORE_KEYS[keyof typeof DASHBOARD_STORE_KEYS];