@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,84 @@
1
+ import { ALERT_DIALOG_SLOTS } from "./alert-dialog.slots.js";
2
+ //#region src/components/alert-dialog/alert-dialog.props.ts
3
+ /**
4
+ * The D12 unified variant contract for AlertDialog — each compound part exposes a `props(...)` builder
5
+ * returning a **spreadable props object** of the form `{ "data-slot": "noctis-alert-dialog-<part>",
6
+ * ...dataAttrs }`, derived from the part's variant inputs. Under the single-`data-slot` anchor model the
7
+ * `data-slot` (plus `data-tone` on the action) is the only styling hook needed — `alert-dialog.css` keys
8
+ * every rule off it — so spreading a part's `props()` onto a *foreign* element styles it as that part:
9
+ *
10
+ * <div {...AlertDialog.Header.props()} />
11
+ * // → <div data-slot="noctis-alert-dialog-header">
12
+ * <button {...AlertDialog.Action.props({ tone: "danger" })} />
13
+ * // → <button data-slot="noctis-alert-dialog-action" data-tone="danger">
14
+ *
15
+ * The escape hatch carries no className (styling is attribute-driven); an optional `className`
16
+ * passthrough is accepted and forwarded verbatim. The same variant→data-attribute→values mapping is
17
+ * emitted as data from the token graph (`generated/declarations.json` → `variantSchema`) so non-React /
18
+ * agent consumers can hand-write the markup from the docs.
19
+ */
20
+ const withClassName = (bag, className) => className === void 0 ? bag : {
21
+ ...bag,
22
+ className
23
+ };
24
+ /** Trigger prop bag: just the slot anchor. */
25
+ function triggerProps({ className } = {}) {
26
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.trigger }, className);
27
+ }
28
+ /** Backdrop prop bag: just the slot anchor (the scrim's paint flows from `alert-dialog.css`). */
29
+ function backdropProps({ className } = {}) {
30
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.backdrop }, className);
31
+ }
32
+ /** Viewport prop bag: just the slot anchor (the centring container's paint flows from the CSS). */
33
+ function viewportProps({ className } = {}) {
34
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.viewport }, className);
35
+ }
36
+ /** Popup prop bag: slot anchor plus the `data-tone`/`data-size` the panel cue and width rules read. */
37
+ function popupProps({ tone = "neutral", size = "md", className } = {}) {
38
+ return withClassName({
39
+ "data-slot": ALERT_DIALOG_SLOTS.popup,
40
+ "data-tone": tone,
41
+ "data-size": size
42
+ }, className);
43
+ }
44
+ /** Close prop bag: just the slot anchor (it carries no paint of its own — it composes with a Button). */
45
+ function closeProps({ className } = {}) {
46
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.close }, className);
47
+ }
48
+ /** Header prop bag: just the slot anchor. */
49
+ function headerProps({ className } = {}) {
50
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.header }, className);
51
+ }
52
+ /** Body prop bag: just the slot anchor. */
53
+ function bodyProps({ className } = {}) {
54
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.body }, className);
55
+ }
56
+ /** Footer prop bag: just the slot anchor. */
57
+ function footerProps({ className } = {}) {
58
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.footer }, className);
59
+ }
60
+ /** Icon prop bag: just the slot anchor (the leading tone glyph; its colour flows from the popup tone). */
61
+ function iconProps({ className } = {}) {
62
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.icon }, className);
63
+ }
64
+ /** Title prop bag: just the slot anchor. */
65
+ function titleProps({ className } = {}) {
66
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.title }, className);
67
+ }
68
+ /** Description prop bag: just the slot anchor. */
69
+ function descriptionProps({ className } = {}) {
70
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.description }, className);
71
+ }
72
+ /** Cancel prop bag: just the slot anchor (it composes with a Button — no paint of its own). */
73
+ function cancelProps({ className } = {}) {
74
+ return withClassName({ "data-slot": ALERT_DIALOG_SLOTS.cancel }, className);
75
+ }
76
+ /** Action prop bag: slot anchor plus the `data-tone` the action keys its intent off. */
77
+ function actionProps({ tone = "neutral", className } = {}) {
78
+ return withClassName({
79
+ "data-slot": ALERT_DIALOG_SLOTS.action,
80
+ "data-tone": tone
81
+ }, className);
82
+ }
83
+ //#endregion
84
+ export { actionProps, backdropProps, bodyProps, cancelProps, closeProps, descriptionProps, footerProps, headerProps, iconProps, popupProps, titleProps, triggerProps, viewportProps };
@@ -0,0 +1,29 @@
1
+ //#region src/components/alert-dialog/alert-dialog.slots.d.ts
2
+ /**
3
+ * The `data-*` attributes an `AlertDialog` part carries, beyond its `data-slot`. Each member's value is
4
+ * the attribute name; its JSDoc is the description docgen renders into the attributes table. The boolean
5
+ * state attributes are stamped by Base UI on the popup and backdrop as the dialog transitions.
6
+ */
7
+ declare enum AlertDialogDataAttributes {
8
+ /** The stable styling/testing hook every part carries. */
9
+ slot = "data-slot",
10
+ /** Present on the popup and backdrop while the dialog is open. */
11
+ open = "data-open",
12
+ /** Present on the popup and backdrop while the dialog is closed. */
13
+ closed = "data-closed",
14
+ /** Present on the popup and backdrop during the enter transition. */
15
+ startingStyle = "data-starting-style",
16
+ /** Present on the popup and backdrop during the exit transition. */
17
+ endingStyle = "data-ending-style",
18
+ /**
19
+ * Severity, stamped on the popup (and mirrored on the action) — `neutral` (default), `danger`, or
20
+ * `warning`. Drives the restrained status-role cue (toned icon + title emphasis).
21
+ */
22
+ tone = "data-tone",
23
+ /** Present on the popup: the cross-axis cap (`sm` / `md`) the width rule keys off. */
24
+ size = "data-size",
25
+ /** Present on the popup when it has a nested dialog open on top of it (drives the recede). */
26
+ nestedDialogOpen = "data-nested-dialog-open"
27
+ }
28
+ //#endregion
29
+ export { AlertDialogDataAttributes };
@@ -0,0 +1,52 @@
1
+ //#region src/components/alert-dialog/alert-dialog.slots.ts
2
+ /**
3
+ * The slot vocabulary every `AlertDialog` part stamps as its `data-slot` — the authored source the
4
+ * orchestration file reads from, kebab-cased `{component}-{part}`; SLOTS.md still generates from the
5
+ * token-graph declaration. `AlertDialog.Root` wraps Base UI's `AlertDialog.Root` without rendering an
6
+ * element of its own, and `AlertDialog.Content` composes the portal/backdrop/viewport/popup without
7
+ * stamping a slot — so neither appears here, keeping the const parity-true to the rendered DOM.
8
+ */
9
+ const ALERT_DIALOG_SLOTS = {
10
+ trigger: "noctis-alert-dialog-trigger",
11
+ backdrop: "noctis-alert-dialog-backdrop",
12
+ viewport: "noctis-alert-dialog-viewport",
13
+ popup: "noctis-alert-dialog-popup",
14
+ close: "noctis-alert-dialog-close",
15
+ header: "noctis-alert-dialog-header",
16
+ body: "noctis-alert-dialog-body",
17
+ footer: "noctis-alert-dialog-footer",
18
+ icon: "noctis-alert-dialog-icon",
19
+ title: "noctis-alert-dialog-title",
20
+ description: "noctis-alert-dialog-description",
21
+ cancel: "noctis-alert-dialog-cancel",
22
+ action: "noctis-alert-dialog-action"
23
+ };
24
+ /**
25
+ * The `data-*` attributes an `AlertDialog` part carries, beyond its `data-slot`. Each member's value is
26
+ * the attribute name; its JSDoc is the description docgen renders into the attributes table. The boolean
27
+ * state attributes are stamped by Base UI on the popup and backdrop as the dialog transitions.
28
+ */
29
+ let AlertDialogDataAttributes = /* @__PURE__ */ function(AlertDialogDataAttributes) {
30
+ /** The stable styling/testing hook every part carries. */
31
+ AlertDialogDataAttributes["slot"] = "data-slot";
32
+ /** Present on the popup and backdrop while the dialog is open. */
33
+ AlertDialogDataAttributes["open"] = "data-open";
34
+ /** Present on the popup and backdrop while the dialog is closed. */
35
+ AlertDialogDataAttributes["closed"] = "data-closed";
36
+ /** Present on the popup and backdrop during the enter transition. */
37
+ AlertDialogDataAttributes["startingStyle"] = "data-starting-style";
38
+ /** Present on the popup and backdrop during the exit transition. */
39
+ AlertDialogDataAttributes["endingStyle"] = "data-ending-style";
40
+ /**
41
+ * Severity, stamped on the popup (and mirrored on the action) — `neutral` (default), `danger`, or
42
+ * `warning`. Drives the restrained status-role cue (toned icon + title emphasis).
43
+ */
44
+ AlertDialogDataAttributes["tone"] = "data-tone";
45
+ /** Present on the popup: the cross-axis cap (`sm` / `md`) the width rule keys off. */
46
+ AlertDialogDataAttributes["size"] = "data-size";
47
+ /** Present on the popup when it has a nested dialog open on top of it (drives the recede). */
48
+ AlertDialogDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
49
+ return AlertDialogDataAttributes;
50
+ }({});
51
+ //#endregion
52
+ export { ALERT_DIALOG_SLOTS, AlertDialogDataAttributes };
@@ -0,0 +1,22 @@
1
+ //#region src/components/alert-dialog/alert-dialog.types.d.ts
2
+ /**
3
+ * The tone and size vocabularies the `AlertDialog` carries — the authored source of truth, since
4
+ * styling lives in precompiled `alert-dialog.css`. Types-only: no runtime code, so they never
5
+ * participate in the styling layer.
6
+ */
7
+ /**
8
+ * The confirmation's severity: a neutral commit, a destructive `danger`, or a cautionary `warning`. On
9
+ * the panel it paints a restrained status-role cue (a toned leading icon + title emphasis) — never an
10
+ * accent or a full red wash. `info`/`success` are intentionally out of scope: an alert dialog is an
11
+ * action gate, not a notice (route those to a `Dialog`).
12
+ */
13
+ type AlertDialogTone = "neutral" | "danger" | "warning";
14
+ /**
15
+ * The action button's intent — an alias of {@link AlertDialogTone} so a granular `Action` can carry its
16
+ * own tone, though the danger look itself flows from the composed `Button` variant.
17
+ */
18
+ type AlertDialogActionTone = AlertDialogTone;
19
+ /** The panel's cross-axis extent — its maximum width. `md` (default) or a compact `sm`. */
20
+ type AlertDialogSize = "sm" | "md";
21
+ //#endregion
22
+ export { AlertDialogActionTone, AlertDialogSize, AlertDialogTone };
@@ -0,0 +1,3 @@
1
+ import { AlertDialogActionTone } from "./alert-dialog.types.js";
2
+ import { AlertDialog } from "./alert-dialog.js";
3
+ import { AlertDialogDataAttributes } from "./alert-dialog.slots.js";
@@ -0,0 +1,5 @@
1
+ //#region src/components/autocomplete/autocomplete.context.d.ts
2
+ /** Control height and type of the field — `md` or `lg`. */
3
+ type AutocompleteSize = "md" | "lg";
4
+ //#endregion
5
+ export { AutocompleteSize };
@@ -0,0 +1,13 @@
1
+ "use client";
2
+ import { createContext, use } from "react";
3
+ //#region src/components/autocomplete/autocomplete.context.ts
4
+ const AutocompleteContext = createContext(null);
5
+ const AutocompleteProvider = AutocompleteContext.Provider;
6
+ /** Read the field context, throwing a named error when a part renders outside `Autocomplete.Root`. */
7
+ function useAutocompleteContext(part) {
8
+ const context = use(AutocompleteContext);
9
+ if (context === null) throw new Error(`Autocomplete.${part} must be rendered inside <Autocomplete.Root>.`);
10
+ return context;
11
+ }
12
+ //#endregion
13
+ export { AutocompleteProvider, useAutocompleteContext };
@@ -0,0 +1,364 @@
1
+ import { IconGlyph } from "../../icons/glyphs.js";
2
+ import { Autocomplete as Autocomplete$2 } from "../../primitives/autocomplete/autocomplete.js";
3
+ import { AutocompleteSize } from "./autocomplete.context.js";
4
+ import { AutocompleteInputPropsArgs, AutocompleteItemPropsArgs, AutocompletePartProps, contentProps, emptyProps, groupLabelProps, groupProps, iconProps, inputProps, itemProps, listProps, loadingProps, separatorProps, statusProps } from "./autocomplete.props.js";
5
+ import { ComponentProps, ReactElement } from "react";
6
+ import { Autocomplete } from "@base-ui/react/autocomplete";
7
+ import * as _$_base_ui_react_internals_filter0 from "@base-ui/react/internals/filter";
8
+
9
+ //#region src/components/autocomplete/autocomplete.d.ts
10
+ /**
11
+ * Owns the autocomplete state, the suggestion list (`items`), and filtering. Shares the control `size`
12
+ * and the `loading` flag with the field and rows through context. The committed value is the free text
13
+ * the user types — pass a `filter` (or the `useFilter` collator) to control how `items` are matched.
14
+ * Set `mode` for inline completion, `autoHighlight` to commit the top match on `Enter`, and
15
+ * `openOnFocus` to surface recent suggestions the moment the field is focused. Renders no DOM element.
16
+ */
17
+ declare function AutocompleteRoot<ItemValue>({
18
+ size,
19
+ loading,
20
+ openOnFocus,
21
+ open: openProp,
22
+ defaultOpen,
23
+ onOpenChange,
24
+ onValueChange,
25
+ children,
26
+ ...props
27
+ }: Autocomplete$1.Root.Props<ItemValue>): ReactElement;
28
+ /**
29
+ * The text field the user types into — opens the suggestions popup as they type and filters the list.
30
+ * Follows the field family look (filled surface, field border, a calm ring-less focus that shifts only
31
+ * the border) and reads the control `size` from the root unless overridden. Pass `invalid` for the
32
+ * danger border. Give it an `aria-label` (or wire a visible `Field.Label`) so it is named for AT.
33
+ */
34
+ declare function AutocompleteInput({
35
+ size,
36
+ invalid,
37
+ onFocus,
38
+ className,
39
+ ...props
40
+ }: Autocomplete$1.Input.Props): ReactElement;
41
+ /**
42
+ * The field shell that lays out the `Input` beside its leading `Icon` and trailing `Clear`/`Loading`
43
+ * affordances. Wrap the input and the affordances in it so they pin inside the field's edges without
44
+ * sitting over the typed text. Mirrors to the inline-start/-end under RTL.
45
+ */
46
+ declare function AutocompleteInputGroup({
47
+ className,
48
+ ...props
49
+ }: Autocomplete$1.InputGroup.Props): ReactElement;
50
+ /**
51
+ * A leading decorative icon in the field (a search magnifier by default), reserving a leading column.
52
+ * Muted and signal-free; Base UI marks it `aria-hidden`. Render it as the first child of the
53
+ * `InputGroup`, before the `Input`.
54
+ */
55
+ declare function AutocompleteIcon({
56
+ className,
57
+ children,
58
+ ...props
59
+ }: Autocomplete$1.Icon.Props): ReactElement;
60
+ /**
61
+ * The button that clears the current value, shown only while the field holds one. Carries a localized
62
+ * `aria-label` (override it with your own `aria-label`); it renders a small dismiss glyph by default and
63
+ * refocuses the input after clearing.
64
+ */
65
+ declare function AutocompleteClear({
66
+ "aria-label": ariaLabel,
67
+ className,
68
+ children,
69
+ ...props
70
+ }: Autocomplete$1.Clear.Props): ReactElement;
71
+ /**
72
+ * The trailing async busy indicator — a spinner that appears while the root is `loading`, naming itself
73
+ * for assistive tech with a localized hidden "Loading" label (defense in depth alongside a composed
74
+ * `Status` live region). Renders nothing while not loading. Place it inside the `InputGroup`.
75
+ */
76
+ declare function AutocompleteLoading({
77
+ className,
78
+ children,
79
+ ...props
80
+ }: Autocomplete$1.Loading.Props): ReactElement | null;
81
+ /**
82
+ * The floating suggestions surface — portaled, elevated, and animated — holding the `List` of `Item`s
83
+ * and the `Empty` message. Opens below the field aligned to its start, flipping above at the viewport
84
+ * edge, and caps at the available viewport height, scrolling its list and keeping the keyboard
85
+ * highlight in view. Mirrors the root `size` as `data-size` so the rows take the matching density.
86
+ */
87
+ declare function AutocompleteContent({
88
+ side,
89
+ align,
90
+ sideOffset,
91
+ collisionPadding,
92
+ className,
93
+ style,
94
+ children,
95
+ ...props
96
+ }: Autocomplete$1.Content.Props): ReactElement;
97
+ /** The scrollable list rendering the filtered suggestions. Pass a render function to map each item. */
98
+ declare function AutocompleteList({
99
+ className,
100
+ ...props
101
+ }: Autocomplete$1.List.Props): ReactElement;
102
+ /**
103
+ * One suggestion row. Optional leading `icon`; the row lights up with a neutral highlight on hover or
104
+ * keyboard focus (the accent stays a signal, never a hover). Give it a `value` so selecting it commits
105
+ * that text to the input.
106
+ */
107
+ declare function AutocompleteItem({
108
+ icon,
109
+ className,
110
+ children,
111
+ ...props
112
+ }: Autocomplete$1.Item.Props): ReactElement;
113
+ /**
114
+ * The free-text "Create" row — a conditional "Use «query»" option you render inside the list when the
115
+ * typed query has no exact match, so committing it accepts the typed value. Marked `data-create` for
116
+ * its slightly emphasized styling and a leading "+" glyph; this is the differentiator vs Combobox's
117
+ * constrained selection. Give it the typed query as its `value`.
118
+ */
119
+ declare function AutocompleteCreate({
120
+ className,
121
+ children,
122
+ ...props
123
+ }: Autocomplete$1.Create.Props): ReactElement;
124
+ /**
125
+ * Bolds the part of a suggestion that matches the typed query — the signature autocomplete affordance.
126
+ * Wraps the matched substring in a `<mark>` styled with weight and foreground only (no fill, never the
127
+ * accent), so the match reads clearly while the row stays quiet. Pass the row's `text` and the current
128
+ * `query`; renders the text unchanged when the query is empty or absent from it.
129
+ *
130
+ * The label is wrapped in a single inline `<span>` so the row's flex `gap` (which spaces the leading
131
+ * glyph from the label) never falls *between* the matched and unmatched text runs — without the wrapper
132
+ * each run would become its own flex item and the gap would tear the word apart.
133
+ */
134
+ declare function AutocompleteHighlight({
135
+ text,
136
+ query,
137
+ className,
138
+ ...props
139
+ }: Autocomplete$1.Highlight.Props): ReactElement;
140
+ /**
141
+ * The message shown inside the popup while the filtered list is empty — a "no matches" line. Kept
142
+ * mounted and announced politely to screen readers, so update or conditionally render its *children*
143
+ * rather than the part itself.
144
+ */
145
+ declare function AutocompleteEmpty({
146
+ className,
147
+ ...props
148
+ }: Autocomplete$1.Empty.Props): ReactElement;
149
+ /**
150
+ * A polite status line for an asynchronously loaded list (a "Searching…" / result-count message). Kept
151
+ * mounted and announced to screen readers, so update or conditionally render its *children* rather than
152
+ * the part itself.
153
+ */
154
+ declare function AutocompleteStatus({
155
+ className,
156
+ ...props
157
+ }: Autocomplete$1.Status.Props): ReactElement;
158
+ /** A labelled section of related suggestions. Put a `GroupLabel` inside to name it for screen readers. */
159
+ declare function AutocompleteGroup({
160
+ className,
161
+ ...props
162
+ }: Autocomplete$1.Group.Props): ReactElement;
163
+ /** Maps a group's filtered items to rows via a render-prop child. Renders no element of its own. */
164
+ declare function AutocompleteCollection(props: Autocomplete$1.Collection.Props): ReactElement;
165
+ /** The group's muted, non-interactive heading — announced as the group's accessible name. */
166
+ declare function AutocompleteGroupLabel({
167
+ className,
168
+ ...props
169
+ }: Autocomplete$1.GroupLabel.Props): ReactElement;
170
+ /** A hairline between groups of suggestions. */
171
+ declare function AutocompleteSeparator({
172
+ className,
173
+ ...props
174
+ }: Autocomplete$1.Separator.Props): ReactElement;
175
+ /**
176
+ * A free-text input with a suggestion list: as the user types, `Autocomplete.Content` floats a filtered
177
+ * list of `Item`s beneath the field. Unlike `Combobox`, the committed value is the typed text — the
178
+ * suggestions complete and accelerate free entry rather than constraining it to a fixed option set.
179
+ *
180
+ * Built on Base UI's Autocomplete for keyboard navigation (arrows, Home/End, typeahead, `Alt`+arrow to
181
+ * open without moving the highlight), focus management, and `Escape`/outside-click dismissal; the
182
+ * noctis wrapper injects the active locale so the filter collator matches the reader.
183
+ *
184
+ * Compose from parts: `Autocomplete.Root` owns the state and the `items`, `Autocomplete.Input` is the
185
+ * field (with optional leading `Icon`, `Clear`, and `Loading` affordances inside an `InputGroup`), and
186
+ * `Autocomplete.Content` holds the popup — an `Autocomplete.List` of `Item`s (use `Autocomplete.Highlight`
187
+ * to bold the match and `Autocomplete.Create` for the free-text "Use «query»" row), an
188
+ * `Autocomplete.Empty` no-matches line, an optional `Autocomplete.Status` for async loading, and
189
+ * `Group`/`GroupLabel`/`Separator` for sectioned suggestions.
190
+ *
191
+ * Styling is precompiled in `autocomplete.css`, keyed off each part's prefixed `data-slot`. Each part
192
+ * also carries the D12 `props()` escape hatch via `Object.assign` (e.g. `Autocomplete.Item.props({
193
+ * highlighted })`), returning a spreadable `{ "data-slot": "noctis-autocomplete-<part>", ...dataAttrs }`
194
+ * bag for a foreign element an `<Autocomplete.*>` can't wrap.
195
+ *
196
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
197
+ * exposed through the matching `Autocomplete` namespace — e.g. `Autocomplete.Item.Props`.
198
+ */
199
+ declare const Autocomplete$1: {
200
+ Root: typeof AutocompleteRoot;
201
+ Input: typeof AutocompleteInput & {
202
+ props: typeof inputProps;
203
+ };
204
+ InputGroup: typeof AutocompleteInputGroup;
205
+ Icon: typeof AutocompleteIcon & {
206
+ props: typeof iconProps;
207
+ };
208
+ Clear: typeof AutocompleteClear;
209
+ Loading: typeof AutocompleteLoading & {
210
+ props: typeof loadingProps;
211
+ };
212
+ Content: typeof AutocompleteContent & {
213
+ props: typeof contentProps;
214
+ };
215
+ List: typeof AutocompleteList & {
216
+ props: typeof listProps;
217
+ };
218
+ Item: typeof AutocompleteItem & {
219
+ props: typeof itemProps;
220
+ };
221
+ Create: typeof AutocompleteCreate;
222
+ Highlight: typeof AutocompleteHighlight;
223
+ Empty: typeof AutocompleteEmpty & {
224
+ props: typeof emptyProps;
225
+ };
226
+ Status: typeof AutocompleteStatus & {
227
+ props: typeof statusProps;
228
+ };
229
+ Group: typeof AutocompleteGroup & {
230
+ props: typeof groupProps;
231
+ };
232
+ GroupLabel: typeof AutocompleteGroupLabel & {
233
+ props: typeof groupLabelProps;
234
+ };
235
+ Collection: typeof AutocompleteCollection;
236
+ Separator: typeof AutocompleteSeparator & {
237
+ props: typeof separatorProps;
238
+ }; /** Base UI's locale-aware filter collator hook, for custom `filter` logic on the root. */
239
+ useFilter: typeof _$_base_ui_react_internals_filter0.getFilter;
240
+ };
241
+ /**
242
+ * Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. Types-only — it
243
+ * emits no runtime code and merges with the `Autocomplete` object above, so `Autocomplete.Item` is the
244
+ * component value while `Autocomplete.Item.Props` is its prop type.
245
+ */
246
+ declare namespace Autocomplete$1 {
247
+ /** Control height and type of the field — `md` or `lg`. */
248
+ type Size = AutocompleteSize;
249
+ /** The spreadable data-attribute prop bag every `Autocomplete.*.props()` returns (D12). */
250
+ type PartProps = AutocompletePartProps;
251
+ namespace Root {
252
+ type Props<ItemValue> = Autocomplete$2.Root.Props<ItemValue> & {
253
+ /**
254
+ * Control height and type of the field and its popup metrics.
255
+ * @default "md"
256
+ */
257
+ size?: AutocompleteSize;
258
+ /**
259
+ * Whether the autocomplete is loading async results — shows the trailing `Loading` spinner and
260
+ * sets `aria-busy` on the field. Compose a `Status` for a richer live announcement.
261
+ * @default false
262
+ */
263
+ loading?: boolean;
264
+ /**
265
+ * Whether focusing the field opens the popup (the recent-searches-on-focus idiom), in addition
266
+ * to opening as the user types. Manages the open state internally; do not combine with a
267
+ * controlled `open`.
268
+ * @default false
269
+ */
270
+ openOnFocus?: boolean;
271
+ };
272
+ }
273
+ namespace Input {
274
+ type Props = Omit<Autocomplete.Input.Props, "size"> & {
275
+ /**
276
+ * Control height and type, overriding the root's `size` for this field.
277
+ * @default the root's size
278
+ */
279
+ size?: AutocompleteSize;
280
+ /**
281
+ * Whether the field is invalid — shifts the border to the danger role. Usually flows from a
282
+ * `Field.Root` automatically; set it explicitly as an additive override.
283
+ */
284
+ invalid?: boolean;
285
+ };
286
+ /** Argument to the `Autocomplete.Input.props(...)` escape-hatch helper. */
287
+ type PropsArgs = AutocompleteInputPropsArgs;
288
+ }
289
+ namespace InputGroup {
290
+ type Props = ComponentProps<typeof Autocomplete$2.InputGroup>;
291
+ }
292
+ namespace Icon {
293
+ type Props = ComponentProps<typeof Autocomplete$2.Icon>;
294
+ }
295
+ namespace Clear {
296
+ type Props = ComponentProps<typeof Autocomplete$2.Clear>;
297
+ }
298
+ namespace Loading {
299
+ type Props = ComponentProps<"span">;
300
+ }
301
+ namespace Content {
302
+ type Props = Autocomplete.Popup.Props & {
303
+ /**
304
+ * Which side of the field to open on.
305
+ * @default "bottom"
306
+ */
307
+ side?: Autocomplete.Positioner.Props["side"];
308
+ /**
309
+ * Alignment along that side.
310
+ * @default "start"
311
+ */
312
+ align?: Autocomplete.Positioner.Props["align"];
313
+ /**
314
+ * Gap from the field, in px.
315
+ * @default 6
316
+ */
317
+ sideOffset?: Autocomplete.Positioner.Props["sideOffset"];
318
+ /**
319
+ * Minimum space kept from the viewport edge when avoiding collisions, in px.
320
+ * @default 8
321
+ */
322
+ collisionPadding?: Autocomplete.Positioner.Props["collisionPadding"];
323
+ };
324
+ }
325
+ namespace List {
326
+ type Props = Autocomplete.List.Props;
327
+ }
328
+ namespace Item {
329
+ type Props = Autocomplete.Item.Props & {
330
+ /** Optional leading glyph. */icon?: IconGlyph;
331
+ };
332
+ /** Argument to the `Autocomplete.Item.props(...)` escape-hatch helper. */
333
+ type PropsArgs = AutocompleteItemPropsArgs;
334
+ }
335
+ namespace Create {
336
+ type Props = Autocomplete.Item.Props;
337
+ }
338
+ namespace Highlight {
339
+ type Props = ComponentProps<"span"> & {
340
+ /** The full suggestion text to render. */text: string; /** The current query whose first match in `text` is bolded. */
341
+ query: string;
342
+ };
343
+ }
344
+ namespace Empty {
345
+ type Props = Autocomplete.Empty.Props;
346
+ }
347
+ namespace Status {
348
+ type Props = Autocomplete.Status.Props;
349
+ }
350
+ namespace Group {
351
+ type Props = ComponentProps<typeof Autocomplete$2.Group>;
352
+ }
353
+ namespace GroupLabel {
354
+ type Props = ComponentProps<typeof Autocomplete$2.GroupLabel>;
355
+ }
356
+ namespace Collection {
357
+ type Props = ComponentProps<typeof Autocomplete$2.Collection>;
358
+ }
359
+ namespace Separator {
360
+ type Props = ComponentProps<typeof Autocomplete.Separator>;
361
+ }
362
+ }
363
+ //#endregion
364
+ export { Autocomplete$1 as Autocomplete };