@dktunited-techoff/techoff-suite-ui 1.8.1 → 1.8.3
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/esm/assets/fonts/Montserrat-Medium.ttf +0 -0
- package/esm/assets/fonts/Roboto-Light.ttf +0 -0
- package/esm/components/TsButton/TsButton.css +121 -0
- package/esm/components/TsButton/TsButton.d.ts +5 -0
- package/esm/components/TsButton/TsButton.js +17 -0
- package/esm/components/TsButton/TsButton.js.map +1 -0
- package/esm/components/TsButton/TsButton.types.d.ts +9 -0
- package/esm/components/TsButton/TsButton.types.js +2 -0
- package/esm/components/TsButton/TsButton.types.js.map +1 -0
- package/esm/components/TsButton/__stories__/TsButton.stories.mdx +84 -0
- package/esm/components/TsCheckbox/TsCheckbox.css +64 -0
- package/esm/components/TsCheckbox/TsCheckbox.d.ts +4 -0
- package/esm/components/TsCheckbox/TsCheckbox.js +17 -0
- package/esm/components/TsCheckbox/TsCheckbox.js.map +1 -0
- package/esm/components/TsCheckbox/TsCheckbox.types.d.ts +7 -0
- package/esm/components/TsCheckbox/TsCheckbox.types.js +2 -0
- package/esm/components/TsCheckbox/TsCheckbox.types.js.map +1 -0
- package/esm/components/TsCheckbox/__stories__/TsCheckbox.stories.mdx +56 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.css +114 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.d.ts +4 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.js +100 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.js.map +1 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.tsx +165 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.types.d.ts +17 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.types.js +2 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.types.js.map +1 -0
- package/esm/components/TsDropdowns/TsDropdown/TsDropdown.types.ts +18 -0
- package/esm/components/TsDropdowns/TsDropdown/__stories__/TsDropdown.stories.mdx +85 -0
- package/esm/components/TsDropdowns/TsDropdown/__stories__/fruits.d.ts +4 -0
- package/esm/components/TsDropdowns/TsDropdown/__stories__/fruits.js +48 -0
- package/esm/components/TsDropdowns/TsDropdown/__stories__/fruits.js.map +1 -0
- package/esm/components/TsDropdowns/TsDropdown/__stories__/fruits.ts +47 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.css +83 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.d.ts +4 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.js +62 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.js.map +1 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.tsx +105 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.types.d.ts +8 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.types.js +2 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.types.js.map +1 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.types.ts +8 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/__stories__/TsDropdown.stories.mdx +69 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/__stories__/fruits.d.ts +4 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/__stories__/fruits.js +48 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/__stories__/fruits.js.map +1 -0
- package/esm/components/TsDropdowns/TsDropdownFilter/__stories__/fruits.ts +47 -0
- package/esm/components/TsIcon/TsIcon.css +26 -0
- package/esm/components/TsIcon/TsIcon.d.ts +4 -0
- package/esm/components/TsIcon/TsIcon.js +12 -0
- package/esm/components/TsIcon/TsIcon.js.map +1 -0
- package/esm/components/TsIcon/TsIcon.types.d.ts +4 -0
- package/esm/components/TsIcon/TsIcon.types.js +2 -0
- package/esm/components/TsIcon/TsIcon.types.js.map +1 -0
- package/esm/components/TsIcon/__stories__/TsIcon.stories.mdx +89 -0
- package/esm/components/TsIcon/icons/add-circle.svg +1 -0
- package/esm/components/TsIcon/icons/add.svg +1 -0
- package/esm/components/TsIcon/icons/alert-circle-filled.svg +1 -0
- package/esm/components/TsIcon/icons/alert-circle.svg +1 -0
- package/esm/components/TsIcon/icons/alert-triangle-filled.svg +1 -0
- package/esm/components/TsIcon/icons/alert-triangle.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-diagonal-collapse.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-diagonal-expand.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-down.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-go-back.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-left-right.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-left.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-right.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-up-down.svg +1 -0
- package/esm/components/TsIcon/icons/arrow-up.svg +1 -0
- package/esm/components/TsIcon/icons/award.svg +1 -0
- package/esm/components/TsIcon/icons/check-circle-filled.svg +1 -0
- package/esm/components/TsIcon/icons/check-circle-timer.svg +7 -0
- package/esm/components/TsIcon/icons/check-circle.svg +1 -0
- package/esm/components/TsIcon/icons/check-square-filled.svg +1 -0
- package/esm/components/TsIcon/icons/check-square.svg +1 -0
- package/esm/components/TsIcon/icons/check.svg +1 -0
- package/esm/components/TsIcon/icons/chevron-down.svg +1 -0
- package/esm/components/TsIcon/icons/chevron-left.svg +1 -0
- package/esm/components/TsIcon/icons/chevron-right.svg +1 -0
- package/esm/components/TsIcon/icons/chevron-up.svg +1 -0
- package/esm/components/TsIcon/icons/circle.svg +1 -0
- package/esm/components/TsIcon/icons/close-circle.svg +1 -0
- package/esm/components/TsIcon/icons/close.svg +1 -0
- package/esm/components/TsIcon/icons/currency-euro.svg +1 -0
- package/esm/components/TsIcon/icons/download.svg +1 -0
- package/esm/components/TsIcon/icons/edit.svg +1 -0
- package/esm/components/TsIcon/icons/external-link.svg +1 -0
- package/esm/components/TsIcon/icons/filter-off.svg +1 -0
- package/esm/components/TsIcon/icons/filter.svg +1 -0
- package/esm/components/TsIcon/icons/flashlight-off.svg +1 -0
- package/esm/components/TsIcon/icons/flashlight.svg +1 -0
- package/esm/components/TsIcon/icons/header-bikestudio.svg +32 -0
- package/esm/components/TsIcon/icons/header-nsc-helmet.svg +32 -0
- package/esm/components/TsIcon/icons/header-opticost.svg +32 -0
- package/esm/components/TsIcon/icons/header-repairability.svg +32 -0
- package/esm/components/TsIcon/icons/header-techoff-suite.svg +32 -0
- package/esm/components/TsIcon/icons/heart-filled.svg +1 -0
- package/esm/components/TsIcon/icons/heart.svg +1 -0
- package/esm/components/TsIcon/icons/history.svg +1 -0
- package/esm/components/TsIcon/icons/home.svg +1 -0
- package/esm/components/TsIcon/icons/index.d.ts +3 -0
- package/esm/components/TsIcon/icons/index.js +62 -0
- package/esm/components/TsIcon/icons/index.js.map +1 -0
- package/esm/components/TsIcon/icons/index.ts +61 -0
- package/esm/components/TsIcon/icons/link.svg +1 -0
- package/esm/components/TsIcon/icons/list-settings.svg +1 -0
- package/esm/components/TsIcon/icons/lock.svg +1 -0
- package/esm/components/TsIcon/icons/loop-right.svg +1 -0
- package/esm/components/TsIcon/icons/percent.svg +1 -0
- package/esm/components/TsIcon/icons/question-circle.svg +1 -0
- package/esm/components/TsIcon/icons/save.svg +1 -0
- package/esm/components/TsIcon/icons/search.svg +1 -0
- package/esm/components/TsIcon/icons/seedling-circle.svg +12 -0
- package/esm/components/TsIcon/icons/square.svg +1 -0
- package/esm/components/TsIcon/icons/timer.svg +1 -0
- package/esm/components/TsIcon/icons/tools.svg +1 -0
- package/esm/components/TsIcon/icons/user.svg +1 -0
- package/esm/components/TsInput/TsInput/TsInput.css +92 -0
- package/esm/components/TsInput/TsInput/TsInput.d.ts +4 -0
- package/esm/components/TsInput/TsInput/TsInput.js +21 -0
- package/esm/components/TsInput/TsInput/TsInput.js.map +1 -0
- package/esm/components/TsInput/TsInput/TsInput.tsx +34 -0
- package/esm/components/TsInput/TsInput/TsInput.types.d.ts +8 -0
- package/esm/components/TsInput/TsInput/TsInput.types.js +2 -0
- package/esm/components/TsInput/TsInput/TsInput.types.js.map +1 -0
- package/esm/components/TsInput/TsInput/TsInput.types.tsx +9 -0
- package/esm/components/TsInput/TsInput/__stories__/TsInput.stories.mdx +77 -0
- package/esm/components/TsLoader/TsLoader.css +42 -0
- package/esm/components/TsLoader/TsLoader.d.ts +4 -0
- package/esm/components/TsLoader/TsLoader.js +6 -0
- package/esm/components/TsLoader/TsLoader.js.map +1 -0
- package/esm/components/TsLoader/TsLoader.types.d.ts +3 -0
- package/esm/components/TsLoader/TsLoader.types.js +2 -0
- package/esm/components/TsLoader/TsLoader.types.js.map +1 -0
- package/esm/components/TsLoader/__stories__/TsLoader.stories.mdx +30 -0
- package/esm/components/TsTabs/TsTabs.css +69 -0
- package/esm/components/TsTabs/TsTabs.d.ts +4 -0
- package/esm/components/TsTabs/TsTabs.js +30 -0
- package/esm/components/TsTabs/TsTabs.js.map +1 -0
- package/esm/components/TsTabs/TsTabs.types.d.ts +14 -0
- package/esm/components/TsTabs/TsTabs.types.js +2 -0
- package/esm/components/TsTabs/TsTabs.types.js.map +1 -0
- package/esm/components/TsTabs/__stories__/TsTabs.stories.mdx +50 -0
- package/esm/hooks/use-click-outside.d.ts +2 -0
- package/esm/hooks/use-click-outside.js +14 -0
- package/esm/hooks/use-click-outside.js.map +1 -0
- package/esm/index.d.ts +11 -0
- package/esm/index.js +12 -0
- package/esm/index.js.map +1 -0
- package/esm/layouts/TsHeader/TsHeader.css +186 -0
- package/esm/layouts/TsHeader/TsHeader.d.ts +4 -0
- package/esm/layouts/TsHeader/TsHeader.js +13 -0
- package/esm/layouts/TsHeader/TsHeader.js.map +1 -0
- package/esm/layouts/TsHeader/TsHeader.types.d.ts +23 -0
- package/esm/layouts/TsHeader/TsHeader.types.js +2 -0
- package/esm/layouts/TsHeader/TsHeader.types.js.map +1 -0
- package/esm/layouts/TsHeader/TsHeaderProfile.d.ts +5 -0
- package/esm/layouts/TsHeader/TsHeaderProfile.js +38 -0
- package/esm/layouts/TsHeader/TsHeaderProfile.js.map +1 -0
- package/esm/layouts/TsHeader/TsHeaderSearch.d.ts +3 -0
- package/esm/layouts/TsHeader/TsHeaderSearch.js +58 -0
- package/esm/layouts/TsHeader/TsHeaderSearch.js.map +1 -0
- package/esm/layouts/TsHeader/__stories__/TsHeader.stories.mdx +71 -0
- package/esm/layouts/TsNavigation/TsNavigation.css +72 -0
- package/esm/layouts/TsNavigation/TsNavigation.d.ts +7 -0
- package/esm/layouts/TsNavigation/TsNavigation.js +29 -0
- package/esm/layouts/TsNavigation/TsNavigation.js.map +1 -0
- package/esm/layouts/TsNavigation/TsNavigation.types.d.ts +10 -0
- package/esm/layouts/TsNavigation/TsNavigation.types.js +2 -0
- package/esm/layouts/TsNavigation/TsNavigation.types.js.map +1 -0
- package/esm/layouts/TsNavigation/__stories__/TsNavigation.stories.mdx +51 -0
- package/esm/utils/string.utils.d.ts +1 -0
- package/esm/utils/string.utils.js +2 -0
- package/esm/utils/string.utils.js.map +1 -0
- package/lib/assets/fonts/Montserrat-Medium.ttf +0 -0
- package/lib/assets/fonts/Roboto-Light.ttf +0 -0
- package/lib/components/TsButton/TsButton.css +121 -0
- package/lib/components/TsButton/TsButton.d.ts +5 -0
- package/lib/components/TsButton/TsButton.js +21 -0
- package/lib/components/TsButton/TsButton.js.map +1 -0
- package/lib/components/TsButton/TsButton.types.d.ts +9 -0
- package/lib/components/TsButton/TsButton.types.js +3 -0
- package/lib/components/TsButton/TsButton.types.js.map +1 -0
- package/lib/components/TsButton/__stories__/TsButton.stories.mdx +84 -0
- package/lib/components/TsCheckbox/TsCheckbox.css +64 -0
- package/lib/components/TsCheckbox/TsCheckbox.d.ts +4 -0
- package/lib/components/TsCheckbox/TsCheckbox.js +21 -0
- package/lib/components/TsCheckbox/TsCheckbox.js.map +1 -0
- package/lib/components/TsCheckbox/TsCheckbox.types.d.ts +7 -0
- package/lib/components/TsCheckbox/TsCheckbox.types.js +3 -0
- package/lib/components/TsCheckbox/TsCheckbox.types.js.map +1 -0
- package/lib/components/TsCheckbox/__stories__/TsCheckbox.stories.mdx +56 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.css +114 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.d.ts +4 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.js +104 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.js.map +1 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.tsx +165 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.types.d.ts +17 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.types.js +3 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.types.js.map +1 -0
- package/lib/components/TsDropdowns/TsDropdown/TsDropdown.types.ts +18 -0
- package/lib/components/TsDropdowns/TsDropdown/__stories__/TsDropdown.stories.mdx +85 -0
- package/lib/components/TsDropdowns/TsDropdown/__stories__/fruits.d.ts +4 -0
- package/lib/components/TsDropdowns/TsDropdown/__stories__/fruits.js +51 -0
- package/lib/components/TsDropdowns/TsDropdown/__stories__/fruits.js.map +1 -0
- package/lib/components/TsDropdowns/TsDropdown/__stories__/fruits.ts +47 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.css +83 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.d.ts +4 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.js +66 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.js.map +1 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.tsx +105 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.types.d.ts +8 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.types.js +3 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.types.js.map +1 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.types.ts +8 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/__stories__/TsDropdown.stories.mdx +69 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/__stories__/fruits.d.ts +4 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/__stories__/fruits.js +51 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/__stories__/fruits.js.map +1 -0
- package/lib/components/TsDropdowns/TsDropdownFilter/__stories__/fruits.ts +47 -0
- package/lib/components/TsIcon/TsIcon.css +26 -0
- package/lib/components/TsIcon/TsIcon.d.ts +4 -0
- package/lib/components/TsIcon/TsIcon.js +16 -0
- package/lib/components/TsIcon/TsIcon.js.map +1 -0
- package/lib/components/TsIcon/TsIcon.types.d.ts +4 -0
- package/lib/components/TsIcon/TsIcon.types.js +3 -0
- package/lib/components/TsIcon/TsIcon.types.js.map +1 -0
- package/lib/components/TsIcon/__stories__/TsIcon.stories.mdx +89 -0
- package/lib/components/TsIcon/icons/add-circle.svg +1 -0
- package/lib/components/TsIcon/icons/add.svg +1 -0
- package/lib/components/TsIcon/icons/alert-circle-filled.svg +1 -0
- package/lib/components/TsIcon/icons/alert-circle.svg +1 -0
- package/lib/components/TsIcon/icons/alert-triangle-filled.svg +1 -0
- package/lib/components/TsIcon/icons/alert-triangle.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-diagonal-collapse.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-diagonal-expand.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-down.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-go-back.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-left-right.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-left.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-right.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-up-down.svg +1 -0
- package/lib/components/TsIcon/icons/arrow-up.svg +1 -0
- package/lib/components/TsIcon/icons/award.svg +1 -0
- package/lib/components/TsIcon/icons/check-circle-filled.svg +1 -0
- package/lib/components/TsIcon/icons/check-circle-timer.svg +7 -0
- package/lib/components/TsIcon/icons/check-circle.svg +1 -0
- package/lib/components/TsIcon/icons/check-square-filled.svg +1 -0
- package/lib/components/TsIcon/icons/check-square.svg +1 -0
- package/lib/components/TsIcon/icons/check.svg +1 -0
- package/lib/components/TsIcon/icons/chevron-down.svg +1 -0
- package/lib/components/TsIcon/icons/chevron-left.svg +1 -0
- package/lib/components/TsIcon/icons/chevron-right.svg +1 -0
- package/lib/components/TsIcon/icons/chevron-up.svg +1 -0
- package/lib/components/TsIcon/icons/circle.svg +1 -0
- package/lib/components/TsIcon/icons/close-circle.svg +1 -0
- package/lib/components/TsIcon/icons/close.svg +1 -0
- package/lib/components/TsIcon/icons/currency-euro.svg +1 -0
- package/lib/components/TsIcon/icons/download.svg +1 -0
- package/lib/components/TsIcon/icons/edit.svg +1 -0
- package/lib/components/TsIcon/icons/external-link.svg +1 -0
- package/lib/components/TsIcon/icons/filter-off.svg +1 -0
- package/lib/components/TsIcon/icons/filter.svg +1 -0
- package/lib/components/TsIcon/icons/flashlight-off.svg +1 -0
- package/lib/components/TsIcon/icons/flashlight.svg +1 -0
- package/lib/components/TsIcon/icons/header-bikestudio.svg +32 -0
- package/lib/components/TsIcon/icons/header-nsc-helmet.svg +32 -0
- package/lib/components/TsIcon/icons/header-opticost.svg +32 -0
- package/lib/components/TsIcon/icons/header-repairability.svg +32 -0
- package/lib/components/TsIcon/icons/header-techoff-suite.svg +32 -0
- package/lib/components/TsIcon/icons/heart-filled.svg +1 -0
- package/lib/components/TsIcon/icons/heart.svg +1 -0
- package/lib/components/TsIcon/icons/history.svg +1 -0
- package/lib/components/TsIcon/icons/home.svg +1 -0
- package/lib/components/TsIcon/icons/index.d.ts +3 -0
- package/lib/components/TsIcon/icons/index.js +65 -0
- package/lib/components/TsIcon/icons/index.js.map +1 -0
- package/lib/components/TsIcon/icons/index.ts +61 -0
- package/lib/components/TsIcon/icons/link.svg +1 -0
- package/lib/components/TsIcon/icons/list-settings.svg +1 -0
- package/lib/components/TsIcon/icons/lock.svg +1 -0
- package/lib/components/TsIcon/icons/loop-right.svg +1 -0
- package/lib/components/TsIcon/icons/percent.svg +1 -0
- package/lib/components/TsIcon/icons/question-circle.svg +1 -0
- package/lib/components/TsIcon/icons/save.svg +1 -0
- package/lib/components/TsIcon/icons/search.svg +1 -0
- package/lib/components/TsIcon/icons/seedling-circle.svg +12 -0
- package/lib/components/TsIcon/icons/square.svg +1 -0
- package/lib/components/TsIcon/icons/timer.svg +1 -0
- package/lib/components/TsIcon/icons/tools.svg +1 -0
- package/lib/components/TsIcon/icons/user.svg +1 -0
- package/lib/components/TsInput/TsInput/TsInput.css +92 -0
- package/lib/components/TsInput/TsInput/TsInput.d.ts +4 -0
- package/lib/components/TsInput/TsInput/TsInput.js +25 -0
- package/lib/components/TsInput/TsInput/TsInput.js.map +1 -0
- package/lib/components/TsInput/TsInput/TsInput.tsx +34 -0
- package/lib/components/TsInput/TsInput/TsInput.types.d.ts +8 -0
- package/lib/components/TsInput/TsInput/TsInput.types.js +3 -0
- package/lib/components/TsInput/TsInput/TsInput.types.js.map +1 -0
- package/lib/components/TsInput/TsInput/TsInput.types.tsx +9 -0
- package/lib/components/TsInput/TsInput/__stories__/TsInput.stories.mdx +77 -0
- package/lib/components/TsLoader/TsLoader.css +42 -0
- package/lib/components/TsLoader/TsLoader.d.ts +4 -0
- package/lib/components/TsLoader/TsLoader.js +10 -0
- package/lib/components/TsLoader/TsLoader.js.map +1 -0
- package/lib/components/TsLoader/TsLoader.types.d.ts +3 -0
- package/lib/components/TsLoader/TsLoader.types.js +3 -0
- package/lib/components/TsLoader/TsLoader.types.js.map +1 -0
- package/lib/components/TsLoader/__stories__/TsLoader.stories.mdx +30 -0
- package/lib/components/TsTabs/TsTabs.css +69 -0
- package/lib/components/TsTabs/TsTabs.d.ts +4 -0
- package/lib/components/TsTabs/TsTabs.js +34 -0
- package/lib/components/TsTabs/TsTabs.js.map +1 -0
- package/lib/components/TsTabs/TsTabs.types.d.ts +14 -0
- package/lib/components/TsTabs/TsTabs.types.js +3 -0
- package/lib/components/TsTabs/TsTabs.types.js.map +1 -0
- package/lib/components/TsTabs/__stories__/TsTabs.stories.mdx +50 -0
- package/lib/hooks/use-click-outside.d.ts +2 -0
- package/lib/hooks/use-click-outside.js +18 -0
- package/lib/hooks/use-click-outside.js.map +1 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.js +28 -0
- package/lib/index.js.map +1 -0
- package/lib/layouts/TsHeader/TsHeader.css +186 -0
- package/lib/layouts/TsHeader/TsHeader.d.ts +4 -0
- package/lib/layouts/TsHeader/TsHeader.js +17 -0
- package/lib/layouts/TsHeader/TsHeader.js.map +1 -0
- package/lib/layouts/TsHeader/TsHeader.types.d.ts +23 -0
- package/lib/layouts/TsHeader/TsHeader.types.js +3 -0
- package/lib/layouts/TsHeader/TsHeader.types.js.map +1 -0
- package/lib/layouts/TsHeader/TsHeaderProfile.d.ts +5 -0
- package/lib/layouts/TsHeader/TsHeaderProfile.js +43 -0
- package/lib/layouts/TsHeader/TsHeaderProfile.js.map +1 -0
- package/lib/layouts/TsHeader/TsHeaderSearch.d.ts +3 -0
- package/lib/layouts/TsHeader/TsHeaderSearch.js +62 -0
- package/lib/layouts/TsHeader/TsHeaderSearch.js.map +1 -0
- package/lib/layouts/TsHeader/__stories__/TsHeader.stories.mdx +71 -0
- package/lib/layouts/TsNavigation/TsNavigation.css +72 -0
- package/lib/layouts/TsNavigation/TsNavigation.d.ts +7 -0
- package/lib/layouts/TsNavigation/TsNavigation.js +35 -0
- package/lib/layouts/TsNavigation/TsNavigation.js.map +1 -0
- package/lib/layouts/TsNavigation/TsNavigation.types.d.ts +10 -0
- package/lib/layouts/TsNavigation/TsNavigation.types.js +3 -0
- package/lib/layouts/TsNavigation/TsNavigation.types.js.map +1 -0
- package/lib/layouts/TsNavigation/__stories__/TsNavigation.stories.mdx +51 -0
- package/lib/utils/string.utils.d.ts +1 -0
- package/lib/utils/string.utils.js +6 -0
- package/lib/utils/string.utils.js.map +1 -0
- package/package.json +1 -1
- package/src/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.css +12 -12
- package/src/components/TsDropdowns/TsDropdownFilter/TsDropdownFilter.tsx +11 -10
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { TsIcon } from '../../TsIcon/TsIcon';
|
|
3
|
+
import { TsInputProps } from './TsInput.types';
|
|
4
|
+
import './TsInput.css';
|
|
5
|
+
|
|
6
|
+
export const TsInput = ({ byDefault, error, icon, label, value, onChange, ...props }: TsInputProps) => {
|
|
7
|
+
// #########
|
|
8
|
+
// Rendering
|
|
9
|
+
return (
|
|
10
|
+
<div
|
|
11
|
+
className={`ts-input ${byDefault ? 'ts-input--padding-2' : icon ? 'ts-input--padding-1' : 'ts-input--padding-0'}`}
|
|
12
|
+
>
|
|
13
|
+
{label && <div className="ts-input-label">{label}</div>}
|
|
14
|
+
<div className={`ts-input-container ${error && error !== '' ? 'ts-input-container--error' : ''}`}>
|
|
15
|
+
<input type="text" value={value} onChange={e => onChange(e.target.value)} {...props} />
|
|
16
|
+
{byDefault && <div className="ts-input-tag">{byDefault} by default</div>}
|
|
17
|
+
{icon && (
|
|
18
|
+
<div className="ts-input-icon">
|
|
19
|
+
<TsIcon name={icon} size="16" />
|
|
20
|
+
</div>
|
|
21
|
+
)}
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
{error && error !== '' && (
|
|
25
|
+
<div className="ts-input-error">
|
|
26
|
+
<div className="ts-input-error--icon">
|
|
27
|
+
<TsIcon name="alert-circle" size="16" />
|
|
28
|
+
</div>
|
|
29
|
+
<div className="ts-input-error--label">{error}</div>
|
|
30
|
+
</div>
|
|
31
|
+
)}
|
|
32
|
+
</div>
|
|
33
|
+
);
|
|
34
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InputHTMLAttributes } from 'react';
|
|
2
|
+
export type TsInputProps = {
|
|
3
|
+
byDefault?: string | number;
|
|
4
|
+
error?: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
onChange: (value: string) => void;
|
|
8
|
+
} & Omit<Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange'>, 'size'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TsInput.types.js","sourceRoot":"","sources":["../../../../src/components/TsInput/TsInput/TsInput.types.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InputHTMLAttributes } from 'react';
|
|
2
|
+
|
|
3
|
+
export type TsInputProps = {
|
|
4
|
+
byDefault?: string | number;
|
|
5
|
+
error?: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
onChange: (value: string) => void;
|
|
9
|
+
} & Omit<Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange'>, 'size'>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArgsTable, Canvas, Meta, Story } from '@storybook/blocks';
|
|
3
|
+
import { TsInput } from '../TsInput';
|
|
4
|
+
import { icons } from '../../../TsIcon/icons';
|
|
5
|
+
|
|
6
|
+
<Meta title="Components/Input" />
|
|
7
|
+
|
|
8
|
+
export const inputArgTypes = {
|
|
9
|
+
byDefault: {
|
|
10
|
+
control: 'text',
|
|
11
|
+
description: 'Add "by default" tag.',
|
|
12
|
+
},
|
|
13
|
+
error: {
|
|
14
|
+
control: 'text',
|
|
15
|
+
description: 'Error of the input.',
|
|
16
|
+
},
|
|
17
|
+
icon: {
|
|
18
|
+
control: 'select',
|
|
19
|
+
options: Object.keys(icons),
|
|
20
|
+
description: 'Icon of the input.',
|
|
21
|
+
},
|
|
22
|
+
label: {
|
|
23
|
+
control: 'text',
|
|
24
|
+
description: 'label of the input.',
|
|
25
|
+
},
|
|
26
|
+
placeholder: {
|
|
27
|
+
control: 'text',
|
|
28
|
+
description: 'Placeholder of the input.',
|
|
29
|
+
},
|
|
30
|
+
value: {
|
|
31
|
+
control: 'text',
|
|
32
|
+
description: 'Value of the input.',
|
|
33
|
+
},
|
|
34
|
+
disabled: {
|
|
35
|
+
control: 'boolean',
|
|
36
|
+
description: 'Enable state of the input.',
|
|
37
|
+
table: { defaultValue: { summary: 'false' } },
|
|
38
|
+
},
|
|
39
|
+
onChange: {
|
|
40
|
+
control: 'function',
|
|
41
|
+
description: 'The handler called when entering text (not available on playground).',
|
|
42
|
+
},
|
|
43
|
+
onValidate: {
|
|
44
|
+
control: 'function',
|
|
45
|
+
description: 'The handler called on input blur (not available on playground).',
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
# Input
|
|
50
|
+
|
|
51
|
+
Input allows the user to enter content and data when the expected user input is a single line of text.
|
|
52
|
+
|
|
53
|
+
## Overview
|
|
54
|
+
|
|
55
|
+
<Canvas>
|
|
56
|
+
<Story
|
|
57
|
+
name="Overview"
|
|
58
|
+
args={{
|
|
59
|
+
byDefault: '',
|
|
60
|
+
error: '',
|
|
61
|
+
icon: '',
|
|
62
|
+
label: 'Label',
|
|
63
|
+
placeholder: 'Enter some text',
|
|
64
|
+
value: '',
|
|
65
|
+
disabled: false,
|
|
66
|
+
onChange: () => {},
|
|
67
|
+
onValidate: () => {},
|
|
68
|
+
}}
|
|
69
|
+
argTypes={inputArgTypes}
|
|
70
|
+
>
|
|
71
|
+
{args => <TsInput {...args} />}
|
|
72
|
+
</Story>
|
|
73
|
+
</Canvas>
|
|
74
|
+
|
|
75
|
+
## Props
|
|
76
|
+
|
|
77
|
+
<ArgsTable story="Overview" of={TsInput} />
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@keyframes rotation {
|
|
2
|
+
0% {
|
|
3
|
+
transform: rotate(0deg);
|
|
4
|
+
}
|
|
5
|
+
100% {
|
|
6
|
+
transform: rotate(360deg);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.ts-loader {
|
|
11
|
+
border: 2px solid;
|
|
12
|
+
border-color: #3643ba transparent;
|
|
13
|
+
border-radius: 50%;
|
|
14
|
+
display: inline-block;
|
|
15
|
+
box-sizing: border-box;
|
|
16
|
+
animation: rotation 1.5s linear infinite;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* ####### */
|
|
20
|
+
/* SIZES */
|
|
21
|
+
.ts-loader--sm {
|
|
22
|
+
width: 24px;
|
|
23
|
+
height: 24px;
|
|
24
|
+
}
|
|
25
|
+
.ts-loader--md {
|
|
26
|
+
width: 32px;
|
|
27
|
+
height: 32px;
|
|
28
|
+
}
|
|
29
|
+
.ts-loader--lg {
|
|
30
|
+
width: 44px;
|
|
31
|
+
height: 44px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ######### */
|
|
35
|
+
/* GLOBALS */
|
|
36
|
+
* {
|
|
37
|
+
font-size: 14px;
|
|
38
|
+
outline: none;
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans',
|
|
41
|
+
'Helvetica Neue', sans-serif;
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TsLoader.js","sourceRoot":"","sources":["../../../src/components/TsLoader/TsLoader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAiB,EAAE,EAAE;IACzD,OAAO,6BAAK,SAAS,EAAE,wBAAwB,IAAI,EAAE,GAAI,CAAC;AAC5D,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TsLoader.types.js","sourceRoot":"","sources":["../../../src/components/TsLoader/TsLoader.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArgsTable, Canvas, Meta, Story } from '@storybook/blocks';
|
|
3
|
+
import { TsLoader } from '../TsLoader';
|
|
4
|
+
|
|
5
|
+
<Meta title="Components/Loader" />
|
|
6
|
+
|
|
7
|
+
export const loaderArgTypes = {
|
|
8
|
+
size: {
|
|
9
|
+
control: 'inline-radio',
|
|
10
|
+
options: ['sm', 'md', 'lg'],
|
|
11
|
+
description: 'Define the size of the loader.',
|
|
12
|
+
table: { defaultValue: { summary: 'md' } },
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
# Loader
|
|
17
|
+
|
|
18
|
+
Loader express to user that an action is occuring.
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
<Canvas>
|
|
23
|
+
<Story name="Overview" args={{ size: 'md' }} argTypes={loaderArgTypes}>
|
|
24
|
+
{args => <TsLoader {...args}>{args.children}</TsLoader>}
|
|
25
|
+
</Story>
|
|
26
|
+
</Canvas>
|
|
27
|
+
|
|
28
|
+
## Props
|
|
29
|
+
|
|
30
|
+
<ArgsTable story="Overview" of={TsLoader} />
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
.ts-tabs {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: 100%;
|
|
6
|
+
}
|
|
7
|
+
.ts-tabs-header {
|
|
8
|
+
display: flex;
|
|
9
|
+
width: 100%;
|
|
10
|
+
height: 64px;
|
|
11
|
+
border-bottom: 1px solid #d9dde1;
|
|
12
|
+
}
|
|
13
|
+
.ts-tabs-items-container {
|
|
14
|
+
flex: 1;
|
|
15
|
+
height: 100%;
|
|
16
|
+
padding: 0 16px;
|
|
17
|
+
overflow: auto;
|
|
18
|
+
}
|
|
19
|
+
.ts-tabs-items {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
height: 100%;
|
|
23
|
+
}
|
|
24
|
+
.ts-tabs-item {
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
margin-right: 20px;
|
|
28
|
+
padding: 4px 0;
|
|
29
|
+
white-space: nowrap;
|
|
30
|
+
cursor: pointer;
|
|
31
|
+
}
|
|
32
|
+
.ts-tabs-item--selected {
|
|
33
|
+
border-bottom: 1px solid #3643ba;
|
|
34
|
+
color: #3643ba;
|
|
35
|
+
}
|
|
36
|
+
.ts-tabs-item--disabled {
|
|
37
|
+
color: #8c96a2;
|
|
38
|
+
cursor: not-allowed;
|
|
39
|
+
}
|
|
40
|
+
.ts-tabs-item--selected-pin {
|
|
41
|
+
width: 6px;
|
|
42
|
+
height: 6px;
|
|
43
|
+
margin-left: 8px;
|
|
44
|
+
border-radius: 50%;
|
|
45
|
+
background: #3643ba;
|
|
46
|
+
}
|
|
47
|
+
.ts-tabs-actions {
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
padding: 0 16px;
|
|
51
|
+
}
|
|
52
|
+
.ts-tabs-actions > * {
|
|
53
|
+
margin-left: 10px;
|
|
54
|
+
}
|
|
55
|
+
.ts-tabs-container {
|
|
56
|
+
flex: 1;
|
|
57
|
+
width: 100%;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* ######### */
|
|
62
|
+
/* GLOBALS */
|
|
63
|
+
* {
|
|
64
|
+
font-size: 14px;
|
|
65
|
+
outline: none;
|
|
66
|
+
box-sizing: border-box;
|
|
67
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans',
|
|
68
|
+
'Helvetica Neue', sans-serif;
|
|
69
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { TsIcon } from '../TsIcon/TsIcon';
|
|
4
|
+
import './TsTabs.css';
|
|
5
|
+
export const TsTabs = ({ defaultSelectedTabId, tabs }) => {
|
|
6
|
+
const [selectedTab, setSelectedTab] = useState(tabs.find(t => t.id === defaultSelectedTabId) ?? tabs[0]);
|
|
7
|
+
// ########
|
|
8
|
+
// Handlers
|
|
9
|
+
const handleSelectTab = (tab) => {
|
|
10
|
+
setSelectedTab(tab);
|
|
11
|
+
tab.onClick?.();
|
|
12
|
+
};
|
|
13
|
+
// #########
|
|
14
|
+
// Rendering
|
|
15
|
+
return (React.createElement("div", { className: "ts-tabs" },
|
|
16
|
+
React.createElement("div", { className: "ts-tabs-header" },
|
|
17
|
+
React.createElement("div", { className: "ts-tabs-items-container" },
|
|
18
|
+
React.createElement("div", { className: "ts-tabs-items" }, tabs.map(tab => (React.createElement("div", { key: tab.id, className: `
|
|
19
|
+
ts-tabs-item
|
|
20
|
+
${tab.id === selectedTab.id ? 'ts-tabs-item--selected' : ''}
|
|
21
|
+
${tab.disabled ? 'ts-tabs-item--disabled' : ''}
|
|
22
|
+
`, onClick: () => !tab.disabled && handleSelectTab(tab) },
|
|
23
|
+
tab.icon && (React.createElement("div", { className: "ts-tabs-item--icon" },
|
|
24
|
+
React.createElement(TsIcon, { name: tab.icon }))),
|
|
25
|
+
React.createElement("div", { className: "ts-tabs-item--label" }, tab.label),
|
|
26
|
+
tab.id === selectedTab.id && React.createElement("div", { className: "ts-tabs-item--selected-pin" })))))),
|
|
27
|
+
selectedTab?.actions && React.createElement("div", { className: "ts-tabs-actions" }, selectedTab?.actions)),
|
|
28
|
+
React.createElement("div", { className: "ts-tabs-container" }, selectedTab?.element)));
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=TsTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TsTabs.js","sourceRoot":"","sources":["../../../src/components/TsTabs/TsTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAe,EAAE,EAAE;IACpE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,oBAAoB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAElH,WAAW;IACX,WAAW;IACX,MAAM,eAAe,GAAG,CAAC,GAAY,EAAE,EAAE;QACvC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,YAAY;IACZ,YAAY;IACZ,OAAO,CACL,6BAAK,SAAS,EAAC,SAAS;QACtB,6BAAK,SAAS,EAAC,gBAAgB;YAC7B,6BAAK,SAAS,EAAC,yBAAyB;gBACtC,6BAAK,SAAS,EAAC,eAAe,IAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACf,6BACE,GAAG,EAAE,GAAG,CAAC,EAAE,EACX,SAAS,EAAE;;oBAEP,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;oBACzD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;iBAC/C,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC;oBAEnD,GAAG,CAAC,IAAI,IAAI,CACX,6BAAK,SAAS,EAAC,oBAAoB;wBACjC,oBAAC,MAAM,IAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAI,CACtB,CACP;oBACD,6BAAK,SAAS,EAAC,qBAAqB,IAAE,GAAG,CAAC,KAAK,CAAO;oBACrD,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,IAAI,6BAAK,SAAS,EAAC,4BAA4B,GAAG,CACxE,CACP,CAAC,CACE,CACF;YAEL,WAAW,EAAE,OAAO,IAAI,6BAAK,SAAS,EAAC,iBAAiB,IAAE,WAAW,EAAE,OAAO,CAAO,CAClF;QAEN,6BAAK,SAAS,EAAC,mBAAmB,IAAE,WAAW,EAAE,OAAO,CAAO,CAC3D,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
export type TabItem = {
|
|
3
|
+
icon?: string;
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
element: ReactElement;
|
|
8
|
+
actions?: ReactElement;
|
|
9
|
+
onClick?: () => void;
|
|
10
|
+
};
|
|
11
|
+
export type TsTabsProps = {
|
|
12
|
+
defaultSelectedTabId?: string;
|
|
13
|
+
tabs: TabItem[];
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TsTabs.types.js","sourceRoot":"","sources":["../../../src/components/TsTabs/TsTabs.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArgsTable, Canvas, Meta, Story } from '@storybook/blocks';
|
|
3
|
+
import { TsButton } from '../../TsButton/TsButton';
|
|
4
|
+
import { TsTabs } from '../TsTabs';
|
|
5
|
+
|
|
6
|
+
<Meta title="Components/Tabs" />
|
|
7
|
+
|
|
8
|
+
export const tabsArgTypes = {};
|
|
9
|
+
|
|
10
|
+
# Tabs
|
|
11
|
+
|
|
12
|
+
Tabs are used to move from one content to another within the same context.
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
<Canvas>
|
|
17
|
+
<Story
|
|
18
|
+
name="Overview"
|
|
19
|
+
args={{
|
|
20
|
+
tabs: [
|
|
21
|
+
{
|
|
22
|
+
id: '1',
|
|
23
|
+
label: 'Tab item 1',
|
|
24
|
+
element: <p>Tab item 1 content</p>,
|
|
25
|
+
actions: (
|
|
26
|
+
<>
|
|
27
|
+
<TsButton>Action 1</TsButton>
|
|
28
|
+
<TsButton>Action 2</TsButton>
|
|
29
|
+
</>
|
|
30
|
+
),
|
|
31
|
+
},
|
|
32
|
+
{ id: '2', label: 'Tab item 2', element: <p>Tab item 2 content</p> },
|
|
33
|
+
{ id: 'disabled', label: 'Tab item disabled', disabled: true, element: <></> },
|
|
34
|
+
{
|
|
35
|
+
id: '3',
|
|
36
|
+
label: 'Tab item 3',
|
|
37
|
+
element: <p>Tab item 3 content</p>,
|
|
38
|
+
actions: <TsButton icon="add">Action</TsButton>,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
}}
|
|
42
|
+
argTypes={tabsArgTypes}
|
|
43
|
+
>
|
|
44
|
+
{args => <TsTabs {...args} />}
|
|
45
|
+
</Story>
|
|
46
|
+
</Canvas>
|
|
47
|
+
|
|
48
|
+
## Props
|
|
49
|
+
|
|
50
|
+
<ArgsTable story="Overview" of={TsTabs} />
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
export const useClickOutside = (callback) => {
|
|
3
|
+
const ref = useRef(null);
|
|
4
|
+
const handleClickOutside = (event) => {
|
|
5
|
+
if (ref.current && !ref.current.contains(event.target))
|
|
6
|
+
callback();
|
|
7
|
+
};
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
document.addEventListener('click', handleClickOutside);
|
|
10
|
+
return () => document.removeEventListener('click', handleClickOutside);
|
|
11
|
+
}, []);
|
|
12
|
+
return ref;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=use-click-outside.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-click-outside.js","sourceRoot":"","sources":["../../src/hooks/use-click-outside.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAoB,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;QAC/C,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;YAAE,QAAQ,EAAE,CAAC;IAC7E,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
package/esm/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './components/TsButton/TsButton';
|
|
2
|
+
export * from './components/TsCheckbox/TsCheckbox';
|
|
3
|
+
export * from './components/TsDropdowns/TsDropdown/TsDropdown';
|
|
4
|
+
export * from './components/TsDropdowns/TsDropdownFilter/TsDropdownFilter';
|
|
5
|
+
export * from './components/TsIcon/TsIcon';
|
|
6
|
+
export * from './components/TsInput/TsInput/TsInput';
|
|
7
|
+
export * from './components/TsLoader/TsLoader';
|
|
8
|
+
export * from './components/TsTabs/TsTabs';
|
|
9
|
+
export * from './layouts/TsHeader/TsHeader';
|
|
10
|
+
export * from './layouts/TsHeader/TsHeaderProfile';
|
|
11
|
+
export * from './layouts/TsNavigation/TsNavigation';
|
package/esm/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './components/TsButton/TsButton';
|
|
2
|
+
export * from './components/TsCheckbox/TsCheckbox';
|
|
3
|
+
export * from './components/TsDropdowns/TsDropdown/TsDropdown';
|
|
4
|
+
export * from './components/TsDropdowns/TsDropdownFilter/TsDropdownFilter';
|
|
5
|
+
export * from './components/TsIcon/TsIcon';
|
|
6
|
+
export * from './components/TsInput/TsInput/TsInput';
|
|
7
|
+
export * from './components/TsLoader/TsLoader';
|
|
8
|
+
export * from './components/TsTabs/TsTabs';
|
|
9
|
+
export * from './layouts/TsHeader/TsHeader';
|
|
10
|
+
export * from './layouts/TsHeader/TsHeaderProfile';
|
|
11
|
+
export * from './layouts/TsNavigation/TsNavigation';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
@font-face {
|
|
2
|
+
font-family: 'Montserrat-Medium';
|
|
3
|
+
src: url('../../assets/fonts/Montserrat-Medium.ttf');
|
|
4
|
+
}
|
|
5
|
+
@font-face {
|
|
6
|
+
font-family: 'Roboto-Light';
|
|
7
|
+
src: url('../../assets/fonts/Roboto-Light.ttf');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* ######## */
|
|
11
|
+
/* HEADER */
|
|
12
|
+
header {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
justify-content: space-between;
|
|
16
|
+
width: 100%;
|
|
17
|
+
height: 64px;
|
|
18
|
+
padding: 0 24px;
|
|
19
|
+
}
|
|
20
|
+
.ts-header-aside {
|
|
21
|
+
display: flex;
|
|
22
|
+
align-items: center;
|
|
23
|
+
flex: 1;
|
|
24
|
+
height: 100%;
|
|
25
|
+
}
|
|
26
|
+
.ts-header-right-side {
|
|
27
|
+
justify-content: flex-end;
|
|
28
|
+
}
|
|
29
|
+
.ts-header-search-bar {
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
width: 400px;
|
|
33
|
+
height: 100%;
|
|
34
|
+
}
|
|
35
|
+
.ts-header-actions {
|
|
36
|
+
display: flex;
|
|
37
|
+
}
|
|
38
|
+
.ts-header-actions > * {
|
|
39
|
+
margin-left: 12px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* ################ */
|
|
43
|
+
/* HEADER TECHOFF */
|
|
44
|
+
.ts-header-techoff {
|
|
45
|
+
display: flex;
|
|
46
|
+
height: 18px;
|
|
47
|
+
margin-left: 4px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* ################ */
|
|
51
|
+
/* HEADER PROFILE */
|
|
52
|
+
.ts-header-profile-container {
|
|
53
|
+
position: relative;
|
|
54
|
+
}
|
|
55
|
+
.ts-header-profile-dropdown {
|
|
56
|
+
display: flex;
|
|
57
|
+
height: 40px;
|
|
58
|
+
border-radius: 9999px;
|
|
59
|
+
box-shadow: 0px 12px 12px 0px #00537d1a;
|
|
60
|
+
color: #4e5d6b;
|
|
61
|
+
background-color: #ffffff;
|
|
62
|
+
cursor: pointer;
|
|
63
|
+
}
|
|
64
|
+
.ts-header-profile-img-container {
|
|
65
|
+
width: 40px;
|
|
66
|
+
height: 40px;
|
|
67
|
+
padding: 4px;
|
|
68
|
+
border-radius: 9999px;
|
|
69
|
+
}
|
|
70
|
+
.ts-header-profile-img-icon {
|
|
71
|
+
display: flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
justify-content: center;
|
|
74
|
+
width: 32px;
|
|
75
|
+
height: 32px;
|
|
76
|
+
border-radius: 9999px;
|
|
77
|
+
background-color: rgb(229, 229, 229);
|
|
78
|
+
}
|
|
79
|
+
.ts-header-profile-name {
|
|
80
|
+
display: flex;
|
|
81
|
+
flex: 1;
|
|
82
|
+
align-items: center;
|
|
83
|
+
padding-left: 4px;
|
|
84
|
+
padding-right: 16px;
|
|
85
|
+
}
|
|
86
|
+
.ts-header-profile-chevron {
|
|
87
|
+
display: flex;
|
|
88
|
+
align-items: center;
|
|
89
|
+
justify-content: center;
|
|
90
|
+
height: 40px;
|
|
91
|
+
padding-right: 14px;
|
|
92
|
+
border-radius: 9999px;
|
|
93
|
+
}
|
|
94
|
+
.ts-header-profile-menu {
|
|
95
|
+
position: absolute;
|
|
96
|
+
right: 0;
|
|
97
|
+
top: 48px;
|
|
98
|
+
width: 288px;
|
|
99
|
+
padding: 4px;
|
|
100
|
+
border-radius: 8px;
|
|
101
|
+
box-shadow: 0px 12px 12px 0px #00537d1a;
|
|
102
|
+
background-color: #ffffff;
|
|
103
|
+
z-index: 10;
|
|
104
|
+
}
|
|
105
|
+
.ts-header-profile-menu-item {
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
height: 36px;
|
|
109
|
+
border-radius: 6px;
|
|
110
|
+
cursor: pointer;
|
|
111
|
+
}
|
|
112
|
+
.ts-header-profile-menu-item:hover {
|
|
113
|
+
background-color: #e7f3f9;
|
|
114
|
+
}
|
|
115
|
+
.ts-header-profile-menu-item-icon {
|
|
116
|
+
display: flex;
|
|
117
|
+
align-items: center;
|
|
118
|
+
justify-content: center;
|
|
119
|
+
width: 36px;
|
|
120
|
+
height: 36px;
|
|
121
|
+
}
|
|
122
|
+
.ts-header-profile-menu-item-label {
|
|
123
|
+
flex: 1;
|
|
124
|
+
padding: 0 2px;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* ############### */
|
|
128
|
+
/* HEADER SEARCH */
|
|
129
|
+
.ts-header-search {
|
|
130
|
+
position: relative;
|
|
131
|
+
width: 100%;
|
|
132
|
+
}
|
|
133
|
+
.ts-header-search-items-container {
|
|
134
|
+
position: absolute;
|
|
135
|
+
top: calc(100% + 4px);
|
|
136
|
+
width: 100%;
|
|
137
|
+
max-height: 200px;
|
|
138
|
+
border-radius: 8px;
|
|
139
|
+
box-shadow: 0px 12px 12px 0px #00537d1a;
|
|
140
|
+
background-color: white;
|
|
141
|
+
overflow-y: auto;
|
|
142
|
+
z-index: 100;
|
|
143
|
+
}
|
|
144
|
+
.ts-header-search-loading {
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
justify-content: center;
|
|
148
|
+
height: 40px;
|
|
149
|
+
}
|
|
150
|
+
.ts-header-search-no-items {
|
|
151
|
+
display: flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
justify-content: center;
|
|
154
|
+
height: 40px;
|
|
155
|
+
color: #8c96a2;
|
|
156
|
+
font-style: italic;
|
|
157
|
+
}
|
|
158
|
+
.ts-header-search-items {
|
|
159
|
+
padding: 8px;
|
|
160
|
+
}
|
|
161
|
+
.ts-header-search-item {
|
|
162
|
+
display: flex;
|
|
163
|
+
align-items: center;
|
|
164
|
+
height: 32px;
|
|
165
|
+
padding: 0 10px;
|
|
166
|
+
border-radius: 4px;
|
|
167
|
+
cursor: pointer;
|
|
168
|
+
}
|
|
169
|
+
.ts-header-search-item:hover {
|
|
170
|
+
background: #e7f3f9;
|
|
171
|
+
}
|
|
172
|
+
.ts-header-search-item--match {
|
|
173
|
+
background: #cce5f2;
|
|
174
|
+
color: #007dbc;
|
|
175
|
+
font-weight: 700;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* ######### */
|
|
179
|
+
/* GLOBALS */
|
|
180
|
+
* {
|
|
181
|
+
font-size: 14px;
|
|
182
|
+
outline: none;
|
|
183
|
+
box-sizing: border-box;
|
|
184
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans',
|
|
185
|
+
'Helvetica Neue', sans-serif;
|
|
186
|
+
}
|