@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,328 @@
1
+ import { navigation_menu_d_exports } from "../../primitives/navigation-menu.js";
2
+ import { NavigationMenuLinkPropsArgs, NavigationMenuPartProps, NavigationMenuRootPropsArgs, NavigationMenuTriggerPropsArgs, contentProps, footerProps, itemProps, linkDescriptionProps, linkProps, linkTitleProps, listProps, rootProps, sectionProps, sectionTitleProps, separatorProps, triggerProps, viewportProps } from "./navigation-menu.props.js";
3
+ import { CSSProperties, ComponentProps, ReactElement } from "react";
4
+
5
+ //#region src/components/navigation-menu/navigation-menu.d.ts
6
+ /**
7
+ * Owns the open value and shares it across the bar. Wraps Base UI's NavigationMenu, which renders a
8
+ * `<nav>`. Works controlled (`value` + `onValueChange`) or uncontrolled (`defaultValue`). Carries a
9
+ * Noctis hover-intent `delay`/`closeDelay` (override per instance) and a `size` density knob (`md`
10
+ * site-nav default, `sm` compact). Compose a `NavigationMenu.List` of items with a single
11
+ * `NavigationMenu.Viewport`.
12
+ */
13
+ declare function NavigationMenuRoot({
14
+ size,
15
+ orientation,
16
+ delay,
17
+ closeDelay,
18
+ className,
19
+ ...props
20
+ }: NavigationMenu.Root.Props): ReactElement;
21
+ /**
22
+ * The bar of top-level items. Holds `NavigationMenu.Item`s; arrow keys move between them (roving
23
+ * focus). Base UI wires the arrows but not Home/End, so we layer those on (APG disclosure-navigation):
24
+ * Home/End jump to the first/last enabled bar item; the composite re-syncs off the newly focused item.
25
+ */
26
+ declare function NavigationMenuList({
27
+ className,
28
+ onKeyDown,
29
+ ...props
30
+ }: NavigationMenu.List.Props): ReactElement;
31
+ /** One top-level entry — wrap a `Trigger` + `Content` for a flyout, or a single `Link` for a direct page. */
32
+ declare function NavigationMenuItem({
33
+ className,
34
+ ...props
35
+ }: NavigationMenu.Item.Props): ReactElement;
36
+ /**
37
+ * The control that opens an item's flyout — on hover (after the intent delay) and from the keyboard
38
+ * (Enter/Space, then Down to enter the panel). Carries a trailing chevron that rotates while the flyout
39
+ * is open. Mark it `current` to keep its fill when the section's page is the current one (the persistent
40
+ * "you are here" at the top level). Pair it with a `NavigationMenu.Content` inside the same `Item`.
41
+ */
42
+ declare function NavigationMenuTrigger({
43
+ current,
44
+ disabled,
45
+ className,
46
+ children,
47
+ ...props
48
+ }: NavigationMenu.Trigger.Props): ReactElement;
49
+ /**
50
+ * The flyout panel for an item, moved into the shared `Viewport` while its trigger is active. Lay out
51
+ * its links and sections (`NavigationMenu.Section`/`Separator`/`Footer`) with logical Tailwind utilities
52
+ * at the call site; the panel itself carries the content padding and the cross-panel slide transition.
53
+ * Set `keepMounted` to keep the panel's links in the DOM when closed — recommended for site nav so
54
+ * crawlers can see them (Base UI defaults it `false`).
55
+ */
56
+ declare function NavigationMenuContent({
57
+ className,
58
+ ...props
59
+ }: NavigationMenu.Content.Props): ReactElement;
60
+ /**
61
+ * A navigation link — usable as a top-level bar entry or as a row inside a flyout panel. Mark the
62
+ * current page with `active` (sets `aria-current="page"`); mark a bar link as the current section with
63
+ * `current` (keeps the fill when closed). For SPA routing, pass `closeOnClick` to dismiss the panel on
64
+ * navigation. Compose your router's link via `render` (e.g.
65
+ * `<NavigationMenu.Link render={<NextLink href="/docs" />}>Docs</NavigationMenu.Link>`).
66
+ */
67
+ declare function NavigationMenuLink({
68
+ current,
69
+ disabled,
70
+ className,
71
+ onClick,
72
+ onKeyDown,
73
+ tabIndex,
74
+ ...props
75
+ }: NavigationMenu.Link.Props): ReactElement;
76
+ /** The bold first line of a two-line panel link — the link's label. Place inside a `NavigationMenu.Link`. */
77
+ declare function NavigationMenuLinkTitle({
78
+ className,
79
+ ...props
80
+ }: NavigationMenu.LinkTitle.Props): ReactElement;
81
+ /** The muted supporting line of a two-line panel link. Place inside a `NavigationMenu.Link`, after the title. */
82
+ declare function NavigationMenuLinkDescription({
83
+ className,
84
+ ...props
85
+ }: NavigationMenu.LinkDescription.Props): ReactElement;
86
+ /**
87
+ * A titled column group inside a flyout panel — the blessed mega-panel layout (cap each at the NN/G
88
+ * 3–5 groups, 7–9 links rule). Stack a `NavigationMenu.SectionTitle` over the section's `Link` rows;
89
+ * lay multiple sections out in a row/grid at the call site.
90
+ */
91
+ declare function NavigationMenuSection({
92
+ className,
93
+ ...props
94
+ }: NavigationMenu.Section.Props): ReactElement;
95
+ /** A section's small heading label. Place as the first child of a `NavigationMenu.Section`. */
96
+ declare function NavigationMenuSectionTitle({
97
+ className,
98
+ ...props
99
+ }: NavigationMenu.SectionTitle.Props): ReactElement;
100
+ /** A sharp 1px divider between panel groups (a native `<hr>`, implicitly a separator). */
101
+ declare function NavigationMenuSeparator({
102
+ className,
103
+ ...props
104
+ }: NavigationMenu.Separator.Props): ReactElement;
105
+ /**
106
+ * A pinned "view all"/CTA row at a panel's end, set off by a hairline. Put the lead text first and the
107
+ * call-to-action `NavigationMenu.Link` last (it floats to the inline-end).
108
+ */
109
+ declare function NavigationMenuFooter({
110
+ className,
111
+ ...props
112
+ }: NavigationMenu.Footer.Props): ReactElement;
113
+ /**
114
+ * The single floating flyout container — portaled, elevated, positioned against the active trigger, and
115
+ * animated. Render it once inside `Root`, after the `List`. Base UI teleports each open `Content` into
116
+ * it, so switching items slides the panel in place. The popup paint is the composed `<Surface
117
+ * elevation="menu">`; `data-elevation` lands on the portaled popup so the flyout re-derives its theme.
118
+ * Set `backdrop` to dim the page behind a full-bleed mega-panel.
119
+ *
120
+ * Set `inline` for a nested menu whose panels should stay inside the current layout (e.g. a sidebar
121
+ * mega-panel): the viewport renders in place as a plain clipping window — no portal, positioner, or
122
+ * elevated popup — so the outer flyout's card already provides the surface. Position props are ignored
123
+ * in this mode.
124
+ */
125
+ declare function NavigationMenuViewport({
126
+ side,
127
+ align,
128
+ sideOffset,
129
+ alignOffset,
130
+ collisionPadding,
131
+ collisionAvoidance,
132
+ backdrop,
133
+ inline,
134
+ className,
135
+ style,
136
+ ...props
137
+ }: NavigationMenu.Viewport.Props): ReactElement;
138
+ /**
139
+ * A site navigation bar with flyout panels: a row of `Trigger`s and `Link`s, where each trigger reveals
140
+ * an elevated panel that slides in place as you move between items. Built on Base UI's NavigationMenu,
141
+ * so the bar is fully keyboard-operable (roving arrows across the bar, Enter/Space and Down to open and
142
+ * enter a panel, Home/End to the ends, Escape to close), RTL-aware, and the panel transitions respect
143
+ * `prefers-reduced-motion`.
144
+ *
145
+ * The bar reads like Tabs — muted text links that lift to a neutral ghost fill on hover/open/current
146
+ * (no accent chrome; the focus ring is the one accent use). Panels read like Menu — ghost-fill rows,
147
+ * two-line `Link`s (`LinkTitle` + `LinkDescription`), titled `Section`s, a `Separator`, and a pinned
148
+ * `Footer`.
149
+ *
150
+ * Compose from parts: `NavigationMenu.Root` owns the open value, `NavigationMenu.List` holds the
151
+ * `NavigationMenu.Item`s (each a `Trigger` + `Content`, or a single `Link`), and one
152
+ * `NavigationMenu.Viewport` — rendered after the list — is the elevated flyout the active panel teleports
153
+ * into. `NavigationMenu.Link` styles links in the bar and inside panels alike.
154
+ *
155
+ * Styling is precompiled in `navigation-menu.css`, keyed off each part's prefixed `data-slot`. Each part
156
+ * also carries the D12 `props()` escape hatch via `Object.assign` (e.g.
157
+ * `NavigationMenu.Link.props({ active })`), returning a spreadable
158
+ * `{ "data-slot": "noctis-navigation-menu-<part>", ...dataAttrs }` bag for a foreign element a
159
+ * `<NavigationMenu.*>` can't wrap.
160
+ *
161
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
162
+ * exposed through the matching `NavigationMenu` namespace — e.g. `NavigationMenu.Link.Props`.
163
+ */
164
+ declare const NavigationMenu: {
165
+ Root: typeof NavigationMenuRoot & {
166
+ props: typeof rootProps;
167
+ };
168
+ List: typeof NavigationMenuList & {
169
+ props: typeof listProps;
170
+ };
171
+ Item: typeof NavigationMenuItem & {
172
+ props: typeof itemProps;
173
+ };
174
+ Trigger: typeof NavigationMenuTrigger & {
175
+ props: typeof triggerProps;
176
+ };
177
+ Content: typeof NavigationMenuContent & {
178
+ props: typeof contentProps;
179
+ };
180
+ Link: typeof NavigationMenuLink & {
181
+ props: typeof linkProps;
182
+ };
183
+ LinkTitle: typeof NavigationMenuLinkTitle & {
184
+ props: typeof linkTitleProps;
185
+ };
186
+ LinkDescription: typeof NavigationMenuLinkDescription & {
187
+ props: typeof linkDescriptionProps;
188
+ };
189
+ Section: typeof NavigationMenuSection & {
190
+ props: typeof sectionProps;
191
+ };
192
+ SectionTitle: typeof NavigationMenuSectionTitle & {
193
+ props: typeof sectionTitleProps;
194
+ };
195
+ Separator: typeof NavigationMenuSeparator & {
196
+ props: typeof separatorProps;
197
+ };
198
+ Footer: typeof NavigationMenuFooter & {
199
+ props: typeof footerProps;
200
+ };
201
+ Viewport: typeof NavigationMenuViewport & {
202
+ props: typeof viewportProps;
203
+ };
204
+ };
205
+ /**
206
+ * Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. Types-only — it
207
+ * emits no runtime code and merges with the `NavigationMenu` object above, so `NavigationMenu.Link` is
208
+ * the component value while `NavigationMenu.Link.Props` is its prop type.
209
+ */
210
+ declare namespace NavigationMenu {
211
+ /** The spreadable data-attribute prop bag every `NavigationMenu.*.props()` returns (D12). */
212
+ type PartProps = NavigationMenuPartProps;
213
+ namespace Root {
214
+ type Props = navigation_menu_d_exports.NavigationMenu.Root.Props & {
215
+ /**
216
+ * The bar's control density — `md` for site nav, `sm` for a compact docs bar.
217
+ * @default "md"
218
+ */
219
+ size?: "md" | "sm";
220
+ };
221
+ type State = navigation_menu_d_exports.NavigationMenu.Root.State;
222
+ /** Argument to the `NavigationMenu.Root.props(...)` escape-hatch helper. */
223
+ type PropsArgs = NavigationMenuRootPropsArgs;
224
+ }
225
+ namespace List {
226
+ type Props = navigation_menu_d_exports.NavigationMenu.List.Props;
227
+ type State = navigation_menu_d_exports.NavigationMenu.List.State;
228
+ }
229
+ namespace Item {
230
+ type Props = navigation_menu_d_exports.NavigationMenu.Item.Props;
231
+ type State = navigation_menu_d_exports.NavigationMenu.Item.State;
232
+ }
233
+ namespace Trigger {
234
+ type Props = navigation_menu_d_exports.NavigationMenu.Trigger.Props & {
235
+ /** Whether this trigger owns the current section — keeps the fill when its panel is closed. */current?: boolean;
236
+ };
237
+ type State = navigation_menu_d_exports.NavigationMenu.Trigger.State;
238
+ /** Argument to the `NavigationMenu.Trigger.props(...)` escape-hatch helper. */
239
+ type PropsArgs = NavigationMenuTriggerPropsArgs;
240
+ }
241
+ namespace Content {
242
+ type Props = navigation_menu_d_exports.NavigationMenu.Content.Props;
243
+ type State = navigation_menu_d_exports.NavigationMenu.Content.State;
244
+ }
245
+ namespace Link {
246
+ type Props = navigation_menu_d_exports.NavigationMenu.Link.Props & {
247
+ /** Whether this bar link owns the current section — keeps the fill when closed. */current?: boolean; /** Whether this link is disabled — dims it and sets `aria-disabled` (anchors can't natively disable). */
248
+ disabled?: boolean;
249
+ };
250
+ type State = navigation_menu_d_exports.NavigationMenu.Link.State;
251
+ /** Argument to the `NavigationMenu.Link.props(...)` escape-hatch helper. */
252
+ type PropsArgs = NavigationMenuLinkPropsArgs;
253
+ }
254
+ /** The bold first line of a two-line panel link. */
255
+ namespace LinkTitle {
256
+ type Props = ComponentProps<"span">;
257
+ }
258
+ /** The muted supporting line of a two-line panel link. */
259
+ namespace LinkDescription {
260
+ type Props = ComponentProps<"span">;
261
+ }
262
+ /** A titled column group inside a flyout panel. */
263
+ namespace Section {
264
+ type Props = ComponentProps<"div">;
265
+ }
266
+ /** A panel section's heading label. */
267
+ namespace SectionTitle {
268
+ type Props = ComponentProps<"div">;
269
+ }
270
+ /** A sharp divider between panel groups. */
271
+ namespace Separator {
272
+ type Props = ComponentProps<"hr">;
273
+ }
274
+ /** A panel's pinned "view all"/CTA row. */
275
+ namespace Footer {
276
+ type Props = ComponentProps<"div">;
277
+ }
278
+ namespace Viewport {
279
+ type Props = navigation_menu_d_exports.NavigationMenu.Popup.Props & {
280
+ /**
281
+ * Which side of the bar to open the flyout on.
282
+ * @default "bottom"
283
+ */
284
+ side?: navigation_menu_d_exports.NavigationMenu.Positioner.Props["side"];
285
+ /**
286
+ * Alignment along that side, relative to the active trigger.
287
+ * @default "center"
288
+ */
289
+ align?: navigation_menu_d_exports.NavigationMenu.Positioner.Props["align"];
290
+ /**
291
+ * Gap from the bar, in px.
292
+ * @default 8
293
+ */
294
+ sideOffset?: number;
295
+ /**
296
+ * Offset along the alignment axis, in px (e.g. nudge a side-opening submenu up or down).
297
+ * @default 0
298
+ */
299
+ alignOffset?: number;
300
+ /**
301
+ * Minimum space kept from the viewport edge when avoiding collisions, in px.
302
+ * @default 12
303
+ */
304
+ collisionPadding?: navigation_menu_d_exports.NavigationMenu.Positioner.Props["collisionPadding"];
305
+ /**
306
+ * Collision strategy. Defaults to never flipping the flyout to the opposite side (the bar
307
+ * always opens downward); align still shifts to stay on-screen.
308
+ * @default { side: "none" }
309
+ */
310
+ collisionAvoidance?: navigation_menu_d_exports.NavigationMenu.Positioner.Props["collisionAvoidance"];
311
+ /**
312
+ * Dim the page behind the open flyout — for full-bleed mega-panels.
313
+ * @default false
314
+ */
315
+ backdrop?: boolean;
316
+ /**
317
+ * Render the viewport in place as a plain clipping window — no portal, positioner, or elevated
318
+ * popup — for a nested menu whose panels stay inside the current layout (e.g. a sidebar
319
+ * mega-panel). Position props are ignored.
320
+ * @default false
321
+ */
322
+ inline?: boolean; /** Inline style merged with the popup's runtime CSS vars. */
323
+ style?: CSSProperties;
324
+ };
325
+ }
326
+ }
327
+ //#endregion
328
+ export { NavigationMenu };
@@ -0,0 +1,274 @@
1
+ "use client";
2
+ import { Icon } from "../../icons/icon.js";
3
+ import { ChevronDownIcon } from "../../icons/glyphs.js";
4
+ import { Surface } from "../surface/surface.js";
5
+ import { navigation_menu_exports } from "../../primitives/navigation-menu.js";
6
+ import { NAVIGATION_MENU_SLOTS } from "./navigation-menu.slots.js";
7
+ import { contentProps, footerProps, itemProps, linkDescriptionProps, linkProps, linkTitleProps, listProps, rootProps, sectionProps, sectionTitleProps, separatorProps, triggerProps, viewportProps } from "./navigation-menu.props.js";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ //#region src/components/navigation-menu/navigation-menu.tsx
10
+ /** Noctis hover-intent defaults — deliberate enough to kill the cross-item flicker Base UI's 50ms produces. */
11
+ const DEFAULT_DELAY = 150;
12
+ const DEFAULT_CLOSE_DELAY = 180;
13
+ /**
14
+ * Owns the open value and shares it across the bar. Wraps Base UI's NavigationMenu, which renders a
15
+ * `<nav>`. Works controlled (`value` + `onValueChange`) or uncontrolled (`defaultValue`). Carries a
16
+ * Noctis hover-intent `delay`/`closeDelay` (override per instance) and a `size` density knob (`md`
17
+ * site-nav default, `sm` compact). Compose a `NavigationMenu.List` of items with a single
18
+ * `NavigationMenu.Viewport`.
19
+ */
20
+ function NavigationMenuRoot({ size = "md", orientation = "horizontal", delay = DEFAULT_DELAY, closeDelay = DEFAULT_CLOSE_DELAY, className, ...props }) {
21
+ return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Root, {
22
+ "data-slot": NAVIGATION_MENU_SLOTS.root,
23
+ "data-size": size,
24
+ "data-orientation": orientation,
25
+ orientation,
26
+ delay,
27
+ closeDelay,
28
+ className,
29
+ ...props
30
+ });
31
+ }
32
+ /** Enabled bar items in roving order — triggers and direct bar links, skipping disabled ones. */
33
+ const BAR_ITEM_SELECTOR = "[data-slot='noctis-navigation-menu-trigger']:not([data-disabled]),[data-slot='noctis-navigation-menu-item'] > [data-slot='noctis-navigation-menu-link']:not([data-disabled])";
34
+ /**
35
+ * The bar of top-level items. Holds `NavigationMenu.Item`s; arrow keys move between them (roving
36
+ * focus). Base UI wires the arrows but not Home/End, so we layer those on (APG disclosure-navigation):
37
+ * Home/End jump to the first/last enabled bar item; the composite re-syncs off the newly focused item.
38
+ */
39
+ function NavigationMenuList({ className, onKeyDown, ...props }) {
40
+ function handleKeyDown(event) {
41
+ onKeyDown?.(event);
42
+ if (event.defaultPrevented || event.key !== "Home" && event.key !== "End") return;
43
+ const items = event.currentTarget.querySelectorAll(BAR_ITEM_SELECTOR);
44
+ if (items.length === 0) return;
45
+ (event.key === "Home" ? items[0] : items[items.length - 1])?.focus();
46
+ event.preventDefault();
47
+ }
48
+ return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.List, {
49
+ "data-slot": NAVIGATION_MENU_SLOTS.list,
50
+ className,
51
+ onKeyDown: handleKeyDown,
52
+ ...props
53
+ });
54
+ }
55
+ /** One top-level entry — wrap a `Trigger` + `Content` for a flyout, or a single `Link` for a direct page. */
56
+ function NavigationMenuItem({ className, ...props }) {
57
+ return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Item, {
58
+ "data-slot": NAVIGATION_MENU_SLOTS.item,
59
+ className,
60
+ ...props
61
+ });
62
+ }
63
+ /**
64
+ * The control that opens an item's flyout — on hover (after the intent delay) and from the keyboard
65
+ * (Enter/Space, then Down to enter the panel). Carries a trailing chevron that rotates while the flyout
66
+ * is open. Mark it `current` to keep its fill when the section's page is the current one (the persistent
67
+ * "you are here" at the top level). Pair it with a `NavigationMenu.Content` inside the same `Item`.
68
+ */
69
+ function NavigationMenuTrigger({ current, disabled, className, children, ...props }) {
70
+ return /* @__PURE__ */ jsxs(navigation_menu_exports.NavigationMenu.Trigger, {
71
+ "data-slot": NAVIGATION_MENU_SLOTS.trigger,
72
+ "data-current": current ? "" : void 0,
73
+ "data-disabled": disabled ? "" : void 0,
74
+ disabled,
75
+ className,
76
+ ...props,
77
+ children: [children, /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Icon, {
78
+ "data-slot": NAVIGATION_MENU_SLOTS.icon,
79
+ children: /* @__PURE__ */ jsx(Icon, {
80
+ icon: ChevronDownIcon,
81
+ size: "sm"
82
+ })
83
+ })]
84
+ });
85
+ }
86
+ /**
87
+ * The flyout panel for an item, moved into the shared `Viewport` while its trigger is active. Lay out
88
+ * its links and sections (`NavigationMenu.Section`/`Separator`/`Footer`) with logical Tailwind utilities
89
+ * at the call site; the panel itself carries the content padding and the cross-panel slide transition.
90
+ * Set `keepMounted` to keep the panel's links in the DOM when closed — recommended for site nav so
91
+ * crawlers can see them (Base UI defaults it `false`).
92
+ */
93
+ function NavigationMenuContent({ className, ...props }) {
94
+ return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Content, {
95
+ "data-slot": NAVIGATION_MENU_SLOTS.content,
96
+ className,
97
+ ...props
98
+ });
99
+ }
100
+ /**
101
+ * A navigation link — usable as a top-level bar entry or as a row inside a flyout panel. Mark the
102
+ * current page with `active` (sets `aria-current="page"`); mark a bar link as the current section with
103
+ * `current` (keeps the fill when closed). For SPA routing, pass `closeOnClick` to dismiss the panel on
104
+ * navigation. Compose your router's link via `render` (e.g.
105
+ * `<NavigationMenu.Link render={<NextLink href="/docs" />}>Docs</NavigationMenu.Link>`).
106
+ */
107
+ function NavigationMenuLink({ current, disabled, className, onClick, onKeyDown, tabIndex, ...props }) {
108
+ return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Link, {
109
+ "data-slot": NAVIGATION_MENU_SLOTS.link,
110
+ "data-current": current ? "" : void 0,
111
+ "data-disabled": disabled ? "" : void 0,
112
+ "aria-disabled": disabled ? true : void 0,
113
+ tabIndex: disabled ? -1 : tabIndex,
114
+ onClick: (event) => {
115
+ if (disabled) {
116
+ event.preventDefault();
117
+ return;
118
+ }
119
+ onClick?.(event);
120
+ },
121
+ onKeyDown: (event) => {
122
+ if (disabled && (event.key === "Enter" || event.key === " ")) {
123
+ event.preventDefault();
124
+ return;
125
+ }
126
+ onKeyDown?.(event);
127
+ },
128
+ className,
129
+ ...props
130
+ });
131
+ }
132
+ /** The bold first line of a two-line panel link — the link's label. Place inside a `NavigationMenu.Link`. */
133
+ function NavigationMenuLinkTitle({ className, ...props }) {
134
+ return /* @__PURE__ */ jsx("span", {
135
+ "data-slot": NAVIGATION_MENU_SLOTS.linkTitle,
136
+ className,
137
+ ...props
138
+ });
139
+ }
140
+ /** The muted supporting line of a two-line panel link. Place inside a `NavigationMenu.Link`, after the title. */
141
+ function NavigationMenuLinkDescription({ className, ...props }) {
142
+ return /* @__PURE__ */ jsx("span", {
143
+ "data-slot": NAVIGATION_MENU_SLOTS.linkDescription,
144
+ className,
145
+ ...props
146
+ });
147
+ }
148
+ /**
149
+ * A titled column group inside a flyout panel — the blessed mega-panel layout (cap each at the NN/G
150
+ * 3–5 groups, 7–9 links rule). Stack a `NavigationMenu.SectionTitle` over the section's `Link` rows;
151
+ * lay multiple sections out in a row/grid at the call site.
152
+ */
153
+ function NavigationMenuSection({ className, ...props }) {
154
+ return /* @__PURE__ */ jsx("div", {
155
+ "data-slot": NAVIGATION_MENU_SLOTS.section,
156
+ className,
157
+ ...props
158
+ });
159
+ }
160
+ /** A section's small heading label. Place as the first child of a `NavigationMenu.Section`. */
161
+ function NavigationMenuSectionTitle({ className, ...props }) {
162
+ return /* @__PURE__ */ jsx("div", {
163
+ "data-slot": NAVIGATION_MENU_SLOTS.sectionTitle,
164
+ className,
165
+ ...props
166
+ });
167
+ }
168
+ /** A sharp 1px divider between panel groups (a native `<hr>`, implicitly a separator). */
169
+ function NavigationMenuSeparator({ className, ...props }) {
170
+ return /* @__PURE__ */ jsx("hr", {
171
+ "data-slot": NAVIGATION_MENU_SLOTS.separator,
172
+ className,
173
+ ...props
174
+ });
175
+ }
176
+ /**
177
+ * A pinned "view all"/CTA row at a panel's end, set off by a hairline. Put the lead text first and the
178
+ * call-to-action `NavigationMenu.Link` last (it floats to the inline-end).
179
+ */
180
+ function NavigationMenuFooter({ className, ...props }) {
181
+ return /* @__PURE__ */ jsx("div", {
182
+ "data-slot": NAVIGATION_MENU_SLOTS.footer,
183
+ className,
184
+ ...props
185
+ });
186
+ }
187
+ /**
188
+ * The single floating flyout container — portaled, elevated, positioned against the active trigger, and
189
+ * animated. Render it once inside `Root`, after the `List`. Base UI teleports each open `Content` into
190
+ * it, so switching items slides the panel in place. The popup paint is the composed `<Surface
191
+ * elevation="menu">`; `data-elevation` lands on the portaled popup so the flyout re-derives its theme.
192
+ * Set `backdrop` to dim the page behind a full-bleed mega-panel.
193
+ *
194
+ * Set `inline` for a nested menu whose panels should stay inside the current layout (e.g. a sidebar
195
+ * mega-panel): the viewport renders in place as a plain clipping window — no portal, positioner, or
196
+ * elevated popup — so the outer flyout's card already provides the surface. Position props are ignored
197
+ * in this mode.
198
+ */
199
+ function NavigationMenuViewport({ side = "bottom", align = "center", sideOffset = 8, alignOffset = 0, collisionPadding = 12, collisionAvoidance = { side: "none" }, backdrop = false, inline = false, className, style, ...props }) {
200
+ if (inline) return /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Viewport, {
201
+ "data-slot": NAVIGATION_MENU_SLOTS.viewport,
202
+ className,
203
+ style
204
+ });
205
+ return /* @__PURE__ */ jsxs(navigation_menu_exports.NavigationMenu.Portal, { children: [backdrop ? /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Backdrop, { "data-slot": NAVIGATION_MENU_SLOTS.backdrop }) : null, /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Positioner, {
206
+ side,
207
+ align,
208
+ sideOffset,
209
+ alignOffset,
210
+ collisionPadding,
211
+ collisionAvoidance,
212
+ "data-slot": NAVIGATION_MENU_SLOTS.positioner,
213
+ children: /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Popup, {
214
+ "data-slot": NAVIGATION_MENU_SLOTS.popup,
215
+ render: /* @__PURE__ */ jsx(Surface, {
216
+ elevation: "menu",
217
+ bordered: true,
218
+ shadow: "modal"
219
+ }),
220
+ style: {
221
+ transformOrigin: "var(--transform-origin)",
222
+ width: "var(--popup-width)",
223
+ height: "var(--popup-height)",
224
+ ...style
225
+ },
226
+ className,
227
+ ...props,
228
+ children: /* @__PURE__ */ jsx(navigation_menu_exports.NavigationMenu.Viewport, { "data-slot": NAVIGATION_MENU_SLOTS.viewport })
229
+ })
230
+ })] });
231
+ }
232
+ /**
233
+ * A site navigation bar with flyout panels: a row of `Trigger`s and `Link`s, where each trigger reveals
234
+ * an elevated panel that slides in place as you move between items. Built on Base UI's NavigationMenu,
235
+ * so the bar is fully keyboard-operable (roving arrows across the bar, Enter/Space and Down to open and
236
+ * enter a panel, Home/End to the ends, Escape to close), RTL-aware, and the panel transitions respect
237
+ * `prefers-reduced-motion`.
238
+ *
239
+ * The bar reads like Tabs — muted text links that lift to a neutral ghost fill on hover/open/current
240
+ * (no accent chrome; the focus ring is the one accent use). Panels read like Menu — ghost-fill rows,
241
+ * two-line `Link`s (`LinkTitle` + `LinkDescription`), titled `Section`s, a `Separator`, and a pinned
242
+ * `Footer`.
243
+ *
244
+ * Compose from parts: `NavigationMenu.Root` owns the open value, `NavigationMenu.List` holds the
245
+ * `NavigationMenu.Item`s (each a `Trigger` + `Content`, or a single `Link`), and one
246
+ * `NavigationMenu.Viewport` — rendered after the list — is the elevated flyout the active panel teleports
247
+ * into. `NavigationMenu.Link` styles links in the bar and inside panels alike.
248
+ *
249
+ * Styling is precompiled in `navigation-menu.css`, keyed off each part's prefixed `data-slot`. Each part
250
+ * also carries the D12 `props()` escape hatch via `Object.assign` (e.g.
251
+ * `NavigationMenu.Link.props({ active })`), returning a spreadable
252
+ * `{ "data-slot": "noctis-navigation-menu-<part>", ...dataAttrs }` bag for a foreign element a
253
+ * `<NavigationMenu.*>` can't wrap.
254
+ *
255
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
256
+ * exposed through the matching `NavigationMenu` namespace — e.g. `NavigationMenu.Link.Props`.
257
+ */
258
+ const NavigationMenu = {
259
+ Root: Object.assign(NavigationMenuRoot, { props: rootProps }),
260
+ List: Object.assign(NavigationMenuList, { props: listProps }),
261
+ Item: Object.assign(NavigationMenuItem, { props: itemProps }),
262
+ Trigger: Object.assign(NavigationMenuTrigger, { props: triggerProps }),
263
+ Content: Object.assign(NavigationMenuContent, { props: contentProps }),
264
+ Link: Object.assign(NavigationMenuLink, { props: linkProps }),
265
+ LinkTitle: Object.assign(NavigationMenuLinkTitle, { props: linkTitleProps }),
266
+ LinkDescription: Object.assign(NavigationMenuLinkDescription, { props: linkDescriptionProps }),
267
+ Section: Object.assign(NavigationMenuSection, { props: sectionProps }),
268
+ SectionTitle: Object.assign(NavigationMenuSectionTitle, { props: sectionTitleProps }),
269
+ Separator: Object.assign(NavigationMenuSeparator, { props: separatorProps }),
270
+ Footer: Object.assign(NavigationMenuFooter, { props: footerProps }),
271
+ Viewport: Object.assign(NavigationMenuViewport, { props: viewportProps })
272
+ };
273
+ //#endregion
274
+ export { NavigationMenu };