@chrissnell/chonky-ui 0.1.7

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 (493) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +65 -0
  3. package/dist/components/Accordion/AccordionContent.svelte +21 -0
  4. package/dist/components/Accordion/AccordionContent.svelte.d.ts +9 -0
  5. package/dist/components/Accordion/AccordionItem.svelte +23 -0
  6. package/dist/components/Accordion/AccordionItem.svelte.d.ts +10 -0
  7. package/dist/components/Accordion/AccordionRoot.svelte +45 -0
  8. package/dist/components/Accordion/AccordionRoot.svelte.d.ts +12 -0
  9. package/dist/components/Accordion/AccordionTrigger.svelte +23 -0
  10. package/dist/components/Accordion/AccordionTrigger.svelte.d.ts +9 -0
  11. package/dist/components/Accordion/index.d.ts +11 -0
  12. package/dist/components/Accordion/index.js +6 -0
  13. package/dist/components/AlertDialog/AlertDialogAction.svelte +20 -0
  14. package/dist/components/AlertDialog/AlertDialogAction.svelte.d.ts +8 -0
  15. package/dist/components/AlertDialog/AlertDialogCancel.svelte +20 -0
  16. package/dist/components/AlertDialog/AlertDialogCancel.svelte.d.ts +8 -0
  17. package/dist/components/AlertDialog/AlertDialogContent.svelte +21 -0
  18. package/dist/components/AlertDialog/AlertDialogContent.svelte.d.ts +8 -0
  19. package/dist/components/AlertDialog/AlertDialogDescription.svelte +20 -0
  20. package/dist/components/AlertDialog/AlertDialogDescription.svelte.d.ts +8 -0
  21. package/dist/components/AlertDialog/AlertDialogRoot.svelte +19 -0
  22. package/dist/components/AlertDialog/AlertDialogRoot.svelte.d.ts +8 -0
  23. package/dist/components/AlertDialog/AlertDialogTitle.svelte +20 -0
  24. package/dist/components/AlertDialog/AlertDialogTitle.svelte.d.ts +8 -0
  25. package/dist/components/AlertDialog/AlertDialogTrigger.svelte +20 -0
  26. package/dist/components/AlertDialog/AlertDialogTrigger.svelte.d.ts +8 -0
  27. package/dist/components/AlertDialog/index.d.ts +17 -0
  28. package/dist/components/AlertDialog/index.js +9 -0
  29. package/dist/components/ApplyBanner/ApplyBanner.svelte +18 -0
  30. package/dist/components/ApplyBanner/ApplyBanner.svelte.d.ts +9 -0
  31. package/dist/components/ApplyBanner/index.d.ts +1 -0
  32. package/dist/components/ApplyBanner/index.js +1 -0
  33. package/dist/components/AspectRatio/AspectRatio.svelte +27 -0
  34. package/dist/components/AspectRatio/AspectRatio.svelte.d.ts +10 -0
  35. package/dist/components/AspectRatio/index.d.ts +1 -0
  36. package/dist/components/AspectRatio/index.js +1 -0
  37. package/dist/components/Avatar/Avatar.svelte +31 -0
  38. package/dist/components/Avatar/Avatar.svelte.d.ts +11 -0
  39. package/dist/components/Avatar/index.d.ts +1 -0
  40. package/dist/components/Avatar/index.js +1 -0
  41. package/dist/components/Badge/Badge.svelte +22 -0
  42. package/dist/components/Badge/Badge.svelte.d.ts +10 -0
  43. package/dist/components/Badge/index.d.ts +1 -0
  44. package/dist/components/Badge/index.js +1 -0
  45. package/dist/components/Box/Box.svelte +24 -0
  46. package/dist/components/Box/Box.svelte.d.ts +10 -0
  47. package/dist/components/Box/index.d.ts +1 -0
  48. package/dist/components/Box/index.js +1 -0
  49. package/dist/components/BoxHeader/BoxHeader.svelte +16 -0
  50. package/dist/components/BoxHeader/BoxHeader.svelte.d.ts +9 -0
  51. package/dist/components/BoxHeader/index.d.ts +1 -0
  52. package/dist/components/BoxHeader/index.js +1 -0
  53. package/dist/components/Breadcrumb/BreadcrumbItem.svelte +20 -0
  54. package/dist/components/Breadcrumb/BreadcrumbItem.svelte.d.ts +9 -0
  55. package/dist/components/Breadcrumb/BreadcrumbLink.svelte +20 -0
  56. package/dist/components/Breadcrumb/BreadcrumbLink.svelte.d.ts +9 -0
  57. package/dist/components/Breadcrumb/BreadcrumbList.svelte +20 -0
  58. package/dist/components/Breadcrumb/BreadcrumbList.svelte.d.ts +9 -0
  59. package/dist/components/Breadcrumb/BreadcrumbPage.svelte +20 -0
  60. package/dist/components/Breadcrumb/BreadcrumbPage.svelte.d.ts +9 -0
  61. package/dist/components/Breadcrumb/BreadcrumbRoot.svelte +20 -0
  62. package/dist/components/Breadcrumb/BreadcrumbRoot.svelte.d.ts +9 -0
  63. package/dist/components/Breadcrumb/BreadcrumbSeparator.svelte +17 -0
  64. package/dist/components/Breadcrumb/BreadcrumbSeparator.svelte.d.ts +7 -0
  65. package/dist/components/Breadcrumb/index.d.ts +15 -0
  66. package/dist/components/Breadcrumb/index.js +8 -0
  67. package/dist/components/Button/Button.svelte +34 -0
  68. package/dist/components/Button/Button.svelte.d.ts +11 -0
  69. package/dist/components/Button/index.d.ts +1 -0
  70. package/dist/components/Button/index.js +1 -0
  71. package/dist/components/Calendar/CalendarCell.svelte +23 -0
  72. package/dist/components/Calendar/CalendarCell.svelte.d.ts +11 -0
  73. package/dist/components/Calendar/CalendarDay.svelte +12 -0
  74. package/dist/components/Calendar/CalendarDay.svelte.d.ts +6 -0
  75. package/dist/components/Calendar/CalendarGrid.svelte +16 -0
  76. package/dist/components/Calendar/CalendarGrid.svelte.d.ts +8 -0
  77. package/dist/components/Calendar/CalendarGridBody.svelte +16 -0
  78. package/dist/components/Calendar/CalendarGridBody.svelte.d.ts +8 -0
  79. package/dist/components/Calendar/CalendarGridHead.svelte +16 -0
  80. package/dist/components/Calendar/CalendarGridHead.svelte.d.ts +8 -0
  81. package/dist/components/Calendar/CalendarGridRow.svelte +16 -0
  82. package/dist/components/Calendar/CalendarGridRow.svelte.d.ts +8 -0
  83. package/dist/components/Calendar/CalendarHeadCell.svelte +16 -0
  84. package/dist/components/Calendar/CalendarHeadCell.svelte.d.ts +8 -0
  85. package/dist/components/Calendar/CalendarHeader.svelte +16 -0
  86. package/dist/components/Calendar/CalendarHeader.svelte.d.ts +8 -0
  87. package/dist/components/Calendar/CalendarHeading.svelte +12 -0
  88. package/dist/components/Calendar/CalendarHeading.svelte.d.ts +6 -0
  89. package/dist/components/Calendar/CalendarNextButton.svelte +20 -0
  90. package/dist/components/Calendar/CalendarNextButton.svelte.d.ts +8 -0
  91. package/dist/components/Calendar/CalendarPrevButton.svelte +20 -0
  92. package/dist/components/Calendar/CalendarPrevButton.svelte.d.ts +8 -0
  93. package/dist/components/Calendar/CalendarRoot.svelte +127 -0
  94. package/dist/components/Calendar/CalendarRoot.svelte.d.ts +39 -0
  95. package/dist/components/Calendar/index.d.ts +27 -0
  96. package/dist/components/Calendar/index.js +14 -0
  97. package/dist/components/Checkbox/Checkbox.svelte +47 -0
  98. package/dist/components/Checkbox/Checkbox.svelte.d.ts +13 -0
  99. package/dist/components/Checkbox/index.d.ts +1 -0
  100. package/dist/components/Checkbox/index.js +1 -0
  101. package/dist/components/Collapsible/CollapsibleContent.svelte +21 -0
  102. package/dist/components/Collapsible/CollapsibleContent.svelte.d.ts +9 -0
  103. package/dist/components/Collapsible/CollapsibleRoot.svelte +33 -0
  104. package/dist/components/Collapsible/CollapsibleRoot.svelte.d.ts +12 -0
  105. package/dist/components/Collapsible/CollapsibleTrigger.svelte +21 -0
  106. package/dist/components/Collapsible/CollapsibleTrigger.svelte.d.ts +9 -0
  107. package/dist/components/Collapsible/index.d.ts +9 -0
  108. package/dist/components/Collapsible/index.js +5 -0
  109. package/dist/components/Combobox/ComboboxContent.svelte +24 -0
  110. package/dist/components/Combobox/ComboboxContent.svelte.d.ts +9 -0
  111. package/dist/components/Combobox/ComboboxGroup.svelte +20 -0
  112. package/dist/components/Combobox/ComboboxGroup.svelte.d.ts +8 -0
  113. package/dist/components/Combobox/ComboboxGroupHeading.svelte +20 -0
  114. package/dist/components/Combobox/ComboboxGroupHeading.svelte.d.ts +8 -0
  115. package/dist/components/Combobox/ComboboxInput.svelte +17 -0
  116. package/dist/components/Combobox/ComboboxInput.svelte.d.ts +7 -0
  117. package/dist/components/Combobox/ComboboxItem.svelte +26 -0
  118. package/dist/components/Combobox/ComboboxItem.svelte.d.ts +11 -0
  119. package/dist/components/Combobox/ComboboxRoot.svelte +43 -0
  120. package/dist/components/Combobox/ComboboxRoot.svelte.d.ts +9 -0
  121. package/dist/components/Combobox/ComboboxTrigger.svelte +20 -0
  122. package/dist/components/Combobox/ComboboxTrigger.svelte.d.ts +8 -0
  123. package/dist/components/Combobox/index.d.ts +17 -0
  124. package/dist/components/Combobox/index.js +9 -0
  125. package/dist/components/Command/CommandDialog.svelte +29 -0
  126. package/dist/components/Command/CommandDialog.svelte.d.ts +9 -0
  127. package/dist/components/Command/CommandEmpty.svelte +20 -0
  128. package/dist/components/Command/CommandEmpty.svelte.d.ts +8 -0
  129. package/dist/components/Command/CommandGroup.svelte +20 -0
  130. package/dist/components/Command/CommandGroup.svelte.d.ts +8 -0
  131. package/dist/components/Command/CommandGroupHeading.svelte +20 -0
  132. package/dist/components/Command/CommandGroupHeading.svelte.d.ts +8 -0
  133. package/dist/components/Command/CommandInput.svelte +19 -0
  134. package/dist/components/Command/CommandInput.svelte.d.ts +8 -0
  135. package/dist/components/Command/CommandItem.svelte +26 -0
  136. package/dist/components/Command/CommandItem.svelte.d.ts +11 -0
  137. package/dist/components/Command/CommandList.svelte +20 -0
  138. package/dist/components/Command/CommandList.svelte.d.ts +8 -0
  139. package/dist/components/Command/CommandRoot.svelte +20 -0
  140. package/dist/components/Command/CommandRoot.svelte.d.ts +8 -0
  141. package/dist/components/Command/CommandSeparator.svelte +15 -0
  142. package/dist/components/Command/CommandSeparator.svelte.d.ts +6 -0
  143. package/dist/components/Command/index.d.ts +21 -0
  144. package/dist/components/Command/index.js +11 -0
  145. package/dist/components/ContextMenu/ContextMenuContent.svelte +22 -0
  146. package/dist/components/ContextMenu/ContextMenuContent.svelte.d.ts +8 -0
  147. package/dist/components/ContextMenu/ContextMenuGroup.svelte +20 -0
  148. package/dist/components/ContextMenu/ContextMenuGroup.svelte.d.ts +8 -0
  149. package/dist/components/ContextMenu/ContextMenuGroupHeading.svelte +20 -0
  150. package/dist/components/ContextMenu/ContextMenuGroupHeading.svelte.d.ts +8 -0
  151. package/dist/components/ContextMenu/ContextMenuItem.svelte +24 -0
  152. package/dist/components/ContextMenu/ContextMenuItem.svelte.d.ts +10 -0
  153. package/dist/components/ContextMenu/ContextMenuRoot.svelte +17 -0
  154. package/dist/components/ContextMenu/ContextMenuRoot.svelte.d.ts +7 -0
  155. package/dist/components/ContextMenu/ContextMenuSeparator.svelte +15 -0
  156. package/dist/components/ContextMenu/ContextMenuSeparator.svelte.d.ts +6 -0
  157. package/dist/components/ContextMenu/ContextMenuTrigger.svelte +20 -0
  158. package/dist/components/ContextMenu/ContextMenuTrigger.svelte.d.ts +8 -0
  159. package/dist/components/ContextMenu/index.d.ts +17 -0
  160. package/dist/components/ContextMenu/index.js +9 -0
  161. package/dist/components/DateField/DateFieldInput.svelte +19 -0
  162. package/dist/components/DateField/DateFieldInput.svelte.d.ts +7 -0
  163. package/dist/components/DateField/DateFieldLabel.svelte +16 -0
  164. package/dist/components/DateField/DateFieldLabel.svelte.d.ts +8 -0
  165. package/dist/components/DateField/DateFieldRoot.svelte +59 -0
  166. package/dist/components/DateField/DateFieldRoot.svelte.d.ts +21 -0
  167. package/dist/components/DateField/DateFieldSegment.svelte +13 -0
  168. package/dist/components/DateField/DateFieldSegment.svelte.d.ts +7 -0
  169. package/dist/components/DateField/index.d.ts +11 -0
  170. package/dist/components/DateField/index.js +6 -0
  171. package/dist/components/DatePicker/DatePickerCalendar.svelte +50 -0
  172. package/dist/components/DatePicker/DatePickerCalendar.svelte.d.ts +8 -0
  173. package/dist/components/DatePicker/DatePickerContent.svelte +24 -0
  174. package/dist/components/DatePicker/DatePickerContent.svelte.d.ts +10 -0
  175. package/dist/components/DatePicker/DatePickerInput.svelte +19 -0
  176. package/dist/components/DatePicker/DatePickerInput.svelte.d.ts +7 -0
  177. package/dist/components/DatePicker/DatePickerLabel.svelte +16 -0
  178. package/dist/components/DatePicker/DatePickerLabel.svelte.d.ts +8 -0
  179. package/dist/components/DatePicker/DatePickerRoot.svelte +96 -0
  180. package/dist/components/DatePicker/DatePickerRoot.svelte.d.ts +34 -0
  181. package/dist/components/DatePicker/DatePickerSegment.svelte +13 -0
  182. package/dist/components/DatePicker/DatePickerSegment.svelte.d.ts +7 -0
  183. package/dist/components/DatePicker/DatePickerTrigger.svelte +20 -0
  184. package/dist/components/DatePicker/DatePickerTrigger.svelte.d.ts +8 -0
  185. package/dist/components/DatePicker/index.d.ts +17 -0
  186. package/dist/components/DatePicker/index.js +9 -0
  187. package/dist/components/DateRangeField/DateRangeFieldInput.svelte +20 -0
  188. package/dist/components/DateRangeField/DateRangeFieldInput.svelte.d.ts +8 -0
  189. package/dist/components/DateRangeField/DateRangeFieldLabel.svelte +16 -0
  190. package/dist/components/DateRangeField/DateRangeFieldLabel.svelte.d.ts +8 -0
  191. package/dist/components/DateRangeField/DateRangeFieldRoot.svelte +67 -0
  192. package/dist/components/DateRangeField/DateRangeFieldRoot.svelte.d.ts +27 -0
  193. package/dist/components/DateRangeField/DateRangeFieldSegment.svelte +13 -0
  194. package/dist/components/DateRangeField/DateRangeFieldSegment.svelte.d.ts +7 -0
  195. package/dist/components/DateRangeField/index.d.ts +11 -0
  196. package/dist/components/DateRangeField/index.js +6 -0
  197. package/dist/components/DateRangePicker/DateRangePickerCalendar.svelte +50 -0
  198. package/dist/components/DateRangePicker/DateRangePickerCalendar.svelte.d.ts +8 -0
  199. package/dist/components/DateRangePicker/DateRangePickerContent.svelte +24 -0
  200. package/dist/components/DateRangePicker/DateRangePickerContent.svelte.d.ts +10 -0
  201. package/dist/components/DateRangePicker/DateRangePickerInput.svelte +20 -0
  202. package/dist/components/DateRangePicker/DateRangePickerInput.svelte.d.ts +8 -0
  203. package/dist/components/DateRangePicker/DateRangePickerLabel.svelte +16 -0
  204. package/dist/components/DateRangePicker/DateRangePickerLabel.svelte.d.ts +8 -0
  205. package/dist/components/DateRangePicker/DateRangePickerRoot.svelte +110 -0
  206. package/dist/components/DateRangePicker/DateRangePickerRoot.svelte.d.ts +42 -0
  207. package/dist/components/DateRangePicker/DateRangePickerSegment.svelte +13 -0
  208. package/dist/components/DateRangePicker/DateRangePickerSegment.svelte.d.ts +7 -0
  209. package/dist/components/DateRangePicker/DateRangePickerTrigger.svelte +20 -0
  210. package/dist/components/DateRangePicker/DateRangePickerTrigger.svelte.d.ts +8 -0
  211. package/dist/components/DateRangePicker/index.d.ts +17 -0
  212. package/dist/components/DateRangePicker/index.js +9 -0
  213. package/dist/components/Dot/Dot.svelte +13 -0
  214. package/dist/components/Dot/Dot.svelte.d.ts +8 -0
  215. package/dist/components/Dot/index.d.ts +1 -0
  216. package/dist/components/Dot/index.js +1 -0
  217. package/dist/components/DropdownMenu/DropdownMenuCheckboxItem.svelte +24 -0
  218. package/dist/components/DropdownMenu/DropdownMenuCheckboxItem.svelte.d.ts +10 -0
  219. package/dist/components/DropdownMenu/DropdownMenuContent.svelte +24 -0
  220. package/dist/components/DropdownMenu/DropdownMenuContent.svelte.d.ts +10 -0
  221. package/dist/components/DropdownMenu/DropdownMenuGroup.svelte +20 -0
  222. package/dist/components/DropdownMenu/DropdownMenuGroup.svelte.d.ts +8 -0
  223. package/dist/components/DropdownMenu/DropdownMenuGroupHeading.svelte +20 -0
  224. package/dist/components/DropdownMenu/DropdownMenuGroupHeading.svelte.d.ts +8 -0
  225. package/dist/components/DropdownMenu/DropdownMenuItem.svelte +24 -0
  226. package/dist/components/DropdownMenu/DropdownMenuItem.svelte.d.ts +10 -0
  227. package/dist/components/DropdownMenu/DropdownMenuRoot.svelte +19 -0
  228. package/dist/components/DropdownMenu/DropdownMenuRoot.svelte.d.ts +8 -0
  229. package/dist/components/DropdownMenu/DropdownMenuSeparator.svelte +15 -0
  230. package/dist/components/DropdownMenu/DropdownMenuSeparator.svelte.d.ts +6 -0
  231. package/dist/components/DropdownMenu/DropdownMenuSub.svelte +19 -0
  232. package/dist/components/DropdownMenu/DropdownMenuSub.svelte.d.ts +8 -0
  233. package/dist/components/DropdownMenu/DropdownMenuSubContent.svelte +24 -0
  234. package/dist/components/DropdownMenu/DropdownMenuSubContent.svelte.d.ts +9 -0
  235. package/dist/components/DropdownMenu/DropdownMenuSubTrigger.svelte +20 -0
  236. package/dist/components/DropdownMenu/DropdownMenuSubTrigger.svelte.d.ts +8 -0
  237. package/dist/components/DropdownMenu/DropdownMenuTrigger.svelte +20 -0
  238. package/dist/components/DropdownMenu/DropdownMenuTrigger.svelte.d.ts +8 -0
  239. package/dist/components/DropdownMenu/index.d.ts +25 -0
  240. package/dist/components/DropdownMenu/index.js +13 -0
  241. package/dist/components/EmptyState/EmptyState.svelte +16 -0
  242. package/dist/components/EmptyState/EmptyState.svelte.d.ts +9 -0
  243. package/dist/components/EmptyState/index.d.ts +1 -0
  244. package/dist/components/EmptyState/index.js +1 -0
  245. package/dist/components/Input/Input.svelte +22 -0
  246. package/dist/components/Input/Input.svelte.d.ts +9 -0
  247. package/dist/components/Input/index.d.ts +1 -0
  248. package/dist/components/Input/index.js +1 -0
  249. package/dist/components/Label/Label.svelte +17 -0
  250. package/dist/components/Label/Label.svelte.d.ts +9 -0
  251. package/dist/components/Label/index.d.ts +1 -0
  252. package/dist/components/Label/index.js +1 -0
  253. package/dist/components/LinkPreview/LinkPreviewContent.svelte +26 -0
  254. package/dist/components/LinkPreview/LinkPreviewContent.svelte.d.ts +10 -0
  255. package/dist/components/LinkPreview/LinkPreviewRoot.svelte +21 -0
  256. package/dist/components/LinkPreview/LinkPreviewRoot.svelte.d.ts +9 -0
  257. package/dist/components/LinkPreview/LinkPreviewTrigger.svelte +22 -0
  258. package/dist/components/LinkPreview/LinkPreviewTrigger.svelte.d.ts +9 -0
  259. package/dist/components/LinkPreview/index.d.ts +9 -0
  260. package/dist/components/LinkPreview/index.js +5 -0
  261. package/dist/components/Listbox/Listbox.svelte +20 -0
  262. package/dist/components/Listbox/Listbox.svelte.d.ts +9 -0
  263. package/dist/components/Listbox/ListboxItem.svelte +48 -0
  264. package/dist/components/Listbox/ListboxItem.svelte.d.ts +13 -0
  265. package/dist/components/Listbox/index.d.ts +7 -0
  266. package/dist/components/Listbox/index.js +4 -0
  267. package/dist/components/LogViewer/LogViewer.svelte +95 -0
  268. package/dist/components/LogViewer/LogViewer.svelte.d.ts +23 -0
  269. package/dist/components/LogViewer/index.d.ts +1 -0
  270. package/dist/components/LogViewer/index.js +1 -0
  271. package/dist/components/Menubar/MenubarContent.svelte +27 -0
  272. package/dist/components/Menubar/MenubarContent.svelte.d.ts +9 -0
  273. package/dist/components/Menubar/MenubarItem.svelte +23 -0
  274. package/dist/components/Menubar/MenubarItem.svelte.d.ts +9 -0
  275. package/dist/components/Menubar/MenubarMenu.svelte +16 -0
  276. package/dist/components/Menubar/MenubarMenu.svelte.d.ts +9 -0
  277. package/dist/components/Menubar/MenubarRoot.svelte +21 -0
  278. package/dist/components/Menubar/MenubarRoot.svelte.d.ts +9 -0
  279. package/dist/components/Menubar/MenubarSeparator.svelte +15 -0
  280. package/dist/components/Menubar/MenubarSeparator.svelte.d.ts +6 -0
  281. package/dist/components/Menubar/MenubarTrigger.svelte +21 -0
  282. package/dist/components/Menubar/MenubarTrigger.svelte.d.ts +9 -0
  283. package/dist/components/Menubar/index.d.ts +15 -0
  284. package/dist/components/Menubar/index.js +8 -0
  285. package/dist/components/Meter/Meter.svelte +39 -0
  286. package/dist/components/Meter/Meter.svelte.d.ts +13 -0
  287. package/dist/components/Meter/index.d.ts +1 -0
  288. package/dist/components/Meter/index.js +1 -0
  289. package/dist/components/Modal/Modal.svelte +34 -0
  290. package/dist/components/Modal/Modal.svelte.d.ts +11 -0
  291. package/dist/components/Modal/ModalBody.svelte +16 -0
  292. package/dist/components/Modal/ModalBody.svelte.d.ts +9 -0
  293. package/dist/components/Modal/ModalClose.svelte +21 -0
  294. package/dist/components/Modal/ModalClose.svelte.d.ts +9 -0
  295. package/dist/components/Modal/ModalFooter.svelte +16 -0
  296. package/dist/components/Modal/ModalFooter.svelte.d.ts +9 -0
  297. package/dist/components/Modal/ModalHeader.svelte +16 -0
  298. package/dist/components/Modal/ModalHeader.svelte.d.ts +9 -0
  299. package/dist/components/Modal/index.d.ts +13 -0
  300. package/dist/components/Modal/index.js +7 -0
  301. package/dist/components/NavigationMenu/NavigationMenuContent.svelte +21 -0
  302. package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +9 -0
  303. package/dist/components/NavigationMenu/NavigationMenuItem.svelte +21 -0
  304. package/dist/components/NavigationMenu/NavigationMenuItem.svelte.d.ts +9 -0
  305. package/dist/components/NavigationMenu/NavigationMenuLink.svelte +21 -0
  306. package/dist/components/NavigationMenu/NavigationMenuLink.svelte.d.ts +9 -0
  307. package/dist/components/NavigationMenu/NavigationMenuList.svelte +21 -0
  308. package/dist/components/NavigationMenu/NavigationMenuList.svelte.d.ts +9 -0
  309. package/dist/components/NavigationMenu/NavigationMenuRoot.svelte +21 -0
  310. package/dist/components/NavigationMenu/NavigationMenuRoot.svelte.d.ts +9 -0
  311. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +21 -0
  312. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +9 -0
  313. package/dist/components/NavigationMenu/index.d.ts +15 -0
  314. package/dist/components/NavigationMenu/index.js +8 -0
  315. package/dist/components/Pagination/Pagination.svelte +51 -0
  316. package/dist/components/Pagination/Pagination.svelte.d.ts +12 -0
  317. package/dist/components/Pagination/index.d.ts +1 -0
  318. package/dist/components/Pagination/index.js +1 -0
  319. package/dist/components/PinInput/PinInput.svelte +92 -0
  320. package/dist/components/PinInput/PinInput.svelte.d.ts +12 -0
  321. package/dist/components/PinInput/index.d.ts +1 -0
  322. package/dist/components/PinInput/index.js +1 -0
  323. package/dist/components/Popover/PopoverClose.svelte +20 -0
  324. package/dist/components/Popover/PopoverClose.svelte.d.ts +8 -0
  325. package/dist/components/Popover/PopoverContent.svelte +26 -0
  326. package/dist/components/Popover/PopoverContent.svelte.d.ts +10 -0
  327. package/dist/components/Popover/PopoverRoot.svelte +19 -0
  328. package/dist/components/Popover/PopoverRoot.svelte.d.ts +8 -0
  329. package/dist/components/Popover/PopoverTrigger.svelte +20 -0
  330. package/dist/components/Popover/PopoverTrigger.svelte.d.ts +8 -0
  331. package/dist/components/Popover/index.d.ts +11 -0
  332. package/dist/components/Popover/index.js +6 -0
  333. package/dist/components/Progress/Progress.svelte +27 -0
  334. package/dist/components/Progress/Progress.svelte.d.ts +8 -0
  335. package/dist/components/Progress/index.d.ts +1 -0
  336. package/dist/components/Progress/index.js +1 -0
  337. package/dist/components/Radio/Radio.svelte +29 -0
  338. package/dist/components/Radio/Radio.svelte.d.ts +10 -0
  339. package/dist/components/Radio/RadioGroup.svelte +33 -0
  340. package/dist/components/Radio/RadioGroup.svelte.d.ts +12 -0
  341. package/dist/components/Radio/index.d.ts +2 -0
  342. package/dist/components/Radio/index.js +2 -0
  343. package/dist/components/RangeCalendar/RangeCalendarCell.svelte +23 -0
  344. package/dist/components/RangeCalendar/RangeCalendarCell.svelte.d.ts +11 -0
  345. package/dist/components/RangeCalendar/RangeCalendarDay.svelte +12 -0
  346. package/dist/components/RangeCalendar/RangeCalendarDay.svelte.d.ts +6 -0
  347. package/dist/components/RangeCalendar/RangeCalendarGrid.svelte +16 -0
  348. package/dist/components/RangeCalendar/RangeCalendarGrid.svelte.d.ts +8 -0
  349. package/dist/components/RangeCalendar/RangeCalendarGridBody.svelte +16 -0
  350. package/dist/components/RangeCalendar/RangeCalendarGridBody.svelte.d.ts +8 -0
  351. package/dist/components/RangeCalendar/RangeCalendarGridHead.svelte +16 -0
  352. package/dist/components/RangeCalendar/RangeCalendarGridHead.svelte.d.ts +8 -0
  353. package/dist/components/RangeCalendar/RangeCalendarGridRow.svelte +16 -0
  354. package/dist/components/RangeCalendar/RangeCalendarGridRow.svelte.d.ts +8 -0
  355. package/dist/components/RangeCalendar/RangeCalendarHeadCell.svelte +16 -0
  356. package/dist/components/RangeCalendar/RangeCalendarHeadCell.svelte.d.ts +8 -0
  357. package/dist/components/RangeCalendar/RangeCalendarHeader.svelte +16 -0
  358. package/dist/components/RangeCalendar/RangeCalendarHeader.svelte.d.ts +8 -0
  359. package/dist/components/RangeCalendar/RangeCalendarHeading.svelte +12 -0
  360. package/dist/components/RangeCalendar/RangeCalendarHeading.svelte.d.ts +6 -0
  361. package/dist/components/RangeCalendar/RangeCalendarNextButton.svelte +20 -0
  362. package/dist/components/RangeCalendar/RangeCalendarNextButton.svelte.d.ts +8 -0
  363. package/dist/components/RangeCalendar/RangeCalendarPrevButton.svelte +20 -0
  364. package/dist/components/RangeCalendar/RangeCalendarPrevButton.svelte.d.ts +8 -0
  365. package/dist/components/RangeCalendar/RangeCalendarRoot.svelte +97 -0
  366. package/dist/components/RangeCalendar/RangeCalendarRoot.svelte.d.ts +43 -0
  367. package/dist/components/RangeCalendar/index.d.ts +16 -0
  368. package/dist/components/RangeCalendar/index.js +14 -0
  369. package/dist/components/RatingGroup/RatingGroup.svelte +80 -0
  370. package/dist/components/RatingGroup/RatingGroup.svelte.d.ts +11 -0
  371. package/dist/components/RatingGroup/index.d.ts +1 -0
  372. package/dist/components/RatingGroup/index.js +1 -0
  373. package/dist/components/ScrollArea/ScrollAreaRoot.svelte +21 -0
  374. package/dist/components/ScrollArea/ScrollAreaRoot.svelte.d.ts +9 -0
  375. package/dist/components/ScrollArea/ScrollAreaScrollbar.svelte +20 -0
  376. package/dist/components/ScrollArea/ScrollAreaScrollbar.svelte.d.ts +8 -0
  377. package/dist/components/ScrollArea/ScrollAreaViewport.svelte +21 -0
  378. package/dist/components/ScrollArea/ScrollAreaViewport.svelte.d.ts +9 -0
  379. package/dist/components/ScrollArea/index.d.ts +9 -0
  380. package/dist/components/ScrollArea/index.js +5 -0
  381. package/dist/components/Select/Select.svelte +48 -0
  382. package/dist/components/Select/Select.svelte.d.ts +14 -0
  383. package/dist/components/Select/index.d.ts +1 -0
  384. package/dist/components/Select/index.js +1 -0
  385. package/dist/components/Separator/Separator.svelte +18 -0
  386. package/dist/components/Separator/Separator.svelte.d.ts +8 -0
  387. package/dist/components/Separator/index.d.ts +1 -0
  388. package/dist/components/Separator/index.js +1 -0
  389. package/dist/components/Slider/Slider.svelte +42 -0
  390. package/dist/components/Slider/Slider.svelte.d.ts +13 -0
  391. package/dist/components/Slider/index.d.ts +1 -0
  392. package/dist/components/Slider/index.js +1 -0
  393. package/dist/components/Spinner/Spinner.svelte +17 -0
  394. package/dist/components/Spinner/Spinner.svelte.d.ts +8 -0
  395. package/dist/components/Spinner/index.d.ts +1 -0
  396. package/dist/components/Spinner/index.js +1 -0
  397. package/dist/components/StatCard/StatCard.svelte +40 -0
  398. package/dist/components/StatCard/StatCard.svelte.d.ts +13 -0
  399. package/dist/components/StatCard/index.d.ts +1 -0
  400. package/dist/components/StatCard/index.js +1 -0
  401. package/dist/components/StatusBar/StatusBar.svelte +16 -0
  402. package/dist/components/StatusBar/StatusBar.svelte.d.ts +9 -0
  403. package/dist/components/StatusBar/index.d.ts +1 -0
  404. package/dist/components/StatusBar/index.js +1 -0
  405. package/dist/components/Table/Table.svelte +16 -0
  406. package/dist/components/Table/Table.svelte.d.ts +9 -0
  407. package/dist/components/Table/index.d.ts +1 -0
  408. package/dist/components/Table/index.js +1 -0
  409. package/dist/components/Tabs/TabsContent.svelte +23 -0
  410. package/dist/components/Tabs/TabsContent.svelte.d.ts +10 -0
  411. package/dist/components/Tabs/TabsList.svelte +21 -0
  412. package/dist/components/Tabs/TabsList.svelte.d.ts +9 -0
  413. package/dist/components/Tabs/TabsRoot.svelte +30 -0
  414. package/dist/components/Tabs/TabsRoot.svelte.d.ts +11 -0
  415. package/dist/components/Tabs/TabsTrigger.svelte +23 -0
  416. package/dist/components/Tabs/TabsTrigger.svelte.d.ts +10 -0
  417. package/dist/components/Tabs/index.d.ts +11 -0
  418. package/dist/components/Tabs/index.js +6 -0
  419. package/dist/components/ThemeToggle/ThemeToggle.svelte +46 -0
  420. package/dist/components/ThemeToggle/ThemeToggle.svelte.d.ts +9 -0
  421. package/dist/components/ThemeToggle/index.d.ts +1 -0
  422. package/dist/components/ThemeToggle/index.js +1 -0
  423. package/dist/components/TimeField/TimeFieldInput.svelte +19 -0
  424. package/dist/components/TimeField/TimeFieldInput.svelte.d.ts +7 -0
  425. package/dist/components/TimeField/TimeFieldLabel.svelte +16 -0
  426. package/dist/components/TimeField/TimeFieldLabel.svelte.d.ts +8 -0
  427. package/dist/components/TimeField/TimeFieldRoot.svelte +59 -0
  428. package/dist/components/TimeField/TimeFieldRoot.svelte.d.ts +21 -0
  429. package/dist/components/TimeField/TimeFieldSegment.svelte +13 -0
  430. package/dist/components/TimeField/TimeFieldSegment.svelte.d.ts +7 -0
  431. package/dist/components/TimeField/index.d.ts +11 -0
  432. package/dist/components/TimeField/index.js +6 -0
  433. package/dist/components/TimeRangeField/TimeRangeFieldInput.svelte +20 -0
  434. package/dist/components/TimeRangeField/TimeRangeFieldInput.svelte.d.ts +8 -0
  435. package/dist/components/TimeRangeField/TimeRangeFieldLabel.svelte +16 -0
  436. package/dist/components/TimeRangeField/TimeRangeFieldLabel.svelte.d.ts +8 -0
  437. package/dist/components/TimeRangeField/TimeRangeFieldRoot.svelte +65 -0
  438. package/dist/components/TimeRangeField/TimeRangeFieldRoot.svelte.d.ts +23 -0
  439. package/dist/components/TimeRangeField/TimeRangeFieldSegment.svelte +13 -0
  440. package/dist/components/TimeRangeField/TimeRangeFieldSegment.svelte.d.ts +7 -0
  441. package/dist/components/TimeRangeField/index.d.ts +11 -0
  442. package/dist/components/TimeRangeField/index.js +6 -0
  443. package/dist/components/Toast/Toast.svelte +17 -0
  444. package/dist/components/Toast/Toast.svelte.d.ts +8 -0
  445. package/dist/components/Toast/Toaster.svelte +8 -0
  446. package/dist/components/Toast/Toaster.svelte.d.ts +18 -0
  447. package/dist/components/Toast/index.d.ts +3 -0
  448. package/dist/components/Toast/index.js +3 -0
  449. package/dist/components/Toast/toast.svelte.d.ts +9 -0
  450. package/dist/components/Toast/toast.svelte.js +14 -0
  451. package/dist/components/Toggle/Toggle.svelte +34 -0
  452. package/dist/components/Toggle/Toggle.svelte.d.ts +11 -0
  453. package/dist/components/Toggle/index.d.ts +1 -0
  454. package/dist/components/Toggle/index.js +1 -0
  455. package/dist/components/ToggleButton/ToggleButton.svelte +33 -0
  456. package/dist/components/ToggleButton/ToggleButton.svelte.d.ts +12 -0
  457. package/dist/components/ToggleButton/index.d.ts +1 -0
  458. package/dist/components/ToggleButton/index.js +1 -0
  459. package/dist/components/ToggleGroup/ToggleGroup.svelte +49 -0
  460. package/dist/components/ToggleGroup/ToggleGroup.svelte.d.ts +13 -0
  461. package/dist/components/ToggleGroup/ToggleGroupItem.svelte +30 -0
  462. package/dist/components/ToggleGroup/ToggleGroupItem.svelte.d.ts +11 -0
  463. package/dist/components/ToggleGroup/index.d.ts +7 -0
  464. package/dist/components/ToggleGroup/index.js +4 -0
  465. package/dist/components/Toolbar/ToolbarButton.svelte +21 -0
  466. package/dist/components/Toolbar/ToolbarButton.svelte.d.ts +9 -0
  467. package/dist/components/Toolbar/ToolbarGroup.svelte +23 -0
  468. package/dist/components/Toolbar/ToolbarGroup.svelte.d.ts +10 -0
  469. package/dist/components/Toolbar/ToolbarGroupItem.svelte +23 -0
  470. package/dist/components/Toolbar/ToolbarGroupItem.svelte.d.ts +10 -0
  471. package/dist/components/Toolbar/ToolbarLink.svelte +21 -0
  472. package/dist/components/Toolbar/ToolbarLink.svelte.d.ts +9 -0
  473. package/dist/components/Toolbar/ToolbarRoot.svelte +21 -0
  474. package/dist/components/Toolbar/ToolbarRoot.svelte.d.ts +9 -0
  475. package/dist/components/Toolbar/index.d.ts +13 -0
  476. package/dist/components/Toolbar/index.js +7 -0
  477. package/dist/components/Tooltip/TooltipContent.svelte +24 -0
  478. package/dist/components/Tooltip/TooltipContent.svelte.d.ts +10 -0
  479. package/dist/components/Tooltip/TooltipRoot.svelte +23 -0
  480. package/dist/components/Tooltip/TooltipRoot.svelte.d.ts +9 -0
  481. package/dist/components/Tooltip/TooltipTrigger.svelte +20 -0
  482. package/dist/components/Tooltip/TooltipTrigger.svelte.d.ts +8 -0
  483. package/dist/components/Tooltip/index.d.ts +9 -0
  484. package/dist/components/Tooltip/index.js +5 -0
  485. package/dist/css/chonky.css +1943 -0
  486. package/dist/css/tokens.css +99 -0
  487. package/dist/index.d.ts +58 -0
  488. package/dist/index.js +66 -0
  489. package/dist/internal/floating-scroll-fix.d.ts +1 -0
  490. package/dist/internal/floating-scroll-fix.js +7 -0
  491. package/dist/internal/utils.d.ts +2 -0
  492. package/dist/internal/utils.js +39 -0
  493. package/package.json +58 -0
@@ -0,0 +1,1943 @@
1
+ /* --- Light theme (default) --- */
2
+ :root {
3
+ --color-bg: #fff;
4
+ --color-surface: #f8f8f8;
5
+ --color-surface-raised: #f0f0f0;
6
+ --color-border: #ddd;
7
+ --color-border-subtle: #eee;
8
+
9
+ --color-text: #111;
10
+ --color-text-muted: #666;
11
+ --color-text-dim: #999;
12
+ --color-text-inverse: #fff;
13
+
14
+ --color-accent: #215e21;
15
+ --color-primary: #ffaa00;
16
+ --color-primary-hover: #ffbb33;
17
+ --color-primary-muted: rgba(255, 170, 0, 0.12);
18
+ --color-primary-fg: #000;
19
+ --color-danger: #c41010;
20
+ --color-danger-hover: #d42020;
21
+ --color-danger-muted: rgba(214, 2, 2, 0.12);
22
+ --color-danger-fg: #fff;
23
+ --color-success: #215e21;
24
+ --color-success-fill: #215e21;
25
+ --color-success-muted: rgba(33, 94, 33, 0.15);
26
+ --color-success-fg: #fff;
27
+ --color-warning: #ffaa00;
28
+ --color-warning-muted: rgba(255, 170, 0, 0.15);
29
+ --color-warning-fg: #000;
30
+ --color-info: #1a6e94;
31
+ --color-info-muted: rgba(35, 134, 176, 0.15);
32
+ --color-info-fg: #fff;
33
+
34
+ --color-btn-bg: #f0f0f0;
35
+ --color-btn-bg-hover: #e4e4e4;
36
+ --color-btn-border: #ccc;
37
+
38
+ --font-mono: 'Inconsolata', 'Courier New', monospace;
39
+ --text-xs: 0.72rem;
40
+ --text-sm: 0.8rem;
41
+ --text-base: 0.9rem;
42
+ --text-lg: 1rem;
43
+ --text-xl: 1.1rem;
44
+ --text-2xl: 1.4rem;
45
+
46
+ --radius: 2px;
47
+ --transition: 150ms ease;
48
+ --transition-slow: 200ms ease;
49
+ }
50
+
51
+ /* --- Dark theme --- */
52
+ [data-theme="dark"] {
53
+ --color-bg: #0a0a0a;
54
+ --color-surface: #111;
55
+ --color-surface-raised: #1a1a1a;
56
+ --color-border: #222;
57
+ --color-border-subtle: #1a1a1a;
58
+
59
+ --color-text: #c8c8c8;
60
+ --color-text-muted: #555;
61
+ --color-text-dim: #444;
62
+ --color-text-inverse: #0a0a0a;
63
+
64
+ --color-accent: #2a8a2a;
65
+ --color-danger: #d60202;
66
+ --color-danger-hover: #e52222;
67
+ --color-success: #2a8a2a;
68
+ --color-info: #2386b0;
69
+
70
+ --color-btn-bg: #1a1a1a;
71
+ --color-btn-bg-hover: #252525;
72
+ --color-btn-border: #333;
73
+ }
74
+
75
+ /* --- OS dark preference (auto, before JS runs) --- */
76
+ @media (prefers-color-scheme: dark) {
77
+ :root:not([data-theme="light"]) {
78
+ --color-bg: #0a0a0a;
79
+ --color-surface: #111;
80
+ --color-surface-raised: #1a1a1a;
81
+ --color-border: #222;
82
+ --color-border-subtle: #1a1a1a;
83
+
84
+ --color-text: #c8c8c8;
85
+ --color-text-muted: #555;
86
+ --color-text-dim: #444;
87
+ --color-text-inverse: #0a0a0a;
88
+
89
+ --color-accent: #2a8a2a;
90
+ --color-danger: #d60202;
91
+ --color-danger-hover: #e52222;
92
+ --color-success: #2a8a2a;
93
+ --color-info: #2386b0;
94
+
95
+ --color-btn-bg: #1a1a1a;
96
+ --color-btn-bg-hover: #252525;
97
+ --color-btn-border: #333;
98
+ }
99
+ }
100
+
101
+ /* --- Reset --- */
102
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
103
+
104
+ body {
105
+ font-family: var(--font-mono);
106
+ background: var(--color-bg);
107
+ color: var(--color-text);
108
+ min-height: 100vh;
109
+ transition: background 0.2s, color 0.2s;
110
+ }
111
+
112
+ a { color: var(--color-accent); text-decoration: none; }
113
+ a:hover { color: var(--color-text); }
114
+
115
+ :focus-visible { outline: 1px solid var(--color-accent); outline-offset: 1px; }
116
+ ::-webkit-scrollbar { width: 4px; }
117
+ ::-webkit-scrollbar-track { background: var(--color-surface); }
118
+ ::-webkit-scrollbar-thumb { background: var(--color-btn-border); border-radius: 2px; }
119
+ ::-webkit-scrollbar-thumb:hover { background: var(--color-text-dim); }
120
+
121
+ /* --- Layout --- */
122
+ .container { max-width: 900px; margin: 0 auto; padding: 2rem 1rem; }
123
+
124
+ .header {
125
+ display: flex;
126
+ justify-content: space-between;
127
+ align-items: center;
128
+ margin-bottom: 1.5rem;
129
+ border-bottom: 1px solid var(--color-border);
130
+ padding-bottom: 0.75rem;
131
+ }
132
+
133
+ h1 { font-size: var(--text-2xl); font-weight: 700; }
134
+
135
+ h2 {
136
+ font-size: var(--text-sm);
137
+ font-weight: 700;
138
+ text-transform: uppercase;
139
+ letter-spacing: 0.1em;
140
+ color: var(--color-text-muted);
141
+ margin-bottom: 0.75rem;
142
+ padding-bottom: 0.25rem;
143
+ border-bottom: 1px dotted var(--color-border-subtle);
144
+ }
145
+
146
+ label {
147
+ display: block;
148
+ font-size: 0.85rem;
149
+ color: var(--color-text-muted);
150
+ margin-bottom: 0.25rem;
151
+ }
152
+
153
+ .row { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
154
+ .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
155
+ .ml-auto { margin-left: auto; }
156
+ .dim { color: var(--color-text-muted); font-size: var(--text-sm); }
157
+ .muted { color: var(--color-text-muted) !important; }
158
+ .sep { color: var(--color-border); }
159
+
160
+ /* --- Box --- */
161
+ .box {
162
+ border: 1px solid var(--color-border);
163
+ padding: 1.5rem;
164
+ margin-bottom: 1rem;
165
+ background: var(--color-surface);
166
+ border-radius: var(--radius);
167
+ transition: background 0.2s, border-color 0.2s;
168
+ }
169
+
170
+ .box-header-row {
171
+ display: flex;
172
+ align-items: center;
173
+ justify-content: space-between;
174
+ margin-bottom: 0.75rem;
175
+ padding-bottom: 0.25rem;
176
+ border-bottom: 1px dotted var(--color-border-subtle);
177
+ }
178
+
179
+ /* Titled variant: full-width title bar at top, padded body below */
180
+ .box--titled {
181
+ padding: 0;
182
+ }
183
+ .box-title {
184
+ padding: 0.75rem 1.5rem;
185
+ border-bottom: 1px dotted var(--color-border);
186
+ font-family: var(--font-mono);
187
+ font-size: var(--text-xs);
188
+ font-weight: 700;
189
+ text-transform: uppercase;
190
+ letter-spacing: 0.1em;
191
+ color: var(--color-text-muted);
192
+ }
193
+ .box-body {
194
+ padding: 1.5rem;
195
+ }
196
+
197
+ /* --- StatCard --- */
198
+ .stat-card {
199
+ display: flex;
200
+ flex-direction: column;
201
+ gap: 0.375rem;
202
+ padding: 1rem 1.25rem;
203
+ border: 1px solid var(--color-border);
204
+ border-left-width: 3px;
205
+ background: var(--color-surface);
206
+ border-radius: var(--radius);
207
+ transition: background 0.2s, border-color 0.2s;
208
+ }
209
+ .stat-card__label {
210
+ font-family: var(--font-mono);
211
+ font-size: var(--text-xs);
212
+ text-transform: uppercase;
213
+ letter-spacing: 0.05em;
214
+ color: var(--color-text-muted);
215
+ }
216
+ .stat-card__value {
217
+ font-family: var(--font-mono);
218
+ font-size: var(--text-2xl);
219
+ font-weight: 700;
220
+ color: var(--color-text);
221
+ line-height: 1.2;
222
+ }
223
+ .stat-card--success {
224
+ border-left-color: var(--color-success);
225
+ background: var(--color-success-muted);
226
+ }
227
+ .stat-card--info {
228
+ border-left-color: var(--color-info);
229
+ background: var(--color-info-muted);
230
+ }
231
+ .stat-card--danger {
232
+ border-left-color: var(--color-danger);
233
+ background: var(--color-danger-muted);
234
+ }
235
+ .stat-card--warning {
236
+ border-left-color: var(--color-warning);
237
+ background: var(--color-warning-muted);
238
+ }
239
+ .stat-card--primary {
240
+ border-left-color: var(--color-primary);
241
+ background: var(--color-primary-muted);
242
+ }
243
+
244
+ /* --- Inputs --- */
245
+ input[type="text"],
246
+ input[type="password"],
247
+ input[type="number"] {
248
+ font-family: inherit;
249
+ font-size: var(--text-base);
250
+ border: 1px solid var(--color-btn-border);
251
+ padding: 0.5rem;
252
+ width: 100%;
253
+ margin-bottom: 1rem;
254
+ outline: none;
255
+ background: var(--color-bg);
256
+ color: var(--color-text);
257
+ border-radius: var(--radius);
258
+ transition: border-color var(--transition);
259
+ }
260
+
261
+ input:focus { border-color: var(--color-accent); }
262
+ input.input-error { border-color: var(--color-danger); }
263
+ input::placeholder { color: var(--color-text-dim); }
264
+ input:disabled { opacity: 0.4; }
265
+
266
+ .error { font-size: var(--text-xs); color: var(--color-danger); }
267
+
268
+ select {
269
+ font-family: inherit;
270
+ font-size: var(--text-base);
271
+ width: 100%;
272
+ padding: 0.5rem;
273
+ background: var(--color-bg);
274
+ border: 1px solid var(--color-btn-border);
275
+ border-radius: var(--radius);
276
+ color: var(--color-text);
277
+ outline: none;
278
+ margin-bottom: 1rem;
279
+ transition: border-color var(--transition);
280
+ }
281
+
282
+ select:focus { border-color: var(--color-accent); }
283
+
284
+ /* --- Buttons --- */
285
+ .btn {
286
+ appearance: none;
287
+ -webkit-appearance: none;
288
+ font-family: var(--font-mono);
289
+ font-size: var(--text-base);
290
+ border: 1px solid var(--color-btn-border);
291
+ background: var(--color-btn-bg);
292
+ color: var(--color-text);
293
+ padding: 0.5rem 1.5rem;
294
+ cursor: pointer;
295
+ border-radius: var(--radius);
296
+ transition: background var(--transition), border-color var(--transition), color var(--transition);
297
+ display: inline-flex;
298
+ align-items: center;
299
+ gap: 0.5rem;
300
+ white-space: nowrap;
301
+ }
302
+
303
+ .btn:hover:not(:disabled) { background: var(--color-btn-bg-hover); }
304
+ .btn:disabled { opacity: 0.4; cursor: not-allowed; }
305
+
306
+ .btn-sm { font-size: var(--text-xs); padding: 0.2rem 0.5rem; }
307
+ .btn-lg { font-size: var(--text-lg); padding: 0.75rem 2rem; text-transform: uppercase; letter-spacing: 0.05em; }
308
+
309
+ .btn-primary { color: var(--color-primary); border-color: var(--color-primary); }
310
+ .btn-primary:hover:not(:disabled) { background: var(--color-primary); color: var(--color-primary-fg); }
311
+
312
+ .btn-accent { color: var(--color-success); border-color: var(--color-success); }
313
+ .btn-accent:hover:not(:disabled) { background: var(--color-success); color: var(--color-success-fg); }
314
+
315
+ .btn-danger { color: var(--color-danger); border-color: var(--color-danger); }
316
+ .btn-danger:hover:not(:disabled) { background: var(--color-danger); color: var(--color-danger-fg); }
317
+
318
+ .btn-ghost { background: transparent; border-color: transparent; color: var(--color-text-muted); }
319
+ .btn-ghost:hover:not(:disabled) { color: var(--color-text); background: transparent; }
320
+
321
+ .btn-group {
322
+ display: inline-flex;
323
+ }
324
+ .btn-group > .btn { border-radius: 0; margin-left: -1px; }
325
+ .btn-group > .btn:first-child { border-radius: var(--radius) 0 0 var(--radius); margin-left: 0; }
326
+ .btn-group > .btn:last-child { border-radius: 0 var(--radius) var(--radius) 0; }
327
+
328
+ /* --- Toggle --- */
329
+ .toggle {
330
+ display: inline-flex;
331
+ align-items: center;
332
+ gap: 0.5rem;
333
+ cursor: pointer;
334
+ margin-bottom: 0;
335
+ }
336
+
337
+ .toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
338
+
339
+ .track {
340
+ position: relative;
341
+ width: 32px;
342
+ height: 16px;
343
+ background: var(--color-btn-border);
344
+ border-radius: var(--radius);
345
+ transition: background var(--transition);
346
+ }
347
+
348
+ .toggle input:checked + .track { background: var(--color-accent); }
349
+
350
+ .thumb {
351
+ position: absolute;
352
+ top: 2px;
353
+ left: 2px;
354
+ width: 12px;
355
+ height: 12px;
356
+ background: var(--color-bg);
357
+ border-radius: var(--radius);
358
+ transition: transform var(--transition);
359
+ }
360
+
361
+ .toggle input:checked + .track .thumb { transform: translateX(16px); }
362
+
363
+ .toggle-label { font-size: var(--text-sm); color: var(--color-text); }
364
+
365
+ /* --- Radio --- */
366
+ .radio {
367
+ display: flex;
368
+ align-items: center;
369
+ gap: 0.5rem;
370
+ cursor: pointer;
371
+ font-size: var(--text-sm);
372
+ color: var(--color-text);
373
+ margin-bottom: 0.5rem;
374
+ }
375
+
376
+ .radio.disabled { opacity: 0.4; cursor: not-allowed; }
377
+
378
+ .radio-mark {
379
+ display: flex;
380
+ align-items: center;
381
+ justify-content: center;
382
+ width: 14px;
383
+ height: 14px;
384
+ border: 1px solid var(--color-btn-border);
385
+ border-radius: 50%;
386
+ position: relative;
387
+ flex-shrink: 0;
388
+ transition: border-color var(--transition);
389
+ }
390
+
391
+ .radio-mark.checked { border-color: var(--color-accent); }
392
+
393
+ .radio-mark.checked::after {
394
+ content: '';
395
+ width: 6px;
396
+ height: 6px;
397
+ background: var(--color-accent);
398
+ border-radius: 50%;
399
+ }
400
+
401
+ /* --- Badge --- */
402
+ .badge {
403
+ font-size: var(--text-xs);
404
+ padding: 0.1rem 0.4rem;
405
+ border: 1px solid var(--color-btn-border);
406
+ border-radius: var(--radius);
407
+ white-space: nowrap;
408
+ color: var(--color-text-muted);
409
+ }
410
+
411
+ .badge-success { color: var(--color-success); border-color: var(--color-success); }
412
+ .badge-warning { color: var(--color-warning); border-color: var(--color-warning); }
413
+ .badge-danger { color: var(--color-danger); border-color: var(--color-danger); }
414
+ .badge-info { color: var(--color-info); border-color: var(--color-info); }
415
+
416
+ /* --- Table --- */
417
+ table { width: 100%; font-size: var(--text-sm); border-collapse: collapse; }
418
+
419
+ th {
420
+ text-align: left;
421
+ color: var(--color-text-dim);
422
+ font-weight: 400;
423
+ padding: 0.25rem 0.75rem 0.25rem 0;
424
+ border-bottom: 1px solid var(--color-border);
425
+ }
426
+
427
+ td {
428
+ padding: 0.35rem 0.75rem 0.35rem 0;
429
+ border-bottom: 1px dotted var(--color-border-subtle);
430
+ }
431
+
432
+ td.actions { text-align: right; white-space: nowrap; }
433
+
434
+ /* --- Swatches --- */
435
+ .swatch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: 0.5rem; }
436
+
437
+ .swatch {
438
+ height: 48px;
439
+ border: 1px solid var(--color-border);
440
+ border-radius: var(--radius);
441
+ display: flex;
442
+ align-items: flex-end;
443
+ padding: 0.25rem;
444
+ }
445
+
446
+ .swatch-label { font-size: var(--text-xs); font-weight: 700; }
447
+
448
+ /* --- Empty --- */
449
+ .empty {
450
+ text-align: center;
451
+ padding: 2rem 1rem;
452
+ color: var(--color-text-dim);
453
+ font-style: italic;
454
+ font-size: var(--text-sm);
455
+ }
456
+
457
+ .empty p { margin-bottom: 0.75rem; }
458
+
459
+ /* --- Log Viewer --- */
460
+ .log-viewer {
461
+ border: 1px solid var(--color-border);
462
+ border-radius: var(--radius);
463
+ overflow: hidden;
464
+ }
465
+
466
+ .log-toolbar {
467
+ display: flex;
468
+ align-items: center;
469
+ gap: 0.5rem;
470
+ padding: 0.25rem 0.5rem;
471
+ border-bottom: 1px dotted var(--color-border);
472
+ font-size: var(--text-xs);
473
+ color: var(--color-text-muted);
474
+ }
475
+
476
+ .log-body {
477
+ height: 220px;
478
+ overflow-y: auto;
479
+ font-size: var(--text-xs);
480
+ line-height: 1.2;
481
+ padding: 0.5rem;
482
+ white-space: pre;
483
+ background: var(--color-bg);
484
+ color: var(--color-text-muted);
485
+ }
486
+
487
+ .log-body span { display: block; }
488
+
489
+ .log-ok { color: var(--color-accent); }
490
+ .log-err { color: var(--color-danger); }
491
+ .log-warn { color: var(--color-warning); }
492
+ .log-dim { color: var(--color-text-dim); }
493
+
494
+ .log-grid {
495
+ display: grid;
496
+ grid-auto-rows: min-content;
497
+ font-size: var(--text-xs);
498
+ line-height: 1;
499
+ }
500
+ .log-grid-header {
501
+ color: var(--color-text);
502
+ font-weight: 700;
503
+ padding: 0 0.5rem;
504
+ line-height: 1.05;
505
+ border-bottom: 1px solid var(--color-border);
506
+ }
507
+ .log-grid-cell {
508
+ padding: 0 0.5rem;
509
+ line-height: 1.05;
510
+ white-space: pre;
511
+ overflow: hidden;
512
+ text-overflow: ellipsis;
513
+ }
514
+
515
+ /* --- Dots --- */
516
+ .dot {
517
+ display: inline-block;
518
+ width: 8px;
519
+ height: 8px;
520
+ border-radius: 50%;
521
+ background: var(--color-danger);
522
+ }
523
+
524
+ .dot-on {
525
+ background: var(--color-accent);
526
+ border: 1px solid var(--color-accent);
527
+ }
528
+
529
+ /* --- Apply --- */
530
+ .apply {
531
+ display: flex;
532
+ align-items: center;
533
+ justify-content: space-between;
534
+ padding: 0.5rem 1rem;
535
+ border: 1px solid var(--color-primary);
536
+ border-radius: var(--radius);
537
+ background: var(--color-primary-muted);
538
+ }
539
+
540
+ .apply-text { font-size: var(--text-sm); color: var(--color-primary); }
541
+
542
+ /* --- Status Bar --- */
543
+ .status-bar {
544
+ display: flex;
545
+ align-items: center;
546
+ gap: 0.5rem;
547
+ padding: 0.25rem 0;
548
+ font-size: var(--text-xs);
549
+ color: var(--color-text-dim);
550
+ border-top: 1px dotted var(--color-border);
551
+ }
552
+
553
+ /* --- Modal --- */
554
+ .backdrop {
555
+ position: fixed;
556
+ inset: 0;
557
+ display: flex;
558
+ align-items: center;
559
+ justify-content: center;
560
+ background: rgba(0, 0, 0, 0.7);
561
+ z-index: 100;
562
+ }
563
+
564
+ .modal {
565
+ position: fixed;
566
+ top: 50%;
567
+ left: 50%;
568
+ transform: translate(-50%, -50%);
569
+ z-index: 101;
570
+ background: var(--color-surface);
571
+ border: 1px solid var(--color-border);
572
+ border-radius: var(--radius);
573
+ width: min(480px, 90vw);
574
+ max-height: 85vh;
575
+ display: flex;
576
+ flex-direction: column;
577
+ }
578
+
579
+ .modal-header {
580
+ display: flex;
581
+ align-items: center;
582
+ justify-content: space-between;
583
+ padding: 1rem 1.5rem;
584
+ border-bottom: 1px solid var(--color-border);
585
+ }
586
+
587
+ .modal-close {
588
+ background: none;
589
+ border: none;
590
+ color: var(--color-text-dim);
591
+ font-family: inherit;
592
+ font-size: var(--text-base);
593
+ cursor: pointer;
594
+ padding: 0;
595
+ }
596
+
597
+ .modal-close:hover { color: var(--color-text); }
598
+ .modal-body { padding: 1.5rem; }
599
+
600
+ .modal-footer {
601
+ display: flex;
602
+ justify-content: flex-end;
603
+ gap: 0.5rem;
604
+ padding: 1rem 1.5rem;
605
+ border-top: 1px dotted var(--color-border);
606
+ }
607
+
608
+ /* --- Toast --- */
609
+ .toast {
610
+ position: fixed;
611
+ bottom: 1.5rem;
612
+ right: 1.5rem;
613
+ display: flex;
614
+ align-items: center;
615
+ gap: 0.75rem;
616
+ padding: 0.5rem 1rem;
617
+ border: 1px solid var(--color-border);
618
+ border-radius: var(--radius);
619
+ background: var(--color-surface);
620
+ font-size: var(--text-sm);
621
+ z-index: 200;
622
+ animation: slideIn var(--transition-slow) ease;
623
+ }
624
+
625
+ .toast-success { border-color: var(--color-success); color: var(--color-success); }
626
+ .toast-danger { border-color: var(--color-danger); color: var(--color-danger); }
627
+ .toast-info { border-color: var(--color-info); color: var(--color-info); }
628
+
629
+ .toast-close {
630
+ background: none;
631
+ border: none;
632
+ color: var(--color-text-dim);
633
+ font-family: inherit;
634
+ font-size: var(--text-base);
635
+ cursor: pointer;
636
+ padding: 0;
637
+ }
638
+
639
+ .toast-close:hover { color: var(--color-text); }
640
+
641
+ @keyframes slideIn {
642
+ from { transform: translateX(100%); }
643
+ to { transform: translateX(0); }
644
+ }
645
+
646
+ /* --- Spinner --- */
647
+ .spinner {
648
+ display: inline-block;
649
+ border: 1px solid var(--color-text-muted);
650
+ border-right-color: transparent;
651
+ border-radius: 50%;
652
+ animation: spin 0.6s linear infinite;
653
+ }
654
+
655
+ @keyframes spin { to { transform: rotate(360deg); } }
656
+
657
+ /* --- bits-ui Select --- */
658
+ [data-select-content] {
659
+ background: var(--color-surface);
660
+ border: 1px solid var(--color-border);
661
+ border-radius: var(--radius);
662
+ padding: 0.25rem 0;
663
+ font-family: var(--font-mono);
664
+ font-size: var(--text-base);
665
+ z-index: 50;
666
+ }
667
+ [data-select-item] {
668
+ padding: 0.35rem 0.5rem;
669
+ cursor: pointer;
670
+ color: var(--color-text);
671
+ }
672
+ [data-select-item][data-highlighted] {
673
+ background: var(--color-surface-raised);
674
+ }
675
+ [data-select-item][data-selected] {
676
+ color: var(--color-primary);
677
+ }
678
+
679
+ /* --- bits-ui Switch --- */
680
+ [data-switch-root] {
681
+ position: relative;
682
+ display: inline-flex;
683
+ width: 32px;
684
+ height: 16px;
685
+ background: var(--color-btn-border);
686
+ border-radius: var(--radius);
687
+ transition: background var(--transition);
688
+ cursor: pointer;
689
+ border: none;
690
+ padding: 0;
691
+ }
692
+ [data-switch-root][data-state="checked"] {
693
+ background: var(--color-accent);
694
+ }
695
+ [data-switch-root][data-disabled] {
696
+ opacity: 0.4;
697
+ cursor: not-allowed;
698
+ }
699
+ [data-switch-thumb] {
700
+ position: absolute;
701
+ top: 2px;
702
+ left: 2px;
703
+ width: 12px;
704
+ height: 12px;
705
+ background: var(--color-bg);
706
+ border-radius: var(--radius);
707
+ transition: transform var(--transition);
708
+ }
709
+ [data-switch-root][data-state="checked"] [data-switch-thumb] {
710
+ transform: translateX(16px);
711
+ }
712
+
713
+ /* --- bits-ui RadioGroup --- */
714
+ [data-radio-group-item] {
715
+ background: none;
716
+ border: none;
717
+ padding: 0;
718
+ margin: 0;
719
+ cursor: pointer;
720
+ display: inline-flex;
721
+ align-items: center;
722
+ justify-content: center;
723
+ }
724
+ [data-radio-group-item]:focus-visible {
725
+ outline: 1px solid var(--color-accent);
726
+ outline-offset: 2px;
727
+ border-radius: 50%;
728
+ }
729
+ [data-radio-group-item][data-disabled] { cursor: not-allowed; }
730
+
731
+ /* --- bits-ui Separator --- */
732
+ [data-separator-root] {
733
+ border: none;
734
+ background: var(--color-border);
735
+ }
736
+ [data-separator-root][data-orientation="horizontal"] {
737
+ height: 1px;
738
+ width: 100%;
739
+ }
740
+ [data-separator-root][data-orientation="vertical"] {
741
+ width: 1px;
742
+ height: 100%;
743
+ }
744
+
745
+ /* --- bits-ui Tabs --- */
746
+ [data-tabs-list] {
747
+ display: flex;
748
+ gap: 0;
749
+ border-bottom: 1px solid var(--color-border);
750
+ font-family: var(--font-mono);
751
+ font-size: var(--text-sm);
752
+ }
753
+ [data-tabs-trigger] {
754
+ padding: 0.5rem 1rem;
755
+ color: var(--color-text-muted);
756
+ background: none;
757
+ border: none;
758
+ border-bottom: 2px solid transparent;
759
+ font-family: inherit;
760
+ cursor: pointer;
761
+ transition: color var(--transition), border-color var(--transition);
762
+ }
763
+ [data-tabs-trigger][data-state="active"] {
764
+ color: var(--color-text);
765
+ border-bottom-color: var(--color-primary);
766
+ }
767
+ [data-tabs-trigger]:hover {
768
+ color: var(--color-text);
769
+ }
770
+ [data-tabs-content] {
771
+ padding: 1rem 0;
772
+ }
773
+
774
+ /* --- Breadcrumb --- */
775
+ .breadcrumb-list {
776
+ display: flex;
777
+ align-items: center;
778
+ gap: 0.5rem;
779
+ font-size: var(--text-sm);
780
+ color: var(--color-text-muted);
781
+ list-style: none;
782
+ }
783
+ .breadcrumb-link {
784
+ color: var(--color-accent);
785
+ text-decoration: none;
786
+ }
787
+ .breadcrumb-link:hover { color: var(--color-text); }
788
+ .breadcrumb-separator { color: var(--color-text-dim); }
789
+ .breadcrumb-page { color: var(--color-text); font-weight: 700; }
790
+
791
+ /* --- bits-ui Pagination --- */
792
+ [data-pagination-root] {
793
+ display: flex;
794
+ align-items: center;
795
+ gap: 0.25rem;
796
+ font-family: var(--font-mono);
797
+ }
798
+
799
+ /* --- bits-ui Accordion --- */
800
+ [data-accordion-item] {
801
+ border: 1px solid var(--color-border);
802
+ margin-bottom: -1px;
803
+ background: var(--color-surface);
804
+ }
805
+ [data-accordion-item]:first-child { border-radius: var(--radius) var(--radius) 0 0; }
806
+ [data-accordion-item]:last-child { border-radius: 0 0 var(--radius) var(--radius); }
807
+ [data-accordion-trigger] {
808
+ display: flex;
809
+ width: 100%;
810
+ padding: 0.75rem 1rem;
811
+ font-family: var(--font-mono);
812
+ font-size: var(--text-base);
813
+ background: none;
814
+ border: none;
815
+ color: var(--color-text);
816
+ cursor: pointer;
817
+ transition: background var(--transition);
818
+ }
819
+ [data-accordion-trigger]:hover { background: var(--color-surface-raised); }
820
+ [data-accordion-content] {
821
+ padding: 0 1rem 0.75rem;
822
+ font-size: var(--text-sm);
823
+ color: var(--color-text-muted);
824
+ }
825
+
826
+ /* --- bits-ui Collapsible --- */
827
+ [data-collapsible-trigger] {
828
+ display: flex;
829
+ align-items: center;
830
+ gap: 0.5rem;
831
+ width: 100%;
832
+ padding: 0.5rem 0;
833
+ font-family: var(--font-mono);
834
+ font-size: var(--text-sm);
835
+ background: none;
836
+ border: none;
837
+ color: var(--color-text);
838
+ cursor: pointer;
839
+ }
840
+ [data-collapsible-trigger]::before {
841
+ content: '>';
842
+ display: inline-block;
843
+ width: 1ch;
844
+ text-align: center;
845
+ color: var(--color-text-muted);
846
+ transition: transform var(--transition);
847
+ }
848
+ [data-collapsible-trigger][data-state='open']::before {
849
+ transform: rotate(90deg);
850
+ }
851
+ [data-collapsible-trigger]:hover { color: var(--color-accent); }
852
+ [data-collapsible-trigger]:hover::before { color: var(--color-accent); }
853
+ [data-collapsible-content] {
854
+ font-size: var(--text-sm);
855
+ color: var(--color-text-muted);
856
+ }
857
+
858
+ /* --- bits-ui Toolbar --- */
859
+ [data-toolbar-root] {
860
+ display: flex;
861
+ align-items: center;
862
+ gap: 0.25rem;
863
+ padding: 0.25rem;
864
+ border: 1px solid var(--color-border);
865
+ border-radius: var(--radius);
866
+ background: var(--color-surface);
867
+ }
868
+
869
+ /* --- bits-ui ScrollArea --- */
870
+ [data-scroll-area-root] {
871
+ overflow: hidden;
872
+ }
873
+ [data-scroll-area-viewport] {
874
+ width: 100%;
875
+ height: 100%;
876
+ overflow: auto;
877
+ }
878
+ [data-scroll-area-scrollbar] {
879
+ display: flex;
880
+ touch-action: none;
881
+ user-select: none;
882
+ padding: 1px;
883
+ }
884
+ [data-scroll-area-scrollbar][data-orientation="vertical"] {
885
+ width: 4px;
886
+ }
887
+ [data-scroll-area-scrollbar][data-orientation="horizontal"] {
888
+ flex-direction: column;
889
+ height: 4px;
890
+ }
891
+ [data-scroll-area-thumb] {
892
+ flex: 1;
893
+ background: var(--color-btn-border);
894
+ border-radius: 2px;
895
+ position: relative;
896
+ }
897
+ [data-scroll-area-thumb]:hover {
898
+ background: var(--color-text-dim);
899
+ }
900
+
901
+ /* --- bits-ui NavigationMenu --- */
902
+ [data-navigation-menu-root] {
903
+ font-family: var(--font-mono);
904
+ font-size: var(--text-sm);
905
+ border: 1px solid var(--color-border);
906
+ border-radius: var(--radius);
907
+ background: var(--color-surface);
908
+ padding: 0.25rem;
909
+ }
910
+ [data-navigation-menu-list] {
911
+ display: flex;
912
+ align-items: center;
913
+ gap: 0.25rem;
914
+ list-style: none;
915
+ }
916
+ [data-navigation-menu-item] {
917
+ position: relative;
918
+ }
919
+ [data-navigation-menu-trigger] {
920
+ padding: 0.5rem 0.75rem;
921
+ font-family: inherit;
922
+ font-size: inherit;
923
+ background: none;
924
+ border: none;
925
+ color: var(--color-text);
926
+ cursor: pointer;
927
+ border-radius: var(--radius);
928
+ transition: color var(--transition), background var(--transition);
929
+ }
930
+ [data-navigation-menu-trigger]:hover,
931
+ [data-navigation-menu-trigger][data-state="open"] {
932
+ color: var(--color-text);
933
+ background: var(--color-surface-raised);
934
+ }
935
+ [data-navigation-menu-link] {
936
+ display: block;
937
+ padding: 0.5rem 0.75rem;
938
+ color: var(--color-text);
939
+ text-decoration: none;
940
+ border-radius: var(--radius);
941
+ transition: background var(--transition);
942
+ }
943
+ [data-navigation-menu-link]:hover {
944
+ color: var(--color-text);
945
+ background: var(--color-surface-raised);
946
+ }
947
+ [data-navigation-menu-content] {
948
+ position: absolute;
949
+ top: 100%;
950
+ left: 0;
951
+ margin-top: 0.25rem;
952
+ background: var(--color-surface);
953
+ border: 1px solid var(--color-border);
954
+ border-radius: var(--radius);
955
+ padding: 0.5rem;
956
+ font-family: var(--font-mono);
957
+ font-size: var(--text-sm);
958
+ z-index: 50;
959
+ min-width: 200px;
960
+ }
961
+
962
+ /* --- bits-ui Menubar --- */
963
+ [data-menubar-root] {
964
+ display: inline-flex;
965
+ align-items: center;
966
+ gap: 0;
967
+ border: 1px solid var(--color-border);
968
+ border-radius: var(--radius);
969
+ background: var(--color-surface);
970
+ font-family: var(--font-mono);
971
+ font-size: var(--text-sm);
972
+ padding: 0.25rem;
973
+ }
974
+ [data-menubar-menu] {
975
+ position: relative;
976
+ }
977
+ [data-menubar-trigger] {
978
+ padding: 0.35rem 0.75rem;
979
+ font-family: inherit;
980
+ font-size: inherit;
981
+ background: none;
982
+ border: none;
983
+ color: var(--color-text);
984
+ cursor: pointer;
985
+ border-radius: var(--radius);
986
+ transition: background var(--transition);
987
+ }
988
+ [data-menubar-trigger]:hover,
989
+ [data-menubar-trigger][data-state="open"] {
990
+ background: var(--color-surface-raised);
991
+ }
992
+ [data-menubar-content] {
993
+ background: var(--color-surface);
994
+ border: 1px solid var(--color-border);
995
+ border-radius: var(--radius);
996
+ padding: 0.25rem 0;
997
+ font-family: var(--font-mono);
998
+ font-size: var(--text-sm);
999
+ min-width: 160px;
1000
+ z-index: 50;
1001
+ }
1002
+ [data-menubar-item] {
1003
+ padding: 0.35rem 0.75rem;
1004
+ cursor: pointer;
1005
+ color: var(--color-text);
1006
+ transition: background var(--transition);
1007
+ }
1008
+ [data-menubar-item][data-highlighted] {
1009
+ background: var(--color-surface-raised);
1010
+ }
1011
+ [data-menubar-separator] {
1012
+ height: 1px;
1013
+ background: var(--color-border);
1014
+ margin: 0.25rem 0;
1015
+ }
1016
+ [data-menubar-group-heading] {
1017
+ padding: 0.35rem 0.75rem;
1018
+ font-size: var(--text-xs);
1019
+ color: var(--color-text-dim);
1020
+ }
1021
+
1022
+ /* --- bits-ui Tooltip --- */
1023
+ [data-tooltip-content] {
1024
+ background: var(--color-text);
1025
+ border: 1px solid var(--color-text);
1026
+ border-radius: var(--radius);
1027
+ padding: 0.35rem 0.6rem;
1028
+ font-family: var(--font-mono);
1029
+ font-size: var(--text-xs);
1030
+ line-height: 1.2;
1031
+ color: var(--color-text-inverse);
1032
+ z-index: 50;
1033
+ }
1034
+
1035
+ /* --- bits-ui Popover --- */
1036
+ [data-popover-content] {
1037
+ background: var(--color-surface);
1038
+ border: 1px solid var(--color-border);
1039
+ border-radius: var(--radius);
1040
+ padding: 1rem;
1041
+ font-family: var(--font-mono);
1042
+ font-size: var(--text-sm);
1043
+ z-index: 50;
1044
+ }
1045
+
1046
+ /* --- bits-ui DropdownMenu --- */
1047
+ [data-dropdown-menu-trigger] {
1048
+ background: transparent;
1049
+ border: none;
1050
+ padding: 0;
1051
+ margin: 0;
1052
+ font: inherit;
1053
+ color: inherit;
1054
+ cursor: pointer;
1055
+ display: inline-flex;
1056
+ }
1057
+ [data-dropdown-menu-trigger]:focus-visible {
1058
+ outline: none;
1059
+ }
1060
+ [data-dropdown-menu-content] {
1061
+ background: var(--color-surface);
1062
+ border: 1px solid var(--color-border);
1063
+ border-radius: var(--radius);
1064
+ padding: 0.25rem 0;
1065
+ font-family: var(--font-mono);
1066
+ font-size: var(--text-sm);
1067
+ min-width: 160px;
1068
+ z-index: 50;
1069
+ }
1070
+ [data-dropdown-menu-content]:focus,
1071
+ [data-dropdown-menu-content]:focus-visible,
1072
+ [data-dropdown-menu-sub-content]:focus,
1073
+ [data-dropdown-menu-sub-content]:focus-visible {
1074
+ outline: none;
1075
+ }
1076
+ [data-dropdown-menu-item] {
1077
+ padding: 0.35rem 0.75rem;
1078
+ cursor: pointer;
1079
+ color: var(--color-text);
1080
+ transition: background var(--transition);
1081
+ }
1082
+ [data-dropdown-menu-item][data-highlighted] {
1083
+ background: var(--color-surface-raised);
1084
+ }
1085
+ [data-dropdown-menu-item][data-disabled] {
1086
+ opacity: 0.4;
1087
+ cursor: not-allowed;
1088
+ }
1089
+ [data-dropdown-menu-separator] {
1090
+ height: 1px;
1091
+ background: var(--color-border);
1092
+ margin: 0.25rem 0;
1093
+ }
1094
+ [data-dropdown-menu-group-heading] {
1095
+ padding: 0.35rem 0.75rem;
1096
+ font-size: var(--text-xs);
1097
+ color: var(--color-text-dim);
1098
+ }
1099
+ [data-dropdown-menu-checkbox-item],
1100
+ [data-dropdown-menu-radio-item] {
1101
+ padding: 0.35rem 0.75rem;
1102
+ cursor: pointer;
1103
+ color: var(--color-text);
1104
+ transition: background var(--transition);
1105
+ }
1106
+ [data-dropdown-menu-checkbox-item][data-highlighted],
1107
+ [data-dropdown-menu-radio-item][data-highlighted] {
1108
+ background: var(--color-surface-raised);
1109
+ }
1110
+ [data-dropdown-menu-sub-trigger] {
1111
+ padding: 0.35rem 0.75rem;
1112
+ cursor: pointer;
1113
+ color: var(--color-text);
1114
+ transition: background var(--transition);
1115
+ }
1116
+ [data-dropdown-menu-sub-trigger][data-highlighted] {
1117
+ background: var(--color-surface-raised);
1118
+ }
1119
+ [data-dropdown-menu-sub-content] {
1120
+ background: var(--color-surface);
1121
+ border: 1px solid var(--color-border);
1122
+ border-radius: var(--radius);
1123
+ padding: 0.25rem 0;
1124
+ font-family: var(--font-mono);
1125
+ font-size: var(--text-sm);
1126
+ min-width: 160px;
1127
+ z-index: 50;
1128
+ }
1129
+
1130
+ /* --- bits-ui ContextMenu --- */
1131
+ [data-context-menu-content] {
1132
+ background: var(--color-surface);
1133
+ border: 1px solid var(--color-border);
1134
+ border-radius: var(--radius);
1135
+ padding: 0.25rem 0;
1136
+ font-family: var(--font-mono);
1137
+ font-size: var(--text-sm);
1138
+ min-width: 160px;
1139
+ z-index: 50;
1140
+ }
1141
+ [data-context-menu-item] {
1142
+ padding: 0.35rem 0.75rem;
1143
+ cursor: pointer;
1144
+ color: var(--color-text);
1145
+ transition: background var(--transition);
1146
+ }
1147
+ [data-context-menu-item][data-highlighted] {
1148
+ background: var(--color-surface-raised);
1149
+ }
1150
+ [data-context-menu-item][data-disabled] {
1151
+ opacity: 0.4;
1152
+ cursor: not-allowed;
1153
+ }
1154
+ [data-context-menu-separator] {
1155
+ height: 1px;
1156
+ background: var(--color-border);
1157
+ margin: 0.25rem 0;
1158
+ }
1159
+ [data-context-menu-group-heading] {
1160
+ padding: 0.35rem 0.75rem;
1161
+ font-size: var(--text-xs);
1162
+ color: var(--color-text-dim);
1163
+ }
1164
+ [data-context-menu-checkbox-item],
1165
+ [data-context-menu-radio-item] {
1166
+ padding: 0.35rem 0.75rem;
1167
+ cursor: pointer;
1168
+ color: var(--color-text);
1169
+ transition: background var(--transition);
1170
+ }
1171
+ [data-context-menu-checkbox-item][data-highlighted],
1172
+ [data-context-menu-radio-item][data-highlighted] {
1173
+ background: var(--color-surface-raised);
1174
+ }
1175
+ [data-context-menu-sub-trigger] {
1176
+ padding: 0.35rem 0.75rem;
1177
+ cursor: pointer;
1178
+ color: var(--color-text);
1179
+ transition: background var(--transition);
1180
+ }
1181
+ [data-context-menu-sub-trigger][data-highlighted] {
1182
+ background: var(--color-surface-raised);
1183
+ }
1184
+ [data-context-menu-sub-content] {
1185
+ background: var(--color-surface);
1186
+ border: 1px solid var(--color-border);
1187
+ border-radius: var(--radius);
1188
+ padding: 0.25rem 0;
1189
+ font-family: var(--font-mono);
1190
+ font-size: var(--text-sm);
1191
+ min-width: 160px;
1192
+ z-index: 50;
1193
+ }
1194
+
1195
+ /* --- bits-ui Command --- */
1196
+ [data-command-root] {
1197
+ background: var(--color-surface);
1198
+ border: 1px solid var(--color-border);
1199
+ border-radius: var(--radius);
1200
+ width: min(480px, 90vw);
1201
+ overflow: hidden;
1202
+ }
1203
+ [data-command-input] {
1204
+ width: 100%;
1205
+ padding: 0.75rem 1rem;
1206
+ font-family: var(--font-mono);
1207
+ font-size: var(--text-base);
1208
+ background: transparent;
1209
+ border: none;
1210
+ border-bottom: 1px solid var(--color-border);
1211
+ color: var(--color-text);
1212
+ outline: none;
1213
+ }
1214
+ [data-command-input]::placeholder {
1215
+ color: var(--color-text-dim);
1216
+ }
1217
+ [data-command-list] {
1218
+ max-height: 300px;
1219
+ overflow-y: auto;
1220
+ }
1221
+ [data-command-item] {
1222
+ padding: 0.5rem 1rem;
1223
+ cursor: pointer;
1224
+ color: var(--color-text);
1225
+ font-size: var(--text-sm);
1226
+ transition: background var(--transition);
1227
+ }
1228
+ [data-command-item][data-highlighted] {
1229
+ background: var(--color-surface-raised);
1230
+ }
1231
+ [data-command-item][data-disabled] {
1232
+ opacity: 0.4;
1233
+ cursor: not-allowed;
1234
+ }
1235
+ [data-command-empty] {
1236
+ padding: 1rem;
1237
+ text-align: center;
1238
+ font-size: var(--text-sm);
1239
+ color: var(--color-text-dim);
1240
+ }
1241
+ [data-command-group-heading] {
1242
+ padding: 0.35rem 1rem;
1243
+ font-size: var(--text-xs);
1244
+ color: var(--color-text-dim);
1245
+ }
1246
+ [data-command-separator] {
1247
+ height: 1px;
1248
+ background: var(--color-border);
1249
+ margin: 0.25rem 0;
1250
+ }
1251
+
1252
+ /* --- bits-ui AlertDialog --- */
1253
+ [data-alert-dialog-overlay] {
1254
+ position: fixed;
1255
+ inset: 0;
1256
+ background: rgba(0, 0, 0, 0.7);
1257
+ z-index: 100;
1258
+ }
1259
+ [data-alert-dialog-content] {
1260
+ position: fixed;
1261
+ top: 50%;
1262
+ left: 50%;
1263
+ transform: translate(-50%, -50%);
1264
+ background: var(--color-surface);
1265
+ border: 1px solid var(--color-border);
1266
+ border-radius: var(--radius);
1267
+ width: min(480px, 90vw);
1268
+ max-height: 85vh;
1269
+ z-index: 101;
1270
+ font-family: var(--font-mono);
1271
+ color: var(--color-text);
1272
+ }
1273
+ [data-alert-dialog-title] {
1274
+ padding: 1.25rem 1.5rem 0.5rem;
1275
+ font-family: var(--font-mono);
1276
+ font-size: var(--text-lg);
1277
+ font-weight: 700;
1278
+ color: var(--color-text);
1279
+ }
1280
+ [data-alert-dialog-description] {
1281
+ padding: 0 1.5rem 1.25rem;
1282
+ font-size: var(--text-sm);
1283
+ color: var(--color-text-muted);
1284
+ line-height: 1.5;
1285
+ }
1286
+ [data-alert-dialog-content] .modal-footer {
1287
+ padding: 1.25rem 1.75rem 1.5rem;
1288
+ }
1289
+
1290
+ /* --- bits-ui LinkPreview --- */
1291
+ [data-link-preview-content] {
1292
+ background: var(--color-surface);
1293
+ border: 1px solid var(--color-border);
1294
+ border-radius: var(--radius);
1295
+ padding: 1rem;
1296
+ font-family: var(--font-mono);
1297
+ font-size: var(--text-sm);
1298
+ z-index: 50;
1299
+ max-width: 320px;
1300
+ }
1301
+
1302
+ /* --- bits-ui Combobox --- */
1303
+ [data-combobox-input] {
1304
+ font-family: var(--font-mono);
1305
+ font-size: var(--text-base);
1306
+ border: 1px solid var(--color-btn-border);
1307
+ padding: 0.5rem;
1308
+ width: 100%;
1309
+ outline: none;
1310
+ background: var(--color-bg);
1311
+ color: var(--color-text);
1312
+ border-radius: var(--radius);
1313
+ transition: border-color var(--transition);
1314
+ }
1315
+ [data-combobox-input]:focus {
1316
+ border-color: var(--color-accent);
1317
+ }
1318
+ [data-combobox-input]::placeholder {
1319
+ color: var(--color-text-dim);
1320
+ }
1321
+ [data-combobox-content] {
1322
+ background: var(--color-surface);
1323
+ border: 1px solid var(--color-border);
1324
+ border-radius: var(--radius);
1325
+ padding: 0.25rem 0;
1326
+ font-family: var(--font-mono);
1327
+ font-size: var(--text-base);
1328
+ z-index: 50;
1329
+ }
1330
+ [data-combobox-item] {
1331
+ padding: 0.35rem 0.5rem;
1332
+ cursor: pointer;
1333
+ color: var(--color-text);
1334
+ transition: background var(--transition);
1335
+ }
1336
+ [data-combobox-item][data-highlighted] {
1337
+ background: var(--color-surface-raised);
1338
+ }
1339
+ [data-combobox-item][data-selected] {
1340
+ color: var(--color-primary);
1341
+ }
1342
+ [data-combobox-item][data-disabled] {
1343
+ opacity: 0.4;
1344
+ cursor: not-allowed;
1345
+ }
1346
+ [data-combobox-group-heading] {
1347
+ padding: 0.35rem 0.5rem;
1348
+ font-size: var(--text-xs);
1349
+ color: var(--color-text-dim);
1350
+ }
1351
+
1352
+ /* --- Listbox --- */
1353
+ .listbox {
1354
+ border: 1px solid var(--color-border);
1355
+ border-radius: var(--radius);
1356
+ background: var(--color-surface);
1357
+ font-family: var(--font-mono);
1358
+ font-size: var(--text-sm);
1359
+ overflow-y: auto;
1360
+ }
1361
+ .listbox-item {
1362
+ padding: 0.35rem 0.75rem;
1363
+ cursor: pointer;
1364
+ color: var(--color-text);
1365
+ border-left: 2px solid transparent;
1366
+ transition: background var(--transition);
1367
+ }
1368
+ .listbox-item:hover {
1369
+ background: var(--color-surface-raised);
1370
+ }
1371
+ .listbox-item[aria-selected="true"] {
1372
+ color: var(--color-primary);
1373
+ background: var(--color-primary-muted);
1374
+ border-left-color: var(--color-primary);
1375
+ }
1376
+ .listbox-item[aria-selected="true"]::before {
1377
+ content: "> ";
1378
+ color: var(--color-primary);
1379
+ }
1380
+ .listbox-item[aria-disabled="true"] {
1381
+ opacity: 0.4;
1382
+ cursor: not-allowed;
1383
+ }
1384
+
1385
+ /* --- bits-ui Checkbox --- */
1386
+ [data-checkbox-root] {
1387
+ display: flex;
1388
+ align-items: center;
1389
+ justify-content: center;
1390
+ width: 14px;
1391
+ height: 14px;
1392
+ border: 1px solid var(--color-btn-border);
1393
+ border-radius: var(--radius);
1394
+ cursor: pointer;
1395
+ transition: border-color var(--transition), background var(--transition);
1396
+ background: transparent;
1397
+ padding: 0;
1398
+ flex-shrink: 0;
1399
+ }
1400
+ [data-checkbox-root][data-state="checked"],
1401
+ [data-checkbox-root][data-state="indeterminate"] {
1402
+ border-color: var(--color-accent);
1403
+ background: var(--color-accent);
1404
+ color: var(--color-bg);
1405
+ }
1406
+ [data-checkbox-root][data-disabled] {
1407
+ opacity: 0.4;
1408
+ cursor: not-allowed;
1409
+ }
1410
+ [data-checkbox-indicator] {
1411
+ color: var(--color-bg);
1412
+ font-size: 10px;
1413
+ display: flex;
1414
+ align-items: center;
1415
+ justify-content: center;
1416
+ }
1417
+
1418
+ /* --- bits-ui Slider --- */
1419
+ [data-slider-root] {
1420
+ position: relative;
1421
+ display: flex;
1422
+ align-items: center;
1423
+ width: 100%;
1424
+ height: 20px;
1425
+ touch-action: none;
1426
+ user-select: none;
1427
+ }
1428
+ [data-slider-root]::before {
1429
+ content: '';
1430
+ position: absolute;
1431
+ left: 0;
1432
+ right: 0;
1433
+ top: 50%;
1434
+ height: 4px;
1435
+ transform: translateY(-50%);
1436
+ background: var(--color-btn-border);
1437
+ border-radius: var(--radius);
1438
+ }
1439
+ [data-slider-range] {
1440
+ position: absolute;
1441
+ height: 4px;
1442
+ top: 50%;
1443
+ transform: translateY(-50%);
1444
+ background: var(--color-accent);
1445
+ border-radius: var(--radius);
1446
+ }
1447
+ [data-slider-thumb] {
1448
+ display: block;
1449
+ width: 14px;
1450
+ height: 14px;
1451
+ background: var(--color-bg);
1452
+ border: 2px solid var(--color-accent);
1453
+ border-radius: var(--radius);
1454
+ cursor: pointer;
1455
+ transition: border-color var(--transition), transform var(--transition), background var(--transition);
1456
+ }
1457
+ [data-slider-thumb]:hover {
1458
+ background: var(--color-accent);
1459
+ transform: scale(1.1);
1460
+ }
1461
+ [data-slider-thumb]:focus-visible {
1462
+ outline: 1px solid var(--color-accent);
1463
+ outline-offset: 2px;
1464
+ }
1465
+ [data-slider-root][data-disabled] [data-slider-range],
1466
+ [data-slider-root][data-disabled] [data-slider-thumb] {
1467
+ opacity: 0.5;
1468
+ cursor: not-allowed;
1469
+ }
1470
+
1471
+ /* --- bits-ui Progress --- */
1472
+ [data-progress-root] {
1473
+ height: 6px;
1474
+ background: var(--color-btn-border);
1475
+ border-radius: var(--radius);
1476
+ overflow: hidden;
1477
+ }
1478
+ [data-progress-indicator] {
1479
+ height: 100%;
1480
+ background: var(--color-accent);
1481
+ transition: width var(--transition);
1482
+ }
1483
+
1484
+ /* --- Meter --- */
1485
+ .meter {
1486
+ height: 6px;
1487
+ background: var(--color-btn-border);
1488
+ border-radius: var(--radius);
1489
+ overflow: hidden;
1490
+ }
1491
+ .meter-fill {
1492
+ height: 100%;
1493
+ border-radius: var(--radius);
1494
+ transition: width var(--transition), background var(--transition);
1495
+ }
1496
+ .meter-low { background: var(--color-accent); }
1497
+ .meter-medium { background: var(--color-warning); }
1498
+ .meter-high { background: var(--color-danger); }
1499
+ .meter-invert .meter-low { background: var(--color-danger); }
1500
+ .meter-invert .meter-high { background: var(--color-accent); }
1501
+
1502
+ /* --- bits-ui PinInput --- */
1503
+ [data-pin-input-root] {
1504
+ display: flex;
1505
+ gap: 0.5rem;
1506
+ }
1507
+ [data-pin-input-cell] {
1508
+ width: 2.5rem;
1509
+ height: 2.5rem;
1510
+ text-align: center;
1511
+ font-family: var(--font-mono);
1512
+ font-size: var(--text-lg);
1513
+ border: 1px solid var(--color-btn-border);
1514
+ border-radius: var(--radius);
1515
+ background: var(--color-bg);
1516
+ color: var(--color-text);
1517
+ outline: none;
1518
+ transition: border-color var(--transition);
1519
+ }
1520
+ [data-pin-input-cell]:focus {
1521
+ border-color: var(--color-accent);
1522
+ }
1523
+
1524
+ /* --- bits-ui Toggle (pressed button) --- */
1525
+ [data-toggle-root] {
1526
+ font-family: inherit;
1527
+ font-size: var(--text-base);
1528
+ border: 1px solid var(--color-btn-border);
1529
+ background: var(--color-btn-bg);
1530
+ color: var(--color-text);
1531
+ padding: 0.5rem 1.5rem;
1532
+ cursor: pointer;
1533
+ border-radius: var(--radius);
1534
+ transition: background var(--transition), border-color var(--transition), color var(--transition);
1535
+ display: inline-flex;
1536
+ align-items: center;
1537
+ gap: 0.5rem;
1538
+ white-space: nowrap;
1539
+ }
1540
+ [data-toggle-root]:hover:not([data-disabled]) {
1541
+ background: var(--color-btn-bg-hover);
1542
+ }
1543
+ [data-toggle-root][data-state="on"] {
1544
+ color: var(--color-primary);
1545
+ border-color: var(--color-primary);
1546
+ }
1547
+ [data-toggle-root][data-state="on"]:hover:not([data-disabled]) {
1548
+ background: var(--color-primary);
1549
+ color: var(--color-primary-fg);
1550
+ }
1551
+ [data-toggle-root][data-disabled] {
1552
+ opacity: 0.4;
1553
+ cursor: not-allowed;
1554
+ }
1555
+
1556
+ /* --- bits-ui ToggleGroup --- */
1557
+ [data-toggle-group-root] {
1558
+ display: inline-flex;
1559
+ align-items: center;
1560
+ gap: 0;
1561
+ }
1562
+ [data-toggle-group-root] [data-toggle-group-item] {
1563
+ font-family: inherit;
1564
+ font-size: var(--text-base);
1565
+ border: 1px solid var(--color-btn-border);
1566
+ background: var(--color-btn-bg);
1567
+ color: var(--color-text);
1568
+ padding: 0.5rem 1rem;
1569
+ cursor: pointer;
1570
+ transition: background var(--transition), border-color var(--transition), color var(--transition);
1571
+ display: inline-flex;
1572
+ align-items: center;
1573
+ gap: 0.5rem;
1574
+ white-space: nowrap;
1575
+ margin-left: -1px;
1576
+ }
1577
+ [data-toggle-group-root] [data-toggle-group-item]:first-child {
1578
+ margin-left: 0;
1579
+ border-radius: var(--radius) 0 0 var(--radius);
1580
+ }
1581
+ [data-toggle-group-root] [data-toggle-group-item]:last-child {
1582
+ border-radius: 0 var(--radius) var(--radius) 0;
1583
+ }
1584
+ [data-toggle-group-root] [data-toggle-group-item]:hover:not([data-disabled]) {
1585
+ background: var(--color-btn-bg-hover);
1586
+ }
1587
+ [data-toggle-group-root] [data-toggle-group-item][data-state="on"] {
1588
+ color: var(--color-primary);
1589
+ border-color: var(--color-primary);
1590
+ z-index: 1;
1591
+ }
1592
+ [data-toggle-group-root] [data-toggle-group-item][data-disabled] {
1593
+ opacity: 0.4;
1594
+ cursor: not-allowed;
1595
+ }
1596
+
1597
+ /* --- bits-ui RatingGroup --- */
1598
+ [data-rating-group-root] {
1599
+ display: inline-flex;
1600
+ align-items: center;
1601
+ gap: 0;
1602
+ }
1603
+ [data-rating-group-item] {
1604
+ background: none;
1605
+ border: none;
1606
+ padding: 0.1rem;
1607
+ cursor: pointer;
1608
+ color: var(--color-btn-border);
1609
+ font-size: var(--text-lg);
1610
+ transition: color var(--transition);
1611
+ }
1612
+ [data-rating-group-item]:hover {
1613
+ color: var(--color-primary);
1614
+ }
1615
+ [data-rating-group-item][data-highlighted] {
1616
+ color: var(--color-primary);
1617
+ }
1618
+
1619
+ /* --- bits-ui Avatar --- */
1620
+ [data-avatar-root] {
1621
+ display: inline-flex;
1622
+ align-items: center;
1623
+ justify-content: center;
1624
+ width: 32px;
1625
+ height: 32px;
1626
+ border-radius: 50%;
1627
+ border: 1px solid var(--color-border);
1628
+ overflow: hidden;
1629
+ background: var(--color-surface-raised);
1630
+ font-family: var(--font-mono);
1631
+ font-size: var(--text-xs);
1632
+ color: var(--color-text-muted);
1633
+ flex-shrink: 0;
1634
+ }
1635
+ [data-avatar-image] {
1636
+ width: 100%;
1637
+ height: 100%;
1638
+ object-fit: cover;
1639
+ }
1640
+
1641
+ /* --- Calendar --- */
1642
+ [data-calendar-root] {
1643
+ font-family: var(--font-mono);
1644
+ font-size: var(--text-sm);
1645
+ }
1646
+ [data-calendar-header] {
1647
+ display: flex;
1648
+ align-items: center;
1649
+ justify-content: space-between;
1650
+ padding: 0.5rem;
1651
+ }
1652
+ [data-calendar-heading] {
1653
+ font-size: var(--text-base);
1654
+ color: var(--color-text);
1655
+ }
1656
+ [data-calendar-prev-button],
1657
+ [data-calendar-next-button] {
1658
+ background: none;
1659
+ border: 1px solid var(--color-btn-border);
1660
+ border-radius: var(--radius);
1661
+ color: var(--color-text);
1662
+ cursor: pointer;
1663
+ padding: 0.25rem 0.5rem;
1664
+ font-family: var(--font-mono);
1665
+ font-size: var(--text-sm);
1666
+ transition: background var(--transition), border-color var(--transition);
1667
+ }
1668
+ [data-calendar-prev-button]:hover,
1669
+ [data-calendar-next-button]:hover {
1670
+ background: var(--color-surface-raised);
1671
+ border-color: var(--color-text-muted);
1672
+ }
1673
+ [data-calendar-grid] {
1674
+ width: 100%;
1675
+ border-collapse: collapse;
1676
+ font-size: var(--text-sm);
1677
+ }
1678
+ [data-calendar-head-cell] {
1679
+ text-align: center;
1680
+ padding: 0.25rem;
1681
+ color: var(--color-text-dim);
1682
+ font-weight: 400;
1683
+ font-size: var(--text-xs);
1684
+ }
1685
+ [data-calendar-cell] {
1686
+ text-align: center;
1687
+ padding: 0.125rem;
1688
+ }
1689
+ [data-calendar-day] {
1690
+ display: inline-flex;
1691
+ align-items: center;
1692
+ justify-content: center;
1693
+ width: 36px;
1694
+ height: 36px;
1695
+ border-radius: var(--radius);
1696
+ border: none;
1697
+ background: none;
1698
+ color: var(--color-text);
1699
+ font-family: var(--font-mono);
1700
+ font-size: var(--text-sm);
1701
+ cursor: pointer;
1702
+ transition: background var(--transition);
1703
+ }
1704
+ [data-calendar-day]:hover {
1705
+ background: var(--color-surface-raised);
1706
+ }
1707
+ [data-calendar-day][data-selected] {
1708
+ background: var(--color-primary);
1709
+ color: var(--color-primary-fg);
1710
+ }
1711
+ [data-calendar-day][data-outside-month] {
1712
+ color: var(--color-text-dim);
1713
+ }
1714
+ [data-calendar-day][data-disabled] {
1715
+ opacity: 0.4;
1716
+ cursor: not-allowed;
1717
+ }
1718
+ [data-calendar-day][data-unavailable] {
1719
+ text-decoration: line-through;
1720
+ color: var(--color-danger);
1721
+ }
1722
+ [data-calendar-day][data-today]:not([data-selected]) {
1723
+ border: 1px dotted var(--color-primary);
1724
+ }
1725
+
1726
+ /* --- Range Calendar --- */
1727
+ [data-range-calendar-root] {
1728
+ font-family: var(--font-mono);
1729
+ font-size: var(--text-sm);
1730
+ }
1731
+ [data-range-calendar-header] {
1732
+ display: flex;
1733
+ align-items: center;
1734
+ justify-content: space-between;
1735
+ padding: 0.5rem;
1736
+ }
1737
+ [data-range-calendar-heading] {
1738
+ font-size: var(--text-base);
1739
+ color: var(--color-text);
1740
+ }
1741
+ [data-range-calendar-prev-button],
1742
+ [data-range-calendar-next-button] {
1743
+ background: none;
1744
+ border: 1px solid var(--color-btn-border);
1745
+ border-radius: var(--radius);
1746
+ color: var(--color-text);
1747
+ cursor: pointer;
1748
+ padding: 0.25rem 0.5rem;
1749
+ font-family: var(--font-mono);
1750
+ font-size: var(--text-sm);
1751
+ transition: background var(--transition), border-color var(--transition);
1752
+ }
1753
+ [data-range-calendar-prev-button]:hover,
1754
+ [data-range-calendar-next-button]:hover {
1755
+ background: var(--color-surface-raised);
1756
+ border-color: var(--color-text-muted);
1757
+ }
1758
+ [data-range-calendar-grid] {
1759
+ width: 100%;
1760
+ border-collapse: collapse;
1761
+ font-size: var(--text-sm);
1762
+ }
1763
+ [data-range-calendar-head-cell] {
1764
+ text-align: center;
1765
+ padding: 0.25rem;
1766
+ color: var(--color-text-dim);
1767
+ font-weight: 400;
1768
+ font-size: var(--text-xs);
1769
+ }
1770
+ [data-range-calendar-cell] {
1771
+ text-align: center;
1772
+ padding: 0.125rem;
1773
+ }
1774
+ [data-range-calendar-day] {
1775
+ display: inline-flex;
1776
+ align-items: center;
1777
+ justify-content: center;
1778
+ width: 36px;
1779
+ height: 36px;
1780
+ border-radius: var(--radius);
1781
+ border: none;
1782
+ background: none;
1783
+ color: var(--color-text);
1784
+ font-family: var(--font-mono);
1785
+ font-size: var(--text-sm);
1786
+ cursor: pointer;
1787
+ transition: background var(--transition);
1788
+ }
1789
+ [data-range-calendar-day]:hover {
1790
+ background: var(--color-surface-raised);
1791
+ }
1792
+ [data-range-calendar-day][data-selected] {
1793
+ background: var(--color-primary-muted);
1794
+ color: var(--color-text);
1795
+ }
1796
+ [data-range-calendar-day][data-selection-start],
1797
+ [data-range-calendar-day][data-selection-end] {
1798
+ background: var(--color-primary);
1799
+ color: var(--color-primary-fg);
1800
+ }
1801
+ [data-range-calendar-day][data-outside-month] {
1802
+ color: var(--color-text-dim);
1803
+ }
1804
+ [data-range-calendar-day][data-disabled] {
1805
+ opacity: 0.4;
1806
+ cursor: not-allowed;
1807
+ }
1808
+ [data-range-calendar-day][data-unavailable] {
1809
+ text-decoration: line-through;
1810
+ color: var(--color-danger);
1811
+ }
1812
+ [data-range-calendar-day][data-today]:not([data-selected]):not([data-selection-start]):not([data-selection-end]) {
1813
+ border: 1px dotted var(--color-primary);
1814
+ }
1815
+
1816
+ /* --- Date Field --- */
1817
+ [data-date-field-input] {
1818
+ display: inline-flex;
1819
+ align-items: center;
1820
+ gap: 0;
1821
+ padding: 0.35rem 0.5rem;
1822
+ border: 1px solid var(--color-btn-border);
1823
+ border-radius: var(--radius);
1824
+ background: var(--color-bg);
1825
+ font-family: var(--font-mono);
1826
+ font-size: var(--text-base);
1827
+ }
1828
+ [data-date-field-input]:focus-within {
1829
+ border-color: var(--color-accent);
1830
+ }
1831
+ [data-date-field-segment] {
1832
+ padding: 0.125rem 0.125rem;
1833
+ border-radius: var(--radius);
1834
+ color: var(--color-text);
1835
+ outline: none;
1836
+ }
1837
+ [data-date-field-segment]:focus {
1838
+ background: var(--color-primary-muted);
1839
+ }
1840
+ [data-date-field-segment][data-segment="literal"] {
1841
+ color: var(--color-text-dim);
1842
+ }
1843
+ [data-date-field-segment][data-placeholder] {
1844
+ color: var(--color-text-muted);
1845
+ }
1846
+ [data-date-field-label] {
1847
+ font-family: var(--font-mono);
1848
+ font-size: var(--text-sm);
1849
+ color: var(--color-text-muted);
1850
+ margin-bottom: 0.25rem;
1851
+ }
1852
+
1853
+ /* --- Date Picker / Date Range Picker --- */
1854
+ [data-popover-trigger] {
1855
+ background: none;
1856
+ border: 1px solid var(--color-btn-border);
1857
+ border-radius: var(--radius);
1858
+ color: var(--color-text);
1859
+ cursor: pointer;
1860
+ padding: 0.35rem 0.5rem;
1861
+ font-family: var(--font-mono);
1862
+ font-size: var(--text-sm);
1863
+ transition: background var(--transition), border-color var(--transition);
1864
+ }
1865
+ [data-popover-trigger]:hover {
1866
+ background: var(--color-surface-raised);
1867
+ border-color: var(--color-text-muted);
1868
+ }
1869
+
1870
+ /* --- Date Range Field --- */
1871
+ /* Date range field inputs/segments share data-date-field-* attributes with DateField */
1872
+ [data-date-range-field-label] {
1873
+ font-family: var(--font-mono);
1874
+ font-size: var(--text-sm);
1875
+ color: var(--color-text-muted);
1876
+ margin-bottom: 0.25rem;
1877
+ }
1878
+ .date-range-field-separator {
1879
+ color: var(--color-text-dim);
1880
+ padding: 0 0.5rem;
1881
+ font-family: var(--font-mono);
1882
+ }
1883
+
1884
+ /* --- Date Range Picker --- */
1885
+ /* Trigger and content share [data-popover-trigger] / [data-popover-content] with DatePicker */
1886
+
1887
+ /* --- Time Field --- */
1888
+ [data-time-field-input] {
1889
+ display: inline-flex;
1890
+ align-items: center;
1891
+ gap: 0;
1892
+ padding: 0.35rem 0.5rem;
1893
+ border: 1px solid var(--color-btn-border);
1894
+ border-radius: var(--radius);
1895
+ background: var(--color-bg);
1896
+ font-family: var(--font-mono);
1897
+ font-size: var(--text-base);
1898
+ }
1899
+ [data-time-field-input]:focus-within {
1900
+ border-color: var(--color-accent);
1901
+ }
1902
+ [data-time-field-input] [data-segment] {
1903
+ padding: 0.125rem 0.125rem;
1904
+ border-radius: var(--radius);
1905
+ color: var(--color-text);
1906
+ outline: none;
1907
+ }
1908
+ [data-time-field-input] [data-segment]:focus {
1909
+ background: var(--color-primary-muted);
1910
+ }
1911
+ [data-time-field-input] [data-segment="literal"] {
1912
+ color: var(--color-text-dim);
1913
+ }
1914
+ [data-time-field-input] [data-segment][data-placeholder] {
1915
+ color: var(--color-text-muted);
1916
+ }
1917
+ [data-time-field-label] {
1918
+ font-family: var(--font-mono);
1919
+ font-size: var(--text-sm);
1920
+ color: var(--color-text-muted);
1921
+ margin-bottom: 0.25rem;
1922
+ }
1923
+
1924
+ /* --- Time Range Field --- */
1925
+ /* Time range field inputs/segments share data-time-field-* attributes with TimeField */
1926
+ [data-time-range-field-label] {
1927
+ font-family: var(--font-mono);
1928
+ font-size: var(--text-sm);
1929
+ color: var(--color-text-muted);
1930
+ margin-bottom: 0.25rem;
1931
+ }
1932
+ .time-range-field-separator {
1933
+ color: var(--color-text-dim);
1934
+ padding: 0 0.5rem;
1935
+ font-family: var(--font-mono);
1936
+ }
1937
+
1938
+ /* --- Responsive --- */
1939
+ @media (max-width: 768px) {
1940
+ .container { padding: 1rem 0.5rem; }
1941
+ .box { padding: 1rem; }
1942
+ .grid-2 { grid-template-columns: 1fr; }
1943
+ }