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
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Icon
5
5
  # Icon component for rendering Ant Design icons
6
6
  #
@@ -10,17 +10,17 @@ module Hakumi
10
10
  # - Three themes: outlined (default), filled, two-tone
11
11
  #
12
12
  # @example Basic usage
13
- # <%= render Hakumi::Icon::Component.new(name: "user") %>
13
+ # <%= render HakumiComponents::Icon::Component.new(name: "user") %>
14
14
  #
15
15
  # @example With size
16
- # <%= render Hakumi::Icon::Component.new(name: "home", size: 24) %>
16
+ # <%= render HakumiComponents::Icon::Component.new(name: "home", size: 24) %>
17
17
  #
18
18
  # @example Filled variant
19
- # <%= render Hakumi::Icon::Component.new(name: "heart", theme: :filled) %>
19
+ # <%= render HakumiComponents::Icon::Component.new(name: "heart", theme: :filled) %>
20
20
  #
21
21
  # @example Custom SVG
22
- # <%= render Hakumi::Icon::Component.new(svg: "<svg>...</svg>") %>
23
- class Component < Hakumi::BaseComponent
22
+ # <%= render HakumiComponents::Icon::Component.new(svg: "<svg>...</svg>") %>
23
+ class Component < HakumiComponents::BaseComponent
24
24
  THEMES = [ :outlined, :filled, :two_tone ].freeze
25
25
  DEFAULT_SIZE = 16
26
26
  DEFAULT_COLOR = "currentColor"
@@ -140,9 +140,9 @@ module Hakumi
140
140
  end
141
141
 
142
142
  def icon_svg
143
- svg = Hakumi::Icon::Loader.load(@name, @theme)
143
+ svg = HakumiComponents::Icon::Loader.load(@name, @theme)
144
144
  if svg.blank? && fallback_enabled?
145
- svg = Hakumi::Icon::Loader.load(@name, :outlined)
145
+ svg = HakumiComponents::Icon::Loader.load(@name, :outlined)
146
146
  end
147
147
 
148
148
  return svg.html_safe if svg.present?
@@ -2,14 +2,14 @@
2
2
  <% if placeholder? %>
3
3
  <div class="hakumi-image-placeholder" data-hakumi--image-target="placeholder">
4
4
  <div class="hakumi-image-placeholder-content">
5
- <%= render Hakumi::Icon::Component.new(name: :picture, size: 24) %>
5
+ <%= render HakumiComponents::Icon::Component.new(name: :picture, size: 24) %>
6
6
  </div>
7
7
  </div>
8
8
  <% end %>
9
9
 
10
10
  <div class="hakumi-image-error-placeholder" data-hakumi--image-target="errorPlaceholder" style="display: none;">
11
11
  <div class="hakumi-image-placeholder-content">
12
- <%= render Hakumi::Icon::Component.new(name: :picture, size: 24) %>
12
+ <%= render HakumiComponents::Icon::Component.new(name: :picture, size: 24) %>
13
13
  </div>
14
14
  </div>
15
15
 
@@ -21,7 +21,7 @@
21
21
  <%= content %>
22
22
  <% else %>
23
23
  <div class="hakumi-image-mask-info">
24
- <%= render Hakumi::Icon::Component.new(name: :eye, size: 16) %>
24
+ <%= render HakumiComponents::Icon::Component.new(name: :eye, size: 16) %>
25
25
  <span>Preview</span>
26
26
  </div>
27
27
  <% end %>
@@ -38,40 +38,40 @@
38
38
  </div>
39
39
  <button class="hakumi-image-preview-close" data-action="click->hakumi--image#closePreview">
40
40
  <span class="hakumi-icon">
41
- <%= render Hakumi::Icon::Component.new(name: 'close', theme: :outlined) %>
41
+ <%= render HakumiComponents::Icon::Component.new(name: 'close', theme: :outlined) %>
42
42
  </span>
43
43
  </button>
44
44
  <div class="hakumi-image-preview-operations">
45
45
  <button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleFlipY" title="Flip Vertical">
46
46
  <span class="hakumi-icon" style="transform: rotate(90deg)">
47
- <%= render Hakumi::Icon::Component.new(name: 'swap', theme: :outlined) %>
47
+ <%= render HakumiComponents::Icon::Component.new(name: 'swap', theme: :outlined) %>
48
48
  </span>
49
49
  </button>
50
50
  <button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleFlipX" title="Flip Horizontal">
51
51
  <span class="hakumi-icon">
52
- <%= render Hakumi::Icon::Component.new(name: 'swap', theme: :outlined) %>
52
+ <%= render HakumiComponents::Icon::Component.new(name: 'swap', theme: :outlined) %>
53
53
  </span>
54
54
  </button>
55
55
  <span class="hakumi-image-preview-operations-divider"></span>
56
56
  <button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleRotateLeft" title="Rotate Left">
57
57
  <span class="hakumi-icon">
58
- <%= render Hakumi::Icon::Component.new(name: 'rotate-left', theme: :outlined) %>
58
+ <%= render HakumiComponents::Icon::Component.new(name: 'rotate-left', theme: :outlined) %>
59
59
  </span>
60
60
  </button>
61
61
  <button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleRotateRight" title="Rotate Right">
62
62
  <span class="hakumi-icon">
63
- <%= render Hakumi::Icon::Component.new(name: 'rotate-right', theme: :outlined) %>
63
+ <%= render HakumiComponents::Icon::Component.new(name: 'rotate-right', theme: :outlined) %>
64
64
  </span>
65
65
  </button>
66
66
  <span class="hakumi-image-preview-operations-divider"></span>
67
67
  <button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleZoomOut" title="Zoom Out">
68
68
  <span class="hakumi-icon">
69
- <%= render Hakumi::Icon::Component.new(name: 'zoom-out', theme: :outlined) %>
69
+ <%= render HakumiComponents::Icon::Component.new(name: 'zoom-out', theme: :outlined) %>
70
70
  </span>
71
71
  </button>
72
72
  <button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleZoomIn" title="Zoom In">
73
73
  <span class="hakumi-icon">
74
- <%= render Hakumi::Icon::Component.new(name: 'zoom-in', theme: :outlined) %>
74
+ <%= render HakumiComponents::Icon::Component.new(name: 'zoom-in', theme: :outlined) %>
75
75
  </span>
76
76
  </button>
77
77
  </div>
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Image
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  def initialize(
7
7
  src:,
8
8
  alt: nil,
@@ -21,19 +21,19 @@
21
21
  </div>
22
22
  <button class="hakumi-image-preview-close">
23
23
  <span class="hakumi-icon">
24
- <%= render Hakumi::Icon::Component.new(name: 'close', theme: :outlined) %>
24
+ <%= render HakumiComponents::Icon::Component.new(name: 'close', theme: :outlined) %>
25
25
  </span>
26
26
  </button>
27
27
 
28
28
  <div class="hakumi-image-preview-nav-wrapper" style="display: none;">
29
29
  <button class="hakumi-image-preview-switch hakumi-image-preview-switch-left">
30
30
  <span class="hakumi-icon">
31
- <%= render Hakumi::Icon::Component.new(name: 'left', theme: :outlined) %>
31
+ <%= render HakumiComponents::Icon::Component.new(name: 'left', theme: :outlined) %>
32
32
  </span>
33
33
  </button>
34
34
  <button class="hakumi-image-preview-switch hakumi-image-preview-switch-right">
35
35
  <span class="hakumi-icon">
36
- <%= render Hakumi::Icon::Component.new(name: 'right', theme: :outlined) %>
36
+ <%= render HakumiComponents::Icon::Component.new(name: 'right', theme: :outlined) %>
37
37
  </span>
38
38
  </button>
39
39
  <div class="hakumi-image-preview-counter">
@@ -46,34 +46,34 @@
46
46
  <div class="hakumi-image-preview-operations">
47
47
  <button class="hakumi-image-preview-operations-operation" title="Flip Vertical">
48
48
  <span class="hakumi-icon" style="transform: rotate(90deg)">
49
- <%= render Hakumi::Icon::Component.new(name: 'swap', theme: :outlined) %>
49
+ <%= render HakumiComponents::Icon::Component.new(name: 'swap', theme: :outlined) %>
50
50
  </span>
51
51
  </button>
52
52
  <button class="hakumi-image-preview-operations-operation" title="Flip Horizontal">
53
53
  <span class="hakumi-icon">
54
- <%= render Hakumi::Icon::Component.new(name: 'swap', theme: :outlined) %>
54
+ <%= render HakumiComponents::Icon::Component.new(name: 'swap', theme: :outlined) %>
55
55
  </span>
56
56
  </button>
57
57
  <span class="hakumi-image-preview-operations-divider"></span>
58
58
  <button class="hakumi-image-preview-operations-operation" title="Rotate Left">
59
59
  <span class="hakumi-icon">
60
- <%= render Hakumi::Icon::Component.new(name: 'rotate-left', theme: :outlined) %>
60
+ <%= render HakumiComponents::Icon::Component.new(name: 'rotate-left', theme: :outlined) %>
61
61
  </span>
62
62
  </button>
63
63
  <button class="hakumi-image-preview-operations-operation" title="Rotate Right">
64
64
  <span class="hakumi-icon">
65
- <%= render Hakumi::Icon::Component.new(name: 'rotate-right', theme: :outlined) %>
65
+ <%= render HakumiComponents::Icon::Component.new(name: 'rotate-right', theme: :outlined) %>
66
66
  </span>
67
67
  </button>
68
68
  <span class="hakumi-image-preview-operations-divider"></span>
69
69
  <button class="hakumi-image-preview-operations-operation" title="Zoom Out">
70
70
  <span class="hakumi-icon">
71
- <%= render Hakumi::Icon::Component.new(name: 'zoom-out', theme: :outlined) %>
71
+ <%= render HakumiComponents::Icon::Component.new(name: 'zoom-out', theme: :outlined) %>
72
72
  </span>
73
73
  </button>
74
74
  <button class="hakumi-image-preview-operations-operation" title="Zoom In">
75
75
  <span class="hakumi-icon">
76
- <%= render Hakumi::Icon::Component.new(name: 'zoom-in', theme: :outlined) %>
76
+ <%= render HakumiComponents::Icon::Component.new(name: 'zoom-in', theme: :outlined) %>
77
77
  </span>
78
78
  </button>
79
79
  </div>
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Image
5
5
  module PreviewGroup
6
- class Component < Hakumi::BaseComponent
7
- renders_many :images, ->(**kwargs) { Hakumi::Image::Component.new(**kwargs, preview: false) }
6
+ class Component < HakumiComponents::BaseComponent
7
+ renders_many :images, ->(**kwargs) { HakumiComponents::Image::Component.new(**kwargs, preview: false) }
8
8
 
9
9
  def initialize(
10
10
  items: nil,
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Input
5
5
  # Hakumi Input component
6
6
  # A basic widget for getting user input, supporting text, number, email, etc.
7
7
  #
8
8
  # @example Basic usage
9
- # <%= render Hakumi::Input::Component.new(name: "email", placeholder: "Enter email") %>
9
+ # <%= render HakumiComponents::Input::Component.new(name: "email", placeholder: "Enter email") %>
10
10
  #
11
11
  # @example With label and caption
12
- # <%= render Hakumi::Input::Component.new(
12
+ # <%= render HakumiComponents::Input::Component.new(
13
13
  # name: "username",
14
14
  # label: "Username",
15
15
  # caption: "Choose a unique username",
@@ -17,14 +17,14 @@ module Hakumi
17
17
  # ) %>
18
18
  #
19
19
  # @example With prefix and suffix
20
- # <%= render Hakumi::Input::Component.new(
20
+ # <%= render HakumiComponents::Input::Component.new(
21
21
  # name: "amount",
22
22
  # prefix: "dollar",
23
23
  # suffix: "USD",
24
24
  # placeholder: "0.00"
25
25
  # ) %>
26
- class Component < Hakumi::BaseComponent
27
- include Hakumi::Concerns::FormField
26
+ class Component < HakumiComponents::BaseComponent
27
+ include HakumiComponents::Concerns::FormField
28
28
 
29
29
  SIZES = [ :small, :middle, :large ].freeze
30
30
 
@@ -143,7 +143,7 @@ module Hakumi
143
143
 
144
144
  content_tag(:span, class: "hakumi-input-prefix") do
145
145
  if @prefix_icon
146
- render Hakumi::Icon::Component.new(name: @prefix_icon)
146
+ render HakumiComponents::Icon::Component.new(name: @prefix_icon)
147
147
  elsif @prefix
148
148
  @prefix
149
149
  end
@@ -162,7 +162,7 @@ module Hakumi
162
162
  return nil unless @suffix || @suffix_icon
163
163
 
164
164
  if @suffix_icon
165
- render Hakumi::Icon::Component.new(name: @suffix_icon)
165
+ render HakumiComponents::Icon::Component.new(name: @suffix_icon)
166
166
  elsif @suffix
167
167
  @suffix
168
168
  end
@@ -177,7 +177,7 @@ module Hakumi
177
177
  tabindex: "-1",
178
178
  data: { action: "click->hakumi--input#clear" }
179
179
  ) do
180
- render Hakumi::Icon::Component.new(name: :close_circle, theme: :filled)
180
+ render HakumiComponents::Icon::Component.new(name: :close_circle, theme: :filled)
181
181
  end
182
182
  end
183
183
  end
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Input
5
5
  module Password
6
6
  # Hakumi Password Input component
7
7
  # A password input with visibility toggle functionality
8
8
  #
9
9
  # @example Basic usage
10
- # <%= render Hakumi::Input::Password::Component.new(
10
+ # <%= render HakumiComponents::Input::Password::Component.new(
11
11
  # name: "password",
12
12
  # label: "Password",
13
13
  # placeholder: "Enter password"
14
14
  # ) %>
15
15
  #
16
16
  # @example With size and validation
17
- # <%= render Hakumi::Input::Password::Component.new(
17
+ # <%= render HakumiComponents::Input::Password::Component.new(
18
18
  # name: "password",
19
19
  # label: "Password",
20
20
  # size: :large,
21
21
  # required: true,
22
22
  # errors: ["Password is too short"]
23
23
  # ) %>
24
- class Component < Hakumi::Input::Component
24
+ class Component < HakumiComponents::Input::Component
25
25
  def initialize(**options)
26
26
  # Force type to password
27
27
  options[:type] = :password
@@ -75,7 +75,7 @@ module Hakumi
75
75
  hakumi__input_password_target: "toggleButton"
76
76
  }
77
77
  ) do
78
- render Hakumi::Icon::Component.new(
78
+ render HakumiComponents::Icon::Component.new(
79
79
  name: :eye_invisible,
80
80
  data: { hakumi__input_password_target: "icon" }
81
81
  )
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Input
5
5
  module TextArea
6
6
  # Hakumi TextArea component
7
7
  # Multi-line text input with optional character count and auto-resize
8
8
  #
9
9
  # @example Basic usage
10
- # <%= render Hakumi::Input::TextArea::Component.new(
10
+ # <%= render HakumiComponents::Input::TextArea::Component.new(
11
11
  # name: "bio",
12
12
  # label: "Biography",
13
13
  # rows: 4
14
14
  # ) %>
15
15
  #
16
16
  # @example With character count
17
- # <%= render Hakumi::Input::TextArea::Component.new(
17
+ # <%= render HakumiComponents::Input::TextArea::Component.new(
18
18
  # name: "description",
19
19
  # label: "Description",
20
20
  # show_count: true,
21
21
  # maxlength: 200
22
22
  # ) %>
23
- class Component < Hakumi::BaseComponent
24
- include Hakumi::Concerns::FormField
23
+ class Component < HakumiComponents::BaseComponent
24
+ include HakumiComponents::Concerns::FormField
25
25
 
26
26
  SIZES = [ :small, :middle, :large ].freeze
27
27
 
@@ -14,7 +14,7 @@
14
14
  data-action="mousedown->hakumi--input-number#handleStepUp"
15
15
  <%= "disabled" if @disabled || @readonly %>
16
16
  >
17
- <%= render Hakumi::Icon::Component.new(name: :caret_up, size: 10) %>
17
+ <%= render HakumiComponents::Icon::Component.new(name: :caret_up, size: 10) %>
18
18
  </button>
19
19
  <button
20
20
  type="button"
@@ -24,7 +24,7 @@
24
24
  data-action="mousedown->hakumi--input-number#handleStepDown"
25
25
  <%= "disabled" if @disabled || @readonly %>
26
26
  >
27
- <%= render Hakumi::Icon::Component.new(name: :caret_down, size: 10) %>
27
+ <%= render HakumiComponents::Icon::Component.new(name: :caret_down, size: 10) %>
28
28
  </button>
29
29
  </span>
30
30
  <% end %>
@@ -50,7 +50,7 @@
50
50
  data-action="mousedown->hakumi--input-number#handleStepUp"
51
51
  <%= "disabled" if @disabled || @readonly %>
52
52
  >
53
- <%= render Hakumi::Icon::Component.new(name: :caret_up, size: 10) %>
53
+ <%= render HakumiComponents::Icon::Component.new(name: :caret_up, size: 10) %>
54
54
  </button>
55
55
  <button
56
56
  type="button"
@@ -60,7 +60,7 @@
60
60
  data-action="mousedown->hakumi--input-number#handleStepDown"
61
61
  <%= "disabled" if @disabled || @readonly %>
62
62
  >
63
- <%= render Hakumi::Icon::Component.new(name: :caret_down, size: 10) %>
63
+ <%= render HakumiComponents::Icon::Component.new(name: :caret_down, size: 10) %>
64
64
  </button>
65
65
  </span>
66
66
  <% end %>
@@ -1,22 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module InputNumber
5
5
  # Hakumi InputNumber component
6
6
  # Numeric input with precision, formatter, and spinner controls
7
7
  #
8
8
  # @example Basic usage
9
- # <%= render Hakumi::InputNumber::Component.new(name: :amount, value: 10) %>
9
+ # <%= render HakumiComponents::InputNumber::Component.new(name: :amount, value: 10) %>
10
10
  #
11
11
  # @example With formatter and prefix
12
- # <%= render Hakumi::InputNumber::Component.new(
12
+ # <%= render HakumiComponents::InputNumber::Component.new(
13
13
  # name: :price,
14
14
  # value: 199.95,
15
15
  # prefix: "$",
16
16
  # formatter: { style: "currency", currency: "USD", minimumFractionDigits: 2 }
17
17
  # ) %>
18
- class Component < Hakumi::BaseComponent
19
- include Hakumi::Concerns::FormField
18
+ class Component < HakumiComponents::BaseComponent
19
+ include HakumiComponents::Concerns::FormField
20
20
 
21
21
  SIZES = [ :small, :middle, :large ].freeze
22
22
  VARIANTS = [ :default, :filled, :borderless ].freeze
@@ -1,4 +1,4 @@
1
- class Hakumi::Layout::Component < Hakumi::BaseComponent
1
+ class HakumiComponents::Layout::Component < HakumiComponents::BaseComponent
2
2
  def initialize(has_sider: false, **html_options)
3
3
  @has_sider = has_sider
4
4
  @html_options = html_options
@@ -1,4 +1,4 @@
1
- class Hakumi::Layout::Content::Component < Hakumi::BaseComponent
1
+ class HakumiComponents::Layout::Content::Component < HakumiComponents::BaseComponent
2
2
  def initialize(**html_options)
3
3
  @html_options = html_options
4
4
  end
@@ -1,4 +1,4 @@
1
- class Hakumi::Layout::Footer::Component < Hakumi::BaseComponent
1
+ class HakumiComponents::Layout::Footer::Component < HakumiComponents::BaseComponent
2
2
  def initialize(**html_options)
3
3
  @html_options = html_options
4
4
  end
@@ -1,4 +1,4 @@
1
- class Hakumi::Layout::Header::Component < Hakumi::BaseComponent
1
+ class HakumiComponents::Layout::Header::Component < HakumiComponents::BaseComponent
2
2
  def initialize(**html_options)
3
3
  @html_options = html_options
4
4
  end
@@ -1,4 +1,4 @@
1
- class Hakumi::Layout::Sider::Component < Hakumi::BaseComponent
1
+ class HakumiComponents::Layout::Sider::Component < HakumiComponents::BaseComponent
2
2
  def initialize(
3
3
  width: 200,
4
4
  collapsed_width: 80,
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Mentions
5
5
  # Hakumi Mentions component
6
6
  # Textarea input with dropdown suggestions for mentions
7
- class Component < Hakumi::BaseComponent
8
- include Hakumi::Concerns::FormField
7
+ class Component < HakumiComponents::BaseComponent
8
+ include HakumiComponents::Concerns::FormField
9
9
 
10
10
  SIZES = %i[small default large].freeze
11
11
  STATUSES = [ nil, :error, :warning ].freeze
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Menu
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  MODES = %i[horizontal vertical inline].freeze
7
7
  TRIGGER_SUBMENU_ACTIONS = %i[hover click].freeze
8
8
 
9
9
  renders_many :items, types: {
10
10
  item: {
11
11
  renders: ->(key:, label: nil, icon: nil, disabled: false, danger: false, href: nil, target: nil, **options, &block) do
12
- Hakumi::Menu::Item::Component.new(
12
+ HakumiComponents::Menu::Item::Component.new(
13
13
  key: key,
14
14
  label: label,
15
15
  icon: icon,
@@ -25,7 +25,7 @@ module Hakumi
25
25
  },
26
26
  submenu: {
27
27
  renders: ->(key:, label: nil, icon: nil, disabled: false, **options, &block) do
28
- Hakumi::Menu::SubMenu::Component.new(
28
+ HakumiComponents::Menu::SubMenu::Component.new(
29
29
  key: key,
30
30
  label: label,
31
31
  icon: icon,
@@ -39,12 +39,12 @@ module Hakumi
39
39
  },
40
40
  group: {
41
41
  renders: ->(label:, **options, &block) do
42
- Hakumi::Menu::Group::Component.new(label: label, **options, &block)
42
+ HakumiComponents::Menu::Group::Component.new(label: label, **options, &block)
43
43
  end,
44
44
  as: :group
45
45
  },
46
46
  divider: {
47
- renders: -> { Hakumi::Menu::Divider::Component.new },
47
+ renders: -> { HakumiComponents::Menu::Divider::Component.new },
48
48
  as: :divider
49
49
  }
50
50
  }
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Menu
5
5
  module Divider
6
- class Component < Hakumi::BaseComponent
6
+ class Component < HakumiComponents::BaseComponent
7
7
  def call
8
8
  tag.li(class: "hakumi-menu-item-divider", role: "separator")
9
9
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Menu
5
5
  module Group
6
- class Component < Hakumi::BaseComponent
6
+ class Component < HakumiComponents::BaseComponent
7
7
  renders_many :items, types: {
8
8
  item: {
9
9
  renders: ->(key:, label: nil, icon: nil, disabled: false, danger: false, href: nil, target: nil, **options, &block) do
10
- Hakumi::Menu::Item::Component.new(
10
+ HakumiComponents::Menu::Item::Component.new(
11
11
  key: key,
12
12
  label: label,
13
13
  icon: icon,
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Menu
5
5
  module Item
6
- class Component < Hakumi::BaseComponent
6
+ class Component < HakumiComponents::BaseComponent
7
7
  def initialize(key:, label: nil, icon: nil, disabled: false, danger: false, href: nil, target: nil, **html_options)
8
8
  @key = key
9
9
  @label = label
@@ -36,7 +36,7 @@ module Hakumi
36
36
  return nil unless icon
37
37
 
38
38
  if icon.is_a?(Symbol)
39
- Hakumi::Icon::Component.new(name: icon)
39
+ HakumiComponents::Icon::Component.new(name: icon)
40
40
  else
41
41
  icon
42
42
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Menu
5
5
  module SubMenu
6
- class Component < Hakumi::BaseComponent
6
+ class Component < HakumiComponents::BaseComponent
7
7
  renders_many :items, types: {
8
8
  item: {
9
9
  renders: ->(key:, label: nil, icon: nil, disabled: false, danger: false, href: nil, target: nil, **options, &block) do
10
- Hakumi::Menu::Item::Component.new(
10
+ HakumiComponents::Menu::Item::Component.new(
11
11
  key: key,
12
12
  label: label,
13
13
  icon: icon,
@@ -23,7 +23,7 @@ module Hakumi
23
23
  },
24
24
  submenu: {
25
25
  renders: ->(key:, label: nil, icon: nil, disabled: false, **options, &block) do
26
- Hakumi::Menu::SubMenu::Component.new(
26
+ HakumiComponents::Menu::SubMenu::Component.new(
27
27
  key: key,
28
28
  label: label,
29
29
  icon: icon,
@@ -37,12 +37,12 @@ module Hakumi
37
37
  },
38
38
  group: {
39
39
  renders: ->(label:, **options, &block) do
40
- Hakumi::Menu::Group::Component.new(label: label, **options, &block)
40
+ HakumiComponents::Menu::Group::Component.new(label: label, **options, &block)
41
41
  end,
42
42
  as: :group
43
43
  },
44
44
  divider: {
45
- renders: -> { Hakumi::Menu::Divider::Component.new },
45
+ renders: -> { HakumiComponents::Menu::Divider::Component.new },
46
46
  as: :divider
47
47
  }
48
48
  }
@@ -81,7 +81,7 @@ module Hakumi
81
81
  return nil unless icon
82
82
 
83
83
  if icon.is_a?(Symbol)
84
- Hakumi::Icon::Component.new(name: icon)
84
+ HakumiComponents::Icon::Component.new(name: icon)
85
85
  else
86
86
  icon
87
87
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Message
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  TYPES = %i[success info warning error loading].freeze
7
7
 
8
8
  # Extracts locals from controller params for dynamic rendering
@@ -9,7 +9,7 @@
9
9
  <% if @closable %>
10
10
  <button type="button" class="hakumi-modal-close" aria-label="Close" data-hakumi-action="close">
11
11
  <span class="hakumi-modal-close-x">
12
- <%= render Hakumi::Icon::Component.new(name: :close) %>
12
+ <%= render HakumiComponents::Icon::Component.new(name: :close) %>
13
13
  </span>
14
14
  </button>
15
15
  <% end %>
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Hakumi
3
+ module HakumiComponents
4
4
  module Modal
5
- class Component < Hakumi::BaseComponent
5
+ class Component < HakumiComponents::BaseComponent
6
6
  # Slots for content
7
7
  renders_one :header
8
8
  renders_one :body