@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,22 @@
1
+ //#region src/components/context-menu/context-menu.props.d.ts
2
+ /** A spreadable data-attribute prop bag — the shape every `ContextMenu.*.props()` returns. */
3
+ type ContextMenuPartProps = {
4
+ /** The slot value the matching `context-menu.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 ContextMenuPropsArgs {
10
+ /** Forwarded verbatim onto the returned prop bag. */
11
+ className?: string;
12
+ }
13
+ /** Trigger prop bag: just the slot anchor (the area that opens the menu on right-click / long-press). */
14
+ declare function triggerProps({
15
+ className
16
+ }?: ContextMenuPropsArgs): ContextMenuPartProps;
17
+ /** Content prop bag: just the slot anchor (the popup surface paint is owned by the composed Surface). */
18
+ declare function contentProps({
19
+ className
20
+ }?: ContextMenuPropsArgs): ContextMenuPartProps;
21
+ //#endregion
22
+ export { ContextMenuPartProps, contentProps, triggerProps };
@@ -0,0 +1,32 @@
1
+ import { CONTEXT_MENU_SLOTS } from "./context-menu.slots.js";
2
+ //#region src/components/context-menu/context-menu.props.ts
3
+ /**
4
+ * The D12 unified variant contract for ContextMenu — a per-part set of `props(...)` builders that each
5
+ * return a **spreadable props object** of the form `{ "data-slot": "noctis-context-menu-<part>",
6
+ * ...dataAttrs }`, 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
+ * `context-menu.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 {...ContextMenu.Trigger.props()}>Right-click me</div>
13
+ * // → <div data-slot="noctis-context-menu-trigger">
14
+ *
15
+ * The escape hatch carries no className (styling is attribute-driven); an optional `className`
16
+ * passthrough is accepted and forwarded verbatim. The shared row family (items, groups, separators)
17
+ * reuses `Menu`'s `props()` helpers — there is no second copy here.
18
+ */
19
+ const withClassName = (bag, className) => className === void 0 ? bag : {
20
+ ...bag,
21
+ className
22
+ };
23
+ /** Trigger prop bag: just the slot anchor (the area that opens the menu on right-click / long-press). */
24
+ function triggerProps({ className } = {}) {
25
+ return withClassName({ "data-slot": CONTEXT_MENU_SLOTS.trigger }, className);
26
+ }
27
+ /** Content prop bag: just the slot anchor (the popup surface paint is owned by the composed Surface). */
28
+ function contentProps({ className } = {}) {
29
+ return withClassName({ "data-slot": CONTEXT_MENU_SLOTS.content }, className);
30
+ }
31
+ //#endregion
32
+ export { contentProps, triggerProps };
@@ -0,0 +1,24 @@
1
+ //#region src/components/context-menu/context-menu.slots.d.ts
2
+ /**
3
+ * The `data-*` hooks `ContextMenu` 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 ContextMenu — pair a slot
5
+ * with a state to target, say, the trigger only while its menu is open.
6
+ */
7
+ declare enum ContextMenuDataAttributes {
8
+ /** The trigger area element. */
9
+ trigger = "data-slot",
10
+ /** Present on the trigger while a touch long-press is registering — paints the neutral pressed tint. */
11
+ pressed = "data-pressed",
12
+ /** Present on the trigger while its menu is open — the off-by-default "armed" tint hook. */
13
+ popupOpen = "data-popup-open",
14
+ /** The side of the anchor the content actually rendered on (`bottom`, `inline-end`, …). */
15
+ side = "data-side",
16
+ /** Present on the content for the first frame after mount — the transition's start state. */
17
+ startingStyle = "data-starting-style",
18
+ /** Present on the content while it transitions out before unmounting. */
19
+ endingStyle = "data-ending-style",
20
+ /** Present on the content when the change should not animate (keyboard open, dismissal). */
21
+ instant = "data-instant"
22
+ }
23
+ //#endregion
24
+ export { ContextMenuDataAttributes };
@@ -0,0 +1,42 @@
1
+ //#region src/components/context-menu/context-menu.slots.ts
2
+ /**
3
+ * The slot vocabulary every `ContextMenu` part stamps as its `data-slot`. The authored source the
4
+ * orchestration file reads from, prefixed `noctis-context-menu-{part}` (the precompiled
5
+ * `context-menu.css` keys its rules off these anchors); SLOTS.md still generates from the token-graph
6
+ * declarations.
7
+ *
8
+ * Only the right-click-specific parts live here — the trigger area and the floating popup
9
+ * (positioner / content / viewport). The row family (items, groups, separators, shortcuts) is
10
+ * `Menu`'s, reused verbatim, so those parts carry their own `noctis-menu-*` slots and `menu.css`
11
+ * styles them. `positioner` is a styling-only anchor (the z-index wrapper) and carries no token mint.
12
+ */
13
+ const CONTEXT_MENU_SLOTS = {
14
+ trigger: "noctis-context-menu-trigger",
15
+ positioner: "noctis-context-menu-positioner",
16
+ content: "noctis-context-menu-content",
17
+ viewport: "noctis-context-menu-viewport"
18
+ };
19
+ /**
20
+ * The `data-*` hooks `ContextMenu` stamps on its parts, for host-side styling and tests. Slot values
21
+ * mark each rendered element; the state attributes are emitted by Base UI's ContextMenu — pair a slot
22
+ * with a state to target, say, the trigger only while its menu is open.
23
+ */
24
+ let ContextMenuDataAttributes = /* @__PURE__ */ function(ContextMenuDataAttributes) {
25
+ /** The trigger area element. */
26
+ ContextMenuDataAttributes["trigger"] = "data-slot";
27
+ /** Present on the trigger while a touch long-press is registering — paints the neutral pressed tint. */
28
+ ContextMenuDataAttributes["pressed"] = "data-pressed";
29
+ /** Present on the trigger while its menu is open — the off-by-default "armed" tint hook. */
30
+ ContextMenuDataAttributes["popupOpen"] = "data-popup-open";
31
+ /** The side of the anchor the content actually rendered on (`bottom`, `inline-end`, …). */
32
+ ContextMenuDataAttributes["side"] = "data-side";
33
+ /** Present on the content for the first frame after mount — the transition's start state. */
34
+ ContextMenuDataAttributes["startingStyle"] = "data-starting-style";
35
+ /** Present on the content while it transitions out before unmounting. */
36
+ ContextMenuDataAttributes["endingStyle"] = "data-ending-style";
37
+ /** Present on the content when the change should not animate (keyboard open, dismissal). */
38
+ ContextMenuDataAttributes["instant"] = "data-instant";
39
+ return ContextMenuDataAttributes;
40
+ }({});
41
+ //#endregion
42
+ export { CONTEXT_MENU_SLOTS, ContextMenuDataAttributes };
@@ -0,0 +1,2 @@
1
+ import { ContextMenu } from "./context-menu.js";
2
+ import { ContextMenuDataAttributes } from "./context-menu.slots.js";
@@ -0,0 +1,56 @@
1
+ import { Button } from "../button/button.js";
2
+ import { CopyButtonPartProps, CopyButtonRootPropsArgs, rootProps } from "./copy-button.props.js";
3
+ import { ReactElement } from "react";
4
+
5
+ //#region src/components/copy-button/copy-button.d.ts
6
+ /**
7
+ * A clipboard {@link Button} on steroids. It owns the copy behaviour — a glyph that crossfades from
8
+ * clipboard to a check on success, a `data-copied` hook, and a state-aware `aria-label` from the labels
9
+ * (English defaults, so a consuming app can route them through its own i18n) — and is otherwise a plain
10
+ * Noctis `Button`. It sets no opinionated `variant`/`size`/`iconOnly`, so it drops into any context: a
11
+ * ghost icon in a code block, a `secondary` "Copy link" with a visible label, a primary action.
12
+ * `getText` is resolved at click time so it can read live DOM; everything else forwards to `Button`.
13
+ *
14
+ * Styling is precompiled in `copy-button.css`, keyed off the prefixed `data-slot` anchors
15
+ * (`noctis-code-copy*`) plus the per-glyph `data-glyph`/`data-copied` the crossfade rules read; the
16
+ * control chrome is the wrapped `Button`'s. The icon-only code affordance reads the `code-copy` size
17
+ * internal so it aligns with the code tab strip (the cross-component coupling that used to live in
18
+ * `code-block`), while a non-icon CopyButton stays unsized.
19
+ *
20
+ * @see {@link CopyButton.Props}
21
+ */
22
+ declare function CopyButtonImpl({
23
+ getText,
24
+ copyLabel,
25
+ copiedLabel,
26
+ children,
27
+ ...props
28
+ }: CopyButton.Props): ReactElement;
29
+ /**
30
+ * The clipboard copy affordance. The component value carries the D12 `props()` escape hatch via
31
+ * `Object.assign`: spread `CopyButton.props({ copied })` onto an element a `<CopyButton>` can't render to
32
+ * stamp the `noctis-code-copy` slot + `data-copied` state the precompiled `copy-button.css` keys off (pair
33
+ * with `Button.props(...)` for the control chrome). It returns a spreadable `{ "data-slot":
34
+ * "noctis-code-copy", ...dataAttrs }` bag — the data-attribute-native escape hatch.
35
+ */
36
+ declare const CopyButton: typeof CopyButtonImpl & {
37
+ props: typeof rootProps;
38
+ };
39
+ /**
40
+ * Per-part prop types. Types-only — it emits no runtime code and merges with the `CopyButton` value
41
+ * above, so `CopyButton` is the component value while `CopyButton.Props` is its prop type and
42
+ * `CopyButton.props` is the escape-hatch helper.
43
+ */
44
+ declare namespace CopyButton {
45
+ type Props = Omit<Button.Props, "onClick" | "aria-label" | "title"> & {
46
+ /** Resolved at click time so it can read live DOM (the active panel's text). */getText: () => string; /** Accessible label at rest. Defaults to `Copy`; override to translate. */
47
+ copyLabel?: string; /** Accessible label just after copying. Defaults to `Copied`; override to translate. */
48
+ copiedLabel?: string;
49
+ };
50
+ /** Argument to the `CopyButton.props(...)` escape-hatch helper. */
51
+ type PropsArgs = CopyButtonRootPropsArgs;
52
+ /** The spreadable data-attribute prop bag `CopyButton.props()` returns (D12). */
53
+ type PartProps = CopyButtonPartProps;
54
+ }
55
+ //#endregion
56
+ export { CopyButton };
@@ -0,0 +1,88 @@
1
+ "use client";
2
+ import { Button } from "../button/button.js";
3
+ import { useCopy } from "../../core/use-copy.js";
4
+ import { COPY_BUTTON_SLOTS } from "./copy-button.slots.js";
5
+ import { glyphBoxProps, glyphProps, rootProps } from "./copy-button.props.js";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/components/copy-button/copy-button.tsx
8
+ /**
9
+ * A clipboard {@link Button} on steroids. It owns the copy behaviour — a glyph that crossfades from
10
+ * clipboard to a check on success, a `data-copied` hook, and a state-aware `aria-label` from the labels
11
+ * (English defaults, so a consuming app can route them through its own i18n) — and is otherwise a plain
12
+ * Noctis `Button`. It sets no opinionated `variant`/`size`/`iconOnly`, so it drops into any context: a
13
+ * ghost icon in a code block, a `secondary` "Copy link" with a visible label, a primary action.
14
+ * `getText` is resolved at click time so it can read live DOM; everything else forwards to `Button`.
15
+ *
16
+ * Styling is precompiled in `copy-button.css`, keyed off the prefixed `data-slot` anchors
17
+ * (`noctis-code-copy*`) plus the per-glyph `data-glyph`/`data-copied` the crossfade rules read; the
18
+ * control chrome is the wrapped `Button`'s. The icon-only code affordance reads the `code-copy` size
19
+ * internal so it aligns with the code tab strip (the cross-component coupling that used to live in
20
+ * `code-block`), while a non-icon CopyButton stays unsized.
21
+ *
22
+ * @see {@link CopyButton.Props}
23
+ */
24
+ function CopyButtonImpl({ getText, copyLabel = "Copy", copiedLabel = "Copied", children, ...props }) {
25
+ const { copied, copy } = useCopy(getText);
26
+ const label = copied ? copiedLabel : copyLabel;
27
+ return /* @__PURE__ */ jsxs(Button, {
28
+ ...props,
29
+ "data-slot": COPY_BUTTON_SLOTS.root,
30
+ "data-copied": copied || void 0,
31
+ onClick: copy,
32
+ "aria-label": label,
33
+ title: label,
34
+ children: [/* @__PURE__ */ jsx(CopyCheckGlyph, { copied }), children]
35
+ });
36
+ }
37
+ /**
38
+ * Two stacked glyphs in one box that crossfade on `copied` — clipboard at rest, a check after. Each glyph
39
+ * is self-contained: it carries its own `data-glyph` (clipboard|check) **and** `data-copied`, so the
40
+ * crossfade rules in `copy-button.css` key off the glyph's own attributes, never a descendant
41
+ * `[data-copied] …` selector. Sized on the `sm` icon step via the `--_code-copy-glyph-size` internal.
42
+ */
43
+ function CopyCheckGlyph({ copied }) {
44
+ return /* @__PURE__ */ jsxs("span", {
45
+ ...glyphBoxProps(),
46
+ children: [/* @__PURE__ */ jsxs("svg", {
47
+ viewBox: "0 0 24 24",
48
+ fill: "none",
49
+ stroke: "currentColor",
50
+ strokeWidth: "1.7",
51
+ "aria-hidden": true,
52
+ ...glyphProps({
53
+ glyph: "clipboard",
54
+ copied
55
+ }),
56
+ children: [/* @__PURE__ */ jsx("rect", {
57
+ x: "9",
58
+ y: "9",
59
+ width: "13",
60
+ height: "13",
61
+ rx: "2"
62
+ }), /* @__PURE__ */ jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })]
63
+ }), /* @__PURE__ */ jsx("svg", {
64
+ viewBox: "0 0 24 24",
65
+ fill: "none",
66
+ stroke: "currentColor",
67
+ strokeWidth: "2",
68
+ strokeLinecap: "round",
69
+ strokeLinejoin: "round",
70
+ "aria-hidden": true,
71
+ ...glyphProps({
72
+ glyph: "check",
73
+ copied
74
+ }),
75
+ children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
76
+ })]
77
+ });
78
+ }
79
+ /**
80
+ * The clipboard copy affordance. The component value carries the D12 `props()` escape hatch via
81
+ * `Object.assign`: spread `CopyButton.props({ copied })` onto an element a `<CopyButton>` can't render to
82
+ * stamp the `noctis-code-copy` slot + `data-copied` state the precompiled `copy-button.css` keys off (pair
83
+ * with `Button.props(...)` for the control chrome). It returns a spreadable `{ "data-slot":
84
+ * "noctis-code-copy", ...dataAttrs }` bag — the data-attribute-native escape hatch.
85
+ */
86
+ const CopyButton = Object.assign(CopyButtonImpl, { props: rootProps });
87
+ //#endregion
88
+ export { CopyButton };
@@ -0,0 +1,27 @@
1
+ //#region src/components/copy-button/copy-button.props.d.ts
2
+ /** A spreadable data-attribute prop bag — the shape every `CopyButton.*.props()` returns. */
3
+ type CopyButtonPartProps = {
4
+ /** The slot value the matching `copy-button.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 (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 the root `props(...)` — the post-copy state the affordance carries. */
14
+ interface CopyButtonRootPropsArgs extends BasePropsArgs {
15
+ /** Present for the brief window after a successful copy, while the glyph shows the check. */
16
+ copied?: boolean;
17
+ }
18
+ /**
19
+ * Root prop bag: the `noctis-code-copy` slot anchor plus the `data-copied` state. The escape hatch for an
20
+ * element a `<CopyButton>` can't render — pair with `Button.props(...)` for the control chrome.
21
+ */
22
+ declare function rootProps({
23
+ copied,
24
+ className
25
+ }?: CopyButtonRootPropsArgs): CopyButtonPartProps;
26
+ //#endregion
27
+ export { CopyButtonPartProps, CopyButtonRootPropsArgs, rootProps };
@@ -0,0 +1,51 @@
1
+ import { COPY_BUTTON_SLOTS } from "./copy-button.slots.js";
2
+ //#region src/components/copy-button/copy-button.props.ts
3
+ /**
4
+ * The D12 unified variant contract for CopyButton — a per-part set of `props(...)` builders that each
5
+ * return a **spreadable props object** of the form `{ "data-slot": "noctis-code-copy<part>", ...dataAttrs }`,
6
+ * 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
+ * `copy-button.css` keys every rule off it (plus the per-glyph `data-glyph`/`data-copied`) — so spreading
10
+ * a part's `props()` onto a *foreign* element styles it as that part:
11
+ *
12
+ * <span {...CopyButton.Glyph.props({ glyph: "check", copied: true })} />
13
+ * // → <span data-slot="noctis-code-copy-glyph" data-glyph="check" data-copied="true">
14
+ *
15
+ * The escape hatch carries no className (styling is attribute-driven); an optional `className`
16
+ * passthrough is accepted and forwarded verbatim. The same slot→attribute mapping is emitted as data from
17
+ * the token graph (`generated/declarations.json`) so non-React / agent consumers can hand-write the markup
18
+ * from the docs.
19
+ */
20
+ const withClassName = (bag, className) => className === void 0 ? bag : {
21
+ ...bag,
22
+ className
23
+ };
24
+ /**
25
+ * Root prop bag: the `noctis-code-copy` slot anchor plus the `data-copied` state. The escape hatch for an
26
+ * element a `<CopyButton>` can't render — pair with `Button.props(...)` for the control chrome.
27
+ */
28
+ function rootProps({ copied, className } = {}) {
29
+ return withClassName({
30
+ "data-slot": COPY_BUTTON_SLOTS.root,
31
+ "data-copied": copied ? "true" : void 0
32
+ }, className);
33
+ }
34
+ /** Glyph-box prop bag: just the slot anchor (the stacked-glyph box; size flows from the `--_code-copy-glyph-size` internal). */
35
+ function glyphBoxProps({ className } = {}) {
36
+ return withClassName({ "data-slot": COPY_BUTTON_SLOTS.glyphBox }, className);
37
+ }
38
+ /**
39
+ * Glyph prop bag: the slot anchor plus the per-glyph `data-glyph` and `data-copied`. Both are stamped on
40
+ * the glyph itself so the crossfade rule keys off the glyph's own attributes — never a descendant
41
+ * `[data-copied] …` selector (the over-scoping that bit search-dialog/code-block).
42
+ */
43
+ function glyphProps({ glyph, copied, className }) {
44
+ return withClassName({
45
+ "data-slot": COPY_BUTTON_SLOTS.glyph,
46
+ "data-glyph": glyph,
47
+ "data-copied": copied ? "true" : void 0
48
+ }, className);
49
+ }
50
+ //#endregion
51
+ export { glyphBoxProps, glyphProps, rootProps };
@@ -0,0 +1,20 @@
1
+ //#region src/components/copy-button/copy-button.slots.d.ts
2
+ /**
3
+ * The data attributes `CopyButton` (and the `Button` it renders) expose for styling and testing. Each
4
+ * member's value is the attribute name and its JSDoc is the description; the docs API reference reads
5
+ * this enum directly, so the documented attributes can't drift from the component.
6
+ */
7
+ declare enum CopyButtonDataAttributes {
8
+ /** Marks the rendered element as the copy affordance for styling and testing hooks. */
9
+ slot = "data-slot",
10
+ /**
11
+ * Present for the brief window after a successful copy, while the glyph shows the check. Stamped on
12
+ * the root (a test/host hook) **and** on each glyph (self-contained — the crossfade rules key off the
13
+ * glyph's own `data-copied`, never a descendant `[data-copied] …` selector).
14
+ */
15
+ copied = "data-copied",
16
+ /** Which glyph a `code-copy-glyph` element paints — `clipboard` (at rest) or `check` (after copy). */
17
+ glyph = "data-glyph"
18
+ }
19
+ //#endregion
20
+ export { CopyButtonDataAttributes };
@@ -0,0 +1,36 @@
1
+ //#region src/components/copy-button/copy-button.slots.ts
2
+ /**
3
+ * The slot vocabulary `CopyButton` stamps as its `data-slot`. The authored source the orchestration
4
+ * file reads from, kebab-cased `{component}-{part}`; SLOTS.md still generates from the token-graph
5
+ * declarations (which carry only the `code-copy` root anatomy — the glyph box/glyphs are precompiled
6
+ * descendants of the root, keyed off their own slot + `data-glyph`/`data-copied`, not graph anatomy).
7
+ *
8
+ * Migrated to the single-`data-slot` anchor: every value is `noctis-`-prefixed (matching the
9
+ * `slotPrefix: "noctis"` on the `code-copy` graph declaration), so the precompiled `copy-button.css`
10
+ * targets `[data-slot="noctis-code-copy*"]`.
11
+ */
12
+ const COPY_BUTTON_SLOTS = {
13
+ root: "noctis-code-copy",
14
+ glyphBox: "noctis-code-copy-glyph-box",
15
+ glyph: "noctis-code-copy-glyph"
16
+ };
17
+ /**
18
+ * The data attributes `CopyButton` (and the `Button` it renders) expose for styling and testing. Each
19
+ * member's value is the attribute name and its JSDoc is the description; the docs API reference reads
20
+ * this enum directly, so the documented attributes can't drift from the component.
21
+ */
22
+ let CopyButtonDataAttributes = /* @__PURE__ */ function(CopyButtonDataAttributes) {
23
+ /** Marks the rendered element as the copy affordance for styling and testing hooks. */
24
+ CopyButtonDataAttributes["slot"] = "data-slot";
25
+ /**
26
+ * Present for the brief window after a successful copy, while the glyph shows the check. Stamped on
27
+ * the root (a test/host hook) **and** on each glyph (self-contained — the crossfade rules key off the
28
+ * glyph's own `data-copied`, never a descendant `[data-copied] …` selector).
29
+ */
30
+ CopyButtonDataAttributes["copied"] = "data-copied";
31
+ /** Which glyph a `code-copy-glyph` element paints — `clipboard` (at rest) or `check` (after copy). */
32
+ CopyButtonDataAttributes["glyph"] = "data-glyph";
33
+ return CopyButtonDataAttributes;
34
+ }({});
35
+ //#endregion
36
+ export { COPY_BUTTON_SLOTS, CopyButtonDataAttributes };
@@ -0,0 +1,2 @@
1
+ import { CopyButton } from "./copy-button.js";
2
+ import { CopyButtonDataAttributes } from "./copy-button.slots.js";
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { createContext, use } from "react";
3
+ //#region src/components/dialog/dialog.context.ts
4
+ const DialogContext = createContext(null);
5
+ const DialogProvider = DialogContext.Provider;
6
+ /**
7
+ * Read the enclosing `Dialog.Content`'s shared config, or `null` when the parts are composed directly
8
+ * (a granular `Portal` + `Popup` without `Content`). A part outside a `Content` is valid, so this
9
+ * returns `null` rather than throwing — the reader falls back to its own defaults.
10
+ */
11
+ function useDialogContext() {
12
+ return use(DialogContext);
13
+ }
14
+ //#endregion
15
+ export { DialogProvider, useDialogContext };