@stridge/noctis 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/README.md +60 -0
  2. package/dist/_virtual/_rolldown/runtime.js +27 -0
  3. package/dist/components/accordion/accordion.context.js +15 -0
  4. package/dist/components/accordion/accordion.d.ts +136 -0
  5. package/dist/components/accordion/accordion.js +132 -0
  6. package/dist/components/accordion/accordion.props.d.ts +45 -0
  7. package/dist/components/accordion/accordion.props.js +53 -0
  8. package/dist/components/accordion/accordion.slots.d.ts +24 -0
  9. package/dist/components/accordion/accordion.slots.js +39 -0
  10. package/dist/components/accordion/accordion.types.d.ts +11 -0
  11. package/dist/components/accordion/index.d.ts +3 -0
  12. package/dist/components/alert-dialog/alert-dialog.context.js +16 -0
  13. package/dist/components/alert-dialog/alert-dialog.d.ts +324 -0
  14. package/dist/components/alert-dialog/alert-dialog.js +279 -0
  15. package/dist/components/alert-dialog/alert-dialog.props.d.ts +85 -0
  16. package/dist/components/alert-dialog/alert-dialog.props.js +84 -0
  17. package/dist/components/alert-dialog/alert-dialog.slots.d.ts +29 -0
  18. package/dist/components/alert-dialog/alert-dialog.slots.js +52 -0
  19. package/dist/components/alert-dialog/alert-dialog.types.d.ts +22 -0
  20. package/dist/components/alert-dialog/index.d.ts +3 -0
  21. package/dist/components/autocomplete/autocomplete.context.d.ts +5 -0
  22. package/dist/components/autocomplete/autocomplete.context.js +13 -0
  23. package/dist/components/autocomplete/autocomplete.d.ts +364 -0
  24. package/dist/components/autocomplete/autocomplete.js +373 -0
  25. package/dist/components/autocomplete/autocomplete.props.d.ts +83 -0
  26. package/dist/components/autocomplete/autocomplete.props.js +63 -0
  27. package/dist/components/autocomplete/autocomplete.slots.d.ts +32 -0
  28. package/dist/components/autocomplete/autocomplete.slots.js +61 -0
  29. package/dist/components/autocomplete/index.d.ts +3 -0
  30. package/dist/components/avatar/avatar.context.js +21 -0
  31. package/dist/components/avatar/avatar.d.ts +235 -0
  32. package/dist/components/avatar/avatar.js +208 -0
  33. package/dist/components/avatar/avatar.props.d.ts +86 -0
  34. package/dist/components/avatar/avatar.props.js +78 -0
  35. package/dist/components/avatar/avatar.slots.d.ts +35 -0
  36. package/dist/components/avatar/avatar.slots.js +49 -0
  37. package/dist/components/avatar/avatar.types.d.ts +28 -0
  38. package/dist/components/avatar/index.d.ts +2 -0
  39. package/dist/components/button/button.d.ts +91 -0
  40. package/dist/components/button/button.js +82 -0
  41. package/dist/components/button/button.props.d.ts +48 -0
  42. package/dist/components/button/button.props.js +25 -0
  43. package/dist/components/button/button.slots.d.ts +30 -0
  44. package/dist/components/button/button.slots.js +40 -0
  45. package/dist/components/button/button.types.d.ts +12 -0
  46. package/dist/components/button/index.d.ts +2 -0
  47. package/dist/components/button-group/button-group.context.js +15 -0
  48. package/dist/components/button-group/button-group.d.ts +60 -0
  49. package/dist/components/button-group/button-group.js +50 -0
  50. package/dist/components/button-group/button-group.props.d.ts +22 -0
  51. package/dist/components/button-group/button-group.props.js +33 -0
  52. package/dist/components/button-group/button-group.slots.d.ts +12 -0
  53. package/dist/components/button-group/button-group.slots.js +18 -0
  54. package/dist/components/button-group/index.d.ts +2 -0
  55. package/dist/components/checkbox/checkbox-group.d.ts +46 -0
  56. package/dist/components/checkbox/checkbox-group.js +31 -0
  57. package/dist/components/checkbox/checkbox.context.js +15 -0
  58. package/dist/components/checkbox/checkbox.d.ts +130 -0
  59. package/dist/components/checkbox/checkbox.js +117 -0
  60. package/dist/components/checkbox/checkbox.props.d.ts +84 -0
  61. package/dist/components/checkbox/checkbox.props.js +49 -0
  62. package/dist/components/checkbox/checkbox.slots.d.ts +27 -0
  63. package/dist/components/checkbox/checkbox.slots.js +40 -0
  64. package/dist/components/checkbox/index.d.ts +3 -0
  65. package/dist/components/code-block/brand-logo.d.ts +37 -0
  66. package/dist/components/code-block/brand-logo.js +212 -0
  67. package/dist/components/code-block/code-block.context.js +13 -0
  68. package/dist/components/code-block/code-block.d.ts +190 -0
  69. package/dist/components/code-block/code-block.js +267 -0
  70. package/dist/components/code-block/code-block.props.d.ts +42 -0
  71. package/dist/components/code-block/code-block.props.js +51 -0
  72. package/dist/components/code-block/code-block.slots.d.ts +16 -0
  73. package/dist/components/code-block/code-block.slots.js +31 -0
  74. package/dist/components/code-block/index.d.ts +3 -0
  75. package/dist/components/code-block/language-label.js +43 -0
  76. package/dist/components/collapsible/collapsible.context.js +18 -0
  77. package/dist/components/collapsible/collapsible.d.ts +167 -0
  78. package/dist/components/collapsible/collapsible.js +182 -0
  79. package/dist/components/collapsible/collapsible.props.d.ts +33 -0
  80. package/dist/components/collapsible/collapsible.props.js +44 -0
  81. package/dist/components/collapsible/collapsible.slots.d.ts +25 -0
  82. package/dist/components/collapsible/collapsible.slots.js +40 -0
  83. package/dist/components/collapsible/collapsible.types.d.ts +23 -0
  84. package/dist/components/collapsible/index.d.ts +2 -0
  85. package/dist/components/color-picker/area.d.ts +11 -0
  86. package/dist/components/color-picker/area.js +148 -0
  87. package/dist/components/color-picker/color-picker.d.ts +110 -0
  88. package/dist/components/color-picker/color-picker.js +149 -0
  89. package/dist/components/color-picker/color-picker.props.d.ts +69 -0
  90. package/dist/components/color-picker/color-picker.props.js +74 -0
  91. package/dist/components/color-picker/color-picker.slots.js +21 -0
  92. package/dist/components/color-picker/color.d.ts +18 -0
  93. package/dist/components/color-picker/color.js +224 -0
  94. package/dist/components/color-picker/context.d.ts +25 -0
  95. package/dist/components/color-picker/context.js +23 -0
  96. package/dist/components/color-picker/eyedropper.d.ts +14 -0
  97. package/dist/components/color-picker/eyedropper.js +50 -0
  98. package/dist/components/color-picker/format-tabs.d.ts +11 -0
  99. package/dist/components/color-picker/format-tabs.js +35 -0
  100. package/dist/components/color-picker/index.d.ts +3 -0
  101. package/dist/components/color-picker/inputs.d.ts +16 -0
  102. package/dist/components/color-picker/inputs.js +61 -0
  103. package/dist/components/color-picker/sliders.d.ts +17 -0
  104. package/dist/components/color-picker/sliders.js +94 -0
  105. package/dist/components/color-picker/store.js +48 -0
  106. package/dist/components/color-picker/swatch.d.ts +15 -0
  107. package/dist/components/color-picker/swatch.js +25 -0
  108. package/dist/components/color-swatch/color-swatch-picker.d.ts +87 -0
  109. package/dist/components/color-swatch/color-swatch-picker.js +73 -0
  110. package/dist/components/color-swatch/color-swatch.context.js +8 -0
  111. package/dist/components/color-swatch/color-swatch.d.ts +55 -0
  112. package/dist/components/color-swatch/color-swatch.js +48 -0
  113. package/dist/components/color-swatch/color-swatch.props.d.ts +54 -0
  114. package/dist/components/color-swatch/color-swatch.props.js +32 -0
  115. package/dist/components/color-swatch/color-swatch.slots.js +13 -0
  116. package/dist/components/color-swatch/index.d.ts +2 -0
  117. package/dist/components/combobox/combobox.context.js +13 -0
  118. package/dist/components/combobox/combobox.d.ts +328 -0
  119. package/dist/components/combobox/combobox.js +315 -0
  120. package/dist/components/combobox/combobox.props.d.ts +85 -0
  121. package/dist/components/combobox/combobox.props.js +79 -0
  122. package/dist/components/combobox/combobox.slots.d.ts +28 -0
  123. package/dist/components/combobox/combobox.slots.js +63 -0
  124. package/dist/components/combobox/index.d.ts +2 -0
  125. package/dist/components/context-menu/context-menu.d.ts +254 -0
  126. package/dist/components/context-menu/context-menu.js +150 -0
  127. package/dist/components/context-menu/context-menu.props.d.ts +22 -0
  128. package/dist/components/context-menu/context-menu.props.js +32 -0
  129. package/dist/components/context-menu/context-menu.slots.d.ts +24 -0
  130. package/dist/components/context-menu/context-menu.slots.js +42 -0
  131. package/dist/components/context-menu/index.d.ts +2 -0
  132. package/dist/components/copy-button/copy-button.d.ts +56 -0
  133. package/dist/components/copy-button/copy-button.js +88 -0
  134. package/dist/components/copy-button/copy-button.props.d.ts +27 -0
  135. package/dist/components/copy-button/copy-button.props.js +51 -0
  136. package/dist/components/copy-button/copy-button.slots.d.ts +20 -0
  137. package/dist/components/copy-button/copy-button.slots.js +36 -0
  138. package/dist/components/copy-button/index.d.ts +2 -0
  139. package/dist/components/dialog/dialog.context.js +15 -0
  140. package/dist/components/dialog/dialog.d.ts +299 -0
  141. package/dist/components/dialog/dialog.js +263 -0
  142. package/dist/components/dialog/dialog.props.d.ts +71 -0
  143. package/dist/components/dialog/dialog.props.js +75 -0
  144. package/dist/components/dialog/dialog.slots.d.ts +26 -0
  145. package/dist/components/dialog/dialog.slots.js +46 -0
  146. package/dist/components/dialog/dialog.types.d.ts +16 -0
  147. package/dist/components/dialog/index.d.ts +3 -0
  148. package/dist/components/field/field.d.ts +221 -0
  149. package/dist/components/field/field.js +192 -0
  150. package/dist/components/field/field.props.d.ts +66 -0
  151. package/dist/components/field/field.props.js +65 -0
  152. package/dist/components/field/field.slots.d.ts +35 -0
  153. package/dist/components/field/field.slots.js +54 -0
  154. package/dist/components/field/field.types.d.ts +5 -0
  155. package/dist/components/field/index.d.ts +4 -0
  156. package/dist/components/inline-code/index.d.ts +1 -0
  157. package/dist/components/inline-code/inline-code.d.ts +46 -0
  158. package/dist/components/inline-code/inline-code.js +36 -0
  159. package/dist/components/inline-code/inline-code.props.d.ts +17 -0
  160. package/dist/components/inline-code/inline-code.props.js +27 -0
  161. package/dist/components/inline-code/inline-code.slots.js +8 -0
  162. package/dist/components/input/index.d.ts +3 -0
  163. package/dist/components/input/input.context.js +13 -0
  164. package/dist/components/input/input.d.ts +161 -0
  165. package/dist/components/input/input.js +117 -0
  166. package/dist/components/input/input.props.d.ts +51 -0
  167. package/dist/components/input/input.props.js +50 -0
  168. package/dist/components/input/input.slots.d.ts +35 -0
  169. package/dist/components/input/input.slots.js +46 -0
  170. package/dist/components/input/input.types.d.ts +12 -0
  171. package/dist/components/kbd/glyphs.js +45 -0
  172. package/dist/components/kbd/index.d.ts +1 -0
  173. package/dist/components/kbd/kbd.d.ts +61 -0
  174. package/dist/components/kbd/kbd.js +233 -0
  175. package/dist/components/kbd/kbd.props.d.ts +30 -0
  176. package/dist/components/kbd/kbd.props.js +39 -0
  177. package/dist/components/kbd/kbd.slots.js +14 -0
  178. package/dist/components/kbd/use-apple-platform.js +25 -0
  179. package/dist/components/menu/index.d.ts +2 -0
  180. package/dist/components/menu/menu.d.ts +355 -0
  181. package/dist/components/menu/menu.js +263 -0
  182. package/dist/components/menu/menu.props.d.ts +92 -0
  183. package/dist/components/menu/menu.props.js +97 -0
  184. package/dist/components/menu/menu.slots.d.ts +32 -0
  185. package/dist/components/menu/menu.slots.js +60 -0
  186. package/dist/components/menubar/index.d.ts +2 -0
  187. package/dist/components/menubar/menubar.context.js +13 -0
  188. package/dist/components/menubar/menubar.d.ts +162 -0
  189. package/dist/components/menubar/menubar.js +122 -0
  190. package/dist/components/menubar/menubar.props.d.ts +41 -0
  191. package/dist/components/menubar/menubar.props.js +45 -0
  192. package/dist/components/menubar/menubar.slots.d.ts +26 -0
  193. package/dist/components/menubar/menubar.slots.js +40 -0
  194. package/dist/components/meter/index.d.ts +2 -0
  195. package/dist/components/meter/meter.context.d.ts +9 -0
  196. package/dist/components/meter/meter.context.js +13 -0
  197. package/dist/components/meter/meter.d.ts +163 -0
  198. package/dist/components/meter/meter.js +121 -0
  199. package/dist/components/meter/meter.props.d.ts +50 -0
  200. package/dist/components/meter/meter.props.js +33 -0
  201. package/dist/components/meter/meter.slots.d.ts +18 -0
  202. package/dist/components/meter/meter.slots.js +31 -0
  203. package/dist/components/navigation-menu/index.d.ts +2 -0
  204. package/dist/components/navigation-menu/navigation-menu.d.ts +328 -0
  205. package/dist/components/navigation-menu/navigation-menu.js +274 -0
  206. package/dist/components/navigation-menu/navigation-menu.props.d.ts +98 -0
  207. package/dist/components/navigation-menu/navigation-menu.props.js +90 -0
  208. package/dist/components/navigation-menu/navigation-menu.slots.d.ts +34 -0
  209. package/dist/components/navigation-menu/navigation-menu.slots.js +60 -0
  210. package/dist/components/number-field/index.d.ts +2 -0
  211. package/dist/components/number-field/number-field.context.d.ts +13 -0
  212. package/dist/components/number-field/number-field.context.js +13 -0
  213. package/dist/components/number-field/number-field.d.ts +197 -0
  214. package/dist/components/number-field/number-field.js +187 -0
  215. package/dist/components/number-field/number-field.props.d.ts +66 -0
  216. package/dist/components/number-field/number-field.props.js +50 -0
  217. package/dist/components/number-field/number-field.slots.d.ts +31 -0
  218. package/dist/components/number-field/number-field.slots.js +48 -0
  219. package/dist/components/otp-field/index.d.ts +3 -0
  220. package/dist/components/otp-field/otp-field.context.js +13 -0
  221. package/dist/components/otp-field/otp-field.d.ts +99 -0
  222. package/dist/components/otp-field/otp-field.js +76 -0
  223. package/dist/components/otp-field/otp-field.props.d.ts +48 -0
  224. package/dist/components/otp-field/otp-field.props.js +43 -0
  225. package/dist/components/otp-field/otp-field.slots.d.ts +28 -0
  226. package/dist/components/otp-field/otp-field.slots.js +39 -0
  227. package/dist/components/popover/index.d.ts +2 -0
  228. package/dist/components/popover/popover.d.ts +192 -0
  229. package/dist/components/popover/popover.js +152 -0
  230. package/dist/components/popover/popover.props.d.ts +34 -0
  231. package/dist/components/popover/popover.props.js +44 -0
  232. package/dist/components/popover/popover.slots.d.ts +22 -0
  233. package/dist/components/popover/popover.slots.js +42 -0
  234. package/dist/components/preview-card/index.d.ts +2 -0
  235. package/dist/components/preview-card/preview-card.d.ts +182 -0
  236. package/dist/components/preview-card/preview-card.js +146 -0
  237. package/dist/components/preview-card/preview-card.props.d.ts +37 -0
  238. package/dist/components/preview-card/preview-card.props.js +48 -0
  239. package/dist/components/preview-card/preview-card.slots.d.ts +22 -0
  240. package/dist/components/preview-card/preview-card.slots.js +39 -0
  241. package/dist/components/progress/index.d.ts +3 -0
  242. package/dist/components/progress/progress.context.d.ts +9 -0
  243. package/dist/components/progress/progress.context.js +13 -0
  244. package/dist/components/progress/progress.d.ts +139 -0
  245. package/dist/components/progress/progress.js +92 -0
  246. package/dist/components/progress/progress.props.d.ts +56 -0
  247. package/dist/components/progress/progress.props.js +38 -0
  248. package/dist/components/progress/progress.slots.d.ts +24 -0
  249. package/dist/components/progress/progress.slots.js +37 -0
  250. package/dist/components/radio/index.d.ts +2 -0
  251. package/dist/components/radio/radio.context.js +5 -0
  252. package/dist/components/radio/radio.d.ts +205 -0
  253. package/dist/components/radio/radio.js +168 -0
  254. package/dist/components/radio/radio.props.d.ts +106 -0
  255. package/dist/components/radio/radio.props.js +65 -0
  256. package/dist/components/radio/radio.slots.d.ts +29 -0
  257. package/dist/components/radio/radio.slots.js +44 -0
  258. package/dist/components/rail/index.d.ts +3 -0
  259. package/dist/components/rail/rail.context.d.ts +17 -0
  260. package/dist/components/rail/rail.context.js +23 -0
  261. package/dist/components/rail/rail.d.ts +232 -0
  262. package/dist/components/rail/rail.js +254 -0
  263. package/dist/components/rail/rail.props.d.ts +98 -0
  264. package/dist/components/rail/rail.props.js +64 -0
  265. package/dist/components/rail/rail.slots.d.ts +20 -0
  266. package/dist/components/rail/rail.slots.js +40 -0
  267. package/dist/components/scroll-area/index.d.ts +2 -0
  268. package/dist/components/scroll-area/scroll-area.context.js +15 -0
  269. package/dist/components/scroll-area/scroll-area.d.ts +217 -0
  270. package/dist/components/scroll-area/scroll-area.js +153 -0
  271. package/dist/components/scroll-area/scroll-area.props.d.ts +73 -0
  272. package/dist/components/scroll-area/scroll-area.props.js +64 -0
  273. package/dist/components/scroll-area/scroll-area.slots.d.ts +40 -0
  274. package/dist/components/scroll-area/scroll-area.slots.js +54 -0
  275. package/dist/components/scroll-area/scroll-area.types.d.ts +24 -0
  276. package/dist/components/search-dialog/index.d.ts +3 -0
  277. package/dist/components/search-dialog/parts/input.d.ts +24 -0
  278. package/dist/components/search-dialog/parts/input.js +53 -0
  279. package/dist/components/search-dialog/parts/messages.d.ts +80 -0
  280. package/dist/components/search-dialog/parts/messages.js +75 -0
  281. package/dist/components/search-dialog/parts/results.d.ts +43 -0
  282. package/dist/components/search-dialog/parts/results.js +63 -0
  283. package/dist/components/search-dialog/parts/root.d.ts +54 -0
  284. package/dist/components/search-dialog/parts/root.js +99 -0
  285. package/dist/components/search-dialog/search-dialog.context.d.ts +15 -0
  286. package/dist/components/search-dialog/search-dialog.context.js +20 -0
  287. package/dist/components/search-dialog/search-dialog.d.ts +84 -0
  288. package/dist/components/search-dialog/search-dialog.js +43 -0
  289. package/dist/components/search-dialog/search-dialog.props.d.ts +45 -0
  290. package/dist/components/search-dialog/search-dialog.props.js +49 -0
  291. package/dist/components/search-dialog/search-dialog.slots.d.ts +16 -0
  292. package/dist/components/search-dialog/search-dialog.slots.js +32 -0
  293. package/dist/components/select/index.d.ts +2 -0
  294. package/dist/components/select/select.context.js +17 -0
  295. package/dist/components/select/select.d.ts +356 -0
  296. package/dist/components/select/select.js +314 -0
  297. package/dist/components/select/select.props.d.ts +110 -0
  298. package/dist/components/select/select.props.js +103 -0
  299. package/dist/components/select/select.slots.d.ts +38 -0
  300. package/dist/components/select/select.slots.js +67 -0
  301. package/dist/components/separator/index.d.ts +2 -0
  302. package/dist/components/separator/separator.d.ts +69 -0
  303. package/dist/components/separator/separator.js +44 -0
  304. package/dist/components/separator/separator.props.d.ts +30 -0
  305. package/dist/components/separator/separator.props.js +30 -0
  306. package/dist/components/separator/separator.slots.d.ts +22 -0
  307. package/dist/components/separator/separator.slots.js +21 -0
  308. package/dist/components/separator/separator.types.d.ts +5 -0
  309. package/dist/components/sheet/index.d.ts +3 -0
  310. package/dist/components/sheet/sheet-stack.d.ts +106 -0
  311. package/dist/components/sheet/sheet-stack.js +146 -0
  312. package/dist/components/sheet/sheet.d.ts +279 -0
  313. package/dist/components/sheet/sheet.js +264 -0
  314. package/dist/components/sheet/sheet.props.d.ts +74 -0
  315. package/dist/components/sheet/sheet.props.js +77 -0
  316. package/dist/components/sheet/sheet.slots.js +22 -0
  317. package/dist/components/sheet/sheet.types.d.ts +12 -0
  318. package/dist/components/slider/index.d.ts +3 -0
  319. package/dist/components/slider/slider.context.d.ts +5 -0
  320. package/dist/components/slider/slider.context.js +29 -0
  321. package/dist/components/slider/slider.d.ts +230 -0
  322. package/dist/components/slider/slider.js +274 -0
  323. package/dist/components/slider/slider.props.d.ts +72 -0
  324. package/dist/components/slider/slider.props.js +59 -0
  325. package/dist/components/slider/slider.slots.d.ts +30 -0
  326. package/dist/components/slider/slider.slots.js +50 -0
  327. package/dist/components/surface/index.d.ts +1 -0
  328. package/dist/components/surface/surface.d.ts +84 -0
  329. package/dist/components/surface/surface.js +48 -0
  330. package/dist/components/surface/surface.props.d.ts +35 -0
  331. package/dist/components/surface/surface.props.js +26 -0
  332. package/dist/components/surface/surface.slots.js +9 -0
  333. package/dist/components/surface/surface.types.d.ts +14 -0
  334. package/dist/components/switch/index.d.ts +2 -0
  335. package/dist/components/switch/switch.context.js +14 -0
  336. package/dist/components/switch/switch.d.ts +110 -0
  337. package/dist/components/switch/switch.js +92 -0
  338. package/dist/components/switch/switch.props.d.ts +68 -0
  339. package/dist/components/switch/switch.props.js +41 -0
  340. package/dist/components/switch/switch.slots.d.ts +23 -0
  341. package/dist/components/switch/switch.slots.js +35 -0
  342. package/dist/components/table/index.d.ts +1 -0
  343. package/dist/components/table/table.d.ts +104 -0
  344. package/dist/components/table/table.js +92 -0
  345. package/dist/components/table/table.props.d.ts +38 -0
  346. package/dist/components/table/table.props.js +49 -0
  347. package/dist/components/table/table.slots.js +17 -0
  348. package/dist/components/tabs/index.d.ts +2 -0
  349. package/dist/components/tabs/tabs.context.d.ts +9 -0
  350. package/dist/components/tabs/tabs.context.js +13 -0
  351. package/dist/components/tabs/tabs.d.ts +139 -0
  352. package/dist/components/tabs/tabs.js +118 -0
  353. package/dist/components/tabs/tabs.props.d.ts +59 -0
  354. package/dist/components/tabs/tabs.props.js +39 -0
  355. package/dist/components/tabs/tabs.slots.d.ts +20 -0
  356. package/dist/components/tabs/tabs.slots.js +33 -0
  357. package/dist/components/textarea/index.d.ts +3 -0
  358. package/dist/components/textarea/textarea.context.js +13 -0
  359. package/dist/components/textarea/textarea.d.ts +142 -0
  360. package/dist/components/textarea/textarea.js +129 -0
  361. package/dist/components/textarea/textarea.props.d.ts +44 -0
  362. package/dist/components/textarea/textarea.props.js +32 -0
  363. package/dist/components/textarea/textarea.slots.d.ts +23 -0
  364. package/dist/components/textarea/textarea.slots.js +33 -0
  365. package/dist/components/textarea/textarea.types.d.ts +5 -0
  366. package/dist/components/toast/index.d.ts +4 -0
  367. package/dist/components/toast/toast.d.ts +241 -0
  368. package/dist/components/toast/toast.js +193 -0
  369. package/dist/components/toast/toast.manager.d.ts +76 -0
  370. package/dist/components/toast/toast.manager.js +71 -0
  371. package/dist/components/toast/toast.props.d.ts +66 -0
  372. package/dist/components/toast/toast.props.js +74 -0
  373. package/dist/components/toast/toast.slots.d.ts +30 -0
  374. package/dist/components/toast/toast.slots.js +49 -0
  375. package/dist/components/toast/toast.types.d.ts +19 -0
  376. package/dist/components/toggle/index.d.ts +2 -0
  377. package/dist/components/toggle/toggle.context.d.ts +11 -0
  378. package/dist/components/toggle/toggle.context.js +14 -0
  379. package/dist/components/toggle/toggle.d.ts +136 -0
  380. package/dist/components/toggle/toggle.js +101 -0
  381. package/dist/components/toggle/toggle.props.d.ts +51 -0
  382. package/dist/components/toggle/toggle.props.js +29 -0
  383. package/dist/components/toggle/toggle.slots.d.ts +26 -0
  384. package/dist/components/toggle/toggle.slots.js +36 -0
  385. package/dist/components/toolbar/index.d.ts +3 -0
  386. package/dist/components/toolbar/toolbar.context.js +23 -0
  387. package/dist/components/toolbar/toolbar.d.ts +218 -0
  388. package/dist/components/toolbar/toolbar.js +197 -0
  389. package/dist/components/toolbar/toolbar.props.d.ts +54 -0
  390. package/dist/components/toolbar/toolbar.props.js +55 -0
  391. package/dist/components/toolbar/toolbar.slots.d.ts +24 -0
  392. package/dist/components/toolbar/toolbar.slots.js +37 -0
  393. package/dist/components/toolbar/toolbar.types.d.ts +15 -0
  394. package/dist/components/tooltip/index.d.ts +2 -0
  395. package/dist/components/tooltip/tooltip.d.ts +170 -0
  396. package/dist/components/tooltip/tooltip.js +143 -0
  397. package/dist/components/tooltip/tooltip.props.d.ts +36 -0
  398. package/dist/components/tooltip/tooltip.props.js +42 -0
  399. package/dist/components/tooltip/tooltip.slots.d.ts +26 -0
  400. package/dist/components/tooltip/tooltip.slots.js +42 -0
  401. package/dist/core/derive-threshold-tone.js +35 -0
  402. package/dist/core/merge-class-name.d.ts +17 -0
  403. package/dist/core/merge-class-name.js +16 -0
  404. package/dist/core/noctis-provider.d.ts +38 -0
  405. package/dist/core/noctis-provider.js +44 -0
  406. package/dist/core/primitive/index.d.ts +1 -0
  407. package/dist/core/primitive/primitive.d.ts +44 -0
  408. package/dist/core/primitive/primitive.js +27 -0
  409. package/dist/core/radius-scope/index.d.ts +2 -0
  410. package/dist/core/radius-scope/radius-scope.d.ts +43 -0
  411. package/dist/core/radius-scope/radius-scope.js +36 -0
  412. package/dist/core/radius-scope/radius-scope.styles.d.ts +13 -0
  413. package/dist/core/radius-scope/radius-scope.styles.js +11 -0
  414. package/dist/core/render.d.ts +24 -0
  415. package/dist/core/render.js +12 -0
  416. package/dist/core/use-copy.d.ts +13 -0
  417. package/dist/core/use-copy.js +30 -0
  418. package/dist/core/use-injected-labels.js +55 -0
  419. package/dist/core/use-reduced-motion.d.ts +9 -0
  420. package/dist/core/use-reduced-motion.js +26 -0
  421. package/dist/core/visually-hidden/index.d.ts +1 -0
  422. package/dist/core/visually-hidden/visually-hidden.d.ts +24 -0
  423. package/dist/core/visually-hidden/visually-hidden.js +19 -0
  424. package/dist/i18n/default-messages.d.ts +12 -0
  425. package/dist/i18n/default-messages.js +10 -0
  426. package/dist/i18n/index.d.ts +2 -0
  427. package/dist/i18n/index.js +2 -0
  428. package/dist/i18n/messages/index.d.ts +2 -0
  429. package/dist/i18n/messages/index.js +2 -0
  430. package/dist/icons/glyphs.d.ts +2 -0
  431. package/dist/icons/glyphs.js +2 -0
  432. package/dist/icons/icon.d.ts +40 -0
  433. package/dist/icons/icon.js +26 -0
  434. package/dist/icons/icon.styles.d.ts +9 -0
  435. package/dist/icons/index.d.ts +3 -0
  436. package/dist/index.d.ts +126 -0
  437. package/dist/index.js +112 -0
  438. package/dist/primitives/accordion.d.ts +7 -0
  439. package/dist/primitives/accordion.js +8 -0
  440. package/dist/primitives/alert-dialog.d.ts +7 -0
  441. package/dist/primitives/alert-dialog.js +8 -0
  442. package/dist/primitives/autocomplete/autocomplete.d.ts +58 -0
  443. package/dist/primitives/autocomplete/autocomplete.js +58 -0
  444. package/dist/primitives/autocomplete/index.d.ts +1 -0
  445. package/dist/primitives/autocomplete.d.ts +2 -0
  446. package/dist/primitives/autocomplete.js +2 -0
  447. package/dist/primitives/avatar.d.ts +7 -0
  448. package/dist/primitives/avatar.js +8 -0
  449. package/dist/primitives/button.d.ts +7 -0
  450. package/dist/primitives/button.js +8 -0
  451. package/dist/primitives/checkbox-group.d.ts +7 -0
  452. package/dist/primitives/checkbox-group.js +8 -0
  453. package/dist/primitives/checkbox.d.ts +7 -0
  454. package/dist/primitives/checkbox.js +8 -0
  455. package/dist/primitives/collapsible.d.ts +7 -0
  456. package/dist/primitives/collapsible.js +8 -0
  457. package/dist/primitives/combobox/combobox.d.ts +71 -0
  458. package/dist/primitives/combobox/combobox.js +66 -0
  459. package/dist/primitives/combobox/index.d.ts +1 -0
  460. package/dist/primitives/combobox.d.ts +2 -0
  461. package/dist/primitives/combobox.js +2 -0
  462. package/dist/primitives/context-menu.d.ts +7 -0
  463. package/dist/primitives/context-menu.js +8 -0
  464. package/dist/primitives/csp-provider.d.ts +1 -0
  465. package/dist/primitives/csp-provider.js +2 -0
  466. package/dist/primitives/dialog.d.ts +7 -0
  467. package/dist/primitives/dialog.js +8 -0
  468. package/dist/primitives/direction-provider.d.ts +1 -0
  469. package/dist/primitives/direction-provider.js +8 -0
  470. package/dist/primitives/drawer.d.ts +1 -0
  471. package/dist/primitives/drawer.js +2 -0
  472. package/dist/primitives/field.d.ts +7 -0
  473. package/dist/primitives/field.js +8 -0
  474. package/dist/primitives/fieldset.d.ts +7 -0
  475. package/dist/primitives/fieldset.js +8 -0
  476. package/dist/primitives/form.d.ts +7 -0
  477. package/dist/primitives/form.js +8 -0
  478. package/dist/primitives/index.d.ts +79 -0
  479. package/dist/primitives/index.js +113 -0
  480. package/dist/primitives/input.d.ts +7 -0
  481. package/dist/primitives/input.js +8 -0
  482. package/dist/primitives/menu.d.ts +7 -0
  483. package/dist/primitives/menu.js +8 -0
  484. package/dist/primitives/menubar.d.ts +7 -0
  485. package/dist/primitives/menubar.js +8 -0
  486. package/dist/primitives/meter/index.d.ts +1 -0
  487. package/dist/primitives/meter/meter.d.ts +56 -0
  488. package/dist/primitives/meter/meter.js +59 -0
  489. package/dist/primitives/meter.d.ts +2 -0
  490. package/dist/primitives/meter.js +2 -0
  491. package/dist/primitives/navigation-menu.d.ts +7 -0
  492. package/dist/primitives/navigation-menu.js +8 -0
  493. package/dist/primitives/number-field/context.d.ts +13 -0
  494. package/dist/primitives/number-field/context.js +36 -0
  495. package/dist/primitives/number-field/index.d.ts +2 -0
  496. package/dist/primitives/number-field/number-field.d.ts +90 -0
  497. package/dist/primitives/number-field/number-field.js +107 -0
  498. package/dist/primitives/number-field.d.ts +3 -0
  499. package/dist/primitives/number-field.js +2 -0
  500. package/dist/primitives/otp-field.d.ts +7 -0
  501. package/dist/primitives/otp-field.js +8 -0
  502. package/dist/primitives/popover.d.ts +7 -0
  503. package/dist/primitives/popover.js +8 -0
  504. package/dist/primitives/preview-card.d.ts +7 -0
  505. package/dist/primitives/preview-card.js +8 -0
  506. package/dist/primitives/progress/index.d.ts +1 -0
  507. package/dist/primitives/progress/progress.d.ts +56 -0
  508. package/dist/primitives/progress/progress.js +59 -0
  509. package/dist/primitives/progress.d.ts +2 -0
  510. package/dist/primitives/progress.js +2 -0
  511. package/dist/primitives/radio-group.d.ts +7 -0
  512. package/dist/primitives/radio-group.js +8 -0
  513. package/dist/primitives/radio.d.ts +7 -0
  514. package/dist/primitives/radio.js +8 -0
  515. package/dist/primitives/scroll-area.d.ts +7 -0
  516. package/dist/primitives/scroll-area.js +8 -0
  517. package/dist/primitives/select.d.ts +7 -0
  518. package/dist/primitives/select.js +8 -0
  519. package/dist/primitives/separator.d.ts +7 -0
  520. package/dist/primitives/separator.js +8 -0
  521. package/dist/primitives/slider/context.d.ts +12 -0
  522. package/dist/primitives/slider/context.js +18 -0
  523. package/dist/primitives/slider/index.d.ts +2 -0
  524. package/dist/primitives/slider/slider.d.ts +83 -0
  525. package/dist/primitives/slider/slider.js +99 -0
  526. package/dist/primitives/slider.d.ts +3 -0
  527. package/dist/primitives/slider.js +2 -0
  528. package/dist/primitives/switch.d.ts +1 -0
  529. package/dist/primitives/switch.js +2 -0
  530. package/dist/primitives/tabs.d.ts +7 -0
  531. package/dist/primitives/tabs.js +8 -0
  532. package/dist/primitives/toast/context.d.ts +11 -0
  533. package/dist/primitives/toast/context.js +18 -0
  534. package/dist/primitives/toast/index.d.ts +2 -0
  535. package/dist/primitives/toast/toast.d.ts +122 -0
  536. package/dist/primitives/toast/toast.js +133 -0
  537. package/dist/primitives/toast.d.ts +3 -0
  538. package/dist/primitives/toast.js +2 -0
  539. package/dist/primitives/toggle-group.d.ts +7 -0
  540. package/dist/primitives/toggle-group.js +8 -0
  541. package/dist/primitives/toggle.d.ts +7 -0
  542. package/dist/primitives/toggle.js +8 -0
  543. package/dist/primitives/toolbar.d.ts +7 -0
  544. package/dist/primitives/toolbar.js +8 -0
  545. package/dist/primitives/tooltip.d.ts +7 -0
  546. package/dist/primitives/tooltip.js +8 -0
  547. package/dist/props.d.ts +46 -0
  548. package/dist/props.js +46 -0
  549. package/dist/styles.css +11513 -0
  550. package/dist/tailwind/cn.d.ts +33 -0
  551. package/dist/tailwind/cn.js +42 -0
  552. package/dist/tailwind/index.d.ts +3 -0
  553. package/dist/tailwind/index.js +3 -0
  554. package/dist/tailwind/tv.d.ts +20 -0
  555. package/dist/tailwind/tv.js +11 -0
  556. package/dist/tailwind.css +485 -0
  557. package/dist/theme/react.d.ts +1 -0
  558. package/dist/theme/react.js +1 -0
  559. package/dist/theme.d.ts +1 -0
  560. package/dist/theme.js +1 -0
  561. package/dist/tokens/react.d.ts +1 -0
  562. package/dist/tokens/react.js +1 -0
  563. package/dist/tokens.d.ts +1 -0
  564. package/dist/tokens.js +1 -0
  565. package/package.json +121 -0
@@ -0,0 +1,106 @@
1
+ import { Radio } from "./radio.js";
2
+
3
+ //#region src/components/radio/radio.props.d.ts
4
+ /** A spreadable data-attribute prop bag — the shape every `Radio.*.props()` returns. */
5
+ type RadioPartProps = {
6
+ /** The slot value the matching `radio.css` rules anchor on. */"data-slot": string; /** Forwarded verbatim — styling is attribute-driven, so this is an optional consumer passthrough. */
7
+ className?: string; /** A data-attribute present (empty string) or absent (`undefined`); never `false`. */
8
+ [attr: `data-${string}`]: string | undefined;
9
+ };
10
+ /** Common shape: every part's `.props()` accepts an optional `className` passthrough. */
11
+ interface BasePropsArgs {
12
+ /** Forwarded verbatim onto the returned prop bag. */
13
+ className?: string;
14
+ }
15
+ /** Argument to `Radio.Group.props(...)` — the group has no axes of its own; gap flows from the slot. */
16
+ interface RadioGroupPropsArgs extends BasePropsArgs {
17
+ /** Layout axis — stamped as `data-orientation`; `horizontal` lays the radios in a row. @default "vertical" */
18
+ orientation?: Radio.Orientation;
19
+ /** Whether the whole group is disabled (drives the dimmed affordance via `data-disabled`). */
20
+ disabled?: boolean;
21
+ /** Whether the group's value is invalid (cascades the danger border via `data-invalid`). */
22
+ invalid?: boolean;
23
+ }
24
+ /** Argument to `Radio.Root.props(...)` — the box's size axis plus its checked/disabled/read-only/invalid state. */
25
+ interface RadioPropsArgs extends BasePropsArgs {
26
+ /** Box size — stamped as `data-size`, re-points the box and dot edges. @default "md" */
27
+ size?: Radio.Size;
28
+ /** Whether this radio is the selected one (draws the accent border + dot via `data-checked`). */
29
+ checked?: boolean;
30
+ /** Whether this radio is disabled (drives the dimmed affordance via `data-disabled`). */
31
+ disabled?: boolean;
32
+ /** Whether this radio is read-only (drops the pointer and hover affordance via `data-readonly`). */
33
+ readonly?: boolean;
34
+ /** Whether this radio is invalid (paints the danger border via `data-invalid`). */
35
+ invalid?: boolean;
36
+ }
37
+ /** Argument to `Radio.Indicator.props(...)` — the dot mirrors the box's checked state. */
38
+ interface RadioIndicatorPropsArgs extends BasePropsArgs {
39
+ /** Whether the parent radio is selected (shows the dot via `data-checked`). */
40
+ checked?: boolean;
41
+ }
42
+ /** Argument to `Radio.Field.props(...)` — the row pairs a box with its label; its size scales both. */
43
+ interface RadioFieldPropsArgs extends BasePropsArgs {
44
+ /** Row size — stamped as `data-size`, scales the label text and cascades to the box inside. @default "md" */
45
+ size?: Radio.Size;
46
+ }
47
+ /** Argument to `Radio.Label.props(...)` — the label mirrors the field's disabled / invalid state. */
48
+ interface RadioLabelPropsArgs extends BasePropsArgs {
49
+ /** Whether the field is disabled (dims the label and drops its pointer via `data-disabled`). */
50
+ disabled?: boolean;
51
+ /** Whether the field is invalid (recolours the label to danger via `data-invalid`). */
52
+ invalid?: boolean;
53
+ }
54
+ /** Argument to `Radio.Description.props(...)` — the helper text carries no axes of its own. */
55
+ type RadioDescriptionPropsArgs = BasePropsArgs;
56
+ /** Argument to `Radio.Card.props(...)` — the card's control-position axis. */
57
+ interface RadioCardPropsArgs extends BasePropsArgs {
58
+ /** Where the radio sits relative to the content — stamped as `data-control`. @default "leading" */
59
+ controlPosition?: Radio.ControlPosition;
60
+ /** Hide the visible dot (border-only selection) — stamped as `data-control-hidden`. @default false */
61
+ hideControl?: boolean;
62
+ }
63
+ /** Group prop bag: slot anchor plus the `data-orientation` axis and the `data-disabled`/`data-invalid` state. */
64
+ declare function groupProps({
65
+ orientation,
66
+ disabled,
67
+ invalid,
68
+ className
69
+ }?: RadioGroupPropsArgs): RadioPartProps;
70
+ /** Radio box prop bag: slot anchor plus the `data-size` and `data-checked`/`data-disabled`/`data-readonly`/`data-invalid` state. */
71
+ declare function radioProps({
72
+ size,
73
+ checked,
74
+ disabled,
75
+ readonly,
76
+ invalid,
77
+ className
78
+ }?: RadioPropsArgs): RadioPartProps;
79
+ /** Indicator dot prop bag: slot anchor plus the mirrored `data-checked` state. */
80
+ declare function indicatorProps({
81
+ checked,
82
+ className
83
+ }?: RadioIndicatorPropsArgs): RadioPartProps;
84
+ /** Field prop bag: slot anchor plus the `data-size` axis that scales the label and cascades to the box. */
85
+ declare function fieldProps({
86
+ size,
87
+ className
88
+ }?: RadioFieldPropsArgs): RadioPartProps;
89
+ /** Label prop bag: slot anchor plus the `data-disabled`/`data-invalid` that mirror the field state. */
90
+ declare function labelProps({
91
+ disabled,
92
+ invalid,
93
+ className
94
+ }?: RadioLabelPropsArgs): RadioPartProps;
95
+ /** Description prop bag: just the slot anchor (the muted helper text styling flows from the slot). */
96
+ declare function descriptionProps({
97
+ className
98
+ }?: RadioDescriptionPropsArgs): RadioPartProps;
99
+ /** Card prop bag: slot anchor plus the `data-control` position axis. */
100
+ declare function cardProps({
101
+ controlPosition,
102
+ hideControl,
103
+ className
104
+ }?: RadioCardPropsArgs): RadioPartProps;
105
+ //#endregion
106
+ export { cardProps, descriptionProps, fieldProps, groupProps, indicatorProps, labelProps, radioProps };
@@ -0,0 +1,65 @@
1
+ import { RADIO_SLOTS } from "./radio.slots.js";
2
+ //#region src/components/radio/radio.props.ts
3
+ /** Stamp a boolean state as a bare data-attribute: present (`""`) when on, absent (`undefined`) when off. */
4
+ const flag = (on) => on ? "" : void 0;
5
+ const withClassName = (bag, className) => className === void 0 ? bag : {
6
+ ...bag,
7
+ className
8
+ };
9
+ /** Group prop bag: slot anchor plus the `data-orientation` axis and the `data-disabled`/`data-invalid` state. */
10
+ function groupProps({ orientation = "vertical", disabled, invalid, className } = {}) {
11
+ return withClassName({
12
+ "data-slot": RADIO_SLOTS.group,
13
+ "data-orientation": orientation,
14
+ "data-disabled": flag(disabled),
15
+ "data-invalid": flag(invalid)
16
+ }, className);
17
+ }
18
+ /** Radio box prop bag: slot anchor plus the `data-size` and `data-checked`/`data-disabled`/`data-readonly`/`data-invalid` state. */
19
+ function radioProps({ size = "md", checked, disabled, readonly, invalid, className } = {}) {
20
+ return withClassName({
21
+ "data-slot": RADIO_SLOTS.radio,
22
+ "data-size": size,
23
+ "data-checked": flag(checked),
24
+ "data-unchecked": flag(!checked),
25
+ "data-disabled": flag(disabled),
26
+ "data-readonly": flag(readonly),
27
+ "data-invalid": flag(invalid)
28
+ }, className);
29
+ }
30
+ /** Indicator dot prop bag: slot anchor plus the mirrored `data-checked` state. */
31
+ function indicatorProps({ checked, className } = {}) {
32
+ return withClassName({
33
+ "data-slot": RADIO_SLOTS.indicator,
34
+ "data-checked": flag(checked)
35
+ }, className);
36
+ }
37
+ /** Field prop bag: slot anchor plus the `data-size` axis that scales the label and cascades to the box. */
38
+ function fieldProps({ size = "md", className } = {}) {
39
+ return withClassName({
40
+ "data-slot": RADIO_SLOTS.field,
41
+ "data-size": size
42
+ }, className);
43
+ }
44
+ /** Label prop bag: slot anchor plus the `data-disabled`/`data-invalid` that mirror the field state. */
45
+ function labelProps({ disabled, invalid, className } = {}) {
46
+ return withClassName({
47
+ "data-slot": RADIO_SLOTS.label,
48
+ "data-disabled": flag(disabled),
49
+ "data-invalid": flag(invalid)
50
+ }, className);
51
+ }
52
+ /** Description prop bag: just the slot anchor (the muted helper text styling flows from the slot). */
53
+ function descriptionProps({ className } = {}) {
54
+ return withClassName({ "data-slot": RADIO_SLOTS.description }, className);
55
+ }
56
+ /** Card prop bag: slot anchor plus the `data-control` position axis. */
57
+ function cardProps({ controlPosition = "leading", hideControl, className } = {}) {
58
+ return withClassName({
59
+ "data-slot": RADIO_SLOTS.card,
60
+ "data-control": controlPosition,
61
+ "data-control-hidden": flag(hideControl)
62
+ }, className);
63
+ }
64
+ //#endregion
65
+ export { cardProps, descriptionProps, fieldProps, groupProps, indicatorProps, labelProps, radioProps };
@@ -0,0 +1,29 @@
1
+ //#region src/components/radio/radio.slots.d.ts
2
+ /**
3
+ * The `data-*` attributes a `Radio` exposes. Base UI stamps the live state attributes the CSS keys
4
+ * off; each member's JSDoc is the description docgen renders into the attributes table.
5
+ */
6
+ declare enum RadioDataAttributes {
7
+ /** The styling/testing hook: the part's stable slot name. */
8
+ slot = "data-slot",
9
+ /** Size axis on the radio box — `sm` | `md` | `lg`; re-points the box and dot edges. */
10
+ size = "data-size",
11
+ /** Layout axis on the group — `vertical` | `horizontal`; switches the row/column flow. */
12
+ orientation = "data-orientation",
13
+ /** Present on the selected radio box (and its indicator). */
14
+ checked = "data-checked",
15
+ /** Present on an unselected radio box. */
16
+ unchecked = "data-unchecked",
17
+ /** Present on a disabled radio or group. */
18
+ disabled = "data-disabled",
19
+ /** Present on a read-only radio — valid and announced, but not editable. */
20
+ readonly = "data-readonly",
21
+ /** Present on an invalid radio (and on a group flagged `invalid`); also honours `aria-invalid`. */
22
+ invalid = "data-invalid",
23
+ /** On a `Radio.Card`, where the control sits — `leading` | `trailing`. */
24
+ control = "data-control",
25
+ /** On a `Radio.Card` with `hideControl`, marks the dot hidden so the accent edge is the only signal. */
26
+ controlHidden = "data-control-hidden"
27
+ }
28
+ //#endregion
29
+ export { RadioDataAttributes };
@@ -0,0 +1,44 @@
1
+ //#region src/components/radio/radio.slots.ts
2
+ /**
3
+ * The slot vocabulary every `Radio` part stamps as its `data-slot`. The authored source the
4
+ * orchestration files read from, kebab-cased `{component}-{part}`; SLOTS.md still generates from the
5
+ * token-graph declarations.
6
+ */
7
+ const RADIO_SLOTS = {
8
+ group: "noctis-radio-group",
9
+ radio: "noctis-radio",
10
+ indicator: "noctis-radio-indicator",
11
+ field: "noctis-radio-field",
12
+ label: "noctis-radio-label",
13
+ description: "noctis-radio-description",
14
+ card: "noctis-radio-card"
15
+ };
16
+ /**
17
+ * The `data-*` attributes a `Radio` exposes. Base UI stamps the live state attributes the CSS keys
18
+ * off; each member's JSDoc is the description docgen renders into the attributes table.
19
+ */
20
+ let RadioDataAttributes = /* @__PURE__ */ function(RadioDataAttributes) {
21
+ /** The styling/testing hook: the part's stable slot name. */
22
+ RadioDataAttributes["slot"] = "data-slot";
23
+ /** Size axis on the radio box — `sm` | `md` | `lg`; re-points the box and dot edges. */
24
+ RadioDataAttributes["size"] = "data-size";
25
+ /** Layout axis on the group — `vertical` | `horizontal`; switches the row/column flow. */
26
+ RadioDataAttributes["orientation"] = "data-orientation";
27
+ /** Present on the selected radio box (and its indicator). */
28
+ RadioDataAttributes["checked"] = "data-checked";
29
+ /** Present on an unselected radio box. */
30
+ RadioDataAttributes["unchecked"] = "data-unchecked";
31
+ /** Present on a disabled radio or group. */
32
+ RadioDataAttributes["disabled"] = "data-disabled";
33
+ /** Present on a read-only radio — valid and announced, but not editable. */
34
+ RadioDataAttributes["readonly"] = "data-readonly";
35
+ /** Present on an invalid radio (and on a group flagged `invalid`); also honours `aria-invalid`. */
36
+ RadioDataAttributes["invalid"] = "data-invalid";
37
+ /** On a `Radio.Card`, where the control sits — `leading` | `trailing`. */
38
+ RadioDataAttributes["control"] = "data-control";
39
+ /** On a `Radio.Card` with `hideControl`, marks the dot hidden so the accent edge is the only signal. */
40
+ RadioDataAttributes["controlHidden"] = "data-control-hidden";
41
+ return RadioDataAttributes;
42
+ }({});
43
+ //#endregion
44
+ export { RADIO_SLOTS, RadioDataAttributes };
@@ -0,0 +1,3 @@
1
+ import { RailSide, RailSize, RailVariant } from "./rail.context.js";
2
+ import { Rail } from "./rail.js";
3
+ import { RailDataAttributes } from "./rail.slots.js";
@@ -0,0 +1,17 @@
1
+ //#region src/components/rail/rail.context.d.ts
2
+ /**
3
+ * Which edge the rail docks to, and the side its divider faces the content (logical, so it mirrors
4
+ * under RTL). Re-homed here from the now-deleted `rail.styles.ts` so the component, props, and context
5
+ * share one import site without a cycle through `rail.tsx`.
6
+ */
7
+ type RailSide = "start" | "end";
8
+ /** The rail's width — re-points the size-keyed `--_rail-panel-width` token on the panel. */
9
+ type RailSize = "xs" | "sm" | "md" | "lg";
10
+ /**
11
+ * How an open rail affects the content beside it (see `Rail.Layout`):
12
+ * - `squeeze` — the content's width shrinks; it re-lays-out into the narrower space.
13
+ * - `push` — the content keeps its width and slides over; nothing reflows, the overflow is clipped.
14
+ */
15
+ type RailVariant = "squeeze" | "push";
16
+ //#endregion
17
+ export { RailSide, RailSize, RailVariant };
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { createContext, use } from "react";
3
+ //#region src/components/rail/rail.context.ts
4
+ const RailLayoutContext = createContext(null);
5
+ /** Provided by `Rail.Layout`; carries the reflow `variant`, docking `side`, and `size` to the parts. */
6
+ const RailLayoutProvider = RailLayoutContext.Provider;
7
+ /**
8
+ * Read the surrounding `Rail.Layout`, or `null` when a part renders standalone (a lone `Rail.Panel`
9
+ * docks to the viewport edge, a bare `Rail.Content` lays out on its own) — there is a sensible default,
10
+ * so this never throws.
11
+ */
12
+ function useRailLayout() {
13
+ return use(RailLayoutContext);
14
+ }
15
+ const RailTitleContext = createContext(null);
16
+ /** Provided by `Rail.Panel`; carries the generated title id so a `Rail.Title` names the panel. */
17
+ const RailTitleProvider = RailTitleContext.Provider;
18
+ /** Read the panel's generated title id, or `null` for a `Rail.Title` rendered outside a `Rail.Panel`. */
19
+ function useRailTitleId() {
20
+ return use(RailTitleContext);
21
+ }
22
+ //#endregion
23
+ export { RailLayoutProvider, RailTitleProvider, useRailLayout, useRailTitleId };
@@ -0,0 +1,232 @@
1
+ import { collapsible_d_exports } from "../../primitives/collapsible.js";
2
+ import { RailSide, RailSize, RailVariant } from "./rail.context.js";
3
+ import { RailPartProps, bodyProps, closeProps, contentProps, headerProps, layoutProps, panelProps, rootProps, surfaceProps, titleProps, triggerProps } from "./rail.props.js";
4
+ import { ComponentProps, ReactElement } from "react";
5
+
6
+ //#region src/components/rail/rail.d.ts
7
+ /**
8
+ * Groups the parts and owns open state — controlled via `open`/`onOpenChange`, or uncontrolled via
9
+ * `defaultOpen` — on Base UI's Collapsible. Unlike a modal sheet, the rail is non-modal: no backdrop,
10
+ * no focus trap, no `Escape`-to-close. It renders transparently (`display: contents`) so the `Layout`
11
+ * (or a lone `Panel`) becomes the surrounding layout's child directly.
12
+ *
13
+ * Slot: `noctis-rail`.
14
+ * @see {@link Rail.Root.Props}
15
+ */
16
+ declare function RailRoot({
17
+ className,
18
+ ...props
19
+ }: Rail.Root.Props): ReactElement;
20
+ /**
21
+ * A button that toggles the rail. Base UI wires `aria-expanded` and `aria-controls` to the panel.
22
+ *
23
+ * Slot: `noctis-rail-trigger`.
24
+ * @see {@link Rail.Trigger.Props}
25
+ */
26
+ declare function RailTrigger({
27
+ className,
28
+ ...props
29
+ }: Rail.Trigger.Props): ReactElement;
30
+ /**
31
+ * The docking row: lays the content and the rail side by side and sets the reflow `variant` so an
32
+ * open rail reshapes the content beside it. Place a `Rail.Content` and a `Rail.Panel` inside. Use this
33
+ * to dock a rail inside a region; drop a `Rail.Panel` on its own (no `Layout`) to dock it to the
34
+ * viewport edge instead.
35
+ *
36
+ * Slot: `noctis-rail-layout`.
37
+ * @see {@link Rail.Layout.Props}
38
+ */
39
+ declare function RailLayout({
40
+ variant,
41
+ side,
42
+ size,
43
+ className,
44
+ style,
45
+ ...props
46
+ }: Rail.Layout.Props): ReactElement;
47
+ /**
48
+ * The content beside the rail inside a `Rail.Layout`. Reshapes per the layout's `variant` when open.
49
+ *
50
+ * Slot: `noctis-rail-content`.
51
+ * @see {@link Rail.Content.Props}
52
+ */
53
+ declare function RailContent({
54
+ className,
55
+ ...props
56
+ }: Rail.Content.Props): ReactElement;
57
+ /**
58
+ * The docked rail itself: a `Collapsible.Panel` rendered as an `aside` (a complementary landmark).
59
+ * Kept mounted while closed and hidden via Base UI, so it leaves the layout and the a11y tree without
60
+ * losing its content. Drop `Rail.Header`/`Rail.Body` inside; a `Rail.Title` names it automatically via
61
+ * `aria-labelledby`. Inside a `Rail.Layout` it docks in that layout's cell; on its own it docks to the
62
+ * viewport edge. `side`/`size` default to the surrounding `Rail.Layout`'s.
63
+ *
64
+ * Slots: `noctis-rail-panel` (the collapsible), `noctis-rail-surface` (the inner surface).
65
+ * @see {@link Rail.Panel.Props}
66
+ */
67
+ declare function RailPanel({
68
+ side,
69
+ size,
70
+ keepMounted,
71
+ className,
72
+ children,
73
+ "aria-label": ariaLabel,
74
+ "aria-labelledby": ariaLabelledby,
75
+ ...props
76
+ }: Rail.Panel.Props): ReactElement;
77
+ /**
78
+ * A ghost icon button that closes the rail. Defaults its glyph to a lucide `X` and its name to the
79
+ * translated "Close"; pass `children` to swap the glyph or `aria-label` to override the name.
80
+ *
81
+ * Slot: `noctis-rail-close`.
82
+ * @see {@link Rail.Close.Props}
83
+ */
84
+ declare function RailClose({
85
+ className,
86
+ children,
87
+ "aria-label": ariaLabel,
88
+ ...props
89
+ }: Rail.Close.Props): ReactElement;
90
+ /**
91
+ * The rail's top region — title and corner actions. Separated by a divider.
92
+ *
93
+ * Slot: `noctis-rail-header`.
94
+ * @see {@link Rail.Header.Props}
95
+ */
96
+ declare function RailHeader({
97
+ className,
98
+ ...props
99
+ }: Rail.Header.Props): ReactElement;
100
+ /**
101
+ * The scrollable middle region. Grows to fill and scrolls its overflow so the header stays put.
102
+ *
103
+ * Slot: `noctis-rail-body`.
104
+ * @see {@link Rail.Body.Props}
105
+ */
106
+ declare function RailBody({
107
+ className,
108
+ ...props
109
+ }: Rail.Body.Props): ReactElement;
110
+ /**
111
+ * The accessible name of the rail, linked to the panel via `aria-labelledby`. Renders an `<h2>`.
112
+ *
113
+ * Slot: `noctis-rail-title`.
114
+ * @see {@link Rail.Title.Props}
115
+ */
116
+ declare function RailTitle({
117
+ className,
118
+ children,
119
+ ...props
120
+ }: Rail.Title.Props): ReactElement;
121
+ /**
122
+ * A docked, collapsible side rail — a non-modal panel that lives in the layout rather than over it.
123
+ *
124
+ * **Rail vs. Sheet.** Reach for a `Sheet` when the panel is a *modal task*: it overlays the page on a
125
+ * dimmed backdrop, traps focus, and closes on `Escape`/outside-click — the page behind is inert until
126
+ * it's dismissed. Reach for a `Rail` when the panel is a *persistent companion* to the page (an
127
+ * inspector, a filter rail, a settings panel): it docks beside the content and **reshapes** it instead
128
+ * of covering it, so the page stays fully usable with the rail open. No backdrop, no focus trap, no
129
+ * `Escape`-to-close.
130
+ *
131
+ * **Two reflow variants** (set on {@link Rail.Layout}): `squeeze` shrinks the content's width so it
132
+ * re-lays-out into the narrower space; `push` keeps the content's width and slides it over, clipping
133
+ * the overflow. Both keep the content interactive — that's the line between a rail and a sheet.
134
+ *
135
+ * **Docking.** Wrap a `Rail.Content` and a `Rail.Panel` in a `Rail.Layout` to dock the rail inside a
136
+ * region. Or drop a `Rail.Panel` straight into the page (no `Layout`) to dock it full-height to the
137
+ * viewport edge — reflowing on large screens, overlaying the edge on small ones.
138
+ *
139
+ * Compose it from parts: `Rail.Root` owns state, `Rail.Trigger` toggles it, `Rail.Layout` +
140
+ * `Rail.Content` set up the reflow, and `Rail.Panel` holds `Header`/`Body`, `Title`, and `Close`.
141
+ *
142
+ * Built on Base UI's Collapsible for the open/close behavior, measured-size animation, and a11y; the
143
+ * runtime compound is a plain object (kept tree-shakeable), with per-part prop types exposed through
144
+ * the matching `Rail` namespace below — e.g. `Rail.Panel.Props`.
145
+ */
146
+ declare const Rail: {
147
+ /** Groups the parts and owns open state. `Rail.Root.props()` → its spreadable prop bag. */Root: typeof RailRoot & {
148
+ props: typeof rootProps;
149
+ }; /** Toggles the rail. `Rail.Trigger.props()` → its spreadable prop bag. */
150
+ Trigger: typeof RailTrigger & {
151
+ props: typeof triggerProps;
152
+ }; /** The docking row. `Rail.Layout.props({ variant })` → its spreadable prop bag. */
153
+ Layout: typeof RailLayout & {
154
+ props: typeof layoutProps;
155
+ }; /** The content beside the rail. `Rail.Content.props({ variant, side })` → its spreadable prop bag. */
156
+ Content: typeof RailContent & {
157
+ props: typeof contentProps;
158
+ }; /** The docked rail. `Rail.Panel.props({ docking, variant, side, size })` → its spreadable prop bag. */
159
+ Panel: typeof RailPanel & {
160
+ props: typeof panelProps;
161
+ }; /** The ghost-icon close button. `Rail.Close.props()` → its spreadable prop bag. */
162
+ Close: typeof RailClose & {
163
+ props: typeof closeProps;
164
+ }; /** The header region. `Rail.Header.props()` → its spreadable prop bag. */
165
+ Header: typeof RailHeader & {
166
+ props: typeof headerProps;
167
+ }; /** The scrollable body. `Rail.Body.props()` → its spreadable prop bag. */
168
+ Body: typeof RailBody & {
169
+ props: typeof bodyProps;
170
+ }; /** The accessible name. `Rail.Title.props()` → its spreadable prop bag. */
171
+ Title: typeof RailTitle & {
172
+ props: typeof titleProps;
173
+ }; /** The inner surface escape-hatch. `Rail.Surface.props({ side })` → its spreadable prop bag. */
174
+ Surface: {
175
+ props: typeof surfaceProps;
176
+ };
177
+ };
178
+ /**
179
+ * Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. This namespace
180
+ * is types-only — it emits no runtime code and merges with the `Rail` object above, so `Rail.Panel` is
181
+ * the component value while `Rail.Panel.Props` is its prop type.
182
+ */
183
+ declare namespace Rail {
184
+ /** How an open rail reshapes the surrounding content. */
185
+ type Variant = RailVariant;
186
+ /** Which edge the rail docks to. */
187
+ type Side = RailSide;
188
+ /** The rail's open extent — width when docked left/right, height when docked top/bottom. */
189
+ type Size = RailSize;
190
+ /** The spreadable data-attribute prop bag every `Rail.*.props()` returns (D12). */
191
+ type PartProps = RailPartProps;
192
+ namespace Root {
193
+ type Props = collapsible_d_exports.Collapsible.Root.Props;
194
+ type State = collapsible_d_exports.Collapsible.Root.State;
195
+ }
196
+ namespace Trigger {
197
+ type Props = collapsible_d_exports.Collapsible.Trigger.Props;
198
+ type State = collapsible_d_exports.Collapsible.Trigger.State;
199
+ }
200
+ namespace Layout {
201
+ type Props = ComponentProps<"div"> & {
202
+ /** How an open rail reshapes the content. Defaults to `squeeze`. */variant?: RailVariant; /** Which edge the rail docks to. Defaults to `end`. Inherited by `Content`/`Panel`. */
203
+ side?: RailSide; /** The rail's width — also the `push` slide distance. Defaults to `md`. Inherited by `Panel`. */
204
+ size?: RailSize;
205
+ };
206
+ }
207
+ namespace Content {
208
+ type Props = ComponentProps<"div">;
209
+ }
210
+ namespace Panel {
211
+ type Props = collapsible_d_exports.Collapsible.Panel.Props & {
212
+ /** Which edge to dock to. Defaults to the `Rail.Layout`'s, then `end`. */side?: RailSide; /** The rail's width. Defaults to the `Rail.Layout`'s, then `md`. */
213
+ size?: RailSize;
214
+ };
215
+ type State = collapsible_d_exports.Collapsible.Panel.State;
216
+ }
217
+ namespace Close {
218
+ type Props = collapsible_d_exports.Collapsible.Trigger.Props;
219
+ type State = collapsible_d_exports.Collapsible.Trigger.State;
220
+ }
221
+ namespace Header {
222
+ type Props = ComponentProps<"div">;
223
+ }
224
+ namespace Body {
225
+ type Props = ComponentProps<"div">;
226
+ }
227
+ namespace Title {
228
+ type Props = ComponentProps<"h2">;
229
+ }
230
+ }
231
+ //#endregion
232
+ export { Rail };