ikon-react-components-lib 1.0.0 → 1.0.2
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 +46 -55
- package/dist/ikon-react-components-lib.cjs.js +5 -247
- package/dist/ikon-react-components-lib.css +1 -1
- package/dist/ikon-react-components-lib.es.js +8530 -152500
- package/dist/index.d.ts +4 -9
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ A comprehensive React component library with UI components, form utilities, data
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm i
|
|
8
|
+
npm i ikon-react-components-lib
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
## Quick Start
|
|
@@ -25,8 +25,7 @@ Update your `global.css` or `index.css`:
|
|
|
25
25
|
|
|
26
26
|
```css
|
|
27
27
|
@import "tailwindcss";
|
|
28
|
-
@import "
|
|
29
|
-
@import "ikoncomponents/dist/styles.css";
|
|
28
|
+
@import "ikon-react-components-lib/dist/ikon-react-components-lib.css"
|
|
30
29
|
```
|
|
31
30
|
|
|
32
31
|
### 3. Configure the Library
|
|
@@ -37,7 +36,7 @@ In your **entry point** (typically `main.tsx` or `index.tsx`), configure the lib
|
|
|
37
36
|
import React from "react";
|
|
38
37
|
import ReactDOM from "react-dom/client";
|
|
39
38
|
import App from "./App";
|
|
40
|
-
import { setIkonConfig } from "
|
|
39
|
+
import { setIkonConfig } from "ikon-react-components-lib";
|
|
41
40
|
import "./global.css";
|
|
42
41
|
|
|
43
42
|
// Configure BEFORE rendering
|
|
@@ -67,7 +66,7 @@ ReactDOM.createRoot(document.getElementById("root")!).render(
|
|
|
67
66
|
In your root `App.tsx`, wrap your application with `<ProviderWrapper>`:
|
|
68
67
|
|
|
69
68
|
```tsx
|
|
70
|
-
import { ProviderWrapper } from "
|
|
69
|
+
import { ProviderWrapper } from "ikon-react-components-lib";
|
|
71
70
|
|
|
72
71
|
function App() {
|
|
73
72
|
return (
|
|
@@ -91,7 +90,7 @@ export default App;
|
|
|
91
90
|
Use `RenderSidebarNav` and `RenderAppBreadcrumb` to build a full navigation layout:
|
|
92
91
|
|
|
93
92
|
```tsx
|
|
94
|
-
import { RenderAppBreadcrumb, RenderSidebarNav } from "
|
|
93
|
+
import { RenderAppBreadcrumb, RenderSidebarNav } from "ikon-react-components-lib";
|
|
95
94
|
import { LayoutDashboard, Settings, Users, FileText } from "lucide-react";
|
|
96
95
|
|
|
97
96
|
function App() {
|
|
@@ -161,8 +160,8 @@ interface NavItem {
|
|
|
161
160
|
Use `useRefresh()` hook to refresh the API or trigger sidebar re-render:
|
|
162
161
|
|
|
163
162
|
```tsx
|
|
164
|
-
import { useRefresh } from "
|
|
165
|
-
import { TextButton } from "
|
|
163
|
+
import { useRefresh } from "ikon-react-components-lib";
|
|
164
|
+
import { TextButton } from "ikon-react-components-lib";
|
|
166
165
|
|
|
167
166
|
function SettingsPage() {
|
|
168
167
|
const { refresh } = useRefresh();
|
|
@@ -193,7 +192,7 @@ All standard ShadCN components are included. Full documentation: [https://ui.sha
|
|
|
193
192
|
|---|---|---|---|
|
|
194
193
|
| accordion | alert-dialog | alert | avatar |
|
|
195
194
|
| badge | button | calendar | card |
|
|
196
|
-
| checkbox | command | date-
|
|
195
|
+
| checkbox | command | date-range-picker |
|
|
197
196
|
| dialog | dropdown-menu | hover-card | input |
|
|
198
197
|
| label | navigation-menu | popover | progress |
|
|
199
198
|
| radio-group | scroll-area | select | separator |
|
|
@@ -210,7 +209,7 @@ All standard ShadCN components are included. Full documentation: [https://ui.sha
|
|
|
210
209
|
### ActionMenu
|
|
211
210
|
|
|
212
211
|
```tsx
|
|
213
|
-
import { ActionMenu } from "
|
|
212
|
+
import { ActionMenu } from "ikon-react-components-lib";
|
|
214
213
|
```
|
|
215
214
|
|
|
216
215
|
#### Props
|
|
@@ -245,15 +244,7 @@ import { ActionMenu } from "ikoncomponents";
|
|
|
245
244
|
AI chat assistant powered by `@assistant-ui/react`.
|
|
246
245
|
|
|
247
246
|
```tsx
|
|
248
|
-
import { AssistantComponent } from "
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
**Required dependencies:**
|
|
252
|
-
|
|
253
|
-
```bash
|
|
254
|
-
npm install @assistant-ui/react@^0.12.12
|
|
255
|
-
npm install @assistant-ui/react-ai-sdk@^1.3.9
|
|
256
|
-
npm install @assistant-ui/react-markdown@^0.12.5
|
|
247
|
+
import { AssistantComponent } from "ikon-react-components-lib";
|
|
257
248
|
```
|
|
258
249
|
|
|
259
250
|
#### Props
|
|
@@ -293,7 +284,7 @@ npm install @assistant-ui/react-markdown@^0.12.5
|
|
|
293
284
|
### BigCalendar
|
|
294
285
|
|
|
295
286
|
```tsx
|
|
296
|
-
import { BigCalendar } from "
|
|
287
|
+
import { BigCalendar } from "ikon-react-components-lib";
|
|
297
288
|
```
|
|
298
289
|
|
|
299
290
|
#### Props
|
|
@@ -340,7 +331,7 @@ import {
|
|
|
340
331
|
IconTextButtonWithTooltip,
|
|
341
332
|
IconButton,
|
|
342
333
|
IconButtonWithTooltip,
|
|
343
|
-
} from "
|
|
334
|
+
} from "ikon-react-components-lib";
|
|
344
335
|
```
|
|
345
336
|
|
|
346
337
|
All button components share a common props interface extending `React.ButtonHTMLAttributes<HTMLButtonElement>`:
|
|
@@ -364,7 +355,7 @@ All button components share a common props interface extending `React.ButtonHTML
|
|
|
364
355
|
### ComboboxInput
|
|
365
356
|
|
|
366
357
|
```tsx
|
|
367
|
-
import { ComboboxInput } from "
|
|
358
|
+
import { ComboboxInput } from "ikon-react-components-lib";
|
|
368
359
|
```
|
|
369
360
|
|
|
370
361
|
#### `ComboBoxInputProps`
|
|
@@ -391,7 +382,7 @@ import { ComboboxInput } from "ikoncomponents";
|
|
|
391
382
|
### MultiCombobox
|
|
392
383
|
|
|
393
384
|
```tsx
|
|
394
|
-
import { MultiCombobox } from "
|
|
385
|
+
import { MultiCombobox } from "ikon-react-components-lib";
|
|
395
386
|
```
|
|
396
387
|
|
|
397
388
|
#### Props
|
|
@@ -409,7 +400,7 @@ import { MultiCombobox } from "ikoncomponents";
|
|
|
409
400
|
### CustomAlertDialog
|
|
410
401
|
|
|
411
402
|
```tsx
|
|
412
|
-
import { CustomAlertDialog } from "
|
|
403
|
+
import { CustomAlertDialog } from "ikon-react-components-lib";
|
|
413
404
|
```
|
|
414
405
|
|
|
415
406
|
#### Props
|
|
@@ -433,7 +424,7 @@ import { CustomAlertDialog } from "ikoncomponents";
|
|
|
433
424
|
A fully-featured data table with sorting, filtering, pagination, grouping, and column customization.
|
|
434
425
|
|
|
435
426
|
```tsx
|
|
436
|
-
import { DataTable } from "
|
|
427
|
+
import { DataTable } from "ikon-react-components-lib";
|
|
437
428
|
import { ColumnDef } from "@tanstack/react-table";
|
|
438
429
|
```
|
|
439
430
|
|
|
@@ -441,8 +432,8 @@ import { ColumnDef } from "@tanstack/react-table";
|
|
|
441
432
|
|
|
442
433
|
```tsx
|
|
443
434
|
import { useState } from "react";
|
|
444
|
-
import { DataTable } from "
|
|
445
|
-
import type { DTExtraParamsProps } from "
|
|
435
|
+
import { DataTable } from "ikon-react-components-lib";
|
|
436
|
+
import type { DTExtraParamsProps } from "ikon-react-components-lib";
|
|
446
437
|
import { ColumnDef } from "@tanstack/react-table";
|
|
447
438
|
|
|
448
439
|
interface User {
|
|
@@ -580,7 +571,7 @@ Extends TanStack Table's `ColumnDef<TData, TValue>`.
|
|
|
580
571
|
### EChart
|
|
581
572
|
|
|
582
573
|
```tsx
|
|
583
|
-
import { EChart } from "
|
|
574
|
+
import { EChart } from "ikon-react-components-lib";
|
|
584
575
|
```
|
|
585
576
|
|
|
586
577
|
Uses `forwardRef` — you can access `ref` methods.
|
|
@@ -616,7 +607,7 @@ Uses `forwardRef` — you can access `ref` methods.
|
|
|
616
607
|
### FileUploader
|
|
617
608
|
|
|
618
609
|
```tsx
|
|
619
|
-
import { FileUploader, getImageFromObject } from "
|
|
610
|
+
import { FileUploader, getImageFromObject } from "ikon-react-components-lib";
|
|
620
611
|
```
|
|
621
612
|
|
|
622
613
|
#### `FileUploaderProps`
|
|
@@ -664,7 +655,7 @@ const handleFileUpload = async (fileObj: FileObjType) => {
|
|
|
664
655
|
### GlowingEffect
|
|
665
656
|
|
|
666
657
|
```tsx
|
|
667
|
-
import { GlowingEffect } from "
|
|
658
|
+
import { GlowingEffect } from "ikon-react-components-lib";
|
|
668
659
|
```
|
|
669
660
|
|
|
670
661
|
#### Props
|
|
@@ -687,7 +678,7 @@ import { GlowingEffect } from "ikoncomponents";
|
|
|
687
678
|
### Icon
|
|
688
679
|
|
|
689
680
|
```tsx
|
|
690
|
-
import { Icon } from "
|
|
681
|
+
import { Icon } from "ikon-react-components-lib";
|
|
691
682
|
```
|
|
692
683
|
|
|
693
684
|
Dynamically renders any [Lucide icon](https://lucide.dev/icons) by name.
|
|
@@ -707,7 +698,7 @@ Dynamically renders any [Lucide icon](https://lucide.dev/icons) by name.
|
|
|
707
698
|
### LoadingSpinner
|
|
708
699
|
|
|
709
700
|
```tsx
|
|
710
|
-
import { LoadingSpinner } from "
|
|
701
|
+
import { LoadingSpinner } from "ikon-react-components-lib";
|
|
711
702
|
```
|
|
712
703
|
|
|
713
704
|
#### Props
|
|
@@ -724,7 +715,7 @@ import { LoadingSpinner } from "ikoncomponents";
|
|
|
724
715
|
### NoDataComponent
|
|
725
716
|
|
|
726
717
|
```tsx
|
|
727
|
-
import { NoDataComponent } from "
|
|
718
|
+
import { NoDataComponent } from "ikon-react-components-lib";
|
|
728
719
|
```
|
|
729
720
|
|
|
730
721
|
#### Props
|
|
@@ -738,7 +729,7 @@ import { NoDataComponent } from "ikoncomponents";
|
|
|
738
729
|
### PageWrapper
|
|
739
730
|
|
|
740
731
|
```tsx
|
|
741
|
-
import { PageWrapper } from "
|
|
732
|
+
import { PageWrapper } from "ikon-react-components-lib";
|
|
742
733
|
```
|
|
743
734
|
|
|
744
735
|
#### Props
|
|
@@ -755,7 +746,7 @@ import { PageWrapper } from "ikoncomponents";
|
|
|
755
746
|
### PasswordStrengthMeter
|
|
756
747
|
|
|
757
748
|
```tsx
|
|
758
|
-
import { PasswordStrengthMeter } from "
|
|
749
|
+
import { PasswordStrengthMeter } from "ikon-react-components-lib";
|
|
759
750
|
```
|
|
760
751
|
|
|
761
752
|
#### Props
|
|
@@ -771,7 +762,7 @@ Displays a color-coded progress bar: Very weak → Weak → Fair → Good → St
|
|
|
771
762
|
### SimpleWidget
|
|
772
763
|
|
|
773
764
|
```tsx
|
|
774
|
-
import { SimpleWidget } from "
|
|
765
|
+
import { SimpleWidget } from "ikon-react-components-lib";
|
|
775
766
|
```
|
|
776
767
|
|
|
777
768
|
#### Props
|
|
@@ -793,7 +784,7 @@ import { SimpleWidget } from "ikoncomponents";
|
|
|
793
784
|
### Tabs (CustomTabs)
|
|
794
785
|
|
|
795
786
|
```tsx
|
|
796
|
-
import { CustomTabs } from "
|
|
787
|
+
import { CustomTabs } from "ikon-react-components-lib";
|
|
797
788
|
```
|
|
798
789
|
|
|
799
790
|
#### Props
|
|
@@ -826,7 +817,7 @@ import { CustomTabs } from "ikoncomponents";
|
|
|
826
817
|
### TitleProgress
|
|
827
818
|
|
|
828
819
|
```tsx
|
|
829
|
-
import { TitleProgress } from "
|
|
820
|
+
import { TitleProgress } from "ikon-react-components-lib";
|
|
830
821
|
```
|
|
831
822
|
|
|
832
823
|
#### Props
|
|
@@ -847,7 +838,7 @@ import { TitleProgress } from "ikoncomponents";
|
|
|
847
838
|
### TooltipComponent
|
|
848
839
|
|
|
849
840
|
```tsx
|
|
850
|
-
import { TooltipComponent } from "
|
|
841
|
+
import { TooltipComponent } from "ikon-react-components-lib";
|
|
851
842
|
```
|
|
852
843
|
|
|
853
844
|
#### Props
|
|
@@ -862,7 +853,7 @@ import { TooltipComponent } from "ikoncomponents";
|
|
|
862
853
|
### Widgets
|
|
863
854
|
|
|
864
855
|
```tsx
|
|
865
|
-
import { Widgets } from "
|
|
856
|
+
import { Widgets } from "ikon-react-components-lib";
|
|
866
857
|
```
|
|
867
858
|
|
|
868
859
|
#### Props
|
|
@@ -888,7 +879,7 @@ import { Widgets } from "ikoncomponents";
|
|
|
888
879
|
#### GradeTableLoader
|
|
889
880
|
|
|
890
881
|
```tsx
|
|
891
|
-
import { GradeTableLoader } from "
|
|
882
|
+
import { GradeTableLoader } from "ikon-react-components-lib";
|
|
892
883
|
```
|
|
893
884
|
|
|
894
885
|
| Property | Type | Optional | Default | Description |
|
|
@@ -899,7 +890,7 @@ import { GradeTableLoader } from "ikoncomponents";
|
|
|
899
890
|
#### SkeletonWidget
|
|
900
891
|
|
|
901
892
|
```tsx
|
|
902
|
-
import { SkeletonWidget } from "
|
|
893
|
+
import { SkeletonWidget } from "ikon-react-components-lib";
|
|
903
894
|
```
|
|
904
895
|
|
|
905
896
|
| Property | Type | Optional | Description |
|
|
@@ -911,7 +902,7 @@ import { SkeletonWidget } from "ikoncomponents";
|
|
|
911
902
|
### SheetComponent
|
|
912
903
|
|
|
913
904
|
```tsx
|
|
914
|
-
import { SheetComponent } from "
|
|
905
|
+
import { SheetComponent } from "ikon-react-components-lib";
|
|
915
906
|
```
|
|
916
907
|
|
|
917
908
|
#### Props
|
|
@@ -948,7 +939,7 @@ import {
|
|
|
948
939
|
FormComboboxInput,
|
|
949
940
|
FormTextarea,
|
|
950
941
|
TextButton,
|
|
951
|
-
} from "
|
|
942
|
+
} from "ikon-react-components-lib";
|
|
952
943
|
|
|
953
944
|
const registrationSchema = z.object({
|
|
954
945
|
username: z.string().min(3, "Username must be 3+ chars"),
|
|
@@ -1037,7 +1028,7 @@ export default RegisterForm;
|
|
|
1037
1028
|
Standard text input field with validation.
|
|
1038
1029
|
|
|
1039
1030
|
```tsx
|
|
1040
|
-
import { FormInput } from "
|
|
1031
|
+
import { FormInput } from "ikon-react-components-lib";
|
|
1041
1032
|
```
|
|
1042
1033
|
|
|
1043
1034
|
#### Props
|
|
@@ -1056,7 +1047,7 @@ import { FormInput } from "ikoncomponents";
|
|
|
1056
1047
|
### FormPasswordInput
|
|
1057
1048
|
|
|
1058
1049
|
```tsx
|
|
1059
|
-
import { FormPasswordInput } from "
|
|
1050
|
+
import { FormPasswordInput } from "ikon-react-components-lib";
|
|
1060
1051
|
```
|
|
1061
1052
|
|
|
1062
1053
|
Same props as `FormInput`. Renders a password field with a show/hide toggle button.
|
|
@@ -1064,7 +1055,7 @@ Same props as `FormInput`. Renders a password field with a show/hide toggle butt
|
|
|
1064
1055
|
### FormTextarea
|
|
1065
1056
|
|
|
1066
1057
|
```tsx
|
|
1067
|
-
import { FormTextarea } from "
|
|
1058
|
+
import { FormTextarea } from "ikon-react-components-lib";
|
|
1068
1059
|
```
|
|
1069
1060
|
|
|
1070
1061
|
#### Props
|
|
@@ -1084,7 +1075,7 @@ Extends `FormFieldProps` + `TextareaHTMLAttributes<HTMLTextAreaElement>`.
|
|
|
1084
1075
|
### FormDateInput
|
|
1085
1076
|
|
|
1086
1077
|
```tsx
|
|
1087
|
-
import { FormDateInput } from "
|
|
1078
|
+
import { FormDateInput } from "ikon-react-components-lib";
|
|
1088
1079
|
```
|
|
1089
1080
|
|
|
1090
1081
|
#### Props
|
|
@@ -1103,7 +1094,7 @@ import { FormDateInput } from "ikoncomponents";
|
|
|
1103
1094
|
### FormComboboxInput
|
|
1104
1095
|
|
|
1105
1096
|
```tsx
|
|
1106
|
-
import { FormComboboxInput } from "
|
|
1097
|
+
import { FormComboboxInput } from "ikon-react-components-lib";
|
|
1107
1098
|
```
|
|
1108
1099
|
|
|
1109
1100
|
#### Props
|
|
@@ -1123,7 +1114,7 @@ import { FormComboboxInput } from "ikoncomponents";
|
|
|
1123
1114
|
### FormComboboxInputWithValue
|
|
1124
1115
|
|
|
1125
1116
|
```tsx
|
|
1126
|
-
import { FormComboboxInputWithValue } from "
|
|
1117
|
+
import { FormComboboxInputWithValue } from "ikon-react-components-lib";
|
|
1127
1118
|
```
|
|
1128
1119
|
|
|
1129
1120
|
A controlled variant of `FormComboboxInput` that accepts external `value` and `onChange`.
|
|
@@ -1146,7 +1137,7 @@ A controlled variant of `FormComboboxInput` that accepts external `value` and `o
|
|
|
1146
1137
|
### FormMultiComboboxInput
|
|
1147
1138
|
|
|
1148
1139
|
```tsx
|
|
1149
|
-
import { FormMultiComboboxInput } from "
|
|
1140
|
+
import { FormMultiComboboxInput } from "ikon-react-components-lib";
|
|
1150
1141
|
```
|
|
1151
1142
|
|
|
1152
1143
|
#### Props
|
|
@@ -1167,7 +1158,7 @@ import { FormMultiComboboxInput } from "ikoncomponents";
|
|
|
1167
1158
|
### FormOtpInput
|
|
1168
1159
|
|
|
1169
1160
|
```tsx
|
|
1170
|
-
import { FormOtpInput } from "
|
|
1161
|
+
import { FormOtpInput } from "ikon-react-components-lib";
|
|
1171
1162
|
```
|
|
1172
1163
|
|
|
1173
1164
|
Same props as `FormInput`. Renders a 4-digit OTP input.
|
|
@@ -1177,7 +1168,7 @@ Same props as `FormInput`. Renders a 4-digit OTP input.
|
|
|
1177
1168
|
## ImageCropperProvider
|
|
1178
1169
|
|
|
1179
1170
|
```tsx
|
|
1180
|
-
import { ImageCropperProvider, useImageCropper } from "
|
|
1171
|
+
import { ImageCropperProvider, useImageCropper } from "ikon-react-components-lib";
|
|
1181
1172
|
```
|
|
1182
1173
|
|
|
1183
1174
|
Provides an image cropper context and modal for cropping images into landscape, portrait, and icon aspect ratios.
|
|
@@ -1208,7 +1199,7 @@ Returns:
|
|
|
1208
1199
|
## ThemeToggleBtn
|
|
1209
1200
|
|
|
1210
1201
|
```tsx
|
|
1211
|
-
import { ThemeToggleBtn } from "
|
|
1202
|
+
import { ThemeToggleBtn } from "ikon-react-components-lib";
|
|
1212
1203
|
```
|
|
1213
1204
|
|
|
1214
1205
|
Renders a theme toggle button (light/dark/system). No props required.
|
|
@@ -1218,7 +1209,7 @@ Renders a theme toggle button (light/dark/system). No props required.
|
|
|
1218
1209
|
## WorkInProgress
|
|
1219
1210
|
|
|
1220
1211
|
```tsx
|
|
1221
|
-
import { WorkInProgress } from "
|
|
1212
|
+
import { WorkInProgress } from "ikon-react-components-lib";
|
|
1222
1213
|
```
|
|
1223
1214
|
|
|
1224
1215
|
Renders a "Work In Progress" placeholder. No props required.
|