@parto-system-design/ui 1.0.5 → 1.1.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/dist/index.css CHANGED
@@ -4,6 +4,9 @@
4
4
  container-type: inline-size;
5
5
  container-name: field-group;
6
6
  }
7
+ .\@container {
8
+ container-type: inline-size;
9
+ }
7
10
  .pointer-events-auto {
8
11
  pointer-events: auto;
9
12
  }
@@ -820,9 +823,6 @@
820
823
  background-color: color-mix(in oklab, hsl(var(--foreground-default)) 2.6%, transparent);
821
824
  }
822
825
  }
823
- .bg-green-500 {
824
- background-color: #22c55e;
825
- }
826
826
  .bg-input {
827
827
  background-color: hsl(var(--background-control));
828
828
  }
@@ -889,26 +889,10 @@
889
889
  .bg-warning-600 {
890
890
  background-color: hsl(var(--warning-600));
891
891
  }
892
- .bg-yellow-500 {
893
- background-color: #eab308;
894
- }
895
892
  .bg-gradient-to-br {
896
893
  --tw-gradient-position: to bottom right in oklab;
897
894
  background-image: linear-gradient(var(--tw-gradient-stops));
898
895
  }
899
- .from-amber-500 {
900
- --tw-gradient-from: #f59e0b;
901
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
902
- }
903
- .via-yellow-400 {
904
- --tw-gradient-via: #facc15;
905
- --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
906
- --tw-gradient-stops: var(--tw-gradient-via-stops);
907
- }
908
- .to-amber-500 {
909
- --tw-gradient-to: #f59e0b;
910
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
911
- }
912
896
  .fill-brand {
913
897
  fill: hsl(var(--brand-default));
914
898
  }
@@ -2140,11 +2124,6 @@
2140
2124
  outline-offset: 1px;
2141
2125
  }
2142
2126
  }
2143
- .focus-visible\:outline-amber-700 {
2144
- &:focus-visible {
2145
- outline-color: #b45309;
2146
- }
2147
- }
2148
2127
  .focus-visible\:outline-border-strong {
2149
2128
  &:focus-visible {
2150
2129
  outline-color: hsl(var(--border-strong));
@@ -3703,11 +3682,6 @@
3703
3682
  flex-shrink: 0;
3704
3683
  }
3705
3684
  }
3706
- .\[\&\>svg\]\:text-blue-600 {
3707
- &>svg {
3708
- color: #2563eb;
3709
- }
3710
- }
3711
3685
  .\[\&\>svg\]\:text-brand-600 {
3712
3686
  &>svg {
3713
3687
  color: hsl(var(--brand-600));
@@ -3733,13 +3707,6 @@
3733
3707
  color: hsl(var(--warning-600));
3734
3708
  }
3735
3709
  }
3736
- .dark\:\[\&\>svg\]\:text-blue-400 {
3737
- &:is([data-theme*="dark"] *) {
3738
- &>svg {
3739
- color: #60a5fa;
3740
- }
3741
- }
3742
- }
3743
3710
  .\[\&\>tr\]\:last\:border-b-0 {
3744
3711
  &>tr {
3745
3712
  &:last-child {
@@ -3792,6 +3759,16 @@
3792
3759
  }
3793
3760
  }
3794
3761
  :root {
3762
+ --duration-instant: 50ms;
3763
+ --duration-fast: 100ms;
3764
+ --duration-normal: 200ms;
3765
+ --duration-slow: 350ms;
3766
+ --duration-slower: 500ms;
3767
+ --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
3768
+ --ease-in: cubic-bezier(0.4, 0, 1, 1);
3769
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
3770
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
3771
+ --ease-smooth: cubic-bezier(0.25, 0.46, 0.45, 0.94);
3795
3772
  --colors-black: 0deg 0% 0%;
3796
3773
  --colors-white: 0deg 0% 100%;
3797
3774
  --colors-gray-dark-100: 0deg 0% 8.6%;
@@ -4189,258 +4166,6 @@
4189
4166
  --chart-5: var(--chart-5);
4190
4167
  }
4191
4168
  }
4192
- @layer utilities {
4193
- .ms-0 {
4194
- margin-inline-start: 0;
4195
- }
4196
- .ms-1 {
4197
- margin-inline-start: 0.25rem;
4198
- }
4199
- .ms-2 {
4200
- margin-inline-start: 0.5rem;
4201
- }
4202
- .ms-3 {
4203
- margin-inline-start: 0.75rem;
4204
- }
4205
- .ms-4 {
4206
- margin-inline-start: 1rem;
4207
- }
4208
- .ms-5 {
4209
- margin-inline-start: 1.25rem;
4210
- }
4211
- .ms-6 {
4212
- margin-inline-start: 1.5rem;
4213
- }
4214
- .ms-8 {
4215
- margin-inline-start: 2rem;
4216
- }
4217
- .ms-10 {
4218
- margin-inline-start: 2.5rem;
4219
- }
4220
- .ms-12 {
4221
- margin-inline-start: 3rem;
4222
- }
4223
- .ms-16 {
4224
- margin-inline-start: 4rem;
4225
- }
4226
- .ms-auto {
4227
- margin-inline-start: auto;
4228
- }
4229
- .me-0 {
4230
- margin-inline-end: 0;
4231
- }
4232
- .me-1 {
4233
- margin-inline-end: 0.25rem;
4234
- }
4235
- .me-2 {
4236
- margin-inline-end: 0.5rem;
4237
- }
4238
- .me-3 {
4239
- margin-inline-end: 0.75rem;
4240
- }
4241
- .me-4 {
4242
- margin-inline-end: 1rem;
4243
- }
4244
- .me-5 {
4245
- margin-inline-end: 1.25rem;
4246
- }
4247
- .me-6 {
4248
- margin-inline-end: 1.5rem;
4249
- }
4250
- .me-8 {
4251
- margin-inline-end: 2rem;
4252
- }
4253
- .me-10 {
4254
- margin-inline-end: 2.5rem;
4255
- }
4256
- .me-12 {
4257
- margin-inline-end: 3rem;
4258
- }
4259
- .me-16 {
4260
- margin-inline-end: 4rem;
4261
- }
4262
- .me-auto {
4263
- margin-inline-end: auto;
4264
- }
4265
- .ps-0 {
4266
- padding-inline-start: 0;
4267
- }
4268
- .ps-1 {
4269
- padding-inline-start: 0.25rem;
4270
- }
4271
- .ps-2 {
4272
- padding-inline-start: 0.5rem;
4273
- }
4274
- .ps-3 {
4275
- padding-inline-start: 0.75rem;
4276
- }
4277
- .ps-4 {
4278
- padding-inline-start: 1rem;
4279
- }
4280
- .ps-5 {
4281
- padding-inline-start: 1.25rem;
4282
- }
4283
- .ps-6 {
4284
- padding-inline-start: 1.5rem;
4285
- }
4286
- .ps-7 {
4287
- padding-inline-start: 1.75rem;
4288
- }
4289
- .ps-8 {
4290
- padding-inline-start: 2rem;
4291
- }
4292
- .ps-10 {
4293
- padding-inline-start: 2.5rem;
4294
- }
4295
- .ps-12 {
4296
- padding-inline-start: 3rem;
4297
- }
4298
- .pe-0 {
4299
- padding-inline-end: 0;
4300
- }
4301
- .pe-1 {
4302
- padding-inline-end: 0.25rem;
4303
- }
4304
- .pe-2 {
4305
- padding-inline-end: 0.5rem;
4306
- }
4307
- .pe-3 {
4308
- padding-inline-end: 0.75rem;
4309
- }
4310
- .pe-4 {
4311
- padding-inline-end: 1rem;
4312
- }
4313
- .pe-5 {
4314
- padding-inline-end: 1.25rem;
4315
- }
4316
- .pe-6 {
4317
- padding-inline-end: 1.5rem;
4318
- }
4319
- .pe-7 {
4320
- padding-inline-end: 1.75rem;
4321
- }
4322
- .pe-8 {
4323
- padding-inline-end: 2rem;
4324
- }
4325
- .pe-10 {
4326
- padding-inline-end: 2.5rem;
4327
- }
4328
- .pe-12 {
4329
- padding-inline-end: 3rem;
4330
- }
4331
- .start-0 {
4332
- inset-inline-start: 0;
4333
- }
4334
- .start-1 {
4335
- inset-inline-start: 0.25rem;
4336
- }
4337
- .start-2 {
4338
- inset-inline-start: 0.5rem;
4339
- }
4340
- .start-4 {
4341
- inset-inline-start: 1rem;
4342
- }
4343
- .start-6 {
4344
- inset-inline-start: 1.5rem;
4345
- }
4346
- .start-8 {
4347
- inset-inline-start: 2rem;
4348
- }
4349
- .end-0 {
4350
- inset-inline-end: 0;
4351
- }
4352
- .end-1 {
4353
- inset-inline-end: 0.25rem;
4354
- }
4355
- .end-2 {
4356
- inset-inline-end: 0.5rem;
4357
- }
4358
- .end-4 {
4359
- inset-inline-end: 1rem;
4360
- }
4361
- .end-6 {
4362
- inset-inline-end: 1.5rem;
4363
- }
4364
- .end-8 {
4365
- inset-inline-end: 2rem;
4366
- }
4367
- .border-s {
4368
- border-inline-start-width: 1px;
4369
- }
4370
- .border-s-0 {
4371
- border-inline-start-width: 0;
4372
- }
4373
- .border-s-2 {
4374
- border-inline-start-width: 2px;
4375
- }
4376
- .border-s-4 {
4377
- border-inline-start-width: 4px;
4378
- }
4379
- .border-e {
4380
- border-inline-end-width: 1px;
4381
- }
4382
- .border-e-0 {
4383
- border-inline-end-width: 0;
4384
- }
4385
- .border-e-2 {
4386
- border-inline-end-width: 2px;
4387
- }
4388
- .border-e-4 {
4389
- border-inline-end-width: 4px;
4390
- }
4391
- .rounded-s {
4392
- border-start-start-radius: 0.25rem;
4393
- border-end-start-radius: 0.25rem;
4394
- }
4395
- .rounded-s-none {
4396
- border-start-start-radius: 0;
4397
- border-end-start-radius: 0;
4398
- }
4399
- .rounded-s-sm {
4400
- border-start-start-radius: 0.125rem;
4401
- border-end-start-radius: 0.125rem;
4402
- }
4403
- .rounded-s-md {
4404
- border-start-start-radius: 0.375rem;
4405
- border-end-start-radius: 0.375rem;
4406
- }
4407
- .rounded-s-lg {
4408
- border-start-start-radius: 0.5rem;
4409
- border-end-start-radius: 0.5rem;
4410
- }
4411
- .rounded-e {
4412
- border-start-end-radius: 0.25rem;
4413
- border-end-end-radius: 0.25rem;
4414
- }
4415
- .rounded-e-none {
4416
- border-start-end-radius: 0;
4417
- border-end-end-radius: 0;
4418
- }
4419
- .rounded-e-sm {
4420
- border-start-end-radius: 0.125rem;
4421
- border-end-end-radius: 0.125rem;
4422
- }
4423
- .rounded-e-md {
4424
- border-start-end-radius: 0.375rem;
4425
- border-end-end-radius: 0.375rem;
4426
- }
4427
- .rounded-e-lg {
4428
- border-start-end-radius: 0.5rem;
4429
- border-end-end-radius: 0.5rem;
4430
- }
4431
- .text-start {
4432
- text-align: start;
4433
- }
4434
- .text-end {
4435
- text-align: end;
4436
- }
4437
- [dir='rtl'] .rtl\:rotate-180 {
4438
- transform: rotate(180deg);
4439
- }
4440
- [dir='rtl'] .rtl\:scale-x-flip {
4441
- transform: scaleX(-1);
4442
- }
4443
- }
4444
4169
  [data-slot='progress-indicator'] {
4445
4170
  transform-origin: left center;
4446
4171
  }
@@ -4977,14 +4702,6 @@
4977
4702
  font-feature-settings: "lnum";
4978
4703
  }
4979
4704
  }
4980
- h1, h2, h3, h4, h5, h6 {
4981
- margin: 0 !important;
4982
- padding: 0 !important;
4983
- }
4984
- p {
4985
- margin: 0 !important;
4986
- padding: 0 !important;
4987
- }
4988
4705
  @keyframes enter {
4989
4706
  from {
4990
4707
  opacity: var(--tw-enter-opacity, 1);
@@ -5037,48 +4754,6 @@ p {
5037
4754
  inherits: false;
5038
4755
  initial-value: solid;
5039
4756
  }
5040
- @property --tw-gradient-position {
5041
- syntax: "*";
5042
- inherits: false;
5043
- }
5044
- @property --tw-gradient-from {
5045
- syntax: "<color>";
5046
- inherits: false;
5047
- initial-value: #0000;
5048
- }
5049
- @property --tw-gradient-via {
5050
- syntax: "<color>";
5051
- inherits: false;
5052
- initial-value: #0000;
5053
- }
5054
- @property --tw-gradient-to {
5055
- syntax: "<color>";
5056
- inherits: false;
5057
- initial-value: #0000;
5058
- }
5059
- @property --tw-gradient-stops {
5060
- syntax: "*";
5061
- inherits: false;
5062
- }
5063
- @property --tw-gradient-via-stops {
5064
- syntax: "*";
5065
- inherits: false;
5066
- }
5067
- @property --tw-gradient-from-position {
5068
- syntax: "<length-percentage>";
5069
- inherits: false;
5070
- initial-value: 0%;
5071
- }
5072
- @property --tw-gradient-via-position {
5073
- syntax: "<length-percentage>";
5074
- inherits: false;
5075
- initial-value: 50%;
5076
- }
5077
- @property --tw-gradient-to-position {
5078
- syntax: "<length-percentage>";
5079
- inherits: false;
5080
- initial-value: 100%;
5081
- }
5082
4757
  @property --tw-leading {
5083
4758
  syntax: "*";
5084
4759
  inherits: false;
@@ -5217,15 +4892,6 @@ p {
5217
4892
  --tw-skew-x: initial;
5218
4893
  --tw-skew-y: initial;
5219
4894
  --tw-border-style: solid;
5220
- --tw-gradient-position: initial;
5221
- --tw-gradient-from: #0000;
5222
- --tw-gradient-via: #0000;
5223
- --tw-gradient-to: #0000;
5224
- --tw-gradient-stops: initial;
5225
- --tw-gradient-via-stops: initial;
5226
- --tw-gradient-from-position: 0%;
5227
- --tw-gradient-via-position: 50%;
5228
- --tw-gradient-to-position: 100%;
5229
4895
  --tw-leading: initial;
5230
4896
  --tw-font-weight: initial;
5231
4897
  --tw-ordinal: initial;
package/dist/index.d.cts CHANGED
@@ -46,24 +46,6 @@ import { BarSvgProps } from '@nivo/bar';
46
46
  import { PieSvgProps } from '@nivo/pie';
47
47
  import { HeatMapSvgProps } from '@nivo/heatmap';
48
48
 
49
- declare function cn(...inputs: ClassValue[]): string;
50
- /**
51
- * Format number to Instagram-style short format
52
- * @example formatNumber(123456, 'short') => '123K'
53
- * @example formatNumber(123456, 'exact') => '123,456'
54
- */
55
- declare function formatNumber(num: number | undefined, format?: 'exact' | 'short'): string;
56
- /**
57
- * Format date to relative time with absolute on hover (Persian)
58
- * @example formatRelativeTime(new Date()) => '۲ ساعت پیش'
59
- */
60
- declare function formatRelativeTime(date: Date | string | number): string;
61
- /**
62
- * Format date to absolute format (Persian)
63
- * @example formatAbsoluteTime(new Date()) => '۱۵ دی ۱۴۰۳، ۱۵:۳۰'
64
- */
65
- declare function formatAbsoluteTime(date: Date | string | number): string;
66
-
67
49
  /**
68
50
  * Persian/Farsi month names
69
51
  */
@@ -91,7 +73,7 @@ declare function toEnglishDigits(str: string): string;
91
73
  /**
92
74
  * Format a Date object to Persian/Jalali date string
93
75
  */
94
- declare function formatJalaliDate(date: Date, format?: string): string;
76
+ declare function formatJalaliDate(date: Date, formatStr?: string): string;
95
77
  /**
96
78
  * Get Persian month name from a Date object
97
79
  */
@@ -139,23 +121,44 @@ declare function getPersianYearsForDropdown(fromYear: number, toYear: number): A
139
121
  label: string;
140
122
  }>;
141
123
 
124
+ declare function cn(...inputs: ClassValue[]): string;
125
+ /**
126
+ * Format number to Instagram-style short format
127
+ * @example formatNumber(123456, 'short') => '123K'
128
+ * @example formatNumber(123456, 'exact') => '123,456'
129
+ */
130
+ declare function formatNumber(num: number | undefined, format?: 'exact' | 'short'): string;
131
+ /**
132
+ * Format date to relative time with absolute on hover (Persian)
133
+ * @example formatRelativeTime(new Date()) => '۲ ساعت پیش'
134
+ */
135
+ declare function formatRelativeTime(date: Date | string | number): string;
136
+ /**
137
+ * Format date to absolute Jalali (Persian calendar) date string.
138
+ * Uses moment-jalaali for accurate Gregorian → Jalali conversion.
139
+ * @example formatAbsoluteTime(new Date()) => '۱۵ دی ۱۴۰۳، ۱۵:۳۰'
140
+ */
141
+ declare function formatAbsoluteTime(date: Date | string | number): string;
142
+
142
143
  type Icon = LucideIcon;
143
144
  /**
144
145
  * Icon Collection for Parto Design System
145
146
  *
146
147
  * RTL Support Guidelines:
147
148
  * ----------------------
148
- * Directional icons (arrows, chevrons) should be flipped in RTL contexts when they indicate navigation direction.
149
+ * Directional icons (arrows, chevrons) should be flipped in RTL contexts when they
150
+ * indicate navigation direction. Use Tailwind's built-in `rtl:` variant:
149
151
  *
150
- * Usage Examples:
151
- * - For navigation: <Icons.arrowRight className="rtl:rotate-180" />
152
- * - For UI direction: <Icons.chevronRight className="rtl:rotate-180" />
152
+ * - <Icons.arrowRight className="rtl:rotate-180" /> ← navigation/directional
153
+ * - <Icons.chevronRight className="rtl:rotate-180" /> ← submenu indicators
153
154
  *
154
155
  * Icons that should NOT be flipped:
155
156
  * - Non-directional icons (check, close, settings, etc.)
156
157
  * - Icons representing real-world objects
157
158
  */
158
- declare const Icons: Record<string, React$1.FC<React$1.SVGProps<SVGSVGElement>> | LucideIcon>;
159
+ /** Strongly-typed list of all icon names in the Parto Design System */
160
+ type IconName = 'logo' | 'parto' | 'alertCircle' | 'alertTriangle' | 'arrowRight' | 'arrowLeft' | 'bold' | 'building' | 'calendar' | 'check' | 'chevronDown' | 'chevronLeft' | 'chevronRight' | 'chevronUp' | 'circle' | 'clock' | 'close' | 'copy' | 'download' | 'eye' | 'eyeOff' | 'file' | 'fileText' | 'gitHub' | 'heart' | 'home' | 'image' | 'images' | 'inbox' | 'info' | 'instagram' | 'italic' | 'loader' | 'menu' | 'messageCircle' | 'moon' | 'moreHorizontal' | 'moreVertical' | 'plus' | 'rocket' | 'search' | 'settings' | 'share' | 'sparkles' | 'sun' | 'trash' | 'twitter' | 'underline' | 'user' | 'users' | 'video' | 'userCheck' | 'trendingUp' | 'award' | 'crown' | 'minus' | 'imageOff' | 'externalLink' | 'gripVertical' | 'panelLeft' | 'xCircle';
161
+ declare const Icons: Record<IconName, React$1.FC<React$1.SVGProps<SVGSVGElement>> | LucideIcon>;
159
162
 
160
163
  declare function Accordion({ ...props }: React$1.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime.JSX.Element;
161
164
  declare function AccordionItem({ className, ...props }: React$1.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime.JSX.Element;
@@ -1413,4 +1416,4 @@ declare function PartoWordCloud({ words, width, height, className, minFontSize,
1413
1416
 
1414
1417
  declare function useIsMobile(): boolean;
1415
1418
 
1416
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, type AspectRatioType, Autocomplete, type AutocompleteItem, type AutocompleteProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, type ButtonVariantProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommentCard, type CommentCardProps, type CommentTag, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, type DatePickerProps, DateRangePicker, DateRangePickerInline, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyDescription, EmptyIcon, EmptyTitle, EngagementRate, EngagementRateBar, type EngagementRateBarProps, type EngagementRateProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HashtagInput, type HashtagInputProps, HoverCard, HoverCardContent, HoverCardTrigger, type Icon, Icons, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, InputVariants, InstagramPost, type InstagramPostProps, type InstagramProfileInfo, Kbd, KbdGroup, Label, type LoadingVariantProps, type MediaItem, type MediaType, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricCard, MetricCardContent, MetricCardDifferential, MetricCardHeader, MetricCardLabel, MetricCardSparkline, MetricCardValue, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NumberFormat, PERSIAN_MONTHS, PERSIAN_MONTHS_SHORT, PERSIAN_WEEKDAYS, PERSIAN_WEEKDAYS_SHORT, Pagination, PaginationContent, PaginationControlled, type PaginationControlledProps, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PartoBarChart, type PartoBarChartProps, PartoHeatMap, type PartoHeatMapProps, PartoLineChart, type PartoLineChartProps, PartoPieChart, type PartoPieChartProps, PartoWordCloud, type PartoWordCloudProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostStats, ProfileCard, type ProfileCardProps, ProfileInfo, type ProfileInfoProps, Progress, type ProgressProps, RadioCardDescription, RadioCardItem, RadioCardTitle, RadioCards, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, SONNER_DEFAULT_DURATION, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagInput, type TagInputProps, Textarea, type TimeFormat, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserAutocomplete, type UserAutocompleteProps, type UserItem, type WordData, badgeVariants, buttonGroupVariants, buttonVariants, cn, formatAbsoluteTime, formatJalaliDate, formatNumber, formatPersianDateRange, formatRelativeTime, getPersianDay, getPersianMonth, getPersianMonthName, getPersianMonthNameShort, getPersianMonthsForDropdown, getPersianWeekdayName, getPersianYear, getPersianYearsForDropdown, hashtagInputVariants, instagramPostVariants, jalaliToGregorian, navigationMenuTriggerStyle, tagInputVariants, toEnglishDigits, toPersianDigits, toggleVariants, useFormField, useIsMobile, useSidebar };
1419
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, type AspectRatioType, Autocomplete, type AutocompleteItem, type AutocompleteProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, type ButtonVariantProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommentCard, type CommentCardProps, type CommentTag, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, type DatePickerProps, DateRangePicker, DateRangePickerInline, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyDescription, EmptyIcon, EmptyTitle, EngagementRate, EngagementRateBar, type EngagementRateBarProps, type EngagementRateProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HashtagInput, type HashtagInputProps, HoverCard, HoverCardContent, HoverCardTrigger, type Icon, type IconName, Icons, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, InputVariants, InstagramPost, type InstagramPostProps, type InstagramProfileInfo, Kbd, KbdGroup, Label, type LoadingVariantProps, type MediaItem, type MediaType, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricCard, MetricCardContent, MetricCardDifferential, MetricCardHeader, MetricCardLabel, MetricCardSparkline, MetricCardValue, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NumberFormat, PERSIAN_MONTHS, PERSIAN_MONTHS_SHORT, PERSIAN_WEEKDAYS, PERSIAN_WEEKDAYS_SHORT, Pagination, PaginationContent, PaginationControlled, type PaginationControlledProps, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PartoBarChart, type PartoBarChartProps, PartoHeatMap, type PartoHeatMapProps, PartoLineChart, type PartoLineChartProps, PartoPieChart, type PartoPieChartProps, PartoWordCloud, type PartoWordCloudProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostStats, ProfileCard, type ProfileCardProps, ProfileInfo, type ProfileInfoProps, Progress, type ProgressProps, RadioCardDescription, RadioCardItem, RadioCardTitle, RadioCards, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, SONNER_DEFAULT_DURATION, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagInput, type TagInputProps, Textarea, type TimeFormat, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserAutocomplete, type UserAutocompleteProps, type UserItem, type WordData, badgeVariants, buttonGroupVariants, buttonVariants, cn, formatAbsoluteTime, formatJalaliDate, formatNumber, formatPersianDateRange, formatRelativeTime, getPersianDay, getPersianMonth, getPersianMonthName, getPersianMonthNameShort, getPersianMonthsForDropdown, getPersianWeekdayName, getPersianYear, getPersianYearsForDropdown, hashtagInputVariants, instagramPostVariants, jalaliToGregorian, navigationMenuTriggerStyle, tagInputVariants, toEnglishDigits, toPersianDigits, toggleVariants, useFormField, useIsMobile, useSidebar };
package/dist/index.d.ts CHANGED
@@ -46,24 +46,6 @@ import { BarSvgProps } from '@nivo/bar';
46
46
  import { PieSvgProps } from '@nivo/pie';
47
47
  import { HeatMapSvgProps } from '@nivo/heatmap';
48
48
 
49
- declare function cn(...inputs: ClassValue[]): string;
50
- /**
51
- * Format number to Instagram-style short format
52
- * @example formatNumber(123456, 'short') => '123K'
53
- * @example formatNumber(123456, 'exact') => '123,456'
54
- */
55
- declare function formatNumber(num: number | undefined, format?: 'exact' | 'short'): string;
56
- /**
57
- * Format date to relative time with absolute on hover (Persian)
58
- * @example formatRelativeTime(new Date()) => '۲ ساعت پیش'
59
- */
60
- declare function formatRelativeTime(date: Date | string | number): string;
61
- /**
62
- * Format date to absolute format (Persian)
63
- * @example formatAbsoluteTime(new Date()) => '۱۵ دی ۱۴۰۳، ۱۵:۳۰'
64
- */
65
- declare function formatAbsoluteTime(date: Date | string | number): string;
66
-
67
49
  /**
68
50
  * Persian/Farsi month names
69
51
  */
@@ -91,7 +73,7 @@ declare function toEnglishDigits(str: string): string;
91
73
  /**
92
74
  * Format a Date object to Persian/Jalali date string
93
75
  */
94
- declare function formatJalaliDate(date: Date, format?: string): string;
76
+ declare function formatJalaliDate(date: Date, formatStr?: string): string;
95
77
  /**
96
78
  * Get Persian month name from a Date object
97
79
  */
@@ -139,23 +121,44 @@ declare function getPersianYearsForDropdown(fromYear: number, toYear: number): A
139
121
  label: string;
140
122
  }>;
141
123
 
124
+ declare function cn(...inputs: ClassValue[]): string;
125
+ /**
126
+ * Format number to Instagram-style short format
127
+ * @example formatNumber(123456, 'short') => '123K'
128
+ * @example formatNumber(123456, 'exact') => '123,456'
129
+ */
130
+ declare function formatNumber(num: number | undefined, format?: 'exact' | 'short'): string;
131
+ /**
132
+ * Format date to relative time with absolute on hover (Persian)
133
+ * @example formatRelativeTime(new Date()) => '۲ ساعت پیش'
134
+ */
135
+ declare function formatRelativeTime(date: Date | string | number): string;
136
+ /**
137
+ * Format date to absolute Jalali (Persian calendar) date string.
138
+ * Uses moment-jalaali for accurate Gregorian → Jalali conversion.
139
+ * @example formatAbsoluteTime(new Date()) => '۱۵ دی ۱۴۰۳، ۱۵:۳۰'
140
+ */
141
+ declare function formatAbsoluteTime(date: Date | string | number): string;
142
+
142
143
  type Icon = LucideIcon;
143
144
  /**
144
145
  * Icon Collection for Parto Design System
145
146
  *
146
147
  * RTL Support Guidelines:
147
148
  * ----------------------
148
- * Directional icons (arrows, chevrons) should be flipped in RTL contexts when they indicate navigation direction.
149
+ * Directional icons (arrows, chevrons) should be flipped in RTL contexts when they
150
+ * indicate navigation direction. Use Tailwind's built-in `rtl:` variant:
149
151
  *
150
- * Usage Examples:
151
- * - For navigation: <Icons.arrowRight className="rtl:rotate-180" />
152
- * - For UI direction: <Icons.chevronRight className="rtl:rotate-180" />
152
+ * - <Icons.arrowRight className="rtl:rotate-180" /> ← navigation/directional
153
+ * - <Icons.chevronRight className="rtl:rotate-180" /> ← submenu indicators
153
154
  *
154
155
  * Icons that should NOT be flipped:
155
156
  * - Non-directional icons (check, close, settings, etc.)
156
157
  * - Icons representing real-world objects
157
158
  */
158
- declare const Icons: Record<string, React$1.FC<React$1.SVGProps<SVGSVGElement>> | LucideIcon>;
159
+ /** Strongly-typed list of all icon names in the Parto Design System */
160
+ type IconName = 'logo' | 'parto' | 'alertCircle' | 'alertTriangle' | 'arrowRight' | 'arrowLeft' | 'bold' | 'building' | 'calendar' | 'check' | 'chevronDown' | 'chevronLeft' | 'chevronRight' | 'chevronUp' | 'circle' | 'clock' | 'close' | 'copy' | 'download' | 'eye' | 'eyeOff' | 'file' | 'fileText' | 'gitHub' | 'heart' | 'home' | 'image' | 'images' | 'inbox' | 'info' | 'instagram' | 'italic' | 'loader' | 'menu' | 'messageCircle' | 'moon' | 'moreHorizontal' | 'moreVertical' | 'plus' | 'rocket' | 'search' | 'settings' | 'share' | 'sparkles' | 'sun' | 'trash' | 'twitter' | 'underline' | 'user' | 'users' | 'video' | 'userCheck' | 'trendingUp' | 'award' | 'crown' | 'minus' | 'imageOff' | 'externalLink' | 'gripVertical' | 'panelLeft' | 'xCircle';
161
+ declare const Icons: Record<IconName, React$1.FC<React$1.SVGProps<SVGSVGElement>> | LucideIcon>;
159
162
 
160
163
  declare function Accordion({ ...props }: React$1.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime.JSX.Element;
161
164
  declare function AccordionItem({ className, ...props }: React$1.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime.JSX.Element;
@@ -1413,4 +1416,4 @@ declare function PartoWordCloud({ words, width, height, className, minFontSize,
1413
1416
 
1414
1417
  declare function useIsMobile(): boolean;
1415
1418
 
1416
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, type AspectRatioType, Autocomplete, type AutocompleteItem, type AutocompleteProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, type ButtonVariantProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommentCard, type CommentCardProps, type CommentTag, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, type DatePickerProps, DateRangePicker, DateRangePickerInline, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyDescription, EmptyIcon, EmptyTitle, EngagementRate, EngagementRateBar, type EngagementRateBarProps, type EngagementRateProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HashtagInput, type HashtagInputProps, HoverCard, HoverCardContent, HoverCardTrigger, type Icon, Icons, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, InputVariants, InstagramPost, type InstagramPostProps, type InstagramProfileInfo, Kbd, KbdGroup, Label, type LoadingVariantProps, type MediaItem, type MediaType, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricCard, MetricCardContent, MetricCardDifferential, MetricCardHeader, MetricCardLabel, MetricCardSparkline, MetricCardValue, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NumberFormat, PERSIAN_MONTHS, PERSIAN_MONTHS_SHORT, PERSIAN_WEEKDAYS, PERSIAN_WEEKDAYS_SHORT, Pagination, PaginationContent, PaginationControlled, type PaginationControlledProps, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PartoBarChart, type PartoBarChartProps, PartoHeatMap, type PartoHeatMapProps, PartoLineChart, type PartoLineChartProps, PartoPieChart, type PartoPieChartProps, PartoWordCloud, type PartoWordCloudProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostStats, ProfileCard, type ProfileCardProps, ProfileInfo, type ProfileInfoProps, Progress, type ProgressProps, RadioCardDescription, RadioCardItem, RadioCardTitle, RadioCards, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, SONNER_DEFAULT_DURATION, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagInput, type TagInputProps, Textarea, type TimeFormat, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserAutocomplete, type UserAutocompleteProps, type UserItem, type WordData, badgeVariants, buttonGroupVariants, buttonVariants, cn, formatAbsoluteTime, formatJalaliDate, formatNumber, formatPersianDateRange, formatRelativeTime, getPersianDay, getPersianMonth, getPersianMonthName, getPersianMonthNameShort, getPersianMonthsForDropdown, getPersianWeekdayName, getPersianYear, getPersianYearsForDropdown, hashtagInputVariants, instagramPostVariants, jalaliToGregorian, navigationMenuTriggerStyle, tagInputVariants, toEnglishDigits, toPersianDigits, toggleVariants, useFormField, useIsMobile, useSidebar };
1419
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, type AspectRatioType, Autocomplete, type AutocompleteItem, type AutocompleteProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, type ButtonVariantProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommentCard, type CommentCardProps, type CommentTag, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, type DatePickerProps, DateRangePicker, DateRangePickerInline, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyDescription, EmptyIcon, EmptyTitle, EngagementRate, EngagementRateBar, type EngagementRateBarProps, type EngagementRateProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HashtagInput, type HashtagInputProps, HoverCard, HoverCardContent, HoverCardTrigger, type Icon, type IconName, Icons, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, InputVariants, InstagramPost, type InstagramPostProps, type InstagramProfileInfo, Kbd, KbdGroup, Label, type LoadingVariantProps, type MediaItem, type MediaType, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricCard, MetricCardContent, MetricCardDifferential, MetricCardHeader, MetricCardLabel, MetricCardSparkline, MetricCardValue, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NumberFormat, PERSIAN_MONTHS, PERSIAN_MONTHS_SHORT, PERSIAN_WEEKDAYS, PERSIAN_WEEKDAYS_SHORT, Pagination, PaginationContent, PaginationControlled, type PaginationControlledProps, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PartoBarChart, type PartoBarChartProps, PartoHeatMap, type PartoHeatMapProps, PartoLineChart, type PartoLineChartProps, PartoPieChart, type PartoPieChartProps, PartoWordCloud, type PartoWordCloudProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostStats, ProfileCard, type ProfileCardProps, ProfileInfo, type ProfileInfoProps, Progress, type ProgressProps, RadioCardDescription, RadioCardItem, RadioCardTitle, RadioCards, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, SONNER_DEFAULT_DURATION, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagInput, type TagInputProps, Textarea, type TimeFormat, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserAutocomplete, type UserAutocompleteProps, type UserItem, type WordData, badgeVariants, buttonGroupVariants, buttonVariants, cn, formatAbsoluteTime, formatJalaliDate, formatNumber, formatPersianDateRange, formatRelativeTime, getPersianDay, getPersianMonth, getPersianMonthName, getPersianMonthNameShort, getPersianMonthsForDropdown, getPersianWeekdayName, getPersianYear, getPersianYearsForDropdown, hashtagInputVariants, instagramPostVariants, jalaliToGregorian, navigationMenuTriggerStyle, tagInputVariants, toEnglishDigits, toPersianDigits, toggleVariants, useFormField, useIsMobile, useSidebar };