@7onic-ui/react 0.3.9 → 0.3.11

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.
Files changed (170) hide show
  1. package/README.md +2 -2
  2. package/dist/chart.mjs +3 -9
  3. package/dist/chart.mjs.map +1 -1
  4. package/dist/chunk-2WIIXHOV.mjs +148 -0
  5. package/dist/chunk-2WIIXHOV.mjs.map +1 -0
  6. package/dist/chunk-53MIUPSY.mjs +13 -0
  7. package/dist/chunk-53MIUPSY.mjs.map +1 -0
  8. package/dist/chunk-BN5BEA3V.mjs +195 -0
  9. package/dist/chunk-BN5BEA3V.mjs.map +1 -0
  10. package/dist/chunk-C5D3VRNJ.mjs +504 -0
  11. package/dist/chunk-C5D3VRNJ.mjs.map +1 -0
  12. package/dist/chunk-COW3B62M.mjs +214 -0
  13. package/dist/chunk-COW3B62M.mjs.map +1 -0
  14. package/dist/chunk-CTH6SN5Y.mjs +114 -0
  15. package/dist/chunk-CTH6SN5Y.mjs.map +1 -0
  16. package/dist/chunk-D3NTQNDW.mjs +440 -0
  17. package/dist/chunk-D3NTQNDW.mjs.map +1 -0
  18. package/dist/chunk-DDRYEJBJ.mjs +164 -0
  19. package/dist/chunk-DDRYEJBJ.mjs.map +1 -0
  20. package/dist/chunk-DJAEXCRU.mjs +190 -0
  21. package/dist/chunk-DJAEXCRU.mjs.map +1 -0
  22. package/dist/chunk-DYYQOHQR.mjs +214 -0
  23. package/dist/chunk-DYYQOHQR.mjs.map +1 -0
  24. package/dist/chunk-EG2GTK65.mjs +443 -0
  25. package/dist/chunk-EG2GTK65.mjs.map +1 -0
  26. package/dist/chunk-FHUAH6AJ.mjs +93 -0
  27. package/dist/chunk-FHUAH6AJ.mjs.map +1 -0
  28. package/dist/chunk-GD4YE5AE.mjs +209 -0
  29. package/dist/chunk-GD4YE5AE.mjs.map +1 -0
  30. package/dist/chunk-HHX4GABH.mjs +129 -0
  31. package/dist/chunk-HHX4GABH.mjs.map +1 -0
  32. package/dist/chunk-HS2VRYSX.mjs +148 -0
  33. package/dist/chunk-HS2VRYSX.mjs.map +1 -0
  34. package/dist/chunk-IHHI3LIN.mjs +155 -0
  35. package/dist/chunk-IHHI3LIN.mjs.map +1 -0
  36. package/dist/chunk-IJ2FZ3L5.mjs +159 -0
  37. package/dist/chunk-IJ2FZ3L5.mjs.map +1 -0
  38. package/dist/chunk-IPCIC2BI.mjs +148 -0
  39. package/dist/chunk-IPCIC2BI.mjs.map +1 -0
  40. package/dist/chunk-JCJEVXER.mjs +170 -0
  41. package/dist/chunk-JCJEVXER.mjs.map +1 -0
  42. package/dist/chunk-KBPYAMGS.mjs +157 -0
  43. package/dist/chunk-KBPYAMGS.mjs.map +1 -0
  44. package/dist/chunk-L55ABE4H.mjs +283 -0
  45. package/dist/chunk-L55ABE4H.mjs.map +1 -0
  46. package/dist/chunk-LJJ6K4IU.mjs +318 -0
  47. package/dist/chunk-LJJ6K4IU.mjs.map +1 -0
  48. package/dist/chunk-ND6TUVP2.mjs +148 -0
  49. package/dist/chunk-ND6TUVP2.mjs.map +1 -0
  50. package/dist/chunk-NWFMJWGX.mjs +165 -0
  51. package/dist/chunk-NWFMJWGX.mjs.map +1 -0
  52. package/dist/chunk-PTAPPOKU.mjs +117 -0
  53. package/dist/chunk-PTAPPOKU.mjs.map +1 -0
  54. package/dist/chunk-PVTBM7V7.mjs +316 -0
  55. package/dist/chunk-PVTBM7V7.mjs.map +1 -0
  56. package/dist/chunk-Q5WVLK2L.mjs +77 -0
  57. package/dist/chunk-Q5WVLK2L.mjs.map +1 -0
  58. package/dist/chunk-R7FJEO4K.mjs +252 -0
  59. package/dist/chunk-R7FJEO4K.mjs.map +1 -0
  60. package/dist/chunk-RKSB2N5L.mjs +206 -0
  61. package/dist/chunk-RKSB2N5L.mjs.map +1 -0
  62. package/dist/chunk-S4DGVKBK.mjs +151 -0
  63. package/dist/chunk-S4DGVKBK.mjs.map +1 -0
  64. package/dist/chunk-S4T4PU7F.mjs +114 -0
  65. package/dist/chunk-S4T4PU7F.mjs.map +1 -0
  66. package/dist/chunk-SDDAGZWA.mjs +224 -0
  67. package/dist/chunk-SDDAGZWA.mjs.map +1 -0
  68. package/dist/chunk-SZPZOGPC.mjs +394 -0
  69. package/dist/chunk-SZPZOGPC.mjs.map +1 -0
  70. package/dist/chunk-T5A4APEL.mjs +140 -0
  71. package/dist/chunk-T5A4APEL.mjs.map +1 -0
  72. package/dist/chunk-V5UFWYFI.mjs +255 -0
  73. package/dist/chunk-V5UFWYFI.mjs.map +1 -0
  74. package/dist/chunk-W6YNEU53.mjs +175 -0
  75. package/dist/chunk-W6YNEU53.mjs.map +1 -0
  76. package/dist/chunk-XK52LYR4.mjs +182 -0
  77. package/dist/chunk-XK52LYR4.mjs.map +1 -0
  78. package/dist/chunk-YIAH6KHV.mjs +164 -0
  79. package/dist/chunk-YIAH6KHV.mjs.map +1 -0
  80. package/dist/chunk-YZ7HHFKA.mjs +375 -0
  81. package/dist/chunk-YZ7HHFKA.mjs.map +1 -0
  82. package/dist/chunk-ZDRUTJ4T.mjs +119 -0
  83. package/dist/chunk-ZDRUTJ4T.mjs.map +1 -0
  84. package/dist/components/accordion.mjs +19 -0
  85. package/dist/components/accordion.mjs.map +1 -0
  86. package/dist/components/alert.mjs +15 -0
  87. package/dist/components/alert.mjs.map +1 -0
  88. package/dist/components/avatar.mjs +23 -0
  89. package/dist/components/avatar.mjs.map +1 -0
  90. package/dist/components/badge.mjs +11 -0
  91. package/dist/components/badge.mjs.map +1 -0
  92. package/dist/components/breadcrumb.mjs +23 -0
  93. package/dist/components/breadcrumb.mjs.map +1 -0
  94. package/dist/components/button-group.mjs +11 -0
  95. package/dist/components/button-group.mjs.map +1 -0
  96. package/dist/components/button.mjs +12 -0
  97. package/dist/components/button.mjs.map +1 -0
  98. package/dist/components/card.mjs +25 -0
  99. package/dist/components/card.mjs.map +1 -0
  100. package/dist/components/chat-input.mjs +15 -0
  101. package/dist/components/chat-input.mjs.map +1 -0
  102. package/dist/components/chat-message.mjs +17 -0
  103. package/dist/components/chat-message.mjs.map +1 -0
  104. package/dist/components/checkbox.mjs +12 -0
  105. package/dist/components/checkbox.mjs.map +1 -0
  106. package/dist/components/divider.mjs +11 -0
  107. package/dist/components/divider.mjs.map +1 -0
  108. package/dist/components/drawer.mjs +33 -0
  109. package/dist/components/drawer.mjs.map +1 -0
  110. package/dist/components/dropdown.mjs +35 -0
  111. package/dist/components/dropdown.mjs.map +1 -0
  112. package/dist/components/field.mjs +19 -0
  113. package/dist/components/field.mjs.map +1 -0
  114. package/dist/components/icon-button.mjs +12 -0
  115. package/dist/components/icon-button.mjs.map +1 -0
  116. package/dist/components/input.mjs +12 -0
  117. package/dist/components/input.mjs.map +1 -0
  118. package/dist/components/metric-card.mjs +23 -0
  119. package/dist/components/metric-card.mjs.map +1 -0
  120. package/dist/components/modal.mjs +57 -0
  121. package/dist/components/modal.mjs.map +1 -0
  122. package/dist/components/navigation-menu.mjs +27 -0
  123. package/dist/components/navigation-menu.mjs.map +1 -0
  124. package/dist/components/pagination.mjs +33 -0
  125. package/dist/components/pagination.mjs.map +1 -0
  126. package/dist/components/popover.mjs +23 -0
  127. package/dist/components/popover.mjs.map +1 -0
  128. package/dist/components/progress.mjs +11 -0
  129. package/dist/components/progress.mjs.map +1 -0
  130. package/dist/components/quick-reply.mjs +15 -0
  131. package/dist/components/quick-reply.mjs.map +1 -0
  132. package/dist/components/radio-group.mjs +16 -0
  133. package/dist/components/radio-group.mjs.map +1 -0
  134. package/dist/components/segmented.mjs +15 -0
  135. package/dist/components/segmented.mjs.map +1 -0
  136. package/dist/components/select.mjs +24 -0
  137. package/dist/components/select.mjs.map +1 -0
  138. package/dist/components/skeleton.mjs +11 -0
  139. package/dist/components/skeleton.mjs.map +1 -0
  140. package/dist/components/slider.mjs +12 -0
  141. package/dist/components/slider.mjs.map +1 -0
  142. package/dist/components/spinner.mjs +11 -0
  143. package/dist/components/spinner.mjs.map +1 -0
  144. package/dist/components/switch.mjs +12 -0
  145. package/dist/components/switch.mjs.map +1 -0
  146. package/dist/components/table.mjs +23 -0
  147. package/dist/components/table.mjs.map +1 -0
  148. package/dist/components/tabs.mjs +19 -0
  149. package/dist/components/tabs.mjs.map +1 -0
  150. package/dist/components/textarea.mjs +12 -0
  151. package/dist/components/textarea.mjs.map +1 -0
  152. package/dist/components/toast.mjs +13 -0
  153. package/dist/components/toast.mjs.map +1 -0
  154. package/dist/components/toggle-group.mjs +15 -0
  155. package/dist/components/toggle-group.mjs.map +1 -0
  156. package/dist/components/toggle.mjs +11 -0
  157. package/dist/components/toggle.mjs.map +1 -0
  158. package/dist/components/tooltip.mjs +21 -0
  159. package/dist/components/tooltip.mjs.map +1 -0
  160. package/dist/components/typing-indicator.mjs +11 -0
  161. package/dist/components/typing-indicator.mjs.map +1 -0
  162. package/dist/index.d.ts +11 -2
  163. package/dist/index.js +95 -21
  164. package/dist/index.js.map +1 -1
  165. package/dist/index.mjs +296 -7536
  166. package/dist/index.mjs.map +1 -1
  167. package/llms.txt +50 -32
  168. package/package.json +14 -14
  169. package/dist/chart.d.mts +0 -147
  170. package/dist/index.d.mts +0 -1535
package/llms.txt CHANGED
@@ -530,7 +530,7 @@ import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrig
530
530
  | defaultValue | `string` | — | Uncontrolled default |
531
531
  | onValueChange | `(value: string) => void` | — | Change handler |
532
532
 
533
- **Sub-components:** Select.Trigger, Select.Value, Select.Content, Select.Item, Select.Group, Select.Label, Select.Separator
533
+ **Sub-components:** SelectTrigger, SelectValue, SelectContent, SelectItem, SelectGroup, SelectLabel, SelectSeparator
534
534
 
535
535
  ---
536
536
 
@@ -559,7 +559,7 @@ import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMe
559
559
  | flush | `boolean` | `false` | Full-width items (no padding) |
560
560
  | sideOffset | `number` | `4` | Gap from trigger |
561
561
 
562
- **Sub-components:** DropdownMenu.Trigger, DropdownMenu.Content, DropdownMenu.Item, DropdownMenu.CheckboxItem, DropdownMenu.RadioGroup, DropdownMenu.RadioItem, DropdownMenu.Label, DropdownMenu.Separator, DropdownMenu.Group, DropdownMenu.Sub, DropdownMenu.SubTrigger, DropdownMenu.SubContent, DropdownMenu.Shortcut
562
+ **Sub-components:** DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuGroup, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, DropdownMenuShortcut
563
563
 
564
564
  ---
565
565
 
@@ -609,7 +609,7 @@ import { RadioGroup, RadioGroupItem } from '@7onic-ui/react'
609
609
  | defaultValue | `string` | — | Uncontrolled default |
610
610
  | onValueChange | `(value: string) => void` | — | Change handler |
611
611
 
612
- **Sub-components:** RadioGroup.Item (with `label` prop)
612
+ **Sub-components:** RadioGroupItem (with `label` prop)
613
613
 
614
614
  ---
615
615
 
@@ -689,7 +689,7 @@ import { ToggleGroup, ToggleGroupItem } from '@7onic-ui/react'
689
689
  | defaultValue | `string \| string[]` | — | Uncontrolled default |
690
690
  | onValueChange | `(value) => void` | — | Change handler |
691
691
 
692
- **Sub-components:** ToggleGroup.Item
692
+ **Sub-components:** ToggleGroupItem
693
693
 
694
694
  ---
695
695
 
@@ -715,7 +715,7 @@ import { Segmented, SegmentedItem } from '@7onic-ui/react'
715
715
  | defaultValue | `string` | — | Uncontrolled default |
716
716
  | onValueChange | `(value: string) => void` | — | Change handler |
717
717
 
718
- **Sub-components:** Segmented.Item
718
+ **Sub-components:** SegmentedItem
719
719
  **Note:** Only 4 sizes (no xs) — intentional design decision.
720
720
 
721
721
  ---
@@ -725,10 +725,12 @@ import { Segmented, SegmentedItem } from '@7onic-ui/react'
725
725
  ```tsx
726
726
  import { Slider } from '@7onic-ui/react'
727
727
 
728
- <Slider defaultValue={[50]} showTooltip="auto" />
729
- <Slider defaultValue={[20, 80]} color="primary" />
728
+ <Slider defaultValue={[50]} showTooltip="auto" aria-label="Volume" />
729
+ <Slider defaultValue={[20, 80]} color="primary" aria-label="Price range" />
730
730
  ```
731
731
 
732
+ **Accessible name:** `aria-label` / `aria-labelledby` go on the thumb (the element with `role="slider"`). Inside a `Field`, the `FieldLabel` names the slider automatically.
733
+
732
734
  | Prop | Type | Default | Description |
733
735
  |---|---|---|---|
734
736
  | size | `'sm' \| 'default' \| 'lg'` | `'default'` | Track/thumb size |
@@ -771,7 +773,7 @@ import { Field, FieldCharCount, FieldError, FieldLabel, Input, Textarea } from '
771
773
  | error | `string \| boolean` | — | Error message (passed to children via context) |
772
774
  | disabled | `boolean` | `false` | Disabled state (passed to children via context) |
773
775
 
774
- **Sub-components:** Field.Label (with `required` prop), Field.Error, Field.CharCount
776
+ **Sub-components:** FieldLabel (with `required` prop), FieldError, FieldCharCount
775
777
  **Context:** Input, Textarea, Checkbox, RadioGroup, Select auto-detect Field context for error/disabled/id.
776
778
 
777
779
  ---
@@ -814,7 +816,7 @@ import { Avatar, AvatarFallback, AvatarGroup, AvatarImage } from '@7onic-ui/reac
814
816
  | size | Same as Root | — | Override all children |
815
817
  | shape | Same as Root | — | Override all children |
816
818
 
817
- **Sub-components:** Avatar.Image, Avatar.Fallback, Avatar.Group
819
+ **Sub-components:** AvatarImage, AvatarFallback, AvatarGroup
818
820
 
819
821
  ---
820
822
 
@@ -873,7 +875,7 @@ import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader,
873
875
  | overlay | `boolean` | `false` | Gradient overlay |
874
876
  | overlayOpacity | `10-90` | `60` | Overlay darkness |
875
877
 
876
- **Sub-components:** Card.Image, Card.Header, Card.Title (with `icon`), Card.Description, Card.Action, Card.Content, Card.Footer
878
+ **Sub-components:** CardImage, CardHeader, CardTitle (with `icon`), CardDescription, CardAction, CardContent, CardFooter
877
879
 
878
880
  ---
879
881
 
@@ -920,7 +922,7 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@
920
922
  |---|---|---|---|
921
923
  | align | `'left' \| 'center' \| 'right'` | `'left'` | Text alignment |
922
924
 
923
- **Sub-components:** Table.Header, Table.Body, Table.Footer, Table.Row, Table.Head, Table.Cell, Table.Caption
925
+ **Sub-components:** TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption
924
926
 
925
927
  ---
926
928
 
@@ -949,7 +951,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@7onic-ui/react'
949
951
  | color | `'default' \| 'primary'` | `'default'` | Active tab color |
950
952
  | radius | `'none' \| 'sm' \| 'base' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| 'full'` | `'md'` | Border radius (enclosed/pill) |
951
953
 
952
- **Sub-components:** Tabs.List, Tabs.Trigger, Tabs.Content
954
+ **Sub-components:** TabsList, TabsTrigger, TabsContent
953
955
 
954
956
  ---
955
957
 
@@ -978,7 +980,7 @@ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@7
978
980
  | iconPosition | `'left' \| 'right'` | `'right'` | Chevron placement |
979
981
  | collapsible | `boolean` | `true` | Allow all closed (single only) |
980
982
 
981
- **Sub-components:** Accordion.Item, Accordion.Trigger (with `icon` prop), Accordion.Content
983
+ **Sub-components:** AccordionItem, AccordionTrigger (with `icon` prop), AccordionContent
982
984
 
983
985
  ---
984
986
 
@@ -1038,7 +1040,7 @@ import { Button, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, M
1038
1040
  | scrollBehavior | `'inside' \| 'outside'` | `'outside'` | Scroll target |
1039
1041
  | showCloseButton | `boolean` | `true` | Show X button |
1040
1042
 
1041
- **Sub-components:** Modal.Trigger, Modal.Portal, Modal.Overlay, Modal.Content, Modal.Header, Modal.Title, Modal.Description, Modal.Body, Modal.Footer, Modal.Close
1043
+ **Sub-components:** ModalTrigger, ModalPortal, ModalOverlay, ModalContent, ModalHeader, ModalTitle, ModalDescription, ModalBody, ModalFooter, ModalClose
1042
1044
 
1043
1045
  **Required structure:** Portal → Overlay + Content. Don't forget Portal and Overlay.
1044
1046
 
@@ -1074,7 +1076,7 @@ import { AlertModal, AlertModalAction, AlertModalBody, AlertModalCancel, AlertMo
1074
1076
  |---|---|---|---|
1075
1077
  | size | `'xs' \| 'sm'` | `'sm'` | AlertModal width (smaller than Modal by design) |
1076
1078
 
1077
- **Sub-components:** AlertModal.Trigger, AlertModal.Portal, AlertModal.Overlay, AlertModal.Content, AlertModal.Header, AlertModal.Title, AlertModal.Description, AlertModal.Body, AlertModal.Footer, AlertModal.Action, AlertModal.Cancel
1079
+ **Sub-components:** AlertModalTrigger, AlertModalPortal, AlertModalOverlay, AlertModalContent, AlertModalHeader, AlertModalTitle, AlertModalDescription, AlertModalBody, AlertModalFooter, AlertModalAction, AlertModalCancel
1078
1080
 
1079
1081
  **Required structure:** Portal → Overlay + Content (same as Modal). Use for destructive confirmations — renders as `role="alertdialog"` via Radix AlertDialog primitive. No close button by default (force user to Action or Cancel).
1080
1082
 
@@ -1110,7 +1112,7 @@ import { Button, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerFooter, D
1110
1112
  | size | `'sm' \| 'md' \| 'lg' \| 'xl' \| 'full'` | `'md'` | Width/height |
1111
1113
  | showCloseButton | `boolean` | `true` | Show X button |
1112
1114
 
1113
- **Sub-components:** Drawer.Trigger, Drawer.Portal, Drawer.Overlay, Drawer.Content, Drawer.Header, Drawer.Title, Drawer.Description, Drawer.Body, Drawer.Footer, Drawer.Close
1115
+ **Sub-components:** DrawerTrigger, DrawerPortal, DrawerOverlay, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, DrawerBody, DrawerFooter, DrawerClose
1114
1116
 
1115
1117
  ---
1116
1118
 
@@ -1146,8 +1148,8 @@ import { Button, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipPr
1146
1148
  | showArrow | `boolean` | `true` | Show arrow |
1147
1149
  | sideOffset | `number` | `6` | Gap from trigger |
1148
1150
 
1149
- **⚠️ Tooltip.Provider is required** — wrap your app or section with it.
1150
- **Sub-components:** Tooltip.Provider, Tooltip.Trigger, Tooltip.Content, Tooltip.Arrow, Tooltip.Portal
1151
+ **⚠️ TooltipProvider is required** — wrap your app or section with it.
1152
+ **Sub-components:** TooltipProvider, TooltipTrigger, TooltipContent, TooltipArrow, TooltipPortal
1151
1153
 
1152
1154
  ---
1153
1155
 
@@ -1177,7 +1179,7 @@ import { Button, Popover, PopoverArrow, PopoverContent, PopoverPortal, PopoverTr
1177
1179
  | showArrow | `boolean` | `true` | Show arrow |
1178
1180
  | showClose | `boolean` | `false` | Show X button |
1179
1181
 
1180
- **Sub-components:** Popover.Trigger, Popover.Content, Popover.Arrow, Popover.Close, Popover.Anchor, Popover.Portal
1182
+ **Sub-components:** PopoverTrigger, PopoverContent, PopoverArrow, PopoverClose, PopoverAnchor, PopoverPortal
1181
1183
 
1182
1184
  **Height:** PopoverContent never grows past the space left in the viewport; taller content scrolls inside it. Put layout classes (`flex`, `grid`, `gap-*`) on your own child element, not on `PopoverContent`.
1183
1185
 
@@ -1211,7 +1213,7 @@ import { Alert, AlertDescription, AlertTitle } from '@7onic-ui/react'
1211
1213
  | icon | `ReactNode` | auto | Custom icon (auto-selects by color) |
1212
1214
  | hideIcon | `boolean` | `false` | Hide icon |
1213
1215
 
1214
- **Sub-components:** Alert.Title, Alert.Description
1216
+ **Sub-components:** AlertTitle, AlertDescription
1215
1217
 
1216
1218
  ---
1217
1219
 
@@ -1371,14 +1373,14 @@ import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbP
1371
1373
  | itemsBeforeCollapse | `number` | `1` | Items before ellipsis |
1372
1374
  | itemsAfterCollapse | `number` | `1` | Items after ellipsis |
1373
1375
 
1374
- **Sub-components:** Breadcrumb.List, Breadcrumb.Item, Breadcrumb.Link (with `asChild`), Breadcrumb.Page, Breadcrumb.Separator, Breadcrumb.Ellipsis
1376
+ **Sub-components:** BreadcrumbList, BreadcrumbItem, BreadcrumbLink (with `asChild`), BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis
1375
1377
 
1376
1378
  ---
1377
1379
 
1378
1380
  ### Pagination
1379
1381
 
1380
1382
  ```tsx
1381
- import { Pagination, PaginationContent, PaginationItems, PaginationNext, PaginationPrevious } from '@7onic-ui/react'
1383
+ import { Pagination, PaginationContent, PaginationItem, PaginationItems, PaginationNext, PaginationPrevious } from '@7onic-ui/react'
1382
1384
 
1383
1385
  {/* Quick mode — withControls (default: true), withEdges (default: false) */}
1384
1386
  <Pagination total={10} defaultValue={1} />
@@ -1388,9 +1390,13 @@ import { Pagination, PaginationContent, PaginationItems, PaginationNext, Paginat
1388
1390
  {/* Compound mode (custom layout) */}
1389
1391
  <Pagination total={20} value={page} onChange={setPage}>
1390
1392
  <PaginationContent>
1391
- <PaginationPrevious />
1393
+ <PaginationItem>
1394
+ <PaginationPrevious />
1395
+ </PaginationItem>
1392
1396
  <PaginationItems />
1393
- <PaginationNext />
1397
+ <PaginationItem>
1398
+ <PaginationNext />
1399
+ </PaginationItem>
1394
1400
  </PaginationContent>
1395
1401
  </Pagination>
1396
1402
  ```
@@ -1412,7 +1418,7 @@ import { Pagination, PaginationContent, PaginationItems, PaginationNext, Paginat
1412
1418
  | loop | `boolean` | `false` | Wrap around |
1413
1419
  | disabled | `boolean` | `false` | Disabled state |
1414
1420
 
1415
- **Sub-components:** Pagination.Content, Pagination.Item, Pagination.Link, Pagination.Previous, Pagination.Next, Pagination.First, Pagination.Last, Pagination.Ellipsis, Pagination.Items
1421
+ **Sub-components:** PaginationContent, PaginationItem, PaginationLink, PaginationPrevious, PaginationNext, PaginationFirst, PaginationLast, PaginationEllipsis, PaginationItems
1416
1422
 
1417
1423
  ---
1418
1424
 
@@ -1477,7 +1483,7 @@ import { NavigationMenu, NavigationMenuContent, NavigationMenuGroup, NavigationM
1477
1483
  |---|---|---|---|
1478
1484
  | color | `'default' \| 'primary'` | `'default'` | Indicator color (horizontal variant only) |
1479
1485
 
1480
- **Sub-components:** NavigationMenu.List, NavigationMenu.Item, NavigationMenu.Trigger, NavigationMenu.Content, NavigationMenu.Link, NavigationMenu.Group (vertical only, with `label`), NavigationMenu.Indicator (horizontal only), NavigationMenu.Viewport
1486
+ **Sub-components:** NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuContent, NavigationMenuLink, NavigationMenuGroup (vertical only, with `label`), NavigationMenuIndicator (horizontal only), NavigationMenuViewport
1481
1487
 
1482
1488
  ---
1483
1489
 
@@ -1617,7 +1623,7 @@ import { MetricCard, MetricCardDescription, MetricCardHeader, MetricCardSymbol,
1617
1623
  |---|---|---|---|
1618
1624
  | direction | `'up' \| 'down' \| 'neutral'` | — | Trend arrow + color |
1619
1625
 
1620
- **Sub-components:** MetricCard.Header, MetricCard.Title, MetricCard.Value, MetricCard.Trend, MetricCard.Description, MetricCard.Symbol
1626
+ **Sub-components:** MetricCardHeader, MetricCardTitle, MetricCardValue, MetricCardTrend, MetricCardDescription, MetricCardSymbol
1621
1627
 
1622
1628
  ---
1623
1629
 
@@ -2005,7 +2011,7 @@ toast.success('Done')
2005
2011
  ```
2006
2012
 
2007
2013
  **Use `asChild` when combining 7onic components with routing `<Link>`.**
2008
- Components that support `asChild`: Button, IconButton, Badge, Card, Modal.Trigger, Modal.Close, Drawer.Trigger, Drawer.Close, DropdownMenu.Item, Breadcrumb.Link, NavigationMenu.Link, Tooltip.Trigger, Popover.Trigger
2014
+ Components that support `asChild`: Button, IconButton, Badge, Card, ModalTrigger, ModalClose, DrawerTrigger, DrawerClose, DropdownMenuItem, BreadcrumbLink, NavigationMenuLink, TooltipTrigger, PopoverTrigger
2009
2015
 
2010
2016
  ---
2011
2017
 
@@ -2060,10 +2066,22 @@ import { Field, FieldCharCount, FieldError, FieldLabel, Input, Textarea } from '
2060
2066
  </Field>
2061
2067
  ```
2062
2068
 
2063
- **Field context auto-connects** to Input, Textarea, Select, Checkbox, RadioGroup:
2064
- - Passes `error` state
2065
- - Passes `disabled` state
2066
- - Auto-generates matching `id` / `htmlFor` / `aria-describedby`
2069
+ **Field context auto-connects** to Input, Textarea, Select, Checkbox, Switch, RadioGroup, Slider:
2070
+ - Passes `disabled` state (and `error` to Input / Textarea)
2071
+ - One control (Input, Textarea, SelectTrigger, a Checkbox / Switch without its own `label`): `FieldLabel` targets it via matching `id` / `htmlFor`; Input / Textarea also get `aria-describedby` for FieldError / FieldCharCount
2072
+ - A group (several Checkbox / Switch each with their own `label`): every item keeps a unique id, and the Field becomes `role="group"` named by `FieldLabel` — clicking an item label toggles that item
2073
+ - RadioGroup and Slider: named by `FieldLabel` via `aria-labelledby`
2074
+
2075
+ ```tsx
2076
+ <Field>
2077
+ <FieldLabel>Notifications</FieldLabel>
2078
+ <div className="flex flex-col gap-2">
2079
+ <Checkbox defaultChecked label="Email" />
2080
+ <Checkbox label="Push" />
2081
+ <Checkbox label="SMS" />
2082
+ </div>
2083
+ </Field>
2084
+ ```
2067
2085
 
2068
2086
  ---
2069
2087
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@7onic-ui/react",
3
- "version": "0.3.9",
3
+ "version": "0.3.11",
4
4
  "private": false,
5
5
  "sideEffects": [
6
6
  "*.css"
@@ -19,7 +19,8 @@
19
19
  "types": "./dist/chart.d.ts",
20
20
  "import": "./dist/chart.mjs",
21
21
  "require": "./dist/chart.js"
22
- }
22
+ },
23
+ "./package.json": "./package.json"
23
24
  },
24
25
  "typesVersions": {
25
26
  "*": {
@@ -37,10 +38,10 @@
37
38
  "dev:clean": "rm -rf .next && next dev",
38
39
  "build": "next build",
39
40
  "build:clean": "rm -rf .next && next build",
40
- "build:lib": "tsup",
41
+ "build:lib": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsup",
41
42
  "start": "next start",
42
- "lint": "eslint . --ext .ts,.tsx",
43
- "lint:fix": "eslint . --ext .ts,.tsx --fix",
43
+ "lint": "eslint .",
44
+ "lint:fix": "eslint . --fix",
44
45
  "format": "prettier --write \"src/**/*.{ts,tsx}\"",
45
46
  "typecheck": "tsc --noEmit",
46
47
  "sync-tokens": "tsx scripts/run-sync.ts",
@@ -48,6 +49,7 @@
48
49
  "build:7onic": "node scripts/build-7onic-cli.js",
49
50
  "generate:registry": "tsx scripts/generate-registry.ts",
50
51
  "verify:registry": "tsx scripts/generate-registry.ts && git diff --exit-code cli/src/registry/index.ts",
52
+ "verify:page-intl": "tsx scripts/verify-page-intl.ts",
51
53
  "verify:components": "tsx scripts/verify-components.ts",
52
54
  "verify:framework-compat": "tsx scripts/verify-framework-compat.ts",
53
55
  "verify:llms-examples": "tsx scripts/verify-llms-examples.ts",
@@ -96,22 +98,20 @@
96
98
  "devDependencies": {
97
99
  "@7onic-ui/tokens": "file:./tokens",
98
100
  "@clack/prompts": "^1.2.0",
99
- "@playwright/test": "^1.59.1",
101
+ "@eslint/js": "^9.39.5",
102
+ "@playwright/test": "^1.64.1",
100
103
  "@types/node": "^20.14.0",
101
104
  "@types/react": "^19.0.0",
102
105
  "@types/react-dom": "^19.0.0",
103
- "@typescript-eslint/eslint-plugin": "^7.0.0",
104
- "@typescript-eslint/parser": "^7.0.0",
105
106
  "autoprefixer": "^10.4.19",
106
107
  "cmdk": "^1.1.1",
107
- "eslint": "^8.57.0",
108
- "eslint-config-next": "^15.5.28",
109
- "eslint-config-prettier": "^9.1.0",
110
- "eslint-plugin-react": "^7.34.0",
111
- "eslint-plugin-react-hooks": "^4.6.0",
108
+ "eslint": "^9.39.5",
109
+ "eslint-config-next": "^16.4.3",
110
+ "eslint-config-prettier": "^10.1.8",
111
+ "eslint-plugin-react": "^7.37.5",
112
112
  "jsonc-parser": "^3.3.1",
113
113
  "lucide-react": "^0.400.0",
114
- "next": "^15.5.28",
114
+ "next": "^16.4.3",
115
115
  "next-intl": "^4.14.9",
116
116
  "picocolors": "^1.1.1",
117
117
  "postcss": "^8.5.31",
package/dist/chart.d.mts DELETED
@@ -1,147 +0,0 @@
1
- import * as React from 'react';
2
- import * as RechartsPrimitive from 'recharts';
3
-
4
- declare const THEMES: {
5
- readonly light: "";
6
- readonly dark: ".dark";
7
- };
8
- type ChartConfig = {
9
- [k in string]: {
10
- label?: React.ReactNode;
11
- icon?: React.ComponentType;
12
- } & ({
13
- color?: string;
14
- theme?: never;
15
- } | {
16
- color?: never;
17
- theme: Record<keyof typeof THEMES, string>;
18
- });
19
- };
20
- type ChartContextProps = {
21
- config: ChartConfig;
22
- hoverFade: boolean;
23
- activeIndex: number | null;
24
- setActiveIndex: (index: number | null) => void;
25
- activeDataKey: string | null;
26
- setActiveDataKey: (key: string | null) => void;
27
- };
28
- declare function useChart(): ChartContextProps;
29
- declare function ChartContainer({ id, className, children, config, hoverFade, ...props }: React.ComponentProps<'div'> & {
30
- config: ChartConfig;
31
- /** Enable hover-to-highlight: hovered bar group stays full opacity, others fade. */
32
- hoverFade?: boolean;
33
- children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];
34
- }): React.JSX.Element;
35
- declare const ChartStyle: ({ id, config }: {
36
- id: string;
37
- config: ChartConfig;
38
- }) => React.JSX.Element;
39
- type ChartBarRadius = 'none' | 'sm' | 'base' | 'md' | 'lg';
40
- type ChartBarVariant = 'solid' | 'outline';
41
- type ChartBarProps = Omit<React.ComponentProps<typeof RechartsPrimitive.Bar>, 'radius'> & {
42
- /** Named radius token. Auto-adapts corners based on layout and stack position. */
43
- radius?: ChartBarRadius;
44
- /** 'horizontal' rounds the right side (away from Y-axis). Default: 'vertical' */
45
- layout?: 'vertical' | 'horizontal';
46
- /** 'bottom' rounds the bottom corners (base of a stack). Default: 'top' */
47
- stackPosition?: 'top' | 'bottom';
48
- /** 'outline' renders a thick border with a semi-transparent fill. Default: 'solid' */
49
- variant?: ChartBarVariant;
50
- };
51
- declare function ChartBar({ radius, layout, stackPosition, variant, fill, stackId, ...props }: ChartBarProps): React.JSX.Element;
52
- declare function ChartTooltip(props: React.ComponentProps<typeof RechartsPrimitive.Tooltip>): React.JSX.Element;
53
- type TooltipPayloadItem = {
54
- dataKey?: string | number;
55
- name?: string;
56
- value?: number | string;
57
- type?: string;
58
- color?: string;
59
- payload?: Record<string, unknown>;
60
- fill?: string;
61
- };
62
- type ChartTooltipContentProps = React.ComponentProps<'div'> & {
63
- active?: boolean;
64
- payload?: TooltipPayloadItem[];
65
- label?: string;
66
- labelFormatter?: (value: unknown, payload: TooltipPayloadItem[]) => React.ReactNode;
67
- labelClassName?: string;
68
- formatter?: (value: unknown, name: string, item: TooltipPayloadItem, index: number, payload: Record<string, unknown>) => React.ReactNode;
69
- color?: string;
70
- hideLabel?: boolean;
71
- hideIndicator?: boolean;
72
- indicator?: 'line' | 'dot' | 'dashed';
73
- nameKey?: string;
74
- labelKey?: string;
75
- };
76
- declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: ChartTooltipContentProps): React.JSX.Element | null;
77
- declare const ChartLegend: typeof RechartsPrimitive.Legend;
78
- type LegendPayloadItem = {
79
- value?: string;
80
- type?: string;
81
- color?: string;
82
- dataKey?: string;
83
- };
84
- type ChartLegendContentProps = React.ComponentProps<'div'> & {
85
- payload?: LegendPayloadItem[];
86
- verticalAlign?: 'top' | 'middle' | 'bottom';
87
- align?: 'left' | 'center' | 'right';
88
- /** Recharts passes layout when Legend uses layout prop */
89
- layout?: 'horizontal' | 'vertical';
90
- hideIcon?: boolean;
91
- nameKey?: string;
92
- };
93
- declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, align, layout, nameKey, }: ChartLegendContentProps): React.JSX.Element | null;
94
- type ChartXAxisProps = React.ComponentProps<typeof RechartsPrimitive.XAxis>;
95
- type ChartYAxisProps = React.ComponentProps<typeof RechartsPrimitive.YAxis>;
96
- declare function ChartXAxis({ tick, padding, ...props }: ChartXAxisProps): React.JSX.Element;
97
- declare function ChartYAxis({ tick, width, ...props }: ChartYAxisProps): React.JSX.Element;
98
- type ChartLineType = 'linear' | 'monotone' | 'step' | 'natural';
99
- type ChartLineVariant = 'solid' | 'dashed';
100
- type ChartLineProps = Omit<React.ComponentProps<typeof RechartsPrimitive.Line>, 'type' | 'dot' | 'activeDot'> & {
101
- /** Curve interpolation type. Default: 'monotone' */
102
- type?: ChartLineType;
103
- /** Line style. 'dashed' applies stroke-dasharray. Default: 'solid' */
104
- variant?: ChartLineVariant;
105
- /** Show data point dots. Default: true */
106
- dot?: boolean;
107
- /** Show highlighted dot on hover. Default: true */
108
- activeDot?: boolean;
109
- };
110
- declare function ChartLine({ type, variant, dot: showDot, activeDot: showActiveDot, stroke, dataKey, ...props }: ChartLineProps): React.JSX.Element;
111
- type ChartAreaType = 'linear' | 'monotone' | 'step' | 'natural';
112
- type ChartAreaVariant = 'solid' | 'gradient';
113
- type ChartAreaProps = Omit<React.ComponentProps<typeof RechartsPrimitive.Area>, 'type' | 'dot' | 'activeDot'> & {
114
- /** Curve interpolation type. Default: 'monotone' */
115
- type?: ChartAreaType;
116
- /** Fill style. 'gradient' auto-generates an SVG linearGradient. Default: 'solid' */
117
- variant?: ChartAreaVariant;
118
- /** Show data point dots. Default: true */
119
- dot?: boolean;
120
- /** Show highlighted dot on hover. Default: true */
121
- activeDot?: boolean;
122
- /** Fill opacity for this area (0–1). Default: 0.4 */
123
- fillOpacity?: number;
124
- };
125
- declare function ChartArea({ type, variant, dot: showDot, activeDot: showActiveDot, fillOpacity, stroke, fill, dataKey, ...props }: ChartAreaProps): React.JSX.Element;
126
- type ChartPieVariant = 'pie' | 'donut';
127
- type ChartPieLabel = 'none' | 'outside' | 'inside';
128
- type ChartPieLabelContent = 'value' | 'percent';
129
- type ChartPieProps = Omit<React.ComponentProps<typeof RechartsPrimitive.Pie>, 'label' | 'labelLine' | 'activeShape'> & {
130
- /** 'donut' applies innerRadius automatically. Default: 'pie' */
131
- variant?: ChartPieVariant;
132
- /** Label position. Default: 'none' */
133
- label?: ChartPieLabel;
134
- /** Label display content. Default: 'value' */
135
- labelContent?: ChartPieLabelContent;
136
- /** Hover expand effect. Default: true */
137
- activeShape?: boolean;
138
- /** Override inner radius (default: 0 for pie, 60 for donut) */
139
- innerRadius?: number;
140
- /** Padding angle between slices (degrees). Default: 0 */
141
- paddingAngle?: number;
142
- /** Corner radius for slices. Default: 0 */
143
- cornerRadius?: number;
144
- };
145
- declare function ChartPie({ variant, label: labelMode, labelContent, activeShape: showActiveShape, innerRadius, paddingAngle, cornerRadius, startAngle, endAngle, ...props }: ChartPieProps): React.JSX.Element;
146
-
147
- export { ChartContainer as Chart, ChartArea, type ChartAreaType, type ChartAreaVariant, ChartBar, type ChartBarRadius, type ChartBarVariant, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartLine, type ChartLineType, type ChartLineVariant, ChartPie, type ChartPieLabel, type ChartPieLabelContent, type ChartPieVariant, ChartStyle, ChartTooltip, ChartTooltipContent, ChartXAxis, ChartYAxis, useChart };