@suphark/ui 0.24.0 → 0.25.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.
@@ -89,6 +89,27 @@ export interface UiText {
89
89
  presence?: Partial<{ online: string; away: string; busy: string; offline: string }>;
90
90
  /** TextareaField (optional) — ข้อความ screen reader ของตัวนับ ใช้ {count} {max} */
91
91
  characterCount?: string;
92
+ /** NumberInput (optional) */
93
+ number?: Partial<{ increment: string; decrement: string }>;
94
+ /** TimePicker / DateTimePicker (optional) */
95
+ time?: Partial<{
96
+ choose: string;
97
+ hour: string;
98
+ minute: string;
99
+ now: string;
100
+ clear: string;
101
+ dateTimePlaceholder: string;
102
+ }>;
103
+ /** TagsInput (optional) — remove ใช้ {tag}, duplicate ใช้ {tag}, max ใช้ {max} */
104
+ tags?: Partial<{ placeholder: string; remove: string; duplicate: string; max: string }>;
105
+ /** StepForm (optional) — progress ใช้ {current} {total} */
106
+ stepForm?: Partial<{
107
+ label: string;
108
+ previous: string;
109
+ next: string;
110
+ submit: string;
111
+ progress: string;
112
+ }>;
92
113
  }
93
114
 
94
115
  export const UI_TEXT_TH: UiText = {
@@ -156,6 +177,28 @@ export const UI_TEXT_TH: UiText = {
156
177
  loading: "กำลังโหลด…",
157
178
  presence: { online: "ออนไลน์", away: "ไม่อยู่", busy: "ไม่ว่าง", offline: "ออฟไลน์" },
158
179
  characterCount: "พิมพ์แล้ว {count} จาก {max} ตัวอักษร",
180
+ number: { increment: "เพิ่ม", decrement: "ลด" },
181
+ time: {
182
+ choose: "เลือกเวลา",
183
+ hour: "ชั่วโมง",
184
+ minute: "นาที",
185
+ now: "ตอนนี้",
186
+ clear: "ล้าง",
187
+ dateTimePlaceholder: "เลือกวันและเวลา",
188
+ },
189
+ tags: {
190
+ placeholder: "พิมพ์แล้วกด Enter",
191
+ remove: "ลบ {tag}",
192
+ duplicate: "มี “{tag}” แล้ว",
193
+ max: "เพิ่มได้สูงสุด {max} รายการ",
194
+ },
195
+ stepForm: {
196
+ label: "ขั้นตอน",
197
+ previous: "ย้อนกลับ",
198
+ next: "ถัดไป",
199
+ submit: "ส่ง",
200
+ progress: "ขั้นที่ {current} จาก {total}",
201
+ },
159
202
  };
160
203
 
161
204
  export const UI_TEXT_EN: UiText = {
@@ -223,6 +266,28 @@ export const UI_TEXT_EN: UiText = {
223
266
  loading: "Loading…",
224
267
  presence: { online: "Online", away: "Away", busy: "Busy", offline: "Offline" },
225
268
  characterCount: "{count} of {max} characters",
269
+ number: { increment: "Increase", decrement: "Decrease" },
270
+ time: {
271
+ choose: "Choose time",
272
+ hour: "Hour",
273
+ minute: "Minute",
274
+ now: "Now",
275
+ clear: "Clear",
276
+ dateTimePlaceholder: "Pick date and time",
277
+ },
278
+ tags: {
279
+ placeholder: "Type and press Enter",
280
+ remove: "Remove {tag}",
281
+ duplicate: "“{tag}” is already added",
282
+ max: "Up to {max} items",
283
+ },
284
+ stepForm: {
285
+ label: "Steps",
286
+ previous: "Back",
287
+ next: "Next",
288
+ submit: "Submit",
289
+ progress: "Step {current} of {total}",
290
+ },
226
291
  };
227
292
 
228
293
  const UiTextContext = createContext<UiText>(UI_TEXT_TH);
package/src/data-table.ts CHANGED
@@ -7,7 +7,18 @@
7
7
  * ```
8
8
  * state ของตารางใน URL (`useTableSearchParams`) ต้องใช้ next/navigation → อยู่ที่ `@suphark/ui/next`
9
9
  */
10
- export * from "./components/data-table";
10
+ export {
11
+ DataTable,
12
+ DataTableColumnHeader,
13
+ DataTableDateRangeFilter,
14
+ DataTableFacetedFilter,
15
+ DataTablePagination,
16
+ type DataTableProps,
17
+ DataTableToolbar,
18
+ DataTableViewOptions,
19
+ type FacetedFilterConfig,
20
+ useDataTable,
21
+ } from "./components/data-table";
11
22
  export { DataTableRowActions } from "./components/data-table/data-table-row-actions";
12
23
  export { DeleteManyButton } from "./components/shared/button/delete-many-button";
13
24
  export {
package/src/index.ts CHANGED
@@ -26,7 +26,20 @@ export {
26
26
  PasswordInput,
27
27
  ProviderButtons,
28
28
  } from "./components/shared/auth-parts";
29
- export * from "./components/shared/button";
29
+ export {
30
+ ActionButton,
31
+ type ActionButtonProps,
32
+ AddNewButton,
33
+ CancelButton,
34
+ ConfirmButton,
35
+ CopyButton,
36
+ type CopyButtonProps,
37
+ DeleteButton,
38
+ FloatingSaveButton,
39
+ PrintButton,
40
+ SaveButton,
41
+ SubmitButton,
42
+ } from "./components/shared/button";
30
43
  export {
31
44
  type CalendarDayContext,
32
45
  type CalendarDayState,
@@ -91,6 +104,7 @@ export { FormFieldRadioCards } from "./components/shared/form/form-field-radio-c
91
104
  export { FormFieldRadioGroup } from "./components/shared/form/form-field-radio-group";
92
105
  export { FormFieldSelect, type SelectOption } from "./components/shared/form/form-field-select";
93
106
  export { CheckboxField, LabeledField } from "./components/shared/form/labeled-field";
107
+ export { NumberInput } from "./components/shared/form/number-input";
94
108
  export { SearchInput, type SearchInputProps } from "./components/shared/form/search-input";
95
109
  export {
96
110
  SimpleSelect,
@@ -100,7 +114,16 @@ export {
100
114
  type SimpleSelectProps,
101
115
  } from "./components/shared/form/simple-select";
102
116
  export { SliderField, type SliderFieldProps } from "./components/shared/form/slider-field";
117
+ export { TagsInput } from "./components/shared/form/tags-input";
103
118
  export { TextareaField } from "./components/shared/form/textarea-field";
119
+ export {
120
+ DateTimePicker,
121
+ parseTimeInput,
122
+ TimeColumns,
123
+ TimePicker,
124
+ type TimeValue,
125
+ toLocalDateTimeString,
126
+ } from "./components/shared/form/time-picker";
104
127
  export {
105
128
  type FormAction,
106
129
  FormMessage,
@@ -186,13 +209,21 @@ export { CardSkeleton, ListSkeleton, TableSkeleton } from "./components/shared/s
186
209
  export { SkipLink } from "./components/shared/skip-link";
187
210
  export { Stat, type StatDelta, StatGrid, type StatTone } from "./components/shared/stat";
188
211
  export { StatusBadge, statusTone, type Tone } from "./components/shared/status-badge";
212
+ export { StepForm, type StepFormStep } from "./components/shared/step-form";
189
213
  export { SwitcherChevron } from "./components/shared/switcher-chevron";
190
214
  export { CodeBlock, type CodeBlockProps } from "./components/shared/text/code-block";
191
215
  export {
192
216
  PrimarySecondaryText,
193
217
  type PrimarySecondaryTextProps,
194
218
  } from "./components/shared/text/primary-secondary-text";
195
- export * from "./components/shared/theme";
219
+ export {
220
+ type Theme,
221
+ ThemeMenuItems,
222
+ ThemeProvider,
223
+ ThemeSwitch,
224
+ ThemeToggle,
225
+ useTheme,
226
+ } from "./components/shared/theme";
196
227
  export { ClientDateFormatter } from "./components/shared/time/client-date-formatter";
197
228
  export { type TreeNode, TreeView, type TreeViewProps } from "./components/shared/tree-view";
198
229
  export {
@@ -212,71 +243,404 @@ export {
212
243
  export { type UserAvatarItem, UserAvatars } from "./components/shared/user-avatars";
213
244
  export { UserIdentity, type UserIdentityProps } from "./components/shared/user-identity";
214
245
  // ---------- shadcn/ui primitives ----------
215
- export * from "./components/ui/accordion";
216
- export * from "./components/ui/alert";
217
- export * from "./components/ui/alert-dialog";
218
- export * from "./components/ui/aspect-ratio";
219
- export * from "./components/ui/attachment";
220
- export * from "./components/ui/avatar";
221
- export * from "./components/ui/badge";
246
+ export {
247
+ Accordion,
248
+ AccordionContent,
249
+ AccordionItem,
250
+ AccordionTrigger,
251
+ } from "./components/ui/accordion";
252
+ export { Alert, AlertAction, AlertDescription, AlertTitle } from "./components/ui/alert";
253
+ export {
254
+ AlertDialog,
255
+ AlertDialogAction,
256
+ AlertDialogCancel,
257
+ AlertDialogContent,
258
+ AlertDialogDescription,
259
+ AlertDialogFooter,
260
+ AlertDialogHeader,
261
+ AlertDialogMedia,
262
+ AlertDialogOverlay,
263
+ AlertDialogPortal,
264
+ AlertDialogTitle,
265
+ AlertDialogTrigger,
266
+ } from "./components/ui/alert-dialog";
267
+ export { AspectRatio } from "./components/ui/aspect-ratio";
268
+ export {
269
+ Attachment,
270
+ AttachmentAction,
271
+ AttachmentActions,
272
+ AttachmentContent,
273
+ AttachmentDescription,
274
+ AttachmentGroup,
275
+ AttachmentMedia,
276
+ AttachmentTitle,
277
+ AttachmentTrigger,
278
+ } from "./components/ui/attachment";
279
+ export {
280
+ Avatar,
281
+ AvatarBadge,
282
+ AvatarFallback,
283
+ AvatarGroup,
284
+ AvatarGroupCount,
285
+ AvatarImage,
286
+ } from "./components/ui/avatar";
287
+ export { Badge, badgeVariants } from "./components/ui/badge";
222
288
  // toast.tsx (Base UI) ไม่อยู่ใน barrel: ชื่อ toast/Toaster ชนกับ sonner ที่แพ็กเกจใช้ — import ตรงจาก @suphark/ui/components/ui/toast ถ้าต้องการ
223
- export * from "./components/ui/breadcrumb";
224
- export * from "./components/ui/bubble";
225
- export * from "./components/ui/button";
226
- export * from "./components/ui/button-group";
227
- export * from "./components/ui/calendar";
228
- export * from "./components/ui/card";
229
- export * from "./components/ui/carousel";
230
- export * from "./components/ui/checkbox";
231
- export * from "./components/ui/collapsible";
232
- export * from "./components/ui/combobox";
233
- export * from "./components/ui/command";
234
- export * from "./components/ui/context-menu";
235
- export * from "./components/ui/date-picker";
236
- export * from "./components/ui/dialog";
237
- export * from "./components/ui/direction";
238
- export * from "./components/ui/drawer";
239
- export * from "./components/ui/dropdown-menu";
240
- export * from "./components/ui/empty";
241
- export * from "./components/ui/field";
242
- export * from "./components/ui/form";
243
- export * from "./components/ui/hover-card";
244
- export * from "./components/ui/input";
245
- export * from "./components/ui/input-group";
246
- export * from "./components/ui/input-otp";
247
- export * from "./components/ui/item";
248
- export * from "./components/ui/kbd";
249
- export * from "./components/ui/label";
250
- export * from "./components/ui/marker";
251
- export * from "./components/ui/menubar";
252
- export * from "./components/ui/message";
253
- export * from "./components/ui/message-scroller";
254
- export * from "./components/ui/native-select";
255
- export * from "./components/ui/navigation-menu";
256
- export * from "./components/ui/pagination";
257
- export * from "./components/ui/popover";
258
- export * from "./components/ui/progress";
259
- export * from "./components/ui/questionnaire";
260
- export * from "./components/ui/radio-group";
261
- export * from "./components/ui/relative-date";
262
- export * from "./components/ui/resizable";
263
- export * from "./components/ui/scroll-area";
264
- export * from "./components/ui/searchable-select";
265
- export * from "./components/ui/select";
266
- export * from "./components/ui/separator";
267
- export * from "./components/ui/sheet";
268
- export * from "./components/ui/sidebar";
269
- export * from "./components/ui/skeleton";
270
- export * from "./components/ui/slider";
271
- export * from "./components/ui/sonner";
272
- export * from "./components/ui/spinner";
273
- export * from "./components/ui/switch";
274
- export * from "./components/ui/table";
275
- export * from "./components/ui/tabs";
276
- export * from "./components/ui/textarea";
277
- export * from "./components/ui/toggle";
278
- export * from "./components/ui/toggle-group";
279
- export * from "./components/ui/tooltip";
289
+ export {
290
+ Breadcrumb,
291
+ BreadcrumbEllipsis,
292
+ BreadcrumbItem,
293
+ BreadcrumbLink,
294
+ BreadcrumbList,
295
+ BreadcrumbPage,
296
+ BreadcrumbSeparator,
297
+ } from "./components/ui/breadcrumb";
298
+ export { Bubble, BubbleContent, BubbleGroup, BubbleReactions } from "./components/ui/bubble";
299
+ export { Button, buttonVariants } from "./components/ui/button";
300
+ export {
301
+ ButtonGroup,
302
+ ButtonGroupSeparator,
303
+ ButtonGroupText,
304
+ buttonGroupVariants,
305
+ } from "./components/ui/button-group";
306
+ export { Calendar, CalendarDayButton } from "./components/ui/calendar";
307
+ export {
308
+ Card,
309
+ CardAction,
310
+ CardContent,
311
+ CardDescription,
312
+ CardFooter,
313
+ CardHeader,
314
+ CardTitle,
315
+ } from "./components/ui/card";
316
+ export {
317
+ Carousel,
318
+ type CarouselApi,
319
+ CarouselContent,
320
+ CarouselItem,
321
+ CarouselNext,
322
+ CarouselPrevious,
323
+ useCarousel,
324
+ } from "./components/ui/carousel";
325
+ export { Checkbox } from "./components/ui/checkbox";
326
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./components/ui/collapsible";
327
+ export {
328
+ ComboboxChip,
329
+ ComboboxChips,
330
+ ComboboxChipsInput,
331
+ ComboboxCollection,
332
+ ComboboxContent,
333
+ ComboboxEmpty,
334
+ ComboboxGroup,
335
+ ComboboxInput,
336
+ ComboboxItem,
337
+ ComboboxLabel,
338
+ ComboboxList,
339
+ ComboboxSeparator,
340
+ ComboboxTrigger,
341
+ ComboboxValue,
342
+ useComboboxAnchor,
343
+ } from "./components/ui/combobox";
344
+ export {
345
+ Command,
346
+ CommandDialog,
347
+ CommandEmpty,
348
+ CommandGroup,
349
+ CommandInput,
350
+ CommandItem,
351
+ CommandList,
352
+ CommandSeparator,
353
+ CommandShortcut,
354
+ } from "./components/ui/command";
355
+ export {
356
+ ContextMenu,
357
+ ContextMenuCheckboxItem,
358
+ ContextMenuContent,
359
+ ContextMenuGroup,
360
+ ContextMenuItem,
361
+ ContextMenuLabel,
362
+ ContextMenuPortal,
363
+ ContextMenuRadioGroup,
364
+ ContextMenuRadioItem,
365
+ ContextMenuSeparator,
366
+ ContextMenuShortcut,
367
+ ContextMenuSub,
368
+ ContextMenuSubContent,
369
+ ContextMenuSubTrigger,
370
+ ContextMenuTrigger,
371
+ } from "./components/ui/context-menu";
372
+ export { DatePicker, parseSmartDateInput } from "./components/ui/date-picker";
373
+ export {
374
+ Dialog,
375
+ DialogClose,
376
+ DialogContent,
377
+ DialogDescription,
378
+ DialogFooter,
379
+ DialogHeader,
380
+ DialogOverlay,
381
+ DialogPortal,
382
+ DialogTitle,
383
+ DialogTrigger,
384
+ } from "./components/ui/dialog";
385
+ export { DirectionProvider, useDirection } from "./components/ui/direction";
386
+ export {
387
+ Drawer,
388
+ DrawerClose,
389
+ DrawerContent,
390
+ DrawerDescription,
391
+ DrawerFooter,
392
+ DrawerHeader,
393
+ DrawerOverlay,
394
+ DrawerPortal,
395
+ DrawerSwipeHandle,
396
+ DrawerTitle,
397
+ DrawerTrigger,
398
+ } from "./components/ui/drawer";
399
+ export {
400
+ DropdownMenu,
401
+ DropdownMenuCheckboxItem,
402
+ DropdownMenuContent,
403
+ DropdownMenuGroup,
404
+ DropdownMenuItem,
405
+ DropdownMenuLabel,
406
+ DropdownMenuPortal,
407
+ DropdownMenuRadioGroup,
408
+ DropdownMenuRadioItem,
409
+ DropdownMenuSeparator,
410
+ DropdownMenuShortcut,
411
+ DropdownMenuSub,
412
+ DropdownMenuSubContent,
413
+ DropdownMenuSubTrigger,
414
+ DropdownMenuTrigger,
415
+ } from "./components/ui/dropdown-menu";
416
+ export {
417
+ Empty,
418
+ EmptyContent,
419
+ EmptyDescription,
420
+ EmptyHeader,
421
+ EmptyMedia,
422
+ EmptyTitle,
423
+ } from "./components/ui/empty";
424
+ export {
425
+ Field,
426
+ FieldContent,
427
+ FieldDescription,
428
+ FieldError,
429
+ FieldGroup,
430
+ FieldLabel,
431
+ FieldLegend,
432
+ FieldSeparator,
433
+ FieldSet,
434
+ FieldTitle,
435
+ } from "./components/ui/field";
436
+ export {
437
+ Form,
438
+ FormControl,
439
+ FormDescription,
440
+ FormField,
441
+ FormItem,
442
+ FormLabel,
443
+ useFormField,
444
+ } from "./components/ui/form";
445
+ export { HoverCard, HoverCardContent, HoverCardTrigger } from "./components/ui/hover-card";
446
+ export { Input } from "./components/ui/input";
447
+ export {
448
+ InputGroup,
449
+ InputGroupAddon,
450
+ InputGroupButton,
451
+ InputGroupInput,
452
+ InputGroupText,
453
+ InputGroupTextarea,
454
+ } from "./components/ui/input-group";
455
+ export {
456
+ InputOTP,
457
+ InputOTPGroup,
458
+ InputOTPSeparator,
459
+ InputOTPSlot,
460
+ } from "./components/ui/input-otp";
461
+ export {
462
+ Item,
463
+ ItemActions,
464
+ ItemContent,
465
+ ItemDescription,
466
+ ItemFooter,
467
+ ItemGroup,
468
+ ItemHeader,
469
+ ItemMedia,
470
+ ItemSeparator,
471
+ ItemTitle,
472
+ } from "./components/ui/item";
473
+ export { Kbd, KbdGroup } from "./components/ui/kbd";
474
+ export { Label } from "./components/ui/label";
475
+ export { Marker, MarkerContent, MarkerIcon, markerVariants } from "./components/ui/marker";
476
+ export {
477
+ Menubar,
478
+ MenubarCheckboxItem,
479
+ MenubarContent,
480
+ MenubarGroup,
481
+ MenubarItem,
482
+ MenubarLabel,
483
+ MenubarMenu,
484
+ MenubarPortal,
485
+ MenubarRadioGroup,
486
+ MenubarRadioItem,
487
+ MenubarSeparator,
488
+ MenubarShortcut,
489
+ MenubarSub,
490
+ MenubarSubContent,
491
+ MenubarSubTrigger,
492
+ MenubarTrigger,
493
+ } from "./components/ui/menubar";
494
+ export {
495
+ Message,
496
+ MessageAvatar,
497
+ MessageContent,
498
+ MessageFooter,
499
+ MessageGroup,
500
+ MessageHeader,
501
+ } from "./components/ui/message";
502
+ export {
503
+ MessageScroller,
504
+ MessageScrollerButton,
505
+ MessageScrollerContent,
506
+ MessageScrollerItem,
507
+ MessageScrollerProvider,
508
+ MessageScrollerViewport,
509
+ useMessageScroller,
510
+ useMessageScrollerScrollable,
511
+ useMessageScrollerVisibility,
512
+ } from "./components/ui/message-scroller";
513
+ export {
514
+ NativeSelect,
515
+ NativeSelectOptGroup,
516
+ NativeSelectOption,
517
+ } from "./components/ui/native-select";
518
+ export {
519
+ NavigationMenu,
520
+ NavigationMenuContent,
521
+ NavigationMenuIndicator,
522
+ NavigationMenuItem,
523
+ NavigationMenuLink,
524
+ NavigationMenuList,
525
+ NavigationMenuPositioner,
526
+ NavigationMenuTrigger,
527
+ navigationMenuTriggerStyle,
528
+ } from "./components/ui/navigation-menu";
529
+ export {
530
+ Pagination,
531
+ PaginationContent,
532
+ PaginationEllipsis,
533
+ PaginationItem,
534
+ PaginationLink,
535
+ PaginationNext,
536
+ PaginationPrevious,
537
+ } from "./components/ui/pagination";
538
+ export {
539
+ Popover,
540
+ PopoverContent,
541
+ PopoverDescription,
542
+ PopoverHeader,
543
+ PopoverTitle,
544
+ PopoverTrigger,
545
+ } from "./components/ui/popover";
546
+ export {
547
+ Progress,
548
+ ProgressIndicator,
549
+ ProgressLabel,
550
+ ProgressTrack,
551
+ ProgressValue,
552
+ } from "./components/ui/progress";
553
+ export {
554
+ Questionnaire,
555
+ QuestionnaireActions,
556
+ QuestionnaireChoice,
557
+ QuestionnaireChoiceDescription,
558
+ QuestionnaireChoices,
559
+ QuestionnaireDescription,
560
+ QuestionnaireError,
561
+ QuestionnaireInput,
562
+ QuestionnaireItem,
563
+ QuestionnaireNext,
564
+ QuestionnairePrevious,
565
+ QuestionnaireProgress,
566
+ QuestionnaireSkip,
567
+ QuestionnaireSubmit,
568
+ QuestionnaireTitle,
569
+ } from "./components/ui/questionnaire";
570
+ export { RadioGroup, RadioGroupItem } from "./components/ui/radio-group";
571
+ export { RelativeDate } from "./components/ui/relative-date";
572
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "./components/ui/resizable";
573
+ export { ScrollArea, ScrollBar } from "./components/ui/scroll-area";
574
+ export { SearchableSelect, type SearchableSelectOption } from "./components/ui/searchable-select";
575
+ export {
576
+ Select,
577
+ SelectContent,
578
+ SelectGroup,
579
+ SelectItem,
580
+ SelectLabel,
581
+ SelectScrollDownButton,
582
+ SelectScrollUpButton,
583
+ SelectSeparator,
584
+ SelectTrigger,
585
+ SelectValue,
586
+ } from "./components/ui/select";
587
+ export { Separator } from "./components/ui/separator";
588
+ export {
589
+ Sheet,
590
+ SheetClose,
591
+ SheetContent,
592
+ SheetDescription,
593
+ SheetFooter,
594
+ SheetHeader,
595
+ SheetTitle,
596
+ SheetTrigger,
597
+ } from "./components/ui/sheet";
598
+ export {
599
+ Sidebar,
600
+ SidebarContent,
601
+ SidebarFooter,
602
+ SidebarGroup,
603
+ SidebarGroupAction,
604
+ SidebarGroupContent,
605
+ SidebarGroupLabel,
606
+ SidebarHeader,
607
+ SidebarInput,
608
+ SidebarInset,
609
+ SidebarMenu,
610
+ SidebarMenuAction,
611
+ SidebarMenuBadge,
612
+ SidebarMenuButton,
613
+ SidebarMenuItem,
614
+ SidebarMenuSkeleton,
615
+ SidebarMenuSub,
616
+ SidebarMenuSubButton,
617
+ SidebarMenuSubItem,
618
+ SidebarProvider,
619
+ SidebarRail,
620
+ SidebarSeparator,
621
+ SidebarTrigger,
622
+ useSidebar,
623
+ } from "./components/ui/sidebar";
624
+ export { Skeleton } from "./components/ui/skeleton";
625
+ export { Slider } from "./components/ui/slider";
626
+ export { Toaster } from "./components/ui/sonner";
627
+ export { Spinner } from "./components/ui/spinner";
628
+ export { Switch } from "./components/ui/switch";
629
+ export {
630
+ Table,
631
+ TableBody,
632
+ TableCaption,
633
+ TableCell,
634
+ TableFooter,
635
+ TableHead,
636
+ TableHeader,
637
+ TableRow,
638
+ } from "./components/ui/table";
639
+ export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants } from "./components/ui/tabs";
640
+ export { Textarea } from "./components/ui/textarea";
641
+ export { Toggle, toggleVariants } from "./components/ui/toggle";
642
+ export { ToggleGroup, ToggleGroupItem } from "./components/ui/toggle-group";
643
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./components/ui/tooltip";
280
644
  // ---------- lib / hooks ----------
281
645
  export { useConfirm } from "./hooks/use-confirm";
282
646
  export { useCopyToClipboard } from "./hooks/use-copy-to-clipboard";
package/src/next.ts CHANGED
@@ -4,7 +4,44 @@
4
4
  */
5
5
 
6
6
  // ---------- app shell (sidebar + header + เนื้อหา) ----------
7
- export * from "./components/app-shell";
7
+ export {
8
+ APP_MAIN_ID,
9
+ AppBrand,
10
+ type AppBrandProps,
11
+ AppNav,
12
+ type AppNavGroup,
13
+ AppNavGroupMenu,
14
+ type AppNavItem,
15
+ type AppNavPinProps,
16
+ AppShell,
17
+ type AppShellProps,
18
+ CommandPalette,
19
+ type CommandPaletteItem,
20
+ type CommandPaletteSection,
21
+ type CommandPaletteSectionItem,
22
+ type CommandPaletteText,
23
+ filterNav,
24
+ flattenNav,
25
+ HeaderBreadcrumbs,
26
+ type HeaderBreadcrumbsProps,
27
+ HeaderCrumb,
28
+ HeaderCrumbs,
29
+ isNavActive,
30
+ isTabActive,
31
+ MobileTabBar,
32
+ type MobileTabItem,
33
+ NavLink,
34
+ type OrganizationOption,
35
+ OrganizationSwitcher,
36
+ type OrganizationSwitcherProps,
37
+ SubNav,
38
+ searchNav,
39
+ TopTabs,
40
+ topLevelTabs,
41
+ UserMenu,
42
+ type UserMenuProps,
43
+ type UserMenuUser,
44
+ } from "./components/app-shell";
8
45
  export { LinkButton, type LinkButtonProps } from "./components/shared/button/base/link-button";
9
46
  export { ConfirmActionButton } from "./components/shared/button/confirm-action-button";
10
47
  export { RefreshButton } from "./components/shared/button/refresh-button";