@cssui/react 1.0.0 → 1.0.1

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 (542) hide show
  1. package/dist/adapter-react/components/breadcrumb/Breadcrumb.d.ts +8 -0
  2. package/dist/adapter-react/components/breadcrumb/Breadcrumb.d.ts.map +1 -0
  3. package/dist/adapter-react/components/breadcrumb/Breadcrumb.js +170 -0
  4. package/dist/adapter-react/components/breadcrumb/Breadcrumb.js.map +1 -0
  5. package/dist/adapter-react/components/breadcrumb/index.d.ts +2 -0
  6. package/dist/adapter-react/components/breadcrumb/index.d.ts.map +1 -0
  7. package/dist/adapter-react/components/button/Button.d.ts +10 -0
  8. package/dist/adapter-react/components/button/Button.d.ts.map +1 -0
  9. package/dist/adapter-react/components/button/Button.js +49 -0
  10. package/dist/adapter-react/components/button/Button.js.map +1 -0
  11. package/dist/adapter-react/components/button/index.d.ts +3 -0
  12. package/dist/adapter-react/components/button/index.d.ts.map +1 -0
  13. package/dist/adapter-react/components/carousel/Carousel.d.ts +12 -0
  14. package/dist/adapter-react/components/carousel/Carousel.d.ts.map +1 -0
  15. package/dist/adapter-react/components/carousel/Carousel.js +155 -0
  16. package/dist/adapter-react/components/carousel/Carousel.js.map +1 -0
  17. package/dist/adapter-react/components/carousel/index.d.ts +3 -0
  18. package/dist/adapter-react/components/carousel/index.d.ts.map +1 -0
  19. package/dist/adapter-react/components/checkbox/Checkbox.d.ts +11 -0
  20. package/dist/adapter-react/components/checkbox/Checkbox.d.ts.map +1 -0
  21. package/dist/adapter-react/components/checkbox/Checkbox.js +69 -0
  22. package/dist/adapter-react/components/checkbox/Checkbox.js.map +1 -0
  23. package/dist/adapter-react/components/checkbox/CheckboxGroup.d.ts +22 -0
  24. package/dist/adapter-react/components/checkbox/CheckboxGroup.d.ts.map +1 -0
  25. package/dist/adapter-react/components/checkbox/CheckboxGroup.js +86 -0
  26. package/dist/adapter-react/components/checkbox/CheckboxGroup.js.map +1 -0
  27. package/dist/adapter-react/components/checkbox/index.d.ts +5 -0
  28. package/dist/adapter-react/components/checkbox/index.d.ts.map +1 -0
  29. package/dist/adapter-react/components/date-picker/DatePicker.d.ts +8 -0
  30. package/dist/adapter-react/components/date-picker/DatePicker.d.ts.map +1 -0
  31. package/dist/adapter-react/components/date-picker/DatePicker.js +438 -0
  32. package/dist/adapter-react/components/date-picker/DatePicker.js.map +1 -0
  33. package/dist/adapter-react/components/date-picker/index.d.ts +2 -0
  34. package/dist/adapter-react/components/date-picker/index.d.ts.map +1 -0
  35. package/dist/adapter-react/components/divider/Divider.d.ts +13 -0
  36. package/dist/adapter-react/components/divider/Divider.d.ts.map +1 -0
  37. package/dist/adapter-react/components/divider/Divider.js +31 -0
  38. package/dist/adapter-react/components/divider/Divider.js.map +1 -0
  39. package/dist/adapter-react/components/divider/index.d.ts +3 -0
  40. package/dist/adapter-react/components/divider/index.d.ts.map +1 -0
  41. package/dist/adapter-react/components/float-button/FloatButton.d.ts +17 -0
  42. package/dist/adapter-react/components/float-button/FloatButton.d.ts.map +1 -0
  43. package/dist/adapter-react/components/float-button/FloatButton.js +97 -0
  44. package/dist/adapter-react/components/float-button/FloatButton.js.map +1 -0
  45. package/dist/adapter-react/components/float-button/FloatButtonGroup.d.ts +9 -0
  46. package/dist/adapter-react/components/float-button/FloatButtonGroup.d.ts.map +1 -0
  47. package/dist/adapter-react/components/float-button/FloatButtonGroup.js +61 -0
  48. package/dist/adapter-react/components/float-button/FloatButtonGroup.js.map +1 -0
  49. package/dist/adapter-react/components/float-button/context.d.ts +3 -0
  50. package/dist/adapter-react/components/float-button/context.d.ts.map +1 -0
  51. package/dist/adapter-react/components/float-button/context.js +6 -0
  52. package/dist/adapter-react/components/float-button/context.js.map +1 -0
  53. package/dist/adapter-react/components/float-button/index.d.ts +5 -0
  54. package/dist/adapter-react/components/float-button/index.d.ts.map +1 -0
  55. package/dist/adapter-react/components/form/Form.d.ts +13 -0
  56. package/dist/adapter-react/components/form/Form.d.ts.map +1 -0
  57. package/dist/adapter-react/components/form/Form.js +355 -0
  58. package/dist/adapter-react/components/form/Form.js.map +1 -0
  59. package/dist/adapter-react/components/form/index.d.ts +4 -0
  60. package/dist/adapter-react/components/form/index.d.ts.map +1 -0
  61. package/dist/adapter-react/components/grid/Grid.d.ts +8 -0
  62. package/dist/adapter-react/components/grid/Grid.d.ts.map +1 -0
  63. package/dist/adapter-react/components/grid/Grid.js +51 -0
  64. package/dist/adapter-react/components/grid/Grid.js.map +1 -0
  65. package/dist/adapter-react/components/grid/GridItem.d.ts +8 -0
  66. package/dist/adapter-react/components/grid/GridItem.d.ts.map +1 -0
  67. package/dist/adapter-react/components/grid/GridItem.js +31 -0
  68. package/dist/adapter-react/components/grid/GridItem.js.map +1 -0
  69. package/dist/adapter-react/components/grid/index.d.ts +6 -0
  70. package/dist/adapter-react/components/grid/index.d.ts.map +1 -0
  71. package/dist/adapter-react/components/icon/Icon.d.ts +18 -0
  72. package/dist/adapter-react/components/icon/Icon.d.ts.map +1 -0
  73. package/dist/adapter-react/components/icon/Icon.js +51 -0
  74. package/dist/adapter-react/components/icon/Icon.js.map +1 -0
  75. package/dist/adapter-react/components/icon/index.d.ts +3 -0
  76. package/dist/adapter-react/components/icon/index.d.ts.map +1 -0
  77. package/dist/adapter-react/components/input/Input.d.ts +10 -0
  78. package/dist/adapter-react/components/input/Input.d.ts.map +1 -0
  79. package/dist/adapter-react/components/input/Input.js +79 -0
  80. package/dist/adapter-react/components/input/Input.js.map +1 -0
  81. package/dist/adapter-react/components/input/index.d.ts +3 -0
  82. package/dist/adapter-react/components/input/index.d.ts.map +1 -0
  83. package/dist/adapter-react/components/input-bar/InputBar.d.ts +9 -0
  84. package/dist/adapter-react/components/input-bar/InputBar.d.ts.map +1 -0
  85. package/dist/adapter-react/components/input-bar/InputBar.js +136 -0
  86. package/dist/adapter-react/components/input-bar/InputBar.js.map +1 -0
  87. package/dist/adapter-react/components/input-bar/index.d.ts +3 -0
  88. package/dist/adapter-react/components/input-bar/index.d.ts.map +1 -0
  89. package/dist/adapter-react/components/input-number/InputNumber.d.ts +9 -0
  90. package/dist/adapter-react/components/input-number/InputNumber.d.ts.map +1 -0
  91. package/dist/adapter-react/components/input-number/InputNumber.js +135 -0
  92. package/dist/adapter-react/components/input-number/InputNumber.js.map +1 -0
  93. package/dist/adapter-react/components/input-number/index.d.ts +2 -0
  94. package/dist/adapter-react/components/input-number/index.d.ts.map +1 -0
  95. package/dist/adapter-react/components/modal/Modal.d.ts +18 -0
  96. package/dist/adapter-react/components/modal/Modal.d.ts.map +1 -0
  97. package/dist/adapter-react/components/modal/Modal.js +108 -0
  98. package/dist/adapter-react/components/modal/Modal.js.map +1 -0
  99. package/dist/adapter-react/components/modal/index.d.ts +6 -0
  100. package/dist/adapter-react/components/modal/index.d.ts.map +1 -0
  101. package/dist/adapter-react/components/nav-menu/NavMenu.d.ts +11 -0
  102. package/dist/adapter-react/components/nav-menu/NavMenu.d.ts.map +1 -0
  103. package/dist/adapter-react/components/nav-menu/NavMenu.js +197 -0
  104. package/dist/adapter-react/components/nav-menu/NavMenu.js.map +1 -0
  105. package/dist/adapter-react/components/nav-menu/index.d.ts +3 -0
  106. package/dist/adapter-react/components/nav-menu/index.d.ts.map +1 -0
  107. package/dist/adapter-react/components/pagination/Pagination.d.ts +11 -0
  108. package/dist/adapter-react/components/pagination/Pagination.d.ts.map +1 -0
  109. package/dist/adapter-react/components/pagination/Pagination.js +128 -0
  110. package/dist/adapter-react/components/pagination/Pagination.js.map +1 -0
  111. package/dist/adapter-react/components/pagination/index.d.ts +3 -0
  112. package/dist/adapter-react/components/pagination/index.d.ts.map +1 -0
  113. package/dist/adapter-react/components/radio/Radio.d.ts +12 -0
  114. package/dist/adapter-react/components/radio/Radio.d.ts.map +1 -0
  115. package/dist/adapter-react/components/radio/Radio.js +83 -0
  116. package/dist/adapter-react/components/radio/Radio.js.map +1 -0
  117. package/dist/adapter-react/components/radio/RadioGroup.d.ts +24 -0
  118. package/dist/adapter-react/components/radio/RadioGroup.d.ts.map +1 -0
  119. package/dist/adapter-react/components/radio/RadioGroup.js +97 -0
  120. package/dist/adapter-react/components/radio/RadioGroup.js.map +1 -0
  121. package/dist/adapter-react/components/radio/index.d.ts +7 -0
  122. package/dist/adapter-react/components/radio/index.d.ts.map +1 -0
  123. package/dist/adapter-react/components/select/Select.d.ts +9 -0
  124. package/dist/adapter-react/components/select/Select.d.ts.map +1 -0
  125. package/dist/adapter-react/components/select/Select.js +189 -0
  126. package/dist/adapter-react/components/select/Select.js.map +1 -0
  127. package/dist/adapter-react/components/select/index.d.ts +3 -0
  128. package/dist/adapter-react/components/select/index.d.ts.map +1 -0
  129. package/dist/adapter-react/components/sidebar/Sidebar.d.ts +13 -0
  130. package/dist/adapter-react/components/sidebar/Sidebar.d.ts.map +1 -0
  131. package/dist/adapter-react/components/sidebar/Sidebar.js +242 -0
  132. package/dist/adapter-react/components/sidebar/Sidebar.js.map +1 -0
  133. package/dist/adapter-react/components/sidebar/index.d.ts +3 -0
  134. package/dist/adapter-react/components/sidebar/index.d.ts.map +1 -0
  135. package/dist/adapter-react/components/slider/Slider.d.ts +9 -0
  136. package/dist/adapter-react/components/slider/Slider.d.ts.map +1 -0
  137. package/dist/adapter-react/components/slider/Slider.js +150 -0
  138. package/dist/adapter-react/components/slider/Slider.js.map +1 -0
  139. package/dist/adapter-react/components/slider/index.d.ts +3 -0
  140. package/dist/adapter-react/components/slider/index.d.ts.map +1 -0
  141. package/dist/adapter-react/components/steps/Steps.d.ts +11 -0
  142. package/dist/adapter-react/components/steps/Steps.d.ts.map +1 -0
  143. package/dist/adapter-react/components/steps/Steps.js +172 -0
  144. package/dist/adapter-react/components/steps/Steps.js.map +1 -0
  145. package/dist/adapter-react/components/steps/index.d.ts +3 -0
  146. package/dist/adapter-react/components/steps/index.d.ts.map +1 -0
  147. package/dist/adapter-react/components/switch/Switch.d.ts +11 -0
  148. package/dist/adapter-react/components/switch/Switch.d.ts.map +1 -0
  149. package/dist/adapter-react/components/switch/Switch.js +98 -0
  150. package/dist/adapter-react/components/switch/Switch.js.map +1 -0
  151. package/dist/adapter-react/components/switch/index.d.ts +2 -0
  152. package/dist/adapter-react/components/switch/index.d.ts.map +1 -0
  153. package/dist/adapter-react/components/table/Table.d.ts +15 -0
  154. package/dist/adapter-react/components/table/Table.d.ts.map +1 -0
  155. package/dist/adapter-react/components/table/Table.js +211 -0
  156. package/dist/adapter-react/components/table/Table.js.map +1 -0
  157. package/dist/adapter-react/components/table/index.d.ts +3 -0
  158. package/dist/adapter-react/components/table/index.d.ts.map +1 -0
  159. package/dist/adapter-react/components/tabs/Tabs.d.ts +9 -0
  160. package/dist/adapter-react/components/tabs/Tabs.d.ts.map +1 -0
  161. package/dist/adapter-react/components/tabs/Tabs.js +62 -0
  162. package/dist/adapter-react/components/tabs/Tabs.js.map +1 -0
  163. package/dist/adapter-react/components/tabs/index.d.ts +2 -0
  164. package/dist/adapter-react/components/tabs/index.d.ts.map +1 -0
  165. package/dist/adapter-react/components/time-picker/TimePicker.d.ts +9 -0
  166. package/dist/adapter-react/components/time-picker/TimePicker.d.ts.map +1 -0
  167. package/dist/adapter-react/components/time-picker/TimePicker.js +271 -0
  168. package/dist/adapter-react/components/time-picker/TimePicker.js.map +1 -0
  169. package/dist/adapter-react/components/time-picker/index.d.ts +2 -0
  170. package/dist/adapter-react/components/time-picker/index.d.ts.map +1 -0
  171. package/dist/adapter-react/components/toast/Toast.d.ts +25 -0
  172. package/dist/adapter-react/components/toast/Toast.d.ts.map +1 -0
  173. package/dist/adapter-react/components/toast/Toast.js +223 -0
  174. package/dist/adapter-react/components/toast/Toast.js.map +1 -0
  175. package/dist/adapter-react/components/toast/index.d.ts +3 -0
  176. package/dist/adapter-react/components/toast/index.d.ts.map +1 -0
  177. package/dist/adapter-react/components/toolbars/Toolbar.d.ts +11 -0
  178. package/dist/adapter-react/components/toolbars/Toolbar.d.ts.map +1 -0
  179. package/dist/adapter-react/components/toolbars/Toolbar.js +66 -0
  180. package/dist/adapter-react/components/toolbars/Toolbar.js.map +1 -0
  181. package/dist/adapter-react/components/toolbars/index.d.ts +3 -0
  182. package/dist/adapter-react/components/toolbars/index.d.ts.map +1 -0
  183. package/dist/adapter-react/components/tooltip/Tooltip.d.ts +9 -0
  184. package/dist/adapter-react/components/tooltip/Tooltip.d.ts.map +1 -0
  185. package/dist/adapter-react/components/tooltip/Tooltip.js +141 -0
  186. package/dist/adapter-react/components/tooltip/Tooltip.js.map +1 -0
  187. package/dist/adapter-react/components/tooltip/index.d.ts +2 -0
  188. package/dist/adapter-react/components/tooltip/index.d.ts.map +1 -0
  189. package/dist/adapter-react/hooks/index.d.ts +12 -0
  190. package/dist/adapter-react/hooks/index.d.ts.map +1 -0
  191. package/dist/adapter-react/hooks/index.js +43 -0
  192. package/dist/adapter-react/hooks/index.js.map +1 -0
  193. package/dist/adapter-react/hooks/useControlled.d.ts +7 -0
  194. package/dist/adapter-react/hooks/useControlled.d.ts.map +1 -0
  195. package/dist/adapter-react/hooks/useControlled.js +21 -0
  196. package/dist/adapter-react/hooks/useControlled.js.map +1 -0
  197. package/dist/adapter-react/hooks/useEvent.d.ts +2 -0
  198. package/dist/adapter-react/hooks/useEvent.d.ts.map +1 -0
  199. package/dist/adapter-react/hooks/useMergedState.d.ts +4 -0
  200. package/dist/adapter-react/hooks/useMergedState.d.ts.map +1 -0
  201. package/dist/adapter-react/hooks/useMergedState.js +15 -0
  202. package/dist/adapter-react/hooks/useMergedState.js.map +1 -0
  203. package/dist/adapter-react/index.d.ts +37 -0
  204. package/dist/adapter-react/index.d.ts.map +1 -0
  205. package/dist/adapter-react/runtime/createComponent.d.ts +3 -0
  206. package/dist/adapter-react/runtime/createComponent.d.ts.map +1 -0
  207. package/dist/adapter-react/runtime/createComponent.js +6 -0
  208. package/dist/adapter-react/runtime/createComponent.js.map +1 -0
  209. package/dist/adapter-react/runtime/createProps.d.ts +2 -0
  210. package/dist/adapter-react/runtime/createProps.d.ts.map +1 -0
  211. package/dist/adapter-react/runtime/forwardRef.d.ts +3 -0
  212. package/dist/adapter-react/runtime/forwardRef.d.ts.map +1 -0
  213. package/dist/adapter-react/runtime/forwardRef.js +6 -0
  214. package/dist/adapter-react/runtime/forwardRef.js.map +1 -0
  215. package/dist/adapter-react/runtime/index.d.ts +5 -0
  216. package/dist/adapter-react/runtime/index.d.ts.map +1 -0
  217. package/dist/adapter-react/runtime/withInstall.d.ts +3 -0
  218. package/dist/adapter-react/runtime/withInstall.d.ts.map +1 -0
  219. package/dist/adapter-react/runtime/withInstall.js +6 -0
  220. package/dist/adapter-react/runtime/withInstall.js.map +1 -0
  221. package/dist/adapter-react/style/index.d.ts +2 -0
  222. package/dist/adapter-react/style/index.d.ts.map +1 -0
  223. package/dist/adapter-react/style/injectStyle.d.ts +2 -0
  224. package/dist/adapter-react/style/injectStyle.d.ts.map +1 -0
  225. package/dist/adapter-react/types.d.ts +6 -0
  226. package/dist/adapter-react/types.d.ts.map +1 -0
  227. package/dist/breadcrumb/index.d.ts +2 -2
  228. package/dist/breadcrumb/index.js +34 -1
  229. package/dist/breadcrumb/index.js.map +1 -0
  230. package/dist/breadcrumb/style.css +219 -1
  231. package/dist/button/index.d.ts +2 -2
  232. package/dist/button/index.js +34 -1
  233. package/dist/button/index.js.map +1 -0
  234. package/dist/button/style.css +151 -1
  235. package/dist/carousel/index.d.ts +2 -2
  236. package/dist/carousel/index.js +34 -1
  237. package/dist/carousel/index.js.map +1 -0
  238. package/dist/carousel/style.css +196 -1
  239. package/dist/checkbox/index.d.ts +3 -3
  240. package/dist/checkbox/index.js +34 -2
  241. package/dist/checkbox/index.js.map +1 -0
  242. package/dist/checkbox/style.css +135 -1
  243. package/dist/components/breadcrumb/index.d.ts +61 -0
  244. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  245. package/dist/components/breadcrumb/index.js +49 -0
  246. package/dist/components/breadcrumb/index.js.map +1 -0
  247. package/dist/components/breadcrumb/style.css +219 -0
  248. package/dist/components/button/index.d.ts +15 -0
  249. package/dist/components/button/index.d.ts.map +1 -0
  250. package/dist/components/button/index.js +11 -0
  251. package/dist/components/button/index.js.map +1 -0
  252. package/dist/components/button/style.css +151 -0
  253. package/dist/components/carousel/index.d.ts +38 -0
  254. package/dist/components/carousel/index.d.ts.map +1 -0
  255. package/dist/components/carousel/index.js +33 -0
  256. package/dist/components/carousel/index.js.map +1 -0
  257. package/dist/components/carousel/style.css +196 -0
  258. package/dist/components/checkbox/index.d.ts +36 -0
  259. package/dist/components/checkbox/index.d.ts.map +1 -0
  260. package/dist/components/checkbox/index.js +34 -0
  261. package/dist/components/checkbox/index.js.map +1 -0
  262. package/dist/components/checkbox/style.css +135 -0
  263. package/dist/components/date-picker/index.d.ts +53 -0
  264. package/dist/components/date-picker/index.d.ts.map +1 -0
  265. package/dist/components/date-picker/index.js +105 -0
  266. package/dist/components/date-picker/index.js.map +1 -0
  267. package/dist/components/date-picker/style.css +491 -0
  268. package/dist/components/divider/index.d.ts +12 -0
  269. package/dist/components/divider/index.d.ts.map +1 -0
  270. package/dist/components/divider/index.js +23 -0
  271. package/dist/components/divider/index.js.map +1 -0
  272. package/dist/components/divider/style.css +100 -0
  273. package/dist/components/float-button/index.d.ts +32 -0
  274. package/dist/components/float-button/index.d.ts.map +1 -0
  275. package/dist/components/float-button/index.js +23 -0
  276. package/dist/components/float-button/index.js.map +1 -0
  277. package/dist/components/float-button/style.css +176 -0
  278. package/dist/components/form/index.d.ts +79 -0
  279. package/dist/components/form/index.d.ts.map +1 -0
  280. package/dist/components/form/index.js +144 -0
  281. package/dist/components/form/index.js.map +1 -0
  282. package/dist/components/form/style.css +79 -0
  283. package/dist/components/grid/index.d.ts +34 -0
  284. package/dist/components/grid/index.d.ts.map +1 -0
  285. package/dist/components/grid/index.js +109 -0
  286. package/dist/components/grid/index.js.map +1 -0
  287. package/dist/components/grid/style.css +189 -0
  288. package/dist/components/icon/index.d.ts +35 -0
  289. package/dist/components/icon/index.d.ts.map +1 -0
  290. package/dist/components/icon/index.js +16 -0
  291. package/dist/components/icon/index.js.map +1 -0
  292. package/dist/components/icon/style.css +28 -0
  293. package/dist/components/input/index.d.ts +29 -0
  294. package/dist/components/input/index.d.ts.map +1 -0
  295. package/dist/components/input/index.js +19 -0
  296. package/dist/components/input/index.js.map +1 -0
  297. package/dist/components/input/style.css +110 -0
  298. package/dist/components/input-bar/index.d.ts +31 -0
  299. package/dist/components/input-bar/index.d.ts.map +1 -0
  300. package/dist/components/input-bar/index.js +18 -0
  301. package/dist/components/input-bar/index.js.map +1 -0
  302. package/dist/components/input-bar/style.css +180 -0
  303. package/dist/components/input-number/index.d.ts +28 -0
  304. package/dist/components/input-number/index.d.ts.map +1 -0
  305. package/dist/components/input-number/index.js +21 -0
  306. package/dist/components/input-number/index.js.map +1 -0
  307. package/dist/components/input-number/style.css +109 -0
  308. package/dist/components/modal/index.d.ts +17 -0
  309. package/dist/components/modal/index.d.ts.map +1 -0
  310. package/dist/components/modal/index.js +10 -0
  311. package/dist/components/modal/index.js.map +1 -0
  312. package/dist/components/modal/style.css +150 -0
  313. package/dist/components/nav-menu/index.d.ts +35 -0
  314. package/dist/components/nav-menu/index.d.ts.map +1 -0
  315. package/dist/components/nav-menu/index.js +47 -0
  316. package/dist/components/nav-menu/index.js.map +1 -0
  317. package/dist/components/nav-menu/style.css +241 -0
  318. package/dist/components/pagination/index.d.ts +32 -0
  319. package/dist/components/pagination/index.d.ts.map +1 -0
  320. package/dist/components/pagination/index.js +35 -0
  321. package/dist/components/pagination/index.js.map +1 -0
  322. package/dist/components/pagination/style.css +150 -0
  323. package/dist/components/radio/index.d.ts +45 -0
  324. package/dist/components/radio/index.d.ts.map +1 -0
  325. package/dist/components/radio/index.js +48 -0
  326. package/dist/components/radio/index.js.map +1 -0
  327. package/dist/components/radio/style.css +294 -0
  328. package/dist/components/select/index.d.ts +30 -0
  329. package/dist/components/select/index.d.ts.map +1 -0
  330. package/dist/components/select/index.js +16 -0
  331. package/dist/components/select/index.js.map +1 -0
  332. package/dist/components/select/style.css +255 -0
  333. package/dist/components/sidebar/index.d.ts +19 -0
  334. package/dist/components/sidebar/index.d.ts.map +1 -0
  335. package/dist/components/sidebar/index.js +23 -0
  336. package/dist/components/sidebar/index.js.map +1 -0
  337. package/dist/components/sidebar/style.css +270 -0
  338. package/dist/components/slider/index.d.ts +29 -0
  339. package/dist/components/slider/index.d.ts.map +1 -0
  340. package/dist/components/slider/index.js +24 -0
  341. package/dist/components/slider/index.js.map +1 -0
  342. package/dist/components/slider/style.css +206 -0
  343. package/dist/components/src/index.d.ts +28 -0
  344. package/dist/components/src/index.d.ts.map +1 -0
  345. package/dist/components/steps/index.d.ts +41 -0
  346. package/dist/components/steps/index.d.ts.map +1 -0
  347. package/dist/components/steps/index.js +32 -0
  348. package/dist/components/steps/index.js.map +1 -0
  349. package/dist/components/steps/style.css +286 -0
  350. package/dist/components/switch/index.d.ts +16 -0
  351. package/dist/components/switch/index.d.ts.map +1 -0
  352. package/dist/components/switch/index.js +17 -0
  353. package/dist/components/switch/index.js.map +1 -0
  354. package/dist/components/switch/style.css +160 -0
  355. package/dist/components/table/index.d.ts +49 -0
  356. package/dist/components/table/index.d.ts.map +1 -0
  357. package/dist/components/table/index.js +74 -0
  358. package/dist/components/table/index.js.map +1 -0
  359. package/dist/components/table/style.css +131 -0
  360. package/dist/components/tabs/index.d.ts +34 -0
  361. package/dist/components/tabs/index.d.ts.map +1 -0
  362. package/dist/components/tabs/index.js +21 -0
  363. package/dist/components/tabs/index.js.map +1 -0
  364. package/dist/components/tabs/style.css +146 -0
  365. package/dist/components/time-picker/index.d.ts +56 -0
  366. package/dist/components/time-picker/index.d.ts.map +1 -0
  367. package/dist/components/time-picker/index.js +84 -0
  368. package/dist/components/time-picker/index.js.map +1 -0
  369. package/dist/components/time-picker/style.css +258 -0
  370. package/dist/components/toast/index.d.ts +41 -0
  371. package/dist/components/toast/index.d.ts.map +1 -0
  372. package/dist/components/toast/index.js +24 -0
  373. package/dist/components/toast/index.js.map +1 -0
  374. package/dist/components/toast/style.css +117 -0
  375. package/dist/components/toolbars/index.d.ts +31 -0
  376. package/dist/components/toolbars/index.d.ts.map +1 -0
  377. package/dist/components/toolbars/index.js +32 -0
  378. package/dist/components/toolbars/index.js.map +1 -0
  379. package/dist/components/toolbars/style.css +220 -0
  380. package/dist/components/tooltip/index.d.ts +31 -0
  381. package/dist/components/tooltip/index.d.ts.map +1 -0
  382. package/dist/components/tooltip/index.js +17 -0
  383. package/dist/components/tooltip/index.js.map +1 -0
  384. package/dist/components/tooltip/style.css +138 -0
  385. package/dist/date-picker/index.d.ts +2 -2
  386. package/dist/date-picker/index.js +34 -1
  387. package/dist/date-picker/index.js.map +1 -0
  388. package/dist/date-picker/style.css +491 -1
  389. package/dist/divider/index.d.ts +2 -2
  390. package/dist/divider/index.js +34 -1
  391. package/dist/divider/index.js.map +1 -0
  392. package/dist/divider/style.css +100 -1
  393. package/dist/float-button/index.d.ts +2 -2
  394. package/dist/float-button/index.js +34 -1
  395. package/dist/float-button/index.js.map +1 -0
  396. package/dist/float-button/style.css +176 -1
  397. package/dist/form/index.d.ts +2 -2
  398. package/dist/form/index.js +34 -1
  399. package/dist/form/index.js.map +1 -0
  400. package/dist/form/style.css +79 -1
  401. package/dist/grid/index.d.ts +2 -2
  402. package/dist/grid/index.js +34 -1
  403. package/dist/grid/index.js.map +1 -0
  404. package/dist/grid/style.css +189 -1
  405. package/dist/icon/index.d.ts +2 -2
  406. package/dist/icon/index.js +34 -1
  407. package/dist/icon/index.js.map +1 -0
  408. package/dist/icon/style.css +28 -1
  409. package/dist/icons/react/add_circle.js +26 -0
  410. package/dist/icons/react/add_circle.js.map +1 -0
  411. package/dist/icons/react/arrow_back.js +26 -0
  412. package/dist/icons/react/arrow_back.js.map +1 -0
  413. package/dist/icons/react/arrow_drop_down.js +26 -0
  414. package/dist/icons/react/arrow_drop_down.js.map +1 -0
  415. package/dist/icons/react/arrow_forward.js +26 -0
  416. package/dist/icons/react/arrow_forward.js.map +1 -0
  417. package/dist/icons/react/calendar_month.js +26 -0
  418. package/dist/icons/react/calendar_month.js.map +1 -0
  419. package/dist/icons/react/check.js +26 -0
  420. package/dist/icons/react/check.js.map +1 -0
  421. package/dist/icons/react/chevron_right.js +26 -0
  422. package/dist/icons/react/chevron_right.js.map +1 -0
  423. package/dist/icons/react/close.js +26 -0
  424. package/dist/icons/react/close.js.map +1 -0
  425. package/dist/icons/react/config.js +26 -0
  426. package/dist/icons/react/config.js.map +1 -0
  427. package/dist/icons/react/dark_mode.js +26 -0
  428. package/dist/icons/react/dark_mode.js.map +1 -0
  429. package/dist/icons/react/do_not_disturb_on.js +26 -0
  430. package/dist/icons/react/do_not_disturb_on.js.map +1 -0
  431. package/dist/icons/react/error.js +26 -0
  432. package/dist/icons/react/error.js.map +1 -0
  433. package/dist/icons/react/home.js +29 -0
  434. package/dist/icons/react/home.js.map +1 -0
  435. package/dist/icons/react/index.js +27 -0
  436. package/dist/icons/react/index.js.map +1 -0
  437. package/dist/icons/react/info.js +26 -0
  438. package/dist/icons/react/info.js.map +1 -0
  439. package/dist/icons/react/logo_Block.js +26 -0
  440. package/dist/icons/react/logo_Block.js.map +1 -0
  441. package/dist/icons/react/logo_Horizontal.js +26 -0
  442. package/dist/icons/react/logo_Horizontal.js.map +1 -0
  443. package/dist/icons/react/looks_3.js +26 -0
  444. package/dist/icons/react/looks_3.js.map +1 -0
  445. package/dist/icons/react/looks_one.js +26 -0
  446. package/dist/icons/react/looks_one.js.map +1 -0
  447. package/dist/icons/react/looks_two.js +26 -0
  448. package/dist/icons/react/looks_two.js.map +1 -0
  449. package/dist/icons/react/menu.js +26 -0
  450. package/dist/icons/react/menu.js.map +1 -0
  451. package/dist/icons/react/menu_open.js +26 -0
  452. package/dist/icons/react/menu_open.js.map +1 -0
  453. package/dist/icons/react/more_horiz.js +29 -0
  454. package/dist/icons/react/more_horiz.js.map +1 -0
  455. package/dist/icons/react/schedule.js +26 -0
  456. package/dist/icons/react/schedule.js.map +1 -0
  457. package/dist/icons/react/search.js +26 -0
  458. package/dist/icons/react/search.js.map +1 -0
  459. package/dist/icons/react/sunny.js +26 -0
  460. package/dist/icons/react/sunny.js.map +1 -0
  461. package/dist/icons/react/warning.js +26 -0
  462. package/dist/icons/react/warning.js.map +1 -0
  463. package/dist/index.css +5214 -0
  464. package/dist/index.css.map +1 -0
  465. package/dist/input/index.d.ts +2 -2
  466. package/dist/input/index.js +34 -1
  467. package/dist/input/index.js.map +1 -0
  468. package/dist/input/style.css +110 -1
  469. package/dist/input-bar/index.d.ts +2 -2
  470. package/dist/input-bar/index.js +34 -1
  471. package/dist/input-bar/index.js.map +1 -0
  472. package/dist/input-bar/style.css +180 -1
  473. package/dist/input-number/index.d.ts +1 -1
  474. package/dist/input-number/index.js +34 -1
  475. package/dist/input-number/index.js.map +1 -0
  476. package/dist/input-number/style.css +109 -1
  477. package/dist/modal/index.d.ts +2 -2
  478. package/dist/modal/index.js +34 -1
  479. package/dist/modal/index.js.map +1 -0
  480. package/dist/modal/style.css +150 -1
  481. package/dist/nav-menu/index.d.ts +2 -2
  482. package/dist/nav-menu/index.js +34 -1
  483. package/dist/nav-menu/index.js.map +1 -0
  484. package/dist/nav-menu/style.css +241 -1
  485. package/dist/pagination/index.d.ts +1 -1
  486. package/dist/pagination/index.js +34 -1
  487. package/dist/pagination/index.js.map +1 -0
  488. package/dist/pagination/style.css +150 -1
  489. package/dist/radio/index.d.ts +3 -3
  490. package/dist/radio/index.js +34 -2
  491. package/dist/radio/index.js.map +1 -0
  492. package/dist/radio/style.css +294 -1
  493. package/dist/select/index.d.ts +2 -2
  494. package/dist/select/index.js +34 -1
  495. package/dist/select/index.js.map +1 -0
  496. package/dist/select/style.css +255 -1
  497. package/dist/sidebar/index.d.ts +2 -2
  498. package/dist/sidebar/index.js +34 -1
  499. package/dist/sidebar/index.js.map +1 -0
  500. package/dist/sidebar/style.css +270 -1
  501. package/dist/slider/index.d.ts +2 -2
  502. package/dist/slider/index.js +34 -1
  503. package/dist/slider/index.js.map +1 -0
  504. package/dist/slider/style.css +206 -1
  505. package/dist/src/index.js +33 -31
  506. package/dist/src/index.js.map +1 -0
  507. package/dist/steps/index.d.ts +1 -1
  508. package/dist/steps/index.js +34 -1
  509. package/dist/steps/index.js.map +1 -0
  510. package/dist/steps/style.css +286 -1
  511. package/dist/switch/index.d.ts +2 -2
  512. package/dist/switch/index.js +34 -1
  513. package/dist/switch/index.js.map +1 -0
  514. package/dist/switch/style.css +160 -1
  515. package/dist/table/index.d.ts +1 -1
  516. package/dist/table/index.js +34 -1
  517. package/dist/table/index.js.map +1 -0
  518. package/dist/table/style.css +131 -1
  519. package/dist/tabs/index.d.ts +2 -2
  520. package/dist/tabs/index.js +34 -1
  521. package/dist/tabs/index.js.map +1 -0
  522. package/dist/tabs/style.css +146 -1
  523. package/dist/time-picker/index.d.ts +2 -2
  524. package/dist/time-picker/index.js +34 -1
  525. package/dist/time-picker/index.js.map +1 -0
  526. package/dist/time-picker/style.css +258 -1
  527. package/dist/toast/index.d.ts +4 -4
  528. package/dist/toast/index.js +38 -3
  529. package/dist/toast/index.js.map +1 -0
  530. package/dist/toast/style.css +117 -1
  531. package/dist/toolbars/index.d.ts +3 -3
  532. package/dist/toolbars/index.js +34 -1
  533. package/dist/toolbars/index.js.map +1 -0
  534. package/dist/toolbars/style.css +220 -1
  535. package/dist/tooltip/index.d.ts +1 -1
  536. package/dist/tooltip/index.js +34 -1
  537. package/dist/tooltip/index.js.map +1 -0
  538. package/dist/tooltip/style.css +138 -1
  539. package/dist/utils/src/index.js +6 -0
  540. package/dist/utils/src/index.js.map +1 -0
  541. package/package.json +7 -7
  542. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,97 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { createContext, useId, useMemo, useContext } from 'react';
3
+ import { getRadioGroupClassNames } from '../../../components/radio/index.js';
4
+ import { cn } from '../../../utils/src/index.js';
5
+ import { createComponent } from '../../runtime/createComponent.js';
6
+ import { withInstall } from '../../runtime/withInstall.js';
7
+ import { forwardRef } from '../../runtime/forwardRef.js';
8
+ import { useMergedState } from '../../hooks/useMergedState.js';
9
+ import { Radio } from './Radio.js';
10
+
11
+ const RadioGroupContext = createContext(null);
12
+ function useRadioGroupContext() {
13
+ return useContext(RadioGroupContext);
14
+ }
15
+ const RadioGroupComponent = createComponent(
16
+ forwardRef((props, ref) => {
17
+ const {
18
+ label,
19
+ value,
20
+ defaultValue,
21
+ disabled = false,
22
+ error = false,
23
+ className,
24
+ name,
25
+ variant = "default",
26
+ direction = "horizontal",
27
+ iconOnly = false,
28
+ options = [],
29
+ children,
30
+ onChange,
31
+ ...restProps
32
+ } = props;
33
+ const generatedName = useId();
34
+ const [currentValue, setCurrentValue] = useMergedState(defaultValue, {
35
+ value
36
+ });
37
+ const contextValue = useMemo(
38
+ () => ({
39
+ name: name ?? generatedName,
40
+ value: currentValue,
41
+ disabled,
42
+ error,
43
+ variant,
44
+ iconOnly,
45
+ onChange: (nextValue, event) => {
46
+ setCurrentValue(nextValue);
47
+ onChange?.(nextValue, event);
48
+ }
49
+ }),
50
+ [
51
+ className,
52
+ currentValue,
53
+ disabled,
54
+ error,
55
+ generatedName,
56
+ iconOnly,
57
+ name,
58
+ onChange,
59
+ setCurrentValue,
60
+ variant
61
+ ]
62
+ );
63
+ const radioItems = options.length ? options.map((option) => /* @__PURE__ */ jsx(
64
+ Radio,
65
+ {
66
+ value: option.value,
67
+ label: option.label,
68
+ disabled: option.disabled,
69
+ className: option.className,
70
+ icon: option.icon
71
+ },
72
+ String(option.value)
73
+ )) : children;
74
+ const content = /* @__PURE__ */ jsx(RadioGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
75
+ "div",
76
+ {
77
+ ref,
78
+ role: "radiogroup",
79
+ className: cn(
80
+ getRadioGroupClassNames({ disabled, error, variant, direction, iconOnly }),
81
+ className
82
+ ),
83
+ ...restProps,
84
+ children: radioItems
85
+ }
86
+ ) });
87
+ return label ? /* @__PURE__ */ jsxs("div", { className: "css-radio-group-field", children: [
88
+ /* @__PURE__ */ jsx("span", { className: "css-radio-group-field__label", children: label }),
89
+ content
90
+ ] }) : content;
91
+ })
92
+ );
93
+ RadioGroupComponent.displayName = "CssRadioGroup";
94
+ const RadioGroup = withInstall(RadioGroupComponent);
95
+
96
+ export { RadioGroup, RadioGroupContext, RadioGroup as default, useRadioGroupContext };
97
+ //# sourceMappingURL=RadioGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../../../adapter-react/components/radio/RadioGroup.tsx"],"sourcesContent":["import { createContext, useContext, useId, useMemo, type ChangeEvent, type ReactNode } from 'react'\nimport {\n getRadioGroupClassNames,\n type RadioGroupOption as BaseRadioGroupOption,\n type RadioGroupProps as BaseRadioGroupProps,\n type RadioValue,\n type RadioVariant,\n type RadioDirection,\n} from '@cssui/components/radio'\nimport { cn } from '@cssui/utils'\nimport { createComponent, forwardRef, withInstall } from '../../runtime'\nimport { useMergedState } from '../../hooks'\nimport Radio from './Radio'\n\nexport interface RadioGroupOption extends Omit<BaseRadioGroupOption, 'icon'> {\n icon?: string | ReactNode\n}\n\nexport interface RadioGroupProps extends Omit<BaseRadioGroupProps, 'onChange' | 'options'> {\n options?: RadioGroupOption[]\n direction?: RadioDirection\n onChange?: (value: RadioValue, event?: ChangeEvent<HTMLInputElement>) => void\n}\n\nexport interface RadioGroupContextValue {\n name?: string\n value?: RadioValue\n disabled?: boolean\n error?: boolean\n variant?: RadioVariant\n iconOnly?: boolean\n onChange?: (value: RadioValue, event: ChangeEvent<HTMLInputElement>) => void\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(null)\n\nexport function useRadioGroupContext() {\n return useContext(RadioGroupContext)\n}\n\nconst RadioGroupComponent = createComponent(\n forwardRef<HTMLDivElement, RadioGroupProps>((props, ref) => {\n const {\n label,\n value,\n defaultValue,\n disabled = false,\n error = false,\n className,\n name,\n variant = 'default',\n direction = 'horizontal',\n iconOnly = false,\n options = [],\n children,\n onChange,\n ...restProps\n } = props\n\n const generatedName = useId()\n const [currentValue, setCurrentValue] = useMergedState<RadioValue | undefined>(defaultValue, {\n value,\n })\n\n const contextValue = useMemo<RadioGroupContextValue>(\n () => ({\n name: name ?? generatedName,\n value: currentValue,\n disabled,\n error,\n variant,\n iconOnly,\n onChange: (nextValue, event) => {\n setCurrentValue(nextValue)\n onChange?.(nextValue, event)\n },\n }),\n [\n className,\n currentValue,\n disabled,\n error,\n generatedName,\n iconOnly,\n name,\n onChange,\n setCurrentValue,\n variant,\n ]\n )\n\n const radioItems = options.length\n ? options.map(option => (\n <Radio\n key={String(option.value)}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n className={option.className}\n icon={option.icon}\n />\n ))\n : children\n\n const content = (\n <RadioGroupContext.Provider value={contextValue}>\n <div\n ref={ref}\n role=\"radiogroup\"\n className={cn(\n getRadioGroupClassNames({ disabled, error, variant, direction, iconOnly }),\n className\n )}\n {...restProps}\n >\n {radioItems}\n </div>\n </RadioGroupContext.Provider>\n )\n\n return label ? (\n <div className=\"css-radio-group-field\">\n <span className=\"css-radio-group-field__label\">{label}</span>\n {content}\n </div>\n ) : (\n content\n )\n })\n)\n\nRadioGroupComponent.displayName = 'CssRadioGroup'\n\nexport const RadioGroup = withInstall(RadioGroupComponent)\n\nexport default RadioGroup\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import Radio from './Radio';
2
+ import RadioGroup from './RadioGroup';
3
+ export * from './Radio';
4
+ export * from './RadioGroup';
5
+ export default Radio;
6
+ export { RadioGroup };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/radio/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,UAAU,MAAM,cAAc,CAAA;AAErC,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,eAAe,KAAK,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { type MouseEvent } from 'react';
2
+ import { type SelectProps as BaseSelectProps } from '../../../components/select/index';
3
+ import '../../../components/select/style.css';
4
+ export interface SelectProps extends Omit<BaseSelectProps, 'onChange'> {
5
+ onChange?: (value: string | string[], event?: MouseEvent<HTMLButtonElement>) => void;
6
+ }
7
+ export declare const Select: import("../..").ComponentWithInstall<import("react").ForwardRefExoticComponent<SelectProps & import("react").RefAttributes<HTMLInputElement>>>;
8
+ export default Select;
9
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../components/select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,EAGL,KAAK,WAAW,IAAI,eAAe,EACpC,MAAM,0BAA0B,CAAA;AAOjC,OAAO,oCAAoC,CAAA;AAE3C,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;CACrF;AAgND,eAAO,MAAM,MAAM,gJAA+B,CAAA;AAElD,eAAe,MAAM,CAAA"}
@@ -0,0 +1,189 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { useState, useRef, useMemo } from 'react';
3
+ import { getSelectClassNames } from '../../../components/select/index.js';
4
+ import { createComponent } from '../../runtime/createComponent.js';
5
+ import { withInstall } from '../../runtime/withInstall.js';
6
+ import { forwardRef } from '../../runtime/forwardRef.js';
7
+ import IconComponent from '../icon/Icon.js';
8
+ import { Checkbox } from '../checkbox/Checkbox.js';
9
+ import { useClickOutside, useEscClose, mergeRefs } from '../../hooks/index.js';
10
+ import { cn } from '../../../utils/src/index.js';
11
+ import { useMergedState } from '../../hooks/useMergedState.js';
12
+
13
+ function isMultipleValue(value) {
14
+ return Array.isArray(value);
15
+ }
16
+ const SelectComponent = createComponent(
17
+ forwardRef((props, ref) => {
18
+ const {
19
+ label,
20
+ status = "default",
21
+ disabled = false,
22
+ value,
23
+ multiple = false,
24
+ placeholder = "",
25
+ options = [],
26
+ className,
27
+ onChange
28
+ } = props;
29
+ const [isOpen, setIsOpen] = useState(false);
30
+ const rootRef = useRef(null);
31
+ const inputRef = useRef(null);
32
+ const [currentValue, setCurrentValue] = useMergedState(
33
+ multiple ? Array.isArray(value) ? value : [] : value ?? "",
34
+ { value }
35
+ );
36
+ const classNames = cn(getSelectClassNames({ status, disabled, multiple }), className);
37
+ const selectedLabels = useMemo(() => {
38
+ if (!multiple) {
39
+ const opt = options.find((o) => o.value === currentValue);
40
+ return opt?.label ?? "";
41
+ }
42
+ const values = isMultipleValue(currentValue) ? currentValue : [];
43
+ return options.filter((o) => values.includes(o.value));
44
+ }, [options, currentValue, multiple]);
45
+ useClickOutside(rootRef, () => setIsOpen(false));
46
+ useEscClose(isOpen, () => setIsOpen(false));
47
+ const toggleDropdown = () => {
48
+ if (disabled) return;
49
+ setIsOpen((open) => !open);
50
+ };
51
+ const handleDropdownKeyDown = (event) => {
52
+ if (disabled) return;
53
+ if (event.key === "Enter" || event.key === " ") {
54
+ event.preventDefault();
55
+ toggleDropdown();
56
+ }
57
+ };
58
+ const handleRootClick = (event) => {
59
+ const target = event.target;
60
+ if (target.closest(".css-select__panel") || target.closest(".css-select__tag-close")) {
61
+ return;
62
+ }
63
+ toggleDropdown();
64
+ };
65
+ const handleOptionSelect = (option, event) => {
66
+ if (multiple) {
67
+ const current = isMultipleValue(currentValue) ? [...currentValue] : [];
68
+ const idx = current.indexOf(option.value);
69
+ if (idx > -1) {
70
+ current.splice(idx, 1);
71
+ } else {
72
+ current.push(option.value);
73
+ }
74
+ setCurrentValue(current);
75
+ onChange?.(current, event);
76
+ } else {
77
+ setIsOpen(false);
78
+ setCurrentValue(option.value);
79
+ onChange?.(option.value, event);
80
+ }
81
+ };
82
+ const handleTagClose = (tagValue, event) => {
83
+ event.stopPropagation();
84
+ const current = isMultipleValue(currentValue) ? [...currentValue] : [];
85
+ const idx = current.indexOf(tagValue);
86
+ if (idx > -1) {
87
+ current.splice(idx, 1);
88
+ }
89
+ setCurrentValue(current);
90
+ onChange?.(current);
91
+ };
92
+ const isSelected = (optionValue) => {
93
+ if (multiple) {
94
+ return isMultipleValue(currentValue) && currentValue.includes(optionValue);
95
+ }
96
+ return currentValue === optionValue;
97
+ };
98
+ const content = /* @__PURE__ */ jsxs(
99
+ "div",
100
+ {
101
+ ref: rootRef,
102
+ className: classNames,
103
+ role: "button",
104
+ tabIndex: disabled ? -1 : 0,
105
+ "aria-expanded": isOpen,
106
+ "aria-disabled": disabled,
107
+ "aria-multiselectable": multiple || void 0,
108
+ onClick: handleRootClick,
109
+ onKeyDown: handleDropdownKeyDown,
110
+ children: [
111
+ /* @__PURE__ */ jsx("div", { className: "css-select__trigger", children: multiple ? /* @__PURE__ */ jsxs(Fragment, { children: [
112
+ isMultipleValue(currentValue) && currentValue.length > 0 ? selectedLabels.map((tag) => /* @__PURE__ */ jsxs("span", { className: "css-select__tag", children: [
113
+ tag.label,
114
+ /* @__PURE__ */ jsx(
115
+ "button",
116
+ {
117
+ type: "button",
118
+ className: "css-select__tag-close",
119
+ onClick: (e) => handleTagClose(tag.value, e),
120
+ "aria-label": `\u79FB\u9664 ${tag.label}`,
121
+ children: "\u2715"
122
+ }
123
+ )
124
+ ] }, tag.value)) : null,
125
+ /* @__PURE__ */ jsx(
126
+ "input",
127
+ {
128
+ ref: mergeRefs(ref, inputRef),
129
+ type: "text",
130
+ className: "css-select__control",
131
+ placeholder: isMultipleValue(currentValue) && currentValue.length > 0 ? "" : placeholder,
132
+ disabled,
133
+ readOnly: true
134
+ }
135
+ )
136
+ ] }) : /* @__PURE__ */ jsx(
137
+ "input",
138
+ {
139
+ ref: mergeRefs(ref, inputRef),
140
+ type: "text",
141
+ className: "css-select__control",
142
+ value: selectedLabels,
143
+ placeholder,
144
+ disabled,
145
+ readOnly: true
146
+ }
147
+ ) }),
148
+ /* @__PURE__ */ jsx("span", { className: "css-select__suffix", children: /* @__PURE__ */ jsx(IconComponent, { name: "ArrowDropDown", size: 20 }) }),
149
+ isOpen && options.length > 0 ? /* @__PURE__ */ jsx("div", { className: "css-select__panel", children: options.map((option) => /* @__PURE__ */ jsx(
150
+ "button",
151
+ {
152
+ type: "button",
153
+ className: cn(
154
+ "css-select__option",
155
+ isSelected(option.value) && "css-select__option--selected"
156
+ ),
157
+ onClick: (event) => handleOptionSelect(option, event),
158
+ children: multiple ? /* @__PURE__ */ jsxs(Fragment, { children: [
159
+ /* @__PURE__ */ jsx(
160
+ Checkbox,
161
+ {
162
+ checked: isSelected(option.value),
163
+ onChange: () => {
164
+ },
165
+ className: "css-select__option-checkbox"
166
+ }
167
+ ),
168
+ /* @__PURE__ */ jsx("span", { className: "css-select__option-label", children: option.label })
169
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
170
+ /* @__PURE__ */ jsx("span", { className: "css-select__option-label", children: option.label }),
171
+ isSelected(option.value) && /* @__PURE__ */ jsx("span", { className: "css-select__option-check", children: /* @__PURE__ */ jsx(IconComponent, { name: "Check", size: 20, className: "css-select__option-check-icon" }) })
172
+ ] })
173
+ },
174
+ option.value
175
+ )) }) : null
176
+ ]
177
+ }
178
+ );
179
+ return label ? /* @__PURE__ */ jsxs("div", { className: "css-select-field", children: [
180
+ /* @__PURE__ */ jsx("span", { className: "css-select-field__label", children: label }),
181
+ content
182
+ ] }) : content;
183
+ })
184
+ );
185
+ SelectComponent.displayName = "CssSelect";
186
+ const Select = withInstall(SelectComponent);
187
+
188
+ export { Select, Select as default };
189
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sources":["../../../../../adapter-react/components/select/Select.tsx"],"sourcesContent":["import { useMemo, useRef, useState, type MouseEvent } from 'react'\nimport {\n getSelectClassNames,\n type SelectOption,\n type SelectProps as BaseSelectProps,\n} from '@cssui/components/select'\nimport { forwardRef, createComponent, withInstall } from '../../runtime'\nimport Icon from '../icon/Icon'\nimport Checkbox from '../checkbox/Checkbox'\nimport { mergeRefs, useClickOutside, useEscClose, useMergedState } from '../../hooks'\nimport { cn } from '@cssui/utils'\n\nimport '@cssui/components/select/style.css'\n\nexport interface SelectProps extends Omit<BaseSelectProps, 'onChange'> {\n onChange?: (value: string | string[], event?: MouseEvent<HTMLButtonElement>) => void\n}\n\nfunction isMultipleValue(value: unknown): value is string[] {\n return Array.isArray(value)\n}\n\nconst SelectComponent = createComponent(\n forwardRef<HTMLInputElement, SelectProps>((props, ref) => {\n const {\n label,\n status = 'default',\n disabled = false,\n value,\n multiple = false,\n placeholder = '',\n options = [],\n className,\n onChange,\n } = props\n\n const [isOpen, setIsOpen] = useState(false)\n const rootRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const [currentValue, setCurrentValue] = useMergedState<string | string[]>(\n multiple ? (Array.isArray(value) ? value : []) : (value ?? ''),\n { value }\n )\n\n const classNames = cn(getSelectClassNames({ status, disabled, multiple }), className)\n\n const selectedLabels = useMemo(() => {\n if (!multiple) {\n const opt = options.find(o => o.value === currentValue)\n return opt?.label ?? ''\n }\n const values = isMultipleValue(currentValue) ? currentValue : []\n return options.filter(o => values.includes(o.value))\n }, [options, currentValue, multiple])\n\n useClickOutside(rootRef as React.RefObject<HTMLElement>, () => setIsOpen(false))\n useEscClose(isOpen, () => setIsOpen(false))\n\n const toggleDropdown = () => {\n if (disabled) return\n setIsOpen(open => !open)\n }\n\n const handleDropdownKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n toggleDropdown()\n }\n }\n\n const handleRootClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement\n\n if (target.closest('.css-select__panel') || target.closest('.css-select__tag-close')) {\n return\n }\n\n toggleDropdown()\n }\n\n const handleOptionSelect = (option: SelectOption, event: MouseEvent<HTMLButtonElement>) => {\n if (multiple) {\n const current = isMultipleValue(currentValue) ? [...currentValue] : []\n const idx = current.indexOf(option.value)\n if (idx > -1) {\n current.splice(idx, 1)\n } else {\n current.push(option.value)\n }\n setCurrentValue(current)\n onChange?.(current, event)\n } else {\n setIsOpen(false)\n setCurrentValue(option.value)\n onChange?.(option.value, event)\n }\n }\n\n const handleTagClose = (tagValue: string, event: MouseEvent) => {\n event.stopPropagation()\n const current = isMultipleValue(currentValue) ? [...currentValue] : []\n const idx = current.indexOf(tagValue)\n if (idx > -1) {\n current.splice(idx, 1)\n }\n setCurrentValue(current)\n onChange?.(current)\n }\n\n const isSelected = (optionValue: string) => {\n if (multiple) {\n return isMultipleValue(currentValue) && currentValue.includes(optionValue)\n }\n return currentValue === optionValue\n }\n\n const content = (\n <div\n ref={rootRef}\n className={classNames}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-expanded={isOpen}\n aria-disabled={disabled}\n aria-multiselectable={multiple || undefined}\n onClick={handleRootClick}\n onKeyDown={handleDropdownKeyDown}\n >\n <div className=\"css-select__trigger\">\n {multiple ? (\n <>\n {isMultipleValue(currentValue) && currentValue.length > 0\n ? (selectedLabels as SelectOption[]).map(tag => (\n <span key={tag.value} className=\"css-select__tag\">\n {tag.label}\n <button\n type=\"button\"\n className=\"css-select__tag-close\"\n onClick={e => handleTagClose(tag.value, e)}\n aria-label={`移除 ${tag.label}`}\n >\n ✕\n </button>\n </span>\n ))\n : null}\n <input\n ref={mergeRefs(ref as React.Ref<HTMLInputElement>, inputRef)}\n type=\"text\"\n className=\"css-select__control\"\n placeholder={\n isMultipleValue(currentValue) && currentValue.length > 0 ? '' : placeholder\n }\n disabled={disabled}\n readOnly\n />\n </>\n ) : (\n <input\n ref={mergeRefs(ref as React.Ref<HTMLInputElement>, inputRef)}\n type=\"text\"\n className=\"css-select__control\"\n value={selectedLabels as string}\n placeholder={placeholder}\n disabled={disabled}\n readOnly\n />\n )}\n </div>\n <span className=\"css-select__suffix\">\n <Icon name=\"ArrowDropDown\" size={20} />\n </span>\n {isOpen && options.length > 0 ? (\n <div className=\"css-select__panel\">\n {options.map(option => (\n <button\n key={option.value}\n type=\"button\"\n className={cn(\n 'css-select__option',\n isSelected(option.value) && 'css-select__option--selected'\n )}\n onClick={event => handleOptionSelect(option, event)}\n >\n {multiple ? (\n <>\n <Checkbox\n checked={isSelected(option.value)}\n onChange={() => {}}\n className=\"css-select__option-checkbox\"\n />\n <span className=\"css-select__option-label\">{option.label}</span>\n </>\n ) : (\n <>\n <span className=\"css-select__option-label\">{option.label}</span>\n {isSelected(option.value) && (\n <span className=\"css-select__option-check\">\n <Icon name=\"Check\" size={20} className=\"css-select__option-check-icon\" />\n </span>\n )}\n </>\n )}\n </button>\n ))}\n </div>\n ) : null}\n </div>\n )\n\n return label ? (\n <div className=\"css-select-field\">\n <span className=\"css-select-field__label\">{label}</span>\n {content}\n </div>\n ) : (\n content\n )\n })\n)\n\nSelectComponent.displayName = 'CssSelect'\n\nexport const Select = withInstall(SelectComponent)\n\nexport default Select\n"],"names":["Icon"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Select, default } from './Select';
2
+ export type { SelectProps } from './Select';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { type HTMLAttributes, type MouseEvent } from 'react';
2
+ import { type NavMenuValue } from '../../../components/nav-menu/index';
3
+ import { type SidebarItem, type SidebarProps as BaseSidebarProps } from '../../../components/sidebar/index';
4
+ import '../../../components/sidebar/style.css';
5
+ export interface SidebarProps extends Omit<BaseSidebarProps, 'className'>, Omit<HTMLAttributes<HTMLElement>, 'onChange'> {
6
+ value?: NavMenuValue;
7
+ defaultValue?: NavMenuValue;
8
+ collapsed?: boolean;
9
+ onChange?: (value: NavMenuValue, item: SidebarItem, event: MouseEvent<HTMLElement>) => void;
10
+ }
11
+ export declare const Sidebar: import("../..").ComponentWithInstall<import("react").ForwardRefExoticComponent<SidebarProps & import("react").RefAttributes<HTMLElement>>>;
12
+ export default Sidebar;
13
+ //# sourceMappingURL=Sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../components/sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EAMhB,MAAM,OAAO,CAAA;AACd,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,IAAI,gBAAgB,EACtC,MAAM,2BAA2B,CAAA;AAMlC,OAAO,qCAAqC,CAAA;AAE5C,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAC1F,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;CAC5F;AAgUD,eAAO,MAAM,OAAO,4IAAgC,CAAA;AAEpD,eAAe,OAAO,CAAA"}
@@ -0,0 +1,242 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { useMemo, useState, useRef, useEffect } from 'react';
3
+ import { findNavMenuItemPath, hasNavMenuChildren } from '../../../components/nav-menu/index.js';
4
+ import { getSidebarClassNames, getSidebarItemClassNames } from '../../../components/sidebar/index.js';
5
+ import { cn } from '../../../utils/src/index.js';
6
+ import { useMergedState } from '../../hooks/useMergedState.js';
7
+ import { createComponent } from '../../runtime/createComponent.js';
8
+ import { withInstall } from '../../runtime/withInstall.js';
9
+ import { forwardRef } from '../../runtime/forwardRef.js';
10
+ import IconComponent from '../icon/Icon.js';
11
+
12
+ const SidebarComponent = createComponent(
13
+ forwardRef((props, ref) => {
14
+ const {
15
+ items = [],
16
+ value,
17
+ defaultValue,
18
+ collapsed = false,
19
+ className,
20
+ onChange,
21
+ ...restProps
22
+ } = props;
23
+ const [currentValue, setCurrentValue] = useMergedState(defaultValue, {
24
+ value
25
+ });
26
+ const selectedPath = useMemo(
27
+ () => findNavMenuItemPath(items, currentValue),
28
+ [items, currentValue]
29
+ );
30
+ const selectedAncestorValues = useMemo(
31
+ () => selectedPath.slice(0, -1).map((item) => item.value),
32
+ [selectedPath]
33
+ );
34
+ const selectedRootValue = selectedPath[0]?.value;
35
+ const [expandedValues, setExpandedValues] = useState(selectedAncestorValues);
36
+ const [openRootValue, setOpenRootValue] = useState(
37
+ selectedRootValue ?? items[0]?.value
38
+ );
39
+ const skipSyncOpenRootRef = useRef(false);
40
+ const rootRef = useRef(null);
41
+ const setRootRef = (node) => {
42
+ rootRef.current = node;
43
+ if (typeof ref === "function") {
44
+ ref(node);
45
+ return;
46
+ }
47
+ if (ref) {
48
+ ref.current = node;
49
+ }
50
+ };
51
+ useEffect(() => {
52
+ setExpandedValues((prev) => Array.from(/* @__PURE__ */ new Set([...prev, ...selectedAncestorValues])));
53
+ }, [currentValue, selectedAncestorValues]);
54
+ useEffect(() => {
55
+ if (!collapsed) {
56
+ return;
57
+ }
58
+ if (skipSyncOpenRootRef.current) {
59
+ skipSyncOpenRootRef.current = false;
60
+ return;
61
+ }
62
+ setOpenRootValue((previous) => selectedRootValue ?? previous ?? items[0]?.value);
63
+ }, [collapsed, items, selectedRootValue]);
64
+ useEffect(() => {
65
+ if (!collapsed || openRootValue === void 0) {
66
+ return;
67
+ }
68
+ const handlePointerDown = (event) => {
69
+ const target = event.target;
70
+ if (!target || !rootRef.current || rootRef.current.contains(target)) {
71
+ return;
72
+ }
73
+ setOpenRootValue(void 0);
74
+ };
75
+ document.addEventListener("pointerdown", handlePointerDown);
76
+ return () => {
77
+ document.removeEventListener("pointerdown", handlePointerDown);
78
+ };
79
+ }, [collapsed, openRootValue]);
80
+ const expandedSet = useMemo(
81
+ () => /* @__PURE__ */ new Set([...expandedValues, ...selectedAncestorValues]),
82
+ [expandedValues, selectedAncestorValues]
83
+ );
84
+ const openRootItem = useMemo(
85
+ () => items.find((item) => item.value === openRootValue),
86
+ [items, openRootValue]
87
+ );
88
+ const toggleExpanded = (value2) => {
89
+ setExpandedValues(
90
+ (prev) => prev.includes(value2) ? prev.filter((item) => item !== value2) : [...prev, value2]
91
+ );
92
+ };
93
+ const handlePanelBack = () => {
94
+ setOpenRootValue(void 0);
95
+ };
96
+ const handleSelect = (item, event, level) => {
97
+ if (item.disabled) {
98
+ event.preventDefault();
99
+ return;
100
+ }
101
+ if (collapsed && level === 0) {
102
+ setOpenRootValue(item.value);
103
+ if (!hasNavMenuChildren(item)) {
104
+ setCurrentValue(item.value);
105
+ onChange?.(item.value, item, event);
106
+ }
107
+ return;
108
+ }
109
+ if (hasNavMenuChildren(item)) {
110
+ toggleExpanded(item.value);
111
+ return;
112
+ }
113
+ setCurrentValue(item.value);
114
+ if (collapsed && level > 0) {
115
+ skipSyncOpenRootRef.current = true;
116
+ setOpenRootValue(void 0);
117
+ }
118
+ onChange?.(item.value, item, event);
119
+ };
120
+ const renderList = (list, level, iconOnly = false) => /* @__PURE__ */ jsx("ul", { className: cn("css-sidebar__list", level > 0 ? "css-sidebar__submenu" : void 0), children: list.map((item) => {
121
+ const active = currentValue === item.value && !hasNavMenuChildren(item);
122
+ const expanded = hasNavMenuChildren(item) && (iconOnly ? openRootValue === item.value : expandedSet.has(item.value));
123
+ const classes = cn(
124
+ getSidebarItemClassNames({
125
+ active,
126
+ expanded,
127
+ disabled: item.disabled
128
+ }),
129
+ iconOnly && "css-sidebar__item--icon-only"
130
+ );
131
+ const content = iconOnly ? /* @__PURE__ */ jsx("span", { className: "css-sidebar__item-main", children: /* @__PURE__ */ jsx("span", { className: "css-sidebar__item-icon", children: item.icon ? /* @__PURE__ */ jsx(IconComponent, { name: item.icon, size: 20 }) : /* @__PURE__ */ jsx("span", { className: "css-sidebar__item-symbol", children: item.label.slice(0, 1) }) }) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
132
+ /* @__PURE__ */ jsxs("span", { className: "css-sidebar__item-main", children: [
133
+ item.icon && /* @__PURE__ */ jsx("span", { className: "css-sidebar__item-icon", children: /* @__PURE__ */ jsx(IconComponent, { name: item.icon, size: 20 }) }),
134
+ /* @__PURE__ */ jsx("span", { className: "css-sidebar__item-label", children: item.label })
135
+ ] }),
136
+ hasNavMenuChildren(item) && /* @__PURE__ */ jsx("span", { className: "css-sidebar__item-arrow", children: /* @__PURE__ */ jsx(IconComponent, { name: "ChevronRight", size: 20 }) })
137
+ ] });
138
+ const style = iconOnly ? { padding: "12px 0" } : { padding: "8px", paddingLeft: 12 + level * 16 };
139
+ return /* @__PURE__ */ jsxs("li", { children: [
140
+ item.href && !hasNavMenuChildren(item) ? /* @__PURE__ */ jsx(
141
+ "a",
142
+ {
143
+ href: item.disabled ? void 0 : item.href,
144
+ className: classes,
145
+ style,
146
+ "aria-disabled": item.disabled || void 0,
147
+ onClick: (event) => handleSelect(item, event, level),
148
+ children: content
149
+ }
150
+ ) : /* @__PURE__ */ jsx(
151
+ "button",
152
+ {
153
+ type: "button",
154
+ className: classes,
155
+ style,
156
+ "aria-expanded": hasNavMenuChildren(item) ? expanded : void 0,
157
+ onClick: (event) => handleSelect(item, event, level),
158
+ children: content
159
+ }
160
+ ),
161
+ !iconOnly && hasNavMenuChildren(item) && expanded ? renderList(item.children ?? [], level + 1) : null
162
+ ] }, item.value);
163
+ }) });
164
+ const renderCollapsedPanelList = (list, level = 0) => /* @__PURE__ */ jsx("ul", { className: cn(level === 0 ? "css-sidebar__panel-list" : "css-sidebar__panel-sublist"), children: list.map((item) => {
165
+ const active = currentValue === item.value && !hasNavMenuChildren(item);
166
+ const expanded = hasNavMenuChildren(item);
167
+ const nestedLinkClass = level > 0 ? level > 1 ? "css-sidebar__panel-link--deep" : "css-sidebar__panel-link--nested" : void 0;
168
+ if (item.href && !hasNavMenuChildren(item)) {
169
+ return /* @__PURE__ */ jsx("li", { className: "css-sidebar__panel-entry", children: /* @__PURE__ */ jsx(
170
+ "a",
171
+ {
172
+ href: item.disabled ? void 0 : item.href,
173
+ className: cn(
174
+ "css-sidebar__panel-link",
175
+ active && "css-sidebar__panel-link--active",
176
+ nestedLinkClass
177
+ ),
178
+ "aria-disabled": item.disabled || void 0,
179
+ onClick: (event) => handleSelect(item, event, level + 1),
180
+ children: item.label
181
+ }
182
+ ) }, item.value);
183
+ }
184
+ return /* @__PURE__ */ jsxs(
185
+ "li",
186
+ {
187
+ className: hasNavMenuChildren(item) ? "css-sidebar__panel-group" : "css-sidebar__panel-entry",
188
+ children: [
189
+ /* @__PURE__ */ jsx(
190
+ "button",
191
+ {
192
+ type: "button",
193
+ className: cn(
194
+ hasNavMenuChildren(item) ? "css-sidebar__panel-section" : "css-sidebar__panel-link",
195
+ hasNavMenuChildren(item) && expanded && "css-sidebar__panel-section--expanded",
196
+ !hasNavMenuChildren(item) && active && "css-sidebar__panel-link--active",
197
+ !hasNavMenuChildren(item) && nestedLinkClass
198
+ ),
199
+ onClick: (event) => handleSelect(item, event, level + 1),
200
+ children: item.label
201
+ }
202
+ ),
203
+ hasNavMenuChildren(item) ? renderCollapsedPanelList(item.children ?? [], level + 1) : null
204
+ ]
205
+ },
206
+ item.value
207
+ );
208
+ }) });
209
+ return /* @__PURE__ */ jsx(
210
+ "aside",
211
+ {
212
+ ref: setRootRef,
213
+ className: cn(getSidebarClassNames(), collapsed && "css-sidebar--collapsed", className),
214
+ "aria-label": "\u4FA7\u8FB9\u5BFC\u822A",
215
+ ...restProps,
216
+ children: collapsed ? /* @__PURE__ */ jsxs(Fragment, { children: [
217
+ renderList(items, 0, true),
218
+ openRootItem && hasNavMenuChildren(openRootItem) ? /* @__PURE__ */ jsxs("div", { className: "css-sidebar__panel", children: [
219
+ /* @__PURE__ */ jsx("div", { className: "css-sidebar__panel-header", children: /* @__PURE__ */ jsxs(
220
+ "button",
221
+ {
222
+ type: "button",
223
+ className: "css-sidebar__panel-header-button",
224
+ onClick: handlePanelBack,
225
+ children: [
226
+ /* @__PURE__ */ jsx("span", { className: "css-sidebar__panel-header-icon", children: /* @__PURE__ */ jsx(IconComponent, { name: "ArrowBack", size: 18 }) }),
227
+ /* @__PURE__ */ jsx("span", { className: "css-sidebar__panel-header-label", children: openRootItem.label })
228
+ ]
229
+ }
230
+ ) }),
231
+ /* @__PURE__ */ jsx("div", { className: "css-sidebar__panel-body", children: renderCollapsedPanelList(openRootItem.children ?? [], 0) })
232
+ ] }) : null
233
+ ] }) : renderList(items, 0)
234
+ }
235
+ );
236
+ })
237
+ );
238
+ SidebarComponent.displayName = "CssSidebar";
239
+ const Sidebar = withInstall(SidebarComponent);
240
+
241
+ export { Sidebar };
242
+ //# sourceMappingURL=Sidebar.js.map