hakumi_components 0.1.17.pre → 0.1.18.pre

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 (373) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -1
  3. data/README.md +92 -70
  4. data/app/components/{hakumi → hakumi_components}/admin_panel/component.html.erb +2 -2
  5. data/app/components/{hakumi → hakumi_components}/admin_panel/component.rb +2 -2
  6. data/app/components/{hakumi → hakumi_components}/affix/component.rb +2 -2
  7. data/app/components/{hakumi → hakumi_components}/alert/component.html.erb +1 -1
  8. data/app/components/{hakumi → hakumi_components}/alert/component.rb +3 -3
  9. data/app/components/{hakumi → hakumi_components}/anchor/component.rb +3 -3
  10. data/app/components/{hakumi → hakumi_components}/anchor/link/component.rb +3 -3
  11. data/app/components/{hakumi → hakumi_components}/autocomplete/component.html.erb +1 -1
  12. data/app/components/{hakumi → hakumi_components}/autocomplete/component.rb +2 -2
  13. data/app/components/{hakumi → hakumi_components}/avatar/component.rb +3 -3
  14. data/app/components/{hakumi → hakumi_components}/badge/component.rb +3 -3
  15. data/app/components/{hakumi → hakumi_components}/base_component.rb +1 -1
  16. data/app/components/{hakumi → hakumi_components}/breadcrumb/component.rb +3 -3
  17. data/app/components/{hakumi → hakumi_components}/breadcrumb/item/component.html.erb +2 -2
  18. data/app/components/{hakumi → hakumi_components}/breadcrumb/item/component.rb +2 -2
  19. data/app/components/{hakumi → hakumi_components}/button/component.rb +4 -4
  20. data/app/components/{hakumi → hakumi_components}/calendar/component.html.erb +5 -5
  21. data/app/components/{hakumi → hakumi_components}/calendar/component.rb +4 -4
  22. data/app/components/{hakumi → hakumi_components}/card/component.rb +4 -4
  23. data/app/components/{hakumi → hakumi_components}/card/grid/component.rb +5 -5
  24. data/app/components/{hakumi → hakumi_components}/card/meta/component.rb +4 -4
  25. data/app/components/{hakumi → hakumi_components}/carousel/component.html.erb +2 -2
  26. data/app/components/{hakumi → hakumi_components}/carousel/component.rb +2 -2
  27. data/app/components/{hakumi → hakumi_components}/cascader/component.html.erb +2 -2
  28. data/app/components/{hakumi → hakumi_components}/cascader/component.rb +3 -3
  29. data/app/components/{hakumi → hakumi_components}/checkbox/component.rb +3 -3
  30. data/app/components/{hakumi → hakumi_components}/checkbox/group/component.html.erb +1 -1
  31. data/app/components/{hakumi → hakumi_components}/checkbox/group/component.rb +2 -2
  32. data/app/components/{hakumi → hakumi_components}/collapse/component.html.erb +1 -1
  33. data/app/components/{hakumi → hakumi_components}/collapse/component.rb +3 -3
  34. data/app/components/{hakumi → hakumi_components}/collapse/panel/component.rb +2 -2
  35. data/app/components/{hakumi → hakumi_components}/color_picker/component.rb +3 -3
  36. data/app/components/{hakumi → hakumi_components}/concerns/form_field.rb +1 -1
  37. data/app/components/{hakumi → hakumi_components}/container/component.rb +2 -2
  38. data/app/components/{hakumi → hakumi_components}/date_picker/component.html.erb +3 -3
  39. data/app/components/{hakumi → hakumi_components}/date_picker/component.rb +3 -3
  40. data/app/components/{hakumi → hakumi_components}/date_picker/range_picker.html.erb +4 -4
  41. data/app/components/{hakumi → hakumi_components}/date_picker/range_picker.rb +3 -3
  42. data/app/components/{hakumi → hakumi_components}/date_picker/shared_rendering.rb +1 -1
  43. data/app/components/{hakumi → hakumi_components}/descriptions/component.rb +3 -3
  44. data/app/components/{hakumi → hakumi_components}/descriptions/item/component.rb +2 -2
  45. data/app/components/{hakumi → hakumi_components}/divider/component.rb +2 -2
  46. data/app/components/{hakumi → hakumi_components}/drawer/component.html.erb +1 -1
  47. data/app/components/{hakumi → hakumi_components}/drawer/component.rb +2 -2
  48. data/app/components/{hakumi → hakumi_components}/dropdown/component.rb +4 -4
  49. data/app/components/{hakumi → hakumi_components}/dropdown/divider/component.rb +2 -2
  50. data/app/components/{hakumi → hakumi_components}/dropdown/item/component.rb +3 -3
  51. data/app/components/{hakumi → hakumi_components}/empty/component.rb +2 -2
  52. data/app/components/{hakumi → hakumi_components}/flex/component.rb +2 -2
  53. data/app/components/{hakumi → hakumi_components}/float_button/back_top/component.rb +3 -3
  54. data/app/components/{hakumi → hakumi_components}/float_button/component.rb +5 -5
  55. data/app/components/{hakumi → hakumi_components}/float_button/group/component.rb +7 -7
  56. data/app/components/{hakumi → hakumi_components}/float_button/group_cluster/component.rb +4 -4
  57. data/app/components/{hakumi → hakumi_components}/form/item/component.rb +6 -6
  58. data/app/components/{hakumi → hakumi_components}/grid/col/component.rb +2 -2
  59. data/app/components/{hakumi → hakumi_components}/grid/row/component.rb +2 -2
  60. data/app/components/{hakumi → hakumi_components}/icon/component.rb +8 -8
  61. data/app/components/{hakumi → hakumi_components}/image/component.html.erb +10 -10
  62. data/app/components/{hakumi → hakumi_components}/image/component.rb +2 -2
  63. data/app/components/{hakumi → hakumi_components}/image/preview_group/component.html.erb +9 -9
  64. data/app/components/{hakumi → hakumi_components}/image/preview_group/component.rb +3 -3
  65. data/app/components/{hakumi → hakumi_components}/input/component.rb +9 -9
  66. data/app/components/{hakumi → hakumi_components}/input/password/component.rb +5 -5
  67. data/app/components/{hakumi → hakumi_components}/input/text_area/component.rb +5 -5
  68. data/app/components/{hakumi → hakumi_components}/input_number/component.html.erb +4 -4
  69. data/app/components/{hakumi → hakumi_components}/input_number/component.rb +5 -5
  70. data/app/components/{hakumi → hakumi_components}/layout/component.rb +1 -1
  71. data/app/components/{hakumi → hakumi_components}/layout/content/component.rb +1 -1
  72. data/app/components/{hakumi → hakumi_components}/layout/footer/component.rb +1 -1
  73. data/app/components/{hakumi → hakumi_components}/layout/header/component.rb +1 -1
  74. data/app/components/{hakumi → hakumi_components}/layout/sider/component.rb +1 -1
  75. data/app/components/{hakumi → hakumi_components}/mentions/component.rb +3 -3
  76. data/app/components/{hakumi → hakumi_components}/menu/component.rb +6 -6
  77. data/app/components/{hakumi → hakumi_components}/menu/divider/component.rb +2 -2
  78. data/app/components/{hakumi → hakumi_components}/menu/group/component.rb +3 -3
  79. data/app/components/{hakumi → hakumi_components}/menu/item/component.rb +3 -3
  80. data/app/components/{hakumi → hakumi_components}/menu/sub_menu/component.rb +7 -7
  81. data/app/components/{hakumi → hakumi_components}/message/component.rb +2 -2
  82. data/app/components/{hakumi → hakumi_components}/modal/component.html.erb +1 -1
  83. data/app/components/{hakumi → hakumi_components}/modal/component.rb +2 -2
  84. data/app/components/hakumi_components/modal/confirm/component.html.erb +23 -0
  85. data/app/components/{hakumi → hakumi_components}/modal/confirm/component.rb +2 -2
  86. data/app/components/{hakumi → hakumi_components}/modal/error/component.rb +5 -5
  87. data/app/components/{hakumi → hakumi_components}/modal/info/component.rb +5 -5
  88. data/app/components/{hakumi → hakumi_components}/modal/success/component.rb +5 -5
  89. data/app/components/{hakumi → hakumi_components}/modal/warning/component.rb +6 -6
  90. data/app/components/{hakumi → hakumi_components}/notification/component.rb +2 -2
  91. data/app/components/{hakumi → hakumi_components}/pagination/component.html.erb +1 -1
  92. data/app/components/{hakumi → hakumi_components}/pagination/component.rb +7 -7
  93. data/app/components/{hakumi → hakumi_components}/popconfirm/component.html.erb +2 -2
  94. data/app/components/{hakumi → hakumi_components}/popconfirm/component.rb +3 -3
  95. data/app/components/{hakumi → hakumi_components}/popover/component.rb +2 -2
  96. data/app/components/{hakumi → hakumi_components}/progress/component.html.erb +1 -1
  97. data/app/components/{hakumi → hakumi_components}/progress/component.rb +2 -2
  98. data/app/components/{hakumi → hakumi_components}/qr_code/component.rb +4 -4
  99. data/app/components/{hakumi → hakumi_components}/radio/component.rb +3 -3
  100. data/app/components/{hakumi → hakumi_components}/radio/group/component.html.erb +1 -1
  101. data/app/components/{hakumi → hakumi_components}/radio/group/component.rb +3 -3
  102. data/app/components/{hakumi → hakumi_components}/rate/component.html.erb +1 -1
  103. data/app/components/{hakumi → hakumi_components}/rate/component.rb +3 -3
  104. data/app/components/{hakumi → hakumi_components}/result/component.rb +4 -4
  105. data/app/components/{hakumi → hakumi_components}/segmented/component.rb +3 -3
  106. data/app/components/{hakumi → hakumi_components}/select/component.html.erb +3 -3
  107. data/app/components/{hakumi → hakumi_components}/select/component.rb +3 -3
  108. data/app/components/{hakumi → hakumi_components}/skeleton/avatar/component.rb +2 -2
  109. data/app/components/{hakumi → hakumi_components}/skeleton/button/component.rb +2 -2
  110. data/app/components/{hakumi → hakumi_components}/skeleton/component.rb +2 -2
  111. data/app/components/{hakumi → hakumi_components}/skeleton/image/component.html.erb +1 -1
  112. data/app/components/{hakumi → hakumi_components}/skeleton/image/component.rb +2 -2
  113. data/app/components/{hakumi → hakumi_components}/skeleton/input/component.rb +2 -2
  114. data/app/components/{hakumi → hakumi_components}/skeleton/node/component.rb +2 -2
  115. data/app/components/{hakumi → hakumi_components}/slider/component.rb +3 -3
  116. data/app/components/{hakumi → hakumi_components}/space/compact/component.rb +1 -1
  117. data/app/components/{hakumi → hakumi_components}/space/component.rb +1 -1
  118. data/app/components/{hakumi → hakumi_components}/spin/component.rb +3 -3
  119. data/app/components/{hakumi → hakumi_components}/splitter/component.rb +2 -2
  120. data/app/components/{hakumi → hakumi_components}/splitter/panel/component.rb +1 -1
  121. data/app/components/{hakumi → hakumi_components}/statistic/component.rb +2 -2
  122. data/app/components/{hakumi → hakumi_components}/steps/component.html.erb +4 -4
  123. data/app/components/{hakumi → hakumi_components}/steps/component.rb +3 -3
  124. data/app/components/{hakumi → hakumi_components}/steps/item/component.rb +2 -2
  125. data/app/components/{hakumi → hakumi_components}/switch/component.rb +3 -3
  126. data/app/components/{hakumi → hakumi_components}/table/column/component.rb +2 -2
  127. data/app/components/{hakumi → hakumi_components}/table/column_group/component.rb +4 -4
  128. data/app/components/{hakumi → hakumi_components}/table/component.rb +7 -7
  129. data/app/components/{hakumi → hakumi_components}/table/concerns/columns.rb +8 -8
  130. data/app/components/{hakumi → hakumi_components}/table/concerns/editable.rb +1 -1
  131. data/app/components/{hakumi → hakumi_components}/table/concerns/ellipsis.rb +2 -2
  132. data/app/components/{hakumi → hakumi_components}/table/concerns/fixed_columns.rb +1 -1
  133. data/app/components/{hakumi → hakumi_components}/tabs/component.html.erb +4 -4
  134. data/app/components/{hakumi → hakumi_components}/tabs/component.rb +4 -4
  135. data/app/components/{hakumi → hakumi_components}/tabs/item/component.rb +2 -2
  136. data/app/components/{hakumi → hakumi_components}/tag/component.rb +3 -3
  137. data/app/components/{hakumi → hakumi_components}/tag/group/component.rb +2 -2
  138. data/app/components/{hakumi → hakumi_components}/time_picker/component.html.erb +2 -2
  139. data/app/components/{hakumi → hakumi_components}/time_picker/component.rb +3 -3
  140. data/app/components/{hakumi → hakumi_components}/timeline/component.rb +4 -4
  141. data/app/components/{hakumi → hakumi_components}/timeline/item/component.rb +3 -3
  142. data/app/components/{hakumi → hakumi_components}/tooltip/component.rb +2 -2
  143. data/app/components/{hakumi → hakumi_components}/tour/component.rb +2 -2
  144. data/app/components/{hakumi → hakumi_components}/transfer/component.html.erb +4 -4
  145. data/app/components/{hakumi → hakumi_components}/transfer/component.rb +2 -2
  146. data/app/components/{hakumi → hakumi_components}/tree/component.html.erb +1 -1
  147. data/app/components/{hakumi → hakumi_components}/tree/component.rb +10 -10
  148. data/app/components/{hakumi → hakumi_components}/tree_select/component.html.erb +5 -5
  149. data/app/components/{hakumi → hakumi_components}/tree_select/component.rb +3 -3
  150. data/app/components/{hakumi → hakumi_components}/typography/base_component.rb +3 -3
  151. data/app/components/{hakumi → hakumi_components}/typography/link/component.rb +1 -1
  152. data/app/components/{hakumi → hakumi_components}/typography/paragraph/component.rb +1 -1
  153. data/app/components/{hakumi → hakumi_components}/typography/text/component.rb +1 -1
  154. data/app/components/{hakumi → hakumi_components}/typography/title/component.rb +1 -1
  155. data/app/components/{hakumi → hakumi_components}/upload/component.html.erb +10 -10
  156. data/app/components/{hakumi → hakumi_components}/upload/component.rb +2 -2
  157. data/app/controllers/{hakumi → hakumi_components}/components_controller.rb +1 -1
  158. data/app/form_builders/{hakumi → hakumi_components}/form_builder.rb +31 -31
  159. data/app/helpers/{hakumi → hakumi_components}/form_helper.rb +4 -4
  160. data/app/services/hakumi_components/component_handler.rb +53 -0
  161. data/app/services/{hakumi → hakumi_components}/icon/loader.rb +4 -4
  162. data/app/services/{hakumi → hakumi_components}/illustrations/loader.rb +4 -4
  163. data/app/views/hakumi/_admin_panel.html.erb +1 -1
  164. data/app/views/hakumi/_affix.html.erb +1 -1
  165. data/app/views/hakumi/_alert.html.erb +1 -1
  166. data/app/views/hakumi/_confirm.html.erb +1 -1
  167. data/app/views/hakumi/_drawer.html.erb +1 -1
  168. data/app/views/hakumi/_message.html.erb +1 -1
  169. data/app/views/hakumi/_modal.html.erb +1 -1
  170. data/app/views/hakumi/_notification.html.erb +1 -1
  171. data/app/views/hakumi/_popconfirm.html.erb +1 -1
  172. data/app/views/hakumi/_popover.html.erb +1 -1
  173. data/app/views/hakumi/_qr_code.html.erb +1 -1
  174. data/app/views/hakumi/_result.html.erb +1 -1
  175. data/app/views/hakumi/_segmented.html.erb +1 -1
  176. data/app/views/hakumi/_skeleton.html.erb +1 -1
  177. data/app/views/hakumi/_spin.html.erb +1 -1
  178. data/app/views/hakumi/_statistic.html.erb +1 -1
  179. data/app/views/hakumi/_table.html.erb +1 -1
  180. data/app/views/hakumi/_tag.html.erb +1 -1
  181. data/app/views/hakumi/_timeline.html.erb +1 -1
  182. data/app/views/hakumi/_tree.html.erb +1 -1
  183. data/lib/generators/{hakumi → hakumi_components}/install_generator.rb +3 -3
  184. data/lib/hakumi_components/documentation.rb +6 -6
  185. data/lib/hakumi_components/engine.rb +9 -3
  186. data/lib/hakumi_components/rails/attribute_introspection.rb +1 -1
  187. data/lib/hakumi_components/rails/validation_introspection.rb +1 -1
  188. data/lib/hakumi_components/rails/validation_mapper.rb +1 -1
  189. data/lib/hakumi_components/rails.rb +1 -1
  190. data/lib/hakumi_components/version.rb +2 -2
  191. data/lib/hakumi_components.rb +3 -2
  192. data/sig/generators/{hakumi → hakumi_components}/install_generator.rbs +1 -1
  193. data/sig/{hakumi → hakumi_components}/admin_panel/component.rbs +2 -2
  194. data/sig/{hakumi → hakumi_components}/affix/component.rbs +2 -2
  195. data/sig/{hakumi → hakumi_components}/alert/component.rbs +2 -2
  196. data/sig/{hakumi → hakumi_components}/anchor/component.rbs +2 -2
  197. data/sig/{hakumi → hakumi_components}/anchor/link/component.rbs +2 -2
  198. data/sig/{hakumi → hakumi_components}/autocomplete/component.rbs +2 -2
  199. data/sig/{hakumi → hakumi_components}/avatar/component.rbs +2 -2
  200. data/sig/{hakumi → hakumi_components}/badge/component.rbs +2 -2
  201. data/sig/{hakumi → hakumi_components}/base_component.rbs +1 -1
  202. data/sig/{hakumi → hakumi_components}/breadcrumb/component.rbs +2 -2
  203. data/sig/{hakumi → hakumi_components}/breadcrumb/item/component.rbs +2 -2
  204. data/sig/{hakumi → hakumi_components}/button/component.rbs +2 -2
  205. data/sig/{hakumi → hakumi_components}/calendar/component.rbs +2 -2
  206. data/sig/{hakumi → hakumi_components}/card/component.rbs +2 -2
  207. data/sig/{hakumi → hakumi_components}/card/grid/component.rbs +2 -2
  208. data/sig/{hakumi → hakumi_components}/card/meta/component.rbs +2 -2
  209. data/sig/{hakumi → hakumi_components}/carousel/component.rbs +2 -2
  210. data/sig/{hakumi → hakumi_components}/cascader/component.rbs +2 -2
  211. data/sig/{hakumi → hakumi_components}/checkbox/component.rbs +3 -3
  212. data/sig/{hakumi → hakumi_components}/checkbox/group/component.rbs +2 -2
  213. data/sig/{hakumi → hakumi_components}/collapse/component.rbs +2 -2
  214. data/sig/{hakumi → hakumi_components}/collapse/panel/component.rbs +4 -4
  215. data/sig/{hakumi → hakumi_components}/color_picker/component.rbs +3 -3
  216. data/sig/{hakumi → hakumi_components}/concerns/form_field.rbs +1 -1
  217. data/sig/{hakumi → hakumi_components}/container/component.rbs +2 -2
  218. data/sig/{hakumi → hakumi_components}/date_picker/component.rbs +3 -3
  219. data/sig/{hakumi → hakumi_components}/date_picker/range_picker.rbs +3 -3
  220. data/sig/{hakumi → hakumi_components}/date_picker/shared_rendering.rbs +1 -1
  221. data/sig/{hakumi → hakumi_components}/descriptions/component.rbs +3 -3
  222. data/sig/{hakumi → hakumi_components}/descriptions/item/component.rbs +2 -2
  223. data/sig/{hakumi → hakumi_components}/divider/component.rbs +2 -2
  224. data/sig/{hakumi → hakumi_components}/drawer/component.rbs +2 -2
  225. data/sig/{hakumi → hakumi_components}/dropdown/component.rbs +2 -2
  226. data/sig/{hakumi → hakumi_components}/dropdown/divider/component.rbs +2 -2
  227. data/sig/{hakumi → hakumi_components}/dropdown/item/component.rbs +3 -3
  228. data/sig/{hakumi → hakumi_components}/empty/component.rbs +2 -2
  229. data/sig/{hakumi → hakumi_components}/flex/component.rbs +2 -2
  230. data/sig/{hakumi → hakumi_components}/float_button/back_top/component.rbs +6 -6
  231. data/sig/{hakumi → hakumi_components}/float_button/component.rbs +2 -2
  232. data/sig/{hakumi → hakumi_components}/float_button/group/component.rbs +13 -13
  233. data/sig/{hakumi → hakumi_components}/float_button/group_cluster/component.rbs +7 -7
  234. data/sig/{hakumi → hakumi_components}/form/item/component.rbs +2 -2
  235. data/sig/{hakumi → hakumi_components}/form_builder.rbs +1 -1
  236. data/sig/{hakumi → hakumi_components}/grid/col/component.rbs +2 -2
  237. data/sig/{hakumi → hakumi_components}/grid/row/component.rbs +2 -2
  238. data/sig/{hakumi → hakumi_components}/icon/component.rbs +2 -2
  239. data/sig/{hakumi → hakumi_components}/image/component.rbs +2 -2
  240. data/sig/{hakumi → hakumi_components}/image/preview_group/component.rbs +2 -2
  241. data/sig/{hakumi → hakumi_components}/input/component.rbs +3 -3
  242. data/sig/{hakumi → hakumi_components}/input/password/component.rbs +2 -2
  243. data/sig/{hakumi → hakumi_components}/input/text_area/component.rbs +2 -2
  244. data/sig/{hakumi → hakumi_components}/input_number/component.rbs +3 -3
  245. data/sig/{hakumi → hakumi_components}/layout/component.rbs +2 -2
  246. data/sig/{hakumi → hakumi_components}/layout/content/component.rbs +2 -2
  247. data/sig/{hakumi → hakumi_components}/layout/footer/component.rbs +2 -2
  248. data/sig/{hakumi → hakumi_components}/layout/header/component.rbs +2 -2
  249. data/sig/{hakumi → hakumi_components}/layout/sider/component.rbs +2 -2
  250. data/sig/{hakumi → hakumi_components}/mentions/component.rbs +3 -3
  251. data/sig/{hakumi → hakumi_components}/menu/component.rbs +2 -2
  252. data/sig/{hakumi → hakumi_components}/menu/divider/component.rbs +2 -2
  253. data/sig/{hakumi → hakumi_components}/menu/group/component.rbs +2 -2
  254. data/sig/{hakumi → hakumi_components}/menu/item/component.rbs +3 -3
  255. data/sig/{hakumi → hakumi_components}/menu/sub_menu/component.rbs +3 -3
  256. data/sig/{hakumi → hakumi_components}/message/component.rbs +2 -2
  257. data/sig/{hakumi → hakumi_components}/modal/component.rbs +2 -2
  258. data/sig/{hakumi → hakumi_components}/modal/confirm/component.rbs +2 -2
  259. data/sig/{hakumi → hakumi_components}/modal/error/component.rbs +2 -2
  260. data/sig/{hakumi → hakumi_components}/modal/info/component.rbs +2 -2
  261. data/sig/{hakumi → hakumi_components}/modal/success/component.rbs +2 -2
  262. data/sig/{hakumi → hakumi_components}/modal/warning/component.rbs +2 -2
  263. data/sig/{hakumi → hakumi_components}/notification/component.rbs +2 -2
  264. data/sig/{hakumi → hakumi_components}/pagination/component.rbs +7 -7
  265. data/sig/{hakumi → hakumi_components}/popconfirm/component.rbs +2 -2
  266. data/sig/{hakumi → hakumi_components}/popover/component.rbs +2 -2
  267. data/sig/{hakumi → hakumi_components}/progress/component.rbs +2 -2
  268. data/sig/{hakumi → hakumi_components}/qr_code/component.rbs +2 -2
  269. data/sig/{hakumi → hakumi_components}/radio/component.rbs +3 -3
  270. data/sig/{hakumi → hakumi_components}/radio/group/component.rbs +3 -3
  271. data/sig/{hakumi → hakumi_components}/rails/attribute_introspection.rbs +1 -1
  272. data/sig/{hakumi → hakumi_components}/rails/validation_introspection.rbs +1 -1
  273. data/sig/{hakumi → hakumi_components}/rails/validation_mapper.rbs +1 -1
  274. data/sig/{hakumi → hakumi_components}/rails.rbs +1 -1
  275. data/sig/{hakumi → hakumi_components}/rate/component.rbs +3 -3
  276. data/sig/{hakumi → hakumi_components}/result/component.rbs +3 -3
  277. data/sig/{hakumi → hakumi_components}/segmented/component.rbs +2 -2
  278. data/sig/{hakumi → hakumi_components}/select/component.rbs +3 -3
  279. data/sig/{hakumi → hakumi_components}/skeleton/avatar/component.rbs +2 -2
  280. data/sig/{hakumi → hakumi_components}/skeleton/button/component.rbs +2 -2
  281. data/sig/{hakumi → hakumi_components}/skeleton/component.rbs +2 -2
  282. data/sig/{hakumi → hakumi_components}/skeleton/image/component.rbs +2 -2
  283. data/sig/{hakumi → hakumi_components}/skeleton/input/component.rbs +2 -2
  284. data/sig/{hakumi → hakumi_components}/skeleton/node/component.rbs +2 -2
  285. data/sig/{hakumi → hakumi_components}/slider/component.rbs +3 -3
  286. data/sig/{hakumi → hakumi_components}/space/compact/component.rbs +1 -1
  287. data/sig/{hakumi → hakumi_components}/space/component.rbs +1 -1
  288. data/sig/{hakumi → hakumi_components}/spin/component.rbs +2 -2
  289. data/sig/{hakumi → hakumi_components}/splitter/component.rbs +2 -2
  290. data/sig/{hakumi → hakumi_components}/splitter/panel/component.rbs +1 -1
  291. data/sig/{hakumi → hakumi_components}/statistic/component.rbs +2 -2
  292. data/sig/{hakumi → hakumi_components}/steps/component.rbs +2 -2
  293. data/sig/{hakumi → hakumi_components}/steps/item/component.rbs +2 -2
  294. data/sig/{hakumi → hakumi_components}/switch/component.rbs +3 -3
  295. data/sig/{hakumi → hakumi_components}/table/column/component.rbs +2 -2
  296. data/sig/{hakumi → hakumi_components}/table/column_group/component.rbs +2 -2
  297. data/sig/{hakumi → hakumi_components}/table/component.rbs +2 -2
  298. data/sig/{hakumi → hakumi_components}/table/concerns/columns.rbs +1 -1
  299. data/sig/{hakumi → hakumi_components}/table/concerns/editable.rbs +1 -1
  300. data/sig/{hakumi → hakumi_components}/table/concerns/ellipsis.rbs +1 -1
  301. data/sig/{hakumi → hakumi_components}/table/concerns/fixed_columns.rbs +1 -1
  302. data/sig/{hakumi → hakumi_components}/tabs/component.rbs +2 -2
  303. data/sig/{hakumi → hakumi_components}/tabs/item/component.rbs +2 -2
  304. data/sig/{hakumi → hakumi_components}/tag/component.rbs +2 -2
  305. data/sig/{hakumi → hakumi_components}/tag/group/component.rbs +2 -2
  306. data/sig/{hakumi → hakumi_components}/time_picker/component.rbs +3 -3
  307. data/sig/{hakumi → hakumi_components}/timeline/component.rbs +2 -2
  308. data/sig/{hakumi → hakumi_components}/timeline/item/component.rbs +2 -2
  309. data/sig/{hakumi → hakumi_components}/tooltip/component.rbs +2 -2
  310. data/sig/{hakumi → hakumi_components}/tour/component.rbs +2 -2
  311. data/sig/{hakumi → hakumi_components}/transfer/component.rbs +2 -2
  312. data/sig/{hakumi → hakumi_components}/tree/component.rbs +2 -2
  313. data/sig/{hakumi → hakumi_components}/tree_select/component.rbs +3 -3
  314. data/sig/{hakumi → hakumi_components}/typography/base_component.rbs +2 -2
  315. data/sig/{hakumi → hakumi_components}/typography/link/component.rbs +1 -1
  316. data/sig/{hakumi → hakumi_components}/typography/paragraph/component.rbs +1 -1
  317. data/sig/{hakumi → hakumi_components}/typography/text/component.rbs +1 -1
  318. data/sig/{hakumi → hakumi_components}/typography/title/component.rbs +1 -1
  319. data/sig/{hakumi → hakumi_components}/upload/component.rbs +2 -2
  320. data/sig/{hakumi.rbs → hakumi_components.rbs} +3 -3
  321. metadata +340 -340
  322. data/app/components/hakumi/modal/confirm/component.html.erb +0 -23
  323. data/app/services/hakumi/component_handler.rb +0 -53
  324. /data/app/components/{hakumi → hakumi_components}/affix/component.html.erb +0 -0
  325. /data/app/components/{hakumi → hakumi_components}/anchor/component.html.erb +0 -0
  326. /data/app/components/{hakumi → hakumi_components}/anchor/link/component.html.erb +0 -0
  327. /data/app/components/{hakumi → hakumi_components}/breadcrumb/component.html.erb +0 -0
  328. /data/app/components/{hakumi → hakumi_components}/card/component.html.erb +0 -0
  329. /data/app/components/{hakumi → hakumi_components}/card/grid/component.html.erb +0 -0
  330. /data/app/components/{hakumi → hakumi_components}/card/meta/component.html.erb +0 -0
  331. /data/app/components/{hakumi → hakumi_components}/checkbox/component.html.erb +0 -0
  332. /data/app/components/{hakumi → hakumi_components}/color_picker/component.html.erb +0 -0
  333. /data/app/components/{hakumi → hakumi_components}/descriptions/component.html.erb +0 -0
  334. /data/app/components/{hakumi → hakumi_components}/dropdown/component.html.erb +0 -0
  335. /data/app/components/{hakumi → hakumi_components}/dropdown/item/component.html.erb +0 -0
  336. /data/app/components/{hakumi → hakumi_components}/icon/component.html.erb +0 -0
  337. /data/app/components/{hakumi → hakumi_components}/input/component.html.erb +0 -0
  338. /data/app/components/{hakumi → hakumi_components}/input/text_area/component.html.erb +0 -0
  339. /data/app/components/{hakumi → hakumi_components}/layout/component.html.erb +0 -0
  340. /data/app/components/{hakumi → hakumi_components}/layout/content/component.html.erb +0 -0
  341. /data/app/components/{hakumi → hakumi_components}/layout/footer/component.html.erb +0 -0
  342. /data/app/components/{hakumi → hakumi_components}/layout/header/component.html.erb +0 -0
  343. /data/app/components/{hakumi → hakumi_components}/layout/sider/component.html.erb +0 -0
  344. /data/app/components/{hakumi → hakumi_components}/mentions/component.html.erb +0 -0
  345. /data/app/components/{hakumi → hakumi_components}/menu/component.html.erb +0 -0
  346. /data/app/components/{hakumi → hakumi_components}/menu/group/component.html.erb +0 -0
  347. /data/app/components/{hakumi → hakumi_components}/menu/item/component.html.erb +0 -0
  348. /data/app/components/{hakumi → hakumi_components}/menu/sub_menu/component.html.erb +0 -0
  349. /data/app/components/{hakumi → hakumi_components}/message/component.html.erb +0 -0
  350. /data/app/components/{hakumi → hakumi_components}/popover/component.html.erb +0 -0
  351. /data/app/components/{hakumi → hakumi_components}/qr_code/component.html.erb +0 -0
  352. /data/app/components/{hakumi → hakumi_components}/radio/component.html.erb +0 -0
  353. /data/app/components/{hakumi → hakumi_components}/result/component.html.erb +0 -0
  354. /data/app/components/{hakumi → hakumi_components}/segmented/component.html.erb +0 -0
  355. /data/app/components/{hakumi → hakumi_components}/skeleton/avatar/component.html.erb +0 -0
  356. /data/app/components/{hakumi → hakumi_components}/skeleton/button/component.html.erb +0 -0
  357. /data/app/components/{hakumi → hakumi_components}/skeleton/component.html.erb +0 -0
  358. /data/app/components/{hakumi → hakumi_components}/skeleton/input/component.html.erb +0 -0
  359. /data/app/components/{hakumi → hakumi_components}/skeleton/node/component.html.erb +0 -0
  360. /data/app/components/{hakumi → hakumi_components}/slider/component.html.erb +0 -0
  361. /data/app/components/{hakumi → hakumi_components}/space/compact/component.html.erb +0 -0
  362. /data/app/components/{hakumi → hakumi_components}/space/component.html.erb +0 -0
  363. /data/app/components/{hakumi → hakumi_components}/spin/component.html.erb +0 -0
  364. /data/app/components/{hakumi → hakumi_components}/splitter/component.html.erb +0 -0
  365. /data/app/components/{hakumi → hakumi_components}/splitter/panel/component.html.erb +0 -0
  366. /data/app/components/{hakumi → hakumi_components}/statistic/component.html.erb +0 -0
  367. /data/app/components/{hakumi → hakumi_components}/steps/item/component.html.erb +0 -0
  368. /data/app/components/{hakumi → hakumi_components}/switch/component.html.erb +0 -0
  369. /data/app/components/{hakumi → hakumi_components}/table/component.html.erb +0 -0
  370. /data/app/components/{hakumi → hakumi_components}/timeline/component.html.erb +0 -0
  371. /data/app/components/{hakumi → hakumi_components}/timeline/item/component.html.erb +0 -0
  372. /data/app/components/{hakumi → hakumi_components}/tooltip/component.html.erb +0 -0
  373. /data/app/components/{hakumi → hakumi_components}/tour/component.html.erb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 266fdc5f238c66ebd468b2d65efc3293197442f23f724a6685aa27f76c719b80
4
- data.tar.gz: 50c5490c4f78725878a12a517ff9de18e8c376922e47df1dcc9a6c9783e1a7d2
3
+ metadata.gz: 3e9e824a3e5b4b1c78cdc77a0078cc26f76a0817b02b987585ce854aad510daf
4
+ data.tar.gz: 89779b1bac4f251adf69a45f44dd2de5a2ec95c30c63d5bc704625c7bb2cd1aa
5
5
  SHA512:
6
- metadata.gz: b0bf88beaabfa3c7cbd2bfbe8018f17f78c6426626ce02e7fa25930f9d006aa6a39929388311ee22ba4e4f84a3f973495224f1a307251b26cb264c8878d7885c
7
- data.tar.gz: 130f98a4e79a8262acf6113ca5738078a236cf2baf6a2fc809248eeb0e699a192670d06809144d1bcffc6613caede8bba045ed33a26ff82b8da2b34795218699
6
+ metadata.gz: ca0b148fba4aac80d9bdb3d01c15d5cd0ffe91f6e98e85a6c337be76f375b92e1294327ced77f3cdaac929430ae3e548b8176b99182ad9aee957c97a5925da90
7
+ data.tar.gz: 0d38ab92e6ab0f463495b7d088b5947eff48d98ace7a7b1e03bac7f428dc2e161869140209b9cc2f5c935ced717b663f2b2650c505e4ba916d4cfc7b2be5fc8e
data/CHANGELOG.md CHANGED
@@ -27,7 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
27
27
  - **Other** (6): BackTop, ConfigProvider, FloatButton, Icon, Watermark, AdminPanel, Tour
28
28
 
29
29
  **Form Integration:**
30
- - `Hakumi::FormBuilder` with automatic Rails integration
30
+ - `HakumiComponents::FormBuilder` with automatic Rails integration
31
31
  - Auto-detection from ActiveRecord validations
32
32
  - Auto-detection from I18n (labels, placeholders, hints)
33
33
 
data/README.md CHANGED
@@ -145,11 +145,33 @@ registerHakumiControllers(application)
145
145
  @import "@hakumi-dev/hakumi-components/styles";
146
146
  ```
147
147
 
148
- **5. (Optional) Configure FormBuilder:**
148
+ ## Configuration
149
+
150
+ You can configure HakumiComponents in an initializer:
149
151
 
150
152
  ```ruby
151
153
  # config/initializers/hakumi_components.rb
152
- Rails.application.config.action_view.default_form_builder = Hakumi::FormBuilder
154
+ HakumiComponents.configure do |config|
155
+ config.default_form_builder = true # Use HakumiComponents::FormBuilder as default
156
+ config.base_path = "hakumi/components" # Base URL path for component routes
157
+ end
158
+ ```
159
+
160
+ ### Available Configuration Options
161
+
162
+ | Option | Default | Description |
163
+ |--------|---------|-------------|
164
+ | `default_form_builder` | `false` | Use `HakumiComponents::FormBuilder` as the default form builder |
165
+ | `base_path` | `"hakumi/components"` | Base URL path for component routes (modals, drawers, etc.) |
166
+
167
+ ### Accessing Configuration
168
+
169
+ ```ruby
170
+ HakumiComponents.config.default_form_builder
171
+ # => true
172
+
173
+ HakumiComponents.config.base_path
174
+ # => "hakumi/components"
153
175
  ```
154
176
 
155
177
  ## Usage
@@ -158,19 +180,19 @@ Rails.application.config.action_view.default_form_builder = Hakumi::FormBuilder
158
180
 
159
181
  ```erb
160
182
  <%# Simple button %>
161
- <%= render Hakumi::Button::Component.new(type: :primary) do %>
183
+ <%= render HakumiComponents::Button::Component.new(type: :primary) do %>
162
184
  Click me
163
185
  <% end %>
164
186
 
165
187
  <%# Form with automatic validation detection %>
166
- <%= form_with model: @user, builder: Hakumi::FormBuilder do |f| %>
188
+ <%= form_with model: @user, builder: HakumiComponents::FormBuilder do |f| %>
167
189
  <%= f.text_field :email %>
168
190
  <%= f.text_field :name %>
169
191
  <%= f.submit "Save", type: :primary %>
170
192
  <% end %>
171
193
 
172
194
  <%# Modal with programmatic control %>
173
- <%= render Hakumi::Modal::Component.new(
195
+ <%= render HakumiComponents::Modal::Component.new(
174
196
  id: "my-modal",
175
197
  title: "Confirm Action"
176
198
  ) do %>
@@ -183,83 +205,83 @@ Rails.application.config.action_view.default_form_builder = Hakumi::FormBuilder
183
205
  Browse all **65 components** organized by category. Each component includes detailed documentation, examples, and API reference.
184
206
 
185
207
  #### General (4)
186
- - [Button](./app/components/hakumi/button/docs/README.md) - Clickable button element
187
- - [Float Button](./app/components/hakumi/float_button/docs/README.md) - Floating action button
188
- - [Icon](./app/components/hakumi/icon/docs/README.md) - Icon display component
189
- - [Typography](./app/components/hakumi/typography/docs/README.md) - Text styling and formatting
208
+ - [Button](./app/components/hakumi_components/button/docs/README.md) - Clickable button element
209
+ - [Float Button](./app/components/hakumi_components/float_button/docs/README.md) - Floating action button
210
+ - [Icon](./app/components/hakumi_components/icon/docs/README.md) - Icon display component
211
+ - [Typography](./app/components/hakumi_components/typography/docs/README.md) - Text styling and formatting
190
212
 
191
213
  #### Layout (6)
192
- - [Divider](./app/components/hakumi/divider/docs/README.md) - Horizontal or vertical divider line
193
- - [Flex](./app/components/hakumi/flex/docs/README.md) - Flexbox layout container
194
- - [Grid](./app/components/hakumi/grid/docs/README.md) - Grid layout system
195
- - [Layout](./app/components/hakumi/layout/docs/README.md) - Page layout structure
196
- - [Space](./app/components/hakumi/space/docs/README.md) - Spacing between elements
197
- - [Splitter](./app/components/hakumi/splitter/docs/README.md) - Resizable split panels
214
+ - [Divider](./app/components/hakumi_components/divider/docs/README.md) - Horizontal or vertical divider line
215
+ - [Flex](./app/components/hakumi_components/flex/docs/README.md) - Flexbox layout container
216
+ - [Grid](./app/components/hakumi_components/grid/docs/README.md) - Grid layout system
217
+ - [Layout](./app/components/hakumi_components/layout/docs/README.md) - Page layout structure
218
+ - [Space](./app/components/hakumi_components/space/docs/README.md) - Spacing between elements
219
+ - [Splitter](./app/components/hakumi_components/splitter/docs/README.md) - Resizable split panels
198
220
 
199
221
  #### Navigation (6)
200
- - [Anchor](./app/components/hakumi/anchor/docs/README.md) - Anchor navigation for page sections
201
- - [Breadcrumb](./app/components/hakumi/breadcrumb/docs/README.md) - Breadcrumb navigation trail
202
- - [Dropdown](./app/components/hakumi/dropdown/docs/README.md) - Dropdown menu
203
- - [Menu](./app/components/hakumi/menu/docs/README.md) - Navigation menu
204
- - [Pagination](./app/components/hakumi/pagination/docs/README.md) - Pagination controls
205
- - [Steps](./app/components/hakumi/steps/docs/README.md) - Step-by-step navigation
222
+ - [Anchor](./app/components/hakumi_components/anchor/docs/README.md) - Anchor navigation for page sections
223
+ - [Breadcrumb](./app/components/hakumi_components/breadcrumb/docs/README.md) - Breadcrumb navigation trail
224
+ - [Dropdown](./app/components/hakumi_components/dropdown/docs/README.md) - Dropdown menu
225
+ - [Menu](./app/components/hakumi_components/menu/docs/README.md) - Navigation menu
226
+ - [Pagination](./app/components/hakumi_components/pagination/docs/README.md) - Pagination controls
227
+ - [Steps](./app/components/hakumi_components/steps/docs/README.md) - Step-by-step navigation
206
228
 
207
229
  #### Data Entry (18)
208
- - [Autocomplete](./app/components/hakumi/autocomplete/docs/README.md) - Input with autocomplete suggestions
209
- - [Cascader](./app/components/hakumi/cascader/docs/README.md) - Cascading selection dropdown
210
- - [Checkbox](./app/components/hakumi/checkbox/docs/README.md) - Checkbox input
211
- - [Color Picker](./app/components/hakumi/color_picker/docs/README.md) - Color selection input
212
- - [Date Picker](./app/components/hakumi/date_picker/docs/README.md) - Date selection input
213
- - [Form](./app/components/hakumi/form/docs/README.md) - Form wrapper with validation
214
- - [Input](./app/components/hakumi/input/docs/README.md) - Text input field
215
- - [Input Number](./app/components/hakumi/input_number/docs/README.md) - Numeric input field
216
- - [Mentions](./app/components/hakumi/mentions/docs/README.md) - @mentions input
217
- - [Radio](./app/components/hakumi/radio/docs/README.md) - Radio button input
218
- - [Rate](./app/components/hakumi/rate/docs/README.md) - Star rating input
219
- - [Select](./app/components/hakumi/select/docs/README.md) - Dropdown select input
220
- - [Slider](./app/components/hakumi/slider/docs/README.md) - Range slider input
221
- - [Switch](./app/components/hakumi/switch/docs/README.md) - Toggle switch input
222
- - [Time Picker](./app/components/hakumi/time_picker/docs/README.md) - Time selection input
223
- - [Transfer](./app/components/hakumi/transfer/docs/README.md) - Dual list transfer
224
- - [Tree Select](./app/components/hakumi/tree_select/docs/README.md) - Tree structure select
225
- - [Upload](./app/components/hakumi/upload/docs/README.md) - File upload component
230
+ - [Autocomplete](./app/components/hakumi_components/autocomplete/docs/README.md) - Input with autocomplete suggestions
231
+ - [Cascader](./app/components/hakumi_components/cascader/docs/README.md) - Cascading selection dropdown
232
+ - [Checkbox](./app/components/hakumi_components/checkbox/docs/README.md) - Checkbox input
233
+ - [Color Picker](./app/components/hakumi_components/color_picker/docs/README.md) - Color selection input
234
+ - [Date Picker](./app/components/hakumi_components/date_picker/docs/README.md) - Date selection input
235
+ - [Form](./app/components/hakumi_components/form/docs/README.md) - Form wrapper with validation
236
+ - [Input](./app/components/hakumi_components/input/docs/README.md) - Text input field
237
+ - [Input Number](./app/components/hakumi_components/input_number/docs/README.md) - Numeric input field
238
+ - [Mentions](./app/components/hakumi_components/mentions/docs/README.md) - @mentions input
239
+ - [Radio](./app/components/hakumi_components/radio/docs/README.md) - Radio button input
240
+ - [Rate](./app/components/hakumi_components/rate/docs/README.md) - Star rating input
241
+ - [Select](./app/components/hakumi_components/select/docs/README.md) - Dropdown select input
242
+ - [Slider](./app/components/hakumi_components/slider/docs/README.md) - Range slider input
243
+ - [Switch](./app/components/hakumi_components/switch/docs/README.md) - Toggle switch input
244
+ - [Time Picker](./app/components/hakumi_components/time_picker/docs/README.md) - Time selection input
245
+ - [Transfer](./app/components/hakumi_components/transfer/docs/README.md) - Dual list transfer
246
+ - [Tree Select](./app/components/hakumi_components/tree_select/docs/README.md) - Tree structure select
247
+ - [Upload](./app/components/hakumi_components/upload/docs/README.md) - File upload component
226
248
 
227
249
  #### Data Display (20)
228
- - [Avatar](./app/components/hakumi/avatar/docs/README.md) - User avatar display
229
- - [Badge](./app/components/hakumi/badge/docs/README.md) - Badge and status dot
230
- - [Calendar](./app/components/hakumi/calendar/docs/README.md) - Calendar display
231
- - [Card](./app/components/hakumi/card/docs/README.md) - Card container
232
- - [Carousel](./app/components/hakumi/carousel/docs/README.md) - Image/content carousel
233
- - [Collapse](./app/components/hakumi/collapse/docs/README.md) - Collapsible accordion panels
234
- - [Descriptions](./app/components/hakumi/descriptions/docs/README.md) - Description list display
235
- - [Empty](./app/components/hakumi/empty/docs/README.md) - Empty state placeholder
236
- - [Image](./app/components/hakumi/image/docs/README.md) - Image display with preview
237
- - [Popover](./app/components/hakumi/popover/docs/README.md) - Popover overlay
238
- - [QR Code](./app/components/hakumi/qr_code/docs/README.md) - QR code generator
239
- - [Segmented](./app/components/hakumi/segmented/docs/README.md) - Segmented control
240
- - [Statistic](./app/components/hakumi/statistic/docs/README.md) - Statistic display
241
- - [Table](./app/components/hakumi/table/docs/README.md) - Data table
242
- - [Tabs](./app/components/hakumi/tabs/docs/README.md) - Tab navigation
243
- - [Tag](./app/components/hakumi/tag/docs/README.md) - Tag label
244
- - [Timeline](./app/components/hakumi/timeline/docs/README.md) - Timeline display
245
- - [Tooltip](./app/components/hakumi/tooltip/docs/README.md) - Tooltip overlay
246
- - [Tour](./app/components/hakumi/tour/docs/README.md) - Guided tour
247
- - [Tree](./app/components/hakumi/tree/docs/README.md) - Tree structure display
250
+ - [Avatar](./app/components/hakumi_components/avatar/docs/README.md) - User avatar display
251
+ - [Badge](./app/components/hakumi_components/badge/docs/README.md) - Badge and status dot
252
+ - [Calendar](./app/components/hakumi_components/calendar/docs/README.md) - Calendar display
253
+ - [Card](./app/components/hakumi_components/card/docs/README.md) - Card container
254
+ - [Carousel](./app/components/hakumi_components/carousel/docs/README.md) - Image/content carousel
255
+ - [Collapse](./app/components/hakumi_components/collapse/docs/README.md) - Collapsible accordion panels
256
+ - [Descriptions](./app/components/hakumi_components/descriptions/docs/README.md) - Description list display
257
+ - [Empty](./app/components/hakumi_components/empty/docs/README.md) - Empty state placeholder
258
+ - [Image](./app/components/hakumi_components/image/docs/README.md) - Image display with preview
259
+ - [Popover](./app/components/hakumi_components/popover/docs/README.md) - Popover overlay
260
+ - [QR Code](./app/components/hakumi_components/qr_code/docs/README.md) - QR code generator
261
+ - [Segmented](./app/components/hakumi_components/segmented/docs/README.md) - Segmented control
262
+ - [Statistic](./app/components/hakumi_components/statistic/docs/README.md) - Statistic display
263
+ - [Table](./app/components/hakumi_components/table/docs/README.md) - Data table
264
+ - [Tabs](./app/components/hakumi_components/tabs/docs/README.md) - Tab navigation
265
+ - [Tag](./app/components/hakumi_components/tag/docs/README.md) - Tag label
266
+ - [Timeline](./app/components/hakumi_components/timeline/docs/README.md) - Timeline display
267
+ - [Tooltip](./app/components/hakumi_components/tooltip/docs/README.md) - Tooltip overlay
268
+ - [Tour](./app/components/hakumi_components/tour/docs/README.md) - Guided tour
269
+ - [Tree](./app/components/hakumi_components/tree/docs/README.md) - Tree structure display
248
270
 
249
271
  #### Feedback (10)
250
- - [Alert](./app/components/hakumi/alert/docs/README.md) - Alert message display
251
- - [Drawer](./app/components/hakumi/drawer/docs/README.md) - Slide-out drawer panel
252
- - [Message](./app/components/hakumi/message/docs/README.md) - Global message notification
253
- - [Modal](./app/components/hakumi/modal/docs/README.md) - Modal dialog
254
- - [Notification](./app/components/hakumi/notification/docs/README.md) - Notification message
255
- - [Popconfirm](./app/components/hakumi/popconfirm/docs/README.md) - Confirmation popover
256
- - [Progress](./app/components/hakumi/progress/docs/README.md) - Progress indicator
257
- - [Result](./app/components/hakumi/result/docs/README.md) - Result status page
258
- - [Skeleton](./app/components/hakumi/skeleton/docs/README.md) - Skeleton loading placeholder
259
- - [Spin](./app/components/hakumi/spin/docs/README.md) - Loading spinner
272
+ - [Alert](./app/components/hakumi_components/alert/docs/README.md) - Alert message display
273
+ - [Drawer](./app/components/hakumi_components/drawer/docs/README.md) - Slide-out drawer panel
274
+ - [Message](./app/components/hakumi_components/message/docs/README.md) - Global message notification
275
+ - [Modal](./app/components/hakumi_components/modal/docs/README.md) - Modal dialog
276
+ - [Notification](./app/components/hakumi_components/notification/docs/README.md) - Notification message
277
+ - [Popconfirm](./app/components/hakumi_components/popconfirm/docs/README.md) - Confirmation popover
278
+ - [Progress](./app/components/hakumi_components/progress/docs/README.md) - Progress indicator
279
+ - [Result](./app/components/hakumi_components/result/docs/README.md) - Result status page
280
+ - [Skeleton](./app/components/hakumi_components/skeleton/docs/README.md) - Skeleton loading placeholder
281
+ - [Spin](./app/components/hakumi_components/spin/docs/README.md) - Loading spinner
260
282
 
261
283
  #### Other (1)
262
- - [Affix](./app/components/hakumi/affix/docs/README.md) - Pin element to viewport
284
+ - [Affix](./app/components/hakumi_components/affix/docs/README.md) - Pin element to viewport
263
285
 
264
286
  ## JavaScript API
265
287
 
@@ -5,8 +5,8 @@
5
5
  <p class="hakumi-admin-panel__subtitle">Real-time inventory</p>
6
6
  </div>
7
7
  <div class="hakumi-admin-panel__controls">
8
- <%= render(Hakumi::Button::Component.new(type: :text, icon: :reload, shape: :circle, data: { action: "click->hakumi--admin-panel#refresh:stop" })) { "Refresh" } %>
9
- <%= render(Hakumi::Button::Component.new(type: :text, icon: :close, shape: :circle, data: { action: "click->hakumi--admin-panel#close:stop" })) %>
8
+ <%= render(HakumiComponents::Button::Component.new(type: :text, icon: :reload, shape: :circle, data: { action: "click->hakumi--admin-panel#refresh:stop" })) { "Refresh" } %>
9
+ <%= render(HakumiComponents::Button::Component.new(type: :text, icon: :close, shape: :circle, data: { action: "click->hakumi--admin-panel#close:stop" })) %>
10
10
  </div>
11
11
  </div>
12
12
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module AdminPanel
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  def self.extract_controller_locals(params)
7
7
  {
8
8
  title: params[:title],
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Affix
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  def self.extract_controller_locals(params)
7
7
  {
8
8
  body: params[:body],
@@ -27,7 +27,7 @@
27
27
  <% if close_icon? %>
28
28
  <%= close_icon %>
29
29
  <% else %>
30
- <%= render Hakumi::Icon::Component.new(name: :close) %>
30
+ <%= render HakumiComponents::Icon::Component.new(name: :close) %>
31
31
  <% end %>
32
32
  </button>
33
33
  <% end %>
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Alert
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  TYPES = [ :success, :info, :warning, :error ].freeze
7
7
 
8
8
  # Slots for content
@@ -68,7 +68,7 @@ module Hakumi
68
68
  return nil unless show_icon?
69
69
 
70
70
  icon_name = default_icon_name
71
- render Hakumi::Icon::Component.new(name: icon_name)
71
+ render HakumiComponents::Icon::Component.new(name: icon_name)
72
72
  end
73
73
 
74
74
  def default_icon_name
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Anchor
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  DIRECTIONS = %i[vertical horizontal].freeze
7
7
 
8
8
  renders_many :links, ->(href:, title:, **options) do
9
- Hakumi::Anchor::Link::Component.new(href: href, title: title, **options)
9
+ HakumiComponents::Anchor::Link::Component.new(href: href, title: title, **options)
10
10
  end
11
11
 
12
12
  def initialize(
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Anchor
5
5
  module Link
6
- class Component < Hakumi::BaseComponent
6
+ class Component < HakumiComponents::BaseComponent
7
7
  renders_many :links, ->(href:, title:, **options) do
8
- Hakumi::Anchor::Link::Component.new(href: href, title: title, **options)
8
+ HakumiComponents::Anchor::Link::Component.new(href: href, title: title, **options)
9
9
  end
10
10
 
11
11
  def initialize(href:, title:, target: nil, **html_options)
@@ -13,7 +13,7 @@
13
13
  aria-label="Clear"
14
14
  data-hakumi--autocomplete-target="clear"
15
15
  data-action="click->hakumi--autocomplete#clear">
16
- <%= render Hakumi::Icon::Component.new(name: clear_icon, theme: :filled, fallback_to_outlined: true) %>
16
+ <%= render HakumiComponents::Icon::Component.new(name: clear_icon, theme: :filled, fallback_to_outlined: true) %>
17
17
  </button>
18
18
  <% end %>
19
19
  </div>
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Autocomplete
5
5
  # Hakumi Autocomplete component
6
6
  # Text input with dropdown suggestions, built on top of Ant Design styles.
7
- class Component < Hakumi::BaseComponent
7
+ class Component < HakumiComponents::BaseComponent
8
8
  SIZES = %i[small middle large].freeze
9
9
  VARIANTS = %i[outlined filled borderless underlined].freeze
10
10
  STATUSES = %i[error warning].freeze
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Avatar
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  SHAPES = [ :circle, :square ].freeze
7
7
  SIZES = [ :small, :default, :large ].freeze
8
8
 
@@ -54,7 +54,7 @@ module Hakumi
54
54
  image_tag(@src, alt: @alt, width: avatar_size, height: avatar_size)
55
55
  elsif @icon
56
56
  # Pass size: nil to allow icon to inherit font-size from avatar
57
- render Hakumi::Icon::Component.new(name: @icon, size: nil)
57
+ render HakumiComponents::Icon::Component.new(name: @icon, size: nil)
58
58
  else
59
59
  tag.span(content, data: { hakumi__avatar_text_target: "text" })
60
60
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Badge
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  def initialize(count: nil, dot: false, overflow_count: 99, status: nil, text: nil, color: nil, show_zero: false, icon: nil, **html_options)
7
7
  @count = count
8
8
  @dot = dot
@@ -61,7 +61,7 @@ module Hakumi
61
61
 
62
62
  tag.sup(class: classes.join(" "), title: @count, style: (styles.join("; ") if styles.any?)) do
63
63
  if @icon
64
- render Hakumi::Icon::Component.new(name: @icon)
64
+ render HakumiComponents::Icon::Component.new(name: @icon)
65
65
  else
66
66
  display_count.to_s
67
67
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  # Base class for all Hakumi components
5
5
  # Provides shared utilities and helpers
6
6
  class BaseComponent < ViewComponent::Base
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Breadcrumb
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  renders_many :items, ->(title: nil, href: nil, target: nil, **options, &block) do
7
- Hakumi::Breadcrumb::Item::Component.new(title: title, href: href, target: target, **options, &block)
7
+ HakumiComponents::Breadcrumb::Item::Component.new(title: title, href: href, target: target, **options, &block)
8
8
  end
9
9
 
10
10
  def initialize(separator: "/", **html_options)
@@ -1,9 +1,9 @@
1
1
  <% if menu? %>
2
- <%= render Hakumi::Dropdown::Component.new do |dropdown| %>
2
+ <%= render HakumiComponents::Dropdown::Component.new do |dropdown| %>
3
3
  <% dropdown.with_trigger do %>
4
4
  <span class="hakumi-breadcrumb-link hakumi-breadcrumb-link-dropdown">
5
5
  <%= display_title %>
6
- <%= render Hakumi::Icon::Component.new(name: :down, size: 10) %>
6
+ <%= render HakumiComponents::Icon::Component.new(name: :down, size: 10) %>
7
7
  </span>
8
8
  <% end %>
9
9
  <% menu.each do |item| %>
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Breadcrumb
5
5
  module Item
6
- class Component < Hakumi::BaseComponent
6
+ class Component < HakumiComponents::BaseComponent
7
7
  def initialize(title: nil, href: nil, target: nil, menu: nil, **html_options)
8
8
  @title = title
9
9
  @href = href
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Button
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  TYPES = [ :primary, :default, :dashed, :text, :link ].freeze
7
7
  SIZES = [ :small, :middle, :large ].freeze
8
8
  SHAPES = [ :default, :circle, :round ].freeze
@@ -101,14 +101,14 @@ module Hakumi
101
101
  return nil unless @icon
102
102
 
103
103
  if @icon.is_a?(String) || @icon.is_a?(Symbol)
104
- render Hakumi::Icon::Component.new(name: @icon)
104
+ render HakumiComponents::Icon::Component.new(name: @icon)
105
105
  else
106
106
  @icon
107
107
  end
108
108
  end
109
109
 
110
110
  def loading_icon
111
- render Hakumi::Icon::Component.new(name: :loading, spin: true)
111
+ render HakumiComponents::Icon::Component.new(name: :loading, spin: true)
112
112
  end
113
113
 
114
114
  def text_element
@@ -8,7 +8,7 @@
8
8
  <% else %>
9
9
  <div class="hakumi-calendar-header-left">
10
10
  <% if show_year_select? %>
11
- <%= render Hakumi::Select::Component.new(
11
+ <%= render HakumiComponents::Select::Component.new(
12
12
  value: current_year,
13
13
  options: years_range.map { |y| [y.to_s, y] },
14
14
  size: fullscreen? ? :middle : :small,
@@ -19,7 +19,7 @@
19
19
  <% end %>
20
20
 
21
21
  <% if show_month_select? %>
22
- <%= render Hakumi::Select::Component.new(
22
+ <%= render HakumiComponents::Select::Component.new(
23
23
  value: current_month,
24
24
  options: month_names.each_with_index.map { |name, i| [name, i + 1] },
25
25
  size: fullscreen? ? :middle : :small,
@@ -31,14 +31,14 @@
31
31
 
32
32
  <% if decade_mode? %>
33
33
  <div style="display: flex; align-items: center; gap: 8px;">
34
- <%= render Hakumi::Button::Component.new(
34
+ <%= render HakumiComponents::Button::Component.new(
35
35
  icon: :left,
36
36
  type: :text,
37
37
  size: :small,
38
38
  data: { action: "click->hakumi--calendar#prevDecade" }
39
39
  ) %>
40
40
  <span style="font-weight: 500; color: var(--color-text); min-width: 100px; text-align: center;"><%= decade_range_label %></span>
41
- <%= render Hakumi::Button::Component.new(
41
+ <%= render HakumiComponents::Button::Component.new(
42
42
  icon: :right,
43
43
  type: :text,
44
44
  size: :small,
@@ -50,7 +50,7 @@
50
50
 
51
51
  <% if show_mode_switch? %>
52
52
  <div class="hakumi-calendar-header-right">
53
- <%= render Hakumi::Segmented::Component.new(
53
+ <%= render HakumiComponents::Segmented::Component.new(
54
54
  options: [
55
55
  { label: "Month", value: "month" },
56
56
  { label: "Year", value: "year" }
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Calendar
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  MODES = %i[month year quarter decade].freeze
7
7
  WEEK_DAYS = %i[sunday monday tuesday wednesday thursday friday saturday].freeze
8
8
  LOCALES = {
@@ -151,7 +151,7 @@ module Hakumi
151
151
 
152
152
  def render_event_badge(event)
153
153
  helpers.render(
154
- Hakumi::Badge::Component.new(
154
+ HakumiComponents::Badge::Component.new(
155
155
  status: event[:type],
156
156
  text: event[:content]
157
157
  )
@@ -318,7 +318,7 @@ module Hakumi
318
318
 
319
319
  safe_join(items.map do |item|
320
320
  content_tag(:div, class: "hakumi-calendar-event hakumi-calendar-event-#{item[:type] || :default}") do
321
- render Hakumi::Badge::Component.new(
321
+ render HakumiComponents::Badge::Component.new(
322
322
  status: item[:type] || :default,
323
323
  text: item[:content]
324
324
  )
@@ -1,26 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Card
5
5
  # Hakumi Card component
6
6
  # A container for displaying content in a box.
7
7
  #
8
8
  # @example Basic usage with slots
9
- # <%= render Hakumi::Card::Component.new do |card| %>
9
+ # <%= render HakumiComponents::Card::Component.new do |card| %>
10
10
  # <% card.with_header { "Card Title" } %>
11
11
  # <% card.with_extra { "More" } %>
12
12
  # Card content
13
13
  # <% end %>
14
14
  #
15
15
  # @example With cover and actions
16
- # <%= render Hakumi::Card::Component.new do |card| %>
16
+ # <%= render HakumiComponents::Card::Component.new do |card| %>
17
17
  # <% card.with_cover { image_tag("example.png") } %>
18
18
  # <% card.with_header { "Card Title" } %>
19
19
  # Card content
20
20
  # <% card.with_action { link_to "Edit", edit_path } %>
21
21
  # <% card.with_action { link_to "Delete", "#" } %>
22
22
  # <% end %>
23
- class Component < Hakumi::BaseComponent
23
+ class Component < HakumiComponents::BaseComponent
24
24
  # Slots for content
25
25
  renders_one :header
26
26
  renders_one :cover
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Card
5
5
  module Grid
6
6
  # Hakumi Card Grid component
7
7
  # A grid-style item within a Card
8
8
  #
9
9
  # @example Basic usage
10
- # <%= render Hakumi::Card::Component.new(title: "Title") do %>
11
- # <%= render Hakumi::Card::Grid::Component.new { "Content 1" } %>
12
- # <%= render Hakumi::Card::Grid::Component.new { "Content 2" } %>
10
+ # <%= render HakumiComponents::Card::Component.new(title: "Title") do %>
11
+ # <%= render HakumiComponents::Card::Grid::Component.new { "Content 1" } %>
12
+ # <%= render HakumiComponents::Card::Grid::Component.new { "Content 2" } %>
13
13
  # <% end %>
14
- class Component < Hakumi::BaseComponent
14
+ class Component < HakumiComponents::BaseComponent
15
15
  def initialize(
16
16
  hoverable: true,
17
17
  **html_options