@eyesee/ui-components 0.8.0 → 0.10.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/README.md +2 -0
- package/dist/components/Avatar/Avatar.d.ts +139 -0
- package/dist/components/Avatar/Avatar.js +8 -7
- package/dist/components/Badge/Badge.d.ts +59 -0
- package/dist/components/Badge/Badge.js +7 -7
- package/dist/components/Badge/badgeVariants.d.ts +17 -0
- package/dist/components/Button/Button.d.ts +299 -0
- package/dist/components/Button/Button.js +3 -3
- package/dist/components/Checkbox/Checkbox.d.ts +124 -0
- package/dist/components/Checkbox/Checkbox.js +13 -12
- package/dist/components/DropdownList/DropdownList.d.ts +153 -0
- package/dist/components/DropdownList/DropdownList.js +15 -15
- package/dist/components/EllipsisTooltip/EllipsisTooltip.d.ts +114 -0
- package/dist/components/EllipsisTooltip/EllipsisTooltip.js +3 -3
- package/dist/components/ExpandableItem/ExpandableItem.d.ts +89 -0
- package/dist/components/ExpandableItem/ExpandableItem.js +6 -6
- package/dist/components/Fields/InputField/InputField.d.ts +309 -0
- package/dist/components/Fields/InputField/InputField.js +54 -49
- package/dist/components/Fields/InputFieldContainer.d.ts +11 -0
- package/dist/components/Fields/SelectField/SelectField.d.ts +404 -0
- package/dist/components/Fields/SelectField/SelectField.js +61 -56
- package/dist/components/Fields/SelectField/SelectFieldTags.d.ts +6 -0
- package/dist/components/Fields/SelectField/selectOptionRow.d.ts +1 -0
- package/dist/components/Fields/SelectField/selectUtils.d.ts +35 -0
- package/dist/components/Fields/SelectField/useSelectFieldDropdownPosition.d.ts +7 -0
- package/dist/components/Fields/TextField/TextField.d.ts +272 -0
- package/dist/components/Fields/TextField/TextField.js +68 -61
- package/dist/components/FileType/FileType.d.ts +61 -0
- package/dist/components/FileType/FileType.js +6 -5
- package/dist/components/FileType/PaperIcon.d.ts +5 -0
- package/dist/components/ImagePlaceholder/ImageHoverPreview/ImageHoverPreview.d.ts +75 -0
- package/dist/components/ImagePlaceholder/ImageHoverPreview/ImageHoverPreview.js +13 -12
- package/dist/components/ImagePlaceholder/ImagePlaceholder.d.ts +606 -0
- package/dist/components/ImagePlaceholder/ImagePlaceholder.js +3 -3
- package/dist/components/ImagePlaceholder/constantsImgPh.d.ts +16 -0
- package/dist/components/ImagePlaceholder/utilsImgPh.d.ts +18 -0
- package/dist/components/ImageWithData/ImageWithData.d.ts +284 -0
- package/dist/components/ImageWithData/ImageWithData.js +11 -11
- package/dist/components/Infobox/Infobox.d.ts +90 -0
- package/dist/components/Infobox/Infobox.js +5 -5
- package/dist/components/Infobox/infoboxVariants.d.ts +8 -0
- package/dist/components/ListItem/ListItem.d.ts +311 -0
- package/dist/components/ListItem/ListItem.js +7 -7
- package/dist/components/ListItem/useListItems.d.ts +108 -0
- package/dist/components/ListItem/useListItems.js +18 -17
- package/dist/components/Modal/Modal.d.ts +239 -0
- package/dist/components/Modal/Modal.js +4 -3
- package/dist/components/Notifications/Notifications.d.ts +261 -0
- package/dist/components/Notifications/Notifications.js +4 -3
- package/dist/components/Notifications/useNotifications.d.ts +59 -0
- package/dist/components/Notifications/useNotifications.js +3 -2
- package/dist/components/Pill/Pill.d.ts +81 -0
- package/dist/components/Pill/Pill.js +7 -12
- package/dist/components/Pill/pillVariants.d.ts +16 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +111 -0
- package/dist/components/ProgressBar/ProgressBar.js +17 -16
- package/dist/components/Radio/Radio.d.ts +58 -0
- package/dist/components/Radio/Radio.js +12 -11
- package/dist/components/Tab/Tab.d.ts +204 -0
- package/dist/components/Tab/Tab.js +3 -3
- package/dist/components/Tabs/Tabs.d.ts +356 -0
- package/dist/components/Tabs/Tabs.js +3 -3
- package/dist/components/Tabs/tabsUtils.d.ts +33 -0
- package/dist/components/Tabs/tabsUtils.js +18 -12
- package/dist/components/Tag/Tag.d.ts +93 -0
- package/dist/components/Tag/Tag.js +4 -3
- package/dist/components/Tag/tagVariants.d.ts +7 -0
- package/dist/components/TextHoverable/TextHoverable.d.ts +46 -0
- package/dist/components/TextHoverable/TextHoverable.js +5 -3
- package/dist/components/Toggle/Toggle.d.ts +115 -0
- package/dist/components/Toggle/Toggle.js +6 -5
- package/dist/components/Tooltip/Tooltip.d.ts +294 -0
- package/dist/components/Tooltip/Tooltip.js +3 -3
- package/dist/components/Tooltip/useTooltipPositioning.d.ts +21 -0
- package/dist/components/icons-v2/AdIcon.d.ts +2 -0
- package/dist/components/icons-v2/AddMessageIcon.d.ts +13 -0
- package/dist/components/icons-v2/AddUserIcon.d.ts +13 -0
- package/dist/components/icons-v2/AdjustmentsIcon.d.ts +13 -0
- package/dist/components/icons-v2/AlertIcon.d.ts +13 -0
- package/dist/components/icons-v2/AlignCenterIcon.d.ts +13 -0
- package/dist/components/icons-v2/AlignHorizontallyIcon.d.ts +13 -0
- package/dist/components/icons-v2/AlignJustifyIcon.d.ts +13 -0
- package/dist/components/icons-v2/AlignLeftIcon.d.ts +13 -0
- package/dist/components/icons-v2/AlignRightIcon.d.ts +13 -0
- package/dist/components/icons-v2/AlignVerticallyIcon.d.ts +13 -0
- package/dist/components/icons-v2/AlphabetIcon.d.ts +20 -0
- package/dist/components/icons-v2/ArchiveIcon.d.ts +13 -0
- package/dist/components/icons-v2/ArrowDownIcon.d.ts +13 -0
- package/dist/components/icons-v2/ArrowDownRightIcon.d.ts +13 -0
- package/dist/components/icons-v2/ArrowLeftIcon.d.ts +13 -0
- package/dist/components/icons-v2/ArrowMoveDownIcon.d.ts +13 -0
- package/dist/components/icons-v2/ArrowRightIcon.d.ts +13 -0
- package/dist/components/icons-v2/ArrowUpIcon.d.ts +13 -0
- package/dist/components/icons-v2/AspectRatioIcon.d.ts +13 -0
- package/dist/components/icons-v2/AspectRatioIcon.js +15 -0
- package/dist/components/icons-v2/AttributesEvaluationIcon.d.ts +13 -0
- package/dist/components/icons-v2/BellIcon.d.ts +13 -0
- package/dist/components/icons-v2/BoldIcon.d.ts +13 -0
- package/dist/components/icons-v2/BoltIcon.d.ts +13 -0
- package/dist/components/icons-v2/BookIcon.d.ts +13 -0
- package/dist/components/icons-v2/BookmarkIcon.d.ts +13 -0
- package/dist/components/icons-v2/BooksIcon.d.ts +13 -0
- package/dist/components/icons-v2/BoxIcon.d.ts +13 -0
- package/dist/components/icons-v2/BugIcon.d.ts +13 -0
- package/dist/components/icons-v2/CalendarIcon.d.ts +13 -0
- package/dist/components/icons-v2/CameraPlusIcon.d.ts +13 -0
- package/dist/components/icons-v2/CardsIcon.d.ts +13 -0
- package/dist/components/icons-v2/CellIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChartbarIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChartbarOffIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChatBubbleIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChatbotIcon.d.ts +13 -0
- package/dist/components/icons-v2/CheckCircleIcon.d.ts +13 -0
- package/dist/components/icons-v2/CheckboxIcon.d.ts +13 -0
- package/dist/components/icons-v2/CheckmarkDoubleIcon.d.ts +13 -0
- package/dist/components/icons-v2/CheckmarkLargeIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChevronDownIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChevronLeftIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChevronRightIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChevronUpIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChevronsDownIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChevronsLeftIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChevronsRightIcon.d.ts +13 -0
- package/dist/components/icons-v2/ChevronsUpIcon.d.ts +13 -0
- package/dist/components/icons-v2/CircleIcon.d.ts +11 -0
- package/dist/components/icons-v2/CirclesIcon.d.ts +13 -0
- package/dist/components/icons-v2/ClickIcon.d.ts +13 -0
- package/dist/components/icons-v2/ClipboardIcon.d.ts +13 -0
- package/dist/components/icons-v2/ClockIcon.d.ts +13 -0
- package/dist/components/icons-v2/ClockShareIcon.d.ts +13 -0
- package/dist/components/icons-v2/CloseIcon.d.ts +13 -0
- package/dist/components/icons-v2/ColumnIcon.d.ts +1 -0
- package/dist/components/icons-v2/CopyIcon.d.ts +13 -0
- package/dist/components/icons-v2/CreditCardIcon.d.ts +13 -0
- package/dist/components/icons-v2/CropIcon.d.ts +13 -0
- package/dist/components/icons-v2/DashboardMeterIcon.d.ts +13 -0
- package/dist/components/icons-v2/DatabaseCheckIcon.d.ts +13 -0
- package/dist/components/icons-v2/DatabaseIcon.d.ts +13 -0
- package/dist/components/icons-v2/DeleteIcon.d.ts +12 -0
- package/dist/components/icons-v2/DetailsIcon.d.ts +13 -0
- package/dist/components/icons-v2/DevicesIcon.d.ts +13 -0
- package/dist/components/icons-v2/DislikeIcon.d.ts +13 -0
- package/dist/components/icons-v2/DollarIcon.d.ts +13 -0
- package/dist/components/icons-v2/DownloadIcon.d.ts +13 -0
- package/dist/components/icons-v2/DragToolIcon.d.ts +13 -0
- package/dist/components/icons-v2/DrawRectangleIcon.d.ts +13 -0
- package/dist/components/icons-v2/EditIcon.d.ts +12 -0
- package/dist/components/icons-v2/EmailIcon.d.ts +13 -0
- package/dist/components/icons-v2/EmojiNeutralIcon.d.ts +13 -0
- package/dist/components/icons-v2/EmojiSadIcon.d.ts +13 -0
- package/dist/components/icons-v2/EmojiSlightSmileyIcon.d.ts +13 -0
- package/dist/components/icons-v2/EmojiSmileyIcon.d.ts +13 -0
- package/dist/components/icons-v2/EmojiVerySadIcon.d.ts +13 -0
- package/dist/components/icons-v2/EraserIcon.d.ts +13 -0
- package/dist/components/icons-v2/EtShelfIcon.d.ts +13 -0
- package/dist/components/icons-v2/EtStandaloneIcon.d.ts +13 -0
- package/dist/components/icons-v2/ExternalLinkIcon.d.ts +13 -0
- package/dist/components/icons-v2/EyeSeeTokenIcon.d.ts +1 -0
- package/dist/components/icons-v2/FileExportIcon.d.ts +13 -0
- package/dist/components/icons-v2/FileIcon.d.ts +13 -0
- package/dist/components/icons-v2/FileImportIcon.d.ts +13 -0
- package/dist/components/icons-v2/FileNewIcon.d.ts +13 -0
- package/dist/components/icons-v2/FileRemoveIcon.d.ts +13 -0
- package/dist/components/icons-v2/FileTemplateIcon.d.ts +13 -0
- package/dist/components/icons-v2/FileUploadIcon.d.ts +13 -0
- package/dist/components/icons-v2/FilesIcon.d.ts +13 -0
- package/dist/components/icons-v2/FilterOffIcon.d.ts +13 -0
- package/dist/components/icons-v2/FilterOnIcon.d.ts +13 -0
- package/dist/components/icons-v2/FlagIcon.d.ts +13 -0
- package/dist/components/icons-v2/FolderIcon.d.ts +13 -0
- package/dist/components/icons-v2/FullscreenIcon.d.ts +13 -0
- package/dist/components/icons-v2/GridviewIcon.d.ts +13 -0
- package/dist/components/icons-v2/HelpIcon.d.ts +10 -0
- package/dist/components/icons-v2/HomeIcon.d.ts +13 -0
- package/dist/components/icons-v2/ImageIcon.d.ts +13 -0
- package/dist/components/icons-v2/ImageOffIcon.d.ts +13 -0
- package/dist/components/icons-v2/ImageStarIcon.d.ts +15 -0
- package/dist/components/icons-v2/ImageUploadIcon.d.ts +13 -0
- package/dist/components/icons-v2/ImagesIcon.d.ts +123 -0
- package/dist/components/icons-v2/ImagesIcon.js +15 -0
- package/dist/components/icons-v2/InfoIcon.d.ts +13 -0
- package/dist/components/icons-v2/ItalicIcon.d.ts +13 -0
- package/dist/components/icons-v2/LanguageIcon.d.ts +13 -0
- package/dist/components/icons-v2/LaunchIcon.d.ts +13 -0
- package/dist/components/icons-v2/LayersIcon.d.ts +13 -0
- package/dist/components/icons-v2/LeftSidebarCollapseIcon.d.ts +13 -0
- package/dist/components/icons-v2/LeftSidebarExpandIcon.d.ts +13 -0
- package/dist/components/icons-v2/LightDarkIcon.d.ts +13 -0
- package/dist/components/icons-v2/LightbulbIcon.d.ts +13 -0
- package/dist/components/icons-v2/LikeIcon.d.ts +13 -0
- package/dist/components/icons-v2/LinkIcon.d.ts +13 -0
- package/dist/components/icons-v2/ListCheckIcon.d.ts +1 -0
- package/dist/components/icons-v2/ListViewIcon.d.ts +13 -0
- package/dist/components/icons-v2/LoaderIcon.d.ts +14 -0
- package/dist/components/icons-v2/LoadingIcon.d.ts +14 -0
- package/dist/components/icons-v2/LockIcon.d.ts +13 -0
- package/dist/components/icons-v2/LockOffIcon.d.ts +13 -0
- package/dist/components/icons-v2/LoginIcon.d.ts +13 -0
- package/dist/components/icons-v2/LogoutIcon.d.ts +13 -0
- package/dist/components/icons-v2/MagicwandIcon.d.ts +13 -0
- package/dist/components/icons-v2/MaximizeIcon.d.ts +13 -0
- package/dist/components/icons-v2/MenuIcon.d.ts +13 -0
- package/dist/components/icons-v2/MessageIcon.d.ts +13 -0
- package/dist/components/icons-v2/MeterIcon.d.ts +13 -0
- package/dist/components/icons-v2/MinimizeIcon.d.ts +13 -0
- package/dist/components/icons-v2/MinusIcon.d.ts +13 -0
- package/dist/components/icons-v2/MoreHorizontalIcon.d.ts +13 -0
- package/dist/components/icons-v2/MoreIcon.d.ts +13 -0
- package/dist/components/icons-v2/MouseIcon.d.ts +13 -0
- package/dist/components/icons-v2/MoveIcon.d.ts +13 -0
- package/dist/components/icons-v2/Multiplier05Icon.d.ts +13 -0
- package/dist/components/icons-v2/Multiplier10Icon.d.ts +13 -0
- package/dist/components/icons-v2/Multiplier15Icon.d.ts +13 -0
- package/dist/components/icons-v2/Multiplier20Icon.d.ts +13 -0
- package/dist/components/icons-v2/NoteIcon.d.ts +13 -0
- package/dist/components/icons-v2/NoteOffIcon.d.ts +13 -0
- package/dist/components/icons-v2/NotifyIcon.d.ts +13 -0
- package/dist/components/icons-v2/PackAIIcon.d.ts +13 -0
- package/dist/components/icons-v2/PackseeIcon.d.ts +1 -0
- package/dist/components/icons-v2/PaperclipIcon.d.ts +13 -0
- package/dist/components/icons-v2/PauseIcon.d.ts +13 -0
- package/dist/components/icons-v2/PdfIcon.d.ts +13 -0
- package/dist/components/icons-v2/PentoolIcon.d.ts +13 -0
- package/dist/components/icons-v2/PiechartIcon.d.ts +13 -0
- package/dist/components/icons-v2/PinIcon.d.ts +13 -0
- package/dist/components/icons-v2/PinskewedIcon.d.ts +13 -0
- package/dist/components/icons-v2/PlayIcon.d.ts +13 -0
- package/dist/components/icons-v2/PlusIcon.d.ts +12 -0
- package/dist/components/icons-v2/PredictiveETIcon.d.ts +13 -0
- package/dist/components/icons-v2/RectanglesAddIcon.d.ts +1 -0
- package/dist/components/icons-v2/RedoIcon.d.ts +13 -0
- package/dist/components/icons-v2/RefreshAlertIcon.d.ts +13 -0
- package/dist/components/icons-v2/RefreshIcon.d.ts +13 -0
- package/dist/components/icons-v2/ReplaceIcon.d.ts +13 -0
- package/dist/components/icons-v2/ReplyIcon.d.ts +13 -0
- package/dist/components/icons-v2/SaveIcon.d.ts +12 -0
- package/dist/components/icons-v2/ScalesIcon.d.ts +13 -0
- package/dist/components/icons-v2/SearchIcon.d.ts +13 -0
- package/dist/components/icons-v2/SendIcon.d.ts +13 -0
- package/dist/components/icons-v2/SettingsIcon.d.ts +13 -0
- package/dist/components/icons-v2/ShareIcon.d.ts +13 -0
- package/dist/components/icons-v2/ShelfAddIcon.d.ts +13 -0
- package/dist/components/icons-v2/ShelfIcon.d.ts +13 -0
- package/dist/components/icons-v2/ShelfInfoIcon.d.ts +13 -0
- package/dist/components/icons-v2/ShoppingIcon.d.ts +13 -0
- package/dist/components/icons-v2/SlideshowIcon.d.ts +13 -0
- package/dist/components/icons-v2/SocialFacebookIcon.d.ts +13 -0
- package/dist/components/icons-v2/SocialInstagramIcon.d.ts +13 -0
- package/dist/components/icons-v2/SocialSnapchatIcon.d.ts +13 -0
- package/dist/components/icons-v2/SocialTiktok2Icon.d.ts +13 -0
- package/dist/components/icons-v2/SocialTiktokIcon.d.ts +13 -0
- package/dist/components/icons-v2/SocialXIcon.d.ts +13 -0
- package/dist/components/icons-v2/SocialYoutubeIcon.d.ts +13 -0
- package/dist/components/icons-v2/SortHorizontalIcon.d.ts +13 -0
- package/dist/components/icons-v2/SquareAddIcon.d.ts +1 -0
- package/dist/components/icons-v2/StarIcon.d.ts +20 -0
- package/dist/components/icons-v2/StopIcon.d.ts +11 -0
- package/dist/components/icons-v2/SurveyIcon.d.ts +13 -0
- package/dist/components/icons-v2/TableExportIcon.d.ts +13 -0
- package/dist/components/icons-v2/TableIcon.d.ts +13 -0
- package/dist/components/icons-v2/TableOptionsIcon.d.ts +13 -0
- package/dist/components/icons-v2/TagIcon.d.ts +13 -0
- package/dist/components/icons-v2/TargetArrowIcon.d.ts +13 -0
- package/dist/components/icons-v2/TargetIcon.d.ts +13 -0
- package/dist/components/icons-v2/TextRecognitionIcon.d.ts +13 -0
- package/dist/components/icons-v2/TriangleFlagIcon.d.ts +13 -0
- package/dist/components/icons-v2/TrophyIcon.d.ts +13 -0
- package/dist/components/icons-v2/UnderlineIcon.d.ts +13 -0
- package/dist/components/icons-v2/UndoIcon.d.ts +13 -0
- package/dist/components/icons-v2/UnitBuyRateIcon.d.ts +13 -0
- package/dist/components/icons-v2/UploadIcon.d.ts +13 -0
- package/dist/components/icons-v2/UserGroupIcon.d.ts +13 -0
- package/dist/components/icons-v2/UserIcon.d.ts +13 -0
- package/dist/components/icons-v2/UsersIcon.d.ts +13 -0
- package/dist/components/icons-v2/ValueBuyRateIcon.d.ts +13 -0
- package/dist/components/icons-v2/VideoIcon.d.ts +13 -0
- package/dist/components/icons-v2/ViewOffIcon.d.ts +13 -0
- package/dist/components/icons-v2/ViewOnIcon.d.ts +13 -0
- package/dist/components/icons-v2/VolumeOffIcon.d.ts +13 -0
- package/dist/components/icons-v2/VolumeOnIcon.d.ts +13 -0
- package/dist/components/icons-v2/WebIcon.d.ts +13 -0
- package/dist/components/icons-v2/XIcon.d.ts +13 -0
- package/dist/components/icons-v2/ZipFileIcon.d.ts +13 -0
- package/dist/components/icons-v2/ZonePercentageIcon.d.ts +1 -0
- package/dist/components/icons-v2/ZoomInIcon.d.ts +1 -0
- package/dist/components/icons-v2/ZoomOutIcon.d.ts +1 -0
- package/dist/components/icons-v2/constants.d.ts +61 -0
- package/dist/components/icons-v2/createIcon.d.ts +45 -0
- package/dist/components/icons-v2/index.d.ts +210 -0
- package/dist/components/icons-v2/index.js +378 -374
- package/dist/components/index.d.ts +30 -0
- package/dist/hooks/useClickOutside.d.ts +2 -0
- package/dist/hooks/useEscapeKey.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/package.json +17 -4
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* All props are optional.
|
|
3
|
+
*
|
|
4
|
+
* @typedef {object} PillProps
|
|
5
|
+
*
|
|
6
|
+
* @property {string} [label='Completed']
|
|
7
|
+
* Label text. Default `'Completed'`.
|
|
8
|
+
* @property {'light'|'dark'|'outline'} [color='light']
|
|
9
|
+
* Visual variant. Default `'light'`.
|
|
10
|
+
* @property {'turquoise'|'purple'|'green'|'red'|'yellow'|'orange'|'greenyellow'|'neutral'} [status='turquoise']
|
|
11
|
+
* Colour theme. Default `'turquoise'`.
|
|
12
|
+
* @property {React.ReactNode} [icon=null]
|
|
13
|
+
* Optional leading icon. Default `null`.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Compact inline pill for status labels and metadata.
|
|
17
|
+
*
|
|
18
|
+
* ## Props
|
|
19
|
+
*
|
|
20
|
+
* All optional.
|
|
21
|
+
*
|
|
22
|
+
* **label** `string` — default `'Completed'`
|
|
23
|
+
* Label text.
|
|
24
|
+
*
|
|
25
|
+
* **color** `'light' | 'dark' | 'outline'` — default `'light'`
|
|
26
|
+
* Visual variant: light (pale bg), dark (saturated bg), outline (border only).
|
|
27
|
+
*
|
|
28
|
+
* **status** `'turquoise' | 'purple' | 'green' | 'red' | 'yellow' | 'orange' | 'greenyellow' | 'neutral'` — default `'turquoise'`
|
|
29
|
+
* Colour theme.
|
|
30
|
+
*
|
|
31
|
+
* **icon** `ReactNode` — default `null`
|
|
32
|
+
* Optional leading icon.
|
|
33
|
+
*
|
|
34
|
+
* @param {PillProps} props
|
|
35
|
+
* @returns {import('react').ReactElement}
|
|
36
|
+
*
|
|
37
|
+
* @example <caption>Default</caption>
|
|
38
|
+
* import { Pill } from '@eyesee/ui-components';
|
|
39
|
+
*
|
|
40
|
+
* <Pill label="Completed" color="light" status="turquoise" />
|
|
41
|
+
*
|
|
42
|
+
* @example <caption>Text only</caption>
|
|
43
|
+
* import { Pill } from '@eyesee/ui-components';
|
|
44
|
+
*
|
|
45
|
+
* <Pill label="Completed" />
|
|
46
|
+
*
|
|
47
|
+
* @example <caption>Color and status variants</caption>
|
|
48
|
+
* import { Pill } from '@eyesee/ui-components';
|
|
49
|
+
*
|
|
50
|
+
* <Pill label="Completed" color="light" status="turquoise" />
|
|
51
|
+
* <Pill label="Completed" color="dark" status="green" />
|
|
52
|
+
* <Pill label="Completed" color="outline" status="red" />
|
|
53
|
+
*
|
|
54
|
+
* @example <caption>In context</caption>
|
|
55
|
+
* import { Pill } from '@eyesee/ui-components';
|
|
56
|
+
*
|
|
57
|
+
* <span>Project Alpha</span>
|
|
58
|
+
* <Pill label="Completed" color="light" status="purple" />
|
|
59
|
+
*/
|
|
60
|
+
export function Pill({ label, color, status, icon }: PillProps): import("react").ReactElement;
|
|
61
|
+
/**
|
|
62
|
+
* All props are optional.
|
|
63
|
+
*/
|
|
64
|
+
export type PillProps = {
|
|
65
|
+
/**
|
|
66
|
+
* Label text. Default `'Completed'`.
|
|
67
|
+
*/
|
|
68
|
+
label?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Visual variant. Default `'light'`.
|
|
71
|
+
*/
|
|
72
|
+
color?: "light" | "dark" | "outline";
|
|
73
|
+
/**
|
|
74
|
+
* Colour theme. Default `'turquoise'`.
|
|
75
|
+
*/
|
|
76
|
+
status?: "turquoise" | "purple" | "green" | "red" | "yellow" | "orange" | "greenyellow" | "neutral";
|
|
77
|
+
/**
|
|
78
|
+
* Optional leading icon. Default `null`.
|
|
79
|
+
*/
|
|
80
|
+
icon?: React.ReactNode;
|
|
81
|
+
};
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import { jsxs as p, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import { getPillStyles as
|
|
2
|
+
import u from "clsx";
|
|
3
|
+
import { getPillStyles as a } from "./pillVariants.js";
|
|
4
4
|
import l from "./Pill.module.scss.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
color: o = "light",
|
|
8
|
-
status: s = "turquoise",
|
|
9
|
-
icon: t = null
|
|
10
|
-
}) => {
|
|
11
|
-
const { backgroundColor: i, borderColor: n, color: c } = u(o, s), m = o === "outline";
|
|
5
|
+
function C({ label: e = "Completed", color: o = "light", status: i = "turquoise", icon: t = null }) {
|
|
6
|
+
const { backgroundColor: s, borderColor: n, color: c } = a(o, i), m = o === "outline";
|
|
12
7
|
return /* @__PURE__ */ p(
|
|
13
8
|
"div",
|
|
14
9
|
{
|
|
15
|
-
className:
|
|
10
|
+
className: u(l.pill, m && l.pillOutline),
|
|
16
11
|
style: {
|
|
17
|
-
backgroundColor:
|
|
12
|
+
backgroundColor: s,
|
|
18
13
|
borderColor: n,
|
|
19
14
|
color: c
|
|
20
15
|
},
|
|
@@ -24,7 +19,7 @@ const C = ({
|
|
|
24
19
|
]
|
|
25
20
|
}
|
|
26
21
|
);
|
|
27
|
-
}
|
|
22
|
+
}
|
|
28
23
|
export {
|
|
29
24
|
C as Pill
|
|
30
25
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {'light'|'dark'|'outline'} color
|
|
3
|
+
* @param {'turquoise'|'purple'|'green'|'red'|'yellow'|'orange'|'greenyellow'|'neutral'} status
|
|
4
|
+
* @returns {{ backgroundColor: string; borderColor: string; color: string }}
|
|
5
|
+
*/
|
|
6
|
+
export function getPillStyles(color: "light" | "dark" | "outline", status: "turquoise" | "purple" | "green" | "red" | "yellow" | "orange" | "greenyellow" | "neutral"): {
|
|
7
|
+
backgroundColor: string;
|
|
8
|
+
borderColor: string;
|
|
9
|
+
color: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Maps (color, status) props to CSS variable names for the Pill component.
|
|
13
|
+
* Matches Figma design: color=light|dark|outline, status=turquoise|purple|green|red|yellow|orange|greenyellow|neutral
|
|
14
|
+
*/
|
|
15
|
+
export const STATUSES: string[];
|
|
16
|
+
export const COLORS: string[];
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {object} ProgressBarProps
|
|
3
|
+
*
|
|
4
|
+
* @property {number} [value=0]
|
|
5
|
+
* Progress value (0–100) or numerator when `maxValue` is set. Default `0`.
|
|
6
|
+
* @property {number|null} [maxValue=null]
|
|
7
|
+
* Denominator; converts `value` to a percentage. Default `null`.
|
|
8
|
+
* @property {string|number|null} [label=null]
|
|
9
|
+
* Caption below the bar. Numbers render as `"N%"`. Default `null`.
|
|
10
|
+
* @property {string|null} [fillColor=null]
|
|
11
|
+
* CSS colour for the fill. Default `null` (primary token).
|
|
12
|
+
* @property {string} [trackClassName]
|
|
13
|
+
* Extra class on the track element.
|
|
14
|
+
* @property {string} [fillClassName]
|
|
15
|
+
* Extra class on the fill element.
|
|
16
|
+
* @property {string} [labelClassName]
|
|
17
|
+
* Extra class on the label element.
|
|
18
|
+
* @property {boolean} [displayPercentageText=false]
|
|
19
|
+
* Show percentage beside the bar. Default `false`.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Horizontal progress bar with optional label and inline percentage.
|
|
23
|
+
*
|
|
24
|
+
* ## Props
|
|
25
|
+
*
|
|
26
|
+
* **value** `number` — default `0`
|
|
27
|
+
* Progress value (0–100) or numerator when `maxValue` is set.
|
|
28
|
+
*
|
|
29
|
+
* **maxValue** `number | null` — default `null`
|
|
30
|
+
* Denominator; converts `value` to a percentage.
|
|
31
|
+
*
|
|
32
|
+
* **label** `string | number | null` — default `null`
|
|
33
|
+
* Caption below the bar. Numbers render as `"N%"`.
|
|
34
|
+
*
|
|
35
|
+
* **fillColor** `string | null` — default `null`
|
|
36
|
+
* CSS colour for the fill (defaults to primary token).
|
|
37
|
+
*
|
|
38
|
+
* **trackClassName** `string` — no default
|
|
39
|
+
* Extra class on the track element.
|
|
40
|
+
*
|
|
41
|
+
* **fillClassName** `string` — no default
|
|
42
|
+
* Extra class on the fill element.
|
|
43
|
+
*
|
|
44
|
+
* **labelClassName** `string` — no default
|
|
45
|
+
* Extra class on the label element.
|
|
46
|
+
*
|
|
47
|
+
* **displayPercentageText** `boolean` — default `false`
|
|
48
|
+
* Show percentage beside the bar.
|
|
49
|
+
*
|
|
50
|
+
* @param {ProgressBarProps} props
|
|
51
|
+
* @returns {import('react').ReactElement}
|
|
52
|
+
*
|
|
53
|
+
* @example <caption>Default</caption>
|
|
54
|
+
* import { ProgressBar } from '@eyesee/ui-components';
|
|
55
|
+
*
|
|
56
|
+
* <ProgressBar value={60} label="Upload progress" displayPercentageText />
|
|
57
|
+
*
|
|
58
|
+
* @example <caption>WithMaximumValue</caption>
|
|
59
|
+
* import { ProgressBar } from '@eyesee/ui-components';
|
|
60
|
+
*
|
|
61
|
+
* <ProgressBar value={3} maxValue={5} label="3 of 5 completed" />
|
|
62
|
+
*
|
|
63
|
+
* @example <caption>CustomColor</caption>
|
|
64
|
+
* import { ProgressBar } from '@eyesee/ui-components';
|
|
65
|
+
*
|
|
66
|
+
* <ProgressBar
|
|
67
|
+
* value={80}
|
|
68
|
+
* label="Custom fill color"
|
|
69
|
+
* fillColor="var(--color--background--success--default)"
|
|
70
|
+
* />
|
|
71
|
+
*
|
|
72
|
+
* @example <caption>WithoutLabel</caption>
|
|
73
|
+
* import { ProgressBar } from '@eyesee/ui-components';
|
|
74
|
+
*
|
|
75
|
+
* <ProgressBar value={60} label={null} displayPercentageText />
|
|
76
|
+
*/
|
|
77
|
+
export function ProgressBar({ value, maxValue, label, fillColor, trackClassName, fillClassName, labelClassName, displayPercentageText, }: ProgressBarProps): import("react").ReactElement;
|
|
78
|
+
export type ProgressBarProps = {
|
|
79
|
+
/**
|
|
80
|
+
* Progress value (0–100) or numerator when `maxValue` is set. Default `0`.
|
|
81
|
+
*/
|
|
82
|
+
value?: number;
|
|
83
|
+
/**
|
|
84
|
+
* Denominator; converts `value` to a percentage. Default `null`.
|
|
85
|
+
*/
|
|
86
|
+
maxValue?: number | null;
|
|
87
|
+
/**
|
|
88
|
+
* Caption below the bar. Numbers render as `"N%"`. Default `null`.
|
|
89
|
+
*/
|
|
90
|
+
label?: string | number | null;
|
|
91
|
+
/**
|
|
92
|
+
* CSS colour for the fill. Default `null` (primary token).
|
|
93
|
+
*/
|
|
94
|
+
fillColor?: string | null;
|
|
95
|
+
/**
|
|
96
|
+
* Extra class on the track element.
|
|
97
|
+
*/
|
|
98
|
+
trackClassName?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Extra class on the fill element.
|
|
101
|
+
*/
|
|
102
|
+
fillClassName?: string;
|
|
103
|
+
/**
|
|
104
|
+
* Extra class on the label element.
|
|
105
|
+
*/
|
|
106
|
+
labelClassName?: string;
|
|
107
|
+
/**
|
|
108
|
+
* Show percentage beside the bar. Default `false`.
|
|
109
|
+
*/
|
|
110
|
+
displayPercentageText?: boolean;
|
|
111
|
+
};
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as s, Fragment as g, jsx as o } from "react/jsx-runtime";
|
|
2
2
|
import l from "clsx";
|
|
3
3
|
import e from "./ProgressBar.module.scss.js";
|
|
4
|
-
const N = (r,
|
|
4
|
+
const N = (r, n) => typeof r != "number" || Number.isNaN(r) ? 0 : typeof n == "number" ? Math.max(0, Math.min(100, Math.round(r / n * 100))) : Math.max(0, Math.min(100, r));
|
|
5
|
+
function x({
|
|
5
6
|
value: r = 0,
|
|
6
|
-
maxValue:
|
|
7
|
+
maxValue: n = null,
|
|
7
8
|
label: t = null,
|
|
8
|
-
fillColor:
|
|
9
|
+
fillColor: a = null,
|
|
9
10
|
trackClassName: m,
|
|
10
11
|
fillClassName: c,
|
|
11
12
|
labelClassName: p,
|
|
12
|
-
displayPercentageText:
|
|
13
|
-
})
|
|
14
|
-
const
|
|
15
|
-
return /* @__PURE__ */
|
|
16
|
-
/* @__PURE__ */
|
|
13
|
+
displayPercentageText: f = !1
|
|
14
|
+
}) {
|
|
15
|
+
const i = N(r, n), d = typeof n == "number" && r < n, u = t !== null, h = typeof t == "number" ? `${t}%` : t;
|
|
16
|
+
return /* @__PURE__ */ s(g, { children: [
|
|
17
|
+
/* @__PURE__ */ s("div", { className: e.progressContainer, children: [
|
|
17
18
|
/* @__PURE__ */ o(
|
|
18
19
|
"div",
|
|
19
20
|
{
|
|
20
21
|
className: l(e.track, m),
|
|
21
22
|
style: {
|
|
22
|
-
"--progress-value": `${
|
|
23
|
-
"--progress-fill-color":
|
|
23
|
+
"--progress-value": `${i}%`,
|
|
24
|
+
"--progress-fill-color": a || "var(--color--background--primary--default)"
|
|
24
25
|
},
|
|
25
26
|
children: /* @__PURE__ */ o(
|
|
26
27
|
"div",
|
|
@@ -28,21 +29,21 @@ const N = (r, s) => typeof r != "number" || Number.isNaN(r) ? 0 : typeof s == "n
|
|
|
28
29
|
className: l(
|
|
29
30
|
e.fill,
|
|
30
31
|
e.fillCompleted,
|
|
31
|
-
|
|
32
|
+
d && e.fillCompletedIndeterminate,
|
|
32
33
|
c
|
|
33
34
|
)
|
|
34
35
|
}
|
|
35
36
|
)
|
|
36
37
|
}
|
|
37
38
|
),
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
f && /* @__PURE__ */ s("span", { className: e.progressPercentageText, children: [
|
|
40
|
+
i,
|
|
40
41
|
"%"
|
|
41
42
|
] })
|
|
42
43
|
] }),
|
|
43
|
-
|
|
44
|
+
u ? /* @__PURE__ */ o("p", { className: l(e.label, p), children: h }) : null
|
|
44
45
|
] });
|
|
45
|
-
}
|
|
46
|
+
}
|
|
46
47
|
export {
|
|
47
48
|
x as ProgressBar
|
|
48
49
|
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {object} RadioProps
|
|
3
|
+
*
|
|
4
|
+
* @property {'lg'|'md'} [size='lg']
|
|
5
|
+
* Visual size: 20px (`lg`) or 16px (`md`). Default `'lg'`.
|
|
6
|
+
* @property {string} [label]
|
|
7
|
+
* Optional label after the control.
|
|
8
|
+
* @property {string} [className]
|
|
9
|
+
* Extra class on the root `<label>`.
|
|
10
|
+
*
|
|
11
|
+
* Native `<input type="radio">` props (`checked`, `disabled`, `name`, `value`, `onChange`, …)
|
|
12
|
+
* are spread onto the input. Rest props go to the native `<input type="radio">`.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Design-system radio indicator.
|
|
16
|
+
*
|
|
17
|
+
* ## Props
|
|
18
|
+
*
|
|
19
|
+
* **size** `'lg' | 'md'` — default `'lg'`
|
|
20
|
+
* Visual size: 20px (`lg`) or 16px (`md`).
|
|
21
|
+
*
|
|
22
|
+
* **label** `string` — no default
|
|
23
|
+
* Optional label after the control.
|
|
24
|
+
*
|
|
25
|
+
* **className** `string` — no default
|
|
26
|
+
* Extra class on the root `<label>`.
|
|
27
|
+
*
|
|
28
|
+
* Native `<input type="radio">` props (`checked`, `disabled`, `name`, `value`, `onChange`, …)
|
|
29
|
+
* are spread onto the input. Rest props go to the native `<input type="radio">`.
|
|
30
|
+
*
|
|
31
|
+
* @param {RadioProps & import('react').InputHTMLAttributes<HTMLInputElement>} props
|
|
32
|
+
* @returns {import('react').ReactElement}
|
|
33
|
+
*
|
|
34
|
+
* @example <caption>Grid (Figma-like)</caption>
|
|
35
|
+
* import { Radio } from '@eyesee/ui-components';
|
|
36
|
+
*
|
|
37
|
+
* <Radio size="md" name="group" value="a" />
|
|
38
|
+
* <Radio size="md" name="group" value="b" checked readOnly />
|
|
39
|
+
* <Radio size="md" name="group" value="c" disabled />
|
|
40
|
+
*/
|
|
41
|
+
export function Radio({ size, label, className, ...inputProps }: RadioProps & import("react").InputHTMLAttributes<HTMLInputElement>): import("react").ReactElement;
|
|
42
|
+
export type RadioProps = {
|
|
43
|
+
/**
|
|
44
|
+
* Visual size: 20px (`lg`) or 16px (`md`). Default `'lg'`.
|
|
45
|
+
*/
|
|
46
|
+
size?: "lg" | "md";
|
|
47
|
+
/**
|
|
48
|
+
* Optional label after the control.
|
|
49
|
+
*/
|
|
50
|
+
label?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Extra class on the root `<label>`.
|
|
53
|
+
*
|
|
54
|
+
* Native `<input type="radio">` props (`checked`, `disabled`, `name`, `value`, `onChange`, …)
|
|
55
|
+
* are spread onto the input. Rest props go to the native `<input type="radio">`.
|
|
56
|
+
*/
|
|
57
|
+
className?: string;
|
|
58
|
+
};
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as n, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import c from "clsx";
|
|
3
|
-
import
|
|
3
|
+
import l from "./Radio.module.scss.js";
|
|
4
4
|
import { CircleIcon as t } from "../icons-v2/CircleIcon.js";
|
|
5
5
|
const m = (
|
|
6
6
|
/** @type {const} */
|
|
7
7
|
["lg", "md"]
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/* @__PURE__ */
|
|
8
|
+
);
|
|
9
|
+
function h({ size: s = "lg", label: i, className: o, ...e }) {
|
|
10
|
+
const a = m.includes(s) ? s : "lg";
|
|
11
|
+
return /* @__PURE__ */ n("label", { className: c(l.root, o), children: [
|
|
12
|
+
/* @__PURE__ */ n("span", { className: l.control, children: [
|
|
13
|
+
/* @__PURE__ */ r("input", { className: l.input, type: "radio", ...e }),
|
|
14
|
+
/* @__PURE__ */ r("span", { className: l.indicator, "aria-hidden": !0, children: /* @__PURE__ */ r(t, { iconSize: a === "lg" ? "m" : "s" }) })
|
|
14
15
|
] }),
|
|
15
|
-
|
|
16
|
+
i ? /* @__PURE__ */ r("span", { className: l.label, children: i }) : null
|
|
16
17
|
] });
|
|
17
|
-
}
|
|
18
|
+
}
|
|
18
19
|
export {
|
|
19
|
-
|
|
20
|
+
h as Radio
|
|
20
21
|
};
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @callback TabClickHandler
|
|
3
|
+
* @returns {void}
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {object} TabProps
|
|
7
|
+
*
|
|
8
|
+
* @property {string} [label='Tab']
|
|
9
|
+
* Tab label. Default `'Tab'`.
|
|
10
|
+
* @property {React.ReactNode} [startIcon]
|
|
11
|
+
* Icon before the label.
|
|
12
|
+
* @property {'primary'|'secondary'} [variant]
|
|
13
|
+
* Colour theme for selected / hover states.
|
|
14
|
+
* @property {'outline'|'white'|'color'} [type]
|
|
15
|
+
* Button variant background / border style.
|
|
16
|
+
* @property {'sm'|'md'|'lg'|'xl'} [spacing]
|
|
17
|
+
* Padding size.
|
|
18
|
+
* @property {'standalone'|'left'|'middle'|'right'} [position]
|
|
19
|
+
* Segmented button position (`as="button"` only).
|
|
20
|
+
* @property {boolean} [underline=false]
|
|
21
|
+
* Bottom border when selected (`as="span"`). Default `false`.
|
|
22
|
+
* @property {boolean} [selected=false]
|
|
23
|
+
* Selected look. Default `false`.
|
|
24
|
+
* @property {boolean} [disabled=false]
|
|
25
|
+
* Disabled state. Default `false`.
|
|
26
|
+
* @property {TabClickHandler} [onClick]
|
|
27
|
+
* Click handler. Default `() => {}`.
|
|
28
|
+
* @property {'button'|'span'} [as='button']
|
|
29
|
+
* Root element; use `span` inside links. Default `'button'`.
|
|
30
|
+
* @property {React.ReactNode} [tooltipText=null]
|
|
31
|
+
* Wraps label in {@link Tooltip} when set. Default `null`.
|
|
32
|
+
* @property {string|null} [tooltipTitle=null]
|
|
33
|
+
* {@link Tooltip} title. Default `null`.
|
|
34
|
+
* @property {boolean} [shouldRemoveBorder=false]
|
|
35
|
+
* Remove left border on adjacent segments. Default `false`.
|
|
36
|
+
*
|
|
37
|
+
* @see {@link Tooltip}
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* Single tab. Text-style (`as="span"`) or segmented button (`as="button"`).
|
|
41
|
+
*
|
|
42
|
+
* ## Props
|
|
43
|
+
*
|
|
44
|
+
* **label** `string` — default `'Tab'`
|
|
45
|
+
* Tab label.
|
|
46
|
+
*
|
|
47
|
+
* **startIcon** `ReactNode` — no default
|
|
48
|
+
* Icon before the label.
|
|
49
|
+
*
|
|
50
|
+
* **variant** `'primary' | 'secondary'` — no default
|
|
51
|
+
* Colour theme for selected / hover states.
|
|
52
|
+
*
|
|
53
|
+
* **type** `'outline' | 'white' | 'color'` — no default
|
|
54
|
+
* Button variant background / border style.
|
|
55
|
+
*
|
|
56
|
+
* **spacing** `'sm' | 'md' | 'lg' | 'xl'` — no default
|
|
57
|
+
* Padding size.
|
|
58
|
+
*
|
|
59
|
+
* **position** `'standalone' | 'left' | 'middle' | 'right'` — no default
|
|
60
|
+
* Segmented button position (`as="button"` only).
|
|
61
|
+
*
|
|
62
|
+
* **underline** `boolean` — default `false`
|
|
63
|
+
* Bottom border when selected (`as="span"`).
|
|
64
|
+
*
|
|
65
|
+
* **selected** `boolean` — default `false`
|
|
66
|
+
* Selected look.
|
|
67
|
+
*
|
|
68
|
+
* **disabled** `boolean` — default `false`
|
|
69
|
+
* Disabled state.
|
|
70
|
+
*
|
|
71
|
+
* **onClick** `() => void` — default `() => {}`
|
|
72
|
+
* Click handler.
|
|
73
|
+
*
|
|
74
|
+
* **as** `'button' | 'span'` — default `'button'`
|
|
75
|
+
* Root element; use `span` inside links.
|
|
76
|
+
*
|
|
77
|
+
* **tooltipText** `ReactNode` — default `null`
|
|
78
|
+
* Wraps label in {@link Tooltip} when set.
|
|
79
|
+
*
|
|
80
|
+
* **tooltipTitle** `string | null` — default `null`
|
|
81
|
+
* {@link Tooltip} title.
|
|
82
|
+
*
|
|
83
|
+
* **shouldRemoveBorder** `boolean` — default `false`
|
|
84
|
+
* Remove left border on adjacent segments.
|
|
85
|
+
*
|
|
86
|
+
* @param {TabProps} props
|
|
87
|
+
* @returns {import('react').ReactElement}
|
|
88
|
+
*
|
|
89
|
+
* @example <caption>Playground</caption>
|
|
90
|
+
* import { Tab } from '@eyesee/ui-components';
|
|
91
|
+
*
|
|
92
|
+
* <Tab
|
|
93
|
+
* label="Overview"
|
|
94
|
+
* as="button"
|
|
95
|
+
* variant="secondary"
|
|
96
|
+
* type="outline"
|
|
97
|
+
* spacing="md"
|
|
98
|
+
* position="standalone"
|
|
99
|
+
* />
|
|
100
|
+
*
|
|
101
|
+
* @example <caption>Text (span) + underline</caption>
|
|
102
|
+
* import { Tab } from '@eyesee/ui-components';
|
|
103
|
+
*
|
|
104
|
+
* <Tab
|
|
105
|
+
* label="Overview"
|
|
106
|
+
* as="span"
|
|
107
|
+
* underline
|
|
108
|
+
* selected
|
|
109
|
+
* spacing="md"
|
|
110
|
+
* variant="secondary"
|
|
111
|
+
* />
|
|
112
|
+
*
|
|
113
|
+
* @example <caption>Button (segmented)</caption>
|
|
114
|
+
* import { Tab } from '@eyesee/ui-components';
|
|
115
|
+
*
|
|
116
|
+
* <Tab label="All" as="button" variant="secondary" type="outline" spacing="md" position="left" />
|
|
117
|
+
* <Tab label="Drafts" as="button" variant="secondary" type="outline" spacing="md" position="middle" selected />
|
|
118
|
+
* <Tab label="Published" as="button" variant="secondary" type="outline" spacing="md" position="right" disabled />
|
|
119
|
+
*
|
|
120
|
+
* @example <caption>WithIcons</caption>
|
|
121
|
+
* import { Tab } from '@eyesee/ui-components';
|
|
122
|
+
* import { HomeIcon } from '@eyesee/ui-components/icons';
|
|
123
|
+
*
|
|
124
|
+
* <Tab label="Home" as="button" selected startIcon={<HomeIcon iconSize="m" />} />
|
|
125
|
+
*
|
|
126
|
+
* @example <caption>With tooltip</caption>
|
|
127
|
+
* import { Tab } from '@eyesee/ui-components';
|
|
128
|
+
*
|
|
129
|
+
* <Tab
|
|
130
|
+
* label="Overview"
|
|
131
|
+
* tooltipTitle="Tooltip title"
|
|
132
|
+
* tooltipText="This is a very long tooltip text that should wrap to the next line if it exceeds the container width."
|
|
133
|
+
* />
|
|
134
|
+
*
|
|
135
|
+
* @example <caption>With tooltip (disabled tab disables tooltip)</caption>
|
|
136
|
+
* import { Tab } from '@eyesee/ui-components';
|
|
137
|
+
*
|
|
138
|
+
* <Tab
|
|
139
|
+
* label="Overview"
|
|
140
|
+
* tooltipTitle="Tooltip title"
|
|
141
|
+
* tooltipText="Tooltip is disabled when the tab is disabled."
|
|
142
|
+
* disabled
|
|
143
|
+
* />
|
|
144
|
+
*/
|
|
145
|
+
export function Tab({ label, startIcon, variant, spacing, type, position, underline, disabled, selected, onClick, as: Component, tooltipText, tooltipTitle, shouldRemoveBorder, }: TabProps): import("react").ReactElement;
|
|
146
|
+
export type TabClickHandler = () => void;
|
|
147
|
+
export type TabProps = {
|
|
148
|
+
/**
|
|
149
|
+
* Tab label. Default `'Tab'`.
|
|
150
|
+
*/
|
|
151
|
+
label?: string;
|
|
152
|
+
/**
|
|
153
|
+
* Icon before the label.
|
|
154
|
+
*/
|
|
155
|
+
startIcon?: React.ReactNode;
|
|
156
|
+
/**
|
|
157
|
+
* Colour theme for selected / hover states.
|
|
158
|
+
*/
|
|
159
|
+
variant?: "primary" | "secondary";
|
|
160
|
+
/**
|
|
161
|
+
* Button variant background / border style.
|
|
162
|
+
*/
|
|
163
|
+
type?: "outline" | "white" | "color";
|
|
164
|
+
/**
|
|
165
|
+
* Padding size.
|
|
166
|
+
*/
|
|
167
|
+
spacing?: "sm" | "md" | "lg" | "xl";
|
|
168
|
+
/**
|
|
169
|
+
* Segmented button position (`as="button"` only).
|
|
170
|
+
*/
|
|
171
|
+
position?: "standalone" | "left" | "middle" | "right";
|
|
172
|
+
/**
|
|
173
|
+
* Bottom border when selected (`as="span"`). Default `false`.
|
|
174
|
+
*/
|
|
175
|
+
underline?: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Selected look. Default `false`.
|
|
178
|
+
*/
|
|
179
|
+
selected?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Disabled state. Default `false`.
|
|
182
|
+
*/
|
|
183
|
+
disabled?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* Click handler. Default `() => {}`.
|
|
186
|
+
*/
|
|
187
|
+
onClick?: TabClickHandler;
|
|
188
|
+
/**
|
|
189
|
+
* Root element; use `span` inside links. Default `'button'`.
|
|
190
|
+
*/
|
|
191
|
+
as?: "button" | "span";
|
|
192
|
+
/**
|
|
193
|
+
* Wraps label in {@link Tooltip} when set. Default `null`.
|
|
194
|
+
*/
|
|
195
|
+
tooltipText?: React.ReactNode;
|
|
196
|
+
/**
|
|
197
|
+
* {@link Tooltip} title. Default `null`.
|
|
198
|
+
*/
|
|
199
|
+
tooltipTitle?: string | null;
|
|
200
|
+
/**
|
|
201
|
+
* Remove left border on adjacent segments. Default `false`.
|
|
202
|
+
*/
|
|
203
|
+
shouldRemoveBorder?: boolean;
|
|
204
|
+
};
|
|
@@ -3,7 +3,7 @@ import v from "clsx";
|
|
|
3
3
|
import o from "./Tab.module.scss.js";
|
|
4
4
|
import { Tooltip as w } from "../Tooltip/Tooltip.js";
|
|
5
5
|
import { HelpIcon as T } from "../icons-v2/HelpIcon.js";
|
|
6
|
-
|
|
6
|
+
function I({
|
|
7
7
|
label: m = "Tab",
|
|
8
8
|
startIcon: u,
|
|
9
9
|
variant: f,
|
|
@@ -19,7 +19,7 @@ const I = ({
|
|
|
19
19
|
tooltipText: a = null,
|
|
20
20
|
tooltipTitle: b = null,
|
|
21
21
|
shouldRemoveBorder: N = !1
|
|
22
|
-
})
|
|
22
|
+
}) {
|
|
23
23
|
const c = v(
|
|
24
24
|
o.tab,
|
|
25
25
|
o[f],
|
|
@@ -47,7 +47,7 @@ const I = ({
|
|
|
47
47
|
)
|
|
48
48
|
] });
|
|
49
49
|
return l === "span" ? /* @__PURE__ */ t("span", { className: c, onClick: s, "aria-disabled": r, children: i }) : /* @__PURE__ */ t("button", { className: c, disabled: r, onClick: s, type: "button", children: i });
|
|
50
|
-
}
|
|
50
|
+
}
|
|
51
51
|
export {
|
|
52
52
|
I as Tab
|
|
53
53
|
};
|