@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.
- package/dist/buttons/Button.d.ts +14 -16
- package/dist/buttons/Button.d.ts.map +1 -1
- package/dist/buttons/Button.js +23 -8
- package/dist/buttons/Button.js.map +1 -1
- package/dist/buttons/Button.stories.d.ts +18 -0
- package/dist/buttons/Button.stories.d.ts.map +1 -0
- package/dist/buttons/Button.stories.js +41 -0
- package/dist/buttons/Button.stories.js.map +1 -0
- package/dist/buttons/LinkButton.d.ts +8 -0
- package/dist/buttons/LinkButton.d.ts.map +1 -0
- package/dist/buttons/LinkButton.js +9 -0
- package/dist/buttons/LinkButton.js.map +1 -0
- package/dist/buttons/LinkButton.stories.d.ts +7 -0
- package/dist/buttons/LinkButton.stories.d.ts.map +1 -0
- package/dist/buttons/LinkButton.stories.js +48 -0
- package/dist/buttons/LinkButton.stories.js.map +1 -0
- package/dist/buttons/index.d.ts +2 -1
- package/dist/buttons/index.d.ts.map +1 -1
- package/dist/buttons/index.js +1 -0
- package/dist/buttons/index.js.map +1 -1
- package/dist/components/CheckboxTree.d.ts +5 -0
- package/dist/components/CheckboxTree.d.ts.map +1 -0
- package/dist/components/CheckboxTree.js +126 -0
- package/dist/components/CheckboxTree.js.map +1 -0
- package/dist/components/CheckboxTree.stories.d.ts +18 -0
- package/dist/components/CheckboxTree.stories.d.ts.map +1 -0
- package/dist/components/CheckboxTree.stories.js +39 -0
- package/dist/components/CheckboxTree.stories.js.map +1 -0
- package/dist/components/ConfirmDialogModal.d.ts +14 -0
- package/dist/components/ConfirmDialogModal.d.ts.map +1 -0
- package/dist/components/ConfirmDialogModal.js +25 -0
- package/dist/components/ConfirmDialogModal.js.map +1 -0
- package/dist/components/ConfirmDialogModal.stories.d.ts +18 -0
- package/dist/components/ConfirmDialogModal.stories.d.ts.map +1 -0
- package/dist/components/ConfirmDialogModal.stories.js +39 -0
- package/dist/components/ConfirmDialogModal.stories.js.map +1 -0
- package/dist/components/GenericCard.d.ts +13 -0
- package/dist/components/GenericCard.d.ts.map +1 -0
- package/dist/components/GenericCard.js +14 -0
- package/dist/components/GenericCard.js.map +1 -0
- package/dist/components/GenericCard.stories.d.ts +17 -0
- package/dist/components/GenericCard.stories.d.ts.map +1 -0
- package/dist/components/GenericCard.stories.js +30 -0
- package/dist/components/GenericCard.stories.js.map +1 -0
- package/dist/components/Paginate.d.ts +22 -0
- package/dist/components/Paginate.d.ts.map +1 -0
- package/dist/components/Paginate.js +102 -0
- package/dist/components/Paginate.js.map +1 -0
- package/dist/components/Paginate.stories.d.ts +18 -0
- package/dist/components/Paginate.stories.d.ts.map +1 -0
- package/dist/components/Paginate.stories.js +40 -0
- package/dist/components/Paginate.stories.js.map +1 -0
- package/dist/components/PhotoCard.d.ts +12 -0
- package/dist/components/PhotoCard.d.ts.map +1 -0
- package/dist/components/PhotoCard.js +62 -0
- package/dist/components/PhotoCard.js.map +1 -0
- package/dist/components/PlayerYoutube.d.ts +17 -0
- package/dist/components/PlayerYoutube.d.ts.map +1 -0
- package/dist/components/PlayerYoutube.js +41 -0
- package/dist/components/PlayerYoutube.js.map +1 -0
- package/dist/components/checkboxtree/CheckBoxTreeButton.d.ts +8 -0
- package/dist/components/checkboxtree/CheckBoxTreeButton.d.ts.map +1 -0
- package/dist/components/checkboxtree/CheckBoxTreeButton.js +7 -0
- package/dist/components/checkboxtree/CheckBoxTreeButton.js.map +1 -0
- package/dist/components/checkboxtree/CheckboxTreeError.d.ts +5 -0
- package/dist/components/checkboxtree/CheckboxTreeError.d.ts.map +1 -0
- package/dist/components/checkboxtree/CheckboxTreeError.js +16 -0
- package/dist/components/checkboxtree/CheckboxTreeError.js.map +1 -0
- package/dist/components/checkboxtree/NativeCheckbox.d.ts +7 -0
- package/dist/components/checkboxtree/NativeCheckbox.d.ts.map +1 -0
- package/dist/components/checkboxtree/NativeCheckbox.js +17 -0
- package/dist/components/checkboxtree/NativeCheckbox.js.map +1 -0
- package/dist/components/checkboxtree/NodeModel.d.ts +30 -0
- package/dist/components/checkboxtree/NodeModel.d.ts.map +1 -0
- package/dist/components/checkboxtree/NodeModel.js +184 -0
- package/dist/components/checkboxtree/NodeModel.js.map +1 -0
- package/dist/components/checkboxtree/TreeNode.d.ts +44 -0
- package/dist/components/checkboxtree/TreeNode.d.ts.map +1 -0
- package/dist/components/checkboxtree/TreeNode.js +139 -0
- package/dist/components/checkboxtree/TreeNode.js.map +1 -0
- package/dist/components/checkboxtree/constants.d.ts +8 -0
- package/dist/components/checkboxtree/constants.d.ts.map +1 -0
- package/dist/components/checkboxtree/constants.js +46 -0
- package/dist/components/checkboxtree/constants.js.map +1 -0
- package/dist/components/checkboxtree/types/types.d.ts +70 -0
- package/dist/components/checkboxtree/types/types.d.ts.map +1 -0
- package/dist/components/checkboxtree/types/types.js +2 -0
- package/dist/components/checkboxtree/types/types.js.map +1 -0
- package/dist/components/checkboxtree/utils.d.ts +16 -0
- package/dist/components/checkboxtree/utils.d.ts.map +1 -0
- package/dist/components/checkboxtree/utils.js +28 -0
- package/dist/components/checkboxtree/utils.js.map +1 -0
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +9 -0
- package/dist/components/index.js.map +1 -0
- package/dist/constants/DataArrayNodes.d.ts +53 -0
- package/dist/constants/DataArrayNodes.d.ts.map +1 -0
- package/dist/constants/DataArrayNodes.js +162 -0
- package/dist/constants/DataArrayNodes.js.map +1 -0
- package/dist/constants/Variants.d.ts +26 -0
- package/dist/constants/Variants.d.ts.map +1 -0
- package/dist/constants/Variants.js +26 -0
- package/dist/constants/Variants.js.map +1 -0
- package/dist/forms/Button.d.ts +12 -0
- package/dist/forms/Button.d.ts.map +1 -0
- package/dist/forms/Button.js +28 -0
- package/dist/forms/Button.js.map +1 -0
- package/dist/forms/Button.stories.d.ts +18 -0
- package/dist/forms/Button.stories.d.ts.map +1 -0
- package/dist/forms/Button.stories.js +41 -0
- package/dist/forms/Button.stories.js.map +1 -0
- package/dist/forms/Checkbox.d.ts +13 -10
- package/dist/forms/Checkbox.d.ts.map +1 -1
- package/dist/forms/Checkbox.js +43 -4
- package/dist/forms/Checkbox.js.map +1 -1
- package/dist/forms/Checkbox.stories.d.ts +20 -0
- package/dist/forms/Checkbox.stories.d.ts.map +1 -0
- package/dist/forms/Checkbox.stories.js +65 -0
- package/dist/forms/Checkbox.stories.js.map +1 -0
- package/dist/forms/Input.d.ts +11 -22
- package/dist/forms/Input.d.ts.map +1 -1
- package/dist/forms/Input.js +27 -12
- package/dist/forms/Input.js.map +1 -1
- package/dist/forms/Input.stories.d.ts +22 -0
- package/dist/forms/Input.stories.d.ts.map +1 -0
- package/dist/forms/Input.stories.js +59 -0
- package/dist/forms/Input.stories.js.map +1 -0
- package/dist/forms/LinkButton.d.ts +8 -0
- package/dist/forms/LinkButton.d.ts.map +1 -0
- package/dist/forms/LinkButton.js +9 -0
- package/dist/forms/LinkButton.js.map +1 -0
- package/dist/forms/LinkButton.stories.d.ts +7 -0
- package/dist/forms/LinkButton.stories.d.ts.map +1 -0
- package/dist/forms/LinkButton.stories.js +48 -0
- package/dist/forms/LinkButton.stories.js.map +1 -0
- package/dist/forms/PhotoCard.d.ts.map +1 -1
- package/dist/forms/PlayerYoutube.d.ts.map +1 -1
- package/dist/forms/RadioButton.d.ts +2 -2
- package/dist/forms/RadioButton.d.ts.map +1 -1
- package/dist/forms/RadioButton.js +1 -1
- package/dist/forms/RadioButton.js.map +1 -1
- package/dist/forms/Select.d.ts +6 -14
- package/dist/forms/Select.d.ts.map +1 -1
- package/dist/forms/Select.js +25 -15
- package/dist/forms/Select.js.map +1 -1
- package/dist/forms/Select.stories.d.ts +17 -0
- package/dist/forms/Select.stories.d.ts.map +1 -0
- package/dist/forms/Select.stories.js +36 -0
- package/dist/forms/Select.stories.js.map +1 -0
- package/dist/forms/TextArea.d.ts +5 -13
- package/dist/forms/TextArea.d.ts.map +1 -1
- package/dist/forms/TextArea.js +4 -4
- package/dist/forms/TextArea.js.map +1 -1
- package/dist/forms/TextArea.stories.d.ts +17 -0
- package/dist/forms/TextArea.stories.d.ts.map +1 -0
- package/dist/forms/TextArea.stories.js +29 -0
- package/dist/forms/TextArea.stories.js.map +1 -0
- package/dist/forms/ToggleSwitch.d.ts.map +1 -1
- package/dist/forms/index.d.ts +4 -3
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +3 -9
- package/dist/forms/index.js.map +1 -1
- package/dist/hooks/useHttpState.d.ts.map +1 -1
- package/dist/hooks/useRouter.d.ts +2 -2
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +3 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +2 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -12
- package/dist/index.js.map +1 -1
- package/dist/reducers/index.d.ts.map +1 -1
- package/dist/stories/Button.d.ts +17 -0
- package/dist/stories/Button.d.ts.map +1 -0
- package/dist/stories/Button.js +8 -0
- package/dist/stories/Button.js.map +1 -0
- package/dist/stories/Button.stories.d.ts +25 -0
- package/dist/stories/Button.stories.d.ts.map +1 -0
- package/dist/stories/Button.stories.js +51 -0
- package/dist/stories/Button.stories.js.map +1 -0
- package/dist/stories/Header.d.ts +14 -0
- package/dist/stories/Header.d.ts.map +1 -0
- package/dist/stories/Header.js +21 -0
- package/dist/stories/Header.js.map +1 -0
- package/dist/stories/Header.stories.d.ts +19 -0
- package/dist/stories/Header.stories.d.ts.map +1 -0
- package/dist/stories/Header.stories.js +27 -0
- package/dist/stories/Header.stories.js.map +1 -0
- package/dist/stories/Page.d.ts +4 -0
- package/dist/stories/Page.d.ts.map +1 -0
- package/dist/stories/Page.js +38 -0
- package/dist/stories/Page.js.map +1 -0
- package/dist/stories/Page.stories.d.ts +13 -0
- package/dist/stories/Page.stories.d.ts.map +1 -0
- package/dist/stories/Page.stories.js +25 -0
- package/dist/stories/Page.stories.js.map +1 -0
- package/dist/types/StoriesArguments.d.ts +4 -0
- package/dist/types/StoriesArguments.d.ts.map +1 -0
- package/dist/types/StoriesArguments.js +52 -0
- package/dist/types/StoriesArguments.js.map +1 -0
- package/dist/types/global.d.ts +31 -0
- package/dist/types/global.d.ts.map +1 -0
- package/dist/types/global.js +2 -0
- package/dist/types/global.js.map +1 -0
- package/dist/utils/cvmix.d.ts +23 -0
- package/dist/utils/cvmix.d.ts.map +1 -0
- package/dist/utils/cvmix.js +46 -0
- package/dist/utils/cvmix.js.map +1 -0
- package/dist/validators/index.d.ts.map +1 -1
- package/package.json +101 -75
package/dist/buttons/Button.d.ts
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import React
|
|
2
|
-
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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,
|
|
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"}
|
package/dist/buttons/Button.js
CHANGED
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
import React from
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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,
|
|
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"}
|
package/dist/buttons/index.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/buttons/index.js
CHANGED
|
@@ -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 @@
|
|
|
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
|