linkedunion-design-kit 1.11.6 → 1.11.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/layout.d.ts +1 -1
- package/dist/app/{layout.js → layout.jsx} +3 -2
- package/dist/app/page.d.ts +1 -1
- package/dist/app/page.jsx +5 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/src/components/Accordion/Accordion.stories.jsx +33 -0
- package/dist/src/components/Accordion/accordion.d.ts +4 -4
- package/dist/src/components/Accordion/{accordion.js → accordion.jsx} +11 -16
- package/dist/src/components/Alerts/Alert/alert.d.ts +7 -7
- package/dist/src/components/Alerts/Alert/{alert.js → alert.jsx} +21 -25
- package/dist/src/components/Alerts/Alert/alert.stories.d.ts +8 -8
- package/dist/src/components/Alerts/Alert/alert.stories.jsx +344 -0
- package/dist/src/components/Alerts/AlertDialog/alert-dialog.d.ts +11 -11
- package/dist/src/components/Alerts/AlertDialog/{alert-dialog.js → alert-dialog.jsx} +26 -24
- package/dist/src/components/Alerts/AlertDialog/alert-dialog.stories.d.ts +10 -10
- package/dist/src/components/Alerts/AlertDialog/alert-dialog.stories.jsx +552 -0
- package/dist/src/components/AppIcons/AndroidIcon.jsx +24 -0
- package/dist/src/components/AppIcons/{AppIcon.js → AppIcon.jsx} +4 -15
- package/dist/src/components/AppIcons/AppleIcon.jsx +31 -0
- package/dist/src/components/AppIcons/PlayStoreIcon.jsx +29 -0
- package/dist/src/components/Avatar/Avatar/{Avatar.js → Avatar.jsx} +13 -18
- package/dist/src/components/Avatar/Avatar/Avatar.stories.d.ts +7 -7
- package/dist/src/components/Avatar/Avatar/Avatar.stories.jsx +95 -0
- package/dist/src/components/Avatar/Avatar/{Avatar.test.js → Avatar.test.jsx} +1 -2
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.d.ts +1 -1
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.jsx +17 -0
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.stories.jsx +32 -0
- package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.jsx +20 -0
- package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.stories.d.ts +2 -2
- package/dist/src/components/Avatar/StatusIndicator/{StatusIndicator.stories.js → StatusIndicator.stories.jsx} +12 -3
- package/dist/src/components/Badge/Badge.d.ts +1 -1
- package/dist/src/components/Badge/{Badge.js → Badge.jsx} +8 -13
- package/dist/src/components/Badge/Badge.stories.d.ts +10 -10
- package/dist/src/components/Badge/Badge.stories.jsx +201 -0
- package/dist/src/components/Button/Button/Button.d.ts +3 -2
- package/dist/src/components/Button/Button/{Button.js → Button.jsx} +24 -8
- package/dist/src/components/Button/Button/Button.stories.d.ts +5 -3
- package/dist/src/components/Button/Button/{Button.stories.js → Button.stories.jsx} +1 -13
- package/dist/src/components/Button/Button/Button.test.jsx +73 -0
- package/dist/src/components/Button/IconButton/IconButton.d.ts +1 -1
- package/dist/src/components/Button/IconButton/{IconButton.js → IconButton.jsx} +4 -13
- package/dist/src/components/Button/IconButton/IconButton.stories.d.ts +1 -1
- package/dist/src/components/Button/IconButton/{IconButton.stories.js → IconButton.stories.jsx} +1 -13
- package/dist/src/components/Button/IconButton/{IconButton.test.js → IconButton.test.jsx} +5 -6
- package/dist/src/components/Button/index.d.ts +1 -0
- package/dist/src/components/Button/index.js +3 -2
- package/dist/src/components/Card/MultipleNews/MultiNews.d.ts +1 -1
- package/dist/src/components/Card/MultipleNews/MultiNews.jsx +71 -0
- package/dist/src/components/Card/MultipleNews/{MultiNews.stories.js → MultiNews.stories.jsx} +1 -2
- package/dist/src/components/Card/PostByCategory/PostByCategory.d.ts +1 -1
- package/dist/src/components/Card/PostByCategory/PostByCategory.jsx +57 -0
- package/dist/src/components/Card/PostByCategory/{PostByCategory.stories.js → PostByCategory.stories.jsx} +1 -2
- package/dist/src/components/Card/SinglePost/SinglePost.d.ts +1 -1
- package/dist/src/components/Card/SinglePost/SinglePost.jsx +26 -0
- package/dist/src/components/Card/card.d.ts +2 -1
- package/dist/src/components/Card/{card.js → card.jsx} +2 -13
- package/dist/src/components/Card/contactProfile/ContactProfile.d.ts +1 -1
- package/dist/src/components/Card/contactProfile/ContactProfile.jsx +76 -0
- package/dist/src/components/Card/contactProfile/{ContactProfile.stories.js → ContactProfile.stories.jsx} +1 -2
- package/dist/src/components/Card/photoAlbum/PhotoAlbum.d.ts +1 -1
- package/dist/src/components/Card/photoAlbum/PhotoAlbum.jsx +41 -0
- package/dist/src/components/Card/photoAlbum/{PhotoAlbum.stories.js → PhotoAlbum.stories.jsx} +1 -13
- package/dist/src/components/Card/photoGallery/PhotoGallery.d.ts +1 -1
- package/dist/src/components/Card/photoGallery/PhotoGallery.jsx +17 -0
- package/dist/src/components/Card/photoGallery/{PhotoGallery.stories.js → PhotoGallery.stories.jsx} +1 -13
- package/dist/src/components/Checkbox/checkbox.d.ts +1 -1
- package/dist/src/components/Checkbox/{checkbox.js → checkbox.jsx} +6 -13
- package/dist/src/components/Checkbox/checkbox.stories.jsx +113 -0
- package/dist/src/components/ColorPicker/ColorPicker.d.ts +1 -1
- package/dist/src/components/ColorPicker/{ColorPicker.js → ColorPicker.jsx} +6 -13
- package/dist/src/components/ColorPicker/ColorPicker.stories.d.ts +5 -5
- package/dist/src/components/ColorPicker/ColorPicker.stories.jsx +138 -0
- package/dist/src/components/Colors/color.d.ts +1 -1
- package/dist/src/components/Colors/{color.js → color.jsx} +1 -2
- package/dist/src/components/Colors/color.stories.jsx +20 -0
- package/dist/src/components/Colors/{color.test.js → color.test.jsx} +3 -4
- package/dist/src/components/DatePicker/DatePicker.d.ts +1 -1
- package/dist/src/components/DatePicker/DatePicker.jsx +67 -0
- package/dist/src/components/DatePicker/DatePicker.stories.d.ts +9 -9
- package/dist/src/components/DatePicker/DatePicker.stories.jsx +291 -0
- package/dist/src/components/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/dist/src/components/DateRangePicker/{DateRangePicker.js → DateRangePicker.jsx} +92 -44
- package/dist/src/components/DateRangePicker/DateRangePicker.stories.d.ts +19 -19
- package/dist/src/components/DateRangePicker/DateRangePicker.stories.jsx +582 -0
- package/dist/src/components/Dropdown/Combobox/Combobox.d.ts +1 -1
- package/dist/src/components/Dropdown/Combobox/{Combobox.js → Combobox.jsx} +67 -29
- package/dist/src/components/Dropdown/Combobox/Combobox.stories.d.ts +8 -8
- package/dist/src/components/Dropdown/Combobox/Combobox.stories.jsx +289 -0
- package/dist/src/components/Dropdown/Combobox/dialog.d.ts +10 -10
- package/dist/src/components/Dropdown/Combobox/dialog.jsx +66 -0
- package/dist/src/components/Dropdown/Combobox/utils/renderBadge.jsx +7 -0
- package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.d.ts +7 -3
- package/dist/src/components/Dropdown/DropdownMenu/{DropdownMenu.js → DropdownMenu.jsx} +29 -22
- package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.stories.d.ts +19 -12
- package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.stories.jsx +552 -0
- package/dist/src/components/Dropdown/DropdownMenu/SelectAllSection.jsx +19 -0
- package/dist/src/components/Dropdown/DropdownMenu/index.d.ts +5 -0
- package/dist/src/components/Dropdown/DropdownMenu/index.js +5 -0
- package/dist/src/components/Dropdown/Select.stories.d.ts +7 -6
- package/dist/src/components/Dropdown/{Select.stories.js → Select.stories.jsx} +71 -8
- package/dist/src/components/Dropdown/select.d.ts +10 -10
- package/dist/src/components/Dropdown/select.jsx +94 -0
- package/dist/src/components/Icons/LUIcon.d.ts +1 -1
- package/dist/src/components/Icons/{LUIcon.js → LUIcon.jsx} +10 -13
- package/dist/src/components/Icons/stories/IconDropdown.jsx +67 -0
- package/dist/src/components/Icons/stories/IconGallery.jsx +77 -0
- package/dist/src/components/Icons/stories/InteractiveIconSelector.jsx +86 -0
- package/dist/src/components/Icons/stories/LUIcon.stories.d.ts +5 -5
- package/dist/src/components/Icons/stories/{LUIcon.stories.js → LUIcon.stories.jsx} +23 -8
- package/dist/src/components/ImageUploader/imageUploader.d.ts +1 -1
- package/dist/src/components/ImageUploader/{imageUploader.js → imageUploader.jsx} +28 -13
- package/dist/src/components/Images/LuImage.d.ts +1 -1
- package/dist/src/components/Images/{LuImage.js → LuImage.jsx} +1 -13
- package/dist/src/components/Images/{LuImage.stories.js → LuImage.stories.jsx} +1 -13
- package/dist/src/components/Images/{LuImage.test.js → LuImage.test.jsx} +6 -18
- package/dist/src/components/Input/Input.stories.d.ts +9 -8
- package/dist/src/components/Input/Input.stories.jsx +250 -0
- package/dist/src/components/Input/input.d.ts +1 -1
- package/dist/src/components/Input/{input.js → input.jsx} +10 -13
- package/dist/src/components/Label/Label.d.ts +1 -1
- package/dist/src/components/Label/{Label.js → Label.jsx} +2 -13
- package/dist/src/components/Label/{Label.stories.js → Label.stories.jsx} +1 -13
- package/dist/src/components/Modal/Modal.d.ts +3 -3
- package/dist/src/components/Modal/{Modal.js → Modal.jsx} +20 -19
- package/dist/src/components/Modal/Modal.stories.d.ts +15 -15
- package/dist/src/components/Modal/Modal.stories.jsx +487 -0
- package/dist/src/components/Pagination/pagination.d.ts +5 -5
- package/dist/src/components/Pagination/{pagination.js → pagination.jsx} +18 -21
- package/dist/src/components/Pagination/pagination.stories.d.ts +6 -6
- package/dist/src/components/Pagination/pagination.stories.jsx +301 -0
- package/dist/src/components/RadioGroup/{RadioGroup.stories.js → RadioGroup.stories.jsx} +52 -22
- package/dist/src/components/RadioGroup/radio-group.d.ts +1 -1
- package/dist/src/components/RadioGroup/{radio-group.js → radio-group.jsx} +6 -14
- package/dist/src/components/Separator/Separator.stories.d.ts +15 -0
- package/dist/src/components/Separator/Separator.stories.jsx +94 -0
- package/dist/src/components/Separator/index.d.ts +1 -0
- package/dist/src/components/Separator/index.js +1 -0
- package/dist/src/components/Separator/separator.d.ts +4 -0
- package/dist/src/components/Separator/separator.jsx +20 -0
- package/dist/src/components/Sheet/index.d.ts +1 -0
- package/dist/src/components/Sheet/index.js +1 -0
- package/dist/src/components/Sheet/sheet.d.ts +25 -0
- package/dist/src/components/Sheet/sheet.jsx +73 -0
- package/dist/src/components/Sheet/sheet.stories.d.ts +4 -0
- package/dist/src/components/Sheet/sheet.stories.jsx +34 -0
- package/dist/src/components/Skeleton/skeleton.d.ts +14 -14
- package/dist/src/components/Skeleton/{skeleton.js → skeleton.jsx} +23 -27
- package/dist/src/components/Skeleton/skeleton.stories.d.ts +14 -14
- package/dist/src/components/Skeleton/skeleton.stories.jsx +734 -0
- package/dist/src/components/Slider/slider.d.ts +1 -1
- package/dist/src/components/Slider/slider.jsx +31 -0
- package/dist/src/components/SweetAlert/SweetAlert.d.ts +9 -9
- package/dist/src/components/SweetAlert/{SweetAlert.js → SweetAlert.jsx} +18 -21
- package/dist/src/components/SweetAlert/SweetAlert.stories.d.ts +7 -7
- package/dist/src/components/SweetAlert/{SweetAlert.stories.js → SweetAlert.stories.jsx} +215 -15
- package/dist/src/components/Switch/{Switch.stories.js → Switch.stories.jsx} +1 -13
- package/dist/src/components/Switch/switch.d.ts +1 -1
- package/dist/src/components/Switch/{switch.js → switch.jsx} +4 -13
- package/dist/src/components/Table/{Table.js → Table.jsx} +111 -58
- package/dist/src/components/Table/Table.stories.d.ts +13 -13
- package/dist/src/components/Table/{Table.stories.js → Table.stories.jsx} +299 -45
- package/dist/src/components/Table/{Table.test.js → Table.test.jsx} +39 -7
- package/dist/src/components/Tabs/{Tabs.stories.js → Tabs.stories.jsx} +10 -3
- package/dist/src/components/Tabs/tabs.d.ts +4 -4
- package/dist/src/components/Tabs/tabs.jsx +32 -0
- package/dist/src/components/TimePicker/TimePicker.d.ts +1 -1
- package/dist/src/components/TimePicker/{TimePicker.js → TimePicker.jsx} +54 -30
- package/dist/src/components/TimePicker/TimePicker.stories.d.ts +10 -10
- package/dist/src/components/TimePicker/TimePicker.stories.jsx +298 -0
- package/dist/src/components/Title/Title.d.ts +1 -1
- package/dist/src/components/Title/{Title.js → Title.jsx} +2 -2
- package/dist/src/components/Title/{Title.stories.js → Title.stories.jsx} +1 -13
- package/dist/src/components/Title/{Title.test.js → Title.test.jsx} +4 -5
- package/dist/src/components/ToolTip/Tooltip.d.ts +1 -1
- package/dist/src/components/ToolTip/Tooltip.jsx +18 -0
- package/dist/src/components/ToolTip/{Tooltip.stories.js → Tooltip.stories.jsx} +2 -14
- package/dist/src/components/Typography/Body/{Body.stories.js → Body.stories.jsx} +1 -13
- package/dist/src/components/Typography/Body/body.d.ts +1 -1
- package/dist/src/components/Typography/Body/{body.js → body.jsx} +4 -13
- package/dist/src/components/Typography/Caption/{Caption.stories.js → Caption.stories.jsx} +1 -13
- package/dist/src/components/Typography/Caption/caption.d.ts +1 -1
- package/dist/src/components/Typography/Caption/{caption.js → caption.jsx} +4 -13
- package/dist/src/components/Typography/Display/{Display.stories.js → Display.stories.jsx} +1 -13
- package/dist/src/components/Typography/Display/display.d.ts +1 -1
- package/dist/src/components/Typography/Display/{display.js → display.jsx} +4 -13
- package/dist/src/components/Typography/Heading/Heading.stories.d.ts +6 -6
- package/dist/src/components/Typography/Heading/Heading.stories.jsx +85 -0
- package/dist/src/components/Typography/Heading/{heading.js → heading.jsx} +5 -14
- package/dist/src/components/VerticalTabs/{VerticalTabs.js → VerticalTabs.jsx} +9 -17
- package/dist/src/components/VerticalTabs/VerticalTabs.stories.jsx +154 -0
- package/dist/src/components/VerticalTabs/VerticalTabs.test.jsx +97 -0
- package/dist/src/components/ui/calendar.d.ts +2 -2
- package/dist/src/components/ui/{calendar.js → calendar.jsx} +36 -22
- package/dist/src/components/ui/command.d.ts +9 -9
- package/dist/src/components/ui/command.jsx +67 -0
- package/dist/src/components/ui/popover.d.ts +4 -4
- package/dist/src/components/ui/popover.jsx +33 -0
- package/dist/src/components/ui/tooltip.d.ts +4 -4
- package/dist/src/components/ui/tooltip.jsx +38 -0
- package/dist/src/components/ui/typography.d.ts +1 -1
- package/dist/src/components/ui/{typography.js → typography.jsx} +4 -13
- package/dist/styles/global.css +107 -5
- package/package.json +4 -3
- package/dist/app/page.js +0 -4
- package/dist/src/components/Accordion/Accordion.stories.js +0 -32
- package/dist/src/components/Alerts/Alert/alert.stories.js +0 -166
- package/dist/src/components/Alerts/AlertDialog/alert-dialog.stories.js +0 -213
- package/dist/src/components/AppIcons/AndroidIcon.js +0 -28
- package/dist/src/components/AppIcons/AppleIcon.js +0 -28
- package/dist/src/components/AppIcons/PlayStoreIcon.js +0 -28
- package/dist/src/components/Avatar/Avatar/Avatar.stories.js +0 -69
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.js +0 -8
- package/dist/src/components/Avatar/AvatarGroup/AvatarGroup.stories.js +0 -14
- package/dist/src/components/Avatar/StatusIndicator/StatusIndicator.js +0 -18
- package/dist/src/components/Badge/Badge.stories.js +0 -145
- package/dist/src/components/Button/Button/Button.test.js +0 -10
- package/dist/src/components/Card/MultipleNews/MultiNews.js +0 -46
- package/dist/src/components/Card/PostByCategory/PostByCategory.js +0 -37
- package/dist/src/components/Card/SinglePost/SinglePost.js +0 -10
- package/dist/src/components/Card/contactProfile/ContactProfile.js +0 -39
- package/dist/src/components/Card/photoAlbum/PhotoAlbum.js +0 -16
- package/dist/src/components/Card/photoGallery/PhotoGallery.js +0 -8
- package/dist/src/components/Checkbox/checkbox.stories.js +0 -78
- package/dist/src/components/ColorPicker/ColorPicker.stories.js +0 -77
- package/dist/src/components/Colors/color.stories.js +0 -32
- package/dist/src/components/DatePicker/DatePicker.js +0 -64
- package/dist/src/components/DatePicker/DatePicker.stories.js +0 -171
- package/dist/src/components/DateRangePicker/DateRangePicker.stories.js +0 -318
- package/dist/src/components/Dropdown/Combobox/Combobox.stories.js +0 -225
- package/dist/src/components/Dropdown/Combobox/dialog.js +0 -68
- package/dist/src/components/Dropdown/Combobox/utils/renderBadge.js +0 -5
- package/dist/src/components/Dropdown/DropdownMenu/DropdownMenu.stories.js +0 -253
- package/dist/src/components/Dropdown/DropdownMenu/SelectAllSection.js +0 -9
- package/dist/src/components/Dropdown/select.js +0 -87
- package/dist/src/components/Icons/stories/IconDropdown.js +0 -38
- package/dist/src/components/Icons/stories/IconGallery.js +0 -31
- package/dist/src/components/Icons/stories/InteractiveIconSelector.js +0 -26
- package/dist/src/components/Input/Input.stories.js +0 -133
- package/dist/src/components/Modal/Modal.stories.js +0 -115
- package/dist/src/components/Pagination/pagination.stories.js +0 -168
- package/dist/src/components/Skeleton/skeleton.stories.js +0 -414
- package/dist/src/components/Slider/slider.js +0 -38
- package/dist/src/components/Tabs/tabs.js +0 -43
- package/dist/src/components/TimePicker/TimePicker.stories.js +0 -176
- package/dist/src/components/ToolTip/Tooltip.js +0 -8
- package/dist/src/components/Typography/Heading/Heading.stories.js +0 -67
- package/dist/src/components/VerticalTabs/VerticalTabs.stories.js +0 -100
- package/dist/src/components/VerticalTabs/VerticalTabs.test.js +0 -48
- package/dist/src/components/ui/command.js +0 -65
- package/dist/src/components/ui/popover.js +0 -42
- package/dist/src/components/ui/tooltip.js +0 -42
- /package/dist/src/components/AppIcons/{AppIcon.stories.js → AppIcon.stories.jsx} +0 -0
- /package/dist/src/components/Card/SinglePost/{SinglePost.stories.js → SinglePost.stories.jsx} +0 -0
- /package/dist/src/components/Icons/{LUIcon.test.js → LUIcon.test.jsx} +0 -0
- /package/dist/src/components/ImageUploader/{ImageUploader.stories.js → ImageUploader.stories.jsx} +0 -0
- /package/dist/src/components/Slider/{Slider.stories.js → Slider.stories.jsx} +0 -0
- /package/dist/src/components/ui/{collapsible.js → collapsible.jsx} +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
1
|
import { Select, SelectTrigger, SelectContent, SelectItem, SelectGroup, SelectLabel, SelectSeparator, SelectValue, } from "./select";
|
|
3
2
|
import { selectColor, selectShape, selectSize, selectType, } from ".";
|
|
4
3
|
import LUIcon from "../Icons/LUIcon";
|
|
@@ -89,7 +88,14 @@ var meta = {
|
|
|
89
88
|
},
|
|
90
89
|
};
|
|
91
90
|
export default meta;
|
|
92
|
-
export var Default = function (args) { return (
|
|
91
|
+
export var Default = function (args) { return (<Select disabled={args.disabled} onValueChange={args.onValueChange}>
|
|
92
|
+
<SelectTrigger size={args.size} shape={args.shape} variant={args.variant} color={args.color} disabled={args.disabled}>
|
|
93
|
+
<SelectValue placeholder={args.placeholder}/>
|
|
94
|
+
</SelectTrigger>
|
|
95
|
+
<SelectContent>
|
|
96
|
+
<SelectItem value="one">One</SelectItem>
|
|
97
|
+
</SelectContent>
|
|
98
|
+
</Select>); };
|
|
93
99
|
export var Group = function () {
|
|
94
100
|
var groupedOptions = [
|
|
95
101
|
{
|
|
@@ -108,9 +114,25 @@ export var Group = function () {
|
|
|
108
114
|
],
|
|
109
115
|
},
|
|
110
116
|
];
|
|
111
|
-
return (
|
|
117
|
+
return (<Select onValueChange={function (value) {
|
|
112
118
|
console.log("Select value changed:", value);
|
|
113
|
-
}
|
|
119
|
+
}} defaultValue={"apple"}>
|
|
120
|
+
<SelectTrigger color="default" size="md" shape="rectangular" variant="fill" disabled={false}>
|
|
121
|
+
<SelectValue placeholder="Select Option"/>
|
|
122
|
+
</SelectTrigger>
|
|
123
|
+
<SelectContent>
|
|
124
|
+
<SelectGroup>
|
|
125
|
+
{groupedOptions.map(function (group, idx) { return (<React.Fragment key={group.label}>
|
|
126
|
+
<SelectLabel>{group.label}</SelectLabel>
|
|
127
|
+
{group.items.map(function (item) { return (<SelectItem value={item.value} key={item.value}>
|
|
128
|
+
{item.icon && (<LUIcon icon={item.icon} size="sm"/>)}
|
|
129
|
+
{item.label}
|
|
130
|
+
</SelectItem>); })}
|
|
131
|
+
{idx < groupedOptions.length - 1 && <SelectSeparator />}
|
|
132
|
+
</React.Fragment>); })}
|
|
133
|
+
</SelectGroup>
|
|
134
|
+
</SelectContent>
|
|
135
|
+
</Select>);
|
|
114
136
|
};
|
|
115
137
|
export var KeyValue = function () {
|
|
116
138
|
var backendOptions = [
|
|
@@ -120,7 +142,17 @@ export var KeyValue = function () {
|
|
|
120
142
|
{ key: "uk", label: "United Kingdom", icon: "check" },
|
|
121
143
|
{ key: "fr", label: "France", icon: "star" },
|
|
122
144
|
];
|
|
123
|
-
return (
|
|
145
|
+
return (<Select disabled={false}>
|
|
146
|
+
<SelectTrigger size="md" shape="rectangular" variant="fill" color="default" disabled={false}>
|
|
147
|
+
<SelectValue placeholder={"Select a country"}/>
|
|
148
|
+
</SelectTrigger>
|
|
149
|
+
<SelectContent>
|
|
150
|
+
{backendOptions.map(function (option) { return (<SelectItem key={option.key} value={option.key}>
|
|
151
|
+
{option.icon && (<LUIcon icon={option.icon} size="sm" className="mr-2"/>)}
|
|
152
|
+
{option.label}
|
|
153
|
+
</SelectItem>); })}
|
|
154
|
+
</SelectContent>
|
|
155
|
+
</Select>);
|
|
124
156
|
};
|
|
125
157
|
KeyValue.story = {
|
|
126
158
|
parameters: {
|
|
@@ -131,8 +163,39 @@ KeyValue.story = {
|
|
|
131
163
|
},
|
|
132
164
|
},
|
|
133
165
|
};
|
|
134
|
-
export var Disabled = function (args) { return (
|
|
166
|
+
export var Disabled = function (args) { return (<Select disabled={args.disabled} onValueChange={args.onValueChange}>
|
|
167
|
+
<SelectTrigger disabled={args.disabled || true} shape={args.shape} variant={args.variant} color={args.color}>
|
|
168
|
+
<SelectValue placeholder={args.placeholder || "Disabled select"}/>
|
|
169
|
+
</SelectTrigger>
|
|
170
|
+
<SelectContent>
|
|
171
|
+
<SelectItem value="a">A</SelectItem>
|
|
172
|
+
<SelectItem value="b">B</SelectItem>
|
|
173
|
+
</SelectContent>
|
|
174
|
+
</Select>); };
|
|
135
175
|
// Story: Large Dropdown with many items
|
|
136
|
-
export var LargeDropdown = function () { return (
|
|
176
|
+
export var LargeDropdown = function () { return (<Select disabled={false}>
|
|
177
|
+
<SelectTrigger size="lg" disabled={false}>
|
|
178
|
+
<SelectValue placeholder="Select a country"/>
|
|
179
|
+
</SelectTrigger>
|
|
180
|
+
<SelectContent>
|
|
181
|
+
<SelectGroup>
|
|
182
|
+
<SelectLabel>Options</SelectLabel>
|
|
183
|
+
{Array.from({ length: 10 }, function (_, i) { return (<SelectItem key={i} value={"option-".concat(i + 1)}>
|
|
184
|
+
Option {i + 1}
|
|
185
|
+
</SelectItem>); })}
|
|
186
|
+
</SelectGroup>
|
|
187
|
+
</SelectContent>
|
|
188
|
+
</Select>); };
|
|
137
189
|
// Story: Select with a disabled item
|
|
138
|
-
export var WithDisabledItem = function () { return (
|
|
190
|
+
export var WithDisabledItem = function () { return (<Select>
|
|
191
|
+
<SelectTrigger size="md">
|
|
192
|
+
<SelectValue placeholder="Select an option"/>
|
|
193
|
+
</SelectTrigger>
|
|
194
|
+
<SelectContent>
|
|
195
|
+
<SelectItem value="enabled-1">Enabled Option 1</SelectItem>
|
|
196
|
+
<SelectItem value="disabled-2" disabled>
|
|
197
|
+
Disabled Option
|
|
198
|
+
</SelectItem>
|
|
199
|
+
<SelectItem value="enabled-3">Enabled Option 2</SelectItem>
|
|
200
|
+
</SelectContent>
|
|
201
|
+
</Select>); };
|
|
@@ -4,9 +4,9 @@ import { SelectSize, SelectShape, SelectType, SelectColor, ItemSize } from ".";
|
|
|
4
4
|
type SelectProps = React.ComponentProps<typeof SelectPrimitive.Root> & {
|
|
5
5
|
defaultValue?: string;
|
|
6
6
|
};
|
|
7
|
-
declare function Select({ onValueChange, defaultValue, ...props }: SelectProps):
|
|
8
|
-
declare function SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>):
|
|
9
|
-
declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>):
|
|
7
|
+
declare function Select({ onValueChange, defaultValue, ...props }: SelectProps): React.JSX.Element;
|
|
8
|
+
declare function SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>): React.JSX.Element;
|
|
9
|
+
declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>): React.JSX.Element;
|
|
10
10
|
type SelectTriggerProps = React.ComponentProps<typeof SelectPrimitive.Trigger> & {
|
|
11
11
|
size?: SelectSize;
|
|
12
12
|
shape?: SelectShape;
|
|
@@ -15,24 +15,24 @@ type SelectTriggerProps = React.ComponentProps<typeof SelectPrimitive.Trigger> &
|
|
|
15
15
|
};
|
|
16
16
|
declare function SelectTrigger({ className, size, shape, variant, color, children, disabled, ...props }: SelectTriggerProps & {
|
|
17
17
|
disabled?: boolean;
|
|
18
|
-
}):
|
|
18
|
+
}): React.JSX.Element;
|
|
19
19
|
type SelectContentProps = React.ComponentProps<typeof SelectPrimitive.Content> & {
|
|
20
20
|
hidePortal?: boolean;
|
|
21
21
|
};
|
|
22
|
-
declare function SelectContent({ className, children, position, hidePortal, ...props }: SelectContentProps):
|
|
22
|
+
declare function SelectContent({ className, children, position, hidePortal, ...props }: SelectContentProps): React.JSX.Element;
|
|
23
23
|
type SelectLabelProps = React.ComponentProps<typeof SelectPrimitive.Label> & {
|
|
24
24
|
size?: ItemSize;
|
|
25
25
|
};
|
|
26
|
-
declare function SelectLabel({ className, size, ...props }: SelectLabelProps):
|
|
26
|
+
declare function SelectLabel({ className, size, ...props }: SelectLabelProps): React.JSX.Element;
|
|
27
27
|
type SelectItemProps = React.ComponentProps<typeof SelectPrimitive.Item> & {
|
|
28
28
|
size?: ItemSize;
|
|
29
29
|
};
|
|
30
|
-
declare function SelectItem({ className, children, size, ...props }: SelectItemProps):
|
|
31
|
-
declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>):
|
|
30
|
+
declare function SelectItem({ className, children, size, ...props }: SelectItemProps): React.JSX.Element;
|
|
31
|
+
declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>): React.JSX.Element;
|
|
32
32
|
declare function SelectScrollUpButton({ className, size, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton> & {
|
|
33
33
|
size?: SelectSize;
|
|
34
|
-
}):
|
|
34
|
+
}): React.JSX.Element;
|
|
35
35
|
declare function SelectScrollDownButton({ className, size, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton> & {
|
|
36
36
|
size?: SelectSize;
|
|
37
|
-
}):
|
|
37
|
+
}): React.JSX.Element;
|
|
38
38
|
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
14
|
+
import { cn } from "../../lib/utils";
|
|
15
|
+
import { selectSize, selectShape, selectType, selectColor, itemSize, } from ".";
|
|
16
|
+
import LUIcon from "../Icons/LUIcon";
|
|
17
|
+
import { Reset_BS } from "../../utils/constants";
|
|
18
|
+
// Map select size to icon size
|
|
19
|
+
var iconSizeMap = {
|
|
20
|
+
lg: "md",
|
|
21
|
+
md: "sm",
|
|
22
|
+
sm: "xs",
|
|
23
|
+
};
|
|
24
|
+
function Select(_a) {
|
|
25
|
+
var onValueChange = _a.onValueChange, defaultValue = _a.defaultValue, props = __rest(_a, ["onValueChange", "defaultValue"]);
|
|
26
|
+
return (<SelectPrimitive.Root data-slot="select" onValueChange={onValueChange} defaultValue={defaultValue} {...props}/>);
|
|
27
|
+
}
|
|
28
|
+
function SelectGroup(_a) {
|
|
29
|
+
var props = __rest(_a, []);
|
|
30
|
+
return <SelectPrimitive.Group data-slot="select-group" {...props}/>;
|
|
31
|
+
}
|
|
32
|
+
function SelectValue(_a) {
|
|
33
|
+
var props = __rest(_a, []);
|
|
34
|
+
return <SelectPrimitive.Value data-slot="select-value" {...props}/>;
|
|
35
|
+
}
|
|
36
|
+
function SelectTrigger(_a) {
|
|
37
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "md" : _b, _c = _a.shape, shape = _c === void 0 ? "rectangular" : _c, _d = _a.variant, variant = _d === void 0 ? "fill" : _d, _e = _a.color, color = _e === void 0 ? "default" : _e, children = _a.children, disabled = _a.disabled, props = __rest(_a, ["className", "size", "shape", "variant", "color", "children", "disabled"]);
|
|
38
|
+
var iconSize = iconSizeMap[size] || "md";
|
|
39
|
+
var shapeClass = selectShape[shape];
|
|
40
|
+
var typeClass = selectType[variant];
|
|
41
|
+
// Use disabled color if disabled prop is true
|
|
42
|
+
var isDisabled = !!disabled;
|
|
43
|
+
var colorClass = isDisabled
|
|
44
|
+
? selectColor[variant]["disabled"]
|
|
45
|
+
: selectColor[variant][color];
|
|
46
|
+
return (<SelectPrimitive.Trigger data-reset={Reset_BS} data-size={size} data-shape={shape} data-type={variant} data-color={isDisabled ? "disabled" : color} className={cn("data-[placeholder]:text-gray-400 w-full !px-4 !py-3 [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-blue-200 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex items-center justify-between gap-2 !border border-gray-200 whitespace-nowrap !shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeClass, shapeClass, selectSize[size], colorClass, className)} disabled={isDisabled} {...props}>
|
|
47
|
+
{children}
|
|
48
|
+
<SelectPrimitive.Icon asChild>
|
|
49
|
+
<LUIcon icon="angle-down" size={iconSize} color="light-gray"/>
|
|
50
|
+
</SelectPrimitive.Icon>
|
|
51
|
+
</SelectPrimitive.Trigger>);
|
|
52
|
+
}
|
|
53
|
+
function SelectContent(_a) {
|
|
54
|
+
var className = _a.className, children = _a.children, _b = _a.position, position = _b === void 0 ? "popper" : _b, _c = _a.hidePortal, hidePortal = _c === void 0 ? false : _c, props = __rest(_a, ["className", "children", "position", "hidePortal"]);
|
|
55
|
+
var content = (<SelectPrimitive.Content data-slot="select-content" className={cn("!bg-white text-gray-900 !py-2 !px-2 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto !rounded-sm shadow-lg", position === "popper" &&
|
|
56
|
+
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className)} position={position} {...props}>
|
|
57
|
+
<SelectScrollUpButton />
|
|
58
|
+
<SelectPrimitive.Viewport className={cn("p-1", position === "popper" &&
|
|
59
|
+
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1")}>
|
|
60
|
+
{children}
|
|
61
|
+
</SelectPrimitive.Viewport>
|
|
62
|
+
<SelectScrollDownButton />
|
|
63
|
+
</SelectPrimitive.Content>);
|
|
64
|
+
return hidePortal ? (content) : (<SelectPrimitive.Portal>{content}</SelectPrimitive.Portal>);
|
|
65
|
+
}
|
|
66
|
+
function SelectLabel(_a) {
|
|
67
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "md" : _b, props = __rest(_a, ["className", "size"]);
|
|
68
|
+
return (<SelectPrimitive.Label data-slot="select-label" className={cn("text-muted-foreground !px-2 !py-1.5", itemSize[size], className)} {...props}/>);
|
|
69
|
+
}
|
|
70
|
+
function SelectItem(_a) {
|
|
71
|
+
var className = _a.className, children = _a.children, _b = _a.size, size = _b === void 0 ? "md" : _b, props = __rest(_a, ["className", "children", "size"]);
|
|
72
|
+
return (<SelectPrimitive.Item data-reset="reset-bs-link" className={cn("text-gray-900 data-[disabled]:bg-gray-100 data-[disabled]:text-gray-300 [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 !rounded-sm py-1.5 pr-8 pl-2 outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 data-[state=checked]:bg-gray-50 hover:bg-gray-50", itemSize[size], className)} {...props}>
|
|
73
|
+
<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
|
|
74
|
+
</SelectPrimitive.Item>);
|
|
75
|
+
}
|
|
76
|
+
function SelectSeparator(_a) {
|
|
77
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
78
|
+
return (<SelectPrimitive.Separator data-slot="select-separator" className={cn("bg-border pointer-events-none -mx-1 my-1 h-px", className)} {...props}/>);
|
|
79
|
+
}
|
|
80
|
+
function SelectScrollUpButton(_a) {
|
|
81
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "md" : _b, props = __rest(_a, ["className", "size"]);
|
|
82
|
+
var iconSize = iconSizeMap[size] || "md";
|
|
83
|
+
return (<SelectPrimitive.ScrollUpButton data-slot="select-scroll-up-button" className={cn("flex cursor-default items-center justify-center py-1", className)} {...props}>
|
|
84
|
+
<LUIcon icon="angle-up" size={iconSize} color="light-gray"/>
|
|
85
|
+
</SelectPrimitive.ScrollUpButton>);
|
|
86
|
+
}
|
|
87
|
+
function SelectScrollDownButton(_a) {
|
|
88
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "md" : _b, props = __rest(_a, ["className", "size"]);
|
|
89
|
+
var iconSize = iconSizeMap[size] || "md";
|
|
90
|
+
return (<SelectPrimitive.ScrollDownButton data-slot="select-scroll-down-button" className={cn("flex cursor-default items-center justify-center py-1", className)} {...props}>
|
|
91
|
+
<LUIcon icon="angle-down" size={iconSize} color="light-gray"/>
|
|
92
|
+
</SelectPrimitive.ScrollDownButton>);
|
|
93
|
+
}
|
|
94
|
+
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { IconProps } from "./type";
|
|
2
|
-
declare const LUIcon: ({ size, icon, variant, shape, className, color, ...props }: IconProps) => import("react
|
|
2
|
+
declare const LUIcon: ({ size, icon, variant, shape, className, color, ...props }: IconProps) => import("react").JSX.Element;
|
|
3
3
|
export default LUIcon;
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
2
|
var t = {};
|
|
14
3
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -20,7 +9,6 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
9
|
}
|
|
21
10
|
return t;
|
|
22
11
|
};
|
|
23
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
12
|
import { iconList } from "../../utils/iconList";
|
|
25
13
|
import { getAppliedColor, iconBackground, IconShape, iconSize } from ".";
|
|
26
14
|
import { cn } from "../../lib/utils";
|
|
@@ -39,6 +27,15 @@ var LUIcon = function (_a) {
|
|
|
39
27
|
}
|
|
40
28
|
return cn(baseClasses, className);
|
|
41
29
|
};
|
|
42
|
-
return (
|
|
30
|
+
return (<svg role="img" data-testid={"lu-icon"} className={getClassNames()} viewBox="0 0 32 32" fill="currentColor" {...props}>
|
|
31
|
+
<g clipPath="url(#clip0_9168_14965)">
|
|
32
|
+
<path data-testid="lu-path" d={(_b = iconList[icon]) !== null && _b !== void 0 ? _b : ""}/>
|
|
33
|
+
</g>
|
|
34
|
+
<defs>
|
|
35
|
+
<clipPath id="clip0_9168_14965">
|
|
36
|
+
<rect width="32" height="32"/>
|
|
37
|
+
</clipPath>
|
|
38
|
+
</defs>
|
|
39
|
+
</svg>);
|
|
43
40
|
};
|
|
44
41
|
export default LUIcon;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from "react";
|
|
2
|
+
import LUIcon from "../LUIcon";
|
|
3
|
+
import { Input } from "../../../components/Input";
|
|
4
|
+
export var IconDropdown = function (_a) {
|
|
5
|
+
var value = _a.value, onChange = _a.onChange, options = _a.options;
|
|
6
|
+
var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
|
|
7
|
+
var _c = useState(""), searchTerm = _c[0], setSearchTerm = _c[1];
|
|
8
|
+
var dropdownRef = useRef(null);
|
|
9
|
+
var filteredOptions = options.filter(function (option) {
|
|
10
|
+
return option.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
|
11
|
+
option
|
|
12
|
+
.replace(/-/g, " ")
|
|
13
|
+
.toLowerCase()
|
|
14
|
+
.includes(searchTerm.toLowerCase());
|
|
15
|
+
});
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
var handleClickOutside = function (event) {
|
|
18
|
+
if (dropdownRef.current &&
|
|
19
|
+
!dropdownRef.current.contains(event.target)) {
|
|
20
|
+
setIsOpen(false);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
24
|
+
return function () { return document.removeEventListener("mousedown", handleClickOutside); };
|
|
25
|
+
}, []);
|
|
26
|
+
var handleSelect = function (option) {
|
|
27
|
+
onChange(option);
|
|
28
|
+
setIsOpen(false);
|
|
29
|
+
setSearchTerm("");
|
|
30
|
+
};
|
|
31
|
+
var formatLabel = function (iconKey) {
|
|
32
|
+
return iconKey.replace(/-/g, " ").replace(/\b\w/g, function (l) { return l.toUpperCase(); });
|
|
33
|
+
};
|
|
34
|
+
return (<div ref={dropdownRef} className="relative w-full">
|
|
35
|
+
{/* Dropdown trigger */}
|
|
36
|
+
<div onClick={function () { return setIsOpen(!isOpen); }} className="px-3 py-2 border border-gray-300 rounded bg-white cursor-pointer flex items-center justify-between min-h-9">
|
|
37
|
+
<div className="flex items-center gap-2">
|
|
38
|
+
{value && <LUIcon icon={value} size="xs"/>}
|
|
39
|
+
<span>{value ? formatLabel(value) : "Select an icon..."}</span>
|
|
40
|
+
</div>
|
|
41
|
+
<span className={"transition-transform duration-200 ".concat(isOpen ? "rotate-180" : "rotate-0")}>
|
|
42
|
+
▼
|
|
43
|
+
</span>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
{/* Dropdown menu */}
|
|
47
|
+
{isOpen && (<div className="absolute top-full left-0 right-0 bg-white border border-gray-300 rounded shadow-lg z-[1000] max-h-[300px] overflow-y-auto">
|
|
48
|
+
{/* Search input */}
|
|
49
|
+
<div className="p-2">
|
|
50
|
+
<Input type="text" placeholder="Search icons..." value={searchTerm} onChange={function (e) { return setSearchTerm(e.target.value); }} className="w-full px-2 py-1.5 border border-gray-300 rounded-sm text-sm" onClick={function (e) { return e.stopPropagation(); }}/>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
{/* Options list */}
|
|
54
|
+
<div className="max-h-[200px] overflow-y-auto">
|
|
55
|
+
{filteredOptions.length === 0 ? (<div className="p-3 text-gray-600 italic">No icons found</div>) : (filteredOptions.map(function (option) { return (<div key={option} onClick={function () { return handleSelect(option); }} className={"px-3 py-2 cursor-pointer flex items-center gap-2 transition-colors duration-100 ".concat(value === option
|
|
56
|
+
? "bg-blue-50 border-l-4 border-l-blue-600"
|
|
57
|
+
: "border-l-4 border-l-transparent hover:bg-gray-50")}>
|
|
58
|
+
<LUIcon icon={option} size="xs"/>
|
|
59
|
+
<span className="text-sm">{formatLabel(option)}</span>
|
|
60
|
+
<span className="text-xs text-gray-600 ml-auto">
|
|
61
|
+
{option}
|
|
62
|
+
</span>
|
|
63
|
+
</div>); }))}
|
|
64
|
+
</div>
|
|
65
|
+
</div>)}
|
|
66
|
+
</div>);
|
|
67
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { iconList } from "../../../utils/iconList";
|
|
3
|
+
import LUIcon from "../LUIcon";
|
|
4
|
+
import { Heading } from "../../../components/Typography/Heading/heading";
|
|
5
|
+
import { Body } from "../../../components/Typography/Body/body";
|
|
6
|
+
import { Input } from "../../../components/Input/input";
|
|
7
|
+
export var IconGallery = function () {
|
|
8
|
+
var _a = useState(""), searchTerm = _a[0], setSearchTerm = _a[1];
|
|
9
|
+
var _b = useState(""), selectedIcon = _b[0], setSelectedIcon = _b[1];
|
|
10
|
+
var filteredIcons = Object.keys(iconList)
|
|
11
|
+
.sort()
|
|
12
|
+
.filter(function (iconKey) {
|
|
13
|
+
return iconKey.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
|
14
|
+
iconKey
|
|
15
|
+
.replace(/-/g, " ")
|
|
16
|
+
.toLowerCase()
|
|
17
|
+
.includes(searchTerm.toLowerCase());
|
|
18
|
+
});
|
|
19
|
+
var IconItem = function (_a) {
|
|
20
|
+
var iconKey = _a.iconKey;
|
|
21
|
+
return (<div key={iconKey} onClick={function () { return setSelectedIcon(iconKey); }} className={"flex items-center gap-2 p-2 border rounded cursor-pointer transition-all duration-200 ".concat(selectedIcon === iconKey
|
|
22
|
+
? "border-blue-600 bg-blue-50 border-2"
|
|
23
|
+
: "border-gray-200 bg-white hover:bg-gray-50 hover:border-gray-300")}>
|
|
24
|
+
<LUIcon icon={iconKey} size="sm"/>
|
|
25
|
+
<span className="text-xs font-mono text-gray-700 break-all">
|
|
26
|
+
{iconKey}
|
|
27
|
+
</span>
|
|
28
|
+
</div>);
|
|
29
|
+
};
|
|
30
|
+
var IconPreview = function (_a) {
|
|
31
|
+
var iconKey = _a.iconKey;
|
|
32
|
+
return (<div className="mt-5 p-4 bg-gray-50 rounded-lg border border-gray-200">
|
|
33
|
+
<Heading variant="h4" className="mb-4">
|
|
34
|
+
Preview Selected Icon: {iconKey}
|
|
35
|
+
</Heading>
|
|
36
|
+
<div className="flex gap-4 items-center flex-wrap">
|
|
37
|
+
<div className="flex items-center gap-2">
|
|
38
|
+
<Body variant="body-sm-600">Default:</Body>
|
|
39
|
+
<LUIcon icon={iconKey} size="md"/>
|
|
40
|
+
</div>
|
|
41
|
+
<div className="flex items-center gap-2">
|
|
42
|
+
<Body variant="body-sm-600">Padded:</Body>
|
|
43
|
+
<LUIcon icon={iconKey} size="md" variant="padded" color="blue"/>
|
|
44
|
+
</div>
|
|
45
|
+
<div className="flex items-center gap-2">
|
|
46
|
+
<Body variant="body-sm-600">Large:</Body>
|
|
47
|
+
<LUIcon icon={iconKey} size="xl"/>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div className="mt-3 font-mono text-sm">
|
|
51
|
+
<Body variant="body-sm-600">Usage:</Body>
|
|
52
|
+
<br />
|
|
53
|
+
<code className="bg-gray-100 p-1 rounded">{"<LUIcon icon=\"".concat(iconKey, "\" size=\"md\" />")}</code>
|
|
54
|
+
</div>
|
|
55
|
+
</div>);
|
|
56
|
+
};
|
|
57
|
+
return (<div className="p-5">
|
|
58
|
+
<Heading variant="h3" className="mb-5">
|
|
59
|
+
Icon Gallery - All Available Icons ({Object.keys(iconList).length}{" "}
|
|
60
|
+
total)
|
|
61
|
+
</Heading>
|
|
62
|
+
|
|
63
|
+
<div className="mb-5">
|
|
64
|
+
<Input type="text" placeholder="Search icons... (e.g., 'circle', 'info', 'qr')" value={searchTerm} onChange={function (e) { return setSearchTerm(e.target.value); }} className="w-full max-w-md" startIcon="magnifying-glass"/>
|
|
65
|
+
<Body variant="body-sm" className="mt-2 text-gray-600">
|
|
66
|
+
{filteredIcons.length} icons found
|
|
67
|
+
{selectedIcon && (<span className="ml-4 font-semibold">Selected: {selectedIcon}</span>)}
|
|
68
|
+
</Body>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<div className="grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-3 max-h-[500px] overflow-y-auto border border-gray-200 p-4 rounded-lg">
|
|
72
|
+
{filteredIcons.map(function (iconKey) { return (<IconItem key={iconKey} iconKey={iconKey}/>); })}
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
{selectedIcon && <IconPreview iconKey={selectedIcon}/>}
|
|
76
|
+
</div>);
|
|
77
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { iconList } from "../../../utils/iconList";
|
|
3
|
+
import LUIcon from "../LUIcon";
|
|
4
|
+
import { iconSize, iconWithBgColor } from "../index";
|
|
5
|
+
import { IconDropdown } from "./IconDropdown";
|
|
6
|
+
import { Heading } from "../../../components/Typography/Heading/heading";
|
|
7
|
+
import { Body } from "../../../components/Typography/Body/body";
|
|
8
|
+
import { Label } from "../../../components/Label/Label";
|
|
9
|
+
export var InteractiveIconSelector = function () {
|
|
10
|
+
var _a = useState("info"), selectedIcon = _a[0], setSelectedIcon = _a[1];
|
|
11
|
+
var _b = useState("md"), selectedSize = _b[0], setSelectedSize = _b[1];
|
|
12
|
+
var _c = useState("default"), selectedVariant = _c[0], setSelectedVariant = _c[1];
|
|
13
|
+
var _d = useState("blue"), selectedColor = _d[0], setSelectedColor = _d[1];
|
|
14
|
+
var generateUsageCode = function () {
|
|
15
|
+
var code = "<LUIcon icon=\"".concat(selectedIcon, "\" size=\"").concat(selectedSize, " color=\"").concat(selectedColor, "\"");
|
|
16
|
+
if (selectedVariant === "padded") {
|
|
17
|
+
code += " variant=\"padded\" \"";
|
|
18
|
+
}
|
|
19
|
+
code += " />";
|
|
20
|
+
return code;
|
|
21
|
+
};
|
|
22
|
+
return (<div className="p-5">
|
|
23
|
+
<Heading variant="h3" className="mb-3">
|
|
24
|
+
Interactive Icon Selector
|
|
25
|
+
</Heading>
|
|
26
|
+
<Body variant="body-md" className="mb-6 text-gray-600">
|
|
27
|
+
This demonstrates a custom searchable dropdown that shows icons
|
|
28
|
+
alongside their names.
|
|
29
|
+
</Body>
|
|
30
|
+
|
|
31
|
+
<div className="grid grid-cols-[repeat(auto-fit,minmax(200px,1fr))] gap-4 mb-6">
|
|
32
|
+
<div>
|
|
33
|
+
<Label variant="label-md" className="block mb-2 ">
|
|
34
|
+
Select Icon:
|
|
35
|
+
</Label>
|
|
36
|
+
<IconDropdown value={selectedIcon} onChange={setSelectedIcon} options={Object.keys(iconList).sort()}/>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<div>
|
|
40
|
+
<Label variant="label-md" className="block mb-2 ">
|
|
41
|
+
Size:
|
|
42
|
+
</Label>
|
|
43
|
+
<select value={selectedSize} onChange={function (e) { return setSelectedSize(e.target.value); }} className="w-full p-2 border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
|
|
44
|
+
{Object.keys(iconSize).map(function (size) { return (<option key={size} value={size}>
|
|
45
|
+
{size}
|
|
46
|
+
</option>); })}
|
|
47
|
+
</select>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div>
|
|
51
|
+
<Label variant="label-md" className="block mb-2 ">
|
|
52
|
+
Variant:
|
|
53
|
+
</Label>
|
|
54
|
+
<select value={selectedVariant} onChange={function (e) {
|
|
55
|
+
return setSelectedVariant(e.target.value);
|
|
56
|
+
}} className="w-full p-2 border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
|
|
57
|
+
<option value="default">Default</option>
|
|
58
|
+
<option value="padded">Padded</option>
|
|
59
|
+
</select>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div>
|
|
63
|
+
<Label variant="label-md" className="block mb-2">
|
|
64
|
+
Color:
|
|
65
|
+
</Label>
|
|
66
|
+
<select value={selectedColor} onChange={function (e) { return setSelectedColor(e.target.value); }} className="w-full p-2 border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
|
|
67
|
+
{Object.keys(iconWithBgColor).map(function (color) { return (<option key={color} value={color}>
|
|
68
|
+
{color}
|
|
69
|
+
</option>); })}
|
|
70
|
+
</select>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<div className="p-6 border-2 border-dashed border-gray-300 rounded-lg text-center bg-gray-50">
|
|
75
|
+
<Heading variant="h4" className="mb-4">
|
|
76
|
+
Preview:
|
|
77
|
+
</Heading>
|
|
78
|
+
<div className="my-4">
|
|
79
|
+
<LUIcon icon={selectedIcon} size={selectedSize} variant={selectedVariant} color={selectedColor}/>
|
|
80
|
+
</div>
|
|
81
|
+
<div className="font-mono text-sm bg-gray-100 p-2 rounded">
|
|
82
|
+
{generateUsageCode()}
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>);
|
|
86
|
+
};
|
|
@@ -3,10 +3,10 @@ import LUIcon from "../LUIcon";
|
|
|
3
3
|
declare const _default: Meta<typeof LUIcon>;
|
|
4
4
|
export default _default;
|
|
5
5
|
export declare const Default: StoryObj;
|
|
6
|
-
export declare const IconVariants: () => import("react
|
|
7
|
-
export declare const DefaultIconSizes: () => import("react
|
|
8
|
-
export declare const PaddedIconSizes: () => import("react
|
|
9
|
-
export declare const PaddedIconSizesRounded: () => import("react
|
|
10
|
-
export declare const IconColors: () => import("react
|
|
6
|
+
export declare const IconVariants: () => import("react").JSX.Element;
|
|
7
|
+
export declare const DefaultIconSizes: () => import("react").JSX.Element;
|
|
8
|
+
export declare const PaddedIconSizes: () => import("react").JSX.Element;
|
|
9
|
+
export declare const PaddedIconSizesRounded: () => import("react").JSX.Element;
|
|
10
|
+
export declare const IconColors: () => import("react").JSX.Element;
|
|
11
11
|
export declare const InteractiveIconSelector: StoryFn;
|
|
12
12
|
export declare const IconGallery: StoryFn;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
1
|
import { iconList } from "../../../utils/iconList";
|
|
3
2
|
import { InteractiveIconSelector as InteractiveIconSelectorComponent, IconGallery as IconGalleryComponent, } from ".";
|
|
4
3
|
import LUIcon from "../LUIcon";
|
|
@@ -62,14 +61,30 @@ export var Default = {
|
|
|
62
61
|
variant: "default",
|
|
63
62
|
},
|
|
64
63
|
};
|
|
65
|
-
export var IconVariants = function () { return (
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
export var
|
|
64
|
+
export var IconVariants = function () { return (<div className="flex flex-row space-x-2">
|
|
65
|
+
<LUIcon icon="star" variant="default" size="lg"/>
|
|
66
|
+
<LUIcon icon="star" variant="padded" color="blue" size="lg"/>
|
|
67
|
+
</div>); };
|
|
68
|
+
export var DefaultIconSizes = function () { return (<div className="flex flex-row space-x-2">
|
|
69
|
+
{Object.keys(iconSize).map(function (size) { return (<LUIcon key={size} icon="star" size={size}/>); })}
|
|
70
|
+
</div>); };
|
|
71
|
+
export var PaddedIconSizes = function () { return (<div className="flex gap-2">
|
|
72
|
+
{Object.keys(iconSize).map(function (size) { return (<LUIcon key={size} icon="star" color="blue" size={size} variant="padded"/>); })}
|
|
73
|
+
</div>); };
|
|
74
|
+
export var PaddedIconSizesRounded = function () { return (<div className="flex gap-2">
|
|
75
|
+
{Object.keys(iconSize).map(function (size) { return (<LUIcon key={size} icon="star" color="blue" shape="rounded" size={size} variant="padded"/>); })}
|
|
76
|
+
</div>); };
|
|
77
|
+
export var IconColors = function () { return (<>
|
|
78
|
+
<div className="flex flex-row space-x-2 mb-2">
|
|
79
|
+
{Object.keys(iconColor).map(function (color) { return (<LUIcon key={color} icon="star" size="lg" color={color}/>); })}
|
|
80
|
+
</div>
|
|
81
|
+
<div className="flex flex-row space-x-2">
|
|
82
|
+
{Object.keys(iconColor).map(function (color) { return (<LUIcon key={color} icon="star" variant="padded" size="lg" color={color}/>); })}
|
|
83
|
+
</div>
|
|
84
|
+
</>); };
|
|
70
85
|
// Export stories using separate components for better maintainability
|
|
71
|
-
export var InteractiveIconSelector = function () { return (
|
|
72
|
-
export var IconGallery = function () { return
|
|
86
|
+
export var InteractiveIconSelector = function () { return (<InteractiveIconSelectorComponent />); };
|
|
87
|
+
export var IconGallery = function () { return <IconGalleryComponent />; };
|
|
73
88
|
// Set parameters for the stories
|
|
74
89
|
InteractiveIconSelector.parameters = {
|
|
75
90
|
docs: {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ImageUploaderProps } from "../ImageUploader/type";
|
|
2
|
-
declare const ImageUploader: ({ value, onChange, onRemove, required, className, maxFileSizeMB, acceptedTypes, labels, }: ImageUploaderProps) => import("react
|
|
2
|
+
declare const ImageUploader: ({ value, onChange, onRemove, required, className, maxFileSizeMB, acceptedTypes, labels, }: ImageUploaderProps) => import("react").JSX.Element;
|
|
3
3
|
export default ImageUploader;
|