@royaltics/ui 1.0.5 → 1.0.7

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 (212) hide show
  1. package/dist/buttons/Button.d.ts +14 -16
  2. package/dist/buttons/Button.d.ts.map +1 -1
  3. package/dist/buttons/Button.js +23 -8
  4. package/dist/buttons/Button.js.map +1 -1
  5. package/dist/buttons/Button.stories.d.ts +18 -0
  6. package/dist/buttons/Button.stories.d.ts.map +1 -0
  7. package/dist/buttons/Button.stories.js +41 -0
  8. package/dist/buttons/Button.stories.js.map +1 -0
  9. package/dist/buttons/LinkButton.d.ts +8 -0
  10. package/dist/buttons/LinkButton.d.ts.map +1 -0
  11. package/dist/buttons/LinkButton.js +9 -0
  12. package/dist/buttons/LinkButton.js.map +1 -0
  13. package/dist/buttons/LinkButton.stories.d.ts +7 -0
  14. package/dist/buttons/LinkButton.stories.d.ts.map +1 -0
  15. package/dist/buttons/LinkButton.stories.js +48 -0
  16. package/dist/buttons/LinkButton.stories.js.map +1 -0
  17. package/dist/buttons/index.d.ts +2 -1
  18. package/dist/buttons/index.d.ts.map +1 -1
  19. package/dist/buttons/index.js +1 -0
  20. package/dist/buttons/index.js.map +1 -1
  21. package/dist/components/CheckboxTree.d.ts +5 -0
  22. package/dist/components/CheckboxTree.d.ts.map +1 -0
  23. package/dist/components/CheckboxTree.js +126 -0
  24. package/dist/components/CheckboxTree.js.map +1 -0
  25. package/dist/components/CheckboxTree.stories.d.ts +18 -0
  26. package/dist/components/CheckboxTree.stories.d.ts.map +1 -0
  27. package/dist/components/CheckboxTree.stories.js +39 -0
  28. package/dist/components/CheckboxTree.stories.js.map +1 -0
  29. package/dist/components/ConfirmDialogModal.d.ts +14 -0
  30. package/dist/components/ConfirmDialogModal.d.ts.map +1 -0
  31. package/dist/components/ConfirmDialogModal.js +25 -0
  32. package/dist/components/ConfirmDialogModal.js.map +1 -0
  33. package/dist/components/ConfirmDialogModal.stories.d.ts +18 -0
  34. package/dist/components/ConfirmDialogModal.stories.d.ts.map +1 -0
  35. package/dist/components/ConfirmDialogModal.stories.js +39 -0
  36. package/dist/components/ConfirmDialogModal.stories.js.map +1 -0
  37. package/dist/components/GenericCard.d.ts +13 -0
  38. package/dist/components/GenericCard.d.ts.map +1 -0
  39. package/dist/components/GenericCard.js +14 -0
  40. package/dist/components/GenericCard.js.map +1 -0
  41. package/dist/components/GenericCard.stories.d.ts +17 -0
  42. package/dist/components/GenericCard.stories.d.ts.map +1 -0
  43. package/dist/components/GenericCard.stories.js +30 -0
  44. package/dist/components/GenericCard.stories.js.map +1 -0
  45. package/dist/components/Paginate.d.ts +22 -0
  46. package/dist/components/Paginate.d.ts.map +1 -0
  47. package/dist/components/Paginate.js +102 -0
  48. package/dist/components/Paginate.js.map +1 -0
  49. package/dist/components/Paginate.stories.d.ts +18 -0
  50. package/dist/components/Paginate.stories.d.ts.map +1 -0
  51. package/dist/components/Paginate.stories.js +40 -0
  52. package/dist/components/Paginate.stories.js.map +1 -0
  53. package/dist/components/PhotoCard.d.ts +12 -0
  54. package/dist/components/PhotoCard.d.ts.map +1 -0
  55. package/dist/components/PhotoCard.js +62 -0
  56. package/dist/components/PhotoCard.js.map +1 -0
  57. package/dist/components/PlayerYoutube.d.ts +17 -0
  58. package/dist/components/PlayerYoutube.d.ts.map +1 -0
  59. package/dist/components/PlayerYoutube.js +41 -0
  60. package/dist/components/PlayerYoutube.js.map +1 -0
  61. package/dist/components/checkboxtree/CheckBoxTreeButton.d.ts +8 -0
  62. package/dist/components/checkboxtree/CheckBoxTreeButton.d.ts.map +1 -0
  63. package/dist/components/checkboxtree/CheckBoxTreeButton.js +7 -0
  64. package/dist/components/checkboxtree/CheckBoxTreeButton.js.map +1 -0
  65. package/dist/components/checkboxtree/CheckboxTreeError.d.ts +5 -0
  66. package/dist/components/checkboxtree/CheckboxTreeError.d.ts.map +1 -0
  67. package/dist/components/checkboxtree/CheckboxTreeError.js +16 -0
  68. package/dist/components/checkboxtree/CheckboxTreeError.js.map +1 -0
  69. package/dist/components/checkboxtree/NativeCheckbox.d.ts +7 -0
  70. package/dist/components/checkboxtree/NativeCheckbox.d.ts.map +1 -0
  71. package/dist/components/checkboxtree/NativeCheckbox.js +17 -0
  72. package/dist/components/checkboxtree/NativeCheckbox.js.map +1 -0
  73. package/dist/components/checkboxtree/NodeModel.d.ts +30 -0
  74. package/dist/components/checkboxtree/NodeModel.d.ts.map +1 -0
  75. package/dist/components/checkboxtree/NodeModel.js +184 -0
  76. package/dist/components/checkboxtree/NodeModel.js.map +1 -0
  77. package/dist/components/checkboxtree/TreeNode.d.ts +44 -0
  78. package/dist/components/checkboxtree/TreeNode.d.ts.map +1 -0
  79. package/dist/components/checkboxtree/TreeNode.js +139 -0
  80. package/dist/components/checkboxtree/TreeNode.js.map +1 -0
  81. package/dist/components/checkboxtree/constants.d.ts +8 -0
  82. package/dist/components/checkboxtree/constants.d.ts.map +1 -0
  83. package/dist/components/checkboxtree/constants.js +46 -0
  84. package/dist/components/checkboxtree/constants.js.map +1 -0
  85. package/dist/components/checkboxtree/types/types.d.ts +70 -0
  86. package/dist/components/checkboxtree/types/types.d.ts.map +1 -0
  87. package/dist/components/checkboxtree/types/types.js +2 -0
  88. package/dist/components/checkboxtree/types/types.js.map +1 -0
  89. package/dist/components/checkboxtree/utils.d.ts +16 -0
  90. package/dist/components/checkboxtree/utils.d.ts.map +1 -0
  91. package/dist/components/checkboxtree/utils.js +28 -0
  92. package/dist/components/checkboxtree/utils.js.map +1 -0
  93. package/dist/components/index.d.ts +7 -0
  94. package/dist/components/index.d.ts.map +1 -0
  95. package/dist/components/index.js +9 -0
  96. package/dist/components/index.js.map +1 -0
  97. package/dist/constants/DataArrayNodes.d.ts +53 -0
  98. package/dist/constants/DataArrayNodes.d.ts.map +1 -0
  99. package/dist/constants/DataArrayNodes.js +162 -0
  100. package/dist/constants/DataArrayNodes.js.map +1 -0
  101. package/dist/constants/Variants.d.ts +26 -0
  102. package/dist/constants/Variants.d.ts.map +1 -0
  103. package/dist/constants/Variants.js +26 -0
  104. package/dist/constants/Variants.js.map +1 -0
  105. package/dist/forms/Button.d.ts +12 -0
  106. package/dist/forms/Button.d.ts.map +1 -0
  107. package/dist/forms/Button.js +28 -0
  108. package/dist/forms/Button.js.map +1 -0
  109. package/dist/forms/Button.stories.d.ts +18 -0
  110. package/dist/forms/Button.stories.d.ts.map +1 -0
  111. package/dist/forms/Button.stories.js +41 -0
  112. package/dist/forms/Button.stories.js.map +1 -0
  113. package/dist/forms/Checkbox.d.ts +13 -10
  114. package/dist/forms/Checkbox.d.ts.map +1 -1
  115. package/dist/forms/Checkbox.js +43 -4
  116. package/dist/forms/Checkbox.js.map +1 -1
  117. package/dist/forms/Checkbox.stories.d.ts +20 -0
  118. package/dist/forms/Checkbox.stories.d.ts.map +1 -0
  119. package/dist/forms/Checkbox.stories.js +65 -0
  120. package/dist/forms/Checkbox.stories.js.map +1 -0
  121. package/dist/forms/Input.d.ts +11 -22
  122. package/dist/forms/Input.d.ts.map +1 -1
  123. package/dist/forms/Input.js +27 -12
  124. package/dist/forms/Input.js.map +1 -1
  125. package/dist/forms/Input.stories.d.ts +22 -0
  126. package/dist/forms/Input.stories.d.ts.map +1 -0
  127. package/dist/forms/Input.stories.js +59 -0
  128. package/dist/forms/Input.stories.js.map +1 -0
  129. package/dist/forms/LinkButton.d.ts +8 -0
  130. package/dist/forms/LinkButton.d.ts.map +1 -0
  131. package/dist/forms/LinkButton.js +9 -0
  132. package/dist/forms/LinkButton.js.map +1 -0
  133. package/dist/forms/LinkButton.stories.d.ts +7 -0
  134. package/dist/forms/LinkButton.stories.d.ts.map +1 -0
  135. package/dist/forms/LinkButton.stories.js +48 -0
  136. package/dist/forms/LinkButton.stories.js.map +1 -0
  137. package/dist/forms/PhotoCard.d.ts.map +1 -1
  138. package/dist/forms/PlayerYoutube.d.ts.map +1 -1
  139. package/dist/forms/RadioButton.d.ts +2 -2
  140. package/dist/forms/RadioButton.d.ts.map +1 -1
  141. package/dist/forms/RadioButton.js +1 -1
  142. package/dist/forms/RadioButton.js.map +1 -1
  143. package/dist/forms/Select.d.ts +6 -14
  144. package/dist/forms/Select.d.ts.map +1 -1
  145. package/dist/forms/Select.js +25 -15
  146. package/dist/forms/Select.js.map +1 -1
  147. package/dist/forms/Select.stories.d.ts +17 -0
  148. package/dist/forms/Select.stories.d.ts.map +1 -0
  149. package/dist/forms/Select.stories.js +36 -0
  150. package/dist/forms/Select.stories.js.map +1 -0
  151. package/dist/forms/TextArea.d.ts +5 -13
  152. package/dist/forms/TextArea.d.ts.map +1 -1
  153. package/dist/forms/TextArea.js +4 -4
  154. package/dist/forms/TextArea.js.map +1 -1
  155. package/dist/forms/TextArea.stories.d.ts +17 -0
  156. package/dist/forms/TextArea.stories.d.ts.map +1 -0
  157. package/dist/forms/TextArea.stories.js +29 -0
  158. package/dist/forms/TextArea.stories.js.map +1 -0
  159. package/dist/forms/ToggleSwitch.d.ts.map +1 -1
  160. package/dist/forms/index.d.ts +4 -3
  161. package/dist/forms/index.d.ts.map +1 -1
  162. package/dist/forms/index.js +3 -9
  163. package/dist/forms/index.js.map +1 -1
  164. package/dist/hooks/useHttpState.d.ts.map +1 -1
  165. package/dist/hooks/useRouter.d.ts +2 -2
  166. package/dist/icons/index.d.ts +2 -0
  167. package/dist/icons/index.d.ts.map +1 -0
  168. package/dist/icons/index.js +3 -0
  169. package/dist/icons/index.js.map +1 -0
  170. package/dist/index.d.ts +2 -7
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +2 -12
  173. package/dist/index.js.map +1 -1
  174. package/dist/reducers/index.d.ts.map +1 -1
  175. package/dist/stories/Button.d.ts +17 -0
  176. package/dist/stories/Button.d.ts.map +1 -0
  177. package/dist/stories/Button.js +8 -0
  178. package/dist/stories/Button.js.map +1 -0
  179. package/dist/stories/Button.stories.d.ts +25 -0
  180. package/dist/stories/Button.stories.d.ts.map +1 -0
  181. package/dist/stories/Button.stories.js +51 -0
  182. package/dist/stories/Button.stories.js.map +1 -0
  183. package/dist/stories/Header.d.ts +14 -0
  184. package/dist/stories/Header.d.ts.map +1 -0
  185. package/dist/stories/Header.js +21 -0
  186. package/dist/stories/Header.js.map +1 -0
  187. package/dist/stories/Header.stories.d.ts +19 -0
  188. package/dist/stories/Header.stories.d.ts.map +1 -0
  189. package/dist/stories/Header.stories.js +27 -0
  190. package/dist/stories/Header.stories.js.map +1 -0
  191. package/dist/stories/Page.d.ts +4 -0
  192. package/dist/stories/Page.d.ts.map +1 -0
  193. package/dist/stories/Page.js +38 -0
  194. package/dist/stories/Page.js.map +1 -0
  195. package/dist/stories/Page.stories.d.ts +13 -0
  196. package/dist/stories/Page.stories.d.ts.map +1 -0
  197. package/dist/stories/Page.stories.js +25 -0
  198. package/dist/stories/Page.stories.js.map +1 -0
  199. package/dist/types/StoriesArguments.d.ts +4 -0
  200. package/dist/types/StoriesArguments.d.ts.map +1 -0
  201. package/dist/types/StoriesArguments.js +52 -0
  202. package/dist/types/StoriesArguments.js.map +1 -0
  203. package/dist/types/global.d.ts +31 -0
  204. package/dist/types/global.d.ts.map +1 -0
  205. package/dist/types/global.js +2 -0
  206. package/dist/types/global.js.map +1 -0
  207. package/dist/utils/cvmix.d.ts +23 -0
  208. package/dist/utils/cvmix.d.ts.map +1 -0
  209. package/dist/utils/cvmix.js +46 -0
  210. package/dist/utils/cvmix.js.map +1 -0
  211. package/dist/validators/index.d.ts.map +1 -1
  212. package/package.json +101 -75
@@ -1,19 +1,17 @@
1
- import React, { ReactNode } from "react";
2
- export type ButtonType = {
1
+ import React from 'react';
2
+ import { ComponentBase } from '../types/global.js';
3
+ export declare const classNamesProps: (mainProps: {
4
+ size?: string | undefined;
5
+ variant?: string | undefined;
6
+ }, keyProps?: {
7
+ [key: string]: string;
8
+ }) => string;
9
+ export interface ButtonProps extends ComponentBase {
3
10
  lb?: string;
4
- icon?: ReactNode;
5
- children?: ReactNode;
6
- IconNode?: any;
7
- inForm?: boolean;
8
- className?: any;
9
- theme?: 'primary' | 'secondary' | 'warn' | 'danger' | 'default';
10
- tabIndex?: number;
11
- disabled?: boolean;
12
- onClick?: any;
13
- wMax?: boolean;
14
- padding?: 'small' | 'medium' | 'large';
15
- wrap?: boolean;
16
- };
17
- declare const Button: ({ lb, padding, icon, children, IconNode, wMax, theme, className, onClick, inForm, disabled, tabIndex, wrap }: ButtonType) => React.JSX.Element;
11
+ Icon?: React.PropsWithRef<any>;
12
+ onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
13
+ loading?: boolean;
14
+ }
15
+ declare const Button: ({ lb, theme, loading, Icon, variant, size, className, onClick, disabled, tabIndex, width }: ButtonProps) => React.JSX.Element;
18
16
  export default Button;
19
17
  //# sourceMappingURL=Button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAC,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IACtC,IAAI,CAAC,EAAC,OAAO,CAAA;CACd,CAAA;AAED,QAAA,MAAM,MAAM,iHAA0I,UAAU,sBA0B/J,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,eAAO,MAAM,eAAe;;;;;YAe3B,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,aAAa;IACjD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,QAAA,MAAM,MAAM,GAAI,4FAA8I,WAAW,sBAgBxK,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,12 +1,27 @@
1
- import React from "react";
1
+ import React from 'react';
2
2
  import cn from 'classnames';
3
- const Button = ({ lb = "", padding, icon, children, IconNode, wMax = false, theme = 'default', className, onClick, inForm, disabled, tabIndex, wrap }) => {
4
- return (React.createElement("div", { className: `flex flex-col items-stretch justify-end ${wMax ? 'w-max' : 'w-full'} ${className ?? ''}` },
5
- React.createElement("button", { className: cn('button text-white ', theme == 'default' && "bg-gray-500 hover:bg-gray-600 disabled:bg-slate-300", theme == 'primary' && "bg-sky-650 hover:bg-sky-750 disabled:bg-sky-300 ", theme == 'secondary' && "bg-green-500 hover:bg-green-650 disabled:bg-green-300 ", theme == 'danger' && "bg-red-600 hover:bg-red-700 disabled:bg-red-300 ", theme == 'warn' && "bg-yellow-600 hover:bg-yellow-700 disabled:bg-yellow-300 ", padding == 'small' && (inForm || icon || IconNode ? '!py-[0.45rem]' : '!py-1.5'), padding == 'medium' && '!py-2 !px-4', padding == 'large' && '!p-4'), onClick: onClick, title: lb, tabIndex: tabIndex, disabled: disabled },
6
- icon,
7
- children,
8
- IconNode && React.createElement(IconNode, { className: "h-5" }),
9
- lb && React.createElement("span", { className: wrap ? 'hidden md:block' : '' }, lb))));
3
+ import { ArrowPathIcon } from '@heroicons/react/16/solid';
4
+ import { cvaMix } from '../utils/cvmix.js';
5
+ import { Variants } from '../constants/Variants.js';
6
+ export const classNamesProps = cvaMix("flex items-center justify-between rounded-md cursor-pointer", {
7
+ size: Variants.size,
8
+ variant: {
9
+ __key: 'theme',
10
+ __base: 'disabled:opacity-70',
11
+ fill: Variants.fill,
12
+ outline: Variants.outline
13
+ }
14
+ }, {
15
+ size: 'xs',
16
+ filled: 'outline',
17
+ theme: 'primary',
18
+ });
19
+ ;
20
+ const Button = ({ lb = '', theme = 'primary', loading, Icon, variant = 'fill', size = 'md', className, onClick, disabled = false, tabIndex, width = 'full' }) => {
21
+ return (React.createElement("div", { className: cn('flex flex-col items-stretch justify-end', width == 'full' ? 'w-full' : 'w-max', className) },
22
+ React.createElement("button", { className: cn(classNamesProps({ variant, size }, { theme })), onClick: onClick, title: lb, tabIndex: tabIndex, disabled: disabled },
23
+ loading ? (React.createElement(ArrowPathIcon, { className: "animate-spin h-5" })) : (Icon ? React.createElement(Icon, { className: cn('h-5 w-5 shrink-0', { 'h-4 w-4': size === 'xs' || size === 'sm' }) }) : null),
24
+ lb && React.createElement("span", { className: cn({ 'hidden md:block': width == 'max' && Icon }) }, lb))));
10
25
  };
11
26
  export default Button;
12
27
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,YAAY,CAAA;AAkB3B,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAc,EAAE,EAAE;IAElK,OAAO,CACL,6BAAK,SAAS,EAAE,2CAA2C,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,IAAI,EAAE,EAAE;QACvG,gCACE,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAChC,KAAK,IAAI,SAAS,IAAI,qDAAqD,EAC3E,KAAK,IAAI,SAAS,IAAI,kDAAkD,EACxE,KAAK,IAAI,WAAW,IAAI,wDAAwD,EAChF,KAAK,IAAI,QAAQ,IAAI,kDAAkD,EACvE,KAAK,IAAI,MAAM,IAAI,2DAA2D,EAC9E,OAAO,IAAI,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,EAChF,OAAO,IAAI,QAAQ,IAAI,aAAa,EACpC,OAAO,IAAI,OAAO,IAAI,MAAM,CAC7B,EACD,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ;YACjB,IAAI;YACJ,QAAQ;YACR,QAAQ,IAAI,oBAAC,QAAQ,IAAC,SAAS,EAAC,KAAK,GAAG;YACxC,EAAE,IAAI,8BAAM,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAA,CAAC,CAAA,EAAE,IAAG,EAAE,CAAQ,CACzD,CACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,6DAA6D,EAClG;IACC,IAAI,EAAE,QAAQ,CAAC,IAAI;IACnB,OAAO,EAAE;QACR,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,qBAAqB;QAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;KACzB;CACD,EACD;IACC,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;CAChB,CACD,CAAC;AAOD,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAe,EAAE,EAAE;IAE5K,OAAO,CACN,6BAAK,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC;QAC7G,gCACC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAC5D,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ;YAEjB,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAC,aAAa,IAAC,SAAS,EAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACvK,EAAE,IAAI,8BAAM,SAAS,EAAE,EAAE,CAAC,EAAE,iBAAiB,EAAE,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,IAAG,EAAE,CAAQ,CAC9E,CACJ,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import { ButtonProps } from './Button.js';
3
+ declare const meta: {
4
+ title: string;
5
+ component: ({ lb, theme, loading, Icon, variant, size, className, onClick, disabled, tabIndex, width }: ButtonProps) => import("react").JSX.Element;
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ tags: string[];
10
+ argTypes: {
11
+ disabled: any;
12
+ };
13
+ };
14
+ export default meta;
15
+ export declare const buttonPrimary: StoryObj<typeof meta>;
16
+ export declare const buttonSecondary: StoryObj<typeof meta>;
17
+ export declare const variantbuttonSize: StoryObj<typeof meta>;
18
+ //# sourceMappingURL=Button.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../src/buttons/Button.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAKlD,QAAA,MAAM,IAAI;;;;;;;;;;CAQmB,CAAC;AAE9B,eAAe,IAAI,CAAC;AAIpB,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,OAAO,IAAI,CAO/C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,OAAO,IAAI,CASjD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,OAAO,IAAI,CAQnD,CAAC"}
@@ -0,0 +1,41 @@
1
+ import Button from './Button.js'; // Sin .js si usas la configuración por defecto de Webpack/Vite
2
+ import { ArgumentsBase, ArgumentsComponents } from '../types/StoriesArguments.js';
3
+ import { TrashIcon } from '@heroicons/react/16/solid';
4
+ // Configuración general para el componente en Storybook
5
+ const meta = {
6
+ title: 'UI/Buttons/Button', // Categoría y nombre en la barra lateral de Storybook
7
+ component: Button,
8
+ parameters: {
9
+ layout: 'centered', // Centra el componente en el lienzo
10
+ },
11
+ tags: ['autodocs'],
12
+ argTypes: { ...ArgumentsBase, disabled: ArgumentsComponents.disabled }
13
+ };
14
+ export default meta;
15
+ // Historias individuales
16
+ export const buttonPrimary = {
17
+ args: {
18
+ lb: 'Botón Primario',
19
+ variant: 'fill',
20
+ loading: true,
21
+ theme: 'primary'
22
+ },
23
+ };
24
+ export const buttonSecondary = {
25
+ args: {
26
+ lb: 'Botón Secundario',
27
+ theme: 'secondary',
28
+ size: 'xs',
29
+ variant: 'fill',
30
+ Icon: TrashIcon
31
+ },
32
+ };
33
+ export const variantbuttonSize = {
34
+ args: {
35
+ lb: 'Botón Variante primary',
36
+ theme: 'primary',
37
+ size: 'lg',
38
+ variant: 'outline',
39
+ },
40
+ };
41
+ //# sourceMappingURL=Button.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.stories.js","sourceRoot":"","sources":["../../src/buttons/Button.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,MAAuB,MAAM,aAAa,CAAC,CAAC,+DAA+D;AAClH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,wDAAwD;AACxD,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,mBAAmB,EAAE,sDAAsD;IAClF,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE;QACV,MAAM,EAAE,UAAU,EAAE,oCAAoC;KACzD;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC3C,CAAC;AAE9B,eAAe,IAAI,CAAC;AAGpB,yBAAyB;AACzB,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,IAAI,EAAE;QACJ,EAAE,EAAE,gBAAgB;QACpB,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,SAAS;KACjB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,IAAI,EAAE;QACJ,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,SAAS;KAEhB;CACF,CAAC;AAGF,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,IAAI,EAAE;QACJ,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,SAAS;KAEnB;CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { ButtonProps } from "./Button.js";
3
+ export interface LinkButtonProps extends ButtonProps {
4
+ to: string;
5
+ }
6
+ declare const LinkButton: (props: LinkButtonProps) => React.JSX.Element;
7
+ export default LinkButton;
8
+ //# sourceMappingURL=LinkButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkButton.d.ts","sourceRoot":"","sources":["../../src/buttons/LinkButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAe,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AACjD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,EAAE,EAAE,MAAM,CAAA;CACX;AAED,QAAA,MAAM,UAAU,GAAI,OAAO,eAAe,sBASzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { Link } from "react-router-dom";
3
+ import Button from "./Button.js";
4
+ const LinkButton = (props) => {
5
+ return (React.createElement(Link, { to: props.to, title: props.lb },
6
+ React.createElement(Button, { ...props })));
7
+ };
8
+ export default LinkButton;
9
+ //# sourceMappingURL=LinkButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkButton.js","sourceRoot":"","sources":["../../src/buttons/LinkButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,MAAsB,MAAM,aAAa,CAAC;AAKjD,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE;IAE5C,OAAO,CACL,oBAAC,IAAI,IACH,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAE,KAAK,CAAC,EAAE;QACf,oBAAC,MAAM,OAAK,KAAK,GAAI,CAChB,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: any;
3
+ export default meta;
4
+ export declare const LinkButtonPrimary: StoryObj<typeof meta>;
5
+ export declare const LinkButtonSecondary: StoryObj<typeof meta>;
6
+ export declare const variantLinkButtonSize: StoryObj<typeof meta>;
7
+ //# sourceMappingURL=LinkButton.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkButton.stories.d.ts","sourceRoot":"","sources":["../../src/buttons/LinkButton.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAO5D,QAAA,MAAM,IAAI,EAAE,GAcqB,CAAC;AAGlC,eAAe,IAAI,CAAC;AAIpB,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,OAAO,IAAI,CAQnD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,OAAO,IAAI,CAUrD,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,OAAO,IAAI,CASvD,CAAC"}
@@ -0,0 +1,48 @@
1
+ import React from "react";
2
+ import LinkButton from './LinkButton.js'; // Sin .js si usas la configuración por defecto de Webpack/Vite
3
+ import { ArgumentsBase, ArgumentsComponents } from '../types/StoriesArguments.js';
4
+ import { TrashIcon } from '@heroicons/react/16/solid';
5
+ import { BrowserRouter } from 'react-router-dom';
6
+ // Configuración general para el componente en Storybook
7
+ const meta = {
8
+ title: 'UI/Buttons/LinkButton', // Categoría y nombre en la barra lateral de Storybook
9
+ component: LinkButton,
10
+ // Aplica el decorador solo a esta historia o a este archivo de historias
11
+ decorators: [
12
+ (Story) => (React.createElement(BrowserRouter, null,
13
+ React.createElement(Story, null))),
14
+ ],
15
+ tags: ['autodocs'],
16
+ argTypes: { ...ArgumentsBase, disabled: ArgumentsComponents.disabled }
17
+ };
18
+ export default meta;
19
+ // Historias individuales
20
+ export const LinkButtonPrimary = {
21
+ args: {
22
+ to: '',
23
+ lb: 'Botón Primario',
24
+ variant: 'fill',
25
+ loading: true,
26
+ theme: 'primary'
27
+ },
28
+ };
29
+ export const LinkButtonSecondary = {
30
+ args: {
31
+ to: '',
32
+ lb: 'Botón Secundario',
33
+ theme: 'secondary',
34
+ size: 'xs',
35
+ variant: 'fill',
36
+ Icon: TrashIcon
37
+ },
38
+ };
39
+ export const variantLinkButtonSize = {
40
+ args: {
41
+ to: '',
42
+ lb: 'Botón Variante primary',
43
+ theme: 'primary',
44
+ size: 'lg',
45
+ variant: 'outline',
46
+ },
47
+ };
48
+ //# sourceMappingURL=LinkButton.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkButton.stories.js","sourceRoot":"","sources":["../../src/buttons/LinkButton.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,UAA+B,MAAM,iBAAiB,CAAC,CAAC,+DAA+D;AAC9H,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wDAAwD;AACxD,MAAM,IAAI,GAAQ;IAChB,KAAK,EAAE,uBAAuB,EAAE,sDAAsD;IACtF,SAAS,EAAE,UAAU;IACrB,yEAAyE;IACzE,UAAU,EAAE;QACV,CAAC,KAAK,EAAE,EAAE,CAAC,CACT,oBAAC,aAAa;YACZ,oBAAC,KAAK,OAAG,CACK,CACjB;KACF;IAED,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CACvC,CAAC;AAGlC,eAAe,IAAI,CAAC;AAGpB,yBAAyB;AACzB,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,IAAI,EAAE;QACJ,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,gBAAgB;QACpB,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,SAAS;KACjB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAA0B;IACxD,IAAI,EAAE;QACJ,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,SAAS;KAEhB;CACF,CAAC;AAGF,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D,IAAI,EAAE;QACJ,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,SAAS;KAEnB;CACF,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { default as Button } from "./Button.js";
2
- export type { ButtonType } from './Button.js';
2
+ export { default as LinkButtonSmall } from "./LinkButton.js";
3
+ export type { ButtonProps } from './Button.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/buttons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/buttons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { default as Button } from "./Button.js";
2
+ export { default as LinkButtonSmall } from "./LinkButton.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/buttons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/buttons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { CheckboxTreeProps } from './checkboxtree/types/types.js';
3
+ declare function CheckboxTree(props: CheckboxTreeProps): React.JSX.Element;
4
+ export default CheckboxTree;
5
+ //# sourceMappingURL=CheckboxTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxTree.d.ts","sourceRoot":"","sources":["../../src/components/CheckboxTree.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAO9D,OAAO,EAAoB,iBAAiB,EAAgB,MAAM,+BAA+B,CAAC;AAIlG,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAgM7C;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,126 @@
1
+ import classNames from 'classnames';
2
+ import React, { useState, useCallback, useMemo } from 'react';
3
+ import Button from './checkboxtree/CheckBoxTreeButton.js';
4
+ import { DefaultCheckBoxProps } from './checkboxtree/constants.js';
5
+ import NodeModel from './checkboxtree/NodeModel.js';
6
+ import TreeNode from './checkboxtree/TreeNode.js';
7
+ import memoize from 'memoize';
8
+ import { v4 as uuidv4 } from 'uuid';
9
+ const MemoizedTreeNode = React.memo(TreeNode);
10
+ function CheckboxTree(props) {
11
+ const mergedProps = { ...DefaultCheckBoxProps, ...props };
12
+ const { nodes, checked, expanded, id, disabled, checkModel, noCascade, onCheck, onExpand, onClick, expandDisabled, expandOnClick, icons, lang, onlyLeafCheckboxes, optimisticToggle, showNodeIcon, showNodeTitle, showExpandAllButtons, direction, nativeCheckboxes } = mergedProps;
13
+ const [componentId] = useState(id || `rct-${uuidv4()}`);
14
+ // UPDATE: Usamos useMemo para crear y actualizar el NodeModel y derivar flatNodesState
15
+ const [model, flatNodesState] = useMemo(() => {
16
+ const currentModel = new NodeModel(mergedProps);
17
+ // Asegura que el modelo se inicializa con los nodos y estados correctos
18
+ currentModel.flattenNodes(nodes);
19
+ currentModel.deserializeLists({ checked, expanded });
20
+ return [currentModel, currentModel.getNodes()];
21
+ }, [nodes, checked, expanded, disabled, mergedProps]); // Dependencias de useMemo
22
+ const combineMemorizedIcons = useMemo(() => {
23
+ const defaultIcons = DefaultCheckBoxProps.icons;
24
+ return memoize((customIcons) => ({ ...defaultIcons, ...customIcons }));
25
+ }, []);
26
+ const combinedIcons = useMemo(() => combineMemorizedIcons(icons), [icons, combineMemorizedIcons]);
27
+ const onCheckHandler = useCallback((nodeInfo) => {
28
+ const newModel = model.clone();
29
+ newModel.toggleChecked(nodeInfo, nodeInfo.checked, checkModel, noCascade);
30
+ onCheck(newModel.serializeList('checked'), { ...newModel.getNode(nodeInfo.value), ...nodeInfo });
31
+ // UPDATE: Forzamos un re-render actualizando el estado, lo que disparará el useMemo
32
+ // que a su vez re-calcula el NodeModel y flatNodesState.
33
+ }, [checkModel, noCascade, onCheck, model]);
34
+ const onExpandHandler = useCallback((nodeInfo) => {
35
+ const newModel = model.clone();
36
+ newModel.toggleNode(nodeInfo.value, 'expanded', nodeInfo.expanded);
37
+ onExpand(newModel.serializeList('expanded'), { ...newModel.getNode(nodeInfo.value), ...nodeInfo });
38
+ // UPDATE: No es necesario setFlatNodesState aquí si las props son controladas.
39
+ }, [onExpand, model]);
40
+ const onNodeClickHandler = useCallback((nodeInfo) => {
41
+ if (onClick) {
42
+ const node = model.getNode(nodeInfo.value);
43
+ onClick({ ...node, ...nodeInfo });
44
+ }
45
+ }, [onClick, model]);
46
+ const expandAllNodes = useCallback((expand = true) => {
47
+ const newModel = model.clone();
48
+ onExpand(newModel.expandAllNodes(expand)
49
+ .serializeList('expanded'));
50
+ // UPDATE: No es necesario setFlatNodesState aquí si las props son controladas.
51
+ }, [onExpand, model]);
52
+ const onExpandAllHandler = useCallback(() => {
53
+ expandAllNodes(true);
54
+ }, [expandAllNodes]);
55
+ const onCollapseAllHandler = useCallback(() => {
56
+ expandAllNodes(false);
57
+ }, [expandAllNodes]);
58
+ const isEveryChildChecked = useCallback((node) => {
59
+ if (!node.children || node.children.length === 0)
60
+ return true;
61
+ return node.children.every((child) => flatNodesState[child.value]?.checked);
62
+ }, [flatNodesState]);
63
+ const isSomeChildChecked = useCallback((node) => {
64
+ if (!node.children || node.children.length === 0)
65
+ return false;
66
+ return node.children.some((child) => flatNodesState[child.value]?.checked);
67
+ }, [flatNodesState]);
68
+ const determineShallowCheckState = useCallback((node, noCascadeProp) => {
69
+ const flatNode = flatNodesState[node.value]; // UPDATE: Usar flatNodesState directamente
70
+ if (!flatNode)
71
+ return 0;
72
+ if (flatNode.isLeaf || noCascadeProp || (node.children && node.children.length === 0)) {
73
+ return flatNode.checked ? 1 : 0;
74
+ }
75
+ if (isEveryChildChecked(node))
76
+ return 1;
77
+ if (isSomeChildChecked(node))
78
+ return 2;
79
+ return 0;
80
+ }, [isEveryChildChecked, isSomeChildChecked, flatNodesState]); // UPDATE: Dependencia flatNodesState
81
+ const renderTreeNodes = useCallback((treeNodesToRender, parent) => {
82
+ return treeNodesToRender.map((node) => {
83
+ const key = node.value;
84
+ const flatNode = flatNodesState[node.value];
85
+ if (!flatNode)
86
+ return null;
87
+ const checkState = determineShallowCheckState(node, noCascade);
88
+ const children = flatNode.isParent && flatNode.expanded ? renderTreeNodes(node.children, node) : null;
89
+ const showCheckbox = onlyLeafCheckboxes ? flatNode.isLeaf : flatNode.showCheckbox;
90
+ const parentExpanded = parent?.value ? flatNodesState[parent.value]?.expanded : true;
91
+ if (!parentExpanded && parent?.value) {
92
+ return null;
93
+ }
94
+ return (React.createElement(MemoizedTreeNode, { key: key, checked: checkState, className: node.className, disabled: flatNode.disabled || disabled, expandDisabled: expandDisabled, expandOnClick: expandOnClick, expanded: flatNode.expanded, icon: node.icon, icons: combinedIcons, isLeaf: flatNode.isLeaf, isParent: flatNode.isParent, label: node.label, lang: lang, optimisticToggle: optimisticToggle, showCheckbox: showCheckbox, showNodeIcon: showNodeIcon, title: showNodeTitle ? node.title || node.label : flatNode.title, treeId: componentId, nativeCheckboxes: nativeCheckboxes, value: node.value, onCheck: onCheckHandler, onClick: onNodeClickHandler, onExpand: onExpandHandler }, children));
95
+ });
96
+ }, [
97
+ noCascade, onlyLeafCheckboxes, expandDisabled, expandOnClick, combinedIcons,
98
+ lang, optimisticToggle, showNodeIcon, showNodeTitle, componentId, disabled,
99
+ onCheckHandler, onNodeClickHandler, onExpandHandler,
100
+ determineShallowCheckState, flatNodesState
101
+ ]);
102
+ const renderExpandAll = useCallback(() => {
103
+ if (!showExpandAllButtons) {
104
+ return null;
105
+ }
106
+ return (React.createElement("div", { className: "rct-options" },
107
+ React.createElement(Button, { className: "rct-option rct-option-expand-all", title: lang.expandAll, onClick: onExpandAllHandler },
108
+ icons.expandAll,
109
+ " Expandir"),
110
+ React.createElement(Button, { className: "rct-option rct-option-collapse-all", title: lang.collapseAll, onClick: onCollapseAllHandler },
111
+ icons.collapseAll,
112
+ " Contraer")));
113
+ }, [showExpandAllButtons, lang, icons, onExpandAllHandler, onCollapseAllHandler]);
114
+ const treeNodes = useMemo(() => renderTreeNodes(nodes), [renderTreeNodes, nodes]);
115
+ const className = classNames({
116
+ 'react-checkbox-tree': true,
117
+ 'rct-disabled': disabled,
118
+ 'rct-native-display': nativeCheckboxes,
119
+ 'rct-direction-rtl': direction === 'rtl',
120
+ });
121
+ return (React.createElement("div", { className: className, id: componentId },
122
+ renderExpandAll(),
123
+ React.createElement("ol", null, treeNodes)));
124
+ }
125
+ export default CheckboxTree;
126
+ //# sourceMappingURL=CheckboxTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxTree.js","sourceRoot":"","sources":["../../src/components/CheckboxTree.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import CheckboxTree from './CheckboxTree.js';
3
+ import "./checkboxtree/css/react-checkbox-tree.css";
4
+ declare const meta: {
5
+ title: string;
6
+ component: typeof CheckboxTree;
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ tags: string[];
11
+ argTypes: {
12
+ disabled: any;
13
+ };
14
+ };
15
+ export default meta;
16
+ export declare const CheckboxTreePrimary: StoryObj<typeof meta>;
17
+ export declare const buttonPrimary: StoryObj<typeof meta>;
18
+ //# sourceMappingURL=CheckboxTree.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxTree.stories.d.ts","sourceRoot":"","sources":["../../src/components/CheckboxTree.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAK7C,OAAO,4CAA4C,CAAA;AAGnD,QAAA,MAAM,IAAI;;;;;;;;;;CAQyB,CAAC;AAEpC,eAAe,IAAI,CAAC;AAKpB,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,OAAO,IAAI,CAwBrD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,OAAO,IAAI,CAM/C,CAAC"}
@@ -0,0 +1,39 @@
1
+ import CheckboxTree from './CheckboxTree.js'; // Sin .js si usas la configuración por defecto de Webpack/Vite
2
+ import { ArgumentsBase, ArgumentsComponents } from '../types/StoriesArguments.js';
3
+ import { EmpiresData } from '../constants/DataArrayNodes.js';
4
+ import React, { useState } from 'react';
5
+ import "./checkboxtree/css/react-checkbox-tree.css";
6
+ // Configuración general para el componente en Storybook
7
+ const meta = {
8
+ title: 'UI/Components/CheckboxTree', // Categoría y nombre en la barra lateral de Storybook
9
+ component: CheckboxTree,
10
+ parameters: {
11
+ layout: 'centered', // Centra el componente en el lienzo
12
+ },
13
+ tags: ['autodocs'],
14
+ argTypes: { ...ArgumentsBase, disabled: ArgumentsComponents.disabled }
15
+ };
16
+ export default meta;
17
+ // Puedes crear una historia que use el 'render' para un control más fino del estado
18
+ export const CheckboxTreePrimary = {
19
+ render: (args) => {
20
+ const [checked, setChecked] = useState([]);
21
+ const [expanded, setExpanded] = useState([]);
22
+ return (React.createElement(React.Fragment, null,
23
+ React.createElement(CheckboxTree, { id: "checktree", checked: checked, expanded: expanded, nodes: EmpiresData, showExpandAllButtons: true, onCheck: setChecked, onExpand: setExpanded })));
24
+ },
25
+ args: {
26
+ id: 'boxss',
27
+ nodes: EmpiresData,
28
+ showExpandAllButtons: true
29
+ },
30
+ };
31
+ // Historias individuales
32
+ export const buttonPrimary = {
33
+ args: {
34
+ id: "newElemetss",
35
+ nodes: EmpiresData,
36
+ showExpandAllButtons: true
37
+ },
38
+ };
39
+ //# sourceMappingURL=CheckboxTree.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxTree.stories.js","sourceRoot":"","sources":["../../src/components/CheckboxTree.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,mBAAmB,CAAC,CAAC,+DAA+D;AAC7G,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAElF,OAAO,EAAE,WAAW,EAAkB,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,4CAA4C,CAAA;AAEnD,wDAAwD;AACxD,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,4BAA4B,EAAE,sDAAsD;IAC3F,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE;QACV,MAAM,EAAE,UAAU,EAAE,oCAAoC;KACzD;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CACrC,CAAC;AAEpC,eAAe,IAAI,CAAC;AAIpB,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAA0B;IACxD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAQ,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAQ,EAAE,CAAC,CAAC;QACpD,OAAO,CACL;YACE,oBAAC,YAAY,IACX,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,WAAW,EAClB,oBAAoB,EAAE,IAAI,EAC1B,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,WAAW,GACrB,CAED,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,WAAW;QAClB,oBAAoB,EAAE,IAAI;KAC3B;CACF,CAAC;AACF,yBAAyB;AACzB,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,IAAI,EAAE;QACJ,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,WAAW;QAClB,oBAAoB,EAAE,IAAI;KAC3B;CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { ThemeComponent } from '../types/global.js';
3
+ export interface ConfirmModalProps {
4
+ title: string;
5
+ description?: string;
6
+ width?: 'full' | 'max';
7
+ theme?: ThemeComponent;
8
+ onSuccess?: () => void;
9
+ onCancel?: () => void;
10
+ close: () => void;
11
+ }
12
+ declare const ConfirmDialogModal: React.MemoExoticComponent<({ title, description, theme, width, onSuccess, onCancel, close }: ConfirmModalProps) => JSX.Element>;
13
+ export default ConfirmDialogModal;
14
+ //# sourceMappingURL=ConfirmDialogModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmDialogModal.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmDialogModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;CACrB;AAsCD,QAAA,MAAM,kBAAkB,+FA3B4E,iBAAiB,KAAG,GAAG,CAAC,OAAO,CA2BhF,CAAC;AACpD,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { cn } from '../utils/cvmix.js';
3
+ import Button from '../forms/Button.js';
4
+ const themeClasses = {
5
+ primary: 'text-primary',
6
+ secondary: 'text-secondary',
7
+ success: ' text-success',
8
+ warn: ' text-warn',
9
+ danger: ' text-danger',
10
+ accent: 'text-accent',
11
+ };
12
+ const ConfirmModal = ({ title, description, theme = 'primary', width, onSuccess, onCancel, close }) => {
13
+ const themeClass = themeClasses[theme] || themeClasses.primary;
14
+ return (React.createElement("div", { className: cn("flex flex-col gap-4 p-6 rounded-md bg-background text-foreground", width == "full" && 'w-full') },
15
+ React.createElement("div", { className: "flex justify-between items-center" },
16
+ React.createElement("h2", { className: cn("text-lg xl:text-xl 2xl:text-2xl font-semibold w-full", themeClass) }, title),
17
+ React.createElement("button", { onClick: close, className: "text-xl hover:opacity-70" }, "\u00D7")),
18
+ description && React.createElement("p", { className: "text-sm py-4 text-muted-foreground" }, description),
19
+ React.createElement("div", { className: "flex justify-end gap-2 mt-2" },
20
+ onCancel && React.createElement(Button, { onClick: () => { onCancel(); close(); }, variant: 'outline', theme: 'secondary', lb: 'Cancelar' }),
21
+ onSuccess && React.createElement(Button, { onClick: () => { onSuccess(); close(); }, theme: theme, lb: 'Confirm' }))));
22
+ };
23
+ const ConfirmDialogModal = React.memo(ConfirmModal);
24
+ export default ConfirmDialogModal;
25
+ //# sourceMappingURL=ConfirmDialogModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmDialogModal.js","sourceRoot":"","sources":["../../src/components/ConfirmDialogModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAYxC,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,aAAa;CACxB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAqB,EAAe,EAAE;IAClI,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC;IAE/D,OAAO,CACH,6BAAK,SAAS,EAAE,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,MAAM,IAAI,QAAQ,CAAC;QAE/G,6BAAK,SAAS,EAAC,mCAAmC;YAC9C,4BAAI,SAAS,EAAE,EAAE,CAAC,uDAAuD,EAAE,UAAU,CAAC,IAAG,KAAK,CAAM;YACpG,gCAAQ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAC,0BAA0B,aAAiB,CAC3E;QACL,WAAW,IAAI,2BAAG,SAAS,EAAC,oCAAoC,IAAE,WAAW,CAAK;QACnF,6BAAK,SAAS,EAAC,6BAA6B;YACvC,QAAQ,IAAI,oBAAC,MAAM,IAChB,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EACvC,OAAO,EAAC,SAAS,EACjB,KAAK,EAAC,WAAW,EACjB,EAAE,EAAC,UAAU,GACf;YACD,SAAS,IAAI,oBAAC,MAAM,IACjB,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EACxC,KAAK,EAAE,KAAK,EACZ,EAAE,EAAC,SAAS,GACd,CACA,CACH,CACV,CAAA;AACL,CAAC,CAAA;AACD,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpD,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import { ConfirmModalProps } from './ConfirmDialogModal.js';
3
+ declare const meta: {
4
+ title: string;
5
+ component: import("react").MemoExoticComponent<({ title, description, theme, width, onSuccess, onCancel, close }: ConfirmModalProps) => JSX.Element>;
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ tags: string[];
10
+ argTypes: {
11
+ theme: any;
12
+ width: any;
13
+ };
14
+ };
15
+ export default meta;
16
+ export declare const confirmDialogPrimary: StoryObj<typeof meta>;
17
+ export declare const confirmDialogSecondary: StoryObj<typeof meta>;
18
+ //# sourceMappingURL=ConfirmDialogModal.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmDialogModal.stories.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmDialogModal.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAA2B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAKhF,QAAA,MAAM,IAAI;;;;;;;;;;;CAWyB,CAAC;AAEpC,eAAe,IAAI,CAAC;AAIpB,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,OAAO,IAAI,CAStD,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,OAAO,IAAI,CASxD,CAAC"}
@@ -0,0 +1,39 @@
1
+ import ConfirmDialogModal from './ConfirmDialogModal.js';
2
+ import { ArgumentsComponents } from '../types/StoriesArguments.js';
3
+ // Configuración general para el componente en Storybook
4
+ const meta = {
5
+ title: 'UI/Components/ConfirmDialog', // Categoría y nombre en la barra lateral de Storybook
6
+ component: ConfirmDialogModal,
7
+ parameters: {
8
+ layout: 'centered', // Centra el componente en el lienzo
9
+ },
10
+ tags: ['autodocs'],
11
+ argTypes: {
12
+ theme: ArgumentsComponents.theme,
13
+ width: ArgumentsComponents.width,
14
+ }
15
+ };
16
+ export default meta;
17
+ // Historias individuales
18
+ export const confirmDialogPrimary = {
19
+ args: {
20
+ title: "sdasdasd",
21
+ description: "asdasdasd",
22
+ theme: 'accent',
23
+ close: () => { },
24
+ onCancel: () => { },
25
+ onSuccess: () => { }
26
+ },
27
+ };
28
+ // Historias individuales
29
+ export const confirmDialogSecondary = {
30
+ args: {
31
+ title: "sdasdasd",
32
+ description: "asdasdasd",
33
+ theme: 'accent',
34
+ close: () => { },
35
+ onCancel: () => { },
36
+ onSuccess: () => { }
37
+ },
38
+ };
39
+ //# sourceMappingURL=ConfirmDialogModal.stories.js.map