@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,43 @@
1
+ import { OTP_FIELD_SLOTS } from "./otp-field.slots.js";
2
+ //#region src/components/otp-field/otp-field.props.ts
3
+ /**
4
+ * The D12 unified variant contract for OtpField — each compound part exposes a `props(...)` builder
5
+ * returning a **spreadable props object** of the form `{ "data-slot": "noctis-otp-field-<part>",
6
+ * ...dataAttrs }`, derived from the part's variant/state inputs. Under the single-`data-slot` anchor
7
+ * model the `data-slot` is the only styling hook needed — `otp-field.css` keys every rule off it — so
8
+ * spreading a part's `props()` onto a *foreign* element styles it as that part:
9
+ *
10
+ * <input {...OtpField.Input.props({ invalid: true })} />
11
+ * // → <input data-slot="noctis-otp-field-input" data-invalid="">
12
+ *
13
+ * The escape hatch carries no className (styling is attribute-driven); an optional `className`
14
+ * passthrough is accepted and forwarded verbatim.
15
+ */
16
+ /** Stamp a boolean state as a bare data-attribute: present (`""`) when on, absent (`undefined`) when off. */
17
+ const flag = (on) => on ? "" : void 0;
18
+ const withClassName = (bag, className) => className === void 0 ? bag : {
19
+ ...bag,
20
+ className
21
+ };
22
+ /** Root prop bag: `data-slot` plus the `data-size` the descendant cell rules read. */
23
+ function rootProps({ size = "md", className } = {}) {
24
+ return withClassName({
25
+ "data-slot": OTP_FIELD_SLOTS.root,
26
+ "data-size": size
27
+ }, className);
28
+ }
29
+ /** Cell prop bag: slot anchor plus the `data-filled`/`data-disabled`/`data-invalid` state. */
30
+ function inputProps({ filled, disabled, invalid, className } = {}) {
31
+ return withClassName({
32
+ "data-slot": OTP_FIELD_SLOTS.input,
33
+ "data-filled": flag(filled),
34
+ "data-disabled": flag(disabled),
35
+ "data-invalid": flag(invalid)
36
+ }, className);
37
+ }
38
+ /** Separator prop bag: just the slot anchor the divider rule keys off (Base UI stamps `data-orientation` itself). */
39
+ function separatorProps({ className } = {}) {
40
+ return withClassName({ "data-slot": OTP_FIELD_SLOTS.separator }, className);
41
+ }
42
+ //#endregion
43
+ export { inputProps, rootProps, separatorProps };
@@ -0,0 +1,28 @@
1
+ //#region src/components/otp-field/otp-field.slots.d.ts
2
+ /**
3
+ * The `data-*` hooks `OtpField` stamps on its parts, for host-side styling and tests. Slot values
4
+ * mark each rendered element; the state attributes are emitted by Base UI's OTP Field — pair a slot
5
+ * with a state to target, say, only a filled or invalid cell.
6
+ */
7
+ declare enum OtpFieldDataAttributes {
8
+ /** The root OTP-field element. */
9
+ slot = "data-slot",
10
+ /** Present on the root when every slot is filled. */
11
+ complete = "data-complete",
12
+ /** Present on a cell that contains a character, and on the root when any cell is filled. */
13
+ filled = "data-filled",
14
+ /** Present when the field is disabled. */
15
+ disabled = "data-disabled",
16
+ /** Present when the field is read-only. */
17
+ readonly = "data-readonly",
18
+ /** Present when the field is required. */
19
+ required = "data-required",
20
+ /** Present on the root when one of the cells is focused. */
21
+ focused = "data-focused",
22
+ /** Present when the field is in a valid state (wrapped in `Field.Root`). */
23
+ valid = "data-valid",
24
+ /** Present when the field is in an invalid state (wrapped in `Field.Root`). */
25
+ invalid = "data-invalid"
26
+ }
27
+ //#endregion
28
+ export { OtpFieldDataAttributes };
@@ -0,0 +1,39 @@
1
+ //#region src/components/otp-field/otp-field.slots.ts
2
+ /**
3
+ * The slot vocabulary every `OtpField` 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 declarations.
6
+ */
7
+ const OTP_FIELD_SLOTS = {
8
+ root: "noctis-otp-field",
9
+ input: "noctis-otp-field-input",
10
+ separator: "noctis-otp-field-separator"
11
+ };
12
+ /**
13
+ * The `data-*` hooks `OtpField` stamps on its parts, for host-side styling and tests. Slot values
14
+ * mark each rendered element; the state attributes are emitted by Base UI's OTP Field — pair a slot
15
+ * with a state to target, say, only a filled or invalid cell.
16
+ */
17
+ let OtpFieldDataAttributes = /* @__PURE__ */ function(OtpFieldDataAttributes) {
18
+ /** The root OTP-field element. */
19
+ OtpFieldDataAttributes["slot"] = "data-slot";
20
+ /** Present on the root when every slot is filled. */
21
+ OtpFieldDataAttributes["complete"] = "data-complete";
22
+ /** Present on a cell that contains a character, and on the root when any cell is filled. */
23
+ OtpFieldDataAttributes["filled"] = "data-filled";
24
+ /** Present when the field is disabled. */
25
+ OtpFieldDataAttributes["disabled"] = "data-disabled";
26
+ /** Present when the field is read-only. */
27
+ OtpFieldDataAttributes["readonly"] = "data-readonly";
28
+ /** Present when the field is required. */
29
+ OtpFieldDataAttributes["required"] = "data-required";
30
+ /** Present on the root when one of the cells is focused. */
31
+ OtpFieldDataAttributes["focused"] = "data-focused";
32
+ /** Present when the field is in a valid state (wrapped in `Field.Root`). */
33
+ OtpFieldDataAttributes["valid"] = "data-valid";
34
+ /** Present when the field is in an invalid state (wrapped in `Field.Root`). */
35
+ OtpFieldDataAttributes["invalid"] = "data-invalid";
36
+ return OtpFieldDataAttributes;
37
+ }({});
38
+ //#endregion
39
+ export { OTP_FIELD_SLOTS, OtpFieldDataAttributes };
@@ -0,0 +1,2 @@
1
+ import { Popover } from "./popover.js";
2
+ import { PopoverDataAttributes } from "./popover.slots.js";
@@ -0,0 +1,192 @@
1
+ import { popover_d_exports } from "../../primitives/popover.js";
2
+ import { PopoverPartProps, closeProps, descriptionProps, popupProps, titleProps, triggerProps } from "./popover.props.js";
3
+ import { ReactElement } from "react";
4
+
5
+ //#region src/components/popover/popover.d.ts
6
+ /**
7
+ * Owns the open state and shares it with the trigger and popup. Wraps Base UI's Popover. Non-modal by
8
+ * default — the page stays interactive while the popover is open; an outside click or `Escape` closes
9
+ * it and focus returns to the trigger. Pass `modal` for a focus-trapped, scroll-locked popover.
10
+ */
11
+ declare function PopoverRoot(props: Popover.Root.Props): ReactElement;
12
+ /**
13
+ * The control that opens the popover. Style it yourself, or compose a `Button` through `render` — e.g.
14
+ * `<Popover.Trigger render={<Button variant="secondary">Filters</Button>} />`.
15
+ */
16
+ declare function PopoverTrigger(props: Popover.Trigger.Props): ReactElement;
17
+ /**
18
+ * Moves the popup to a portal at the end of `<body>`.
19
+ */
20
+ declare function PopoverPortal(props: Popover.Portal.Props): ReactElement;
21
+ /**
22
+ * The floating popup surface — portaled, elevated, and animated — holding the title, description, and
23
+ * any content. Opens below the trigger, aligned to its start, and is collision-aware: it flips to the
24
+ * opposite side and stays clear of the viewport edges. Renders through `<Surface elevation="menu">` so
25
+ * it re-derives the anchored-overlay scope (shared with menu) and paints its base; this file styles
26
+ * only the popover's own slots, never Surface.
27
+ *
28
+ * It caps at the collision-aware `--available-height` and scrolls its inner `viewport` past that — a
29
+ * popover taller than the screen never clips. The `viewport` carries the content padding/gap so the
30
+ * scrollbar sits flush at the popup edge.
31
+ *
32
+ * Provide the `<Popover.Portal>` and `<Popover.Positioner>` yourself for full control, or use this
33
+ * `Popup` directly — it portals and positions itself with sensible defaults.
34
+ */
35
+ declare function PopoverPopup({
36
+ side,
37
+ align,
38
+ sideOffset,
39
+ alignOffset,
40
+ collisionPadding,
41
+ anchor,
42
+ className,
43
+ style,
44
+ children,
45
+ ...props
46
+ }: Popover.Popup.Props): ReactElement;
47
+ /**
48
+ * Positions the popup against the trigger — collision-aware, flipping and shifting to stay on screen.
49
+ * Reach for it (with `Popover.Portal`) when you need to wrap the popup in your own positioning
50
+ * container; the common case is handled by `Popover.Popup` directly.
51
+ */
52
+ declare function PopoverPositioner({
53
+ className,
54
+ ...props
55
+ }: Popover.Positioner.Props): ReactElement;
56
+ /**
57
+ * The accessible name of the popover, linked to the popup via `aria-labelledby`. Renders an `<h2>`.
58
+ */
59
+ declare function PopoverTitle({
60
+ className,
61
+ ...props
62
+ }: Popover.Title.Props): ReactElement;
63
+ /**
64
+ * Supporting copy under the title, linked to the popup via `aria-describedby`. Renders a `<p>`.
65
+ */
66
+ declare function PopoverDescription({
67
+ className,
68
+ ...props
69
+ }: Popover.Description.Props): ReactElement;
70
+ /**
71
+ * Closes the popover. Renders a bare button and carries no styling of its own, so it composes with any
72
+ * Noctis `Button` through `render`. Give it an `aria-label` (or visible text) for the accessible name.
73
+ */
74
+ declare function PopoverClose({
75
+ className,
76
+ ...props
77
+ }: Popover.Close.Props): ReactElement;
78
+ /**
79
+ * A popover: a `Trigger` opens a floating, elevated panel anchored to it. Built on Base UI's Popover
80
+ * for collision-aware positioning, managed focus (focus moves into the popup and returns to the
81
+ * trigger on close), and `Escape`/outside-click dismissal, and decoupled from any particular trigger —
82
+ * pass your own (commonly a `Button` via `render`).
83
+ *
84
+ * Compose from parts: `Popover.Root` owns the open state, `Popover.Trigger` opens it, and
85
+ * `Popover.Popup` is the floating panel — it portals and positions itself, holding an optional
86
+ * `Title` and `Description` plus any content and a `Close`. For full control over the portal and
87
+ * positioning, drop a `Popover.Portal` + `Popover.Positioner` around the popup yourself. Noctis
88
+ * popovers are flush against their anchor — there is no arrow/caret part.
89
+ *
90
+ * Styling is precompiled in `popover.css`, keyed off each part's prefixed `data-slot`. Each part also
91
+ * carries the D12 `props()` escape hatch via `Object.assign` (e.g. `Popover.Title.props()`), returning
92
+ * a spreadable `{ "data-slot": "noctis-popover-<part>", ... }` bag for a foreign element a
93
+ * `<Popover.*>` can't wrap.
94
+ *
95
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
96
+ * exposed through the matching `Popover` namespace — e.g. `Popover.Popup.Props`.
97
+ */
98
+ declare const Popover: {
99
+ Root: typeof PopoverRoot;
100
+ Trigger: typeof PopoverTrigger & {
101
+ props: typeof triggerProps;
102
+ };
103
+ Portal: typeof PopoverPortal;
104
+ Positioner: typeof PopoverPositioner;
105
+ Popup: typeof PopoverPopup & {
106
+ props: typeof popupProps;
107
+ };
108
+ Title: typeof PopoverTitle & {
109
+ props: typeof titleProps;
110
+ };
111
+ Description: typeof PopoverDescription & {
112
+ props: typeof descriptionProps;
113
+ };
114
+ Close: typeof PopoverClose & {
115
+ props: typeof closeProps;
116
+ };
117
+ };
118
+ /**
119
+ * Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. Types-only —
120
+ * it emits no runtime code and merges with the `Popover` object above, so `Popover.Popup` is the
121
+ * component value while `Popover.Popup.Props` is its prop type.
122
+ */
123
+ declare namespace Popover {
124
+ /** The spreadable data-attribute prop bag every `Popover.*.props()` returns (D12). */
125
+ type PartProps = PopoverPartProps;
126
+ namespace Root {
127
+ type Props = popover_d_exports.Popover.Root.Props;
128
+ type State = popover_d_exports.Popover.Root.State;
129
+ }
130
+ namespace Trigger {
131
+ type Props = popover_d_exports.Popover.Trigger.Props;
132
+ type State = popover_d_exports.Popover.Trigger.State;
133
+ }
134
+ namespace Portal {
135
+ type Props = popover_d_exports.Popover.Portal.Props;
136
+ }
137
+ namespace Positioner {
138
+ type Props = popover_d_exports.Popover.Positioner.Props;
139
+ type State = popover_d_exports.Popover.Positioner.State;
140
+ }
141
+ namespace Popup {
142
+ type Props = popover_d_exports.Popover.Popup.Props & {
143
+ /**
144
+ * Which side of the anchor to open on. Collision-aware — flips to the opposite side at the
145
+ * viewport edge.
146
+ * @default "bottom"
147
+ */
148
+ side?: popover_d_exports.Popover.Positioner.Props["side"];
149
+ /**
150
+ * Alignment along that side. Direction-aware — `start`/`end` flip under RTL.
151
+ * @default "start"
152
+ */
153
+ align?: popover_d_exports.Popover.Positioner.Props["align"];
154
+ /**
155
+ * Gap from the anchor, in px.
156
+ * @default 6
157
+ */
158
+ sideOffset?: number;
159
+ /**
160
+ * Shift along the alignment axis, in px.
161
+ * @default 0
162
+ */
163
+ alignOffset?: number;
164
+ /**
165
+ * Minimum space kept from the viewport edge when avoiding collisions, in px.
166
+ * @default 8
167
+ */
168
+ collisionPadding?: popover_d_exports.Popover.Positioner.Props["collisionPadding"];
169
+ /**
170
+ * The element to anchor and position against. Defaults to the `Popover.Trigger`; pass an
171
+ * element, a ref, or a `() => Element | null` getter to anchor a triggerless, fully
172
+ * controlled popover to an arbitrary element (e.g. a row affordance or a canvas node).
173
+ */
174
+ anchor?: popover_d_exports.Popover.Positioner.Props["anchor"];
175
+ };
176
+ type State = popover_d_exports.Popover.Popup.State;
177
+ }
178
+ namespace Title {
179
+ type Props = popover_d_exports.Popover.Title.Props;
180
+ type State = popover_d_exports.Popover.Title.State;
181
+ }
182
+ namespace Description {
183
+ type Props = popover_d_exports.Popover.Description.Props;
184
+ type State = popover_d_exports.Popover.Description.State;
185
+ }
186
+ namespace Close {
187
+ type Props = popover_d_exports.Popover.Close.Props;
188
+ type State = popover_d_exports.Popover.Close.State;
189
+ }
190
+ }
191
+ //#endregion
192
+ export { Popover };
@@ -0,0 +1,152 @@
1
+ "use client";
2
+ import { Surface } from "../surface/surface.js";
3
+ import { popover_exports } from "../../primitives/popover.js";
4
+ import { POPOVER_SLOTS } from "./popover.slots.js";
5
+ import { closeProps, descriptionProps, popupProps, titleProps, triggerProps } from "./popover.props.js";
6
+ import clsx$1 from "clsx";
7
+ import { jsx } from "react/jsx-runtime";
8
+ //#region src/components/popover/popover.tsx
9
+ /**
10
+ * Owns the open state and shares it with the trigger and popup. Wraps Base UI's Popover. Non-modal by
11
+ * default — the page stays interactive while the popover is open; an outside click or `Escape` closes
12
+ * it and focus returns to the trigger. Pass `modal` for a focus-trapped, scroll-locked popover.
13
+ */
14
+ function PopoverRoot(props) {
15
+ return /* @__PURE__ */ jsx(popover_exports.Popover.Root, { ...props });
16
+ }
17
+ /**
18
+ * The control that opens the popover. Style it yourself, or compose a `Button` through `render` — e.g.
19
+ * `<Popover.Trigger render={<Button variant="secondary">Filters</Button>} />`.
20
+ */
21
+ function PopoverTrigger(props) {
22
+ return /* @__PURE__ */ jsx(popover_exports.Popover.Trigger, {
23
+ "data-slot": POPOVER_SLOTS.trigger,
24
+ ...props
25
+ });
26
+ }
27
+ /**
28
+ * Moves the popup to a portal at the end of `<body>`.
29
+ */
30
+ function PopoverPortal(props) {
31
+ return /* @__PURE__ */ jsx(popover_exports.Popover.Portal, { ...props });
32
+ }
33
+ /**
34
+ * The floating popup surface — portaled, elevated, and animated — holding the title, description, and
35
+ * any content. Opens below the trigger, aligned to its start, and is collision-aware: it flips to the
36
+ * opposite side and stays clear of the viewport edges. Renders through `<Surface elevation="menu">` so
37
+ * it re-derives the anchored-overlay scope (shared with menu) and paints its base; this file styles
38
+ * only the popover's own slots, never Surface.
39
+ *
40
+ * It caps at the collision-aware `--available-height` and scrolls its inner `viewport` past that — a
41
+ * popover taller than the screen never clips. The `viewport` carries the content padding/gap so the
42
+ * scrollbar sits flush at the popup edge.
43
+ *
44
+ * Provide the `<Popover.Portal>` and `<Popover.Positioner>` yourself for full control, or use this
45
+ * `Popup` directly — it portals and positions itself with sensible defaults.
46
+ */
47
+ function PopoverPopup({ side = "bottom", align = "start", sideOffset = 6, alignOffset = 0, collisionPadding = 8, anchor, className, style, children, ...props }) {
48
+ return /* @__PURE__ */ jsx(popover_exports.Popover.Portal, { children: /* @__PURE__ */ jsx(popover_exports.Popover.Positioner, {
49
+ anchor,
50
+ side,
51
+ align,
52
+ sideOffset,
53
+ alignOffset,
54
+ collisionPadding,
55
+ "data-slot": POPOVER_SLOTS.positioner,
56
+ children: /* @__PURE__ */ jsx(popover_exports.Popover.Popup, {
57
+ "data-slot": POPOVER_SLOTS.popup,
58
+ render: /* @__PURE__ */ jsx(Surface, {
59
+ elevation: "menu",
60
+ bordered: true,
61
+ shadow: "popover"
62
+ }),
63
+ style: {
64
+ transformOrigin: "var(--transform-origin)",
65
+ maxHeight: "var(--available-height)",
66
+ ...style
67
+ },
68
+ className: clsx$1(className),
69
+ ...props,
70
+ children: /* @__PURE__ */ jsx("div", {
71
+ "data-slot": POPOVER_SLOTS.viewport,
72
+ "data-custom-scrollbar": true,
73
+ children
74
+ })
75
+ })
76
+ }) });
77
+ }
78
+ /**
79
+ * Positions the popup against the trigger — collision-aware, flipping and shifting to stay on screen.
80
+ * Reach for it (with `Popover.Portal`) when you need to wrap the popup in your own positioning
81
+ * container; the common case is handled by `Popover.Popup` directly.
82
+ */
83
+ function PopoverPositioner({ className, ...props }) {
84
+ return /* @__PURE__ */ jsx(popover_exports.Popover.Positioner, {
85
+ "data-slot": POPOVER_SLOTS.positioner,
86
+ className: clsx$1(className),
87
+ ...props
88
+ });
89
+ }
90
+ /**
91
+ * The accessible name of the popover, linked to the popup via `aria-labelledby`. Renders an `<h2>`.
92
+ */
93
+ function PopoverTitle({ className, ...props }) {
94
+ return /* @__PURE__ */ jsx(popover_exports.Popover.Title, {
95
+ "data-slot": POPOVER_SLOTS.title,
96
+ className: clsx$1(className),
97
+ ...props
98
+ });
99
+ }
100
+ /**
101
+ * Supporting copy under the title, linked to the popup via `aria-describedby`. Renders a `<p>`.
102
+ */
103
+ function PopoverDescription({ className, ...props }) {
104
+ return /* @__PURE__ */ jsx(popover_exports.Popover.Description, {
105
+ "data-slot": POPOVER_SLOTS.description,
106
+ className: clsx$1(className),
107
+ ...props
108
+ });
109
+ }
110
+ /**
111
+ * Closes the popover. Renders a bare button and carries no styling of its own, so it composes with any
112
+ * Noctis `Button` through `render`. Give it an `aria-label` (or visible text) for the accessible name.
113
+ */
114
+ function PopoverClose({ className, ...props }) {
115
+ return /* @__PURE__ */ jsx(popover_exports.Popover.Close, {
116
+ "data-slot": POPOVER_SLOTS.close,
117
+ className: clsx$1(className),
118
+ ...props
119
+ });
120
+ }
121
+ /**
122
+ * A popover: a `Trigger` opens a floating, elevated panel anchored to it. Built on Base UI's Popover
123
+ * for collision-aware positioning, managed focus (focus moves into the popup and returns to the
124
+ * trigger on close), and `Escape`/outside-click dismissal, and decoupled from any particular trigger —
125
+ * pass your own (commonly a `Button` via `render`).
126
+ *
127
+ * Compose from parts: `Popover.Root` owns the open state, `Popover.Trigger` opens it, and
128
+ * `Popover.Popup` is the floating panel — it portals and positions itself, holding an optional
129
+ * `Title` and `Description` plus any content and a `Close`. For full control over the portal and
130
+ * positioning, drop a `Popover.Portal` + `Popover.Positioner` around the popup yourself. Noctis
131
+ * popovers are flush against their anchor — there is no arrow/caret part.
132
+ *
133
+ * Styling is precompiled in `popover.css`, keyed off each part's prefixed `data-slot`. Each part also
134
+ * carries the D12 `props()` escape hatch via `Object.assign` (e.g. `Popover.Title.props()`), returning
135
+ * a spreadable `{ "data-slot": "noctis-popover-<part>", ... }` bag for a foreign element a
136
+ * `<Popover.*>` can't wrap.
137
+ *
138
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
139
+ * exposed through the matching `Popover` namespace — e.g. `Popover.Popup.Props`.
140
+ */
141
+ const Popover = {
142
+ Root: PopoverRoot,
143
+ Trigger: Object.assign(PopoverTrigger, { props: triggerProps }),
144
+ Portal: PopoverPortal,
145
+ Positioner: PopoverPositioner,
146
+ Popup: Object.assign(PopoverPopup, { props: popupProps }),
147
+ Title: Object.assign(PopoverTitle, { props: titleProps }),
148
+ Description: Object.assign(PopoverDescription, { props: descriptionProps }),
149
+ Close: Object.assign(PopoverClose, { props: closeProps })
150
+ };
151
+ //#endregion
152
+ export { Popover };
@@ -0,0 +1,34 @@
1
+ //#region src/components/popover/popover.props.d.ts
2
+ /** A spreadable data-attribute prop bag — the shape every `Popover.*.props()` returns. */
3
+ type PopoverPartProps = {
4
+ /** The slot value the matching `popover.css` rules anchor on. */"data-slot": string; /** Forwarded verbatim — styling is attribute-driven, so this is an optional consumer passthrough. */
5
+ className?: string; /** A data-attribute present (empty string) or absent (`undefined`); never `false`. */
6
+ [attr: `data-${string}`]: string | undefined;
7
+ };
8
+ /** Common shape: every part's `.props()` accepts an optional `className` passthrough. */
9
+ interface PopoverPropsArgs {
10
+ /** Forwarded verbatim onto the returned prop bag. */
11
+ className?: string;
12
+ }
13
+ /** Trigger prop bag: just the slot anchor. */
14
+ declare function triggerProps({
15
+ className
16
+ }?: PopoverPropsArgs): PopoverPartProps;
17
+ /** Popup prop bag: just the slot anchor (the popup surface paint is owned by the composed Surface). */
18
+ declare function popupProps({
19
+ className
20
+ }?: PopoverPropsArgs): PopoverPartProps;
21
+ /** Title prop bag: just the slot anchor. */
22
+ declare function titleProps({
23
+ className
24
+ }?: PopoverPropsArgs): PopoverPartProps;
25
+ /** Description prop bag: just the slot anchor. */
26
+ declare function descriptionProps({
27
+ className
28
+ }?: PopoverPropsArgs): PopoverPartProps;
29
+ /** Close prop bag: just the slot anchor. */
30
+ declare function closeProps({
31
+ className
32
+ }?: PopoverPropsArgs): PopoverPartProps;
33
+ //#endregion
34
+ export { PopoverPartProps, closeProps, descriptionProps, popupProps, titleProps, triggerProps };
@@ -0,0 +1,44 @@
1
+ import { POPOVER_SLOTS } from "./popover.slots.js";
2
+ //#region src/components/popover/popover.props.ts
3
+ /**
4
+ * The D12 unified variant contract for Popover — a per-part set of `props(...)` builders that each
5
+ * return a **spreadable props object** of the form `{ "data-slot": "noctis-popover-<part>", ... }`,
6
+ * derived from the part's inputs.
7
+ *
8
+ * Under the single-`data-slot` anchor model the `data-slot` is the only styling hook needed —
9
+ * `popover.css` keys every rule off it — so spreading a part's `props()` onto a *foreign* element
10
+ * styles it as that part:
11
+ *
12
+ * <h2 {...Popover.Title.props()}>Filters</h2>
13
+ * // → <h2 data-slot="noctis-popover-title">
14
+ *
15
+ * The escape hatch carries no className (styling is attribute-driven); an optional `className`
16
+ * passthrough is accepted and forwarded verbatim. The same mapping is emitted as data from the token
17
+ * graph (`generated/declarations.json`) so non-React / agent consumers can hand-write the markup.
18
+ */
19
+ const withClassName = (bag, className) => className === void 0 ? bag : {
20
+ ...bag,
21
+ className
22
+ };
23
+ /** Trigger prop bag: just the slot anchor. */
24
+ function triggerProps({ className } = {}) {
25
+ return withClassName({ "data-slot": POPOVER_SLOTS.trigger }, className);
26
+ }
27
+ /** Popup prop bag: just the slot anchor (the popup surface paint is owned by the composed Surface). */
28
+ function popupProps({ className } = {}) {
29
+ return withClassName({ "data-slot": POPOVER_SLOTS.popup }, className);
30
+ }
31
+ /** Title prop bag: just the slot anchor. */
32
+ function titleProps({ className } = {}) {
33
+ return withClassName({ "data-slot": POPOVER_SLOTS.title }, className);
34
+ }
35
+ /** Description prop bag: just the slot anchor. */
36
+ function descriptionProps({ className } = {}) {
37
+ return withClassName({ "data-slot": POPOVER_SLOTS.description }, className);
38
+ }
39
+ /** Close prop bag: just the slot anchor. */
40
+ function closeProps({ className } = {}) {
41
+ return withClassName({ "data-slot": POPOVER_SLOTS.close }, className);
42
+ }
43
+ //#endregion
44
+ export { closeProps, descriptionProps, popupProps, titleProps, triggerProps };
@@ -0,0 +1,22 @@
1
+ //#region src/components/popover/popover.slots.d.ts
2
+ /**
3
+ * The `data-*` hooks `Popover` stamps on its parts, for host-side styling and tests. Slot values mark
4
+ * each rendered element; the state attributes are emitted by Base UI's Popover — pair a slot with a
5
+ * state to target, say, the trigger only while its popover is open, or the popup during its transition.
6
+ */
7
+ declare enum PopoverDataAttributes {
8
+ /** The trigger element. */
9
+ trigger = "data-slot",
10
+ /** Present on the trigger while its popover is open. */
11
+ popupOpen = "data-popup-open",
12
+ /** The side of the anchor the popup actually rendered on (`bottom`, `top`, `inline-start`, …). */
13
+ side = "data-side",
14
+ /** Present on the popup for the first frame after mount — the transition's start state. */
15
+ startingStyle = "data-starting-style",
16
+ /** Present on the popup while it transitions out before unmounting. */
17
+ endingStyle = "data-ending-style",
18
+ /** Present on the popup when the change should not animate (keyboard open, dismissal). */
19
+ instant = "data-instant"
20
+ }
21
+ //#endregion
22
+ export { PopoverDataAttributes };
@@ -0,0 +1,42 @@
1
+ //#region src/components/popover/popover.slots.ts
2
+ /**
3
+ * The slot vocabulary every `Popover` part stamps as its `data-slot`. The authored source the
4
+ * orchestration file reads from, prefixed `noctis-popover-{part}` (the precompiled `popover.css` keys
5
+ * every rule off these anchors); SLOTS.md still generates from the token-graph declaration.
6
+ *
7
+ * `positioner` is a styling-only anchor (the z-index wrapper around the portalled popup) — it carries
8
+ * no token mint, so it lives here but not in the token-graph anatomy. `viewport` is the scrollable
9
+ * inner region the orchestration file wraps the popup's children in (the family overflow idiom): it is
10
+ * declared anatomy but reuses the popup's own padding/gap mints, so it mints nothing of its own.
11
+ */
12
+ const POPOVER_SLOTS = {
13
+ trigger: "noctis-popover-trigger",
14
+ positioner: "noctis-popover-positioner",
15
+ popup: "noctis-popover-popup",
16
+ viewport: "noctis-popover-viewport",
17
+ title: "noctis-popover-title",
18
+ description: "noctis-popover-description",
19
+ close: "noctis-popover-close"
20
+ };
21
+ /**
22
+ * The `data-*` hooks `Popover` stamps on its parts, for host-side styling and tests. Slot values mark
23
+ * each rendered element; the state attributes are emitted by Base UI's Popover — pair a slot with a
24
+ * state to target, say, the trigger only while its popover is open, or the popup during its transition.
25
+ */
26
+ let PopoverDataAttributes = /* @__PURE__ */ function(PopoverDataAttributes) {
27
+ /** The trigger element. */
28
+ PopoverDataAttributes["trigger"] = "data-slot";
29
+ /** Present on the trigger while its popover is open. */
30
+ PopoverDataAttributes["popupOpen"] = "data-popup-open";
31
+ /** The side of the anchor the popup actually rendered on (`bottom`, `top`, `inline-start`, …). */
32
+ PopoverDataAttributes["side"] = "data-side";
33
+ /** Present on the popup for the first frame after mount — the transition's start state. */
34
+ PopoverDataAttributes["startingStyle"] = "data-starting-style";
35
+ /** Present on the popup while it transitions out before unmounting. */
36
+ PopoverDataAttributes["endingStyle"] = "data-ending-style";
37
+ /** Present on the popup when the change should not animate (keyboard open, dismissal). */
38
+ PopoverDataAttributes["instant"] = "data-instant";
39
+ return PopoverDataAttributes;
40
+ }({});
41
+ //#endregion
42
+ export { POPOVER_SLOTS, PopoverDataAttributes };
@@ -0,0 +1,2 @@
1
+ import { PreviewCard } from "./preview-card.js";
2
+ import { PreviewCardDataAttributes } from "./preview-card.slots.js";