@ttt-productions/ui-core 0.11.32 → 0.11.34

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 (218) hide show
  1. package/dist/browser/index.d.ts +2 -2
  2. package/dist/browser/index.js +1 -1
  3. package/dist/browser/index.js.map +1 -1
  4. package/dist/browser/reload-recovery-watch.d.ts +2 -2
  5. package/dist/browser/reload-recovery-watch.d.ts.map +1 -1
  6. package/dist/browser/reload-recovery-watch.js +5 -5
  7. package/dist/browser/reload-recovery-watch.js.map +1 -1
  8. package/dist/index.d.ts +3 -3
  9. package/dist/index.js +3 -3
  10. package/dist/index.js.map +1 -1
  11. package/dist/lib/format-numbers.js +2 -2
  12. package/dist/lib/format-numbers.js.map +1 -1
  13. package/dist/lib/reload-recovery.js +13 -13
  14. package/dist/lib/reload-recovery.js.map +1 -1
  15. package/dist/lib/utils.js.map +1 -1
  16. package/dist/react/components/accordion.d.ts +2 -2
  17. package/dist/react/components/accordion.d.ts.map +1 -1
  18. package/dist/react/components/accordion.js +8 -8
  19. package/dist/react/components/accordion.js.map +1 -1
  20. package/dist/react/components/action-row.d.ts +32 -0
  21. package/dist/react/components/action-row.d.ts.map +1 -0
  22. package/dist/react/components/action-row.js +16 -0
  23. package/dist/react/components/action-row.js.map +1 -0
  24. package/dist/react/components/alert-dialog.d.ts +2 -2
  25. package/dist/react/components/alert-dialog.d.ts.map +1 -1
  26. package/dist/react/components/alert-dialog.js +15 -15
  27. package/dist/react/components/alert-dialog.js.map +1 -1
  28. package/dist/react/components/alert.d.ts +2 -2
  29. package/dist/react/components/alert.d.ts.map +1 -1
  30. package/dist/react/components/alert.js +12 -12
  31. package/dist/react/components/alert.js.map +1 -1
  32. package/dist/react/components/avatar.d.ts +2 -2
  33. package/dist/react/components/avatar.d.ts.map +1 -1
  34. package/dist/react/components/avatar.js +7 -7
  35. package/dist/react/components/avatar.js.map +1 -1
  36. package/dist/react/components/badge.d.ts +2 -2
  37. package/dist/react/components/badge.d.ts.map +1 -1
  38. package/dist/react/components/badge.js +9 -9
  39. package/dist/react/components/badge.js.map +1 -1
  40. package/dist/react/components/button.d.ts +2 -2
  41. package/dist/react/components/button.d.ts.map +1 -1
  42. package/dist/react/components/button.js +28 -28
  43. package/dist/react/components/button.js.map +1 -1
  44. package/dist/react/components/card.d.ts +1 -1
  45. package/dist/react/components/card.d.ts.map +1 -1
  46. package/dist/react/components/card.js +15 -15
  47. package/dist/react/components/card.js.map +1 -1
  48. package/dist/react/components/checkbox.d.ts +2 -2
  49. package/dist/react/components/checkbox.d.ts.map +1 -1
  50. package/dist/react/components/checkbox.js +6 -6
  51. package/dist/react/components/checkbox.js.map +1 -1
  52. package/dist/react/components/collapsible.d.ts +1 -1
  53. package/dist/react/components/collapsible.d.ts.map +1 -1
  54. package/dist/react/components/collapsible.js +2 -2
  55. package/dist/react/components/collapsible.js.map +1 -1
  56. package/dist/react/components/consequence-dialog.d.ts.map +1 -1
  57. package/dist/react/components/consequence-dialog.js +4 -2
  58. package/dist/react/components/consequence-dialog.js.map +1 -1
  59. package/dist/react/components/date-picker.d.ts +1 -1
  60. package/dist/react/components/date-picker.d.ts.map +1 -1
  61. package/dist/react/components/date-picker.js +102 -66
  62. package/dist/react/components/date-picker.js.map +1 -1
  63. package/dist/react/components/date-time-picker.d.ts +1 -1
  64. package/dist/react/components/date-time-picker.d.ts.map +1 -1
  65. package/dist/react/components/date-time-picker.js +20 -18
  66. package/dist/react/components/date-time-picker.js.map +1 -1
  67. package/dist/react/components/dialog.d.ts +2 -2
  68. package/dist/react/components/dialog.d.ts.map +1 -1
  69. package/dist/react/components/dialog.js +14 -14
  70. package/dist/react/components/dialog.js.map +1 -1
  71. package/dist/react/components/dropdown-menu.d.ts +2 -2
  72. package/dist/react/components/dropdown-menu.d.ts.map +1 -1
  73. package/dist/react/components/dropdown-menu.js +23 -18
  74. package/dist/react/components/dropdown-menu.js.map +1 -1
  75. package/dist/react/components/end-of-list-indicator.d.ts +1 -1
  76. package/dist/react/components/end-of-list-indicator.js +3 -3
  77. package/dist/react/components/end-of-list-indicator.js.map +1 -1
  78. package/dist/react/components/form.d.ts +3 -3
  79. package/dist/react/components/form.d.ts.map +1 -1
  80. package/dist/react/components/form.js +17 -17
  81. package/dist/react/components/form.js.map +1 -1
  82. package/dist/react/components/format-control.d.ts +12 -5
  83. package/dist/react/components/format-control.d.ts.map +1 -1
  84. package/dist/react/components/format-control.js +23 -7
  85. package/dist/react/components/format-control.js.map +1 -1
  86. package/dist/react/components/input.d.ts +10 -10
  87. package/dist/react/components/input.d.ts.map +1 -1
  88. package/dist/react/components/input.js +11 -7
  89. package/dist/react/components/input.js.map +1 -1
  90. package/dist/react/components/label.d.ts +3 -3
  91. package/dist/react/components/label.d.ts.map +1 -1
  92. package/dist/react/components/label.js +6 -6
  93. package/dist/react/components/label.js.map +1 -1
  94. package/dist/react/components/layout/screen-adaptive-view.d.ts +2 -2
  95. package/dist/react/components/layout/screen-adaptive-view.d.ts.map +1 -1
  96. package/dist/react/components/layout/screen-adaptive-view.js +39 -35
  97. package/dist/react/components/layout/screen-adaptive-view.js.map +1 -1
  98. package/dist/react/components/list-pagination.d.ts +1 -1
  99. package/dist/react/components/list-pagination.js +10 -10
  100. package/dist/react/components/list-pagination.js.map +1 -1
  101. package/dist/react/components/menubar.d.ts +2 -2
  102. package/dist/react/components/menubar.d.ts.map +1 -1
  103. package/dist/react/components/menubar.js +17 -17
  104. package/dist/react/components/menubar.js.map +1 -1
  105. package/dist/react/components/opener-focus.d.ts +1 -1
  106. package/dist/react/components/opener-focus.d.ts.map +1 -1
  107. package/dist/react/components/opener-focus.js +3 -3
  108. package/dist/react/components/opener-focus.js.map +1 -1
  109. package/dist/react/components/pending-guard.d.ts +1 -1
  110. package/dist/react/components/pending-guard.d.ts.map +1 -1
  111. package/dist/react/components/pending-guard.js +1 -1
  112. package/dist/react/components/pending-guard.js.map +1 -1
  113. package/dist/react/components/popover.d.ts +2 -2
  114. package/dist/react/components/popover.d.ts.map +1 -1
  115. package/dist/react/components/popover.js +5 -5
  116. package/dist/react/components/popover.js.map +1 -1
  117. package/dist/react/components/progress.d.ts +2 -2
  118. package/dist/react/components/progress.d.ts.map +1 -1
  119. package/dist/react/components/progress.js +5 -5
  120. package/dist/react/components/progress.js.map +1 -1
  121. package/dist/react/components/radio-group.d.ts +2 -2
  122. package/dist/react/components/radio-group.d.ts.map +1 -1
  123. package/dist/react/components/radio-group.js +7 -7
  124. package/dist/react/components/radio-group.js.map +1 -1
  125. package/dist/react/components/relative-time.d.ts +1 -1
  126. package/dist/react/components/relative-time.d.ts.map +1 -1
  127. package/dist/react/components/relative-time.js +8 -7
  128. package/dist/react/components/relative-time.js.map +1 -1
  129. package/dist/react/components/reload-recovery-notice.d.ts +3 -3
  130. package/dist/react/components/reload-recovery-notice.js +7 -7
  131. package/dist/react/components/reload-recovery-notice.js.map +1 -1
  132. package/dist/react/components/scroll-area.d.ts +2 -2
  133. package/dist/react/components/scroll-area.d.ts.map +1 -1
  134. package/dist/react/components/scroll-area.js +6 -8
  135. package/dist/react/components/scroll-area.js.map +1 -1
  136. package/dist/react/components/scroll-to-top-button.d.ts +5 -5
  137. package/dist/react/components/scroll-to-top-button.js +9 -9
  138. package/dist/react/components/scroll-to-top-button.js.map +1 -1
  139. package/dist/react/components/search-dropdown.d.ts.map +1 -1
  140. package/dist/react/components/search-dropdown.js +8 -3
  141. package/dist/react/components/search-dropdown.js.map +1 -1
  142. package/dist/react/components/select.d.ts +2 -2
  143. package/dist/react/components/select.d.ts.map +1 -1
  144. package/dist/react/components/select.js +19 -19
  145. package/dist/react/components/select.js.map +1 -1
  146. package/dist/react/components/separator.d.ts +2 -2
  147. package/dist/react/components/separator.d.ts.map +1 -1
  148. package/dist/react/components/separator.js +5 -5
  149. package/dist/react/components/separator.js.map +1 -1
  150. package/dist/react/components/sheet.d.ts +3 -3
  151. package/dist/react/components/sheet.d.ts.map +1 -1
  152. package/dist/react/components/sheet.js +21 -21
  153. package/dist/react/components/sheet.js.map +1 -1
  154. package/dist/react/components/show-more-toggle.d.ts +2 -2
  155. package/dist/react/components/show-more-toggle.d.ts.map +1 -1
  156. package/dist/react/components/show-more-toggle.js +6 -6
  157. package/dist/react/components/show-more-toggle.js.map +1 -1
  158. package/dist/react/components/skeleton.d.ts +1 -1
  159. package/dist/react/components/skeleton.d.ts.map +1 -1
  160. package/dist/react/components/skeleton.js +3 -3
  161. package/dist/react/components/skeleton.js.map +1 -1
  162. package/dist/react/components/slider.d.ts +2 -2
  163. package/dist/react/components/slider.d.ts.map +1 -1
  164. package/dist/react/components/slider.js +5 -5
  165. package/dist/react/components/slider.js.map +1 -1
  166. package/dist/react/components/spinner.d.ts +1 -1
  167. package/dist/react/components/spinner.d.ts.map +1 -1
  168. package/dist/react/components/spinner.js +10 -10
  169. package/dist/react/components/spinner.js.map +1 -1
  170. package/dist/react/components/switch.d.ts +2 -2
  171. package/dist/react/components/switch.d.ts.map +1 -1
  172. package/dist/react/components/switch.js +13 -8
  173. package/dist/react/components/switch.js.map +1 -1
  174. package/dist/react/components/table.d.ts +2 -2
  175. package/dist/react/components/table.d.ts.map +1 -1
  176. package/dist/react/components/table.js +24 -24
  177. package/dist/react/components/table.js.map +1 -1
  178. package/dist/react/components/tabs.d.ts +2 -2
  179. package/dist/react/components/tabs.d.ts.map +1 -1
  180. package/dist/react/components/tabs.js +7 -7
  181. package/dist/react/components/tabs.js.map +1 -1
  182. package/dist/react/components/textarea.d.ts +5 -5
  183. package/dist/react/components/textarea.d.ts.map +1 -1
  184. package/dist/react/components/textarea.js +11 -7
  185. package/dist/react/components/textarea.js.map +1 -1
  186. package/dist/react/components/toast.d.ts +4 -4
  187. package/dist/react/components/toast.d.ts.map +1 -1
  188. package/dist/react/components/toast.js +25 -25
  189. package/dist/react/components/toast.js.map +1 -1
  190. package/dist/react/components/toaster.d.ts.map +1 -1
  191. package/dist/react/components/toaster.js +5 -5
  192. package/dist/react/components/toaster.js.map +1 -1
  193. package/dist/react/components/tooltip.d.ts +2 -2
  194. package/dist/react/components/tooltip.d.ts.map +1 -1
  195. package/dist/react/components/tooltip.js +5 -5
  196. package/dist/react/components/tooltip.js.map +1 -1
  197. package/dist/react/hooks/use-async-action.js +2 -2
  198. package/dist/react/hooks/use-async-action.js.map +1 -1
  199. package/dist/react/hooks/use-cursor-page.d.ts +1 -1
  200. package/dist/react/hooks/use-cursor-page.js +2 -2
  201. package/dist/react/hooks/use-cursor-page.js.map +1 -1
  202. package/dist/react/hooks/use-media-query.js +5 -5
  203. package/dist/react/hooks/use-media-query.js.map +1 -1
  204. package/dist/react/hooks/use-paged-list.js +2 -2
  205. package/dist/react/hooks/use-paged-list.js.map +1 -1
  206. package/dist/react/hooks/use-return-scroll.d.ts +1 -1
  207. package/dist/react/hooks/use-return-scroll.d.ts.map +1 -1
  208. package/dist/react/hooks/use-return-scroll.js +11 -11
  209. package/dist/react/hooks/use-return-scroll.js.map +1 -1
  210. package/dist/react/hooks/use-toast.d.ts +3 -3
  211. package/dist/react/hooks/use-toast.d.ts.map +1 -1
  212. package/dist/react/hooks/use-toast.js +17 -17
  213. package/dist/react/hooks/use-toast.js.map +1 -1
  214. package/dist/react/index.d.ts +74 -72
  215. package/dist/react/index.d.ts.map +1 -1
  216. package/dist/react/index.js +51 -50
  217. package/dist/react/index.js.map +1 -1
  218. package/package.json +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../src/react/components/sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { useOpenerFocus } from \"./opener-focus.js\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-[color:var(--scrim)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 elevation-raised transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, onOpenAutoFocus, onCloseAutoFocus, ...props }, ref) => {\n const openerFocus = useOpenerFocus({ onOpenAutoFocus, onCloseAutoFocus })\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n {...openerFocus}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n})\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground break-words\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground break-words\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}"]}
1
+ {"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../src/react/components/sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\n\nimport { cn } from '../../lib/utils.js';\nimport { useOpenerFocus } from './opener-focus.js';\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-[color:var(--scrim)] duration-[var(--motion-base)] ease-[var(--motion-ease)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-background p-6 elevation-raised ease-[var(--motion-ease)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-[var(--motion-base)] data-[state=open]:duration-[var(--motion-slow)]',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n },\n);\n\ninterface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, onOpenAutoFocus, onCloseAutoFocus, ...props }, ref) => {\n const openerFocus = useOpenerFocus({ onOpenAutoFocus, onCloseAutoFocus });\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n {...openerFocus}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n});\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\n);\nSheetHeader.displayName = 'SheetHeader';\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-foreground break-words', className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground break-words', className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n"]}
@@ -1,10 +1,10 @@
1
- import * as React from "react";
1
+ import * as React from 'react';
2
2
  /**
3
3
  * Standard button DOM props forwarded to the rendered element, minus the props this component owns:
4
4
  * the label pair, the expanded state and its change callback, and the disclosure ARIA it derives
5
5
  * from them.
6
6
  */
7
- type ShowMoreTogglePassthrough = Omit<React.ComponentPropsWithoutRef<"button">, "className" | "onClick" | "children" | "aria-expanded" | "aria-controls">;
7
+ type ShowMoreTogglePassthrough = Omit<React.ComponentPropsWithoutRef<'button'>, 'className' | 'onClick' | 'children' | 'aria-expanded' | 'aria-controls'>;
8
8
  export interface ShowMoreToggleProps extends ShowMoreTogglePassthrough {
9
9
  /** Whether the content this toggle controls is shown. Controlled. */
10
10
  expanded: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"show-more-toggle.d.ts","sourceRoot":"","sources":["../../../src/react/components/show-more-toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;GAIG;AACH,KAAK,yBAAyB,GAAG,IAAI,CACnC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EACxC,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,eAAe,CACzE,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,sEAAsE;IACtE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qEAAqE;IACrE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,IAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAoBrB"}
1
+ {"version":3,"file":"show-more-toggle.d.ts","sourceRoot":"","sources":["../../../src/react/components/show-more-toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;GAIG;AACH,KAAK,yBAAyB,GAAG,IAAI,CACnC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EACxC,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,eAAe,CACzE,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,sEAAsE;IACtE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qEAAqE;IACrE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,IAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAuBrB"}
@@ -1,14 +1,14 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { ChevronDown } from "lucide-react";
4
- import { Button } from "./button.js";
5
- import { cn } from "../../lib/utils.js";
3
+ import { ChevronDown } from 'lucide-react';
4
+ import { Button } from './button.js';
5
+ import { cn } from '../../lib/utils.js';
6
6
  /**
7
7
  * The one "show more" disclosure control: an outline button carrying the current label and a
8
8
  * chevron that turns over when the content is shown. Every expandable section uses it, so the
9
9
  * control looks and behaves the same everywhere and is changed in one place.
10
10
  */
11
- export function ShowMoreToggle({ expanded, onExpandedChange, openLabel, closeLabel, controls, className, type = "button", ...rest }) {
12
- return (_jsxs(Button, { ...rest, type: type, variant: "outline", size: "sm", className: className, "aria-expanded": expanded, "aria-controls": controls, onClick: () => onExpandedChange(!expanded), children: [expanded ? closeLabel : openLabel, _jsx(ChevronDown, { "aria-hidden": "true", "data-expanded": expanded ? "true" : "false", className: cn("ml-1 h-4 w-4 transition-transform motion-reduce:transition-none", expanded && "rotate-180") })] }));
11
+ export function ShowMoreToggle({ expanded, onExpandedChange, openLabel, closeLabel, controls, className, type = 'button', ...rest }) {
12
+ return (_jsxs(Button, { ...rest, type: type, variant: "outline", size: "sm", className: className, "aria-expanded": expanded, "aria-controls": controls, onClick: () => onExpandedChange(!expanded), children: [expanded ? closeLabel : openLabel, _jsx(ChevronDown, { "aria-hidden": "true", "data-expanded": expanded ? 'true' : 'false', className: cn('ml-1 h-4 w-4 transition-transform motion-reduce:transition-none', expanded && 'rotate-180') })] }));
13
13
  }
14
14
  //# sourceMappingURL=show-more-toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"show-more-toggle.js","sourceRoot":"","sources":["../../../src/react/components/show-more-toggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AA2BxC;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,GAAG,IAAI,EACa;IACpB,OAAO,CACL,MAAC,MAAM,OACD,IAAI,EACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,SAAS,mBACL,QAAQ,mBACR,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,aAEzC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAClC,KAAC,WAAW,mBACE,MAAM,mBACH,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC1C,SAAS,EAAE,EAAE,CAAC,iEAAiE,EAAE,QAAQ,IAAI,YAAY,CAAC,GAC1G,IACK,CACV,CAAC;AACJ,CAAC","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { Button } from \"./button.js\";\nimport { cn } from \"../../lib/utils.js\";\n\n/**\n * Standard button DOM props forwarded to the rendered element, minus the props this component owns:\n * the label pair, the expanded state and its change callback, and the disclosure ARIA it derives\n * from them.\n */\ntype ShowMoreTogglePassthrough = Omit<\n React.ComponentPropsWithoutRef<\"button\">,\n \"className\" | \"onClick\" | \"children\" | \"aria-expanded\" | \"aria-controls\"\n>;\n\nexport interface ShowMoreToggleProps extends ShowMoreTogglePassthrough {\n /** Whether the content this toggle controls is shown. Controlled. */\n expanded: boolean;\n /** Called with the next expanded state when the toggle is pressed. */\n onExpandedChange: (expanded: boolean) => void;\n /** The label while the content is hidden (e.g. \"Show the rumors\"). */\n openLabel: React.ReactNode;\n /** The label while the content is shown (e.g. \"Hide the rumors\"). */\n closeLabel: React.ReactNode;\n /** The id of the element this toggle shows and hides, for `aria-controls`. */\n controls?: string;\n /** Extra classes, merged with the component's own. */\n className?: string;\n}\n\n/**\n * The one \"show more\" disclosure control: an outline button carrying the current label and a\n * chevron that turns over when the content is shown. Every expandable section uses it, so the\n * control looks and behaves the same everywhere and is changed in one place.\n */\nexport function ShowMoreToggle({\n expanded,\n onExpandedChange,\n openLabel,\n closeLabel,\n controls,\n className,\n type = \"button\",\n ...rest\n}: ShowMoreToggleProps) {\n return (\n <Button\n {...rest}\n type={type}\n variant=\"outline\"\n size=\"sm\"\n className={className}\n aria-expanded={expanded}\n aria-controls={controls}\n onClick={() => onExpandedChange(!expanded)}\n >\n {expanded ? closeLabel : openLabel}\n <ChevronDown\n aria-hidden=\"true\"\n data-expanded={expanded ? \"true\" : \"false\"}\n className={cn(\"ml-1 h-4 w-4 transition-transform motion-reduce:transition-none\", expanded && \"rotate-180\")}\n />\n </Button>\n );\n}\n"]}
1
+ {"version":3,"file":"show-more-toggle.js","sourceRoot":"","sources":["../../../src/react/components/show-more-toggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AA2BxC;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,GAAG,IAAI,EACa;IACpB,OAAO,CACL,MAAC,MAAM,OACD,IAAI,EACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,SAAS,mBACL,QAAQ,mBACR,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,aAEzC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAClC,KAAC,WAAW,mBACE,MAAM,mBACH,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC1C,SAAS,EAAE,EAAE,CACX,iEAAiE,EACjE,QAAQ,IAAI,YAAY,CACzB,GACD,IACK,CACV,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ChevronDown } from 'lucide-react';\nimport { Button } from './button.js';\nimport { cn } from '../../lib/utils.js';\n\n/**\n * Standard button DOM props forwarded to the rendered element, minus the props this component owns:\n * the label pair, the expanded state and its change callback, and the disclosure ARIA it derives\n * from them.\n */\ntype ShowMoreTogglePassthrough = Omit<\n React.ComponentPropsWithoutRef<'button'>,\n 'className' | 'onClick' | 'children' | 'aria-expanded' | 'aria-controls'\n>;\n\nexport interface ShowMoreToggleProps extends ShowMoreTogglePassthrough {\n /** Whether the content this toggle controls is shown. Controlled. */\n expanded: boolean;\n /** Called with the next expanded state when the toggle is pressed. */\n onExpandedChange: (expanded: boolean) => void;\n /** The label while the content is hidden (e.g. \"Show the rumors\"). */\n openLabel: React.ReactNode;\n /** The label while the content is shown (e.g. \"Hide the rumors\"). */\n closeLabel: React.ReactNode;\n /** The id of the element this toggle shows and hides, for `aria-controls`. */\n controls?: string;\n /** Extra classes, merged with the component's own. */\n className?: string;\n}\n\n/**\n * The one \"show more\" disclosure control: an outline button carrying the current label and a\n * chevron that turns over when the content is shown. Every expandable section uses it, so the\n * control looks and behaves the same everywhere and is changed in one place.\n */\nexport function ShowMoreToggle({\n expanded,\n onExpandedChange,\n openLabel,\n closeLabel,\n controls,\n className,\n type = 'button',\n ...rest\n}: ShowMoreToggleProps) {\n return (\n <Button\n {...rest}\n type={type}\n variant=\"outline\"\n size=\"sm\"\n className={className}\n aria-expanded={expanded}\n aria-controls={controls}\n onClick={() => onExpandedChange(!expanded)}\n >\n {expanded ? closeLabel : openLabel}\n <ChevronDown\n aria-hidden=\"true\"\n data-expanded={expanded ? 'true' : 'false'}\n className={cn(\n 'ml-1 h-4 w-4 transition-transform motion-reduce:transition-none',\n expanded && 'rotate-180',\n )}\n />\n </Button>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- import * as React from "react";
1
+ import * as React from 'react';
2
2
  declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
3
3
  export { Skeleton };
4
4
  //# sourceMappingURL=skeleton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/react/components/skeleton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,qBAQ9E;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/react/components/skeleton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,qBAQ9E;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { cn } from "../../lib/utils.js";
3
+ import { cn } from '../../lib/utils.js';
4
4
  function Skeleton({ className, ...props }) {
5
- return (_jsx("div", { className: cn("animate-pulse rounded-md bg-muted", className), "data-ai-hint": "loading placeholder", ...props }));
5
+ return (_jsx("div", { className: cn('animate-pulse rounded-md bg-muted', className), "data-ai-hint": "loading placeholder", ...props }));
6
6
  }
7
7
  export { Skeleton };
8
8
  //# sourceMappingURL=skeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../../src/react/components/skeleton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC;IAC7E,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,kBAChD,qBAAqB,KAC9B,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"../../lib/utils.js\"\n\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n data-ai-hint=\"loading placeholder\"\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"]}
1
+ {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../../src/react/components/skeleton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC;IAC7E,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,kBAChD,qBAAqB,KAC9B,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils.js';\n\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn('animate-pulse rounded-md bg-muted', className)}\n data-ai-hint=\"loading placeholder\"\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"]}
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- import * as SliderPrimitive from "@radix-ui/react-slider";
1
+ import * as React from 'react';
2
+ import * as SliderPrimitive from '@radix-ui/react-slider';
3
3
  declare const Slider: React.ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
4
  export { Slider };
5
5
  //# sourceMappingURL=slider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/react/components/slider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAIzD,QAAA,MAAM,MAAM,yJAcV,CAAA;AAGF,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/react/components/slider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAI1D,QAAA,MAAM,MAAM,yJAcV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,9 +1,9 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import * as SliderPrimitive from "@radix-ui/react-slider";
5
- import { cn } from "../../lib/utils.js";
6
- const Slider = React.forwardRef(({ className, ...props }, ref) => (_jsxs(SliderPrimitive.Root, { ref: ref, className: cn("relative flex w-full touch-none select-none items-center", className), ...props, children: [_jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), _jsx(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" })] })));
3
+ import * as React from 'react';
4
+ import * as SliderPrimitive from '@radix-ui/react-slider';
5
+ import { cn } from '../../lib/utils.js';
6
+ const Slider = React.forwardRef(({ className, ...props }, ref) => (_jsxs(SliderPrimitive.Root, { ref: ref, className: cn('relative flex w-full touch-none select-none items-center', className), ...props, children: [_jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), _jsx(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" })] })));
7
7
  Slider.displayName = SliderPrimitive.Root.displayName;
8
8
  export { Slider };
9
9
  //# sourceMappingURL=slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","sourceRoot":"","sources":["../../../src/react/components/slider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,MAAC,eAAe,CAAC,IAAI,IACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,0DAA0D,EAAE,SAAS,CAAC,KAChF,KAAK,aAET,KAAC,eAAe,CAAC,KAAK,IAAC,SAAS,EAAC,oEAAoE,YACnG,KAAC,eAAe,CAAC,KAAK,IAAC,SAAS,EAAC,4BAA4B,GAAG,GAC1C,EACxB,KAAC,eAAe,CAAC,KAAK,IAAC,SAAS,EAAC,kQAAkQ,GAAG,IACjR,CACxB,CAAC,CAAA;AACF,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAA;AAErD,OAAO,EAAE,MAAM,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\"relative flex w-full touch-none select-none items-center\", className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n"]}
1
+ {"version":3,"file":"slider.js","sourceRoot":"","sources":["../../../src/react/components/slider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,MAAC,eAAe,CAAC,IAAI,IACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,0DAA0D,EAAE,SAAS,CAAC,KAChF,KAAK,aAET,KAAC,eAAe,CAAC,KAAK,IAAC,SAAS,EAAC,oEAAoE,YACnG,KAAC,eAAe,CAAC,KAAK,IAAC,SAAS,EAAC,4BAA4B,GAAG,GAC1C,EACxB,KAAC,eAAe,CAAC,KAAK,IAAC,SAAS,EAAC,kQAAkQ,GAAG,IACjR,CACxB,CAAC,CAAC;AACH,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,CAAC","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from '../../lib/utils.js';\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn('relative flex w-full touch-none select-none items-center', className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n"]}
@@ -1,4 +1,4 @@
1
- export type SpinnerSize = "xs" | "sm" | "md" | "lg" | "xl";
1
+ export type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
2
  export interface SpinnerProps {
3
3
  /** Maps onto the theme-core `spinner-*` classes. Defaults to `xs` (the in-control size). */
4
4
  size?: SpinnerSize;
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../src/react/components/spinner.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAE1D,MAAM,WAAW,YAAY;IAC3B,4FAA4F;IAC5F,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAUD;;;;;;;GAOG;AACH,iBAAS,OAAO,CAAC,EAAE,IAAW,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,YAAY,+BAU/D;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../src/react/components/spinner.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,4FAA4F;IAC5F,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;GAOG;AACH,iBAAS,OAAO,CAAC,EAAE,IAAW,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,YAAY,+BAU/D;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,13 +1,13 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Loader2 } from "lucide-react";
4
- import { cn } from "../../lib/utils.js";
3
+ import { Loader2 } from 'lucide-react';
4
+ import { cn } from '../../lib/utils.js';
5
5
  const SIZE_CLASS = {
6
- xs: "spinner-xs",
7
- sm: "spinner-sm",
8
- md: "spinner-md",
9
- lg: "spinner-lg",
10
- xl: "spinner-xl",
6
+ xs: 'spinner-xs',
7
+ sm: 'spinner-sm',
8
+ md: 'spinner-md',
9
+ lg: 'spinner-lg',
10
+ xl: 'spinner-xl',
11
11
  };
12
12
  /**
13
13
  * The ONE loading spinner. Every in-progress indicator renders through this
@@ -17,11 +17,11 @@ const SIZE_CLASS = {
17
17
  * `button .spinner-*` rule that makes an in-button spinner inherit the button's
18
18
  * text color so it is never primary-on-primary.
19
19
  */
20
- function Spinner({ size = "xs", label, className }) {
20
+ function Spinner({ size = 'xs', label, className }) {
21
21
  if (!label) {
22
22
  return _jsx(Loader2, { className: cn(SIZE_CLASS[size], className), "aria-hidden": "true" });
23
23
  }
24
- return (_jsxs("span", { role: "status", className: cn("inline-flex items-center justify-center", className), children: [_jsx(Loader2, { className: SIZE_CLASS[size], "aria-hidden": "true" }), _jsx("span", { className: "sr-only", children: label })] }));
24
+ return (_jsxs("span", { role: "status", className: cn('inline-flex items-center justify-center', className), children: [_jsx(Loader2, { className: SIZE_CLASS[size], "aria-hidden": "true" }), _jsx("span", { className: "sr-only", children: label })] }));
25
25
  }
26
26
  export { Spinner };
27
27
  //# sourceMappingURL=spinner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/react/components/spinner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAgBvC,MAAM,UAAU,GAAgC;IAC9C,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,EAAgB;IAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAC,OAAO,IAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,iBAAc,MAAM,GAAG,CAAA;IACnF,CAAC;IACD,OAAO,CACL,gBAAM,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,aACrF,KAAC,OAAO,IAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,iBAAc,MAAM,GAAG,EAC3D,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,IACnC,CACR,CAAA;AACH,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport { Loader2 } from \"lucide-react\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nexport type SpinnerSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"\n\nexport interface SpinnerProps {\n /** Maps onto the theme-core `spinner-*` classes. Defaults to `xs` (the in-control size). */\n size?: SpinnerSize\n /**\n * Screen-reader text. When set, the spinner becomes a `status` live region that\n * announces it. Omit it for a spinner inside a control that already carries its\n * own busy state (`aria-busy`) — the control speaks for it.\n */\n label?: string\n className?: string\n}\n\nconst SIZE_CLASS: Record<SpinnerSize, string> = {\n xs: \"spinner-xs\",\n sm: \"spinner-sm\",\n md: \"spinner-md\",\n lg: \"spinner-lg\",\n xl: \"spinner-xl\",\n}\n\n/**\n * The ONE loading spinner. Every in-progress indicator renders through this\n * component (or through a control's `pending` prop, which renders it), so the\n * spinner's look, size scale, and color rule have one change point. The\n * theme-core `spinner-*` classes own size, animation, and color — including the\n * `button .spinner-*` rule that makes an in-button spinner inherit the button's\n * text color so it is never primary-on-primary.\n */\nfunction Spinner({ size = \"xs\", label, className }: SpinnerProps) {\n if (!label) {\n return <Loader2 className={cn(SIZE_CLASS[size], className)} aria-hidden=\"true\" />\n }\n return (\n <span role=\"status\" className={cn(\"inline-flex items-center justify-center\", className)}>\n <Loader2 className={SIZE_CLASS[size]} aria-hidden=\"true\" />\n <span className=\"sr-only\">{label}</span>\n </span>\n )\n}\n\nexport { Spinner }\n"]}
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/react/components/spinner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAgBxC,MAAM,UAAU,GAAgC;IAC9C,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,EAAgB;IAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAC,OAAO,IAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,iBAAc,MAAM,GAAG,CAAC;IACpF,CAAC;IACD,OAAO,CACL,gBAAM,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,aACrF,KAAC,OAAO,IAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,iBAAc,MAAM,GAAG,EAC3D,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,IACnC,CACR,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC","sourcesContent":["'use client';\n\nimport { Loader2 } from 'lucide-react';\n\nimport { cn } from '../../lib/utils.js';\n\nexport type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface SpinnerProps {\n /** Maps onto the theme-core `spinner-*` classes. Defaults to `xs` (the in-control size). */\n size?: SpinnerSize;\n /**\n * Screen-reader text. When set, the spinner becomes a `status` live region that\n * announces it. Omit it for a spinner inside a control that already carries its\n * own busy state (`aria-busy`) — the control speaks for it.\n */\n label?: string;\n className?: string;\n}\n\nconst SIZE_CLASS: Record<SpinnerSize, string> = {\n xs: 'spinner-xs',\n sm: 'spinner-sm',\n md: 'spinner-md',\n lg: 'spinner-lg',\n xl: 'spinner-xl',\n};\n\n/**\n * The ONE loading spinner. Every in-progress indicator renders through this\n * component (or through a control's `pending` prop, which renders it), so the\n * spinner's look, size scale, and color rule have one change point. The\n * theme-core `spinner-*` classes own size, animation, and color — including the\n * `button .spinner-*` rule that makes an in-button spinner inherit the button's\n * text color so it is never primary-on-primary.\n */\nfunction Spinner({ size = 'xs', label, className }: SpinnerProps) {\n if (!label) {\n return <Loader2 className={cn(SIZE_CLASS[size], className)} aria-hidden=\"true\" />;\n }\n return (\n <span role=\"status\" className={cn('inline-flex items-center justify-center', className)}>\n <Loader2 className={SIZE_CLASS[size]} aria-hidden=\"true\" />\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n}\n\nexport { Spinner };\n"]}
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- import * as SwitchPrimitives from "@radix-ui/react-switch";
1
+ import * as React from 'react';
2
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
3
3
  declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React.RefAttributes<HTMLButtonElement>, "ref"> & {
4
4
  /**
5
5
  * The change this switch started is in flight: the switch ignores toggling, sets
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/react/components/switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAA;AAY1D,QAAA,MAAM,MAAM;IAGR;;;;;;OAMG;cACO,OAAO;2CAuBnB,CAAA;AAGF,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/react/components/switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAY3D,QAAA,MAAM,MAAM;IAGR;;;;;;OAMG;cACO,OAAO;2CA4BnB,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,18 +1,23 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import * as SwitchPrimitives from "@radix-ui/react-switch";
5
- import { cn } from "../../lib/utils.js";
6
- import { Spinner } from "./spinner.js";
3
+ import * as React from 'react';
4
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
5
+ import { cn } from '../../lib/utils.js';
6
+ import { Spinner } from './spinner.js';
7
7
  // Stopped in the capture phase so neither the caller's click handler nor the switch's own
8
8
  // toggle runs while a change is in flight.
9
9
  function blockToggle(event) {
10
10
  event.preventDefault();
11
11
  event.stopPropagation();
12
12
  }
13
- const Switch = React.forwardRef(({ className, pending = false, disabled, ...props }, ref) => (_jsx(SwitchPrimitives.Root, { className: cn("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className), ...props, ...(pending
14
- ? { "aria-busy": true, "aria-disabled": true, "data-pending": "", onClickCapture: blockToggle }
15
- : {}), disabled: (disabled && !pending) || undefined, ref: ref, children: _jsx(SwitchPrimitives.Thumb, { className: cn("pointer-events-none flex h-5 w-5 items-center justify-center rounded-full bg-background elevation-raised transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"), children: pending ? _jsx(Spinner, { size: "xs" }) : null }) })));
13
+ const Switch = React.forwardRef(({ className, pending = false, disabled, ...props }, ref) => (_jsx(SwitchPrimitives.Root, { className: cn('peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input', className), ...props, ...(pending
14
+ ? {
15
+ 'aria-busy': true,
16
+ 'aria-disabled': true,
17
+ 'data-pending': '',
18
+ onClickCapture: blockToggle,
19
+ }
20
+ : {}), disabled: (disabled && !pending) || undefined, ref: ref, children: _jsx(SwitchPrimitives.Thumb, { className: cn('pointer-events-none flex h-5 w-5 items-center justify-center rounded-full bg-background elevation-raised transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0'), children: pending ? _jsx(Spinner, { size: "xs" }) : null }) })));
16
21
  Switch.displayName = SwitchPrimitives.Root.displayName;
17
22
  export { Switch };
18
23
  //# sourceMappingURL=switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/react/components/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAA;AAE1D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,0FAA0F;AAC1F,2CAA2C;AAC3C,SAAS,WAAW,CAAC,KAA0C;IAC7D,KAAK,CAAC,cAAc,EAAE,CAAA;IACtB,KAAK,CAAC,eAAe,EAAE,CAAA;AACzB,CAAC;AAED,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAY7B,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC7D,KAAC,gBAAgB,CAAC,IAAI,IACpB,SAAS,EAAE,EAAE,CACX,gbAAgb,EAChb,SAAS,CACV,KACG,KAAK,KACL,CAAC,OAAO;QACV,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE;QAC/F,CAAC,CAAC,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,EAC7C,GAAG,EAAE,GAAG,YAER,KAAC,gBAAgB,CAAC,KAAK,IACrB,SAAS,EAAE,EAAE,CACX,uMAAuM,CACxM,YAEA,OAAO,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAChB,GACH,CACzB,CAAC,CAAA;AACF,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAA;AAEtD,OAAO,EAAE,MAAM,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"../../lib/utils.js\"\nimport { Spinner } from \"./spinner.js\"\n\n// Stopped in the capture phase so neither the caller's click handler nor the switch's own\n// toggle runs while a change is in flight.\nfunction blockToggle(event: React.MouseEvent<HTMLButtonElement>) {\n event.preventDefault()\n event.stopPropagation()\n}\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & {\n /**\n * The change this switch started is in flight: the switch ignores toggling, sets\n * `aria-disabled` and `aria-busy`, and spins inside its thumb. It keeps showing the\n * COMMITTED state — the caller flips `checked` only once the write lands. It is never\n * natively disabled while pending (a `disabled` passed alongside applies once pending\n * ends), so the switch the user just pressed keeps focus (FRONTEND-203).\n */\n pending?: boolean\n }\n>(({ className, pending = false, disabled, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n {...(pending\n ? { \"aria-busy\": true, \"aria-disabled\": true, \"data-pending\": \"\", onClickCapture: blockToggle }\n : {})}\n disabled={(disabled && !pending) || undefined}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none flex h-5 w-5 items-center justify-center rounded-full bg-background elevation-raised transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n )}\n >\n {pending ? <Spinner size=\"xs\" /> : null}\n </SwitchPrimitives.Thumb>\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n"]}
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/react/components/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,0FAA0F;AAC1F,2CAA2C;AAC3C,SAAS,WAAW,CAAC,KAA0C;IAC7D,KAAK,CAAC,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAY7B,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC7D,KAAC,gBAAgB,CAAC,IAAI,IACpB,SAAS,EAAE,EAAE,CACX,gbAAgb,EAChb,SAAS,CACV,KACG,KAAK,KACL,CAAC,OAAO;QACV,CAAC,CAAC;YACE,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,WAAW;SAC5B;QACH,CAAC,CAAC,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,EAC7C,GAAG,EAAE,GAAG,YAER,KAAC,gBAAgB,CAAC,KAAK,IACrB,SAAS,EAAE,EAAE,CACX,uMAAuM,CACxM,YAEA,OAAO,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAChB,GACH,CACzB,CAAC,CAAC;AACH,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,CAAC","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\n\nimport { cn } from '../../lib/utils.js';\nimport { Spinner } from './spinner.js';\n\n// Stopped in the capture phase so neither the caller's click handler nor the switch's own\n// toggle runs while a change is in flight.\nfunction blockToggle(event: React.MouseEvent<HTMLButtonElement>) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & {\n /**\n * The change this switch started is in flight: the switch ignores toggling, sets\n * `aria-disabled` and `aria-busy`, and spins inside its thumb. It keeps showing the\n * COMMITTED state — the caller flips `checked` only once the write lands. It is never\n * natively disabled while pending (a `disabled` passed alongside applies once pending\n * ends), so the switch the user just pressed keeps focus (FRONTEND-203).\n */\n pending?: boolean;\n }\n>(({ className, pending = false, disabled, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n className,\n )}\n {...props}\n {...(pending\n ? {\n 'aria-busy': true,\n 'aria-disabled': true,\n 'data-pending': '',\n onClickCapture: blockToggle,\n }\n : {})}\n disabled={(disabled && !pending) || undefined}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'pointer-events-none flex h-5 w-5 items-center justify-center rounded-full bg-background elevation-raised transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0',\n )}\n >\n {pending ? <Spinner size=\"xs\" /> : null}\n </SwitchPrimitives.Thumb>\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n"]}
@@ -1,11 +1,11 @@
1
- import * as React from "react";
1
+ import * as React from 'react';
2
2
  declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
3
3
  declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
4
4
  declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
5
5
  declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
6
6
  declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
7
7
  declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
8
- export type SortDirection = "asc" | "desc";
8
+ export type SortDirection = 'asc' | 'desc';
9
9
  export interface SortableTableHeadProps {
10
10
  /** The column's full name; always spoken, and shown on a wide table. */
11
11
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/react/components/table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,KAAK,iHAWT,CAAA;AAGF,QAAA,MAAM,WAAW,+HAKf,CAAA;AAGF,QAAA,MAAM,SAAS,+HASb,CAAA;AAGF,QAAA,MAAM,WAAW,+HAYf,CAAA;AAGF,QAAA,MAAM,QAAQ,uHAYZ,CAAA;AAGF,QAAA,MAAM,SAAS,2HAYb,CAAA;AAGF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAA;AAE1C,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAA;IACb,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,SAAS,EAAE,aAAa,GAAG,IAAI,CAAA;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAOD;;;;;GAKG;AACH,QAAA,MAAM,iBAAiB,qGAiCtB,CAAA;AAGD,QAAA,MAAM,SAAS,2HAYb,CAAA;AAGF,QAAA,MAAM,YAAY,+HAShB,CAAA;AAGF,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAA"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/react/components/table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,KAAK,iHAMV,CAAC;AAGF,QAAA,MAAM,WAAW,+HAKf,CAAC;AAGH,QAAA,MAAM,SAAS,+HAKb,CAAC;AAGH,QAAA,MAAM,WAAW,+HASf,CAAC;AAGH,QAAA,MAAM,QAAQ,uHAWb,CAAC;AAGF,QAAA,MAAM,SAAS,2HAYb,CAAC;AAGH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD;;;;;GAKG;AACH,QAAA,MAAM,iBAAiB,qGAiCtB,CAAC;AAGF,QAAA,MAAM,SAAS,2HASb,CAAC;AAGH,QAAA,MAAM,YAAY,+HAKhB,CAAC;AAGH,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAC"}
@@ -1,23 +1,23 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { ArrowDown, ArrowUp, ArrowUpDown } from "lucide-react";
5
- import { cn } from "../../lib/utils.js";
6
- const Table = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { className: "relative w-full overflow-auto", children: _jsx("table", { ref: ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })));
7
- Table.displayName = "Table";
8
- const TableHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("thead", { ref: ref, className: cn("[&_tr]:border-b", className), ...props })));
9
- TableHeader.displayName = "TableHeader";
10
- const TableBody = React.forwardRef(({ className, ...props }, ref) => (_jsx("tbody", { ref: ref, className: cn("[&_tr:last-child]:border-0", className), ...props })));
11
- TableBody.displayName = "TableBody";
12
- const TableFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("tfoot", { ref: ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })));
13
- TableFooter.displayName = "TableFooter";
14
- const TableRow = React.forwardRef(({ className, ...props }, ref) => (_jsx("tr", { ref: ref, className: cn("border-b transition-colors hover:bg-[color:var(--table-row-hover)] data-[state=selected]:bg-muted", className), ...props })));
15
- TableRow.displayName = "TableRow";
16
- const TableHead = React.forwardRef(({ className, ...props }, ref) => (_jsx("th", { ref: ref, className: cn("h-12 px-4 text-left align-middle font-bold text-label [&:has([role=checkbox])]:pr-0", className), ...props })));
17
- TableHead.displayName = "TableHead";
3
+ import * as React from 'react';
4
+ import { ArrowDown, ArrowUp, ArrowUpDown } from 'lucide-react';
5
+ import { cn } from '../../lib/utils.js';
6
+ const Table = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { className: "relative w-full overflow-auto", children: _jsx("table", { ref: ref, className: cn('w-full caption-bottom text-sm', className), ...props }) })));
7
+ Table.displayName = 'Table';
8
+ const TableHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("thead", { ref: ref, className: cn('[&_tr]:border-b', className), ...props })));
9
+ TableHeader.displayName = 'TableHeader';
10
+ const TableBody = React.forwardRef(({ className, ...props }, ref) => (_jsx("tbody", { ref: ref, className: cn('[&_tr:last-child]:border-0', className), ...props })));
11
+ TableBody.displayName = 'TableBody';
12
+ const TableFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("tfoot", { ref: ref, className: cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className), ...props })));
13
+ TableFooter.displayName = 'TableFooter';
14
+ const TableRow = React.forwardRef(({ className, ...props }, ref) => (_jsx("tr", { ref: ref, className: cn('border-b transition-colors hover:bg-[color:var(--table-row-hover)] data-[state=selected]:bg-muted', className), ...props })));
15
+ TableRow.displayName = 'TableRow';
16
+ const TableHead = React.forwardRef(({ className, ...props }, ref) => (_jsx("th", { ref: ref, className: cn('h-12 px-4 text-left align-middle font-bold text-label [&:has([role=checkbox])]:pr-0', className), ...props })));
17
+ TableHead.displayName = 'TableHead';
18
18
  const ARIA_SORT = {
19
- asc: "ascending",
20
- desc: "descending",
19
+ asc: 'ascending',
20
+ desc: 'descending',
21
21
  };
22
22
  /**
23
23
  * A column header that sorts its table. The visible labels are hidden from assistive technology
@@ -26,13 +26,13 @@ const ARIA_SORT = {
26
26
  * nearest size container is 56rem wide.
27
27
  */
28
28
  const SortableTableHead = React.forwardRef(({ label, shortLabel, direction, onSort, className }, ref) => {
29
- const Icon = direction === "asc" ? ArrowUp : direction === "desc" ? ArrowDown : ArrowUpDown;
29
+ const Icon = direction === 'asc' ? ArrowUp : direction === 'desc' ? ArrowDown : ArrowUpDown;
30
30
  return (_jsx(TableHead, { ref: ref, scope: "col", "aria-sort": direction ? ARIA_SORT[direction] : undefined, className: className, children: _jsxs("button", { type: "button", onClick: onSort, className: "inline-flex items-center gap-1 whitespace-nowrap rounded-sm ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", children: [shortLabel ? (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: "@4xl:hidden", children: shortLabel }), _jsx("span", { "aria-hidden": "true", className: "hidden @4xl:inline", children: label }), _jsx("span", { className: "sr-only", children: `${shortLabel}, ${label}` })] })) : (label), _jsx(Icon, { className: "icon-xxs", "aria-hidden": "true" })] }) }));
31
31
  });
32
- SortableTableHead.displayName = "SortableTableHead";
33
- const TableCell = React.forwardRef(({ className, ...props }, ref) => (_jsx("td", { ref: ref, className: cn("p-4 align-middle text-label font-bold [&:has([role=checkbox])]:pr-0", className), ...props })));
34
- TableCell.displayName = "TableCell";
35
- const TableCaption = React.forwardRef(({ className, ...props }, ref) => (_jsx("caption", { ref: ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })));
36
- TableCaption.displayName = "TableCaption";
32
+ SortableTableHead.displayName = 'SortableTableHead';
33
+ const TableCell = React.forwardRef(({ className, ...props }, ref) => (_jsx("td", { ref: ref, className: cn('p-4 align-middle text-label font-bold [&:has([role=checkbox])]:pr-0', className), ...props })));
34
+ TableCell.displayName = 'TableCell';
35
+ const TableCaption = React.forwardRef(({ className, ...props }, ref) => (_jsx("caption", { ref: ref, className: cn('mt-4 text-sm text-muted-foreground', className), ...props })));
36
+ TableCaption.displayName = 'TableCaption';
37
37
  export { Table, TableHeader, TableBody, TableFooter, TableHead, SortableTableHead, TableRow, TableCell, TableCaption, };
38
38
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/react/components/table.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { ArrowDown, ArrowUp, ArrowUpDown } from \"lucide-react\"\nimport { cn } from \"../../lib/utils.js\"\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-[color:var(--table-row-hover)] data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-bold text-label [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nexport type SortDirection = \"asc\" | \"desc\"\n\nexport interface SortableTableHeadProps {\n /** The column's full name; always spoken, and shown on a wide table. */\n label: string\n /** A short form shown while the table is narrow; the spoken name then gives it before `label`. */\n shortLabel?: string\n /** The column's current sort, or `null` when the table is not sorted by it. */\n direction: SortDirection | null\n onSort: () => void\n /** Classes for the header cell. */\n className?: string\n}\n\nconst ARIA_SORT: Record<SortDirection, \"ascending\" | \"descending\"> = {\n asc: \"ascending\",\n desc: \"descending\",\n}\n\n/**\n * A column header that sorts its table. The visible labels are hidden from assistive technology\n * beside one spoken label, so the header and its button carry the same name (\"G, Goals\") rather\n * than the two visible labels run together. The short label gives way to the full one once the\n * nearest size container is 56rem wide.\n */\nconst SortableTableHead = React.forwardRef<HTMLTableCellElement, SortableTableHeadProps>(\n ({ label, shortLabel, direction, onSort, className }, ref) => {\n const Icon = direction === \"asc\" ? ArrowUp : direction === \"desc\" ? ArrowDown : ArrowUpDown\n return (\n <TableHead\n ref={ref}\n scope=\"col\"\n aria-sort={direction ? ARIA_SORT[direction] : undefined}\n className={className}\n >\n <button\n type=\"button\"\n onClick={onSort}\n className=\"inline-flex items-center gap-1 whitespace-nowrap rounded-sm ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n >\n {shortLabel ? (\n <>\n <span aria-hidden=\"true\" className=\"@4xl:hidden\">\n {shortLabel}\n </span>\n <span aria-hidden=\"true\" className=\"hidden @4xl:inline\">\n {label}\n </span>\n <span className=\"sr-only\">{`${shortLabel}, ${label}`}</span>\n </>\n ) : (\n label\n )}\n <Icon className=\"icon-xxs\" aria-hidden=\"true\" />\n </button>\n </TableHead>\n )\n }\n)\nSortableTableHead.displayName = \"SortableTableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-4 align-middle text-label font-bold [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n SortableTableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n"]}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/react/components/table.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ArrowDown, ArrowUp, ArrowUpDown } from 'lucide-react';\nimport { cn } from '../../lib/utils.js';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\n </div>\n ),\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-[color:var(--table-row-hover)] data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-bold text-label [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nexport type SortDirection = 'asc' | 'desc';\n\nexport interface SortableTableHeadProps {\n /** The column's full name; always spoken, and shown on a wide table. */\n label: string;\n /** A short form shown while the table is narrow; the spoken name then gives it before `label`. */\n shortLabel?: string;\n /** The column's current sort, or `null` when the table is not sorted by it. */\n direction: SortDirection | null;\n onSort: () => void;\n /** Classes for the header cell. */\n className?: string;\n}\n\nconst ARIA_SORT: Record<SortDirection, 'ascending' | 'descending'> = {\n asc: 'ascending',\n desc: 'descending',\n};\n\n/**\n * A column header that sorts its table. The visible labels are hidden from assistive technology\n * beside one spoken label, so the header and its button carry the same name (\"G, Goals\") rather\n * than the two visible labels run together. The short label gives way to the full one once the\n * nearest size container is 56rem wide.\n */\nconst SortableTableHead = React.forwardRef<HTMLTableCellElement, SortableTableHeadProps>(\n ({ label, shortLabel, direction, onSort, className }, ref) => {\n const Icon = direction === 'asc' ? ArrowUp : direction === 'desc' ? ArrowDown : ArrowUpDown;\n return (\n <TableHead\n ref={ref}\n scope=\"col\"\n aria-sort={direction ? ARIA_SORT[direction] : undefined}\n className={className}\n >\n <button\n type=\"button\"\n onClick={onSort}\n className=\"inline-flex items-center gap-1 whitespace-nowrap rounded-sm ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n >\n {shortLabel ? (\n <>\n <span aria-hidden=\"true\" className=\"@4xl:hidden\">\n {shortLabel}\n </span>\n <span aria-hidden=\"true\" className=\"hidden @4xl:inline\">\n {label}\n </span>\n <span className=\"sr-only\">{`${shortLabel}, ${label}`}</span>\n </>\n ) : (\n label\n )}\n <Icon className=\"icon-xxs\" aria-hidden=\"true\" />\n </button>\n </TableHead>\n );\n },\n);\nSortableTableHead.displayName = 'SortableTableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle text-label font-bold [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n SortableTableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n"]}
@@ -1,5 +1,5 @@
1
- import * as React from "react";
2
- import * as TabsPrimitive from "@radix-ui/react-tabs";
1
+ import * as React from 'react';
2
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
3
3
  declare const Tabs: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>;
4
4
  declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
5
  declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/react/components/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAA;AAIrD,QAAA,MAAM,IAAI,gGAAqB,CAAA;AAE/B,QAAA,MAAM,QAAQ,uJAYZ,CAAA;AAGF,QAAA,MAAM,WAAW,gKAgBf,CAAA;AAGF,QAAA,MAAM,WAAW,0JAYf,CAAA;AAGF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/react/components/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAItD,QAAA,MAAM,IAAI,gGAAqB,CAAC;AAEhC,QAAA,MAAM,QAAQ,uJAYZ,CAAC;AAGH,QAAA,MAAM,WAAW,gKAgBf,CAAC;AAGH,QAAA,MAAM,WAAW,0JAYf,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
@@ -1,14 +1,14 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import * as TabsPrimitive from "@radix-ui/react-tabs";
5
- import { cn } from "../../lib/utils.js";
3
+ import * as React from 'react';
4
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
5
+ import { cn } from '../../lib/utils.js';
6
6
  const Tabs = TabsPrimitive.Root;
7
- const TabsList = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.List, { ref: ref, className: cn("inline-flex h-10 items-center justify-center rounded-md p-1 text-muted-foreground", className), ...props })));
7
+ const TabsList = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.List, { ref: ref, className: cn('inline-flex h-10 items-center justify-center rounded-md p-1 text-muted-foreground', className), ...props })));
8
8
  TabsList.displayName = TabsPrimitive.List.displayName;
9
- const TabsTrigger = React.forwardRef(({ className, children, ...props }, ref) => (_jsx(TabsPrimitive.Trigger, { ref: ref, className: cn("tabs-trigger inline-flex items-center justify-center whitespace-nowrap rounded-xs px-3 py-1.5 text-sm !font-bold ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", "data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-2 data-[state=active]:border-[hsl(var(--brand-primary-deep))]", "data-[state=inactive]:border data-[state=inactive]:border-border data-[state=inactive]:bg-background data-[state=inactive]:hover:bg-accent data-[state=inactive]:hover:text-accent-foreground", className), ...props, children: children })));
9
+ const TabsTrigger = React.forwardRef(({ className, children, ...props }, ref) => (_jsx(TabsPrimitive.Trigger, { ref: ref, className: cn('tabs-trigger inline-flex items-center justify-center whitespace-nowrap rounded-xs px-3 py-1.5 text-sm !font-bold ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', 'data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-2 data-[state=active]:border-[hsl(var(--brand-primary-deep))]', 'data-[state=inactive]:border data-[state=inactive]:border-border data-[state=inactive]:bg-background data-[state=inactive]:hover:bg-accent data-[state=inactive]:hover:text-accent-foreground', className), ...props, children: children })));
10
10
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
11
- const TabsContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Content, { ref: ref, className: cn("mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", className), ...props })));
11
+ const TabsContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Content, { ref: ref, className: cn('mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', className), ...props })));
12
12
  TabsContent.displayName = TabsPrimitive.Content.displayName;
13
13
  export { Tabs, TabsList, TabsTrigger, TabsContent };
14
14
  //# sourceMappingURL=tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/react/components/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAA;AAE/B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,IAAI,IACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mFAAmF,EACnF,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAA;AACF,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAA;AAErD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5C,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,+SAA+S,EAC/S,qKAAqK,EACrK,+LAA+L,EAC/L,SAAS,CACV,KACG,KAAK,YAER,QAAQ,GACa,CACzB,CAAC,CAAA;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAA;AAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mIAAmI,EACnI,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAA;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAA;AAE3D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"tabs-trigger inline-flex items-center justify-center whitespace-nowrap rounded-xs px-3 py-1.5 text-sm !font-bold ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n \"data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-2 data-[state=active]:border-[hsl(var(--brand-primary-deep))]\",\n \"data-[state=inactive]:border data-[state=inactive]:border-border data-[state=inactive]:bg-background data-[state=inactive]:hover:bg-accent data-[state=inactive]:hover:text-accent-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </TabsPrimitive.Trigger>\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"]}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/react/components/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;AAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,IAAI,IACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mFAAmF,EACnF,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AAEtD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5C,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,kTAAkT,EAClT,qKAAqK,EACrK,+LAA+L,EAC/L,SAAS,CACV,KACG,KAAK,YAER,QAAQ,GACa,CACzB,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;AAE5D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,aAAa,CAAC,OAAO,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mIAAmI,EACnI,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '../../lib/utils.js';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'inline-flex h-10 items-center justify-center rounded-md p-1 text-muted-foreground',\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'tabs-trigger inline-flex items-center justify-center whitespace-nowrap rounded-xs px-3 py-1.5 text-sm !font-bold ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n 'data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-2 data-[state=active]:border-[hsl(var(--brand-primary-deep))]',\n 'data-[state=inactive]:border data-[state=inactive]:border-border data-[state=inactive]:bg-background data-[state=inactive]:hover:bg-accent data-[state=inactive]:hover:text-accent-foreground',\n className,\n )}\n {...props}\n >\n {children}\n </TabsPrimitive.Trigger>\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"]}