@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,59 @@
1
+ import { SLIDER_SLOTS } from "./slider.slots.js";
2
+ //#region src/components/slider/slider.props.ts
3
+ const withClassName = (bag, className) => className === void 0 ? bag : {
4
+ ...bag,
5
+ className
6
+ };
7
+ /** Root prop bag: `data-slot` plus the `data-size` the descendant rules read. */
8
+ function rootProps({ size = "md", className } = {}) {
9
+ return withClassName({
10
+ "data-slot": SLIDER_SLOTS.root,
11
+ "data-size": size
12
+ }, className);
13
+ }
14
+ /** Header prop bag: the baseline row that holds the label and value above the control. */
15
+ function headerProps({ className } = {}) {
16
+ return withClassName({ "data-slot": SLIDER_SLOTS.header }, className);
17
+ }
18
+ /** Label prop bag: just the slot anchor. */
19
+ function labelProps({ className } = {}) {
20
+ return withClassName({ "data-slot": SLIDER_SLOTS.label }, className);
21
+ }
22
+ /** Value prop bag: just the slot anchor. */
23
+ function valueProps({ className } = {}) {
24
+ return withClassName({ "data-slot": SLIDER_SLOTS.value }, className);
25
+ }
26
+ /** Control prop bag: just the slot anchor (metrics flow from the root size). */
27
+ function controlProps({ className } = {}) {
28
+ return withClassName({ "data-slot": SLIDER_SLOTS.control }, className);
29
+ }
30
+ /** Track prop bag: just the slot anchor. */
31
+ function trackProps({ className } = {}) {
32
+ return withClassName({ "data-slot": SLIDER_SLOTS.track }, className);
33
+ }
34
+ /** Indicator prop bag: just the slot anchor. */
35
+ function indicatorProps({ className } = {}) {
36
+ return withClassName({ "data-slot": SLIDER_SLOTS.indicator }, className);
37
+ }
38
+ /** Thumb prop bag: just the slot anchor (Base UI stamps the live drag/disabled/focus state). */
39
+ function thumbProps({ className } = {}) {
40
+ return withClassName({ "data-slot": SLIDER_SLOTS.thumb }, className);
41
+ }
42
+ /** Thumb-value prop bag: the drag readout bubble (decorative — `aria-hidden`, shown on drag/focus). */
43
+ function thumbValueProps({ className } = {}) {
44
+ return withClassName({ "data-slot": SLIDER_SLOTS.thumbValue }, className);
45
+ }
46
+ /** Marks prop bag: the container layered over the control that positions the step ticks. */
47
+ function marksProps({ className } = {}) {
48
+ return withClassName({ "data-slot": SLIDER_SLOTS.marks }, className);
49
+ }
50
+ /** Mark prop bag: a single step tick (its position + passed state are set inline by the part). */
51
+ function markProps({ className } = {}) {
52
+ return withClassName({ "data-slot": SLIDER_SLOTS.mark }, className);
53
+ }
54
+ /** Mark-label prop bag: a tick's decorative caption (`aria-hidden`). */
55
+ function markLabelProps({ className } = {}) {
56
+ return withClassName({ "data-slot": SLIDER_SLOTS.markLabel }, className);
57
+ }
58
+ //#endregion
59
+ export { controlProps, headerProps, indicatorProps, labelProps, markLabelProps, markProps, marksProps, rootProps, thumbProps, thumbValueProps, trackProps, valueProps };
@@ -0,0 +1,30 @@
1
+ //#region src/components/slider/slider.slots.d.ts
2
+ /**
3
+ * The `data-*` hooks `Slider` stamps on its parts, for host-side styling and tests. The `data-slot`
4
+ * value marks each rendered element; the state attributes are emitted by Base UI's Slider — pair a
5
+ * slot with a state to target, say, only a thumb while it is being dragged.
6
+ */
7
+ declare enum SliderDataAttributes {
8
+ /** The slot value marking each rendered part. */
9
+ slot = "data-slot",
10
+ /** The control size the root stamps — `sm` or `md`; the metrics re-point off it. */
11
+ size = "data-size",
12
+ /** `horizontal` | `vertical` — the control's orientation, stamped by Base UI on every part. */
13
+ orientation = "data-orientation",
14
+ /** Present on every part while a thumb is being dragged. */
15
+ dragging = "data-dragging",
16
+ /** Present on every part when the slider is disabled. */
17
+ disabled = "data-disabled",
18
+ /** Present on the thumb whose input has keyboard focus. */
19
+ focused = "data-focused",
20
+ /**
21
+ * Present on every part when the slider is in an invalid `Field.Root` — the field error cue paints
22
+ * the track border and thumb ring in `danger`. Base UI also stamps the companion `data-valid`,
23
+ * `data-dirty`, and `data-touched` field-state attributes for host-side styling.
24
+ */
25
+ invalid = "data-invalid",
26
+ /** Stamped on a step mark the value has reached, switching the tick to the accent (signal). */
27
+ markState = "data-state"
28
+ }
29
+ //#endregion
30
+ export { SliderDataAttributes };
@@ -0,0 +1,50 @@
1
+ //#region src/components/slider/slider.slots.ts
2
+ /**
3
+ * The slot vocabulary every `Slider` part stamps as its `data-slot`. The authored source the
4
+ * orchestration file reads from, kebab-cased `{component}-{part}`; SLOTS.md still generates from the
5
+ * token-graph declarations.
6
+ */
7
+ const SLIDER_SLOTS = {
8
+ root: "noctis-slider",
9
+ header: "noctis-slider-header",
10
+ label: "noctis-slider-label",
11
+ value: "noctis-slider-value",
12
+ control: "noctis-slider-control",
13
+ track: "noctis-slider-track",
14
+ indicator: "noctis-slider-indicator",
15
+ thumb: "noctis-slider-thumb",
16
+ thumbValue: "noctis-slider-thumb-value",
17
+ marks: "noctis-slider-marks",
18
+ mark: "noctis-slider-mark",
19
+ markLabel: "noctis-slider-mark-label"
20
+ };
21
+ /**
22
+ * The `data-*` hooks `Slider` stamps on its parts, for host-side styling and tests. The `data-slot`
23
+ * value marks each rendered element; the state attributes are emitted by Base UI's Slider — pair a
24
+ * slot with a state to target, say, only a thumb while it is being dragged.
25
+ */
26
+ let SliderDataAttributes = /* @__PURE__ */ function(SliderDataAttributes) {
27
+ /** The slot value marking each rendered part. */
28
+ SliderDataAttributes["slot"] = "data-slot";
29
+ /** The control size the root stamps — `sm` or `md`; the metrics re-point off it. */
30
+ SliderDataAttributes["size"] = "data-size";
31
+ /** `horizontal` | `vertical` — the control's orientation, stamped by Base UI on every part. */
32
+ SliderDataAttributes["orientation"] = "data-orientation";
33
+ /** Present on every part while a thumb is being dragged. */
34
+ SliderDataAttributes["dragging"] = "data-dragging";
35
+ /** Present on every part when the slider is disabled. */
36
+ SliderDataAttributes["disabled"] = "data-disabled";
37
+ /** Present on the thumb whose input has keyboard focus. */
38
+ SliderDataAttributes["focused"] = "data-focused";
39
+ /**
40
+ * Present on every part when the slider is in an invalid `Field.Root` — the field error cue paints
41
+ * the track border and thumb ring in `danger`. Base UI also stamps the companion `data-valid`,
42
+ * `data-dirty`, and `data-touched` field-state attributes for host-side styling.
43
+ */
44
+ SliderDataAttributes["invalid"] = "data-invalid";
45
+ /** Stamped on a step mark the value has reached, switching the tick to the accent (signal). */
46
+ SliderDataAttributes["markState"] = "data-state";
47
+ return SliderDataAttributes;
48
+ }({});
49
+ //#endregion
50
+ export { SLIDER_SLOTS, SliderDataAttributes };
@@ -0,0 +1 @@
1
+ import { Surface } from "./surface.js";
@@ -0,0 +1,84 @@
1
+ import { SurfaceElevation, SurfaceShade, SurfaceShadow } from "./surface.types.js";
2
+ import { SurfacePartProps, SurfaceRootPropsArgs, rootProps } from "./surface.props.js";
3
+ import { useRender } from "../../core/render.js";
4
+ import { JSX, ReactElement, Ref } from "react";
5
+
6
+ //#region src/components/surface/surface.d.ts
7
+ interface SurfaceOwnProps<TTag extends keyof JSX.IntrinsicElements = "div"> {
8
+ /** The HTML tag to render. Defaults to `div`. Use `render` to compose with a component instead. */
9
+ as?: TTag;
10
+ /** A Base UI render prop — an element or function — to replace the rendered element entirely. */
11
+ render?: useRender.RenderProp;
12
+ ref?: Ref<HTMLElement>;
13
+ /**
14
+ * The elevation scope this surface establishes. Sets `data-elevation`, so every role inside —
15
+ * surfaces, borders, and controls — re-derives to that level. Omit for the root canvas.
16
+ */
17
+ elevation?: SurfaceElevation;
18
+ /** Which ramp tier to paint. Defaults to `base` — the control-safe choice for any scope. */
19
+ shade?: SurfaceShade;
20
+ /** Add the standard 1px border. */
21
+ bordered?: boolean;
22
+ /** Carry a drop-shadow tier. Defaults to none. */
23
+ shadow?: SurfaceShadow;
24
+ /** The styling/testing hook attribute. Defaults to `noctis-surface`. */
25
+ "data-slot"?: string;
26
+ }
27
+ /**
28
+ * The layer primitive: one place that owns a surface's level so no caller hand-picks a token. Set
29
+ * `elevation` and it establishes the scope **and** paints that scope's base, so controls inside
30
+ * separate cleanly; pick a `shade` for content cards or wells. Polymorphic — render any tag via `as`
31
+ * or compose any component via `render` (e.g. a `Dialog.Popup`). `Sheet`, `Rail`, and the overlay
32
+ * primitives build on it, so the elevation rule is expressed once and inherited everywhere.
33
+ *
34
+ * Styling is precompiled in `surface.css`, keyed off the stable `data-surface` marker (so the paint
35
+ * survives a consumer's `data-slot` override) plus the `data-shade`/`data-bordered`/`data-shadow`
36
+ * recipe; for an element a `<Surface>` can't wrap, spread {@link Surface.props} onto it instead.
37
+ *
38
+ * @see {@link Surface.Props}
39
+ */
40
+ declare function SurfaceImpl<TTag extends keyof JSX.IntrinsicElements = "div">({
41
+ as,
42
+ render,
43
+ ref,
44
+ elevation,
45
+ shade,
46
+ bordered,
47
+ shadow,
48
+ className,
49
+ "data-slot": dataSlot,
50
+ ...props
51
+ }: Surface.Props<TTag>): ReactElement;
52
+ /**
53
+ * The layer primitive — a single, polymorphic part. The function value carries the D12 `props()` escape
54
+ * hatch via `Object.assign`: spread `Surface.props({ shade, bordered, shadow, elevation })` onto any
55
+ * element a `<Surface>` can't wrap to style it as a surface. It returns a spreadable
56
+ * `{ "data-slot": "noctis-surface", ...dataAttrs }` bag the precompiled `surface.css` keys off — the
57
+ * data-attribute-native replacement for the old `surfaceVariants` class-string helper.
58
+ */
59
+ declare const Surface: typeof SurfaceImpl & {
60
+ props: typeof rootProps;
61
+ };
62
+ /**
63
+ * Prop, shade, shadow, and elevation types. Types-only — it emits no runtime code and merges with the
64
+ * `Surface` function above, so `Surface` is the component value while `Surface.Props` is its prop type.
65
+ */
66
+ declare namespace Surface {
67
+ /**
68
+ * Props for `Surface`, polymorphic over the rendered tag like `Primitive`: native attributes
69
+ * track `as` (`Surface.Props<"nav">` carries nav attributes, and so on). Defaults to `div`.
70
+ */
71
+ type Props<TTag extends keyof JSX.IntrinsicElements = "div"> = SurfaceOwnProps<TTag> & Omit<JSX.IntrinsicElements[TTag], keyof SurfaceOwnProps<TTag>>;
72
+ /** Which tier of the surface ramp to paint. */
73
+ type Shade = SurfaceShade;
74
+ /** The drop-shadow tier the surface carries. */
75
+ type Shadow = SurfaceShadow;
76
+ /** The elevation scope the surface establishes. */
77
+ type Elevation = SurfaceElevation;
78
+ /** Argument to the `Surface.props(...)` escape-hatch helper. */
79
+ type PropsArgs = SurfaceRootPropsArgs;
80
+ /** The spreadable data-attribute prop bag `Surface.props()` returns (D12). */
81
+ type PartProps = SurfacePartProps;
82
+ }
83
+ //#endregion
84
+ export { Surface };
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { useRender } from "../../core/render.js";
3
+ import { SURFACE_SLOTS } from "./surface.slots.js";
4
+ import { rootProps } from "./surface.props.js";
5
+ import clsx$1 from "clsx";
6
+ //#region src/components/surface/surface.tsx
7
+ /**
8
+ * The layer primitive: one place that owns a surface's level so no caller hand-picks a token. Set
9
+ * `elevation` and it establishes the scope **and** paints that scope's base, so controls inside
10
+ * separate cleanly; pick a `shade` for content cards or wells. Polymorphic — render any tag via `as`
11
+ * or compose any component via `render` (e.g. a `Dialog.Popup`). `Sheet`, `Rail`, and the overlay
12
+ * primitives build on it, so the elevation rule is expressed once and inherited everywhere.
13
+ *
14
+ * Styling is precompiled in `surface.css`, keyed off the stable `data-surface` marker (so the paint
15
+ * survives a consumer's `data-slot` override) plus the `data-shade`/`data-bordered`/`data-shadow`
16
+ * recipe; for an element a `<Surface>` can't wrap, spread {@link Surface.props} onto it instead.
17
+ *
18
+ * @see {@link Surface.Props}
19
+ */
20
+ function SurfaceImpl({ as, render, ref, elevation, shade, bordered, shadow, className, "data-slot": dataSlot = SURFACE_SLOTS.root, ...props }) {
21
+ const { className: _omit, ...recipe } = rootProps({
22
+ elevation,
23
+ shade,
24
+ bordered,
25
+ shadow
26
+ });
27
+ return useRender({
28
+ defaultTagName: as ?? "div",
29
+ render,
30
+ ref,
31
+ props: {
32
+ ...recipe,
33
+ "data-slot": dataSlot,
34
+ className: clsx$1(className),
35
+ ...props
36
+ }
37
+ });
38
+ }
39
+ /**
40
+ * The layer primitive — a single, polymorphic part. The function value carries the D12 `props()` escape
41
+ * hatch via `Object.assign`: spread `Surface.props({ shade, bordered, shadow, elevation })` onto any
42
+ * element a `<Surface>` can't wrap to style it as a surface. It returns a spreadable
43
+ * `{ "data-slot": "noctis-surface", ...dataAttrs }` bag the precompiled `surface.css` keys off — the
44
+ * data-attribute-native replacement for the old `surfaceVariants` class-string helper.
45
+ */
46
+ const Surface = Object.assign(SurfaceImpl, { props: rootProps });
47
+ //#endregion
48
+ export { Surface };
@@ -0,0 +1,35 @@
1
+ import { SurfaceElevation, SurfaceShade, SurfaceShadow } from "./surface.types.js";
2
+
3
+ //#region src/components/surface/surface.props.d.ts
4
+ /** A spreadable data-attribute prop bag — the shape `Surface.Root.props()` returns. */
5
+ type SurfacePartProps = {
6
+ /** The slot value the matching `surface.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
+ /** Argument to `Surface.Root.props(...)` — the recipe the `surface.css` rules key their look off. */
11
+ interface SurfaceRootPropsArgs {
12
+ /** The elevation scope to establish — re-themes the subtree via `data-elevation`. Omit for root. */
13
+ elevation?: SurfaceElevation;
14
+ /** Which ramp tier to paint. @default "base" */
15
+ shade?: SurfaceShade;
16
+ /** Draw the standard 1px border. */
17
+ bordered?: boolean;
18
+ /** The drop-shadow tier to carry. */
19
+ shadow?: SurfaceShadow;
20
+ /** Forwarded verbatim onto the returned prop bag. */
21
+ className?: string;
22
+ }
23
+ /**
24
+ * Root prop bag: `data-slot` plus the `data-elevation`/`data-shade`/`data-bordered`/`data-shadow` the
25
+ * `surface.css` rules read. The escape hatch for elements a `<Surface>` can't wrap.
26
+ */
27
+ declare function rootProps({
28
+ elevation,
29
+ shade,
30
+ bordered,
31
+ shadow,
32
+ className
33
+ }?: SurfaceRootPropsArgs): SurfacePartProps;
34
+ //#endregion
35
+ export { SurfacePartProps, SurfaceRootPropsArgs, rootProps };
@@ -0,0 +1,26 @@
1
+ import { SURFACE_SLOTS } from "./surface.slots.js";
2
+ //#region src/components/surface/surface.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
+ /** Drop a value when it is the default `base` shade (the unprefixed CSS rule already paints it). */
6
+ const shadeAttr = (shade) => shade === void 0 || shade === "base" ? void 0 : shade;
7
+ /**
8
+ * Root prop bag: `data-slot` plus the `data-elevation`/`data-shade`/`data-bordered`/`data-shadow` the
9
+ * `surface.css` rules read. The escape hatch for elements a `<Surface>` can't wrap.
10
+ */
11
+ function rootProps({ elevation, shade, bordered, shadow, className } = {}) {
12
+ const bag = {
13
+ "data-slot": SURFACE_SLOTS.root,
14
+ "data-surface": "",
15
+ "data-elevation": elevation,
16
+ "data-shade": shadeAttr(shade),
17
+ "data-bordered": flag(bordered),
18
+ "data-shadow": shadow
19
+ };
20
+ return className === void 0 ? bag : {
21
+ ...bag,
22
+ className
23
+ };
24
+ }
25
+ //#endregion
26
+ export { rootProps };
@@ -0,0 +1,9 @@
1
+ //#region src/components/surface/surface.slots.ts
2
+ /**
3
+ * The slot vocabulary `Surface` stamps as its `data-slot`. The authored source the orchestration file
4
+ * reads from, kebab-cased `{component}`; SLOTS.md still generates from the token-graph declarations.
5
+ * Surface is a single-part primitive, so it carries one slot.
6
+ */
7
+ const SURFACE_SLOTS = { root: "noctis-surface" };
8
+ //#endregion
9
+ export { SURFACE_SLOTS };
@@ -0,0 +1,14 @@
1
+ //#region src/components/surface/surface.types.d.ts
2
+ /**
3
+ * The shade/shadow/elevation vocabulary `Surface` paints — formerly derived from the `surfaceVariants`
4
+ * `tv()` recipe, now the authored source of truth since styling moved to precompiled `surface.css`.
5
+ * Types-only: no runtime code, so it never participates in the styling layer.
6
+ */
7
+ /** Which tier of the surface ramp a `Surface` paints. */
8
+ type SurfaceShade = "base" | "surface" | "raised" | "sunken";
9
+ /** The drop-shadow tier a `Surface` carries. */
10
+ type SurfaceShadow = "none" | "card" | "popover" | "modal";
11
+ /** The elevation scope a `Surface` establishes. */
12
+ type SurfaceElevation = "elevated" | "menu" | "sunken";
13
+ //#endregion
14
+ export { SurfaceElevation, SurfaceShade, SurfaceShadow };
@@ -0,0 +1,2 @@
1
+ import { Switch } from "./switch.js";
2
+ import { SwitchDataAttributes } from "./switch.slots.js";
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { createContext, use } from "react";
3
+ //#region src/components/switch/switch.context.ts
4
+ const SwitchFieldContext = createContext(null);
5
+ const SwitchFieldProvider = SwitchFieldContext.Provider;
6
+ /**
7
+ * Read the enclosing `Switch.Field` size, or `null` when a switch renders standalone. A `Switch.Root`
8
+ * inside a field inherits this size unless it sets its own, so one `size` on the field sizes the row.
9
+ */
10
+ function useSwitchFieldContext() {
11
+ return use(SwitchFieldContext);
12
+ }
13
+ //#endregion
14
+ export { SwitchFieldProvider, useSwitchFieldContext };
@@ -0,0 +1,110 @@
1
+ import { fieldProps, labelProps, switchProps, thumbProps } from "./switch.props.js";
2
+ import { ReactElement } from "react";
3
+ import { Field } from "@base-ui/react/field";
4
+ import { Switch } from "@base-ui/react/switch";
5
+
6
+ //#region src/components/switch/switch.d.ts
7
+ /** Track sizes a switch accepts, stamped as `data-size` on the root track. */
8
+ declare const SIZES: readonly ["sm", "md", "lg"];
9
+ /**
10
+ * The switch track — a pill that toggles between off and on. Renders Base UI's `Switch.Root` (a
11
+ * `<span>` with a sibling hidden `<input>`), which owns the checked state, the keyboard contract
12
+ * (Space toggles), focus management, and form participation. The render stamps the slot + `data-size`
13
+ * axis the CSS keys off; Base UI stamps the live `data-checked`/`data-unchecked`/`data-disabled`.
14
+ * `className` is a consumer passthrough.
15
+ *
16
+ * Compose a `Switch.Thumb` inside it for the sliding knob:
17
+ *
18
+ * <Switch.Root>
19
+ * <Switch.Thumb />
20
+ * </Switch.Root>
21
+ */
22
+ declare function SwitchRoot({
23
+ size,
24
+ className,
25
+ children,
26
+ ...props
27
+ }: Switch$1.Root.Props): ReactElement;
28
+ /**
29
+ * The movable knob that slides across the track to signal on/off. Renders Base UI's `Switch.Thumb` (a
30
+ * `<span>`), which carries the live `data-checked`/`data-unchecked` the CSS keys its travel off. The
31
+ * thumb's diameter re-points off the root track's `data-size` through the cascade — no prop needed.
32
+ * `className` is a consumer passthrough.
33
+ */
34
+ declare function SwitchThumb({
35
+ className,
36
+ ...props
37
+ }: Switch$1.Thumb.Props): ReactElement;
38
+ /**
39
+ * The labelled row — pairs a `Switch.Label` with a `Switch.Root` so the whole pairing reads as one
40
+ * control. Renders Base UI's `Field.Root`, which links the label to the switch (clicking the label
41
+ * toggles it, the label becomes the accessible name) and feeds the switch its validity state. Lay the
42
+ * label and switch in either DOM order; the row mirrors under RTL by construction.
43
+ *
44
+ * <Switch.Field>
45
+ * <Switch.Label>Airplane mode</Switch.Label>
46
+ * <Switch.Root>
47
+ * <Switch.Thumb />
48
+ * </Switch.Root>
49
+ * </Switch.Field>
50
+ */
51
+ declare function SwitchField({
52
+ size,
53
+ className,
54
+ children,
55
+ ...props
56
+ }: Switch$1.Field.Props): ReactElement;
57
+ /**
58
+ * The visible label that names a switch inside a `Switch.Field`. Renders Base UI's `Field.Label`, so
59
+ * clicking it toggles the switch and its text supplies the accessible name (no `aria-label` needed).
60
+ * It mirrors the field's disabled and invalid state through `data-disabled`/`data-invalid`.
61
+ */
62
+ declare function SwitchLabel({
63
+ className,
64
+ children,
65
+ ...props
66
+ }: Switch$1.Label.Props): ReactElement;
67
+ /** A toggle between two opposing states, with a thumb that slides across an accent track when on. */
68
+ declare const Switch$1: {
69
+ Root: typeof SwitchRoot & {
70
+ props: typeof switchProps;
71
+ };
72
+ Thumb: typeof SwitchThumb & {
73
+ props: typeof thumbProps;
74
+ };
75
+ Field: typeof SwitchField & {
76
+ props: typeof fieldProps;
77
+ };
78
+ Label: typeof SwitchLabel & {
79
+ props: typeof labelProps;
80
+ };
81
+ };
82
+ /** Per-part prop and shape types for the compound `Switch`; merges with the value above. */
83
+ declare namespace Switch$1 {
84
+ /** Track size — `md` by default, `sm` for compact rows, `lg` for prominent ones. */
85
+ type Size = (typeof SIZES)[number];
86
+ namespace Root {
87
+ /** Props for {@link Switch.Root} — Base UI's `Switch.Root` plus the Noctis `size` axis. */
88
+ interface Props extends Switch.Root.Props {
89
+ /** Track size. Defaults to `md`. */
90
+ size?: Size;
91
+ }
92
+ }
93
+ namespace Thumb {
94
+ /** Props for {@link Switch.Thumb} — Base UI's `Switch.Thumb`. */
95
+ type Props = Switch.Thumb.Props;
96
+ }
97
+ namespace Field {
98
+ /** Props for {@link Switch.Field} — Base UI's `Field.Root` plus the Noctis `size` axis. */
99
+ interface Props extends Field.Root.Props {
100
+ /** Row size — scales the label text and cascades to the switch inside. Defaults to `md`. */
101
+ size?: Size;
102
+ }
103
+ }
104
+ namespace Label {
105
+ /** Props for {@link Switch.Label} — Base UI's `Field.Label`, the switch's visible accessible name. */
106
+ type Props = Field.Label.Props;
107
+ }
108
+ }
109
+ //#endregion
110
+ export { Switch$1 as Switch };
@@ -0,0 +1,92 @@
1
+ "use client";
2
+ import { SwitchFieldProvider, useSwitchFieldContext } from "./switch.context.js";
3
+ import { SWITCH_SLOTS } from "./switch.slots.js";
4
+ import { fieldProps, labelProps, switchProps, thumbProps } from "./switch.props.js";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import { Field } from "@base-ui/react/field";
7
+ import { Switch } from "@base-ui/react/switch";
8
+ //#region src/components/switch/switch.tsx
9
+ /**
10
+ * The switch track — a pill that toggles between off and on. Renders Base UI's `Switch.Root` (a
11
+ * `<span>` with a sibling hidden `<input>`), which owns the checked state, the keyboard contract
12
+ * (Space toggles), focus management, and form participation. The render stamps the slot + `data-size`
13
+ * axis the CSS keys off; Base UI stamps the live `data-checked`/`data-unchecked`/`data-disabled`.
14
+ * `className` is a consumer passthrough.
15
+ *
16
+ * Compose a `Switch.Thumb` inside it for the sliding knob:
17
+ *
18
+ * <Switch.Root>
19
+ * <Switch.Thumb />
20
+ * </Switch.Root>
21
+ */
22
+ function SwitchRoot({ size, className, children, ...props }) {
23
+ const field = useSwitchFieldContext();
24
+ const resolvedSize = size ?? field?.size ?? "md";
25
+ return /* @__PURE__ */ jsx(Switch.Root, {
26
+ "data-slot": SWITCH_SLOTS.root,
27
+ "data-size": resolvedSize,
28
+ className,
29
+ ...props,
30
+ children
31
+ });
32
+ }
33
+ /**
34
+ * The movable knob that slides across the track to signal on/off. Renders Base UI's `Switch.Thumb` (a
35
+ * `<span>`), which carries the live `data-checked`/`data-unchecked` the CSS keys its travel off. The
36
+ * thumb's diameter re-points off the root track's `data-size` through the cascade — no prop needed.
37
+ * `className` is a consumer passthrough.
38
+ */
39
+ function SwitchThumb({ className, ...props }) {
40
+ return /* @__PURE__ */ jsx(Switch.Thumb, {
41
+ "data-slot": SWITCH_SLOTS.thumb,
42
+ className,
43
+ ...props
44
+ });
45
+ }
46
+ /**
47
+ * The labelled row — pairs a `Switch.Label` with a `Switch.Root` so the whole pairing reads as one
48
+ * control. Renders Base UI's `Field.Root`, which links the label to the switch (clicking the label
49
+ * toggles it, the label becomes the accessible name) and feeds the switch its validity state. Lay the
50
+ * label and switch in either DOM order; the row mirrors under RTL by construction.
51
+ *
52
+ * <Switch.Field>
53
+ * <Switch.Label>Airplane mode</Switch.Label>
54
+ * <Switch.Root>
55
+ * <Switch.Thumb />
56
+ * </Switch.Root>
57
+ * </Switch.Field>
58
+ */
59
+ function SwitchField({ size = "md", className, children, ...props }) {
60
+ return /* @__PURE__ */ jsx(SwitchFieldProvider, {
61
+ value: { size },
62
+ children: /* @__PURE__ */ jsx(Field.Root, {
63
+ "data-slot": SWITCH_SLOTS.field,
64
+ "data-size": size,
65
+ className,
66
+ ...props,
67
+ children
68
+ })
69
+ });
70
+ }
71
+ /**
72
+ * The visible label that names a switch inside a `Switch.Field`. Renders Base UI's `Field.Label`, so
73
+ * clicking it toggles the switch and its text supplies the accessible name (no `aria-label` needed).
74
+ * It mirrors the field's disabled and invalid state through `data-disabled`/`data-invalid`.
75
+ */
76
+ function SwitchLabel({ className, children, ...props }) {
77
+ return /* @__PURE__ */ jsx(Field.Label, {
78
+ "data-slot": SWITCH_SLOTS.label,
79
+ className,
80
+ ...props,
81
+ children
82
+ });
83
+ }
84
+ /** A toggle between two opposing states, with a thumb that slides across an accent track when on. */
85
+ const Switch$1 = {
86
+ Root: Object.assign(SwitchRoot, { props: switchProps }),
87
+ Thumb: Object.assign(SwitchThumb, { props: thumbProps }),
88
+ Field: Object.assign(SwitchField, { props: fieldProps }),
89
+ Label: Object.assign(SwitchLabel, { props: labelProps })
90
+ };
91
+ //#endregion
92
+ export { Switch$1 as Switch };
@@ -0,0 +1,68 @@
1
+ import { Switch } from "./switch.js";
2
+
3
+ //#region src/components/switch/switch.props.d.ts
4
+ /** A spreadable data-attribute prop bag — the shape every `Switch.*.props()` returns. */
5
+ type SwitchPartProps = {
6
+ /** The slot value the matching `switch.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 `Switch.props(...)` — the track's size axis plus the checked/disabled/readonly/invalid state. */
16
+ interface SwitchPropsArgs extends BasePropsArgs {
17
+ /** Track size — stamped as `data-size`, re-points the track and thumb metrics. @default "md" */
18
+ size?: Switch.Size;
19
+ /** Whether the switch is on (paints the accent track via `data-checked`). */
20
+ checked?: boolean;
21
+ /** Whether the switch is disabled (drives the dimmed, not-allowed affordance via `data-disabled`). */
22
+ disabled?: boolean;
23
+ /** Whether the switch is read-only (drops the pointer and hover affordance via `data-readonly`). */
24
+ readonly?: boolean;
25
+ /** Whether the switch is invalid (paints the danger border via `data-invalid`). */
26
+ invalid?: boolean;
27
+ }
28
+ /** Argument to `Switch.Thumb.props(...)` — the thumb carries the checked/disabled state for its travel. */
29
+ interface SwitchThumbPropsArgs extends BasePropsArgs {
30
+ /** Whether the switch is on (slides the thumb to the end via `data-checked`). */
31
+ checked?: boolean;
32
+ /** Whether the switch is disabled (drives the dimmed affordance via `data-disabled`). */
33
+ disabled?: boolean;
34
+ }
35
+ /** Track prop bag: slot anchor plus the `data-size`/`data-checked`/`data-disabled`/`data-readonly`/`data-invalid` the CSS keys off. */
36
+ declare function switchProps({
37
+ size,
38
+ checked,
39
+ disabled,
40
+ readonly,
41
+ invalid,
42
+ className
43
+ }?: SwitchPropsArgs): SwitchPartProps;
44
+ /** Thumb prop bag: slot anchor plus the `data-checked`/`data-disabled` that drives its travel. */
45
+ declare function thumbProps({
46
+ checked,
47
+ disabled,
48
+ className
49
+ }?: SwitchThumbPropsArgs): SwitchPartProps;
50
+ /** Field prop bag: the slot anchor for the row that pairs a switch with its label. */
51
+ declare function fieldProps({
52
+ className
53
+ }?: BasePropsArgs): SwitchPartProps;
54
+ /** Argument to `Switch.Label.props(...)` — the label mirrors the field's disabled/invalid state. */
55
+ interface SwitchLabelPropsArgs extends BasePropsArgs {
56
+ /** Whether the field is disabled (dims the label and drops its pointer via `data-disabled`). */
57
+ disabled?: boolean;
58
+ /** Whether the field is invalid (recolours the label to danger via `data-invalid`). */
59
+ invalid?: boolean;
60
+ }
61
+ /** Label prop bag: slot anchor plus the `data-disabled`/`data-invalid` that mirror the field state. */
62
+ declare function labelProps({
63
+ disabled,
64
+ invalid,
65
+ className
66
+ }?: SwitchLabelPropsArgs): SwitchPartProps;
67
+ //#endregion
68
+ export { fieldProps, labelProps, switchProps, thumbProps };