@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,170 @@
1
+ import { tooltip_d_exports } from "../../primitives/tooltip.js";
2
+ import { TooltipPartProps, TooltipPopupPropsArgs, arrowProps, popupProps, triggerProps } from "./tooltip.props.js";
3
+ import { ReactElement } from "react";
4
+
5
+ //#region src/components/tooltip/tooltip.d.ts
6
+ /**
7
+ * Shares one open/close delay across a group of tooltips, so once any tooltip in the group has
8
+ * appeared the next opens instantly (within the group `timeout`). Mount it once high in the tree to
9
+ * tune the hover delay app-wide; individual `Tooltip.Root`s still work without it.
10
+ */
11
+ declare function TooltipProvider(props: Tooltip.Provider.Props): ReactElement;
12
+ /**
13
+ * Owns the open state and shares it with the trigger and popup. Wraps Base UI's Tooltip — it opens on
14
+ * pointer hover (after a delay) and on keyboard focus, and closes on blur, pointer leave, or `Escape`.
15
+ *
16
+ * `disableHoverablePopup` flips to `true` for the plain Noctis bubble — it holds nothing reachable, so
17
+ * the invisible traversal bridge only risks intercepting pointer events over neighbours. Pass
18
+ * `disableHoverablePopup={false}` if you ever put something selectable in the popup.
19
+ */
20
+ declare function TooltipRoot({
21
+ disableHoverablePopup,
22
+ ...props
23
+ }: Tooltip.Root.Props): ReactElement;
24
+ /**
25
+ * The element the tooltip is attached to — hovering or focusing it reveals the bubble. Style it
26
+ * yourself, or compose another control through `render` (e.g.
27
+ * `<Tooltip.Trigger render={<Button iconOnly aria-label="Help" startIcon={HelpIcon} />} />`).
28
+ *
29
+ * The hover `delay` defaults to 300ms — Base UI's 600 reads laggy for a keyboard-first feel; a
30
+ * `Provider` still makes grouped hovers instant within its `timeout`.
31
+ */
32
+ declare function TooltipTrigger({
33
+ delay,
34
+ ...props
35
+ }: Tooltip.Trigger.Props): ReactElement;
36
+ /**
37
+ * The floating bubble — portaled and animated — holding the hint text. Opens flush above the trigger
38
+ * by default, flipping to another side at the viewport edge. Renders as a `<Surface elevation="menu"
39
+ * bordered shadow="popover">`, so it paints the engine-derived overlay surface (fill, border, shadow)
40
+ * shared with the menu and popover.
41
+ */
42
+ declare function TooltipPopup({
43
+ side,
44
+ align,
45
+ sideOffset,
46
+ alignOffset,
47
+ collisionPadding,
48
+ arrowPadding,
49
+ collisionBoundary,
50
+ sticky,
51
+ className,
52
+ style,
53
+ children,
54
+ ...props
55
+ }: Tooltip.Popup.Props): ReactElement;
56
+ /**
57
+ * An opt-in caret pointing back at the trigger. Compose it inside `Tooltip.Popup`; the flush bubble is
58
+ * the default, so render this only where a pointer helps (a cursor-tracked or free-floating hint).
59
+ * Pair it with a larger `sideOffset` (≈8) so the tip meets the trigger. Mirrors automatically by
60
+ * `data-side`, including the RTL inline sides.
61
+ */
62
+ declare function TooltipArrow({
63
+ className,
64
+ ...props
65
+ }: Tooltip.Arrow.Props): ReactElement;
66
+ /**
67
+ * A hint bubble that reveals supplementary text on hover and on keyboard focus. Built on Base UI's
68
+ * Tooltip for the open/close delays, focus and pointer handling, collision-aware positioning, and
69
+ * `Escape` dismissal — and decoupled from any particular trigger, so it attaches to whatever control
70
+ * you pass.
71
+ *
72
+ * Compose from parts: `Tooltip.Root` owns the open state, `Tooltip.Trigger` is the anchored control,
73
+ * and `Tooltip.Popup` is the floating bubble. Wrap a region in `Tooltip.Provider` to share one delay
74
+ * across many tooltips. The bubble paints the engine-derived overlay surface (the menu/popover family)
75
+ * and is flush against its anchor by default; render `Tooltip.Arrow` inside the popup for an opt-in
76
+ * caret where a pointer back to the trigger helps.
77
+ *
78
+ * Styling is precompiled in `tooltip.css`, keyed off each part's prefixed `data-slot`. Each part also
79
+ * carries the D12 `props()` escape hatch via `Object.assign` (e.g. `Tooltip.Popup.props({ open })`),
80
+ * returning a spreadable `{ "data-slot": "noctis-tooltip-<part>", ...dataAttrs }` bag for a foreign
81
+ * element a `<Tooltip.*>` can't wrap.
82
+ *
83
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
84
+ * exposed through the matching `Tooltip` namespace — e.g. `Tooltip.Popup.Props`.
85
+ */
86
+ declare const Tooltip: {
87
+ Provider: typeof TooltipProvider;
88
+ Root: typeof TooltipRoot;
89
+ Trigger: typeof TooltipTrigger & {
90
+ props: typeof triggerProps;
91
+ };
92
+ Popup: typeof TooltipPopup & {
93
+ props: typeof popupProps;
94
+ };
95
+ Arrow: typeof TooltipArrow & {
96
+ props: typeof arrowProps;
97
+ };
98
+ };
99
+ /**
100
+ * Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. Types-only —
101
+ * it emits no runtime code and merges with the `Tooltip` object above, so `Tooltip.Popup` is the
102
+ * component value while `Tooltip.Popup.Props` is its prop type.
103
+ */
104
+ declare namespace Tooltip {
105
+ /** The spreadable data-attribute prop bag every `Tooltip.*.props()` returns (D12). */
106
+ type PartProps = TooltipPartProps;
107
+ namespace Provider {
108
+ type Props = tooltip_d_exports.Tooltip.Provider.Props;
109
+ type State = tooltip_d_exports.Tooltip.Provider.State;
110
+ }
111
+ namespace Root {
112
+ type Props = tooltip_d_exports.Tooltip.Root.Props;
113
+ type State = tooltip_d_exports.Tooltip.Root.State;
114
+ }
115
+ namespace Trigger {
116
+ type Props = tooltip_d_exports.Tooltip.Trigger.Props;
117
+ type State = tooltip_d_exports.Tooltip.Trigger.State;
118
+ }
119
+ namespace Popup {
120
+ type Props = tooltip_d_exports.Tooltip.Popup.Props & {
121
+ /**
122
+ * Which side of the trigger to open on. May flip to avoid a viewport collision.
123
+ * @default "top"
124
+ */
125
+ side?: tooltip_d_exports.Tooltip.Positioner.Props["side"];
126
+ /**
127
+ * Alignment along that side.
128
+ * @default "center"
129
+ */
130
+ align?: tooltip_d_exports.Tooltip.Positioner.Props["align"];
131
+ /**
132
+ * Gap from the trigger, in px.
133
+ * @default 6
134
+ */
135
+ sideOffset?: number;
136
+ /**
137
+ * Shift along the alignment axis, in px.
138
+ */
139
+ alignOffset?: number;
140
+ /**
141
+ * Minimum space kept from the viewport edge when avoiding collisions, in px.
142
+ * @default 8
143
+ */
144
+ collisionPadding?: tooltip_d_exports.Tooltip.Positioner.Props["collisionPadding"];
145
+ /**
146
+ * Minimum space kept between `Tooltip.Arrow` and the popup's corners, in px. Keeps the
147
+ * caret from sliding off the edge on an aligned tooltip.
148
+ */
149
+ arrowPadding?: tooltip_d_exports.Tooltip.Positioner.Props["arrowPadding"];
150
+ /**
151
+ * The element collision detection measures against instead of the viewport — pass a
152
+ * scroll container so the bubble stays within it.
153
+ */
154
+ collisionBoundary?: tooltip_d_exports.Tooltip.Positioner.Props["collisionBoundary"];
155
+ /**
156
+ * Keeps the bubble anchored as the trigger scrolls out of view rather than detaching.
157
+ */
158
+ sticky?: tooltip_d_exports.Tooltip.Positioner.Props["sticky"];
159
+ };
160
+ type State = tooltip_d_exports.Tooltip.Popup.State;
161
+ /** Argument to the `Tooltip.Popup.props(...)` escape-hatch helper. */
162
+ type PropsArgs = TooltipPopupPropsArgs;
163
+ }
164
+ namespace Arrow {
165
+ type Props = tooltip_d_exports.Tooltip.Arrow.Props;
166
+ type State = tooltip_d_exports.Tooltip.Arrow.State;
167
+ }
168
+ }
169
+ //#endregion
170
+ export { Tooltip };
@@ -0,0 +1,143 @@
1
+ "use client";
2
+ import { Surface } from "../surface/surface.js";
3
+ import { tooltip_exports } from "../../primitives/tooltip.js";
4
+ import { TOOLTIP_SLOTS } from "./tooltip.slots.js";
5
+ import { arrowProps, popupProps, triggerProps } from "./tooltip.props.js";
6
+ import clsx$1 from "clsx";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/components/tooltip/tooltip.tsx
9
+ /**
10
+ * Shares one open/close delay across a group of tooltips, so once any tooltip in the group has
11
+ * appeared the next opens instantly (within the group `timeout`). Mount it once high in the tree to
12
+ * tune the hover delay app-wide; individual `Tooltip.Root`s still work without it.
13
+ */
14
+ function TooltipProvider(props) {
15
+ return /* @__PURE__ */ jsx(tooltip_exports.Tooltip.Provider, { ...props });
16
+ }
17
+ /**
18
+ * Owns the open state and shares it with the trigger and popup. Wraps Base UI's Tooltip — it opens on
19
+ * pointer hover (after a delay) and on keyboard focus, and closes on blur, pointer leave, or `Escape`.
20
+ *
21
+ * `disableHoverablePopup` flips to `true` for the plain Noctis bubble — it holds nothing reachable, so
22
+ * the invisible traversal bridge only risks intercepting pointer events over neighbours. Pass
23
+ * `disableHoverablePopup={false}` if you ever put something selectable in the popup.
24
+ */
25
+ function TooltipRoot({ disableHoverablePopup = true, ...props }) {
26
+ return /* @__PURE__ */ jsx(tooltip_exports.Tooltip.Root, {
27
+ disableHoverablePopup,
28
+ ...props
29
+ });
30
+ }
31
+ /**
32
+ * The element the tooltip is attached to — hovering or focusing it reveals the bubble. Style it
33
+ * yourself, or compose another control through `render` (e.g.
34
+ * `<Tooltip.Trigger render={<Button iconOnly aria-label="Help" startIcon={HelpIcon} />} />`).
35
+ *
36
+ * The hover `delay` defaults to 300ms — Base UI's 600 reads laggy for a keyboard-first feel; a
37
+ * `Provider` still makes grouped hovers instant within its `timeout`.
38
+ */
39
+ function TooltipTrigger({ delay = 300, ...props }) {
40
+ return /* @__PURE__ */ jsx(tooltip_exports.Tooltip.Trigger, {
41
+ "data-slot": TOOLTIP_SLOTS.trigger,
42
+ delay,
43
+ ...props
44
+ });
45
+ }
46
+ /**
47
+ * The floating bubble — portaled and animated — holding the hint text. Opens flush above the trigger
48
+ * by default, flipping to another side at the viewport edge. Renders as a `<Surface elevation="menu"
49
+ * bordered shadow="popover">`, so it paints the engine-derived overlay surface (fill, border, shadow)
50
+ * shared with the menu and popover.
51
+ */
52
+ function TooltipPopup({ side = "top", align = "center", sideOffset = 6, alignOffset, collisionPadding = 8, arrowPadding, collisionBoundary, sticky, className, style, children, ...props }) {
53
+ return /* @__PURE__ */ jsx(tooltip_exports.Tooltip.Portal, { children: /* @__PURE__ */ jsx(tooltip_exports.Tooltip.Positioner, {
54
+ side,
55
+ align,
56
+ sideOffset,
57
+ alignOffset,
58
+ collisionPadding,
59
+ arrowPadding,
60
+ collisionBoundary,
61
+ sticky,
62
+ "data-slot": TOOLTIP_SLOTS.positioner,
63
+ children: /* @__PURE__ */ jsx(tooltip_exports.Tooltip.Popup, {
64
+ "data-slot": TOOLTIP_SLOTS.popup,
65
+ render: /* @__PURE__ */ jsx(Surface, {
66
+ elevation: "menu",
67
+ bordered: true,
68
+ shadow: "popover"
69
+ }),
70
+ style: {
71
+ transformOrigin: "var(--transform-origin)",
72
+ ...style
73
+ },
74
+ className: clsx$1(className),
75
+ ...props,
76
+ children
77
+ })
78
+ }) });
79
+ }
80
+ /**
81
+ * The sharp caret SVG the arrow renders. Drawn tip-up at a fixed 20×10 geometry; `tooltip.css` rotates
82
+ * the whole arrow per `data-side` and paints the two paths (body in the tooltip hue, edge in the
83
+ * tooltip border role) so the caret seams into the bordered bubble.
84
+ */
85
+ function ArrowSvg() {
86
+ return /* @__PURE__ */ jsxs("svg", {
87
+ width: "20",
88
+ height: "10",
89
+ viewBox: "0 0 20 10",
90
+ fill: "none",
91
+ "aria-hidden": true,
92
+ children: [/* @__PURE__ */ jsx("path", {
93
+ "data-tooltip-arrow": "fill",
94
+ d: "M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z"
95
+ }), /* @__PURE__ */ jsx("path", {
96
+ "data-tooltip-arrow": "edge",
97
+ d: "M8.99542 1.85876C9.75604 1.17425 10.9106 1.17422 11.6713 1.85878L16.5281 6.22989C17.0789 6.72568 17.7938 7.00001 18.5349 7.00001L15.89 7L11.0023 2.60207C10.622 2.2598 10.0447 2.2598 9.66436 2.60207L4.77734 7L2.13171 7.00001C2.87284 7.00001 3.58774 6.72568 4.13861 6.22989L8.99542 1.85876Z"
98
+ })]
99
+ });
100
+ }
101
+ /**
102
+ * An opt-in caret pointing back at the trigger. Compose it inside `Tooltip.Popup`; the flush bubble is
103
+ * the default, so render this only where a pointer helps (a cursor-tracked or free-floating hint).
104
+ * Pair it with a larger `sideOffset` (≈8) so the tip meets the trigger. Mirrors automatically by
105
+ * `data-side`, including the RTL inline sides.
106
+ */
107
+ function TooltipArrow({ className, ...props }) {
108
+ return /* @__PURE__ */ jsx(tooltip_exports.Tooltip.Arrow, {
109
+ "data-slot": TOOLTIP_SLOTS.arrow,
110
+ className: clsx$1(className),
111
+ ...props,
112
+ children: /* @__PURE__ */ jsx(ArrowSvg, {})
113
+ });
114
+ }
115
+ /**
116
+ * A hint bubble that reveals supplementary text on hover and on keyboard focus. Built on Base UI's
117
+ * Tooltip for the open/close delays, focus and pointer handling, collision-aware positioning, and
118
+ * `Escape` dismissal — and decoupled from any particular trigger, so it attaches to whatever control
119
+ * you pass.
120
+ *
121
+ * Compose from parts: `Tooltip.Root` owns the open state, `Tooltip.Trigger` is the anchored control,
122
+ * and `Tooltip.Popup` is the floating bubble. Wrap a region in `Tooltip.Provider` to share one delay
123
+ * across many tooltips. The bubble paints the engine-derived overlay surface (the menu/popover family)
124
+ * and is flush against its anchor by default; render `Tooltip.Arrow` inside the popup for an opt-in
125
+ * caret where a pointer back to the trigger helps.
126
+ *
127
+ * Styling is precompiled in `tooltip.css`, keyed off each part's prefixed `data-slot`. Each part also
128
+ * carries the D12 `props()` escape hatch via `Object.assign` (e.g. `Tooltip.Popup.props({ open })`),
129
+ * returning a spreadable `{ "data-slot": "noctis-tooltip-<part>", ...dataAttrs }` bag for a foreign
130
+ * element a `<Tooltip.*>` can't wrap.
131
+ *
132
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
133
+ * exposed through the matching `Tooltip` namespace — e.g. `Tooltip.Popup.Props`.
134
+ */
135
+ const Tooltip = {
136
+ Provider: TooltipProvider,
137
+ Root: TooltipRoot,
138
+ Trigger: Object.assign(TooltipTrigger, { props: triggerProps }),
139
+ Popup: Object.assign(TooltipPopup, { props: popupProps }),
140
+ Arrow: Object.assign(TooltipArrow, { props: arrowProps })
141
+ };
142
+ //#endregion
143
+ export { Tooltip };
@@ -0,0 +1,36 @@
1
+ //#region src/components/tooltip/tooltip.props.d.ts
2
+ /** A spreadable data-attribute prop bag — the shape every `Tooltip.*.props()` returns. */
3
+ type TooltipPartProps = {
4
+ /** The slot value the matching `tooltip.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 BasePropsArgs {
10
+ /** Forwarded verbatim onto the returned prop bag. */
11
+ className?: string;
12
+ }
13
+ /** Argument to `Tooltip.Popup.props(...)` — the open state the CSS keys its visibility transition off. */
14
+ interface TooltipPopupPropsArgs extends BasePropsArgs {
15
+ /** Whether the tooltip is open (drives the visible state via `data-open`). */
16
+ open?: boolean;
17
+ }
18
+ /** Argument to the trigger's `.props(...)` — no state of its own; just the slot anchor + className. */
19
+ type TooltipTriggerPropsArgs = BasePropsArgs;
20
+ /** Argument to the arrow's `.props(...)` — no computed state; just the slot anchor + className (Base UI stamps `data-side`/`data-align` at runtime). */
21
+ type TooltipArrowPropsArgs = BasePropsArgs;
22
+ /** Trigger prop bag: just the slot anchor. */
23
+ declare function triggerProps({
24
+ className
25
+ }?: TooltipTriggerPropsArgs): TooltipPartProps;
26
+ /** Popup prop bag: slot anchor plus the `data-open` visibility state. */
27
+ declare function popupProps({
28
+ open,
29
+ className
30
+ }?: TooltipPopupPropsArgs): TooltipPartProps;
31
+ /** Arrow prop bag: just the slot anchor (the caret's side/align are runtime-stamped). */
32
+ declare function arrowProps({
33
+ className
34
+ }?: TooltipArrowPropsArgs): TooltipPartProps;
35
+ //#endregion
36
+ export { TooltipPartProps, TooltipPopupPropsArgs, arrowProps, popupProps, triggerProps };
@@ -0,0 +1,42 @@
1
+ import { TOOLTIP_SLOTS } from "./tooltip.slots.js";
2
+ //#region src/components/tooltip/tooltip.props.ts
3
+ /**
4
+ * The D12 unified variant contract for Tooltip — a per-part set of `props(...)` builders that each
5
+ * return a **spreadable props object** of the form `{ "data-slot": "noctis-tooltip-<part>",
6
+ * ...dataAttrs }`, derived from the part's state inputs.
7
+ *
8
+ * Under the single-`data-slot` anchor model the `data-slot` is the only styling hook needed —
9
+ * `tooltip.css` keys every rule off it — so spreading a part's `props()` onto a *foreign* element
10
+ * styles it as that part:
11
+ *
12
+ * <div {...Tooltip.Popup.props({ open: true })}>Saved</div>
13
+ * // → <div data-slot="noctis-tooltip-popup" data-open="">
14
+ *
15
+ * The escape hatch carries no className (styling is attribute-driven); an optional `className`
16
+ * passthrough is accepted and forwarded verbatim. The same state→data-attribute mapping is emitted as
17
+ * data from the token graph (`generated/declarations.json`) so non-React / agent consumers can
18
+ * hand-write the markup from the docs.
19
+ */
20
+ /** Stamp a boolean state as a bare data-attribute: present (`""`) when on, absent (`undefined`) when off. */
21
+ const flag = (on) => on ? "" : void 0;
22
+ const withClassName = (bag, className) => className === void 0 ? bag : {
23
+ ...bag,
24
+ className
25
+ };
26
+ /** Trigger prop bag: just the slot anchor. */
27
+ function triggerProps({ className } = {}) {
28
+ return withClassName({ "data-slot": TOOLTIP_SLOTS.trigger }, className);
29
+ }
30
+ /** Popup prop bag: slot anchor plus the `data-open` visibility state. */
31
+ function popupProps({ open, className } = {}) {
32
+ return withClassName({
33
+ "data-slot": TOOLTIP_SLOTS.popup,
34
+ "data-open": flag(open)
35
+ }, className);
36
+ }
37
+ /** Arrow prop bag: just the slot anchor (the caret's side/align are runtime-stamped). */
38
+ function arrowProps({ className } = {}) {
39
+ return withClassName({ "data-slot": TOOLTIP_SLOTS.arrow }, className);
40
+ }
41
+ //#endregion
42
+ export { arrowProps, popupProps, triggerProps };
@@ -0,0 +1,26 @@
1
+ //#region src/components/tooltip/tooltip.slots.d.ts
2
+ /**
3
+ * The `data-*` hooks `Tooltip` 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 Tooltip — pair a slot with a
5
+ * state to target, say, the popup only while it is animating in.
6
+ */
7
+ declare enum TooltipDataAttributes {
8
+ /** The trigger element the tooltip is attached to. */
9
+ trigger = "data-slot",
10
+ /** Present on the popup while the tooltip is open. */
11
+ open = "data-open",
12
+ /** Present on the popup while the tooltip is closed (before it unmounts). */
13
+ closed = "data-closed",
14
+ /** The side of the trigger the popup actually rendered on (`top`, `bottom`, `inline-start`, …). */
15
+ side = "data-side",
16
+ /** How the popup is aligned along that side (`start`, `center`, `end`). */
17
+ align = "data-align",
18
+ /** Present on the popup for the first frame after mount — the transition's start state. */
19
+ startingStyle = "data-starting-style",
20
+ /** Present on the popup while it transitions out before unmounting. */
21
+ endingStyle = "data-ending-style",
22
+ /** Present on the popup when the change should not animate (focus open, dismissal). */
23
+ instant = "data-instant"
24
+ }
25
+ //#endregion
26
+ export { TooltipDataAttributes };
@@ -0,0 +1,42 @@
1
+ //#region src/components/tooltip/tooltip.slots.ts
2
+ /**
3
+ * The slot vocabulary every `Tooltip` part stamps as its `data-slot`. The authored source the
4
+ * orchestration file reads from, prefixed `noctis-{component}-{part}` (the precompiled `tooltip.css`
5
+ * keys every rule off these anchors); SLOTS.md still generates from the token-graph declarations.
6
+ *
7
+ * `positioner` and `arrow` are styling-only anchors (the z-index wrapper that stacks the bubble above
8
+ * page chrome; the opt-in caret) — they carry no token mints, so they live here but not in the
9
+ * token-graph anatomy, following the positioner precedent.
10
+ */
11
+ const TOOLTIP_SLOTS = {
12
+ trigger: "noctis-tooltip-trigger",
13
+ positioner: "noctis-tooltip-positioner",
14
+ popup: "noctis-tooltip-popup",
15
+ arrow: "noctis-tooltip-arrow"
16
+ };
17
+ /**
18
+ * The `data-*` hooks `Tooltip` stamps on its parts, for host-side styling and tests. Slot values mark
19
+ * each rendered element; the state attributes are emitted by Base UI's Tooltip — pair a slot with a
20
+ * state to target, say, the popup only while it is animating in.
21
+ */
22
+ let TooltipDataAttributes = /* @__PURE__ */ function(TooltipDataAttributes) {
23
+ /** The trigger element the tooltip is attached to. */
24
+ TooltipDataAttributes["trigger"] = "data-slot";
25
+ /** Present on the popup while the tooltip is open. */
26
+ TooltipDataAttributes["open"] = "data-open";
27
+ /** Present on the popup while the tooltip is closed (before it unmounts). */
28
+ TooltipDataAttributes["closed"] = "data-closed";
29
+ /** The side of the trigger the popup actually rendered on (`top`, `bottom`, `inline-start`, …). */
30
+ TooltipDataAttributes["side"] = "data-side";
31
+ /** How the popup is aligned along that side (`start`, `center`, `end`). */
32
+ TooltipDataAttributes["align"] = "data-align";
33
+ /** Present on the popup for the first frame after mount — the transition's start state. */
34
+ TooltipDataAttributes["startingStyle"] = "data-starting-style";
35
+ /** Present on the popup while it transitions out before unmounting. */
36
+ TooltipDataAttributes["endingStyle"] = "data-ending-style";
37
+ /** Present on the popup when the change should not animate (focus open, dismissal). */
38
+ TooltipDataAttributes["instant"] = "data-instant";
39
+ return TooltipDataAttributes;
40
+ }({});
41
+ //#endregion
42
+ export { TOOLTIP_SLOTS, TooltipDataAttributes };
@@ -0,0 +1,35 @@
1
+ //#region src/core/derive-threshold-tone.ts
2
+ /** Clamp `n` into `[lo, hi]`. */
3
+ function clamp(n, lo, hi) {
4
+ return Math.min(Math.max(n, lo), hi);
5
+ }
6
+ /**
7
+ * Map a reading to its zone tone per the HTML `<meter>` rules. `low`/`high` default to `min`/`max`
8
+ * and are clamped into a sane order; `value` is clamped to the range (mirroring how the bar fills).
9
+ *
10
+ * - `optimum <= low` — low is best (temperature, ping): `value <= low` → `success`; up to `high` →
11
+ * `warning`; above → `danger`.
12
+ * - `optimum >= high` — high is best (battery, headroom): `value >= high` → `success`; down to `low` →
13
+ * `warning`; below → `danger`.
14
+ * - `low < optimum < high` — the middle is best (tank pressure): inside `[low, high]` → `success`;
15
+ * outside → `warning` (never `danger`).
16
+ */
17
+ function deriveThresholdTone({ value, min = 0, max = 100, low, high, optimum }) {
18
+ const lo = clamp(low ?? min, min, max);
19
+ const hi = clamp(high ?? max, lo, max);
20
+ const opt = clamp(optimum, min, max);
21
+ const reading = clamp(value, min, max);
22
+ if (opt <= lo) {
23
+ if (reading <= lo) return "success";
24
+ if (reading <= hi) return "warning";
25
+ return "danger";
26
+ }
27
+ if (opt >= hi) {
28
+ if (reading >= hi) return "success";
29
+ if (reading >= lo) return "warning";
30
+ return "danger";
31
+ }
32
+ return reading >= lo && reading <= hi ? "success" : "warning";
33
+ }
34
+ //#endregion
35
+ export { deriveThresholdTone };
@@ -0,0 +1,17 @@
1
+ //#region src/core/merge-class-name.d.ts
2
+ /**
3
+ * A Base UI `className` prop: a static string, or a function of the part's state. Base UI parts accept
4
+ * either form so a class can react to state (`open`, `disabled`, …); `State` is the part's state type.
5
+ */
6
+ type ClassNameProp<State> = string | ((state: State) => string | undefined) | undefined;
7
+ /**
8
+ * Merge a primitive's base classes with a consumer's `className`, preserving Base UI's state-function
9
+ * form: when the consumer passes a function, the result stays a function so it still receives the
10
+ * part's state; otherwise both collapse to a concatenated string via `clsx`. This is what lets a
11
+ * wrapped Base UI part keep the full styling API instead of narrowing `className` to a plain string.
12
+ * Bases are `data-slot`-keyed hand-authored CSS, not Tailwind utilities, so plain concatenation is
13
+ * correct — no `tailwind-merge` conflict resolution is needed in the framework-neutral core.
14
+ */
15
+ declare function mergeClassName<State>(base: string, className: ClassNameProp<State>): ClassNameProp<State>;
16
+ //#endregion
17
+ export { ClassNameProp, mergeClassName };
@@ -0,0 +1,16 @@
1
+ import clsx$1 from "clsx";
2
+ //#region src/core/merge-class-name.ts
3
+ /**
4
+ * Merge a primitive's base classes with a consumer's `className`, preserving Base UI's state-function
5
+ * form: when the consumer passes a function, the result stays a function so it still receives the
6
+ * part's state; otherwise both collapse to a concatenated string via `clsx`. This is what lets a
7
+ * wrapped Base UI part keep the full styling API instead of narrowing `className` to a plain string.
8
+ * Bases are `data-slot`-keyed hand-authored CSS, not Tailwind utilities, so plain concatenation is
9
+ * correct — no `tailwind-merge` conflict resolution is needed in the framework-neutral core.
10
+ */
11
+ function mergeClassName(base, className) {
12
+ if (typeof className === "function") return (state) => clsx$1(base, className(state));
13
+ return clsx$1(base, className);
14
+ }
15
+ //#endregion
16
+ export { mergeClassName };
@@ -0,0 +1,38 @@
1
+ import { ReactElement, ReactNode } from "react";
2
+ import { LocalizedStrings, TextDirection } from "@stridge/noctis-intl/react";
3
+ import { ThemeProviderProps } from "@stridge/noctis-design-tokens/react";
4
+
5
+ //#region src/core/noctis-provider.d.ts
6
+ /**
7
+ * The one provider for Noctis — composes the CSP nonce, locale/direction/labels, and the theme
8
+ * engine. Mount it once near the root. The contexts are independent and theme sits high, so
9
+ * everything beneath — including app-level providers — can read it. `theme` seeds the engine; omit
10
+ * it for the default theme. RTL-aware primitives resolve the active direction from Base UI's
11
+ * innermost `DirectionProvider`.
12
+ */
13
+ declare function NoctisProvider({
14
+ locale,
15
+ direction,
16
+ messages,
17
+ theme,
18
+ themeOverrides,
19
+ nonce,
20
+ children
21
+ }: NoctisProvider.Props): ReactElement;
22
+ /**
23
+ * The provider's prop type. Types-only — it emits no runtime code and merges with the `NoctisProvider`
24
+ * function above, so `NoctisProvider` is the component value while `NoctisProvider.Props` is its prop type.
25
+ */
26
+ declare namespace NoctisProvider {
27
+ type Props = {
28
+ /** The active BCP-47 locale. Required and controlled — the app (e.g. next-intl) is the source of truth. */locale: string; /** Reading direction. Defaults to the locale's via `isRTL`; pass it to override (e.g. a manual toggle). */
29
+ direction?: TextDirection; /** String dictionary for the localized-string hooks. Defaults to the built-in `en` stub. */
30
+ messages?: LocalizedStrings<string, string>; /** Server-resolved theme seed for the engine; omit it for the default theme. */
31
+ theme?: ThemeProviderProps["initialInput"]; /** Generation-time engine overrides — per-primitive replacements that participate in derivation. */
32
+ themeOverrides?: ThemeProviderProps["overrides"]; /** CSP nonce stamped on the inline styles Base UI injects, so they stay valid under a strict CSP. */
33
+ nonce?: string;
34
+ children: ReactNode;
35
+ };
36
+ }
37
+ //#endregion
38
+ export { NoctisProvider };
@@ -0,0 +1,44 @@
1
+ "use client";
2
+ import { DEFAULT_MESSAGES } from "../i18n/default-messages.js";
3
+ import { useMemo } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { LocaleContext, isRTL } from "@stridge/noctis-intl/react";
6
+ import { DirectionProvider } from "@base-ui/react/direction-provider";
7
+ import { CSPProvider } from "@base-ui/react/csp-provider";
8
+ import { ThemeProvider } from "@stridge/noctis-design-tokens/react";
9
+ //#region src/core/noctis-provider.tsx
10
+ /**
11
+ * The one provider for Noctis — composes the CSP nonce, locale/direction/labels, and the theme
12
+ * engine. Mount it once near the root. The contexts are independent and theme sits high, so
13
+ * everything beneath — including app-level providers — can read it. `theme` seeds the engine; omit
14
+ * it for the default theme. RTL-aware primitives resolve the active direction from Base UI's
15
+ * innermost `DirectionProvider`.
16
+ */
17
+ function NoctisProvider({ locale, direction, messages, theme, themeOverrides, nonce, children }) {
18
+ const resolvedDirection = direction ?? (isRTL(locale) ? "rtl" : "ltr");
19
+ const value = useMemo(() => ({
20
+ locale,
21
+ direction: resolvedDirection,
22
+ dictionary: messages ?? DEFAULT_MESSAGES
23
+ }), [
24
+ locale,
25
+ resolvedDirection,
26
+ messages
27
+ ]);
28
+ return /* @__PURE__ */ jsx(CSPProvider, {
29
+ nonce,
30
+ children: /* @__PURE__ */ jsx(ThemeProvider, {
31
+ initialInput: theme,
32
+ overrides: themeOverrides,
33
+ children: /* @__PURE__ */ jsx(LocaleContext.Provider, {
34
+ value,
35
+ children: /* @__PURE__ */ jsx(DirectionProvider, {
36
+ direction: resolvedDirection,
37
+ children
38
+ })
39
+ })
40
+ })
41
+ });
42
+ }
43
+ //#endregion
44
+ export { NoctisProvider };
@@ -0,0 +1 @@
1
+ import { Primitive } from "./primitive.js";
@@ -0,0 +1,44 @@
1
+ import { useRender } from "../render.js";
2
+ import { JSX, ReactElement, Ref } from "react";
3
+
4
+ //#region src/core/primitive/primitive.d.ts
5
+ interface PrimitiveOwnProps<TTag extends keyof JSX.IntrinsicElements = "div"> {
6
+ /** The HTML tag to render. Defaults to `div`. Use `render` to compose with a component instead. */
7
+ as?: TTag;
8
+ /** A Base UI render prop — an element or function — to replace the rendered element entirely. */
9
+ render?: useRender.RenderProp;
10
+ ref?: Ref<HTMLElement>;
11
+ /** The styling/testing hook attribute. Defaults to `noctis-primitive`. */
12
+ "data-slot"?: string;
13
+ }
14
+ /**
15
+ * The styled-element foundation every other primitive builds on: it renders any tag (`as`) or
16
+ * composes with another component (`render`), carries a `data-slot`, and forwards `className`
17
+ * verbatim so consumers can add their own classes. It is deliberately lean — only polymorphism and
18
+ * class passthrough — so layout and spacing concerns live on the primitives that own them, not on
19
+ * the base.
20
+ *
21
+ * @see {@link Primitive.Props}
22
+ */
23
+ declare function Primitive<TTag extends keyof JSX.IntrinsicElements = "div">({
24
+ as,
25
+ render,
26
+ ref,
27
+ className,
28
+ "data-slot": dataSlot,
29
+ ...props
30
+ }: Primitive.Props<TTag>): ReactElement;
31
+ /**
32
+ * Prop types. Types-only — it emits no runtime code and merges with the `Primitive` function above,
33
+ * so `Primitive` is the component value while `Primitive.Props` is its prop type.
34
+ */
35
+ declare namespace Primitive {
36
+ /**
37
+ * Props for `Primitive`, polymorphic over the rendered tag: the attributes track `as`, so
38
+ * `Primitive.Props<"a">` carries `href`/`target`, `Primitive.Props<"label">` carries `htmlFor`,
39
+ * and so on. Defaults to `"div"`.
40
+ */
41
+ type Props<TTag extends keyof JSX.IntrinsicElements = "div"> = PrimitiveOwnProps<TTag> & Omit<JSX.IntrinsicElements[TTag], keyof PrimitiveOwnProps<TTag>>;
42
+ }
43
+ //#endregion
44
+ export { Primitive };