@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
package/README.md ADDED
@@ -0,0 +1,60 @@
1
+ # @stridge/noctis
2
+
3
+ The Stridge design system, and the single package consumers install. It pairs Base UI
4
+ behavior with precompiled, **framework-neutral component CSS** on the semantic token layer, and
5
+ ships the authoring substrate every primitive builds on — the polymorphic `Primitive` base, the
6
+ `Surface` elevation primitive, render utilities, `Icon`, and the unified `NoctisProvider` (CSP +
7
+ theme + locale/direction). It re-exports the design tokens, theme engine, and i18n through
8
+ subpaths so apps depend on one package.
9
+
10
+ ## Styling
11
+
12
+ Components are styled by hand-authored, per-component `.css` under `@layer noctis.components`,
13
+ keyed off `data-slot` — no styling framework required. Import the one stylesheet:
14
+
15
+ ```ts
16
+ // app CSS entry
17
+ @import "@stridge/noctis/styles.css";
18
+ ```
19
+
20
+ Authoring _with Tailwind_ is optional. Tailwind users additionally import the utility bridge and
21
+ pull class helpers from the adapter subpath:
22
+
23
+ ```ts
24
+ @import "@stridge/noctis/tailwind.css"; // mints bg-background-style utilities
25
+ ```
26
+
27
+ ```tsx
28
+ import { cn, tv } from "@stridge/noctis/tailwind";
29
+ import { Primitive } from "@stridge/noctis";
30
+ ```
31
+
32
+ ## Usage
33
+
34
+ ```tsx
35
+ import { Button, Dialog, NoctisProvider } from "@stridge/noctis";
36
+
37
+ <NoctisProvider>
38
+ <Button>Save</Button>
39
+ </NoctisProvider>;
40
+ ```
41
+
42
+ ## Subpaths
43
+
44
+ - `@stridge/noctis` — components + authoring substrate (`Primitive`, `Surface`, `NoctisProvider`, `Icon`, …).
45
+ - `@stridge/noctis/props` — RSC-safe `*Props()` escape-hatch builders (no `"use client"` boundary).
46
+ - `@stridge/noctis/styles.css` — the precompiled component stylesheet.
47
+ - `@stridge/noctis/tailwind.css` — the optional Tailwind utility bridge.
48
+ - `@stridge/noctis/tailwind` — the optional Tailwind adapter (`cn`, `tv`).
49
+ - `@stridge/noctis/tokens` (+ `/react`) — re-exported `@stridge/noctis-design-tokens`.
50
+ - `@stridge/noctis/theme` (+ `/react`) — re-exported `@stridge/noctis-theme-engine`.
51
+ - `@stridge/noctis/i18n` (+ `/messages`) — re-exported `@stridge/noctis-intl` + the default catalog.
52
+ - `@stridge/noctis/primitives` (+ `/*`) — the generated Base UI primitive re-exports.
53
+
54
+ ## Build & checks
55
+
56
+ `build` runs `tsdown` then `scripts/bundle-css.mjs`; `check:publish` runs `publint` + `size-limit`.
57
+ Component CSS is governed by stylelint.
58
+
59
+ The component authoring contract lives in [COMPONENTS.md](./COMPONENTS.md), the slot catalog in
60
+ [SLOTS.md](./SLOTS.md), and the repo-wide rules in [/AGENTS.md](../../AGENTS.md).
@@ -0,0 +1,27 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __exportAll = (all, no_symbols) => {
7
+ let target = {};
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ return target;
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
17
+ key = keys[i];
18
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: ((k) => from[k]).bind(null, key),
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
26
+ //#endregion
27
+ export { __exportAll, __reExport };
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { createContext, use } from "react";
3
+ //#region src/components/accordion/accordion.context.ts
4
+ const AccordionContext = createContext(null);
5
+ /** Provided by `Accordion.Root`; carries the shared size/level/landmark settings. */
6
+ const AccordionProvider = AccordionContext.Provider;
7
+ /**
8
+ * Read the stack settings, or `null` for a part rendered outside `Accordion.Root` (the escape-hatch
9
+ * `*.props()` path) — it never throws, so a bare part falls back to the component defaults.
10
+ */
11
+ function useAccordionContext() {
12
+ return use(AccordionContext);
13
+ }
14
+ //#endregion
15
+ export { AccordionProvider, useAccordionContext };
@@ -0,0 +1,136 @@
1
+ import { accordion_d_exports } from "../../primitives/accordion.js";
2
+ import { AccordionPartProps, itemProps, panelProps, rootProps, triggerProps } from "./accordion.props.js";
3
+ import { AccordionLevel, AccordionSize } from "./accordion.types.js";
4
+ import { ReactElement, ReactNode } from "react";
5
+
6
+ //#region src/components/accordion/accordion.d.ts
7
+ /**
8
+ * Groups the accordion items and owns which are expanded. Works controlled (`value` + `onValueChange`)
9
+ * or uncontrolled (`defaultValue`); the value is the array of open item values. By default one item is
10
+ * open at a time — pass `multiple` to let several stay open together. The stack-wide settings live here:
11
+ * `size` (sm · md), the heading `level`, and whether panels keep their `region` landmark
12
+ * (`landmarkPanels`).
13
+ *
14
+ * Compose one `Accordion.Item` per section, each holding an `Accordion.Trigger` over an
15
+ * `Accordion.Panel`.
16
+ */
17
+ declare function AccordionRoot({
18
+ size,
19
+ level,
20
+ landmarkPanels,
21
+ role,
22
+ className,
23
+ children,
24
+ ...props
25
+ }: Accordion.Root.Props): ReactElement;
26
+ /**
27
+ * One collapsible section: a trigger over a panel. Pass `value` to control or initialise its open state
28
+ * from `Accordion.Root`; omit it and Base UI generates a stable one. The bare item carries only the
29
+ * hairline rule dividing it from the next — wrap the stack or pad the item with `className` to build a
30
+ * bordered or card layout. Base UI stamps the live `data-open`/`data-disabled`.
31
+ */
32
+ declare function AccordionItem({
33
+ className,
34
+ children,
35
+ ...props
36
+ }: Accordion.Item.Props): ReactElement;
37
+ /**
38
+ * The full-width button that expands and collapses its panel, wrapped in its own heading so the section
39
+ * sits at the right rank in the document outline. Renders an `<h{level}>` around the button — the Root's
40
+ * `level` (default `3`) unless this trigger overrides it. Base UI wires `aria-expanded` and
41
+ * `aria-controls`, the roving focus, and the `data-panel-open` the muted chevron rotates a half-turn off.
42
+ * Pass the label as children; the chevron is appended automatically.
43
+ */
44
+ declare function AccordionTrigger({
45
+ level: levelOverride,
46
+ className,
47
+ children,
48
+ ...props
49
+ }: Accordion.Trigger.Props): ReactElement;
50
+ /**
51
+ * The disclosed content for one item. Its height animates open and closed via Base UI's measured
52
+ * `--accordion-panel-height`, respecting `prefers-reduced-motion`. Base UI labels it `role="region"` by
53
+ * its trigger; a large stack auto-steps that back to `group` (per `Accordion.Root`'s `landmarkPanels`)
54
+ * so the landmark list stays useful. Keep it mounted while closed with `keepMounted`, or expose it to
55
+ * in-page find with `hiddenUntilFound`.
56
+ */
57
+ declare function AccordionPanel({
58
+ className,
59
+ children,
60
+ role,
61
+ ...props
62
+ }: Accordion.Panel.Props): ReactElement;
63
+ /**
64
+ * A stack of collapsible sections in the shadcn recipe: each item is a heading/trigger over a panel,
65
+ * divided from the next by a single hairline rule, with a medium-weight edge-aligned trigger and a muted
66
+ * chevron that rotates a half-turn as its panel expands. The accordion carries no chrome of its own —
67
+ * build a bordered or card layout by wrapping the stack and padding the items with `className`.
68
+ *
69
+ * Built on Base UI's Accordion, so the stack is fully keyboard-operable (arrows move between triggers,
70
+ * Home/End jump to the ends, Enter/Space toggle), RTL-aware, and the height animation respects
71
+ * `prefers-reduced-motion`. The look is set on `Accordion.Root`: `size` (sm · md), the heading `level`,
72
+ * and `landmarkPanels`.
73
+ *
74
+ * Compose from parts: `Accordion.Root` owns the open value(s); each `Accordion.Item` holds an
75
+ * `Accordion.Trigger` over an `Accordion.Panel`.
76
+ *
77
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
78
+ * exposed through the matching `Accordion` namespace — e.g. `Accordion.Item.Props`.
79
+ */
80
+ declare const Accordion: {
81
+ /** Owns the open value(s) and the stack-wide settings. `Accordion.Root.props()` → its spreadable prop bag. */Root: typeof AccordionRoot & {
82
+ props: typeof rootProps;
83
+ }; /** One collapsible section. `Accordion.Item.props({ open, disabled })` → its spreadable prop bag. */
84
+ Item: typeof AccordionItem & {
85
+ props: typeof itemProps;
86
+ }; /** The heading/toggle button. `Accordion.Trigger.props({ open, disabled })` → its spreadable prop bag. */
87
+ Trigger: typeof AccordionTrigger & {
88
+ props: typeof triggerProps;
89
+ }; /** The disclosed content. `Accordion.Panel.props({ open, disabled })` → its spreadable prop bag. */
90
+ Panel: typeof AccordionPanel & {
91
+ props: typeof panelProps;
92
+ };
93
+ };
94
+ /**
95
+ * Per-part prop and state types, mirroring Base UI's `Component.Part.Props` convention. Types-only —
96
+ * it emits no runtime code and merges with the `Accordion` object above, so `Accordion.Item` is the
97
+ * component value while `Accordion.Item.Props` is its prop type.
98
+ */
99
+ declare namespace Accordion {
100
+ /** The spreadable data-attribute prop bag every `Accordion.*.props()` returns (D12). */
101
+ type PartProps = AccordionPartProps;
102
+ /** The trigger/content size. */
103
+ type Size = AccordionSize;
104
+ /** The heading rank. */
105
+ type Level = AccordionLevel;
106
+ namespace Root {
107
+ type Props = Omit<accordion_d_exports.Accordion.Root.Props, "className" | "children"> & {
108
+ /** The trigger and content size. Defaults to `md`. */size?: AccordionSize; /** The heading rank every `Accordion.Trigger` renders (overridable per trigger). Defaults to `3`. */
109
+ level?: AccordionLevel;
110
+ /**
111
+ * Force the panels' `region` landmark on or off. Defaults to auto — on for stacks of six or
112
+ * fewer expandable items, off (a plain `group`) above, per the APG landmark-flooding guidance.
113
+ */
114
+ landmarkPanels?: boolean; /** The `Accordion.Item`s. */
115
+ children?: ReactNode; /** Classes merged onto the root. */
116
+ className?: string;
117
+ };
118
+ type State = accordion_d_exports.Accordion.Root.State;
119
+ }
120
+ namespace Item {
121
+ type Props = accordion_d_exports.Accordion.Item.Props;
122
+ type State = accordion_d_exports.Accordion.Item.State;
123
+ }
124
+ namespace Trigger {
125
+ type Props = accordion_d_exports.Accordion.Trigger.Props & {
126
+ /** Override the Root's heading rank for this trigger's heading alone. */level?: AccordionLevel;
127
+ };
128
+ type State = accordion_d_exports.Accordion.Trigger.State;
129
+ }
130
+ namespace Panel {
131
+ type Props = accordion_d_exports.Accordion.Panel.Props;
132
+ type State = accordion_d_exports.Accordion.Panel.State;
133
+ }
134
+ }
135
+ //#endregion
136
+ export { Accordion };
@@ -0,0 +1,132 @@
1
+ "use client";
2
+ import { Icon } from "../../icons/icon.js";
3
+ import { ChevronDownIcon } from "../../icons/glyphs.js";
4
+ import { accordion_exports } from "../../primitives/accordion.js";
5
+ import { AccordionProvider, useAccordionContext } from "./accordion.context.js";
6
+ import { ACCORDION_SLOTS } from "./accordion.slots.js";
7
+ import { itemProps, panelProps, rootProps, triggerProps } from "./accordion.props.js";
8
+ import { Children, createElement } from "react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ //#region src/components/accordion/accordion.tsx
11
+ /** APG warns against more than six simultaneously-expandable landmark regions, so auto-drop past this. */
12
+ const LANDMARK_ITEM_LIMIT = 6;
13
+ /**
14
+ * Groups the accordion items and owns which are expanded. Works controlled (`value` + `onValueChange`)
15
+ * or uncontrolled (`defaultValue`); the value is the array of open item values. By default one item is
16
+ * open at a time — pass `multiple` to let several stay open together. The stack-wide settings live here:
17
+ * `size` (sm · md), the heading `level`, and whether panels keep their `region` landmark
18
+ * (`landmarkPanels`).
19
+ *
20
+ * Compose one `Accordion.Item` per section, each holding an `Accordion.Trigger` over an
21
+ * `Accordion.Panel`.
22
+ */
23
+ function AccordionRoot({ size = "md", level = 3, landmarkPanels, role, className, children, ...props }) {
24
+ const nested = useAccordionContext() !== null;
25
+ const landmark = landmarkPanels ?? (!nested && Children.toArray(children).length <= LANDMARK_ITEM_LIMIT);
26
+ return /* @__PURE__ */ jsx(accordion_exports.Accordion.Root, {
27
+ "data-slot": ACCORDION_SLOTS.root,
28
+ "data-size": size,
29
+ role: role ?? "group",
30
+ className,
31
+ ...props,
32
+ children: /* @__PURE__ */ jsx(AccordionProvider, {
33
+ value: {
34
+ size,
35
+ level,
36
+ landmark
37
+ },
38
+ children
39
+ })
40
+ });
41
+ }
42
+ /**
43
+ * One collapsible section: a trigger over a panel. Pass `value` to control or initialise its open state
44
+ * from `Accordion.Root`; omit it and Base UI generates a stable one. The bare item carries only the
45
+ * hairline rule dividing it from the next — wrap the stack or pad the item with `className` to build a
46
+ * bordered or card layout. Base UI stamps the live `data-open`/`data-disabled`.
47
+ */
48
+ function AccordionItem({ className, children, ...props }) {
49
+ return /* @__PURE__ */ jsx(accordion_exports.Accordion.Item, {
50
+ "data-slot": ACCORDION_SLOTS.item,
51
+ className,
52
+ ...props,
53
+ children
54
+ });
55
+ }
56
+ /**
57
+ * The full-width button that expands and collapses its panel, wrapped in its own heading so the section
58
+ * sits at the right rank in the document outline. Renders an `<h{level}>` around the button — the Root's
59
+ * `level` (default `3`) unless this trigger overrides it. Base UI wires `aria-expanded` and
60
+ * `aria-controls`, the roving focus, and the `data-panel-open` the muted chevron rotates a half-turn off.
61
+ * Pass the label as children; the chevron is appended automatically.
62
+ */
63
+ function AccordionTrigger({ level: levelOverride, className, children, ...props }) {
64
+ const context = useAccordionContext();
65
+ const level = levelOverride ?? context?.level ?? 3;
66
+ return /* @__PURE__ */ jsx(accordion_exports.Accordion.Header, {
67
+ "data-slot": ACCORDION_SLOTS.header,
68
+ render: createElement(`h${level}`),
69
+ children: /* @__PURE__ */ jsxs(accordion_exports.Accordion.Trigger, {
70
+ "data-slot": ACCORDION_SLOTS.trigger,
71
+ className,
72
+ ...props,
73
+ children: [children, /* @__PURE__ */ jsx("span", {
74
+ "data-slot": ACCORDION_SLOTS.triggerIcon,
75
+ "aria-hidden": true,
76
+ children: /* @__PURE__ */ jsx(Icon, {
77
+ icon: ChevronDownIcon,
78
+ directional: true
79
+ })
80
+ })]
81
+ })
82
+ });
83
+ }
84
+ /**
85
+ * The disclosed content for one item. Its height animates open and closed via Base UI's measured
86
+ * `--accordion-panel-height`, respecting `prefers-reduced-motion`. Base UI labels it `role="region"` by
87
+ * its trigger; a large stack auto-steps that back to `group` (per `Accordion.Root`'s `landmarkPanels`)
88
+ * so the landmark list stays useful. Keep it mounted while closed with `keepMounted`, or expose it to
89
+ * in-page find with `hiddenUntilFound`.
90
+ */
91
+ function AccordionPanel({ className, children, role, ...props }) {
92
+ const landmark = useAccordionContext()?.landmark ?? true;
93
+ return /* @__PURE__ */ jsx(accordion_exports.Accordion.Panel, {
94
+ "data-slot": ACCORDION_SLOTS.panel,
95
+ role: role ?? (landmark ? "region" : "group"),
96
+ className,
97
+ ...props,
98
+ children: /* @__PURE__ */ jsx("div", {
99
+ "data-slot": ACCORDION_SLOTS.panelContent,
100
+ children
101
+ })
102
+ });
103
+ }
104
+ /**
105
+ * A stack of collapsible sections in the shadcn recipe: each item is a heading/trigger over a panel,
106
+ * divided from the next by a single hairline rule, with a medium-weight edge-aligned trigger and a muted
107
+ * chevron that rotates a half-turn as its panel expands. The accordion carries no chrome of its own —
108
+ * build a bordered or card layout by wrapping the stack and padding the items with `className`.
109
+ *
110
+ * Built on Base UI's Accordion, so the stack is fully keyboard-operable (arrows move between triggers,
111
+ * Home/End jump to the ends, Enter/Space toggle), RTL-aware, and the height animation respects
112
+ * `prefers-reduced-motion`. The look is set on `Accordion.Root`: `size` (sm · md), the heading `level`,
113
+ * and `landmarkPanels`.
114
+ *
115
+ * Compose from parts: `Accordion.Root` owns the open value(s); each `Accordion.Item` holds an
116
+ * `Accordion.Trigger` over an `Accordion.Panel`.
117
+ *
118
+ * The runtime compound is a plain object (kept tree-shakeable); per-part prop and state types are
119
+ * exposed through the matching `Accordion` namespace — e.g. `Accordion.Item.Props`.
120
+ */
121
+ const Accordion = {
122
+ /** Owns the open value(s) and the stack-wide settings. `Accordion.Root.props()` → its spreadable prop bag. */
123
+ Root: Object.assign(AccordionRoot, { props: rootProps }),
124
+ /** One collapsible section. `Accordion.Item.props({ open, disabled })` → its spreadable prop bag. */
125
+ Item: Object.assign(AccordionItem, { props: itemProps }),
126
+ /** The heading/toggle button. `Accordion.Trigger.props({ open, disabled })` → its spreadable prop bag. */
127
+ Trigger: Object.assign(AccordionTrigger, { props: triggerProps }),
128
+ /** The disclosed content. `Accordion.Panel.props({ open, disabled })` → its spreadable prop bag. */
129
+ Panel: Object.assign(AccordionPanel, { props: panelProps })
130
+ };
131
+ //#endregion
132
+ export { Accordion };
@@ -0,0 +1,45 @@
1
+ //#region src/components/accordion/accordion.props.d.ts
2
+ /** A spreadable data-attribute prop bag — the shape every `Accordion.*.props()` returns. */
3
+ type AccordionPartProps = {
4
+ /** The slot value the matching `accordion.css` rules anchor on. */"data-slot": string; /** Forwarded verbatim — styling is attribute-driven, so this is an optional consumer passthrough. */
5
+ className?: string; /** A data-attribute present (empty string) or absent (`undefined`); never `false`. */
6
+ [attr: `data-${string}`]: string | undefined;
7
+ };
8
+ /** Common shape: every part's `.props()` accepts an optional `className` passthrough. */
9
+ interface BasePropsArgs {
10
+ /** Forwarded verbatim onto the returned prop bag. */
11
+ className?: string;
12
+ }
13
+ /** Argument to the open/disabled-aware part helpers — the per-item state the CSS keys its look off. */
14
+ interface AccordionStatePropsArgs extends BasePropsArgs {
15
+ /** Whether this item is expanded (drives the chevron rotation and panel reveal via `data-open`). */
16
+ open?: boolean;
17
+ /** Whether this item is disabled (drives the not-allowed affordance via `data-disabled`). */
18
+ disabled?: boolean;
19
+ }
20
+ /** Argument to a stateless part's `.props(...)` — no state of its own. */
21
+ type AccordionStatelessPropsArgs = BasePropsArgs;
22
+ /** Root prop bag: just the slot anchor (the stack metrics flow from it). */
23
+ declare function rootProps({
24
+ className
25
+ }?: AccordionStatelessPropsArgs): AccordionPartProps;
26
+ /** Item prop bag: slot anchor plus the `data-open`/`data-disabled` state. */
27
+ declare function itemProps({
28
+ open,
29
+ disabled,
30
+ className
31
+ }?: AccordionStatePropsArgs): AccordionPartProps;
32
+ /** Trigger prop bag: slot anchor plus the `data-panel-open`/`data-disabled` state. */
33
+ declare function triggerProps({
34
+ open,
35
+ disabled,
36
+ className
37
+ }?: AccordionStatePropsArgs): AccordionPartProps;
38
+ /** Panel prop bag: slot anchor plus the `data-open`/`data-disabled` state. */
39
+ declare function panelProps({
40
+ open,
41
+ disabled,
42
+ className
43
+ }?: AccordionStatePropsArgs): AccordionPartProps;
44
+ //#endregion
45
+ export { AccordionPartProps, itemProps, panelProps, rootProps, triggerProps };
@@ -0,0 +1,53 @@
1
+ import { ACCORDION_SLOTS } from "./accordion.slots.js";
2
+ //#region src/components/accordion/accordion.props.ts
3
+ /**
4
+ * The D12 unified variant contract for Accordion — a spreadable, data-attribute-native prop bag per
5
+ * part. Each compound part exposes a `props(...)` builder returning `{ "data-slot":
6
+ * "noctis-accordion-<part>", ...dataAttrs }`, so spreading a part's `props()` onto a *foreign* element
7
+ * styles it as that part (the precompiled `accordion.css` keys every rule off the slot the bag
8
+ * carries):
9
+ *
10
+ * <button {...Accordion.Trigger.props({ open: true })}>Shipping</button>
11
+ * // → <button data-slot="noctis-accordion-trigger" data-panel-open="">
12
+ *
13
+ * Boolean state is a bare flag — present (`""`) when on, absent (`undefined`) when off — never `false`.
14
+ * The bag carries no className; an optional `className` passthrough is accepted and forwarded verbatim.
15
+ * The same variant→data-attribute→values mapping is emitted as data from the token graph
16
+ * (`generated/declarations.json`) so non-React / agent consumers can hand-write the markup.
17
+ */
18
+ /** Stamp a boolean state as a bare data-attribute: present (`""`) when on, absent (`undefined`) when off. */
19
+ const flag = (on) => on ? "" : void 0;
20
+ const withClassName = (bag, className) => className === void 0 ? bag : {
21
+ ...bag,
22
+ className
23
+ };
24
+ /** Root prop bag: just the slot anchor (the stack metrics flow from it). */
25
+ function rootProps({ className } = {}) {
26
+ return withClassName({ "data-slot": ACCORDION_SLOTS.root }, className);
27
+ }
28
+ /** Item prop bag: slot anchor plus the `data-open`/`data-disabled` state. */
29
+ function itemProps({ open, disabled, className } = {}) {
30
+ return withClassName({
31
+ "data-slot": ACCORDION_SLOTS.item,
32
+ "data-open": flag(open),
33
+ "data-disabled": flag(disabled)
34
+ }, className);
35
+ }
36
+ /** Trigger prop bag: slot anchor plus the `data-panel-open`/`data-disabled` state. */
37
+ function triggerProps({ open, disabled, className } = {}) {
38
+ return withClassName({
39
+ "data-slot": ACCORDION_SLOTS.trigger,
40
+ "data-panel-open": flag(open),
41
+ "data-disabled": flag(disabled)
42
+ }, className);
43
+ }
44
+ /** Panel prop bag: slot anchor plus the `data-open`/`data-disabled` state. */
45
+ function panelProps({ open, disabled, className } = {}) {
46
+ return withClassName({
47
+ "data-slot": ACCORDION_SLOTS.panel,
48
+ "data-open": flag(open),
49
+ "data-disabled": flag(disabled)
50
+ }, className);
51
+ }
52
+ //#endregion
53
+ export { itemProps, panelProps, rootProps, triggerProps };
@@ -0,0 +1,24 @@
1
+ //#region src/components/accordion/accordion.slots.d.ts
2
+ /**
3
+ * The `data-*` hooks `Accordion` stamps on its parts, for host-side styling and tests. Slot values
4
+ * mark each rendered element; the state attributes are emitted by Base UI's Accordion — pair a slot
5
+ * with a state to target, say, only the open item's trigger.
6
+ */
7
+ declare enum AccordionDataAttributes {
8
+ /** The slot name on every rendered part. */
9
+ slot = "data-slot",
10
+ /** Present on the item, header, and panel while that item is expanded. */
11
+ open = "data-open",
12
+ /** Present on the trigger while its panel is expanded. */
13
+ panelOpen = "data-panel-open",
14
+ /** Present on a disabled item, header, trigger, and panel. */
15
+ disabled = "data-disabled",
16
+ /** The item's zero-based position in the stack. */
17
+ index = "data-index",
18
+ /** `horizontal` | `vertical` — the accordion's orientation. */
19
+ orientation = "data-orientation",
20
+ /** The transition phase of the panel — present while it animates open or closed. */
21
+ startingStyle = "data-starting-style"
22
+ }
23
+ //#endregion
24
+ export { AccordionDataAttributes };
@@ -0,0 +1,39 @@
1
+ //#region src/components/accordion/accordion.slots.ts
2
+ /**
3
+ * The slot vocabulary every `Accordion` 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, so keep this in lockstep with the declaration's `anatomy`.
6
+ */
7
+ const ACCORDION_SLOTS = {
8
+ root: "noctis-accordion",
9
+ item: "noctis-accordion-item",
10
+ header: "noctis-accordion-header",
11
+ trigger: "noctis-accordion-trigger",
12
+ triggerIcon: "noctis-accordion-trigger-icon",
13
+ panel: "noctis-accordion-panel",
14
+ panelContent: "noctis-accordion-panel-content"
15
+ };
16
+ /**
17
+ * The `data-*` hooks `Accordion` stamps on its parts, for host-side styling and tests. Slot values
18
+ * mark each rendered element; the state attributes are emitted by Base UI's Accordion — pair a slot
19
+ * with a state to target, say, only the open item's trigger.
20
+ */
21
+ let AccordionDataAttributes = /* @__PURE__ */ function(AccordionDataAttributes) {
22
+ /** The slot name on every rendered part. */
23
+ AccordionDataAttributes["slot"] = "data-slot";
24
+ /** Present on the item, header, and panel while that item is expanded. */
25
+ AccordionDataAttributes["open"] = "data-open";
26
+ /** Present on the trigger while its panel is expanded. */
27
+ AccordionDataAttributes["panelOpen"] = "data-panel-open";
28
+ /** Present on a disabled item, header, trigger, and panel. */
29
+ AccordionDataAttributes["disabled"] = "data-disabled";
30
+ /** The item's zero-based position in the stack. */
31
+ AccordionDataAttributes["index"] = "data-index";
32
+ /** `horizontal` | `vertical` — the accordion's orientation. */
33
+ AccordionDataAttributes["orientation"] = "data-orientation";
34
+ /** The transition phase of the panel — present while it animates open or closed. */
35
+ AccordionDataAttributes["startingStyle"] = "data-starting-style";
36
+ return AccordionDataAttributes;
37
+ }({});
38
+ //#endregion
39
+ export { ACCORDION_SLOTS, AccordionDataAttributes };
@@ -0,0 +1,11 @@
1
+ //#region src/components/accordion/accordion.types.d.ts
2
+ /**
3
+ * Shared, runtime-free Accordion option types. Kept in their own module so the orchestration, props,
4
+ * and context files import one shape without a cycle through `accordion.tsx`.
5
+ */
6
+ /** Control density of the trigger rows and panel content — `sm` (compact) or `md` (default, comfortable). */
7
+ type AccordionSize = "sm" | "md";
8
+ /** The heading rank the trigger's heading renders. Defaults to `3`; set it so the stack nests correctly in the outline. */
9
+ type AccordionLevel = 2 | 3 | 4 | 5 | 6;
10
+ //#endregion
11
+ export { AccordionLevel, AccordionSize };
@@ -0,0 +1,3 @@
1
+ import { AccordionLevel, AccordionSize } from "./accordion.types.js";
2
+ import { Accordion } from "./accordion.js";
3
+ import { AccordionDataAttributes } from "./accordion.slots.js";
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { createContext, use } from "react";
3
+ //#region src/components/alert-dialog/alert-dialog.context.ts
4
+ const AlertDialogContext = createContext(null);
5
+ AlertDialogContext.displayName = "AlertDialogContext";
6
+ /**
7
+ * Reads the nearest `AlertDialog` context, throwing a part-named error when used outside an
8
+ * `AlertDialog.Root`. `use()` (not `useContext`) per the React 19 substrate convention.
9
+ */
10
+ function useAlertDialogContext(part) {
11
+ const value = use(AlertDialogContext);
12
+ if (value === null) throw new Error(`AlertDialog.${part} must be rendered inside an AlertDialog.Root.`);
13
+ return value;
14
+ }
15
+ //#endregion
16
+ export { AlertDialogContext, useAlertDialogContext };