hakumi_components 0.1.18.pre → 0.1.19.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 (467) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -2
  3. data/README.md +208 -381
  4. data/app/assets/javascripts/hakumi_components.js +40 -34
  5. data/app/assets/stylesheets/hakumi_components.css +1 -1
  6. data/app/components/hakumi_components/admin_panel/component.rb +19 -9
  7. data/app/components/hakumi_components/affix/component.rb +54 -30
  8. data/app/components/hakumi_components/alert/component.html.erb +2 -2
  9. data/app/components/hakumi_components/alert/component.rb +68 -18
  10. data/app/components/hakumi_components/anchor/component.rb +35 -27
  11. data/app/components/hakumi_components/anchor/link/component.html.erb +1 -1
  12. data/app/components/hakumi_components/anchor/link/component.rb +28 -9
  13. data/app/components/hakumi_components/autocomplete/component.html.erb +86 -66
  14. data/app/components/hakumi_components/autocomplete/component.rb +115 -89
  15. data/app/components/hakumi_components/avatar/component.rb +45 -12
  16. data/app/components/hakumi_components/badge/component.rb +99 -45
  17. data/app/components/hakumi_components/base_component.rb +290 -91
  18. data/app/components/hakumi_components/breadcrumb/component.rb +16 -5
  19. data/app/components/hakumi_components/breadcrumb/item/component.html.erb +5 -5
  20. data/app/components/hakumi_components/breadcrumb/item/component.rb +56 -8
  21. data/app/components/hakumi_components/breadcrumb/item/menu_entry.rb +71 -0
  22. data/app/components/hakumi_components/button/component.rb +62 -20
  23. data/app/components/hakumi_components/calendar/component.html.erb +19 -19
  24. data/app/components/hakumi_components/calendar/component.rb +225 -202
  25. data/app/components/hakumi_components/calendar/day_cell.rb +62 -0
  26. data/app/components/hakumi_components/calendar/display_model.rb +237 -0
  27. data/app/components/hakumi_components/calendar/event_entry.rb +54 -0
  28. data/app/components/hakumi_components/calendar/locale_pack.rb +28 -0
  29. data/app/components/hakumi_components/calendar/panel_entry.rb +48 -0
  30. data/app/components/hakumi_components/calendar/week_row.rb +28 -0
  31. data/app/components/hakumi_components/card/component.html.erb +2 -2
  32. data/app/components/hakumi_components/card/component.rb +76 -49
  33. data/app/components/hakumi_components/card/grid/component.html.erb +1 -1
  34. data/app/components/hakumi_components/card/grid/component.rb +23 -17
  35. data/app/components/hakumi_components/card/meta/component.html.erb +8 -8
  36. data/app/components/hakumi_components/card/meta/component.rb +42 -24
  37. data/app/components/hakumi_components/carousel/autoplay_config.rb +27 -0
  38. data/app/components/hakumi_components/carousel/component.rb +85 -67
  39. data/app/components/hakumi_components/carousel/dots_config.rb +36 -0
  40. data/app/components/hakumi_components/cascader/component.html.erb +54 -36
  41. data/app/components/hakumi_components/cascader/component.rb +111 -62
  42. data/app/components/hakumi_components/checkbox/component.html.erb +5 -5
  43. data/app/components/hakumi_components/checkbox/component.rb +40 -6
  44. data/app/components/hakumi_components/checkbox/group/component.html.erb +4 -4
  45. data/app/components/hakumi_components/checkbox/group/component.rb +40 -13
  46. data/app/components/hakumi_components/checkbox/group/option.rb +34 -0
  47. data/app/components/hakumi_components/collapse/component.rb +64 -48
  48. data/app/components/hakumi_components/collapse/panel/component.rb +64 -21
  49. data/app/components/hakumi_components/color_picker/component.html.erb +21 -22
  50. data/app/components/hakumi_components/color_picker/component.rb +159 -49
  51. data/app/components/hakumi_components/color_picker/preset_group.rb +27 -0
  52. data/app/components/hakumi_components/concerns/form_field.rb +169 -68
  53. data/app/components/hakumi_components/concerns/form_field_contract.rb +57 -0
  54. data/app/components/hakumi_components/concerns/form_field_interface.rb +16 -0
  55. data/app/components/hakumi_components/concerns/input_control.rb +111 -0
  56. data/app/components/hakumi_components/concerns/input_control_contract.rb +47 -0
  57. data/app/components/hakumi_components/concerns/input_control_interface.rb +34 -0
  58. data/app/components/hakumi_components/concerns/selection_control.rb +122 -0
  59. data/app/components/hakumi_components/concerns/selection_control_contract.rb +47 -0
  60. data/app/components/hakumi_components/concerns/selection_control_interface.rb +34 -0
  61. data/app/components/hakumi_components/container/component.rb +29 -14
  62. data/app/components/hakumi_components/date_picker/component.html.erb +1 -3
  63. data/app/components/hakumi_components/date_picker/component.rb +130 -16
  64. data/app/components/hakumi_components/date_picker/range_picker.rb +159 -28
  65. data/app/components/hakumi_components/date_picker/shared_rendering.rb +151 -61
  66. data/app/components/hakumi_components/descriptions/component.html.erb +6 -6
  67. data/app/components/hakumi_components/descriptions/component.rb +98 -61
  68. data/app/components/hakumi_components/descriptions/item/component.rb +32 -8
  69. data/app/components/hakumi_components/divider/component.rb +36 -16
  70. data/app/components/hakumi_components/drawer/component.html.erb +2 -2
  71. data/app/components/hakumi_components/drawer/component.rb +112 -29
  72. data/app/components/hakumi_components/dropdown/component.rb +32 -35
  73. data/app/components/hakumi_components/dropdown/divider/component.rb +4 -0
  74. data/app/components/hakumi_components/dropdown/item/component.rb +42 -16
  75. data/app/components/hakumi_components/empty/component.rb +66 -31
  76. data/app/components/hakumi_components/flex/component.rb +39 -21
  77. data/app/components/hakumi_components/float_button/back_top/component.rb +35 -28
  78. data/app/components/hakumi_components/float_button/component.rb +161 -75
  79. data/app/components/hakumi_components/float_button/group/component.rb +85 -98
  80. data/app/components/hakumi_components/float_button/group_cluster/component.rb +46 -54
  81. data/app/components/hakumi_components/float_button/group_spec.rb +259 -0
  82. data/app/components/hakumi_components/float_button/item_spec.rb +115 -0
  83. data/app/components/hakumi_components/float_button/position_config.rb +68 -0
  84. data/app/components/hakumi_components/form/item/component.rb +34 -27
  85. data/app/components/hakumi_components/grid/col/component.rb +88 -17
  86. data/app/components/hakumi_components/grid/row/component.rb +35 -17
  87. data/app/components/hakumi_components/icon/component.rb +49 -49
  88. data/app/components/hakumi_components/image/component.html.erb +7 -7
  89. data/app/components/hakumi_components/image/component.rb +103 -40
  90. data/app/components/hakumi_components/image/preview_group/component.html.erb +1 -1
  91. data/app/components/hakumi_components/image/preview_group/component.rb +41 -36
  92. data/app/components/hakumi_components/image/preview_group/item.rb +48 -0
  93. data/app/components/hakumi_components/input/component.html.erb +1 -1
  94. data/app/components/hakumi_components/input/component.rb +142 -66
  95. data/app/components/hakumi_components/input/password/component.rb +30 -41
  96. data/app/components/hakumi_components/input/text_area/component.html.erb +2 -2
  97. data/app/components/hakumi_components/input/text_area/component.rb +89 -42
  98. data/app/components/hakumi_components/input_number/component.html.erb +5 -5
  99. data/app/components/hakumi_components/input_number/component.rb +137 -55
  100. data/app/components/hakumi_components/layout/component.html.erb +1 -1
  101. data/app/components/hakumi_components/layout/component.rb +23 -16
  102. data/app/components/hakumi_components/layout/content/component.html.erb +1 -1
  103. data/app/components/hakumi_components/layout/content/component.rb +24 -14
  104. data/app/components/hakumi_components/layout/footer/component.html.erb +1 -1
  105. data/app/components/hakumi_components/layout/footer/component.rb +24 -14
  106. data/app/components/hakumi_components/layout/header/component.html.erb +1 -1
  107. data/app/components/hakumi_components/layout/header/component.rb +24 -14
  108. data/app/components/hakumi_components/layout/sider/component.html.erb +1 -1
  109. data/app/components/hakumi_components/layout/sider/component.rb +83 -49
  110. data/app/components/hakumi_components/mentions/coercion.rb +46 -0
  111. data/app/components/hakumi_components/mentions/component.html.erb +6 -6
  112. data/app/components/hakumi_components/mentions/component.rb +131 -67
  113. data/app/components/hakumi_components/mentions/option.rb +30 -0
  114. data/app/components/hakumi_components/menu/component.rb +50 -59
  115. data/app/components/hakumi_components/menu/divider/component.rb +4 -0
  116. data/app/components/hakumi_components/menu/group/component.rb +16 -15
  117. data/app/components/hakumi_components/menu/item/component.rb +42 -19
  118. data/app/components/hakumi_components/menu/sub_menu/component.rb +49 -37
  119. data/app/components/hakumi_components/message/component.rb +62 -27
  120. data/app/components/hakumi_components/modal/component.html.erb +6 -6
  121. data/app/components/hakumi_components/modal/component.rb +93 -40
  122. data/app/components/hakumi_components/modal/confirm/component.html.erb +2 -2
  123. data/app/components/hakumi_components/modal/confirm/component.rb +49 -8
  124. data/app/components/hakumi_components/modal/error/component.rb +8 -39
  125. data/app/components/hakumi_components/modal/info/component.rb +6 -40
  126. data/app/components/hakumi_components/modal/status_component.rb +150 -0
  127. data/app/components/hakumi_components/modal/success/component.rb +6 -40
  128. data/app/components/hakumi_components/modal/warning/component.rb +14 -44
  129. data/app/components/hakumi_components/notification/component.rb +72 -38
  130. data/app/components/hakumi_components/pagination/component.html.erb +7 -11
  131. data/app/components/hakumi_components/pagination/component.rb +105 -72
  132. data/app/components/hakumi_components/pagination/page_item.rb +49 -0
  133. data/app/components/hakumi_components/popconfirm/component.rb +67 -19
  134. data/app/components/hakumi_components/popover/component.html.erb +2 -2
  135. data/app/components/hakumi_components/popover/component.rb +102 -38
  136. data/app/components/hakumi_components/progress/attribute_renderer.rb +354 -0
  137. data/app/components/hakumi_components/progress/circle_geometry.rb +76 -0
  138. data/app/components/hakumi_components/progress/component.html.erb +18 -17
  139. data/app/components/hakumi_components/progress/component.rb +230 -402
  140. data/app/components/hakumi_components/progress/controller_locals_parser.rb +130 -0
  141. data/app/components/hakumi_components/progress/info_tooltip_policy.rb +39 -0
  142. data/app/components/hakumi_components/progress/info_value.rb +75 -0
  143. data/app/components/hakumi_components/progress/status_state.rb +31 -0
  144. data/app/components/hakumi_components/progress/steps_renderer.rb +149 -0
  145. data/app/components/hakumi_components/progress/stroke_gradient_value.rb +90 -0
  146. data/app/components/hakumi_components/qr_code/component.rb +138 -72
  147. data/app/components/hakumi_components/radio/component.html.erb +3 -3
  148. data/app/components/hakumi_components/radio/component.rb +42 -9
  149. data/app/components/hakumi_components/radio/group/component.html.erb +9 -9
  150. data/app/components/hakumi_components/radio/group/component.rb +76 -27
  151. data/app/components/hakumi_components/radio/group/option.rb +43 -0
  152. data/app/components/hakumi_components/rate/component.html.erb +1 -1
  153. data/app/components/hakumi_components/rate/component.rb +55 -9
  154. data/app/components/hakumi_components/result/component.rb +87 -37
  155. data/app/components/hakumi_components/segmented/component.html.erb +1 -1
  156. data/app/components/hakumi_components/segmented/component.rb +81 -118
  157. data/app/components/hakumi_components/segmented/option.rb +191 -0
  158. data/app/components/hakumi_components/select/component.html.erb +19 -19
  159. data/app/components/hakumi_components/select/component.rb +88 -37
  160. data/app/components/hakumi_components/selection_control/coercion.rb +161 -0
  161. data/app/components/hakumi_components/selection_control/entry.rb +22 -0
  162. data/app/components/hakumi_components/selection_control/option.rb +42 -0
  163. data/app/components/hakumi_components/selection_control/option_group.rb +34 -0
  164. data/app/components/hakumi_components/selection_control/tree_node.rb +123 -0
  165. data/app/components/hakumi_components/skeleton/avatar/component.rb +36 -14
  166. data/app/components/hakumi_components/skeleton/avatar_config.rb +79 -0
  167. data/app/components/hakumi_components/skeleton/button/component.rb +32 -14
  168. data/app/components/hakumi_components/skeleton/component.rb +79 -93
  169. data/app/components/hakumi_components/skeleton/image/component.rb +46 -22
  170. data/app/components/hakumi_components/skeleton/input/component.rb +25 -10
  171. data/app/components/hakumi_components/skeleton/node/component.rb +23 -7
  172. data/app/components/hakumi_components/skeleton/paragraph_config.rb +92 -0
  173. data/app/components/hakumi_components/skeleton/title_config.rb +31 -0
  174. data/app/components/hakumi_components/slider/component.html.erb +11 -11
  175. data/app/components/hakumi_components/slider/component.rb +172 -53
  176. data/app/components/hakumi_components/slider/mark.rb +27 -0
  177. data/app/components/hakumi_components/space/compact/component.html.erb +1 -3
  178. data/app/components/hakumi_components/space/compact/component.rb +35 -19
  179. data/app/components/hakumi_components/space/component.html.erb +1 -1
  180. data/app/components/hakumi_components/space/component.rb +75 -39
  181. data/app/components/hakumi_components/spin/component.rb +92 -31
  182. data/app/components/hakumi_components/splitter/component.html.erb +9 -3
  183. data/app/components/hakumi_components/splitter/component.rb +55 -22
  184. data/app/components/hakumi_components/splitter/panel/component.html.erb +1 -3
  185. data/app/components/hakumi_components/splitter/panel/component.rb +64 -39
  186. data/app/components/hakumi_components/statistic/component.rb +143 -59
  187. data/app/components/hakumi_components/steps/component.rb +87 -55
  188. data/app/components/hakumi_components/steps/item/component.rb +59 -20
  189. data/app/components/hakumi_components/switch/component.html.erb +2 -3
  190. data/app/components/hakumi_components/switch/component.rb +62 -36
  191. data/app/components/hakumi_components/table/column/component.rb +80 -23
  192. data/app/components/hakumi_components/table/column_definition.rb +181 -0
  193. data/app/components/hakumi_components/table/column_group/component.rb +32 -21
  194. data/app/components/hakumi_components/table/component.html.erb +22 -31
  195. data/app/components/hakumi_components/table/component.rb +248 -509
  196. data/app/components/hakumi_components/table/concerns/attribute_helpers.rb +22 -0
  197. data/app/components/hakumi_components/table/concerns/cell_rendering.rb +277 -0
  198. data/app/components/hakumi_components/table/concerns/columns.rb +293 -91
  199. data/app/components/hakumi_components/table/concerns/editable.rb +36 -89
  200. data/app/components/hakumi_components/table/concerns/ellipsis.rb +31 -30
  201. data/app/components/hakumi_components/table/concerns/fixed_columns.rb +26 -19
  202. data/app/components/hakumi_components/table/concerns/surface_rendering.rb +365 -0
  203. data/app/components/hakumi_components/table/configs.rb +518 -0
  204. data/app/components/hakumi_components/table/definition_types.rb +40 -0
  205. data/app/components/hakumi_components/table/display_rows.rb +56 -0
  206. data/app/components/hakumi_components/table/ellipsis_config.rb +143 -0
  207. data/app/components/hakumi_components/table/fixed_offset.rb +36 -0
  208. data/app/components/hakumi_components/table/header_cell.rb +23 -0
  209. data/app/components/hakumi_components/table/row_record.rb +60 -0
  210. data/app/components/hakumi_components/table/row_render_state.rb +85 -0
  211. data/app/components/hakumi_components/tabs/component.html.erb +8 -8
  212. data/app/components/hakumi_components/tabs/component.rb +114 -64
  213. data/app/components/hakumi_components/tabs/indicator_config.rb +34 -0
  214. data/app/components/hakumi_components/tabs/item/component.rb +73 -13
  215. data/app/components/hakumi_components/tag/component.rb +142 -47
  216. data/app/components/hakumi_components/tag/group/component.rb +18 -6
  217. data/app/components/hakumi_components/time_picker/component.html.erb +8 -8
  218. data/app/components/hakumi_components/time_picker/component.rb +71 -17
  219. data/app/components/hakumi_components/timeline/component.html.erb +3 -2
  220. data/app/components/hakumi_components/timeline/component.rb +188 -55
  221. data/app/components/hakumi_components/timeline/item/component.html.erb +2 -2
  222. data/app/components/hakumi_components/timeline/item/component.rb +121 -60
  223. data/app/components/hakumi_components/tooltip/component.html.erb +1 -1
  224. data/app/components/hakumi_components/tooltip/component.rb +89 -64
  225. data/app/components/hakumi_components/tour/component.rb +74 -49
  226. data/app/components/hakumi_components/tour/step.rb +86 -0
  227. data/app/components/hakumi_components/transfer/coercion.rb +66 -0
  228. data/app/components/hakumi_components/transfer/component.html.erb +171 -140
  229. data/app/components/hakumi_components/transfer/component.rb +232 -82
  230. data/app/components/hakumi_components/transfer/item.rb +54 -0
  231. data/app/components/hakumi_components/transfer/operations.rb +31 -0
  232. data/app/components/hakumi_components/tree/component.rb +219 -400
  233. data/app/components/hakumi_components/tree/concerns/node_rendering.rb +365 -0
  234. data/app/components/hakumi_components/tree/node.rb +276 -0
  235. data/app/components/hakumi_components/tree_select/component.html.erb +23 -9
  236. data/app/components/hakumi_components/tree_select/component.rb +116 -107
  237. data/app/components/hakumi_components/typography/base_component.rb +69 -36
  238. data/app/components/hakumi_components/typography/link/component.rb +63 -6
  239. data/app/components/hakumi_components/typography/paragraph/component.rb +6 -0
  240. data/app/components/hakumi_components/typography/text/component.rb +4 -0
  241. data/app/components/hakumi_components/typography/title/component.rb +61 -6
  242. data/app/components/hakumi_components/upload/component.html.erb +106 -88
  243. data/app/components/hakumi_components/upload/component.rb +222 -48
  244. data/app/components/hakumi_components/upload/file_entry.rb +53 -0
  245. data/app/controllers/hakumi_components/components_controller.rb +2 -1
  246. data/app/form_builders/hakumi_components/form_builder/contracts.rb +55 -0
  247. data/app/form_builders/hakumi_components/form_builder/field_context.rb +43 -0
  248. data/app/form_builders/hakumi_components/form_builder/model_binding.rb +163 -0
  249. data/app/form_builders/hakumi_components/form_builder.rb +238 -317
  250. data/app/helpers/hakumi_components/form_helper.rb +27 -23
  251. data/app/javascript/hakumi_components/controllers/hakumi/admin_panel_controller.js +5 -7
  252. data/app/javascript/hakumi_components/controllers/hakumi/back_top_controller.js +1 -1
  253. data/app/javascript/hakumi_components/controllers/hakumi/button_controller.js +108 -2
  254. data/app/javascript/hakumi_components/controllers/hakumi/calendar_controller.js +183 -95
  255. data/app/javascript/hakumi_components/controllers/hakumi/color_picker_controller.js +23 -285
  256. data/app/javascript/hakumi_components/controllers/hakumi/date_picker_controller.js +274 -262
  257. data/app/javascript/hakumi_components/controllers/hakumi/float_button_group_controller.js +2 -2
  258. data/app/javascript/hakumi_components/controllers/hakumi/message_controller.js +4 -2
  259. data/app/javascript/hakumi_components/controllers/hakumi/modal_controller.js +119 -125
  260. data/app/javascript/hakumi_components/controllers/hakumi/table/editable.js +291 -0
  261. data/app/javascript/hakumi_components/controllers/hakumi/table_controller.js +166 -366
  262. data/app/javascript/hakumi_components/controllers/hakumi/tabs_controller.js +8 -2
  263. data/app/javascript/hakumi_components/controllers/hakumi/tag_controller.js +27 -25
  264. data/app/javascript/hakumi_components/controllers/hakumi/tag_group_controller.js +19 -18
  265. data/app/javascript/hakumi_components/controllers/hakumi/theme_controller.js +116 -117
  266. data/app/javascript/hakumi_components/controllers/hakumi/transfer_controller.js +17 -1
  267. data/app/javascript/hakumi_components/controllers/hakumi/tree_controller.js +363 -78
  268. data/app/javascript/hakumi_components/controllers/hakumi/typography_controller.js +3 -3
  269. data/app/javascript/hakumi_components/controllers/hakumi/upload_controller.js +320 -204
  270. data/app/javascript/hakumi_components/core/render_component.js +37 -11
  271. data/app/javascript/hakumi_components/utils/color_helper.js +262 -0
  272. data/app/javascript/stylesheets/_base.scss +9 -0
  273. data/app/javascript/stylesheets/_hakumi_components.scss +1 -0
  274. data/app/javascript/stylesheets/components/_breadcrumb.scss +2 -2
  275. data/app/javascript/stylesheets/components/_calendar.scss +13 -13
  276. data/app/javascript/stylesheets/components/_cascader.scss +5 -5
  277. data/app/javascript/stylesheets/components/_checkbox.scss +9 -11
  278. data/app/javascript/stylesheets/components/_color_picker.scss +11 -11
  279. data/app/javascript/stylesheets/components/_date_picker.scss +4 -4
  280. data/app/javascript/stylesheets/components/_descriptions.scss +2 -2
  281. data/app/javascript/stylesheets/components/_drawer.scss +3 -3
  282. data/app/javascript/stylesheets/components/_dropdown.scss +2 -2
  283. data/app/javascript/stylesheets/components/_flex.scss +1 -1
  284. data/app/javascript/stylesheets/components/_float_button.scss +5 -5
  285. data/app/javascript/stylesheets/components/_form_item.scss +92 -0
  286. data/app/javascript/stylesheets/components/_image.scss +15 -15
  287. data/app/javascript/stylesheets/components/_input.scss +23 -113
  288. data/app/javascript/stylesheets/components/_layout.scss +27 -26
  289. data/app/javascript/stylesheets/components/_menu.scss +15 -15
  290. data/app/javascript/stylesheets/components/_modal.scss +13 -13
  291. data/app/javascript/stylesheets/components/_notification.scss +3 -3
  292. data/app/javascript/stylesheets/components/_popover.scss +1 -1
  293. data/app/javascript/stylesheets/components/_segmented.scss +3 -3
  294. data/app/javascript/stylesheets/components/_select.scss +6 -6
  295. data/app/javascript/stylesheets/components/_slider.scss +1 -1
  296. data/app/javascript/stylesheets/components/_spin.scss +2 -2
  297. data/app/javascript/stylesheets/components/_steps.scss +10 -10
  298. data/app/javascript/stylesheets/components/_switch.scss +11 -10
  299. data/app/javascript/stylesheets/components/_table.scss +6 -6
  300. data/app/javascript/stylesheets/components/_tag.scss +2 -2
  301. data/app/javascript/stylesheets/components/_tooltip.scss +4 -4
  302. data/app/javascript/stylesheets/components/_tree_select.scss +3 -3
  303. data/app/javascript/stylesheets/components/_typography.scss +3 -3
  304. data/app/javascript/stylesheets/components/_upload.scss +4 -4
  305. data/app/services/hakumi_components/component_handler.rb +95 -24
  306. data/app/services/hakumi_components/icon/loader.rb +84 -67
  307. data/app/services/hakumi_components/illustrations/loader.rb +35 -27
  308. data/app/views/hakumi/_alert.html.erb +4 -1
  309. data/app/views/hakumi/_drawer.html.erb +1 -1
  310. data/app/views/hakumi/_statistic.html.erb +11 -11
  311. data/lib/generators/hakumi_components/install_generator.rb +14 -1
  312. data/lib/hakumi_components/documentation/models.rb +290 -0
  313. data/lib/hakumi_components/documentation/node.rb +73 -0
  314. data/lib/hakumi_components/documentation.rb +139 -62
  315. data/lib/hakumi_components/engine.rb +17 -11
  316. data/lib/hakumi_components/file_size_checker.rb +215 -0
  317. data/lib/hakumi_components/locales/en.yml +115 -0
  318. data/lib/hakumi_components/rails/attribute_introspection.rb +39 -107
  319. data/lib/hakumi_components/rails/model_reflection.rb +154 -0
  320. data/lib/hakumi_components/rails/validation_introspection.rb +25 -73
  321. data/lib/hakumi_components/rails/validation_mapper.rb +148 -201
  322. data/lib/hakumi_components/rails.rb +2 -0
  323. data/lib/hakumi_components/stylesheet_ownership_checker.rb +191 -0
  324. data/lib/hakumi_components/types/form_field.rb +24 -0
  325. data/lib/hakumi_components/types/html.rb +28 -0
  326. data/lib/hakumi_components/types/rendering.rb +10 -0
  327. data/lib/hakumi_components/types/stimulus.rb +19 -0
  328. data/lib/hakumi_components/types/validation.rb +22 -0
  329. data/lib/hakumi_components/types.rb +13 -0
  330. data/lib/hakumi_components/version.rb +2 -1
  331. data/lib/hakumi_components.rb +26 -6
  332. data/lib/tasks/coverage.rake +1 -0
  333. metadata +100 -136
  334. data/sig/action_view/tag_builder.rbs +0 -24
  335. data/sig/active_support/concern_patch.rbs +0 -7
  336. data/sig/generators/hakumi_components/install_generator.rbs +0 -11
  337. data/sig/hakumi_components/admin_panel/component.rbs +0 -28
  338. data/sig/hakumi_components/affix/component.rbs +0 -44
  339. data/sig/hakumi_components/alert/component.rbs +0 -64
  340. data/sig/hakumi_components/anchor/component.rbs +0 -45
  341. data/sig/hakumi_components/anchor/link/component.rbs +0 -31
  342. data/sig/hakumi_components/autocomplete/component.rbs +0 -68
  343. data/sig/hakumi_components/avatar/component.rbs +0 -44
  344. data/sig/hakumi_components/badge/component.rbs +0 -41
  345. data/sig/hakumi_components/base_component.rbs +0 -82
  346. data/sig/hakumi_components/breadcrumb/component.rbs +0 -21
  347. data/sig/hakumi_components/breadcrumb/item/component.rbs +0 -36
  348. data/sig/hakumi_components/button/component.rbs +0 -56
  349. data/sig/hakumi_components/calendar/component.rbs +0 -41
  350. data/sig/hakumi_components/card/component.rbs +0 -50
  351. data/sig/hakumi_components/card/grid/component.rbs +0 -21
  352. data/sig/hakumi_components/card/meta/component.rbs +0 -25
  353. data/sig/hakumi_components/carousel/component.rbs +0 -88
  354. data/sig/hakumi_components/cascader/component.rbs +0 -52
  355. data/sig/hakumi_components/checkbox/component.rbs +0 -46
  356. data/sig/hakumi_components/checkbox/group/component.rbs +0 -34
  357. data/sig/hakumi_components/collapse/component.rbs +0 -57
  358. data/sig/hakumi_components/collapse/panel/component.rbs +0 -47
  359. data/sig/hakumi_components/color_picker/component.rbs +0 -80
  360. data/sig/hakumi_components/concerns/form_field.rbs +0 -89
  361. data/sig/hakumi_components/container/component.rbs +0 -37
  362. data/sig/hakumi_components/date_picker/component.rbs +0 -72
  363. data/sig/hakumi_components/date_picker/range_picker.rbs +0 -68
  364. data/sig/hakumi_components/date_picker/shared_rendering.rbs +0 -41
  365. data/sig/hakumi_components/descriptions/component.rbs +0 -59
  366. data/sig/hakumi_components/descriptions/item/component.rbs +0 -31
  367. data/sig/hakumi_components/divider/component.rbs +0 -39
  368. data/sig/hakumi_components/drawer/component.rbs +0 -66
  369. data/sig/hakumi_components/dropdown/component.rbs +0 -45
  370. data/sig/hakumi_components/dropdown/divider/component.rbs +0 -11
  371. data/sig/hakumi_components/dropdown/item/component.rbs +0 -45
  372. data/sig/hakumi_components/empty/component.rbs +0 -40
  373. data/sig/hakumi_components/flex/component.rbs +0 -47
  374. data/sig/hakumi_components/float_button/back_top/component.rbs +0 -45
  375. data/sig/hakumi_components/float_button/component.rbs +0 -80
  376. data/sig/hakumi_components/float_button/group/component.rbs +0 -95
  377. data/sig/hakumi_components/float_button/group_cluster/component.rbs +0 -60
  378. data/sig/hakumi_components/form/item/component.rbs +0 -39
  379. data/sig/hakumi_components/form_builder.rbs +0 -37
  380. data/sig/hakumi_components/grid/col/component.rbs +0 -50
  381. data/sig/hakumi_components/grid/row/component.rbs +0 -46
  382. data/sig/hakumi_components/icon/component.rbs +0 -56
  383. data/sig/hakumi_components/image/component.rbs +0 -56
  384. data/sig/hakumi_components/image/preview_group/component.rbs +0 -28
  385. data/sig/hakumi_components/input/component.rbs +0 -71
  386. data/sig/hakumi_components/input/password/component.rbs +0 -27
  387. data/sig/hakumi_components/input/text_area/component.rbs +0 -42
  388. data/sig/hakumi_components/input_number/component.rbs +0 -85
  389. data/sig/hakumi_components/layout/component.rbs +0 -21
  390. data/sig/hakumi_components/layout/content/component.rbs +0 -19
  391. data/sig/hakumi_components/layout/footer/component.rbs +0 -19
  392. data/sig/hakumi_components/layout/header/component.rbs +0 -19
  393. data/sig/hakumi_components/layout/sider/component.rbs +0 -19
  394. data/sig/hakumi_components/mentions/component.rbs +0 -75
  395. data/sig/hakumi_components/menu/component.rbs +0 -52
  396. data/sig/hakumi_components/menu/divider/component.rbs +0 -11
  397. data/sig/hakumi_components/menu/group/component.rbs +0 -20
  398. data/sig/hakumi_components/menu/item/component.rbs +0 -42
  399. data/sig/hakumi_components/menu/sub_menu/component.rbs +0 -37
  400. data/sig/hakumi_components/message/component.rbs +0 -50
  401. data/sig/hakumi_components/modal/component.rbs +0 -76
  402. data/sig/hakumi_components/modal/confirm/component.rbs +0 -32
  403. data/sig/hakumi_components/modal/error/component.rbs +0 -27
  404. data/sig/hakumi_components/modal/info/component.rbs +0 -27
  405. data/sig/hakumi_components/modal/success/component.rbs +0 -27
  406. data/sig/hakumi_components/modal/warning/component.rbs +0 -27
  407. data/sig/hakumi_components/notification/component.rbs +0 -64
  408. data/sig/hakumi_components/pagination/component.rbs +0 -113
  409. data/sig/hakumi_components/popconfirm/component.rbs +0 -52
  410. data/sig/hakumi_components/popover/component.rbs +0 -66
  411. data/sig/hakumi_components/progress/component.rbs +0 -201
  412. data/sig/hakumi_components/qr_code/component.rbs +0 -111
  413. data/sig/hakumi_components/radio/component.rbs +0 -55
  414. data/sig/hakumi_components/radio/group/component.rbs +0 -71
  415. data/sig/hakumi_components/rails/attribute_introspection.rbs +0 -16
  416. data/sig/hakumi_components/rails/validation_introspection.rbs +0 -18
  417. data/sig/hakumi_components/rails/validation_mapper.rbs +0 -53
  418. data/sig/hakumi_components/rails.rbs +0 -6
  419. data/sig/hakumi_components/rate/component.rbs +0 -56
  420. data/sig/hakumi_components/result/component.rbs +0 -65
  421. data/sig/hakumi_components/segmented/component.rbs +0 -72
  422. data/sig/hakumi_components/select/component.rbs +0 -73
  423. data/sig/hakumi_components/skeleton/avatar/component.rbs +0 -23
  424. data/sig/hakumi_components/skeleton/button/component.rbs +0 -24
  425. data/sig/hakumi_components/skeleton/component.rbs +0 -76
  426. data/sig/hakumi_components/skeleton/image/component.rbs +0 -22
  427. data/sig/hakumi_components/skeleton/input/component.rbs +0 -23
  428. data/sig/hakumi_components/skeleton/node/component.rbs +0 -21
  429. data/sig/hakumi_components/slider/component.rbs +0 -85
  430. data/sig/hakumi_components/space/compact/component.rbs +0 -21
  431. data/sig/hakumi_components/space/component.rbs +0 -47
  432. data/sig/hakumi_components/spin/component.rbs +0 -77
  433. data/sig/hakumi_components/splitter/component.rbs +0 -27
  434. data/sig/hakumi_components/splitter/panel/component.rbs +0 -36
  435. data/sig/hakumi_components/statistic/component.rbs +0 -97
  436. data/sig/hakumi_components/steps/component.rbs +0 -82
  437. data/sig/hakumi_components/steps/item/component.rbs +0 -29
  438. data/sig/hakumi_components/switch/component.rbs +0 -52
  439. data/sig/hakumi_components/table/column/component.rbs +0 -57
  440. data/sig/hakumi_components/table/column_group/component.rbs +0 -20
  441. data/sig/hakumi_components/table/component.rbs +0 -279
  442. data/sig/hakumi_components/table/concerns/columns.rbs +0 -95
  443. data/sig/hakumi_components/table/concerns/editable.rbs +0 -40
  444. data/sig/hakumi_components/table/concerns/ellipsis.rbs +0 -27
  445. data/sig/hakumi_components/table/concerns/fixed_columns.rbs +0 -33
  446. data/sig/hakumi_components/tabs/component.rbs +0 -66
  447. data/sig/hakumi_components/tabs/item/component.rbs +0 -29
  448. data/sig/hakumi_components/tag/component.rbs +0 -86
  449. data/sig/hakumi_components/tag/group/component.rbs +0 -24
  450. data/sig/hakumi_components/time_picker/component.rbs +0 -72
  451. data/sig/hakumi_components/timeline/component.rbs +0 -61
  452. data/sig/hakumi_components/timeline/item/component.rbs +0 -70
  453. data/sig/hakumi_components/tooltip/component.rbs +0 -73
  454. data/sig/hakumi_components/tour/component.rbs +0 -84
  455. data/sig/hakumi_components/transfer/component.rbs +0 -75
  456. data/sig/hakumi_components/tree/component.rbs +0 -126
  457. data/sig/hakumi_components/tree_select/component.rbs +0 -122
  458. data/sig/hakumi_components/typography/base_component.rbs +0 -57
  459. data/sig/hakumi_components/typography/link/component.rbs +0 -28
  460. data/sig/hakumi_components/typography/paragraph/component.rbs +0 -13
  461. data/sig/hakumi_components/typography/text/component.rbs +0 -10
  462. data/sig/hakumi_components/typography/title/component.rbs +0 -28
  463. data/sig/hakumi_components/upload/component.rbs +0 -78
  464. data/sig/hakumi_components.rbs +0 -96
  465. data/sig/rails/active_model/validations/comparison_validator.rbs +0 -6
  466. data/sig/rails.rbs +0 -18
  467. data/sig/view_component/base.rbs +0 -28
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Menu
5
- module Divider
6
- class Component < HakumiComponents::BaseComponent
7
- def call: () -> String
8
- end
9
- end
10
- end
11
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Menu
5
- module Group
6
- class Component < HakumiComponents::BaseComponent
7
- @label: String
8
- @html_options: hakumi_html_options
9
-
10
- def initialize: (label: String, **hakumi_html_options html_options) -> void
11
-
12
- attr_reader label: String
13
-
14
- def group_classes: () -> String
15
- def title_classes: () -> String
16
- def list_classes: () -> String
17
- end
18
- end
19
- end
20
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Menu
5
- module Item
6
- class Component < HakumiComponents::BaseComponent
7
- @key: (String | Symbol)
8
- @label: String?
9
- @icon: hakumi_icon?
10
- @disabled: bool
11
- @danger: bool
12
- @href: String?
13
- @target: String?
14
- @html_options: hakumi_html_options
15
-
16
- def initialize: (
17
- key: (String | Symbol),
18
- ?label: String?,
19
- ?icon: hakumi_icon?,
20
- ?disabled: bool,
21
- ?danger: bool,
22
- ?href: String?,
23
- ?target: String?,
24
- **hakumi_html_options html_options
25
- ) -> void
26
-
27
- attr_reader key: (String | Symbol)
28
- attr_reader label: String?
29
- attr_reader icon: hakumi_icon?
30
- attr_reader disabled: bool
31
- attr_reader danger: bool
32
- attr_reader href: String?
33
- attr_reader target: String?
34
-
35
- def item_classes: () -> String
36
- def link?: () -> bool
37
- def display_label: () -> String?
38
- def icon_component: () -> (HakumiComponents::Icon::Component | hakumi_icon | nil)
39
- end
40
- end
41
- end
42
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Menu
5
- module SubMenu
6
- class Component < HakumiComponents::BaseComponent
7
- @key: (String | Symbol)
8
- @label: String?
9
- @icon: hakumi_icon?
10
- @disabled: bool
11
- @mode: Symbol
12
- @html_options: hakumi_html_options
13
-
14
- def initialize: (
15
- key: (String | Symbol),
16
- ?label: String?,
17
- ?icon: hakumi_icon?,
18
- ?disabled: bool,
19
- ?mode: Symbol,
20
- **hakumi_html_options html_options
21
- ) -> void
22
-
23
- attr_reader key: (String | Symbol)
24
- attr_reader label: String?
25
- attr_reader icon: hakumi_icon?
26
- attr_reader disabled: bool
27
- attr_reader mode: Symbol
28
-
29
- def submenu_classes: () -> String
30
- def title_classes: () -> String
31
- def popup?: () -> bool
32
- def display_label: () -> String?
33
- def icon_component: () -> (HakumiComponents::Icon::Component | hakumi_icon | nil)
34
- end
35
- end
36
- end
37
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Message
5
- class Component < HakumiComponents::BaseComponent
6
- type message_type = :success | :info | :warning | :error | :loading
7
-
8
- TYPES: Array[message_type]
9
-
10
- # Extracts locals from controller params for dynamic rendering
11
- def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
12
-
13
- @message: String?
14
- @type: message_type?
15
- @duration: Numeric
16
- @key: String?
17
- @icon: hakumi_icon?
18
- @closable: bool
19
- @max_count: Integer?
20
- @top: Integer?
21
- @html_options: hakumi_html_options
22
-
23
- def initialize: (
24
- ?message: String?,
25
- ?type: message_type?,
26
- ?duration: Numeric?,
27
- ?key: String?,
28
- ?icon: hakumi_icon?,
29
- ?closable: bool,
30
- ?max_count: Integer?,
31
- ?top: Integer?,
32
- **hakumi_html_options html_options
33
- ) -> void
34
-
35
- def root_attributes: () -> hakumi_html_options
36
-
37
- def data_attributes: () -> hakumi_html_options
38
-
39
- def wrapper_classes: () -> String
40
-
41
- def inline_style: () -> String?
42
-
43
- private
44
-
45
- def initial_payload: () -> Hash[Symbol, untyped]?
46
-
47
- def validate_props!: () -> void
48
- end
49
- end
50
- end
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Modal
5
- class Component < HakumiComponents::BaseComponent
6
- # Extracts locals from controller params for dynamic rendering
7
- def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
8
-
9
- @open: bool
10
- @title: String?
11
- @width: Integer
12
- @centered: bool
13
- @footer: untyped
14
- @closable: bool
15
- @mask: bool
16
- @mask_closable: bool
17
- @keyboard: bool
18
- @on_ok: untyped
19
- @on_cancel: untyped
20
- @confirm_loading: bool
21
- @ok_text: String
22
- @cancel_text: String
23
- @ok_button_props: Hash[Symbol, untyped]
24
- @cancel_button_props: Hash[Symbol, untyped]
25
- @html_attributes: hakumi_html_options
26
-
27
- def initialize: (
28
- ?open: bool,
29
- ?title: String?,
30
- ?width: Integer,
31
- ?centered: bool,
32
- ?footer: untyped,
33
- ?closable: bool,
34
- ?mask: bool,
35
- ?mask_closable: bool,
36
- ?keyboard: bool,
37
- ?on_ok: untyped,
38
- ?on_cancel: untyped,
39
- ?confirm_loading: bool,
40
- ?ok_text: String,
41
- ?cancel_text: String,
42
- ?ok_button_props: Hash[Symbol, untyped],
43
- ?cancel_button_props: Hash[Symbol, untyped],
44
- **hakumi_html_options html_attributes
45
- ) -> void
46
-
47
- def call: () -> String
48
-
49
- private
50
-
51
- def classes: () -> String
52
-
53
- def style: () -> String?
54
-
55
- def data_attributes: () -> hakumi_html_options
56
-
57
- def render_mask: () -> String?
58
-
59
- def render_wrapper: () -> String
60
-
61
- def modal_classes: () -> String
62
-
63
- def modal_style: () -> String
64
-
65
- def render_close_icon: () -> String?
66
-
67
- def render_header: () -> String?
68
-
69
- def render_body: () -> String
70
-
71
- def render_footer: () -> String?
72
-
73
- def default_footer: () -> String
74
- end
75
- end
76
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Modal
5
- module Confirm
6
- class Component < HakumiComponents::BaseComponent
7
- # params is ActionController::Parameters, returns hash with specific string/bool values
8
- def self.extract_controller_locals: (untyped params) -> Hash[Symbol, (String | bool)]
9
-
10
- @id: String
11
- @title: String
12
- @message: String?
13
- @open: bool
14
- @ok_text: String
15
- @cancel_text: String
16
- @html_attributes: hakumi_html_options
17
-
18
- def initialize: (
19
- id: String,
20
- ?title: String,
21
- ?message: String?,
22
- ?open: bool,
23
- ?ok_text: String,
24
- ?cancel_text: String,
25
- **hakumi_html_options html_attributes
26
- ) -> void
27
-
28
- def call: () -> String
29
- end
30
- end
31
- end
32
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Modal
5
- module Error
6
- class Component < HakumiComponents::BaseComponent
7
- @id: String
8
- @title: String
9
- @message: String?
10
- @open: bool
11
- @ok_text: String
12
- @html_attributes: hakumi_html_options
13
-
14
- def initialize: (
15
- id: String,
16
- ?title: String,
17
- ?message: String?,
18
- ?open: bool,
19
- ?ok_text: String,
20
- **hakumi_html_options html_attributes
21
- ) -> void
22
-
23
- def call: () -> String
24
- end
25
- end
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Modal
5
- module Info
6
- class Component < HakumiComponents::BaseComponent
7
- @id: String
8
- @title: String
9
- @message: String?
10
- @open: bool
11
- @ok_text: String
12
- @html_attributes: hakumi_html_options
13
-
14
- def initialize: (
15
- id: String,
16
- ?title: String,
17
- ?message: String?,
18
- ?open: bool,
19
- ?ok_text: String,
20
- **hakumi_html_options html_attributes
21
- ) -> void
22
-
23
- def call: () -> String
24
- end
25
- end
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Modal
5
- module Success
6
- class Component < HakumiComponents::BaseComponent
7
- @id: String
8
- @title: String
9
- @message: String?
10
- @open: bool
11
- @ok_text: String
12
- @html_attributes: hakumi_html_options
13
-
14
- def initialize: (
15
- id: String,
16
- ?title: String,
17
- ?message: String?,
18
- ?open: bool,
19
- ?ok_text: String,
20
- **hakumi_html_options html_attributes
21
- ) -> void
22
-
23
- def call: () -> String
24
- end
25
- end
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Modal
5
- module Warning
6
- class Component < HakumiComponents::BaseComponent
7
- @id: String
8
- @title: String
9
- @message: String?
10
- @open: bool
11
- @ok_text: String
12
- @html_attributes: hakumi_html_options
13
-
14
- def initialize: (
15
- id: String,
16
- ?title: String,
17
- ?message: String?,
18
- ?open: bool,
19
- ?ok_text: String,
20
- **hakumi_html_options html_attributes
21
- ) -> void
22
-
23
- def call: () -> String
24
- end
25
- end
26
- end
27
- end
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Notification
5
- class Component < HakumiComponents::BaseComponent
6
- type notification_type = :success | :info | :warning | :error
7
- type notification_placement = :top | :topLeft | :topRight | :bottom | :bottomLeft | :bottomRight
8
-
9
- TYPES: Array[notification_type]
10
- PLACEMENTS: Array[String]
11
-
12
- # Extracts locals from controller params for dynamic rendering
13
- def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
14
-
15
- @title: String?
16
- @description: String?
17
- @type: notification_type?
18
- @duration: Numeric?
19
- @key: String?
20
- @placement: String?
21
- @icon: hakumi_icon?
22
- @close_icon: hakumi_icon?
23
- @btn: untyped
24
- @max_count: Integer?
25
- @top: Integer?
26
- @bottom: Integer?
27
- @pause_on_hover: bool?
28
- @show_progress: bool?
29
- @stack_threshold: Integer?
30
- @html_options: hakumi_html_options
31
-
32
- def initialize: (
33
- ?title: String?,
34
- ?description: String?,
35
- ?type: notification_type?,
36
- ?duration: Numeric?,
37
- ?key: String?,
38
- ?placement: String?,
39
- ?icon: hakumi_icon?,
40
- ?close_icon: hakumi_icon?,
41
- ?btn: untyped,
42
- ?max_count: Integer?,
43
- ?top: Integer?,
44
- ?bottom: Integer?,
45
- ?pause_on_hover: bool?,
46
- ?show_progress: bool?,
47
- ?stack_threshold: Integer?,
48
- **hakumi_html_options html_options
49
- ) -> void
50
-
51
- def root_attributes: () -> hakumi_html_options
52
-
53
- def data_attributes: () -> hakumi_html_options
54
-
55
- def call: () -> String
56
-
57
- private
58
-
59
- def initial_payload: () -> Hash[Symbol, untyped]
60
-
61
- def validate_props!: () -> void
62
- end
63
- end
64
- end
@@ -1,113 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Pagination
5
- class Component < HakumiComponents::BaseComponent
6
- type pagination_size = :default | :small
7
- type pagination_align = :start | :center | :end
8
-
9
- SIZES: Array[pagination_size]
10
- ALIGNS: Array[pagination_align]
11
- DEFAULT_PAGE_SIZE_OPTIONS: Array[Integer]
12
-
13
- @total: Integer
14
- @current: Integer
15
- @page_size: Integer
16
- @size: pagination_size
17
- @align: pagination_align
18
- @disabled: bool
19
- @simple: bool
20
- @show_size_changer: bool?
21
- @show_quick_jumper: bool
22
- @show_total: (bool | String | Proc)?
23
- @page_size_options: Array[Integer]
24
- @hide_on_single_page: bool
25
- @prev_text: String?
26
- @next_text: String?
27
- @href: String?
28
- @page_param: Symbol
29
- @per_page_param: Symbol
30
- @turbo_frame: String?
31
- @turbo_action: String?
32
- @preserve_params: untyped
33
- @html_options: hakumi_html_options
34
-
35
- def initialize: (
36
- total: Integer,
37
- ?current: Integer,
38
- ?page_size: Integer,
39
- ?size: pagination_size,
40
- ?align: pagination_align,
41
- ?disabled: bool,
42
- ?simple: bool,
43
- ?show_size_changer: bool?,
44
- ?show_quick_jumper: bool,
45
- ?show_total: (bool | String | Proc)?,
46
- ?page_size_options: Array[Integer],
47
- ?hide_on_single_page: bool,
48
- ?prev_text: String?,
49
- ?next_text: String?,
50
- ?href: String?,
51
- ?page_param: Symbol,
52
- ?per_page_param: Symbol,
53
- ?turbo_frame: String?,
54
- ?turbo_action: String?,
55
- ?preserve_params: untyped,
56
- **hakumi_html_options html_options
57
- ) -> void
58
-
59
- def render?: () -> bool
60
-
61
- def total_pages: () -> Integer
62
-
63
- def pagination_classes: () -> String
64
-
65
- def stimulus_controller: () -> String
66
-
67
- def stimulus_values: () -> Hash[Symbol, untyped]
68
-
69
- def wrapper_attributes: () -> hakumi_html_options
70
-
71
- def stimulus_data_attributes: () -> Hash[String, untyped]
72
-
73
- def prev_disabled?: () -> bool
74
-
75
- def next_disabled?: () -> bool
76
-
77
- def show_size_changer?: () -> (bool | nil)
78
-
79
- def page_items: () -> Array[Hash[Symbol, untyped]]
80
-
81
- def prev_icon: () -> HakumiComponents::Icon::Component
82
-
83
- def next_icon: () -> HakumiComponents::Icon::Component
84
-
85
- def jump_prev_icon: () -> HakumiComponents::Icon::Component
86
-
87
- def jump_next_icon: () -> HakumiComponents::Icon::Component
88
-
89
- def ellipsis_icon: () -> HakumiComponents::Icon::Component
90
-
91
- def total_text: () -> (bool | String | Proc | nil)
92
-
93
- attr_reader current: Integer
94
- attr_reader page_size: Integer
95
- attr_reader total: Integer
96
- attr_reader disabled: bool
97
- attr_reader simple: bool
98
- attr_reader show_quick_jumper: bool
99
- attr_reader page_size_options: Array[Integer]
100
- attr_reader prev_text: String?
101
- attr_reader next_text: String?
102
- attr_reader href: String?
103
- attr_reader page_param: Symbol
104
- attr_reader per_page_param: Symbol
105
- attr_reader turbo_frame: String?
106
- attr_reader turbo_action: String?
107
-
108
- private
109
-
110
- def validate_props!: () -> void
111
- end
112
- end
113
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Popconfirm
5
- class Component < HakumiComponents::BaseComponent
6
- type popconfirm_placement = :top | :topLeft | :topRight | :bottom | :bottomLeft | :bottomRight | :left | :leftTop | :leftBottom | :right | :rightTop | :rightBottom | :auto
7
- type popconfirm_trigger = :click | :hover | :focus
8
-
9
- PLACEMENTS: Array[String]
10
- TRIGGERS: Array[String]
11
-
12
- # Extracts locals from controller params for dynamic rendering
13
- def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
14
-
15
- @title: String?
16
- @description: String?
17
- @ok_text: String
18
- @cancel_text: String
19
- @ok_type: Symbol
20
- @placement: String
21
- @trigger: String
22
- @disabled: bool
23
- @show_cancel: bool
24
- @icon: hakumi_icon?
25
- @auto_adjust_overflow: bool
26
- @html_options: hakumi_html_options
27
-
28
- def initialize: (
29
- ?title: String?,
30
- ?description: String?,
31
- ?ok_text: String,
32
- ?cancel_text: String,
33
- ?ok_type: Symbol,
34
- ?placement: String,
35
- ?trigger: String,
36
- ?disabled: bool,
37
- ?show_cancel: bool,
38
- ?icon: hakumi_icon?,
39
- ?auto_adjust_overflow: bool,
40
- **hakumi_html_options html_options
41
- ) -> void
42
-
43
- def wrapper_classes: () -> String
44
-
45
- def data_attributes: () -> hakumi_html_options
46
-
47
- private
48
-
49
- def validate_props!: () -> void
50
- end
51
- end
52
- end
@@ -1,66 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module HakumiComponents
4
- module Popover
5
- class Component < HakumiComponents::BaseComponent
6
- type popover_placement = "top" | "topLeft" | "topRight" | "bottom" | "bottomLeft" | "bottomRight" | "left" | "leftTop" | "leftBottom" | "right" | "rightTop" | "rightBottom" | "auto"
7
- type popover_trigger = "click" | "hover" | "focus"
8
-
9
- PLACEMENTS: Array[popover_placement]
10
- TRIGGERS: Array[popover_trigger]
11
-
12
- @title: String?
13
- @body: untyped
14
- @trigger_body: untyped
15
- @placement: popover_placement
16
- @trigger: (popover_trigger | Array[popover_trigger])
17
- @open: bool?
18
- @arrow: bool
19
- @disabled: bool
20
- @auto_adjust_overflow: bool
21
- @html_options: hakumi_html_options
22
- @wrapper_id: String?
23
-
24
- def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
25
-
26
- def initialize: (
27
- ?title: String?,
28
- ?body: untyped,
29
- ?trigger_body: untyped,
30
- ?placement: popover_placement,
31
- ?trigger: (popover_trigger | Array[popover_trigger]),
32
- ?open: bool?,
33
- ?arrow: bool,
34
- ?disabled: bool,
35
- ?auto_adjust_overflow: bool,
36
- **hakumi_html_options html_options
37
- ) -> void
38
-
39
- def wrapper_classes: () -> String
40
-
41
- def wrapper_id: () -> String?
42
-
43
- def popover_dom_id: () -> String?
44
-
45
- def popover_classes: () -> String
46
-
47
- def data_attributes: () -> hakumi_html_options
48
-
49
- def trigger_content: () -> untyped
50
-
51
- def render_title: () -> untyped
52
-
53
- def render_popover_content: () -> untyped
54
-
55
- def has_title?: () -> bool
56
-
57
- def has_popover_content?: () -> bool
58
-
59
- private
60
-
61
- def normalized_triggers: () -> Array[String]
62
-
63
- def validate_props!: () -> void
64
- end
65
- end
66
- end