@soyfri/shared-library 1.5.0-beta.4 → 1.5.0
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/.dockerignore +8 -0
- package/.github/workflows/publish.yml +107 -0
- package/.prettierrc +3 -0
- package/.storybook/main.ts +19 -0
- package/.storybook/preview.ts +14 -0
- package/.storybook/vitest.setup.ts +9 -0
- package/Dockerfile +37 -0
- package/build.js +102 -0
- package/chromatic.config.json +5 -0
- package/cleanDirectories.js +40 -0
- package/dist/components/Autocomplete/Autocomplete.cjs +109 -0
- package/dist/components/Autocomplete/Autocomplete.cjs.map +1 -0
- package/dist/components/Autocomplete/Autocomplete.js +109 -0
- package/dist/components/Autocomplete/Autocomplete.js.map +1 -0
- package/dist/styles.css +112 -0
- package/package.json +43 -134
- package/rollup.config.cjs +87 -0
- package/src/components/Autocomplete/Autocomplete.definitions.ts +254 -0
- package/src/components/Autocomplete/Autocomplete.stories.tsx +387 -0
- package/src/components/Autocomplete/Autocomplete.tsx +139 -0
- package/src/components/Autocomplete/index.ts +1 -0
- package/src/components/Avatar/Avatar.stories.tsx +54 -0
- package/src/components/Avatar/Avatar.tsx +143 -0
- package/src/components/Avatar/index.ts +1 -0
- package/src/components/Button/Button.definition.ts +97 -0
- package/src/components/Button/Button.stories.tsx +285 -0
- package/src/components/Button/Button.tsx +67 -0
- package/src/components/Button/index.ts +1 -0
- package/src/components/Card/Card.definition.ts +5 -0
- package/src/components/Card/Card.stories.tsx +32 -0
- package/src/components/Card/Card.tsx +44 -0
- package/src/components/Card/index.ts +1 -0
- package/src/components/Chip/Chip.definitions.ts +167 -0
- package/src/components/Chip/Chip.stories.tsx +265 -0
- package/src/components/Chip/Chip.tsx +61 -0
- package/src/components/Chip/index.ts +1 -0
- package/src/components/Column/Column.tsx +29 -0
- package/src/components/Column/index.ts +1 -0
- package/src/components/DatePicker/DatePicker.definitions.ts +205 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +282 -0
- package/src/components/DatePicker/DatePicker.tsx +165 -0
- package/src/components/DatePicker/index.ts +1 -0
- package/src/components/DateRangePicker/DateRangePicker.definitions.ts +191 -0
- package/src/components/DateRangePicker/DateRangePicker.stories.tsx +252 -0
- package/src/components/DateRangePicker/DateRangePicker.tsx +56 -0
- package/src/components/DateRangePicker/index.ts +1 -0
- package/src/components/DateTimePicker/DateTimePicker.definitions.ts +232 -0
- package/src/components/DateTimePicker/DateTimePicker.stories.tsx +390 -0
- package/src/components/DateTimePicker/DateTimePicker.tsx +191 -0
- package/src/components/DateTimePicker/index.ts +1 -0
- package/src/components/Flyout/Flyout.stories.tsx +274 -0
- package/src/components/Flyout/Flyout.tsx +122 -0
- package/src/components/Flyout/index.ts +1 -0
- package/src/components/Gallery/Gallery.definition.tsx +37 -0
- package/src/components/Gallery/Gallery.stories.tsx +82 -0
- package/src/components/Gallery/Gallery.tsx +118 -0
- package/src/components/Gallery/GalleryLightbox.tsx +170 -0
- package/src/components/Gallery/GalleryMain.tsx +84 -0
- package/src/components/Gallery/GalleryThumbnails.tsx +106 -0
- package/src/components/Gallery/index.ts +1 -0
- package/src/components/Icon/Icon.stories.tsx +54 -0
- package/src/components/Icon/Icon.tsx +94 -0
- package/src/components/Icon/index.ts +2 -0
- package/src/components/Input/Input.definitions.ts +252 -0
- package/src/components/Input/Input.stories.tsx +387 -0
- package/src/components/Input/Input.tsx +186 -0
- package/src/components/Input/index.ts +1 -0
- package/src/components/InputGroup/InputGroup.stories.tsx +136 -0
- package/src/components/InputGroup/InputGroup.tsx +136 -0
- package/src/components/InputGroup/index.ts +1 -0
- package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
- package/src/components/MenuButton/MenuButton.tsx +100 -0
- package/src/components/MenuButton/index.ts +1 -0
- package/src/components/Modal/Modal.stories.tsx +293 -0
- package/src/components/Modal/Modal.tsx +173 -0
- package/src/components/Modal/ModalBody.tsx +16 -0
- package/src/components/Modal/ModalFooter.tsx +61 -0
- package/src/components/Modal/ModalHeader.tsx +18 -0
- package/src/components/Modal/index.ts +1 -0
- package/src/components/Select/Select.definitions.ts +488 -0
- package/src/components/Select/Select.stories.tsx +569 -0
- package/src/components/Select/Select.tsx +468 -0
- package/src/components/Select/index.ts +1 -0
- package/src/components/Stat/Stat.stories.tsx +85 -0
- package/src/components/Stat/Stat.tsx +117 -0
- package/src/components/Stat/index.ts +2 -0
- package/src/components/StatusMessage/StatusMessage.stories.tsx +130 -0
- package/src/components/StatusMessage/StatusMessage.tsx +162 -0
- package/src/components/StatusMessage/index.ts +2 -0
- package/src/components/Stepper/Step.tsx +21 -0
- package/src/components/Stepper/Stepper.definition.ts +75 -0
- package/src/components/Stepper/Stepper.stories.tsx +122 -0
- package/src/components/Stepper/Stepper.tsx +59 -0
- package/src/components/Stepper/index.ts +2 -0
- package/src/components/Table/EmptyTable.png +0 -0
- package/src/components/Table/Table.definition.ts +580 -0
- package/src/components/Table/Table.stories.tsx +853 -0
- package/src/components/Table/Table.tsx +495 -0
- package/src/components/Table/data.ts +134 -0
- package/src/components/Table/exportsUtils.ts +195 -0
- package/src/components/Table/index.ts +3 -0
- package/src/components/Table/types.ts +34 -0
- package/src/components/Tabs/Tab.definition.ts +53 -0
- package/src/components/Tabs/Tab.tsx +19 -0
- package/src/components/Tabs/Tabs.stories.tsx +118 -0
- package/src/components/Tabs/Tabs.tsx +99 -0
- package/src/components/Tabs/_tabUtils.tsx +4 -0
- package/src/components/Tabs/index.ts +2 -0
- package/src/components/Timeline/Timeline.definition.ts +43 -0
- package/src/components/Timeline/Timeline.stories.tsx +108 -0
- package/src/components/Timeline/Timeline.tsx +49 -0
- package/src/components/Timeline/TimelineItem.tsx +31 -0
- package/src/components/Timeline/index.ts +2 -0
- package/src/components/Tooltip/Tooltip.stories.tsx +117 -0
- package/src/components/Tooltip/Tooltip.tsx +58 -0
- package/src/components/Tooltip/index.ts +1 -0
- package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
- package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
- package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
- package/src/hooks/ClipBoard/index.ts +1 -0
- package/src/index.ts +1 -0
- package/src/styles.css +3 -0
- package/tailwind.config.js +10 -0
- package/tsconfig.json +48 -0
- package/tsup.config.js +41 -0
- package/vite.config.js +132 -0
- package/vitest.config.ts +35 -0
- package/components/Autocomplete/Autocomplete.cjs +0 -132
- package/components/Autocomplete/Autocomplete.cjs.map +0 -1
- package/components/Autocomplete/Autocomplete.js +0 -132
- package/components/Autocomplete/Autocomplete.js.map +0 -1
- /package/{README.md → Readme.md} +0 -0
- /package/{Button-C17mExpd.cjs → dist/Button-C17mExpd.cjs} +0 -0
- /package/{Button-C17mExpd.cjs.map → dist/Button-C17mExpd.cjs.map} +0 -0
- /package/{Button-UkkP-bNw.js → dist/Button-UkkP-bNw.js} +0 -0
- /package/{Button-UkkP-bNw.js.map → dist/Button-UkkP-bNw.js.map} +0 -0
- /package/{DatePicker-BSNboVhN.js → dist/DatePicker-BSNboVhN.js} +0 -0
- /package/{DatePicker-BSNboVhN.js.map → dist/DatePicker-BSNboVhN.js.map} +0 -0
- /package/{DatePicker-BoqxWAhj.cjs → dist/DatePicker-BoqxWAhj.cjs} +0 -0
- /package/{DatePicker-BoqxWAhj.cjs.map → dist/DatePicker-BoqxWAhj.cjs.map} +0 -0
- /package/{Input-DFHs7cJ_.js → dist/Input-DFHs7cJ_.js} +0 -0
- /package/{Input-DFHs7cJ_.js.map → dist/Input-DFHs7cJ_.js.map} +0 -0
- /package/{Input-c8MwNNPg.cjs → dist/Input-c8MwNNPg.cjs} +0 -0
- /package/{Input-c8MwNNPg.cjs.map → dist/Input-c8MwNNPg.cjs.map} +0 -0
- /package/{Select-BO2N56sm.cjs → dist/Select-BO2N56sm.cjs} +0 -0
- /package/{Select-BO2N56sm.cjs.map → dist/Select-BO2N56sm.cjs.map} +0 -0
- /package/{Select-BcLkyHSE.js → dist/Select-BcLkyHSE.js} +0 -0
- /package/{Select-BcLkyHSE.js.map → dist/Select-BcLkyHSE.js.map} +0 -0
- /package/{components → dist/components}/Autocomplete/Autocomplete.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/index.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete.d.ts +0 -0
- /package/{components → dist/components}/Avatar/Avatar.cjs +0 -0
- /package/{components → dist/components}/Avatar/Avatar.cjs.map +0 -0
- /package/{components → dist/components}/Avatar/Avatar.d.ts +0 -0
- /package/{components → dist/components}/Avatar/Avatar.js +0 -0
- /package/{components → dist/components}/Avatar/Avatar.js.map +0 -0
- /package/{components → dist/components}/Avatar/index.d.ts +0 -0
- /package/{components → dist/components}/Avatar.d.ts +0 -0
- /package/{components → dist/components}/Button/Button.cjs +0 -0
- /package/{components → dist/components}/Button/Button.cjs.map +0 -0
- /package/{components → dist/components}/Button/Button.d.ts +0 -0
- /package/{components → dist/components}/Button/Button.definition.d.ts +0 -0
- /package/{components → dist/components}/Button/Button.js +0 -0
- /package/{components → dist/components}/Button/Button.js.map +0 -0
- /package/{components → dist/components}/Button/index.d.ts +0 -0
- /package/{components → dist/components}/Button.d.ts +0 -0
- /package/{components → dist/components}/Card/Card.cjs +0 -0
- /package/{components → dist/components}/Card/Card.cjs.map +0 -0
- /package/{components → dist/components}/Card/Card.d.ts +0 -0
- /package/{components → dist/components}/Card/Card.definition.d.ts +0 -0
- /package/{components → dist/components}/Card/Card.js +0 -0
- /package/{components → dist/components}/Card/Card.js.map +0 -0
- /package/{components → dist/components}/Card/index.d.ts +0 -0
- /package/{components → dist/components}/Card.d.ts +0 -0
- /package/{components → dist/components}/Chip/Chip.cjs +0 -0
- /package/{components → dist/components}/Chip/Chip.cjs.map +0 -0
- /package/{components → dist/components}/Chip/Chip.d.ts +0 -0
- /package/{components → dist/components}/Chip/Chip.definitions.d.ts +0 -0
- /package/{components → dist/components}/Chip/Chip.js +0 -0
- /package/{components → dist/components}/Chip/Chip.js.map +0 -0
- /package/{components → dist/components}/Chip/index.d.ts +0 -0
- /package/{components → dist/components}/Chip.d.ts +0 -0
- /package/{components → dist/components}/Column/Column.cjs +0 -0
- /package/{components → dist/components}/Column/Column.cjs.map +0 -0
- /package/{components → dist/components}/Column/Column.d.ts +0 -0
- /package/{components → dist/components}/Column/Column.js +0 -0
- /package/{components → dist/components}/Column/Column.js.map +0 -0
- /package/{components → dist/components}/Column/index.d.ts +0 -0
- /package/{components → dist/components}/Column.d.ts +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.cjs +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.cjs.map +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.d.ts +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.definitions.d.ts +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.js +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.js.map +0 -0
- /package/{components → dist/components}/DatePicker/index.d.ts +0 -0
- /package/{components → dist/components}/DatePicker.d.ts +0 -0
- /package/{components → dist/components}/DateRangePicker/DateRangePicker.cjs +0 -0
- /package/{components → dist/components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
- /package/{components → dist/components}/DateRangePicker/DateRangePicker.d.ts +0 -0
- /package/{components → dist/components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
- /package/{components → dist/components}/DateRangePicker/DateRangePicker.js +0 -0
- /package/{components → dist/components}/DateRangePicker/DateRangePicker.js.map +0 -0
- /package/{components → dist/components}/DateRangePicker/index.d.ts +0 -0
- /package/{components → dist/components}/DateRangePicker.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.js +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.js.map +0 -0
- /package/{components → dist/components}/DateTimePicker/index.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker.d.ts +0 -0
- /package/{components → dist/components}/Flyout/Flyout.cjs +0 -0
- /package/{components → dist/components}/Flyout/Flyout.cjs.map +0 -0
- /package/{components → dist/components}/Flyout/Flyout.d.ts +0 -0
- /package/{components → dist/components}/Flyout/Flyout.js +0 -0
- /package/{components → dist/components}/Flyout/Flyout.js.map +0 -0
- /package/{components → dist/components}/Flyout/index.d.ts +0 -0
- /package/{components → dist/components}/Flyout.d.ts +0 -0
- /package/{components → dist/components}/Gallery/Gallery.cjs +0 -0
- /package/{components → dist/components}/Gallery/Gallery.cjs.map +0 -0
- /package/{components → dist/components}/Gallery/Gallery.d.ts +0 -0
- /package/{components → dist/components}/Gallery/Gallery.definition.d.ts +0 -0
- /package/{components → dist/components}/Gallery/Gallery.js +0 -0
- /package/{components → dist/components}/Gallery/Gallery.js.map +0 -0
- /package/{components → dist/components}/Gallery/GalleryLightbox.d.ts +0 -0
- /package/{components → dist/components}/Gallery/GalleryMain.d.ts +0 -0
- /package/{components → dist/components}/Gallery/GalleryThumbnails.d.ts +0 -0
- /package/{components → dist/components}/Gallery/index.d.ts +0 -0
- /package/{components → dist/components}/Gallery.d.ts +0 -0
- /package/{components → dist/components}/Icon/Icon.cjs +0 -0
- /package/{components → dist/components}/Icon/Icon.cjs.map +0 -0
- /package/{components → dist/components}/Icon/Icon.d.ts +0 -0
- /package/{components → dist/components}/Icon/Icon.js +0 -0
- /package/{components → dist/components}/Icon/Icon.js.map +0 -0
- /package/{components → dist/components}/Icon/index.d.ts +0 -0
- /package/{components → dist/components}/Icon.d.ts +0 -0
- /package/{components → dist/components}/Input/Input.cjs +0 -0
- /package/{components → dist/components}/Input/Input.cjs.map +0 -0
- /package/{components → dist/components}/Input/Input.d.ts +0 -0
- /package/{components → dist/components}/Input/Input.definitions.d.ts +0 -0
- /package/{components → dist/components}/Input/Input.js +0 -0
- /package/{components → dist/components}/Input/Input.js.map +0 -0
- /package/{components → dist/components}/Input/index.d.ts +0 -0
- /package/{components → dist/components}/Input.d.ts +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.cjs +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.cjs.map +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.d.ts +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.js +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.js.map +0 -0
- /package/{components → dist/components}/InputGroup/index.d.ts +0 -0
- /package/{components → dist/components}/InputGroup.d.ts +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.cjs +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.cjs.map +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.d.ts +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.js +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.js.map +0 -0
- /package/{components → dist/components}/MenuButton/index.d.ts +0 -0
- /package/{components → dist/components}/MenuButton.d.ts +0 -0
- /package/{components → dist/components}/Modal/Modal.cjs +0 -0
- /package/{components → dist/components}/Modal/Modal.cjs.map +0 -0
- /package/{components → dist/components}/Modal/Modal.d.ts +0 -0
- /package/{components → dist/components}/Modal/Modal.js +0 -0
- /package/{components → dist/components}/Modal/Modal.js.map +0 -0
- /package/{components → dist/components}/Modal/ModalBody.d.ts +0 -0
- /package/{components → dist/components}/Modal/ModalFooter.d.ts +0 -0
- /package/{components → dist/components}/Modal/ModalHeader.d.ts +0 -0
- /package/{components → dist/components}/Modal/index.d.ts +0 -0
- /package/{components → dist/components}/Modal.d.ts +0 -0
- /package/{components → dist/components}/Select/Select.cjs +0 -0
- /package/{components → dist/components}/Select/Select.cjs.map +0 -0
- /package/{components → dist/components}/Select/Select.d.ts +0 -0
- /package/{components → dist/components}/Select/Select.definitions.d.ts +0 -0
- /package/{components → dist/components}/Select/Select.js +0 -0
- /package/{components → dist/components}/Select/Select.js.map +0 -0
- /package/{components → dist/components}/Select/index.d.ts +0 -0
- /package/{components → dist/components}/Select.d.ts +0 -0
- /package/{components → dist/components}/Stat/Stat.cjs +0 -0
- /package/{components → dist/components}/Stat/Stat.cjs.map +0 -0
- /package/{components → dist/components}/Stat/Stat.d.ts +0 -0
- /package/{components → dist/components}/Stat/Stat.js +0 -0
- /package/{components → dist/components}/Stat/Stat.js.map +0 -0
- /package/{components → dist/components}/Stat/index.d.ts +0 -0
- /package/{components → dist/components}/Stat.d.ts +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.cjs +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.cjs.map +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.d.ts +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.js +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.js.map +0 -0
- /package/{components → dist/components}/StatusMessage/index.d.ts +0 -0
- /package/{components → dist/components}/StatusMessage.d.ts +0 -0
- /package/{components → dist/components}/Stepper/Step.d.ts +0 -0
- /package/{components → dist/components}/Stepper/Stepper.cjs +0 -0
- /package/{components → dist/components}/Stepper/Stepper.cjs.map +0 -0
- /package/{components → dist/components}/Stepper/Stepper.d.ts +0 -0
- /package/{components → dist/components}/Stepper/Stepper.definition.d.ts +0 -0
- /package/{components → dist/components}/Stepper/Stepper.js +0 -0
- /package/{components → dist/components}/Stepper/Stepper.js.map +0 -0
- /package/{components → dist/components}/Stepper/index.d.ts +0 -0
- /package/{components → dist/components}/Stepper.d.ts +0 -0
- /package/{components → dist/components}/Table/Table.cjs +0 -0
- /package/{components → dist/components}/Table/Table.cjs.map +0 -0
- /package/{components → dist/components}/Table/Table.d.ts +0 -0
- /package/{components → dist/components}/Table/Table.definition.d.ts +0 -0
- /package/{components → dist/components}/Table/Table.js +0 -0
- /package/{components → dist/components}/Table/Table.js.map +0 -0
- /package/{components → dist/components}/Table/data.d.ts +0 -0
- /package/{components → dist/components}/Table/exportsUtils.d.ts +0 -0
- /package/{components → dist/components}/Table/index.d.ts +0 -0
- /package/{components → dist/components}/Table/types.d.ts +0 -0
- /package/{components → dist/components}/Table.d.ts +0 -0
- /package/{components → dist/components}/Tabs/Tab.d.ts +0 -0
- /package/{components → dist/components}/Tabs/Tab.definition.d.ts +0 -0
- /package/{components → dist/components}/Tabs/Tabs.cjs +0 -0
- /package/{components → dist/components}/Tabs/Tabs.cjs.map +0 -0
- /package/{components → dist/components}/Tabs/Tabs.d.ts +0 -0
- /package/{components → dist/components}/Tabs/Tabs.js +0 -0
- /package/{components → dist/components}/Tabs/Tabs.js.map +0 -0
- /package/{components → dist/components}/Tabs/_tabUtils.d.ts +0 -0
- /package/{components → dist/components}/Tabs/index.d.ts +0 -0
- /package/{components → dist/components}/Tabs.d.ts +0 -0
- /package/{components → dist/components}/Timeline/Timeline.cjs +0 -0
- /package/{components → dist/components}/Timeline/Timeline.cjs.map +0 -0
- /package/{components → dist/components}/Timeline/Timeline.d.ts +0 -0
- /package/{components → dist/components}/Timeline/Timeline.definition.d.ts +0 -0
- /package/{components → dist/components}/Timeline/Timeline.js +0 -0
- /package/{components → dist/components}/Timeline/Timeline.js.map +0 -0
- /package/{components → dist/components}/Timeline/TimelineItem.d.ts +0 -0
- /package/{components → dist/components}/Timeline/index.d.ts +0 -0
- /package/{components → dist/components}/Timeline.d.ts +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.cjs +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.cjs.map +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.d.ts +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.js +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.js.map +0 -0
- /package/{components → dist/components}/Tooltip/index.d.ts +0 -0
- /package/{components → dist/components}/Tooltip.d.ts +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.d.ts +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js.map +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/index.d.ts +0 -0
- /package/{hooks → dist/hooks}/ClipBoard.d.ts +0 -0
- /package/{index.cjs → dist/index.cjs} +0 -0
- /package/{index.cjs.map → dist/index.cjs.map} +0 -0
- /package/{index.css → dist/index.css} +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{index.js.map → dist/index.js.map} +0 -0
package/tsconfig.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
/* Specifies ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
|
|
4
|
+
"target": "es2017",
|
|
5
|
+
/* Specifies library files to be included in the compilation. */
|
|
6
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
7
|
+
/* Allows JavaScript files to be compiled. */
|
|
8
|
+
"allowJs": true,
|
|
9
|
+
/* Skip type checking of declaration files. */
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
/* Enables emit interoperability between CommonJS and ES Modules. */
|
|
12
|
+
"esModuleInterop": true,
|
|
13
|
+
/* Allows import x from y when a module doesn't have a default export. */
|
|
14
|
+
"allowSyntheticDefaultImports": true,
|
|
15
|
+
/* Enables all strict type-checking options. */
|
|
16
|
+
"strict": true,
|
|
17
|
+
/* Ensures file names are consistent in casing with imports. */
|
|
18
|
+
"forceConsistentCasingInFileNames": true,
|
|
19
|
+
/* Report errors for fallthrough cases in switch statements. */
|
|
20
|
+
"noFallthroughCasesInSwitch": true,
|
|
21
|
+
/* Specifies module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
|
|
22
|
+
"module": "esnext",
|
|
23
|
+
/* Specifies how TypeScript looks up a file from a given module specifier. */
|
|
24
|
+
"moduleResolution": "node",
|
|
25
|
+
/* Allows importing .json files. */
|
|
26
|
+
"resolveJsonModule": true,
|
|
27
|
+
/* Ensures each file can be safely transpiled without relying on other imports. */
|
|
28
|
+
"isolatedModules": true,
|
|
29
|
+
/* Specifies the JSX factory function to use when targeting React JSX emit. */
|
|
30
|
+
"jsx": "react-jsx",
|
|
31
|
+
/* Generates corresponding .d.ts file for each output JavaScript file. */
|
|
32
|
+
"declaration": true,
|
|
33
|
+
/* Specifies the output directory for generated declaration files. */
|
|
34
|
+
"declarationDir": "dist/esm",
|
|
35
|
+
/* Specifies the output directory for all emitted files. */
|
|
36
|
+
"outDir": "dist",
|
|
37
|
+
|
|
38
|
+
/* --- Configuración de Alias de Módulos --- */
|
|
39
|
+
"baseUrl": ".", // 👈 Base para resolver rutas absolutas
|
|
40
|
+
"paths": {
|
|
41
|
+
"@soyfri/shared-library/*": ["src/*"] // 👈 Alias que mapea @soyfri/shared-library a la carpeta src
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
/* Specifies a list of glob patterns that match files to be included in compilation. */
|
|
45
|
+
"include": ["src"],
|
|
46
|
+
/* Specifies a list of files to be excluded from compilation. */
|
|
47
|
+
"exclude": ["node_modules", "dist"]
|
|
48
|
+
}
|
package/tsup.config.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { defineConfig } from 'tsup';
|
|
2
|
+
import { glob } from 'glob';
|
|
3
|
+
|
|
4
|
+
// Find all entry points in the 'src/components' directory
|
|
5
|
+
const componentEntries = glob.sync('src/components/*/index.ts');
|
|
6
|
+
const mainEntry = 'src/index.ts';
|
|
7
|
+
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
// Configure multiple entry points for each component and the main library index.
|
|
10
|
+
entry: [mainEntry, ...componentEntries],
|
|
11
|
+
|
|
12
|
+
// Clean the 'dist' directory before building.
|
|
13
|
+
clean: true,
|
|
14
|
+
|
|
15
|
+
// Generate both ESM and CommonJS formats.
|
|
16
|
+
format: ['esm', 'cjs'],
|
|
17
|
+
|
|
18
|
+
// Generate sourcemaps for better debugging.
|
|
19
|
+
sourcemap: true,
|
|
20
|
+
|
|
21
|
+
// Generate declaration files (.d.ts) for TypeScript.
|
|
22
|
+
dts: true,
|
|
23
|
+
|
|
24
|
+
// Split code into chunks for better optimization.
|
|
25
|
+
splitting: true,
|
|
26
|
+
|
|
27
|
+
// Do not bundle these dependencies. They will be handled by the consumer's package manager.
|
|
28
|
+
external: [
|
|
29
|
+
'react',
|
|
30
|
+
'react-dom',
|
|
31
|
+
/@mui\/.*/,
|
|
32
|
+
/@emotion\/.*/,
|
|
33
|
+
'dayjs',
|
|
34
|
+
'react-hook-form',
|
|
35
|
+
],
|
|
36
|
+
|
|
37
|
+
// Override tsup's default esbuild options if needed.
|
|
38
|
+
esbuildOptions(options) {
|
|
39
|
+
// You can add custom esbuild configurations here, if necessary.
|
|
40
|
+
},
|
|
41
|
+
});
|
package/vite.config.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
import react from '@vitejs/plugin-react';
|
|
3
|
+
import { resolve } from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
import { dirname } from 'path';
|
|
6
|
+
import { globSync } from 'glob';
|
|
7
|
+
import dts from 'vite-plugin-dts';
|
|
8
|
+
import { libInjectCss } from 'vite-plugin-lib-inject-css';
|
|
9
|
+
|
|
10
|
+
// Obtener __dirname en ESM
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = dirname(__filename);
|
|
13
|
+
|
|
14
|
+
// Función para generar los puntos de entrada de componentes y hooks con validación de mayúsculas
|
|
15
|
+
const getEntryPoints = (sourceDir, prefix) => {
|
|
16
|
+
const entryPoints = {};
|
|
17
|
+
const files = globSync(`${sourceDir}/*/index.ts`);
|
|
18
|
+
|
|
19
|
+
files.forEach(file => {
|
|
20
|
+
const componentName = file.split('/').slice(-2, -1)[0];
|
|
21
|
+
|
|
22
|
+
// Verificar si el nombre de la carpeta tiene la inicial en mayúscula
|
|
23
|
+
if (!/^[A-Z]/.test(componentName)) {
|
|
24
|
+
console.log(`Saltando el directorio '${componentName}' porque no empieza con mayúscula.`);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
entryPoints[`${prefix}/${componentName}`] = resolve(__dirname, file);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
return entryPoints;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// Generar entry points para componentes
|
|
35
|
+
const componentEntryPoints = getEntryPoints('src/components', 'components');
|
|
36
|
+
|
|
37
|
+
// Generar entry points para hooks
|
|
38
|
+
const hooksEntryPoints = getEntryPoints('src/hooks', 'hooks');
|
|
39
|
+
|
|
40
|
+
export default defineConfig(({ mode }) => {
|
|
41
|
+
const isLibraryBuild = mode === 'lib';
|
|
42
|
+
|
|
43
|
+
const baseConfig = {
|
|
44
|
+
plugins: [
|
|
45
|
+
react(),
|
|
46
|
+
...(isLibraryBuild ? [
|
|
47
|
+
dts({
|
|
48
|
+
include: ['src'],
|
|
49
|
+
exclude: [
|
|
50
|
+
'**/*.test.*',
|
|
51
|
+
'**/*.spec.*',
|
|
52
|
+
'**/*.stories.*',
|
|
53
|
+
'src/stories/**'
|
|
54
|
+
],
|
|
55
|
+
outDir: 'dist',
|
|
56
|
+
insertTypesEntry: true,
|
|
57
|
+
}),
|
|
58
|
+
libInjectCss()
|
|
59
|
+
] : [])
|
|
60
|
+
],
|
|
61
|
+
resolve: {
|
|
62
|
+
alias: {
|
|
63
|
+
'@soyfri/shared-library': resolve(__dirname, './src'),
|
|
64
|
+
},
|
|
65
|
+
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'],
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// Si estamos haciendo build de librería
|
|
70
|
+
if (isLibraryBuild) {
|
|
71
|
+
return {
|
|
72
|
+
...baseConfig,
|
|
73
|
+
build: {
|
|
74
|
+
lib: {
|
|
75
|
+
entry: {
|
|
76
|
+
index: resolve(__dirname, 'src/index.ts'),
|
|
77
|
+
...componentEntryPoints,
|
|
78
|
+
...hooksEntryPoints,
|
|
79
|
+
},
|
|
80
|
+
formats: ['es', 'cjs'],
|
|
81
|
+
// Lógica para generar la estructura de directorios
|
|
82
|
+
fileName: (format, entryName) => {
|
|
83
|
+
const extension = format === 'es' ? 'js' : 'cjs';
|
|
84
|
+
if (entryName === 'index') {
|
|
85
|
+
return `index.${extension}`;
|
|
86
|
+
}
|
|
87
|
+
// Esto asume que el entryName es algo como 'components/Button' o 'hooks/useHook'
|
|
88
|
+
// y crea la estructura de directorios apropiada.
|
|
89
|
+
const parts = entryName.split('/');
|
|
90
|
+
const type = parts[0]; // 'components' o 'hooks'
|
|
91
|
+
const name = parts[1]; // 'Button' o 'useHook'
|
|
92
|
+
return `${type}/${name}/${name}.${extension}`;
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
rollupOptions: {
|
|
96
|
+
external: [
|
|
97
|
+
'react',
|
|
98
|
+
'react-dom',
|
|
99
|
+
'react/jsx-runtime',
|
|
100
|
+
/@mui\/.*/,
|
|
101
|
+
/@emotion\/.*/,
|
|
102
|
+
'dayjs',
|
|
103
|
+
'react-hook-form',
|
|
104
|
+
'tailwindcss',
|
|
105
|
+
'autoprefixer',
|
|
106
|
+
'postcss',
|
|
107
|
+
],
|
|
108
|
+
output: {
|
|
109
|
+
globals: {
|
|
110
|
+
react: 'React',
|
|
111
|
+
'react-dom': 'ReactDOM',
|
|
112
|
+
'react/jsx-runtime': 'jsxRuntime',
|
|
113
|
+
},
|
|
114
|
+
assetFileNames: (assetInfo) => {
|
|
115
|
+
if (assetInfo.name === 'style.css') return 'styles.css';
|
|
116
|
+
return assetInfo.name;
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
target: 'es2017',
|
|
121
|
+
sourcemap: true,
|
|
122
|
+
minify: false,
|
|
123
|
+
cssCodeSplit: false,
|
|
124
|
+
outDir: 'dist',
|
|
125
|
+
emptyOutDir: true,
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Configuración para desarrollo/Storybook (sin cambios)
|
|
131
|
+
return baseConfig;
|
|
132
|
+
});
|
package/vitest.config.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
|
|
4
|
+
import { defineConfig } from 'vitest/config';
|
|
5
|
+
|
|
6
|
+
import { storybookTest } from '@storybook/addon-vitest/vitest-plugin';
|
|
7
|
+
|
|
8
|
+
const dirname =
|
|
9
|
+
typeof __dirname !== 'undefined' ? __dirname : path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
|
|
11
|
+
// More info at: https://storybook.js.org/docs/writing-tests/test-addon
|
|
12
|
+
export default defineConfig({
|
|
13
|
+
test: {
|
|
14
|
+
workspace: [
|
|
15
|
+
{
|
|
16
|
+
extends: true,
|
|
17
|
+
plugins: [
|
|
18
|
+
// The plugin will run tests for the stories defined in your Storybook config
|
|
19
|
+
// See options at: https://storybook.js.org/docs/writing-tests/test-addon#storybooktest
|
|
20
|
+
storybookTest({ configDir: path.join(dirname, '.storybook') }),
|
|
21
|
+
],
|
|
22
|
+
test: {
|
|
23
|
+
name: 'storybook',
|
|
24
|
+
browser: {
|
|
25
|
+
enabled: true,
|
|
26
|
+
headless: true,
|
|
27
|
+
name: 'chromium',
|
|
28
|
+
provider: 'playwright'
|
|
29
|
+
},
|
|
30
|
+
setupFiles: ['.storybook/vitest.setup.ts'],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
});
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
-
var __spreadValues = (a, b) => {
|
|
10
|
-
for (var prop in b || (b = {}))
|
|
11
|
-
if (__hasOwnProp.call(b, prop))
|
|
12
|
-
__defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols)
|
|
14
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
-
if (__propIsEnum.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
22
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
require("react");
|
|
24
|
-
const material = require("@mui/material");
|
|
25
|
-
require("@mui/icons-material/Clear");
|
|
26
|
-
const system = require("@mui/system");
|
|
27
|
-
const StyledAutocomplete = system.styled(material.Autocomplete)(
|
|
28
|
-
({ theme }) => ({
|
|
29
|
-
"& .MuiOutlinedInput-root": {
|
|
30
|
-
maxHeight: "36px",
|
|
31
|
-
padding: "8px 10px",
|
|
32
|
-
borderRadius: "10px",
|
|
33
|
-
display: "flex",
|
|
34
|
-
alignItems: "center",
|
|
35
|
-
fontSize: "14px"
|
|
36
|
-
},
|
|
37
|
-
"& .MuiAutocomplete-inputRoot": {
|
|
38
|
-
padding: "0 !important"
|
|
39
|
-
},
|
|
40
|
-
"& .MuiAutocomplete-input": {
|
|
41
|
-
padding: "0 !important",
|
|
42
|
-
height: "28px",
|
|
43
|
-
marginLeft: "8px"
|
|
44
|
-
},
|
|
45
|
-
"& .MuiOutlinedInput-notchedOutline": {
|
|
46
|
-
marginBottom: "-4px",
|
|
47
|
-
borderRadius: "10px"
|
|
48
|
-
},
|
|
49
|
-
"& .MuiOutlinedInput-notchedOutline > legend": {
|
|
50
|
-
display: "none"
|
|
51
|
-
},
|
|
52
|
-
"& .MuiAutocomplete-endAdornment": {
|
|
53
|
-
top: "50%",
|
|
54
|
-
transform: "translateY(-50%)"
|
|
55
|
-
}
|
|
56
|
-
})
|
|
57
|
-
);
|
|
58
|
-
function AutocompleteSelect(props) {
|
|
59
|
-
const {
|
|
60
|
-
label,
|
|
61
|
-
options = [],
|
|
62
|
-
value,
|
|
63
|
-
onChange,
|
|
64
|
-
placeholder,
|
|
65
|
-
multiple = false,
|
|
66
|
-
disabled = false,
|
|
67
|
-
loading = false,
|
|
68
|
-
error = false,
|
|
69
|
-
helperText,
|
|
70
|
-
renderOptionItem,
|
|
71
|
-
renderChipLabel,
|
|
72
|
-
maxChipsToShow = 3
|
|
73
|
-
} = props;
|
|
74
|
-
const renderAutocomplete = (value2, onChange2) => {
|
|
75
|
-
var _a, _b;
|
|
76
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
77
|
-
material.Box,
|
|
78
|
-
{
|
|
79
|
-
sx: {
|
|
80
|
-
width: "100%",
|
|
81
|
-
display: "grid",
|
|
82
|
-
marginBottom: "10px",
|
|
83
|
-
marginTop: "10px"
|
|
84
|
-
},
|
|
85
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
-
StyledAutocomplete,
|
|
87
|
-
{
|
|
88
|
-
multiple,
|
|
89
|
-
options,
|
|
90
|
-
value: multiple ? (_a = options.filter(
|
|
91
|
-
(o) => value2 == null ? void 0 : value2.includes(o.value)
|
|
92
|
-
)) != null ? _a : [] : (_b = options.find((o) => o.value === value2)) != null ? _b : null,
|
|
93
|
-
disabled,
|
|
94
|
-
loading,
|
|
95
|
-
getOptionLabel: (opt) => {
|
|
96
|
-
var _a2;
|
|
97
|
-
return (_a2 = opt == null ? void 0 : opt.label) != null ? _a2 : "";
|
|
98
|
-
},
|
|
99
|
-
isOptionEqualToValue: (a, b) => a.value === b.value,
|
|
100
|
-
onChange: onChange2,
|
|
101
|
-
noOptionsText: "No hay opciones",
|
|
102
|
-
loadingText: /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
103
|
-
/* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, { size: 20 }),
|
|
104
|
-
/* @__PURE__ */ jsxRuntime.jsx(material.Typography, { children: "Cargando..." })
|
|
105
|
-
] }),
|
|
106
|
-
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
-
material.TextField,
|
|
108
|
-
__spreadProps(__spreadValues({}, params), {
|
|
109
|
-
placeholder,
|
|
110
|
-
error,
|
|
111
|
-
helperText
|
|
112
|
-
})
|
|
113
|
-
)
|
|
114
|
-
}
|
|
115
|
-
)
|
|
116
|
-
}
|
|
117
|
-
);
|
|
118
|
-
};
|
|
119
|
-
const handleChangeInternal = (event, newValue) => {
|
|
120
|
-
var _a;
|
|
121
|
-
if (multiple) {
|
|
122
|
-
const values = (newValue != null ? newValue : []).map((opt) => opt.value);
|
|
123
|
-
onChange == null ? void 0 : onChange(values);
|
|
124
|
-
} else {
|
|
125
|
-
const value2 = (_a = newValue == null ? void 0 : newValue.value) != null ? _a : "";
|
|
126
|
-
onChange == null ? void 0 : onChange(value2);
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
return renderAutocomplete(value, handleChangeInternal);
|
|
130
|
-
}
|
|
131
|
-
exports.Autocomplete = AutocompleteSelect;
|
|
132
|
-
//# sourceMappingURL=Autocomplete.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.cjs","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Autocomplete,\n TextField,\n Chip,\n Avatar,\n Box,\n Typography,\n CircularProgress,\n} from \"@mui/material\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport { styled } from \"@mui/system\";\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n img?: string;\n disabled?: boolean;\n group?: string;\n [key: string]: any;\n}\n\ntype RenderOptionItem = (item: SelectOption) => React.ReactNode;\ntype RenderChipLabel = (item: SelectOption) => React.ReactNode;\n\ninterface AutocompleteProps<\n TValue extends SelectOption[\"value\"] = SelectOption[\"value\"],\n> {\n label?: string;\n value: TValue | TValue[];\n onChange: (val: TValue | TValue[]) => void;\n options?: SelectOption[];\n placeholder?: string;\n multiple?: boolean;\n disabled?: boolean;\n loading?: boolean;\n error?: boolean;\n helperText?: string;\n maxChipsToShow?: number;\n renderOptionItem?: RenderOptionItem;\n renderChipLabel?: RenderChipLabel;\n}\n\nconst StyledAutocomplete = styled(Autocomplete as typeof Autocomplete)(\n ({ theme }) => ({\n \"& .MuiOutlinedInput-root\": {\n maxHeight: \"36px\",\n padding: \"8px 10px\",\n borderRadius: \"10px\",\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"14px\",\n },\n\n \"& .MuiAutocomplete-inputRoot\": {\n padding: \"0 !important\",\n },\n\n \"& .MuiAutocomplete-input\": {\n padding: \"0 !important\",\n height: \"28px\",\n marginLeft: \"8px\",\n },\n\n \"& .MuiOutlinedInput-notchedOutline\": {\n marginBottom: \"-4px\",\n borderRadius: \"10px\",\n },\n\n \"& .MuiOutlinedInput-notchedOutline > legend\": {\n display: \"none\",\n },\n\n \"& .MuiAutocomplete-endAdornment\": {\n top: \"50%\",\n transform: \"translateY(-50%)\",\n },\n }),\n);\n\nexport function AutocompleteSelect<\n TValue extends SelectOption[\"value\"] = SelectOption[\"value\"],\n>(props: AutocompleteProps<TValue>) {\n const {\n label,\n options = [],\n value,\n onChange,\n placeholder,\n multiple = false,\n disabled = false,\n loading = false,\n error = false,\n helperText,\n renderOptionItem,\n renderChipLabel,\n maxChipsToShow = 3,\n } = props;\n\n const renderTags = (value: SelectOption[], getTagProps: any) => {\n const displayed = value.slice(0, maxChipsToShow);\n const hidden = value.length - maxChipsToShow;\n\n return (\n <>\n {displayed.map((option, index) => (\n <Chip\n {...getTagProps({ index })}\n key={option.value}\n label={renderChipLabel ? renderChipLabel(option) : option.label}\n avatar={option.img ? <Avatar src={option.img} /> : undefined}\n deleteIcon={<ClearIcon />}\n />\n ))}\n\n {hidden > 0 && <Chip label={`+${hidden} más`} />}\n </>\n );\n };\n\n const renderOption = (propsLi: any, option: SelectOption) => (\n <li {...propsLi} key={option.value}>\n {renderOptionItem ? renderOptionItem(option) : option.label}\n </li>\n );\n\n const renderAutocomplete = (value: any, onChange: any) => (\n <Box\n sx={{\n width: \"100%\",\n display: \"grid\",\n marginBottom: \"10px\",\n marginTop: \"10px\",\n }}\n >\n <StyledAutocomplete\n multiple={multiple}\n options={options}\n value={\n multiple\n ? (options.filter((o) =>\n (value as string[] | undefined)?.includes(o.value as string),\n ) ?? [])\n : (options.find((o) => o.value === value) ?? null)\n }\n disabled={disabled}\n loading={loading}\n getOptionLabel={(opt: any) => opt?.label ?? \"\"}\n isOptionEqualToValue={(a: any, b: any) => a.value === b.value}\n onChange={onChange}\n // renderOption={renderOption}\n // renderTags={multiple ? renderTags : undefined}\n noOptionsText=\"No hay opciones\"\n loadingText={\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\n <CircularProgress size={20} />\n <Typography>Cargando...</Typography>\n </Box>\n }\n renderInput={(params) => (\n <TextField\n {...params}\n // label={label}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n />\n )}\n />\n </Box>\n );\n\n const handleChangeInternal = (event: any, newValue: any) => {\n if (multiple) {\n const values = (newValue ?? []).map((opt: any) => opt.value);\n (onChange as (val: TValue[]) => void)?.(values);\n } else {\n const value = newValue?.value ?? \"\";\n (onChange as (val: TValue) => void)?.(value);\n }\n };\n\n return renderAutocomplete(value, handleChangeInternal);\n}\n\nexport default AutocompleteSelect;\n"],"names":["styled","Autocomplete","value","onChange","jsx","Box","_a","jsxs","CircularProgress","Typography","TextField"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,qBAAqBA,OAAAA,OAAOC,qBAAmC;AAAA,EACnE,CAAC,EAAE,MAAA,OAAa;AAAA,IACd,4BAA4B;AAAA,MAC1B,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IAAA;AAAA,IAGZ,gCAAgC;AAAA,MAC9B,SAAS;AAAA,IAAA;AAAA,IAGX,4BAA4B;AAAA,MAC1B,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,IAAA;AAAA,IAGd,sCAAsC;AAAA,MACpC,cAAc;AAAA,MACd,cAAc;AAAA,IAAA;AAAA,IAGhB,+CAA+C;AAAA,MAC7C,SAAS;AAAA,IAAA;AAAA,IAGX,mCAAmC;AAAA,MACjC,KAAK;AAAA,MACL,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ;AAEO,SAAS,mBAEd,OAAkC;AAClC,QAAM;AAAA,IACJ;AAAA,IACA,UAAU,CAAA;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,EAAA,IACf;AA6BJ,QAAM,qBAAqB,CAACC,QAAYC;;AACtCC,sCAAAA;AAAAA,MAACC,SAAAA;AAAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF,OAAO;AAAA,UACP,SAAS;AAAA,UACT,cAAc;AAAA,UACd,WAAW;AAAA,QAAA;AAAA,QAGb,UAAAD,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,OACE,YACK,aAAQ;AAAA,cAAO,CAAC,MACdF,iCAAgC,SAAS,EAAE;AAAA,YAAe,MAD5D,YAEI,CAAA,KACJ,aAAQ,KAAK,CAAC,MAAM,EAAE,UAAUA,MAAK,MAArC,YAA0C;AAAA,YAEjD;AAAA,YACA;AAAA,YACA,gBAAgB,CAAC;;AAAa,sBAAAI,MAAA,2BAAK,UAAL,OAAAA,MAAc;AAAA;AAAA,YAC5C,sBAAsB,CAAC,GAAQ,MAAW,EAAE,UAAU,EAAE;AAAA,YACxD,UAAUH;AAAAA,YAGV,eAAc;AAAA,YACd,aACEI,2BAAAA,KAACF,SAAAA,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,EAAA,GACrD,UAAA;AAAA,cAAAD,2BAAAA,IAACI,SAAAA,kBAAA,EAAiB,MAAM,GAAA,CAAI;AAAA,cAC5BJ,2BAAAA,IAACK,SAAAA,cAAW,UAAA,cAAA,CAAW;AAAA,YAAA,GACzB;AAAA,YAEF,aAAa,CAAC,WACZL,2BAAAA;AAAAA,cAACM,SAAAA;AAAAA,cAAA,iCACK,SADL;AAAA,gBAGC;AAAA,gBACA;AAAA,gBACA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA;AAIJ,QAAM,uBAAuB,CAAC,OAAY,aAAkB;;AAC1D,QAAI,UAAU;AACZ,YAAM,UAAU,8BAAY,CAAA,GAAI,IAAI,CAAC,QAAa,IAAI,KAAK;AAC1D,2CAAuC;AAAA,IAC1C,OAAO;AACL,YAAMR,UAAQ,0CAAU,UAAV,YAAmB;AAChC,2CAAqCA;AAAAA,IACxC;AAAA,EACF;AAEA,SAAO,mBAAmB,OAAO,oBAAoB;AACvD;;"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
21
|
-
import "react";
|
|
22
|
-
import { Autocomplete, Box, TextField, CircularProgress, Typography } from "@mui/material";
|
|
23
|
-
import "@mui/icons-material/Clear";
|
|
24
|
-
import { styled } from "@mui/system";
|
|
25
|
-
const StyledAutocomplete = styled(Autocomplete)(
|
|
26
|
-
({ theme }) => ({
|
|
27
|
-
"& .MuiOutlinedInput-root": {
|
|
28
|
-
maxHeight: "36px",
|
|
29
|
-
padding: "8px 10px",
|
|
30
|
-
borderRadius: "10px",
|
|
31
|
-
display: "flex",
|
|
32
|
-
alignItems: "center",
|
|
33
|
-
fontSize: "14px"
|
|
34
|
-
},
|
|
35
|
-
"& .MuiAutocomplete-inputRoot": {
|
|
36
|
-
padding: "0 !important"
|
|
37
|
-
},
|
|
38
|
-
"& .MuiAutocomplete-input": {
|
|
39
|
-
padding: "0 !important",
|
|
40
|
-
height: "28px",
|
|
41
|
-
marginLeft: "8px"
|
|
42
|
-
},
|
|
43
|
-
"& .MuiOutlinedInput-notchedOutline": {
|
|
44
|
-
marginBottom: "-4px",
|
|
45
|
-
borderRadius: "10px"
|
|
46
|
-
},
|
|
47
|
-
"& .MuiOutlinedInput-notchedOutline > legend": {
|
|
48
|
-
display: "none"
|
|
49
|
-
},
|
|
50
|
-
"& .MuiAutocomplete-endAdornment": {
|
|
51
|
-
top: "50%",
|
|
52
|
-
transform: "translateY(-50%)"
|
|
53
|
-
}
|
|
54
|
-
})
|
|
55
|
-
);
|
|
56
|
-
function AutocompleteSelect(props) {
|
|
57
|
-
const {
|
|
58
|
-
label,
|
|
59
|
-
options = [],
|
|
60
|
-
value,
|
|
61
|
-
onChange,
|
|
62
|
-
placeholder,
|
|
63
|
-
multiple = false,
|
|
64
|
-
disabled = false,
|
|
65
|
-
loading = false,
|
|
66
|
-
error = false,
|
|
67
|
-
helperText,
|
|
68
|
-
renderOptionItem,
|
|
69
|
-
renderChipLabel,
|
|
70
|
-
maxChipsToShow = 3
|
|
71
|
-
} = props;
|
|
72
|
-
const renderAutocomplete = (value2, onChange2) => {
|
|
73
|
-
var _a, _b;
|
|
74
|
-
return /* @__PURE__ */ jsx(
|
|
75
|
-
Box,
|
|
76
|
-
{
|
|
77
|
-
sx: {
|
|
78
|
-
width: "100%",
|
|
79
|
-
display: "grid",
|
|
80
|
-
marginBottom: "10px",
|
|
81
|
-
marginTop: "10px"
|
|
82
|
-
},
|
|
83
|
-
children: /* @__PURE__ */ jsx(
|
|
84
|
-
StyledAutocomplete,
|
|
85
|
-
{
|
|
86
|
-
multiple,
|
|
87
|
-
options,
|
|
88
|
-
value: multiple ? (_a = options.filter(
|
|
89
|
-
(o) => value2 == null ? void 0 : value2.includes(o.value)
|
|
90
|
-
)) != null ? _a : [] : (_b = options.find((o) => o.value === value2)) != null ? _b : null,
|
|
91
|
-
disabled,
|
|
92
|
-
loading,
|
|
93
|
-
getOptionLabel: (opt) => {
|
|
94
|
-
var _a2;
|
|
95
|
-
return (_a2 = opt == null ? void 0 : opt.label) != null ? _a2 : "";
|
|
96
|
-
},
|
|
97
|
-
isOptionEqualToValue: (a, b) => a.value === b.value,
|
|
98
|
-
onChange: onChange2,
|
|
99
|
-
noOptionsText: "No hay opciones",
|
|
100
|
-
loadingText: /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
101
|
-
/* @__PURE__ */ jsx(CircularProgress, { size: 20 }),
|
|
102
|
-
/* @__PURE__ */ jsx(Typography, { children: "Cargando..." })
|
|
103
|
-
] }),
|
|
104
|
-
renderInput: (params) => /* @__PURE__ */ jsx(
|
|
105
|
-
TextField,
|
|
106
|
-
__spreadProps(__spreadValues({}, params), {
|
|
107
|
-
placeholder,
|
|
108
|
-
error,
|
|
109
|
-
helperText
|
|
110
|
-
})
|
|
111
|
-
)
|
|
112
|
-
}
|
|
113
|
-
)
|
|
114
|
-
}
|
|
115
|
-
);
|
|
116
|
-
};
|
|
117
|
-
const handleChangeInternal = (event, newValue) => {
|
|
118
|
-
var _a;
|
|
119
|
-
if (multiple) {
|
|
120
|
-
const values = (newValue != null ? newValue : []).map((opt) => opt.value);
|
|
121
|
-
onChange == null ? void 0 : onChange(values);
|
|
122
|
-
} else {
|
|
123
|
-
const value2 = (_a = newValue == null ? void 0 : newValue.value) != null ? _a : "";
|
|
124
|
-
onChange == null ? void 0 : onChange(value2);
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
return renderAutocomplete(value, handleChangeInternal);
|
|
128
|
-
}
|
|
129
|
-
export {
|
|
130
|
-
AutocompleteSelect as Autocomplete
|
|
131
|
-
};
|
|
132
|
-
//# sourceMappingURL=Autocomplete.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Autocomplete,\n TextField,\n Chip,\n Avatar,\n Box,\n Typography,\n CircularProgress,\n} from \"@mui/material\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport { styled } from \"@mui/system\";\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n img?: string;\n disabled?: boolean;\n group?: string;\n [key: string]: any;\n}\n\ntype RenderOptionItem = (item: SelectOption) => React.ReactNode;\ntype RenderChipLabel = (item: SelectOption) => React.ReactNode;\n\ninterface AutocompleteProps<\n TValue extends SelectOption[\"value\"] = SelectOption[\"value\"],\n> {\n label?: string;\n value: TValue | TValue[];\n onChange: (val: TValue | TValue[]) => void;\n options?: SelectOption[];\n placeholder?: string;\n multiple?: boolean;\n disabled?: boolean;\n loading?: boolean;\n error?: boolean;\n helperText?: string;\n maxChipsToShow?: number;\n renderOptionItem?: RenderOptionItem;\n renderChipLabel?: RenderChipLabel;\n}\n\nconst StyledAutocomplete = styled(Autocomplete as typeof Autocomplete)(\n ({ theme }) => ({\n \"& .MuiOutlinedInput-root\": {\n maxHeight: \"36px\",\n padding: \"8px 10px\",\n borderRadius: \"10px\",\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"14px\",\n },\n\n \"& .MuiAutocomplete-inputRoot\": {\n padding: \"0 !important\",\n },\n\n \"& .MuiAutocomplete-input\": {\n padding: \"0 !important\",\n height: \"28px\",\n marginLeft: \"8px\",\n },\n\n \"& .MuiOutlinedInput-notchedOutline\": {\n marginBottom: \"-4px\",\n borderRadius: \"10px\",\n },\n\n \"& .MuiOutlinedInput-notchedOutline > legend\": {\n display: \"none\",\n },\n\n \"& .MuiAutocomplete-endAdornment\": {\n top: \"50%\",\n transform: \"translateY(-50%)\",\n },\n }),\n);\n\nexport function AutocompleteSelect<\n TValue extends SelectOption[\"value\"] = SelectOption[\"value\"],\n>(props: AutocompleteProps<TValue>) {\n const {\n label,\n options = [],\n value,\n onChange,\n placeholder,\n multiple = false,\n disabled = false,\n loading = false,\n error = false,\n helperText,\n renderOptionItem,\n renderChipLabel,\n maxChipsToShow = 3,\n } = props;\n\n const renderTags = (value: SelectOption[], getTagProps: any) => {\n const displayed = value.slice(0, maxChipsToShow);\n const hidden = value.length - maxChipsToShow;\n\n return (\n <>\n {displayed.map((option, index) => (\n <Chip\n {...getTagProps({ index })}\n key={option.value}\n label={renderChipLabel ? renderChipLabel(option) : option.label}\n avatar={option.img ? <Avatar src={option.img} /> : undefined}\n deleteIcon={<ClearIcon />}\n />\n ))}\n\n {hidden > 0 && <Chip label={`+${hidden} más`} />}\n </>\n );\n };\n\n const renderOption = (propsLi: any, option: SelectOption) => (\n <li {...propsLi} key={option.value}>\n {renderOptionItem ? renderOptionItem(option) : option.label}\n </li>\n );\n\n const renderAutocomplete = (value: any, onChange: any) => (\n <Box\n sx={{\n width: \"100%\",\n display: \"grid\",\n marginBottom: \"10px\",\n marginTop: \"10px\",\n }}\n >\n <StyledAutocomplete\n multiple={multiple}\n options={options}\n value={\n multiple\n ? (options.filter((o) =>\n (value as string[] | undefined)?.includes(o.value as string),\n ) ?? [])\n : (options.find((o) => o.value === value) ?? null)\n }\n disabled={disabled}\n loading={loading}\n getOptionLabel={(opt: any) => opt?.label ?? \"\"}\n isOptionEqualToValue={(a: any, b: any) => a.value === b.value}\n onChange={onChange}\n // renderOption={renderOption}\n // renderTags={multiple ? renderTags : undefined}\n noOptionsText=\"No hay opciones\"\n loadingText={\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\n <CircularProgress size={20} />\n <Typography>Cargando...</Typography>\n </Box>\n }\n renderInput={(params) => (\n <TextField\n {...params}\n // label={label}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n />\n )}\n />\n </Box>\n );\n\n const handleChangeInternal = (event: any, newValue: any) => {\n if (multiple) {\n const values = (newValue ?? []).map((opt: any) => opt.value);\n (onChange as (val: TValue[]) => void)?.(values);\n } else {\n const value = newValue?.value ?? \"\";\n (onChange as (val: TValue) => void)?.(value);\n }\n };\n\n return renderAutocomplete(value, handleChangeInternal);\n}\n\nexport default AutocompleteSelect;\n"],"names":["value","onChange","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,qBAAqB,OAAO,YAAmC;AAAA,EACnE,CAAC,EAAE,MAAA,OAAa;AAAA,IACd,4BAA4B;AAAA,MAC1B,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IAAA;AAAA,IAGZ,gCAAgC;AAAA,MAC9B,SAAS;AAAA,IAAA;AAAA,IAGX,4BAA4B;AAAA,MAC1B,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,IAAA;AAAA,IAGd,sCAAsC;AAAA,MACpC,cAAc;AAAA,MACd,cAAc;AAAA,IAAA;AAAA,IAGhB,+CAA+C;AAAA,MAC7C,SAAS;AAAA,IAAA;AAAA,IAGX,mCAAmC;AAAA,MACjC,KAAK;AAAA,MACL,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ;AAEO,SAAS,mBAEd,OAAkC;AAClC,QAAM;AAAA,IACJ;AAAA,IACA,UAAU,CAAA;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,EAAA,IACf;AA6BJ,QAAM,qBAAqB,CAACA,QAAYC;;AACtC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF,OAAO;AAAA,UACP,SAAS;AAAA,UACT,cAAc;AAAA,UACd,WAAW;AAAA,QAAA;AAAA,QAGb,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,OACE,YACK,aAAQ;AAAA,cAAO,CAAC,MACdD,iCAAgC,SAAS,EAAE;AAAA,YAAe,MAD5D,YAEI,CAAA,KACJ,aAAQ,KAAK,CAAC,MAAM,EAAE,UAAUA,MAAK,MAArC,YAA0C;AAAA,YAEjD;AAAA,YACA;AAAA,YACA,gBAAgB,CAAC;;AAAa,sBAAAE,MAAA,2BAAK,UAAL,OAAAA,MAAc;AAAA;AAAA,YAC5C,sBAAsB,CAAC,GAAQ,MAAW,EAAE,UAAU,EAAE;AAAA,YACxD,UAAUD;AAAAA,YAGV,eAAc;AAAA,YACd,aACE,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,EAAA,GACrD,UAAA;AAAA,cAAA,oBAAC,kBAAA,EAAiB,MAAM,GAAA,CAAI;AAAA,cAC5B,oBAAC,cAAW,UAAA,cAAA,CAAW;AAAA,YAAA,GACzB;AAAA,YAEF,aAAa,CAAC,WACZ;AAAA,cAAC;AAAA,cAAA,iCACK,SADL;AAAA,gBAGC;AAAA,gBACA;AAAA,gBACA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA;AAIJ,QAAM,uBAAuB,CAAC,OAAY,aAAkB;;AAC1D,QAAI,UAAU;AACZ,YAAM,UAAU,8BAAY,CAAA,GAAI,IAAI,CAAC,QAAa,IAAI,KAAK;AAC1D,2CAAuC;AAAA,IAC1C,OAAO;AACL,YAAMD,UAAQ,0CAAU,UAAV,YAAmB;AAChC,2CAAqCA;AAAAA,IACxC;AAAA,EACF;AAEA,SAAO,mBAAmB,OAAO,oBAAoB;AACvD;"}
|
/package/{README.md → Readme.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|