@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,299 @@
1
+ import { Surface } from "../surface/surface.js";
2
+ import { dialog_d_exports } from "../../primitives/dialog.js";
3
+ import { DialogScroll, DialogSize } from "./dialog.types.js";
4
+ import { DialogPartProps, DialogPopupPropsArgs, backdropProps, bodyProps, closeButtonProps, closeProps, descriptionProps, footerProps, headerProps, popupProps, titleProps, triggerProps, viewportProps } from "./dialog.props.js";
5
+ import { ComponentProps, ReactElement, ReactNode } from "react";
6
+
7
+ //#region src/components/dialog/dialog.d.ts
8
+ /**
9
+ * Groups the parts and owns open state. Modal by default — focus is trapped, the page is scroll-locked,
10
+ * and the rest of the document is inert; an outside click or `Escape` closes it. Renders no element of
11
+ * its own (Base UI's `Dialog.Root` is a context provider). Surface Base UI's `modal` and
12
+ * `disablePointerDismissal` here; the panel's `initialFocus`/`finalFocus` live on `Popup`/`Content`.
13
+ *
14
+ * @see {@link Dialog.Root.Props}
15
+ */
16
+ declare function DialogRoot(props: Dialog.Root.Props): ReactElement;
17
+ /**
18
+ * A button that opens the dialog. Wires the accessible relationship to the panel.
19
+ *
20
+ * Slot: `noctis-dialog-trigger`.
21
+ * @see {@link Dialog.Trigger.Props}
22
+ */
23
+ declare function DialogTrigger(props: Dialog.Trigger.Props): ReactElement;
24
+ /**
25
+ * Moves the panel and backdrop to a portal at the end of `<body>`.
26
+ *
27
+ * @see {@link Dialog.Portal.Props}
28
+ */
29
+ declare function DialogPortal(props: Dialog.Portal.Props): ReactElement;
30
+ /**
31
+ * The scrim behind the panel. Fades with the dialog, blurs and dims everything beneath it.
32
+ *
33
+ * Slot: `noctis-dialog-backdrop`.
34
+ * @see {@link Dialog.Backdrop.Props}
35
+ */
36
+ declare function DialogBackdrop({
37
+ className,
38
+ ...props
39
+ }: Dialog.Backdrop.Props): ReactElement;
40
+ /**
41
+ * An overlay-level scroll container for a tall dialog. Wraps the popup so the whole panel scrolls inside
42
+ * a scrollable overlay (staying centered when it fits) instead of the body scrolling internally —
43
+ * `Dialog.Content scroll="viewport"` renders it for you. Mirrors Base UI's `Dialog.Viewport`.
44
+ *
45
+ * Slot: `noctis-dialog-viewport`.
46
+ * @see {@link Dialog.Viewport.Props}
47
+ */
48
+ declare function DialogViewport(props: Dialog.Viewport.Props): ReactElement;
49
+ /**
50
+ * The panel surface itself — centered in the viewport. Portal it (or use {@link Dialog.Content}) and
51
+ * compose the slots inside. Renders **through** `Surface` so the dialog inherits an elevated scope, a
52
+ * border, and the modal shadow; controls inside re-derive off that base. The popup's own paint (centered
53
+ * positioning, blur-backed scale-fade) lives in `dialog.css`, keyed off `data-slot`/`data-size`.
54
+ *
55
+ * Slot: `noctis-dialog-popup` (with `data-size`). Set `initialFocus`/`finalFocus` here (Base UI Popup
56
+ * props) to control where focus lands and returns.
57
+ *
58
+ * @see {@link Dialog.Popup.Props}
59
+ */
60
+ declare function DialogPopup({
61
+ className,
62
+ size,
63
+ elevation,
64
+ "data-slot": dataSlot,
65
+ ...props
66
+ }: Dialog.Popup.Props): ReactElement;
67
+ /**
68
+ * The common composition: portal, backdrop, and panel in one. Drop `Dialog.Header`/`Body`/`Footer`
69
+ * (and a `Dialog.CloseButton`) inside. Set `scroll="viewport"` for overlay-level scrolling of a tall
70
+ * panel, or `dismissable={false}` to suppress the corner close. Reach for the granular parts when you
71
+ * need to customize the portal or backdrop wiring.
72
+ *
73
+ * @see {@link Dialog.Content.Props}
74
+ */
75
+ declare function DialogContent({
76
+ children,
77
+ backdropClassName,
78
+ scroll,
79
+ dismissable,
80
+ ...props
81
+ }: Dialog.Content.Props): ReactElement;
82
+ /**
83
+ * Closes the nearest dialog. Renders a bare button and carries no styling of its own, so it composes
84
+ * with any Noctis `Button` through `render` — a ghost icon button for the corner dismiss, or a
85
+ * secondary/primary `Button` for a footer action — and that Button behaves exactly as it does anywhere
86
+ * else. Give it an `aria-label` (or visible text) for the accessible name. For the standard corner X,
87
+ * reach for {@link Dialog.CloseButton} instead.
88
+ *
89
+ * Slot: `noctis-dialog-close`.
90
+ * @see {@link Dialog.Close.Props}
91
+ */
92
+ declare function DialogClose({
93
+ className,
94
+ ...props
95
+ }: Dialog.Close.Props): ReactElement;
96
+ /**
97
+ * The built-in corner close — a ghost icon `Button` with a localized `aria-label`, dropped into the
98
+ * header's reserved inline-end gutter (no `absolute`, so a long title never runs under it). Defaults its
99
+ * icon to a lucide `X` and its name to the translated "Close"; pass `children` to swap the glyph or
100
+ * `aria-label` to override the name. Renders nothing when an enclosing `Dialog.Content` sets
101
+ * `dismissable={false}`.
102
+ *
103
+ * Slot: `noctis-dialog-close` (shared with `Dialog.Close`).
104
+ * @see {@link Dialog.CloseButton.Props}
105
+ */
106
+ declare function DialogCloseButton({
107
+ children,
108
+ "aria-label": ariaLabel,
109
+ ...props
110
+ }: Dialog.CloseButton.Props): ReactElement | null;
111
+ /**
112
+ * The panel's top region — title, description, and the corner close. A row whose first column stacks the
113
+ * title over the description and whose inline-end gutter reserves room for `Dialog.CloseButton`, all over
114
+ * a divider.
115
+ *
116
+ * Slot: `noctis-dialog-header`.
117
+ * @see {@link Dialog.Header.Props}
118
+ */
119
+ declare function DialogHeader({
120
+ className,
121
+ ...props
122
+ }: Dialog.Header.Props): ReactElement;
123
+ /**
124
+ * The scrollable middle region. Grows to fill and scrolls its overflow so the header/footer stay put.
125
+ *
126
+ * Slot: `noctis-dialog-body`.
127
+ * @see {@link Dialog.Body.Props}
128
+ */
129
+ declare function DialogBody({
130
+ className,
131
+ ...props
132
+ }: Dialog.Body.Props): ReactElement;
133
+ /**
134
+ * The panel's bottom region — pinned to the base, typically holding the primary/secondary actions.
135
+ *
136
+ * Slot: `noctis-dialog-footer`.
137
+ * @see {@link Dialog.Footer.Props}
138
+ */
139
+ declare function DialogFooter({
140
+ className,
141
+ ...props
142
+ }: Dialog.Footer.Props): ReactElement;
143
+ /**
144
+ * The accessible name of the dialog, linked to the panel via `aria-labelledby`. Renders an `<h2>`.
145
+ *
146
+ * Slot: `noctis-dialog-title`.
147
+ * @see {@link Dialog.Title.Props}
148
+ */
149
+ declare function DialogTitle({
150
+ className,
151
+ ...props
152
+ }: Dialog.Title.Props): ReactElement;
153
+ /**
154
+ * Supporting copy under the title, linked to the panel via `aria-describedby`.
155
+ *
156
+ * Slot: `noctis-dialog-description`.
157
+ * @see {@link Dialog.Description.Props}
158
+ */
159
+ declare function DialogDescription({
160
+ className,
161
+ ...props
162
+ }: Dialog.Description.Props): ReactElement;
163
+ /**
164
+ * A centered modal, built on Base UI's Dialog for focus management, scroll-lock, and
165
+ * `Escape`/outside-click dismissal. Compose it from parts: `Dialog.Root` owns state, `Dialog.Trigger`
166
+ * opens it, and `Dialog.Content` (or `Portal` + `Backdrop` + optional `Viewport` + `Popup`) renders the
167
+ * panel holding `Header`/`Body`/`Footer`, `Title`/`Description`, a `CloseButton`, and footer `Close`
168
+ * actions. The panel sits in the middle of the viewport over a blurred, dimming scrim; `Sheet` is the
169
+ * edge-docked sibling for the same composition.
170
+ *
171
+ * Styling is precompiled in `dialog.css`, keyed off each part's `data-slot` (plus `data-size` on the
172
+ * popup); the popup renders through `Surface` for its elevated scope, border, and modal shadow. Each
173
+ * part's function value carries the D12 `props()` escape hatch via `Object.assign` — spread it onto a
174
+ * foreign element to style it as that part.
175
+ *
176
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
177
+ * exposed through the matching `Dialog` namespace below — e.g. `Dialog.Popup.Props`, `Dialog.Close.State`.
178
+ */
179
+ declare const Dialog: {
180
+ Root: typeof DialogRoot;
181
+ Trigger: typeof DialogTrigger & {
182
+ props: typeof triggerProps;
183
+ };
184
+ Portal: typeof DialogPortal;
185
+ Backdrop: typeof DialogBackdrop & {
186
+ props: typeof backdropProps;
187
+ };
188
+ Viewport: typeof DialogViewport & {
189
+ props: typeof viewportProps;
190
+ };
191
+ Popup: typeof DialogPopup & {
192
+ props: typeof popupProps;
193
+ };
194
+ Content: typeof DialogContent;
195
+ Close: typeof DialogClose & {
196
+ props: typeof closeProps;
197
+ };
198
+ CloseButton: typeof DialogCloseButton & {
199
+ props: typeof closeButtonProps;
200
+ };
201
+ Header: typeof DialogHeader & {
202
+ props: typeof headerProps;
203
+ };
204
+ Body: typeof DialogBody & {
205
+ props: typeof bodyProps;
206
+ };
207
+ Footer: typeof DialogFooter & {
208
+ props: typeof footerProps;
209
+ };
210
+ Title: typeof DialogTitle & {
211
+ props: typeof titleProps;
212
+ };
213
+ Description: typeof DialogDescription & {
214
+ props: typeof descriptionProps;
215
+ };
216
+ };
217
+ /**
218
+ * Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. This namespace
219
+ * is types-only — it emits no runtime code and merges with the `Dialog` object above, so `Dialog.Popup`
220
+ * is the component value while `Dialog.Popup.Props` is its prop type.
221
+ */
222
+ declare namespace Dialog {
223
+ /** The dialog's cross-axis extent — its maximum width. */
224
+ type Size = DialogSize;
225
+ /** How a tall dialog scrolls — inner body scroll or overlay-level viewport scroll. */
226
+ type Scroll = DialogScroll;
227
+ /** The spreadable data-attribute prop bag every `Dialog.*.props()` returns (D12). */
228
+ type PartProps = DialogPartProps;
229
+ namespace Root {
230
+ type Props = dialog_d_exports.Dialog.Root.Props;
231
+ type State = dialog_d_exports.Dialog.Root.State;
232
+ }
233
+ namespace Trigger {
234
+ type Props = dialog_d_exports.Dialog.Trigger.Props;
235
+ type State = dialog_d_exports.Dialog.Trigger.State;
236
+ }
237
+ namespace Portal {
238
+ type Props = dialog_d_exports.Dialog.Portal.Props;
239
+ type State = dialog_d_exports.Dialog.Portal.State;
240
+ }
241
+ namespace Backdrop {
242
+ type Props = dialog_d_exports.Dialog.Backdrop.Props;
243
+ type State = dialog_d_exports.Dialog.Backdrop.State;
244
+ }
245
+ namespace Viewport {
246
+ type Props = dialog_d_exports.Dialog.Viewport.Props;
247
+ type State = dialog_d_exports.Dialog.Viewport.State;
248
+ }
249
+ namespace Popup {
250
+ type Props = dialog_d_exports.Dialog.Popup.Props & {
251
+ /** Cross-axis extent — the dialog's maximum width. Defaults to `md`. */size?: DialogSize;
252
+ /**
253
+ * Surface elevation scope. `elevated` (default) suits content dialogs; `menu` re-themes the
254
+ * subtree for command/list surfaces — the seam `SearchDialog` overrides through.
255
+ */
256
+ elevation?: Surface.Elevation; /** Slot override — `SearchDialog` stamps its own slot to keep its palette geometry. */
257
+ "data-slot"?: string;
258
+ };
259
+ type State = dialog_d_exports.Dialog.Popup.State;
260
+ /** Argument to the `Dialog.Popup.props(...)` escape-hatch helper. */
261
+ type PropsArgs = DialogPopupPropsArgs;
262
+ }
263
+ namespace Content {
264
+ type Props = Popup.Props & {
265
+ /** Classes for the backdrop scrim. */backdropClassName?: string; /** How a tall dialog scrolls — inner body scroll or overlay-level viewport scroll. @default "body" */
266
+ scroll?: DialogScroll; /** Whether `Dialog.CloseButton` renders its corner X. @default true */
267
+ dismissable?: boolean;
268
+ };
269
+ }
270
+ namespace Close {
271
+ type Props = dialog_d_exports.Dialog.Close.Props;
272
+ type State = dialog_d_exports.Dialog.Close.State;
273
+ }
274
+ namespace CloseButton {
275
+ type Props = Omit<dialog_d_exports.Dialog.Close.Props, "render"> & {
276
+ /** The glyph to show; defaults to a lucide `X` Icon. */children?: ReactNode; /** Accessible name; defaults to the localized "Close". */
277
+ "aria-label"?: string;
278
+ };
279
+ }
280
+ namespace Header {
281
+ type Props = ComponentProps<"div">;
282
+ }
283
+ namespace Body {
284
+ type Props = ComponentProps<"div">;
285
+ }
286
+ namespace Footer {
287
+ type Props = ComponentProps<"div">;
288
+ }
289
+ namespace Title {
290
+ type Props = dialog_d_exports.Dialog.Title.Props;
291
+ type State = dialog_d_exports.Dialog.Title.State;
292
+ }
293
+ namespace Description {
294
+ type Props = dialog_d_exports.Dialog.Description.Props;
295
+ type State = dialog_d_exports.Dialog.Description.State;
296
+ }
297
+ }
298
+ //#endregion
299
+ export { Dialog };
@@ -0,0 +1,263 @@
1
+ "use client";
2
+ import { Icon } from "../../icons/icon.js";
3
+ import { XIcon } from "../../icons/glyphs.js";
4
+ import { useInjectedLabels } from "../../core/use-injected-labels.js";
5
+ import { Surface } from "../surface/surface.js";
6
+ import { Button } from "../button/button.js";
7
+ import { dialog_exports } from "../../primitives/dialog.js";
8
+ import { DialogProvider, useDialogContext } from "./dialog.context.js";
9
+ import { DIALOG_SLOTS } from "./dialog.slots.js";
10
+ import { backdropProps, bodyProps, closeButtonProps, closeProps, descriptionProps, footerProps, headerProps, popupProps, titleProps, triggerProps, viewportProps } from "./dialog.props.js";
11
+ import clsx$1 from "clsx";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ //#region src/components/dialog/dialog.tsx
14
+ /** English fallbacks and catalog keys for the corner close's accessible name (resolved per active locale). */
15
+ const DEFAULT_CLOSE_LABELS = { close: "Close" };
16
+ const CLOSE_LABEL_KEYS = { close: "dialog.closeLabel" };
17
+ /**
18
+ * Groups the parts and owns open state. Modal by default — focus is trapped, the page is scroll-locked,
19
+ * and the rest of the document is inert; an outside click or `Escape` closes it. Renders no element of
20
+ * its own (Base UI's `Dialog.Root` is a context provider). Surface Base UI's `modal` and
21
+ * `disablePointerDismissal` here; the panel's `initialFocus`/`finalFocus` live on `Popup`/`Content`.
22
+ *
23
+ * @see {@link Dialog.Root.Props}
24
+ */
25
+ function DialogRoot(props) {
26
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Root, { ...props });
27
+ }
28
+ /**
29
+ * A button that opens the dialog. Wires the accessible relationship to the panel.
30
+ *
31
+ * Slot: `noctis-dialog-trigger`.
32
+ * @see {@link Dialog.Trigger.Props}
33
+ */
34
+ function DialogTrigger(props) {
35
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Trigger, {
36
+ "data-slot": DIALOG_SLOTS.trigger,
37
+ ...props
38
+ });
39
+ }
40
+ /**
41
+ * Moves the panel and backdrop to a portal at the end of `<body>`.
42
+ *
43
+ * @see {@link Dialog.Portal.Props}
44
+ */
45
+ function DialogPortal(props) {
46
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Portal, { ...props });
47
+ }
48
+ /**
49
+ * The scrim behind the panel. Fades with the dialog, blurs and dims everything beneath it.
50
+ *
51
+ * Slot: `noctis-dialog-backdrop`.
52
+ * @see {@link Dialog.Backdrop.Props}
53
+ */
54
+ function DialogBackdrop({ className, ...props }) {
55
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Backdrop, {
56
+ "data-slot": DIALOG_SLOTS.backdrop,
57
+ className,
58
+ ...props
59
+ });
60
+ }
61
+ /**
62
+ * An overlay-level scroll container for a tall dialog. Wraps the popup so the whole panel scrolls inside
63
+ * a scrollable overlay (staying centered when it fits) instead of the body scrolling internally —
64
+ * `Dialog.Content scroll="viewport"` renders it for you. Mirrors Base UI's `Dialog.Viewport`.
65
+ *
66
+ * Slot: `noctis-dialog-viewport`.
67
+ * @see {@link Dialog.Viewport.Props}
68
+ */
69
+ function DialogViewport(props) {
70
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Viewport, {
71
+ "data-slot": DIALOG_SLOTS.viewport,
72
+ ...props
73
+ });
74
+ }
75
+ /**
76
+ * The panel surface itself — centered in the viewport. Portal it (or use {@link Dialog.Content}) and
77
+ * compose the slots inside. Renders **through** `Surface` so the dialog inherits an elevated scope, a
78
+ * border, and the modal shadow; controls inside re-derive off that base. The popup's own paint (centered
79
+ * positioning, blur-backed scale-fade) lives in `dialog.css`, keyed off `data-slot`/`data-size`.
80
+ *
81
+ * Slot: `noctis-dialog-popup` (with `data-size`). Set `initialFocus`/`finalFocus` here (Base UI Popup
82
+ * props) to control where focus lands and returns.
83
+ *
84
+ * @see {@link Dialog.Popup.Props}
85
+ */
86
+ function DialogPopup({ className, size = "md", elevation = "elevated", "data-slot": dataSlot = DIALOG_SLOTS.popup, ...props }) {
87
+ return /* @__PURE__ */ jsx(Surface, {
88
+ elevation,
89
+ bordered: true,
90
+ shadow: "modal",
91
+ "data-slot": dataSlot,
92
+ "data-size": size,
93
+ render: /* @__PURE__ */ jsx(dialog_exports.Dialog.Popup, {
94
+ className,
95
+ ...props
96
+ })
97
+ });
98
+ }
99
+ /**
100
+ * The common composition: portal, backdrop, and panel in one. Drop `Dialog.Header`/`Body`/`Footer`
101
+ * (and a `Dialog.CloseButton`) inside. Set `scroll="viewport"` for overlay-level scrolling of a tall
102
+ * panel, or `dismissable={false}` to suppress the corner close. Reach for the granular parts when you
103
+ * need to customize the portal or backdrop wiring.
104
+ *
105
+ * @see {@link Dialog.Content.Props}
106
+ */
107
+ function DialogContent({ children, backdropClassName, scroll = "body", dismissable = true, ...props }) {
108
+ const popup = /* @__PURE__ */ jsx(DialogPopup, {
109
+ ...props,
110
+ children
111
+ });
112
+ return /* @__PURE__ */ jsx(DialogProvider, {
113
+ value: { dismissable },
114
+ children: /* @__PURE__ */ jsxs(DialogPortal, { children: [/* @__PURE__ */ jsx(DialogBackdrop, { className: backdropClassName }), scroll === "viewport" ? /* @__PURE__ */ jsx(DialogViewport, { children: popup }) : popup] })
115
+ });
116
+ }
117
+ /**
118
+ * Closes the nearest dialog. Renders a bare button and carries no styling of its own, so it composes
119
+ * with any Noctis `Button` through `render` — a ghost icon button for the corner dismiss, or a
120
+ * secondary/primary `Button` for a footer action — and that Button behaves exactly as it does anywhere
121
+ * else. Give it an `aria-label` (or visible text) for the accessible name. For the standard corner X,
122
+ * reach for {@link Dialog.CloseButton} instead.
123
+ *
124
+ * Slot: `noctis-dialog-close`.
125
+ * @see {@link Dialog.Close.Props}
126
+ */
127
+ function DialogClose({ className, ...props }) {
128
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Close, {
129
+ "data-slot": DIALOG_SLOTS.close,
130
+ className,
131
+ ...props
132
+ });
133
+ }
134
+ /**
135
+ * The built-in corner close — a ghost icon `Button` with a localized `aria-label`, dropped into the
136
+ * header's reserved inline-end gutter (no `absolute`, so a long title never runs under it). Defaults its
137
+ * icon to a lucide `X` and its name to the translated "Close"; pass `children` to swap the glyph or
138
+ * `aria-label` to override the name. Renders nothing when an enclosing `Dialog.Content` sets
139
+ * `dismissable={false}`.
140
+ *
141
+ * Slot: `noctis-dialog-close` (shared with `Dialog.Close`).
142
+ * @see {@link Dialog.CloseButton.Props}
143
+ */
144
+ function DialogCloseButton({ children, "aria-label": ariaLabel, ...props }) {
145
+ const context = useDialogContext();
146
+ const labels = useInjectedLabels(DEFAULT_CLOSE_LABELS, CLOSE_LABEL_KEYS, void 0);
147
+ if (context && !context.dismissable) return null;
148
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Close, {
149
+ "data-slot": DIALOG_SLOTS.close,
150
+ "aria-label": ariaLabel ?? labels.close,
151
+ ...props,
152
+ render: /* @__PURE__ */ jsx(Button, {
153
+ variant: "ghost",
154
+ size: "sm",
155
+ iconOnly: true
156
+ }),
157
+ children: children ?? /* @__PURE__ */ jsx(Icon, {
158
+ icon: XIcon,
159
+ size: "sm"
160
+ })
161
+ });
162
+ }
163
+ /**
164
+ * The panel's top region — title, description, and the corner close. A row whose first column stacks the
165
+ * title over the description and whose inline-end gutter reserves room for `Dialog.CloseButton`, all over
166
+ * a divider.
167
+ *
168
+ * Slot: `noctis-dialog-header`.
169
+ * @see {@link Dialog.Header.Props}
170
+ */
171
+ function DialogHeader({ className, ...props }) {
172
+ return /* @__PURE__ */ jsx("div", {
173
+ "data-slot": DIALOG_SLOTS.header,
174
+ className: clsx$1(className),
175
+ ...props
176
+ });
177
+ }
178
+ /**
179
+ * The scrollable middle region. Grows to fill and scrolls its overflow so the header/footer stay put.
180
+ *
181
+ * Slot: `noctis-dialog-body`.
182
+ * @see {@link Dialog.Body.Props}
183
+ */
184
+ function DialogBody({ className, ...props }) {
185
+ return /* @__PURE__ */ jsx("div", {
186
+ "data-slot": DIALOG_SLOTS.body,
187
+ className: clsx$1(className),
188
+ ...props
189
+ });
190
+ }
191
+ /**
192
+ * The panel's bottom region — pinned to the base, typically holding the primary/secondary actions.
193
+ *
194
+ * Slot: `noctis-dialog-footer`.
195
+ * @see {@link Dialog.Footer.Props}
196
+ */
197
+ function DialogFooter({ className, ...props }) {
198
+ return /* @__PURE__ */ jsx("div", {
199
+ "data-slot": DIALOG_SLOTS.footer,
200
+ className: clsx$1(className),
201
+ ...props
202
+ });
203
+ }
204
+ /**
205
+ * The accessible name of the dialog, linked to the panel via `aria-labelledby`. Renders an `<h2>`.
206
+ *
207
+ * Slot: `noctis-dialog-title`.
208
+ * @see {@link Dialog.Title.Props}
209
+ */
210
+ function DialogTitle({ className, ...props }) {
211
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Title, {
212
+ "data-slot": DIALOG_SLOTS.title,
213
+ className,
214
+ ...props
215
+ });
216
+ }
217
+ /**
218
+ * Supporting copy under the title, linked to the panel via `aria-describedby`.
219
+ *
220
+ * Slot: `noctis-dialog-description`.
221
+ * @see {@link Dialog.Description.Props}
222
+ */
223
+ function DialogDescription({ className, ...props }) {
224
+ return /* @__PURE__ */ jsx(dialog_exports.Dialog.Description, {
225
+ "data-slot": DIALOG_SLOTS.description,
226
+ className,
227
+ ...props
228
+ });
229
+ }
230
+ /**
231
+ * A centered modal, built on Base UI's Dialog for focus management, scroll-lock, and
232
+ * `Escape`/outside-click dismissal. Compose it from parts: `Dialog.Root` owns state, `Dialog.Trigger`
233
+ * opens it, and `Dialog.Content` (or `Portal` + `Backdrop` + optional `Viewport` + `Popup`) renders the
234
+ * panel holding `Header`/`Body`/`Footer`, `Title`/`Description`, a `CloseButton`, and footer `Close`
235
+ * actions. The panel sits in the middle of the viewport over a blurred, dimming scrim; `Sheet` is the
236
+ * edge-docked sibling for the same composition.
237
+ *
238
+ * Styling is precompiled in `dialog.css`, keyed off each part's `data-slot` (plus `data-size` on the
239
+ * popup); the popup renders through `Surface` for its elevated scope, border, and modal shadow. Each
240
+ * part's function value carries the D12 `props()` escape hatch via `Object.assign` — spread it onto a
241
+ * foreign element to style it as that part.
242
+ *
243
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
244
+ * exposed through the matching `Dialog` namespace below — e.g. `Dialog.Popup.Props`, `Dialog.Close.State`.
245
+ */
246
+ const Dialog = {
247
+ Root: DialogRoot,
248
+ Trigger: Object.assign(DialogTrigger, { props: triggerProps }),
249
+ Portal: DialogPortal,
250
+ Backdrop: Object.assign(DialogBackdrop, { props: backdropProps }),
251
+ Viewport: Object.assign(DialogViewport, { props: viewportProps }),
252
+ Popup: Object.assign(DialogPopup, { props: popupProps }),
253
+ Content: DialogContent,
254
+ Close: Object.assign(DialogClose, { props: closeProps }),
255
+ CloseButton: Object.assign(DialogCloseButton, { props: closeButtonProps }),
256
+ Header: Object.assign(DialogHeader, { props: headerProps }),
257
+ Body: Object.assign(DialogBody, { props: bodyProps }),
258
+ Footer: Object.assign(DialogFooter, { props: footerProps }),
259
+ Title: Object.assign(DialogTitle, { props: titleProps }),
260
+ Description: Object.assign(DialogDescription, { props: descriptionProps })
261
+ };
262
+ //#endregion
263
+ export { Dialog };
@@ -0,0 +1,71 @@
1
+ import { DialogSize } from "./dialog.types.js";
2
+
3
+ //#region src/components/dialog/dialog.props.d.ts
4
+ /** A spreadable data-attribute prop bag — the shape every `Dialog.*.props()` returns. */
5
+ type DialogPartProps = {
6
+ /** The slot value the matching `dialog.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 `Dialog.Popup.props(...)` — the cross-axis cap the popup rules key their width off. */
16
+ interface DialogPopupPropsArgs extends BasePropsArgs {
17
+ /** Cross-axis extent — the dialog's maximum width. @default "md" */
18
+ size?: DialogSize;
19
+ }
20
+ /** Argument to a stateless part's `.props(...)` — no variants of its own; look flows from the popup. */
21
+ type DialogStatelessPropsArgs = BasePropsArgs;
22
+ /** Trigger prop bag: just the slot anchor. */
23
+ declare function triggerProps({
24
+ className
25
+ }?: DialogStatelessPropsArgs): DialogPartProps;
26
+ /** Backdrop prop bag: just the slot anchor (the scrim's paint flows from `dialog.css`). */
27
+ declare function backdropProps({
28
+ className
29
+ }?: DialogStatelessPropsArgs): DialogPartProps;
30
+ /** Viewport prop bag: just the slot anchor (the overlay-level scroll container for `scroll="viewport"`). */
31
+ declare function viewportProps({
32
+ className
33
+ }?: DialogStatelessPropsArgs): DialogPartProps;
34
+ /** Popup prop bag: slot anchor plus the `data-size` the popup width rule reads. */
35
+ declare function popupProps({
36
+ size,
37
+ className
38
+ }?: DialogPopupPropsArgs): DialogPartProps;
39
+ /** Close prop bag: just the slot anchor (it carries no paint of its own — it composes with a Button). */
40
+ declare function closeProps({
41
+ className
42
+ }?: DialogStatelessPropsArgs): DialogPartProps;
43
+ /**
44
+ * CloseButton prop bag: the same `noctis-dialog-close` slot the convenience corner button reuses, so a
45
+ * hand-built close affordance and `Dialog.CloseButton` anchor on the identical selector.
46
+ */
47
+ declare function closeButtonProps({
48
+ className
49
+ }?: DialogStatelessPropsArgs): DialogPartProps;
50
+ /** Header prop bag: just the slot anchor. */
51
+ declare function headerProps({
52
+ className
53
+ }?: DialogStatelessPropsArgs): DialogPartProps;
54
+ /** Body prop bag: just the slot anchor. */
55
+ declare function bodyProps({
56
+ className
57
+ }?: DialogStatelessPropsArgs): DialogPartProps;
58
+ /** Footer prop bag: just the slot anchor. */
59
+ declare function footerProps({
60
+ className
61
+ }?: DialogStatelessPropsArgs): DialogPartProps;
62
+ /** Title prop bag: just the slot anchor. */
63
+ declare function titleProps({
64
+ className
65
+ }?: DialogStatelessPropsArgs): DialogPartProps;
66
+ /** Description prop bag: just the slot anchor. */
67
+ declare function descriptionProps({
68
+ className
69
+ }?: DialogStatelessPropsArgs): DialogPartProps;
70
+ //#endregion
71
+ export { DialogPartProps, DialogPopupPropsArgs, backdropProps, bodyProps, closeButtonProps, closeProps, descriptionProps, footerProps, headerProps, popupProps, titleProps, triggerProps, viewportProps };