@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,66 @@
1
+ import { ToastPlacement, ToastType } from "./toast.types.js";
2
+
3
+ //#region src/components/toast/toast.props.d.ts
4
+ /** A spreadable data-attribute prop bag — the shape every `Toast.*.props()` returns. */
5
+ type ToastPartProps = {
6
+ /** The slot value the matching `toast.css` rules anchor on. */"data-slot": string; /** Forwarded verbatim — styling is attribute-driven, so this is an optional consumer passthrough. */
7
+ className?: string; /** A data-attribute present (a value or empty string) or absent (`undefined`); never `false`. */
8
+ [attr: `data-${string}`]: string | undefined;
9
+ };
10
+ /** Common shape: every part's `.props()` accepts an optional `className` passthrough. */
11
+ interface BasePropsArgs {
12
+ /** Forwarded verbatim onto the returned prop bag. */
13
+ className?: string;
14
+ }
15
+ /** Argument to `Toast.Root.props(...)` — the status type the root's accent and parts key their look off. */
16
+ interface ToastRootPropsArgs extends BasePropsArgs {
17
+ /** The status type driving the leading status icon's colour. Omit for a neutral toast. */
18
+ type?: ToastType;
19
+ }
20
+ /** Argument to `Toast.Viewport.props(...)` — the docked placement the viewport's insets key off. */
21
+ interface ToastViewportPropsArgs extends BasePropsArgs {
22
+ /** Where the viewport docks on screen. Omit for `bottom-end`. */
23
+ placement?: ToastPlacement;
24
+ }
25
+ /** Argument to a stateless part's `.props(...)` — no inputs of its own; look flows from the root. */
26
+ type ToastStatelessPropsArgs = BasePropsArgs;
27
+ /** Viewport prop bag: slot anchor plus the optional `data-placement` the docked insets read. */
28
+ declare function viewportProps({
29
+ placement,
30
+ className
31
+ }?: ToastViewportPropsArgs): ToastPartProps;
32
+ /** Root prop bag: slot anchor plus the optional `data-type` the accent re-point reads. */
33
+ declare function rootProps({
34
+ type,
35
+ className
36
+ }?: ToastRootPropsArgs): ToastPartProps;
37
+ /** Content prop bag: just the slot anchor. */
38
+ declare function contentProps({
39
+ className
40
+ }?: ToastStatelessPropsArgs): ToastPartProps;
41
+ /** Title prop bag: just the slot anchor. */
42
+ declare function titleProps({
43
+ className
44
+ }?: ToastStatelessPropsArgs): ToastPartProps;
45
+ /** Description prop bag: just the slot anchor. */
46
+ declare function descriptionProps({
47
+ className
48
+ }?: ToastStatelessPropsArgs): ToastPartProps;
49
+ /** Icon prop bag: just the slot anchor (it inherits the toast's status colour). */
50
+ declare function iconProps({
51
+ className
52
+ }?: ToastStatelessPropsArgs): ToastPartProps;
53
+ /** Spinner prop bag: just the slot anchor (the loading-phase spinner; neutral, CSS-driven). */
54
+ declare function spinnerProps({
55
+ className
56
+ }?: ToastStatelessPropsArgs): ToastPartProps;
57
+ /** Action prop bag: just the slot anchor (it composes with a Button through `render`). */
58
+ declare function actionProps({
59
+ className
60
+ }?: ToastStatelessPropsArgs): ToastPartProps;
61
+ /** Close prop bag: just the slot anchor (it composes with a Button through `render`). */
62
+ declare function closeProps({
63
+ className
64
+ }?: ToastStatelessPropsArgs): ToastPartProps;
65
+ //#endregion
66
+ export { ToastPartProps, ToastRootPropsArgs, ToastViewportPropsArgs, actionProps, closeProps, contentProps, descriptionProps, iconProps, rootProps, spinnerProps, titleProps, viewportProps };
@@ -0,0 +1,74 @@
1
+ import { TOAST_SLOTS } from "./toast.slots.js";
2
+ //#region src/components/toast/toast.props.ts
3
+ /**
4
+ * The D12 unified variant contract for Toast — each compound part exposes a `props(...)` builder
5
+ * returning a **spreadable props object** of the form `{ "data-slot": "noctis-toast-<part>", ...attrs }`,
6
+ * derived from the part's inputs. Under the single-`data-slot` anchor model the `data-slot` (plus
7
+ * `data-type` on the root) is the only styling hook needed — `toast.css` keys every rule off it — so
8
+ * spreading a part's `props()` onto a *foreign* element styles it as that part:
9
+ *
10
+ * <li {...Toast.Root.props({ type: "success" })} />
11
+ * // → <li data-slot="noctis-toast" data-type="success">
12
+ *
13
+ * The escape hatch carries no className (styling is attribute-driven); an optional `className`
14
+ * passthrough is accepted and forwarded verbatim. The same input→data-attribute→value mapping is
15
+ * emitted as data from the token graph (`generated/declarations.json` → `variantSchema`) so non-React /
16
+ * agent consumers can hand-write the markup from the docs.
17
+ */
18
+ /**
19
+ * Resolve the logical default swipe pair — "toward the docked bottom-end corner" — to the physical pair
20
+ * Base UI understands: `down` plus the inline-end edge, which is `right` in LTR and `left` in RTL. This
21
+ * is the RTL-correctness seam: a `show()` toast docked bottom-end swipes toward its corner in either
22
+ * direction without the consumer hard-coding `right`.
23
+ */
24
+ function resolveSwipeDirection(direction) {
25
+ return ["down", direction === "rtl" ? "left" : "right"];
26
+ }
27
+ const withClassName = (bag, className) => className === void 0 ? bag : {
28
+ ...bag,
29
+ className
30
+ };
31
+ /** Viewport prop bag: slot anchor plus the optional `data-placement` the docked insets read. */
32
+ function viewportProps({ placement, className } = {}) {
33
+ return withClassName({
34
+ "data-slot": TOAST_SLOTS.viewport,
35
+ "data-placement": placement
36
+ }, className);
37
+ }
38
+ /** Root prop bag: slot anchor plus the optional `data-type` the accent re-point reads. */
39
+ function rootProps({ type, className } = {}) {
40
+ return withClassName({
41
+ "data-slot": TOAST_SLOTS.root,
42
+ "data-type": type
43
+ }, className);
44
+ }
45
+ /** Content prop bag: just the slot anchor. */
46
+ function contentProps({ className } = {}) {
47
+ return withClassName({ "data-slot": TOAST_SLOTS.content }, className);
48
+ }
49
+ /** Title prop bag: just the slot anchor. */
50
+ function titleProps({ className } = {}) {
51
+ return withClassName({ "data-slot": TOAST_SLOTS.title }, className);
52
+ }
53
+ /** Description prop bag: just the slot anchor. */
54
+ function descriptionProps({ className } = {}) {
55
+ return withClassName({ "data-slot": TOAST_SLOTS.description }, className);
56
+ }
57
+ /** Icon prop bag: just the slot anchor (it inherits the toast's status colour). */
58
+ function iconProps({ className } = {}) {
59
+ return withClassName({ "data-slot": TOAST_SLOTS.icon }, className);
60
+ }
61
+ /** Spinner prop bag: just the slot anchor (the loading-phase spinner; neutral, CSS-driven). */
62
+ function spinnerProps({ className } = {}) {
63
+ return withClassName({ "data-slot": TOAST_SLOTS.spinner }, className);
64
+ }
65
+ /** Action prop bag: just the slot anchor (it composes with a Button through `render`). */
66
+ function actionProps({ className } = {}) {
67
+ return withClassName({ "data-slot": TOAST_SLOTS.action }, className);
68
+ }
69
+ /** Close prop bag: just the slot anchor (it composes with a Button through `render`). */
70
+ function closeProps({ className } = {}) {
71
+ return withClassName({ "data-slot": TOAST_SLOTS.close }, className);
72
+ }
73
+ //#endregion
74
+ export { actionProps, closeProps, contentProps, descriptionProps, iconProps, resolveSwipeDirection, rootProps, spinnerProps, titleProps, viewportProps };
@@ -0,0 +1,30 @@
1
+ //#region src/components/toast/toast.slots.d.ts
2
+ /**
3
+ * The `data-*` attributes a `Toast` carries, paired with its slots for conditional styling. Base UI
4
+ * stamps the live state on each toast root; each member's value is the attribute name and its JSDoc is
5
+ * the description the docs attributes table renders.
6
+ */
7
+ declare enum ToastDataAttributes {
8
+ /** The styling/testing hook every rendered part carries. */
9
+ slot = "data-slot",
10
+ /** On the root: the status type (`info` · `success` · `warning` · `danger` · `loading` · `error`) driving the accent. */
11
+ type = "data-type",
12
+ /** On the viewport: the docked placement (`bottom-end` · `bottom-center` · `bottom-start` · `top-*`). */
13
+ placement = "data-placement",
14
+ /** On the viewport (and each root/content while it is): present while the stack is fanned out (hover/focus). */
15
+ expanded = "data-expanded",
16
+ /** On the content: present while the toast sits behind the frontmost one in the collapsed stack. */
17
+ behind = "data-behind",
18
+ /** On the root: present when the toast was pushed past the provider's `limit` (kept mounted but inert). */
19
+ limited = "data-limited",
20
+ /** On the root: present while the toast is being swiped to dismiss. */
21
+ swiping = "data-swiping",
22
+ /** On the root: the physical axis the toast was swiped along (`up` · `down` · `left` · `right`); the default pair is RTL-resolved from the docked corner. */
23
+ swipeDirection = "data-swipe-direction",
24
+ /** On the root: present for the first animation frame after the toast mounts (the enter transition). */
25
+ startingStyle = "data-starting-style",
26
+ /** On the root: present while the toast animates out before it unmounts (the exit transition). */
27
+ endingStyle = "data-ending-style"
28
+ }
29
+ //#endregion
30
+ export { ToastDataAttributes };
@@ -0,0 +1,49 @@
1
+ //#region src/components/toast/toast.slots.ts
2
+ /**
3
+ * The slot vocabulary every `Toast` part stamps as its `data-slot`. The authored source the
4
+ * orchestration file reads from, kebab-cased `{component}-{part}` and `noctis-`-prefixed; SLOTS.md and
5
+ * the token graph generate the same anatomy. `Toast.Provider` wraps Base UI's `Toast.Provider` without
6
+ * rendering an element of its own, so it stamps no slot and does not appear here, keeping the const
7
+ * parity-true to the rendered DOM.
8
+ */
9
+ const TOAST_SLOTS = {
10
+ viewport: "noctis-toast-viewport",
11
+ root: "noctis-toast",
12
+ content: "noctis-toast-content",
13
+ title: "noctis-toast-title",
14
+ description: "noctis-toast-description",
15
+ icon: "noctis-toast-icon",
16
+ spinner: "noctis-toast-spinner",
17
+ action: "noctis-toast-action",
18
+ close: "noctis-toast-close"
19
+ };
20
+ /**
21
+ * The `data-*` attributes a `Toast` carries, paired with its slots for conditional styling. Base UI
22
+ * stamps the live state on each toast root; each member's value is the attribute name and its JSDoc is
23
+ * the description the docs attributes table renders.
24
+ */
25
+ let ToastDataAttributes = /* @__PURE__ */ function(ToastDataAttributes) {
26
+ /** The styling/testing hook every rendered part carries. */
27
+ ToastDataAttributes["slot"] = "data-slot";
28
+ /** On the root: the status type (`info` · `success` · `warning` · `danger` · `loading` · `error`) driving the accent. */
29
+ ToastDataAttributes["type"] = "data-type";
30
+ /** On the viewport: the docked placement (`bottom-end` · `bottom-center` · `bottom-start` · `top-*`). */
31
+ ToastDataAttributes["placement"] = "data-placement";
32
+ /** On the viewport (and each root/content while it is): present while the stack is fanned out (hover/focus). */
33
+ ToastDataAttributes["expanded"] = "data-expanded";
34
+ /** On the content: present while the toast sits behind the frontmost one in the collapsed stack. */
35
+ ToastDataAttributes["behind"] = "data-behind";
36
+ /** On the root: present when the toast was pushed past the provider's `limit` (kept mounted but inert). */
37
+ ToastDataAttributes["limited"] = "data-limited";
38
+ /** On the root: present while the toast is being swiped to dismiss. */
39
+ ToastDataAttributes["swiping"] = "data-swiping";
40
+ /** On the root: the physical axis the toast was swiped along (`up` · `down` · `left` · `right`); the default pair is RTL-resolved from the docked corner. */
41
+ ToastDataAttributes["swipeDirection"] = "data-swipe-direction";
42
+ /** On the root: present for the first animation frame after the toast mounts (the enter transition). */
43
+ ToastDataAttributes["startingStyle"] = "data-starting-style";
44
+ /** On the root: present while the toast animates out before it unmounts (the exit transition). */
45
+ ToastDataAttributes["endingStyle"] = "data-ending-style";
46
+ return ToastDataAttributes;
47
+ }({});
48
+ //#endregion
49
+ export { TOAST_SLOTS, ToastDataAttributes };
@@ -0,0 +1,19 @@
1
+ //#region src/components/toast/toast.types.d.ts
2
+ /**
3
+ * The Toast status type — the `type` axis Base UI stamps as `data-type` on each toast root, re-pointing
4
+ * the leading status icon (and the status-typed parts) to the matching status role. Mirrors the
5
+ * status families in `@stridge/noctis-design-tokens` (`info` · `success` · `warning` · `danger`), plus
6
+ * `loading` for the async-pending phase (neutral, no chroma — it carries the spinner). Omit it for a
7
+ * neutral toast (a plain toast is not a signal). Base UI's `promise()` also stamps `success` and a
8
+ * private `error` value as a promise settles; `error` is re-pointed to the `danger` role in the token
9
+ * layer but is not part of the helper-facing union.
10
+ */
11
+ type ToastType = "info" | "success" | "warning" | "danger" | "loading";
12
+ /**
13
+ * Where the toast viewport docks on screen — a logical placement (`*-start`/`*-end` flip under RTL).
14
+ * `Toast.Viewport` stamps the chosen value as `data-placement`, which drives the viewport's logical
15
+ * insets and the toasts' enter direction (top placements enter from above). Defaults to `bottom-end`.
16
+ */
17
+ type ToastPlacement = "bottom-end" | "bottom-center" | "bottom-start" | "top-end" | "top-center" | "top-start";
18
+ //#endregion
19
+ export { ToastPlacement, ToastType };
@@ -0,0 +1,2 @@
1
+ import { Toggle, ToggleGroup } from "./toggle.js";
2
+ import { ToggleDataAttributes } from "./toggle.slots.js";
@@ -0,0 +1,11 @@
1
+ //#region src/components/toggle/toggle.context.d.ts
2
+ /**
3
+ * Visual emphasis, mirroring Button — all quiet when off, each lighting a different fill when pressed:
4
+ * `ghost` (transparent, fills neutral), `accent` (fills the accent), `primary` (fills the bold primary),
5
+ * or `outline` (a resting border that fills primary when pressed).
6
+ */
7
+ type ToggleVariant = "ghost" | "accent" | "primary" | "outline";
8
+ /** Control height and type — `xs`, `sm`, `md`, or `lg`; the scale mirrors Button. */
9
+ type ToggleSize = "xs" | "sm" | "md" | "lg";
10
+ //#endregion
11
+ export { ToggleSize, ToggleVariant };
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { createContext, use } from "react";
3
+ //#region src/components/toggle/toggle.context.ts
4
+ const ToggleGroupContext = createContext(null);
5
+ const ToggleGroupProvider = ToggleGroupContext.Provider;
6
+ /**
7
+ * Read the enclosing `ToggleGroup`'s shared look, or `null` for a standalone `Toggle`. A standalone
8
+ * toggle is valid, so this never throws — the part falls back to its own `variant`/`size` props.
9
+ */
10
+ function useToggleGroup() {
11
+ return use(ToggleGroupContext);
12
+ }
13
+ //#endregion
14
+ export { ToggleGroupProvider, useToggleGroup };
@@ -0,0 +1,136 @@
1
+ import { IconGlyph } from "../../icons/glyphs.js";
2
+ import { toggle_d_exports } from "../../primitives/toggle.js";
3
+ import { toggle_group_d_exports } from "../../primitives/toggle-group.js";
4
+ import { ToggleSize, ToggleVariant } from "./toggle.context.js";
5
+ import { ToggleGroupPropsArgs, TogglePartProps, TogglePropsArgs, groupProps, rootProps } from "./toggle.props.js";
6
+ import { ReactElement, ReactNode } from "react";
7
+
8
+ //#region src/components/toggle/toggle.d.ts
9
+ /**
10
+ * A two-state button that is either off or pressed (on), built on Base UI's `Toggle`. Renders a native
11
+ * `<button[aria-pressed]>`, so it is fully keyboard-operable and announces its pressed state to
12
+ * assistive tech. Use it standalone for a single on/off control, or inside a {@link ToggleGroup} to
13
+ * share a look and coordinate selection; an unset `variant`/`size` is inherited from the group.
14
+ *
15
+ * Every variant is quiet when off and fills only when pressed: `ghost` (default) fills the neutral
16
+ * selected role, `accent` the indigo accent, `primary` the bold primary, and `outline` carries a resting
17
+ * border that fills primary when pressed. The variants and the `xs|sm|md|lg` sizes mirror Button, so the
18
+ * two action controls feel identical under the finger — pass a leading/trailing glyph with `startIcon`/
19
+ * `endIcon`, or square it for a single icon with `iconOnly` (give it an `aria-label`). Styling is
20
+ * precompiled in `toggle.css`, keyed off the `data-slot="noctis-toggle"` anchor plus the
21
+ * `data-variant`/`data-size`/`data-pressed` recipe.
22
+ *
23
+ * @see {@link Toggle.Props}
24
+ */
25
+ declare function ToggleImpl({
26
+ variant: variantProp,
27
+ size: sizeProp,
28
+ iconOnly: iconOnlyProp,
29
+ startIcon,
30
+ endIcon,
31
+ className,
32
+ children,
33
+ ...props
34
+ }: Toggle.Props): ReactElement;
35
+ /**
36
+ * Groups a series of toggles, sharing their `variant`/`size`/`iconOnly` and coordinating selection — a
37
+ * simple gap-separated row. Single-select by default (pressing one releases the others); set `multiple`
38
+ * to let several be pressed at once (a formatting toolbar). Becomes a `role="toolbar"` at 3+ toggles (an
39
+ * `aria-label` is then required), and stays `role="group"` below that, per the APG. Works controlled
40
+ * (`value` + `onValueChange`) or uncontrolled (`defaultValue`), and is arrow-key navigable, RTL-aware,
41
+ * and roving-focus managed by Base UI.
42
+ */
43
+ declare function ToggleGroupImpl({
44
+ variant,
45
+ size,
46
+ iconOnly,
47
+ multiple,
48
+ className,
49
+ children,
50
+ ...props
51
+ }: ToggleGroup.Props): ReactElement;
52
+ /**
53
+ * A two-state pressable button. The component value carries the D12 `props()` escape hatch via
54
+ * `Object.assign`: spread `Toggle.props({ variant, size, pressed, disabled })` onto a foreign element to
55
+ * style it as a toggle. It returns a spreadable `{ "data-slot": "noctis-toggle", ...dataAttrs }` bag the
56
+ * precompiled `toggle.css` keys off.
57
+ */
58
+ declare const Toggle: typeof ToggleImpl & {
59
+ props: typeof rootProps;
60
+ };
61
+ /**
62
+ * A group of toggles sharing a look and coordinating selection. `ToggleGroup.props({ variant, size })`
63
+ * returns its spreadable prop bag.
64
+ */
65
+ declare const ToggleGroup: typeof ToggleGroupImpl & {
66
+ props: typeof groupProps;
67
+ };
68
+ /**
69
+ * Per-part prop and variant types. Merges with the `Toggle` function above, so `Toggle` is the component
70
+ * value while `Toggle.Props` is its prop type and `Toggle.props` is the escape-hatch helper.
71
+ */
72
+ declare namespace Toggle {
73
+ type Props = Omit<toggle_d_exports.Toggle.Props, "className" | "children"> & {
74
+ /**
75
+ * Visual emphasis — `ghost` (fills neutral), `accent` (fills the accent), `primary` (fills the
76
+ * bold primary), or `outline` (resting border, fills primary when pressed). Inherited from an
77
+ * enclosing `ToggleGroup` when unset.
78
+ * @default "ghost"
79
+ */
80
+ variant?: ToggleVariant;
81
+ /**
82
+ * Size scale — height, padding, and text. Inherited from an enclosing `ToggleGroup` when unset.
83
+ * @default "md"
84
+ */
85
+ size?: ToggleSize;
86
+ /**
87
+ * Square the toggle for a single icon. Provide an `aria-label` — there is no visible text to name it.
88
+ * Inherited from an enclosing `ToggleGroup` when unset.
89
+ * @default false
90
+ */
91
+ iconOnly?: boolean; /** Leading glyph, before the label. */
92
+ startIcon?: IconGlyph; /** Trailing glyph, after the label. */
93
+ endIcon?: IconGlyph; /** The toggle's content. */
94
+ children?: ReactNode; /** Merged onto the rendered button's class list. */
95
+ className?: string;
96
+ };
97
+ /** Visual emphasis — `ghost`, `accent`, `primary`, or `outline`. */
98
+ type Variant = ToggleVariant;
99
+ /** Height/padding/text scale. */
100
+ type Size = ToggleSize;
101
+ /** Argument to the `Toggle.props(...)` escape-hatch helper. */
102
+ type PropsArgs = TogglePropsArgs;
103
+ /** The spreadable data-attribute prop bag every `Toggle(.Group)?.props()` returns (D12). */
104
+ type PartProps = TogglePartProps;
105
+ type State = toggle_d_exports.Toggle.State;
106
+ }
107
+ /**
108
+ * Per-part prop types for the group. Merges with the `ToggleGroup` function above.
109
+ */
110
+ declare namespace ToggleGroup {
111
+ type Props = Omit<toggle_group_d_exports.ToggleGroup.Props, "className" | "children"> & {
112
+ /**
113
+ * Visual emphasis shared with the toggles inside — `ghost`, `accent`, `primary`, or `outline`.
114
+ * @default "ghost"
115
+ */
116
+ variant?: ToggleVariant;
117
+ /**
118
+ * Size scale shared with the toggles inside.
119
+ * @default "md"
120
+ */
121
+ size?: ToggleSize;
122
+ /**
123
+ * Square every toggle in the group for a single icon — a toolbar of icon toggles in one prop. A
124
+ * toggle can still set `iconOnly` itself to opt out. Each needs an `aria-label`.
125
+ * @default false
126
+ */
127
+ iconOnly?: boolean; /** The `Toggle`s in the group. */
128
+ children?: ReactNode; /** Merged onto the rendered group's class list. */
129
+ className?: string;
130
+ };
131
+ /** Argument to the `ToggleGroup.props(...)` escape-hatch helper. */
132
+ type PropsArgs = ToggleGroupPropsArgs;
133
+ type State = toggle_group_d_exports.ToggleGroup.State;
134
+ }
135
+ //#endregion
136
+ export { Toggle, ToggleGroup };
@@ -0,0 +1,101 @@
1
+ "use client";
2
+ import { Icon } from "../../icons/icon.js";
3
+ import { toggle_exports } from "../../primitives/toggle.js";
4
+ import { toggle_group_exports } from "../../primitives/toggle-group.js";
5
+ import { ToggleGroupProvider, useToggleGroup } from "./toggle.context.js";
6
+ import { TOGGLE_SLOTS } from "./toggle.slots.js";
7
+ import { groupProps, rootProps } from "./toggle.props.js";
8
+ import { Children } from "react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ //#region src/components/toggle/toggle.tsx
11
+ /** The icon size that pairs with each toggle size. */
12
+ const GLYPH_SIZE = {
13
+ xs: "sm",
14
+ sm: "sm",
15
+ md: "md",
16
+ lg: "md"
17
+ };
18
+ /**
19
+ * A two-state button that is either off or pressed (on), built on Base UI's `Toggle`. Renders a native
20
+ * `<button[aria-pressed]>`, so it is fully keyboard-operable and announces its pressed state to
21
+ * assistive tech. Use it standalone for a single on/off control, or inside a {@link ToggleGroup} to
22
+ * share a look and coordinate selection; an unset `variant`/`size` is inherited from the group.
23
+ *
24
+ * Every variant is quiet when off and fills only when pressed: `ghost` (default) fills the neutral
25
+ * selected role, `accent` the indigo accent, `primary` the bold primary, and `outline` carries a resting
26
+ * border that fills primary when pressed. The variants and the `xs|sm|md|lg` sizes mirror Button, so the
27
+ * two action controls feel identical under the finger — pass a leading/trailing glyph with `startIcon`/
28
+ * `endIcon`, or square it for a single icon with `iconOnly` (give it an `aria-label`). Styling is
29
+ * precompiled in `toggle.css`, keyed off the `data-slot="noctis-toggle"` anchor plus the
30
+ * `data-variant`/`data-size`/`data-pressed` recipe.
31
+ *
32
+ * @see {@link Toggle.Props}
33
+ */
34
+ function ToggleImpl({ variant: variantProp, size: sizeProp, iconOnly: iconOnlyProp, startIcon, endIcon, className, children, ...props }) {
35
+ const group = useToggleGroup();
36
+ const variant = variantProp ?? group?.variant ?? "ghost";
37
+ const size = sizeProp ?? group?.size ?? "md";
38
+ const iconOnly = iconOnlyProp ?? group?.iconOnly ?? false;
39
+ const glyphSize = GLYPH_SIZE[size];
40
+ return /* @__PURE__ */ jsxs(toggle_exports.Toggle, {
41
+ ...props,
42
+ "data-slot": TOGGLE_SLOTS.root,
43
+ "data-variant": variant,
44
+ "data-size": size,
45
+ "data-icon-only": iconOnly ? "true" : void 0,
46
+ className,
47
+ children: [
48
+ startIcon ? /* @__PURE__ */ jsx(Icon, {
49
+ icon: startIcon,
50
+ size: glyphSize
51
+ }) : null,
52
+ children,
53
+ endIcon ? /* @__PURE__ */ jsx(Icon, {
54
+ icon: endIcon,
55
+ size: glyphSize
56
+ }) : null
57
+ ]
58
+ });
59
+ }
60
+ /**
61
+ * Groups a series of toggles, sharing their `variant`/`size`/`iconOnly` and coordinating selection — a
62
+ * simple gap-separated row. Single-select by default (pressing one releases the others); set `multiple`
63
+ * to let several be pressed at once (a formatting toolbar). Becomes a `role="toolbar"` at 3+ toggles (an
64
+ * `aria-label` is then required), and stays `role="group"` below that, per the APG. Works controlled
65
+ * (`value` + `onValueChange`) or uncontrolled (`defaultValue`), and is arrow-key navigable, RTL-aware,
66
+ * and roving-focus managed by Base UI.
67
+ */
68
+ function ToggleGroupImpl({ variant = "ghost", size = "md", iconOnly = false, multiple, className, children, ...props }) {
69
+ return /* @__PURE__ */ jsx(toggle_group_exports.ToggleGroup, {
70
+ ...Children.count(children) >= 3 ? { role: "toolbar" } : {},
71
+ multiple,
72
+ ...props,
73
+ "data-slot": TOGGLE_SLOTS.group,
74
+ "data-variant": variant,
75
+ "data-size": size,
76
+ "data-multiple": multiple ? "true" : void 0,
77
+ className,
78
+ children: /* @__PURE__ */ jsx(ToggleGroupProvider, {
79
+ value: {
80
+ variant,
81
+ size,
82
+ iconOnly
83
+ },
84
+ children
85
+ })
86
+ });
87
+ }
88
+ /**
89
+ * A two-state pressable button. The component value carries the D12 `props()` escape hatch via
90
+ * `Object.assign`: spread `Toggle.props({ variant, size, pressed, disabled })` onto a foreign element to
91
+ * style it as a toggle. It returns a spreadable `{ "data-slot": "noctis-toggle", ...dataAttrs }` bag the
92
+ * precompiled `toggle.css` keys off.
93
+ */
94
+ const Toggle = Object.assign(ToggleImpl, { props: rootProps });
95
+ /**
96
+ * A group of toggles sharing a look and coordinating selection. `ToggleGroup.props({ variant, size })`
97
+ * returns its spreadable prop bag.
98
+ */
99
+ const ToggleGroup = Object.assign(ToggleGroupImpl, { props: groupProps });
100
+ //#endregion
101
+ export { Toggle, ToggleGroup };
@@ -0,0 +1,51 @@
1
+ import { ToggleSize, ToggleVariant } from "./toggle.context.js";
2
+
3
+ //#region src/components/toggle/toggle.props.d.ts
4
+ /** A spreadable data-attribute prop bag — the shape every `Toggle.*.props()` returns. */
5
+ type TogglePartProps = {
6
+ /** The slot value the matching `toggle.css` rules anchor on. */"data-slot": string; /** Forwarded verbatim — styling is attribute-driven, so this is an optional consumer passthrough. */
7
+ className?: string; /** A data-attribute present (empty string) or absent (`undefined`); never `false`. */
8
+ [attr: `data-${string}`]: string | undefined;
9
+ };
10
+ /** Common shape: every part's `.props()` accepts an optional `className` passthrough. */
11
+ interface BasePropsArgs {
12
+ /** Forwarded verbatim onto the returned prop bag. */
13
+ className?: string;
14
+ }
15
+ /** Argument to `Toggle.props(...)` — the toggle's look, size, and pressed/disabled state. */
16
+ interface TogglePropsArgs extends BasePropsArgs {
17
+ /** Visual emphasis — `ghost`, `accent`, `primary`, or `outline` (each fills when pressed). @default "ghost" */
18
+ variant?: ToggleVariant;
19
+ /** Control height and type. @default "md" */
20
+ size?: ToggleSize;
21
+ /** Square the toggle for a single icon (drives the square sizing via `data-icon-only`). */
22
+ iconOnly?: boolean;
23
+ /** Whether this toggle is pressed (drives the selected fill via `data-pressed`). */
24
+ pressed?: boolean;
25
+ /** Whether this toggle is disabled (drives the not-allowed affordance via `data-disabled`). */
26
+ disabled?: boolean;
27
+ }
28
+ /** Argument to `ToggleGroup.props(...)` — the group container, carrying the shared look it stamps. */
29
+ interface ToggleGroupPropsArgs extends BasePropsArgs {
30
+ /** Visual emphasis the group shares with its toggles. @default "ghost" */
31
+ variant?: ToggleVariant;
32
+ /** Control height the group shares with its toggles. @default "md" */
33
+ size?: ToggleSize;
34
+ }
35
+ /** Toggle prop bag: the slot anchor plus the `data-variant`/`data-size`/`data-icon-only`/`data-pressed`/`data-disabled` state. */
36
+ declare function rootProps({
37
+ variant,
38
+ size,
39
+ iconOnly,
40
+ pressed,
41
+ disabled,
42
+ className
43
+ }?: TogglePropsArgs): TogglePartProps;
44
+ /** Group prop bag: the slot anchor plus the `data-variant`/`data-size` its descendant toggles read. */
45
+ declare function groupProps({
46
+ variant,
47
+ size,
48
+ className
49
+ }?: ToggleGroupPropsArgs): TogglePartProps;
50
+ //#endregion
51
+ export { ToggleGroupPropsArgs, TogglePartProps, TogglePropsArgs, groupProps, rootProps };
@@ -0,0 +1,29 @@
1
+ import { TOGGLE_SLOTS } from "./toggle.slots.js";
2
+ //#region src/components/toggle/toggle.props.ts
3
+ /** Stamp a boolean state as a bare data-attribute: present (`""`) when on, absent (`undefined`) when off. */
4
+ const flag = (on) => on ? "" : void 0;
5
+ const withClassName = (bag, className) => className === void 0 ? bag : {
6
+ ...bag,
7
+ className
8
+ };
9
+ /** Toggle prop bag: the slot anchor plus the `data-variant`/`data-size`/`data-icon-only`/`data-pressed`/`data-disabled` state. */
10
+ function rootProps({ variant = "ghost", size = "md", iconOnly, pressed, disabled, className } = {}) {
11
+ return withClassName({
12
+ "data-slot": TOGGLE_SLOTS.root,
13
+ "data-variant": variant,
14
+ "data-size": size,
15
+ "data-icon-only": iconOnly ? "true" : void 0,
16
+ "data-pressed": flag(pressed),
17
+ "data-disabled": flag(disabled)
18
+ }, className);
19
+ }
20
+ /** Group prop bag: the slot anchor plus the `data-variant`/`data-size` its descendant toggles read. */
21
+ function groupProps({ variant = "ghost", size = "md", className } = {}) {
22
+ return withClassName({
23
+ "data-slot": TOGGLE_SLOTS.group,
24
+ "data-variant": variant,
25
+ "data-size": size
26
+ }, className);
27
+ }
28
+ //#endregion
29
+ export { groupProps, rootProps };
@@ -0,0 +1,26 @@
1
+ //#region src/components/toggle/toggle.slots.d.ts
2
+ /**
3
+ * The data attributes `Toggle` (and the Base UI toggle/toggle-group it renders) expose for host-side
4
+ * styling and tests. Slot values mark each rendered element; the state attributes are emitted by Base
5
+ * UI — pair a slot with a state to target, say, only the pressed toggle.
6
+ */
7
+ declare enum ToggleDataAttributes {
8
+ /** The rendered toggle (or group) element. */
9
+ slot = "data-slot",
10
+ /** The visual emphasis — `ghost` (transparent) | `primary` (primary-filled pressed) | `outline` (bordered). */
11
+ variant = "data-variant",
12
+ /** The size scale — `xs` | `sm` | `md` | `lg`; the generated layer keys the per-size internals off it. */
13
+ size = "data-size",
14
+ /** Present on a pressed (on) toggle. */
15
+ pressed = "data-pressed",
16
+ /** Present on a disabled toggle or group. */
17
+ disabled = "data-disabled",
18
+ /** Present on a group drawing the recessed segmented/connected track. */
19
+ attached = "data-attached",
20
+ /** Present on a group that allows several toggles pressed at once. */
21
+ multiple = "data-multiple",
22
+ /** `horizontal` | `vertical` — the group's orientation. */
23
+ orientation = "data-orientation"
24
+ }
25
+ //#endregion
26
+ export { ToggleDataAttributes };
@@ -0,0 +1,36 @@
1
+ //#region src/components/toggle/toggle.slots.ts
2
+ /**
3
+ * The slot vocabulary every `Toggle` part stamps as its `data-slot`. The authored source the
4
+ * orchestration file reads from, kebab-cased `{component}[-{part}]` under the `noctis-` prefix;
5
+ * SLOTS.md still generates from the token-graph declarations.
6
+ */
7
+ const TOGGLE_SLOTS = {
8
+ root: "noctis-toggle",
9
+ group: "noctis-toggle-group"
10
+ };
11
+ /**
12
+ * The data attributes `Toggle` (and the Base UI toggle/toggle-group it renders) expose for host-side
13
+ * styling and tests. Slot values mark each rendered element; the state attributes are emitted by Base
14
+ * UI — pair a slot with a state to target, say, only the pressed toggle.
15
+ */
16
+ let ToggleDataAttributes = /* @__PURE__ */ function(ToggleDataAttributes) {
17
+ /** The rendered toggle (or group) element. */
18
+ ToggleDataAttributes["slot"] = "data-slot";
19
+ /** The visual emphasis — `ghost` (transparent) | `primary` (primary-filled pressed) | `outline` (bordered). */
20
+ ToggleDataAttributes["variant"] = "data-variant";
21
+ /** The size scale — `xs` | `sm` | `md` | `lg`; the generated layer keys the per-size internals off it. */
22
+ ToggleDataAttributes["size"] = "data-size";
23
+ /** Present on a pressed (on) toggle. */
24
+ ToggleDataAttributes["pressed"] = "data-pressed";
25
+ /** Present on a disabled toggle or group. */
26
+ ToggleDataAttributes["disabled"] = "data-disabled";
27
+ /** Present on a group drawing the recessed segmented/connected track. */
28
+ ToggleDataAttributes["attached"] = "data-attached";
29
+ /** Present on a group that allows several toggles pressed at once. */
30
+ ToggleDataAttributes["multiple"] = "data-multiple";
31
+ /** `horizontal` | `vertical` — the group's orientation. */
32
+ ToggleDataAttributes["orientation"] = "data-orientation";
33
+ return ToggleDataAttributes;
34
+ }({});
35
+ //#endregion
36
+ export { TOGGLE_SLOTS, ToggleDataAttributes };