hakumi_components 0.1.17.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 (647) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -3
  3. data/README.md +218 -369
  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 → hakumi_components}/admin_panel/component.html.erb +2 -2
  7. data/app/components/hakumi_components/admin_panel/component.rb +50 -0
  8. data/app/components/hakumi_components/affix/component.rb +112 -0
  9. data/app/components/{hakumi → hakumi_components}/alert/component.html.erb +3 -3
  10. data/app/components/hakumi_components/alert/component.rb +134 -0
  11. data/app/components/hakumi_components/anchor/component.rb +88 -0
  12. data/app/components/{hakumi → hakumi_components}/anchor/link/component.html.erb +1 -1
  13. data/app/components/hakumi_components/anchor/link/component.rb +53 -0
  14. data/app/components/hakumi_components/autocomplete/component.html.erb +94 -0
  15. data/app/components/hakumi_components/autocomplete/component.rb +228 -0
  16. data/app/components/hakumi_components/avatar/component.rb +124 -0
  17. data/app/components/hakumi_components/badge/component.rb +139 -0
  18. data/app/components/hakumi_components/base_component.rb +391 -0
  19. data/app/components/hakumi_components/breadcrumb/component.rb +38 -0
  20. data/app/components/hakumi_components/breadcrumb/item/component.html.erb +17 -0
  21. data/app/components/hakumi_components/breadcrumb/item/component.rb +83 -0
  22. data/app/components/hakumi_components/breadcrumb/item/menu_entry.rb +71 -0
  23. data/app/components/hakumi_components/button/component.rb +163 -0
  24. data/app/components/{hakumi → hakumi_components}/calendar/component.html.erb +24 -24
  25. data/app/components/hakumi_components/calendar/component.rb +471 -0
  26. data/app/components/hakumi_components/calendar/day_cell.rb +62 -0
  27. data/app/components/hakumi_components/calendar/display_model.rb +237 -0
  28. data/app/components/hakumi_components/calendar/event_entry.rb +54 -0
  29. data/app/components/hakumi_components/calendar/locale_pack.rb +28 -0
  30. data/app/components/hakumi_components/calendar/panel_entry.rb +48 -0
  31. data/app/components/hakumi_components/calendar/week_row.rb +28 -0
  32. data/app/components/{hakumi → hakumi_components}/card/component.html.erb +2 -2
  33. data/app/components/hakumi_components/card/component.rb +121 -0
  34. data/app/components/hakumi_components/card/grid/component.html.erb +3 -0
  35. data/app/components/hakumi_components/card/grid/component.rb +43 -0
  36. data/app/components/hakumi_components/card/meta/component.html.erb +23 -0
  37. data/app/components/hakumi_components/card/meta/component.rb +64 -0
  38. data/app/components/hakumi_components/carousel/autoplay_config.rb +27 -0
  39. data/app/components/{hakumi → hakumi_components}/carousel/component.html.erb +2 -2
  40. data/app/components/hakumi_components/carousel/component.rb +165 -0
  41. data/app/components/hakumi_components/carousel/dots_config.rb +36 -0
  42. data/app/components/hakumi_components/cascader/component.html.erb +59 -0
  43. data/app/components/hakumi_components/cascader/component.rb +168 -0
  44. data/app/components/{hakumi → hakumi_components}/checkbox/component.html.erb +5 -5
  45. data/app/components/hakumi_components/checkbox/component.rb +98 -0
  46. data/app/components/hakumi_components/checkbox/group/component.html.erb +12 -0
  47. data/app/components/hakumi_components/checkbox/group/component.rb +91 -0
  48. data/app/components/hakumi_components/checkbox/group/option.rb +34 -0
  49. data/app/components/{hakumi → hakumi_components}/collapse/component.html.erb +1 -1
  50. data/app/components/hakumi_components/collapse/component.rb +133 -0
  51. data/app/components/hakumi_components/collapse/panel/component.rb +108 -0
  52. data/app/components/{hakumi → hakumi_components}/color_picker/component.html.erb +21 -22
  53. data/app/components/hakumi_components/color_picker/component.rb +279 -0
  54. data/app/components/hakumi_components/color_picker/preset_group.rb +27 -0
  55. data/app/components/hakumi_components/concerns/form_field.rb +236 -0
  56. data/app/components/hakumi_components/concerns/form_field_contract.rb +57 -0
  57. data/app/components/hakumi_components/concerns/form_field_interface.rb +16 -0
  58. data/app/components/hakumi_components/concerns/input_control.rb +111 -0
  59. data/app/components/hakumi_components/concerns/input_control_contract.rb +47 -0
  60. data/app/components/hakumi_components/concerns/input_control_interface.rb +34 -0
  61. data/app/components/hakumi_components/concerns/selection_control.rb +122 -0
  62. data/app/components/hakumi_components/concerns/selection_control_contract.rb +47 -0
  63. data/app/components/hakumi_components/concerns/selection_control_interface.rb +34 -0
  64. data/app/components/{hakumi → hakumi_components}/container/component.rb +31 -16
  65. data/app/components/{hakumi → hakumi_components}/date_picker/component.html.erb +4 -6
  66. data/app/components/hakumi_components/date_picker/component.rb +254 -0
  67. data/app/components/{hakumi → hakumi_components}/date_picker/range_picker.html.erb +4 -4
  68. data/app/components/hakumi_components/date_picker/range_picker.rb +267 -0
  69. data/app/components/hakumi_components/date_picker/shared_rendering.rb +289 -0
  70. data/app/components/{hakumi → hakumi_components}/descriptions/component.html.erb +6 -6
  71. data/app/components/hakumi_components/descriptions/component.rb +219 -0
  72. data/app/components/hakumi_components/descriptions/item/component.rb +52 -0
  73. data/app/components/hakumi_components/divider/component.rb +86 -0
  74. data/app/components/{hakumi → hakumi_components}/drawer/component.html.erb +3 -3
  75. data/app/components/hakumi_components/drawer/component.rb +191 -0
  76. data/app/components/hakumi_components/dropdown/component.rb +94 -0
  77. data/app/components/{hakumi → hakumi_components}/dropdown/divider/component.rb +6 -2
  78. data/app/components/hakumi_components/dropdown/item/component.rb +73 -0
  79. data/app/components/{hakumi → hakumi_components}/empty/component.rb +68 -33
  80. data/app/components/hakumi_components/flex/component.rb +96 -0
  81. data/app/components/hakumi_components/float_button/back_top/component.rb +86 -0
  82. data/app/components/hakumi_components/float_button/component.rb +289 -0
  83. data/app/components/hakumi_components/float_button/group/component.rb +214 -0
  84. data/app/components/hakumi_components/float_button/group_cluster/component.rb +133 -0
  85. data/app/components/hakumi_components/float_button/group_spec.rb +259 -0
  86. data/app/components/hakumi_components/float_button/item_spec.rb +115 -0
  87. data/app/components/hakumi_components/float_button/position_config.rb +68 -0
  88. data/app/components/{hakumi → hakumi_components}/form/item/component.rb +36 -29
  89. data/app/components/hakumi_components/grid/col/component.rb +169 -0
  90. data/app/components/hakumi_components/grid/row/component.rb +97 -0
  91. data/app/components/{hakumi → hakumi_components}/icon/component.rb +53 -53
  92. data/app/components/{hakumi → hakumi_components}/image/component.html.erb +17 -17
  93. data/app/components/hakumi_components/image/component.rb +175 -0
  94. data/app/components/{hakumi → hakumi_components}/image/preview_group/component.html.erb +10 -10
  95. data/app/components/hakumi_components/image/preview_group/component.rb +75 -0
  96. data/app/components/hakumi_components/image/preview_group/item.rb +48 -0
  97. data/app/components/{hakumi → hakumi_components}/input/component.html.erb +1 -1
  98. data/app/components/hakumi_components/input/component.rb +261 -0
  99. data/app/components/hakumi_components/input/password/component.rb +84 -0
  100. data/app/components/{hakumi → hakumi_components}/input/text_area/component.html.erb +2 -2
  101. data/app/components/hakumi_components/input/text_area/component.rb +178 -0
  102. data/app/components/{hakumi → hakumi_components}/input_number/component.html.erb +9 -9
  103. data/app/components/hakumi_components/input_number/component.rb +280 -0
  104. data/app/components/hakumi_components/layout/component.html.erb +1 -0
  105. data/app/components/hakumi_components/layout/component.rb +28 -0
  106. data/app/components/hakumi_components/layout/content/component.html.erb +1 -0
  107. data/app/components/hakumi_components/layout/content/component.rb +29 -0
  108. data/app/components/hakumi_components/layout/footer/component.html.erb +1 -0
  109. data/app/components/hakumi_components/layout/footer/component.rb +29 -0
  110. data/app/components/hakumi_components/layout/header/component.html.erb +1 -0
  111. data/app/components/hakumi_components/layout/header/component.rb +29 -0
  112. data/app/components/hakumi_components/layout/sider/component.html.erb +1 -0
  113. data/app/components/hakumi_components/layout/sider/component.rb +90 -0
  114. data/app/components/hakumi_components/mentions/coercion.rb +46 -0
  115. data/app/components/{hakumi → hakumi_components}/mentions/component.html.erb +6 -6
  116. data/app/components/hakumi_components/mentions/component.rb +229 -0
  117. data/app/components/hakumi_components/mentions/option.rb +30 -0
  118. data/app/components/hakumi_components/menu/component.rb +117 -0
  119. data/app/components/{hakumi → hakumi_components}/menu/divider/component.rb +6 -2
  120. data/app/components/hakumi_components/menu/group/component.rb +48 -0
  121. data/app/components/hakumi_components/menu/item/component.rb +70 -0
  122. data/app/components/hakumi_components/menu/sub_menu/component.rb +104 -0
  123. data/app/components/hakumi_components/message/component.rb +141 -0
  124. data/app/components/{hakumi → hakumi_components}/modal/component.html.erb +7 -7
  125. data/app/components/hakumi_components/modal/component.rb +152 -0
  126. data/app/components/hakumi_components/modal/confirm/component.html.erb +23 -0
  127. data/app/components/hakumi_components/modal/confirm/component.rb +87 -0
  128. data/app/components/hakumi_components/modal/error/component.rb +20 -0
  129. data/app/components/hakumi_components/modal/info/component.rb +17 -0
  130. data/app/components/hakumi_components/modal/status_component.rb +150 -0
  131. data/app/components/hakumi_components/modal/success/component.rb +17 -0
  132. data/app/components/hakumi_components/modal/warning/component.rb +26 -0
  133. data/app/components/hakumi_components/notification/component.rb +160 -0
  134. data/app/components/{hakumi → hakumi_components}/pagination/component.html.erb +8 -12
  135. data/app/components/hakumi_components/pagination/component.rb +238 -0
  136. data/app/components/hakumi_components/pagination/page_item.rb +49 -0
  137. data/app/components/{hakumi → hakumi_components}/popconfirm/component.html.erb +2 -2
  138. data/app/components/hakumi_components/popconfirm/component.rb +120 -0
  139. data/app/components/{hakumi → hakumi_components}/popover/component.html.erb +2 -2
  140. data/app/components/hakumi_components/popover/component.rb +196 -0
  141. data/app/components/hakumi_components/progress/attribute_renderer.rb +354 -0
  142. data/app/components/hakumi_components/progress/circle_geometry.rb +76 -0
  143. data/app/components/{hakumi → hakumi_components}/progress/component.html.erb +19 -18
  144. data/app/components/hakumi_components/progress/component.rb +393 -0
  145. data/app/components/hakumi_components/progress/controller_locals_parser.rb +130 -0
  146. data/app/components/hakumi_components/progress/info_tooltip_policy.rb +39 -0
  147. data/app/components/hakumi_components/progress/info_value.rb +75 -0
  148. data/app/components/hakumi_components/progress/status_state.rb +31 -0
  149. data/app/components/hakumi_components/progress/steps_renderer.rb +149 -0
  150. data/app/components/hakumi_components/progress/stroke_gradient_value.rb +90 -0
  151. data/app/components/hakumi_components/qr_code/component.rb +405 -0
  152. data/app/components/{hakumi → hakumi_components}/radio/component.html.erb +3 -3
  153. data/app/components/hakumi_components/radio/component.rb +113 -0
  154. data/app/components/{hakumi → hakumi_components}/radio/group/component.html.erb +10 -10
  155. data/app/components/hakumi_components/radio/group/component.rb +181 -0
  156. data/app/components/hakumi_components/radio/group/option.rb +43 -0
  157. data/app/components/{hakumi → hakumi_components}/rate/component.html.erb +2 -2
  158. data/app/components/{hakumi → hakumi_components}/rate/component.rb +58 -12
  159. data/app/components/hakumi_components/result/component.rb +175 -0
  160. data/app/components/{hakumi → hakumi_components}/segmented/component.html.erb +1 -1
  161. data/app/components/hakumi_components/segmented/component.rb +232 -0
  162. data/app/components/hakumi_components/segmented/option.rb +191 -0
  163. data/app/components/{hakumi → hakumi_components}/select/component.html.erb +22 -22
  164. data/app/components/hakumi_components/select/component.rb +176 -0
  165. data/app/components/hakumi_components/selection_control/coercion.rb +161 -0
  166. data/app/components/hakumi_components/selection_control/entry.rb +22 -0
  167. data/app/components/hakumi_components/selection_control/option.rb +42 -0
  168. data/app/components/hakumi_components/selection_control/option_group.rb +34 -0
  169. data/app/components/hakumi_components/selection_control/tree_node.rb +123 -0
  170. data/app/components/hakumi_components/skeleton/avatar/component.rb +88 -0
  171. data/app/components/hakumi_components/skeleton/avatar_config.rb +79 -0
  172. data/app/components/hakumi_components/skeleton/button/component.rb +77 -0
  173. data/app/components/hakumi_components/skeleton/component.rb +186 -0
  174. data/app/components/{hakumi → hakumi_components}/skeleton/image/component.html.erb +1 -1
  175. data/app/components/hakumi_components/skeleton/image/component.rb +104 -0
  176. data/app/components/hakumi_components/skeleton/input/component.rb +66 -0
  177. data/app/components/hakumi_components/skeleton/node/component.rb +59 -0
  178. data/app/components/hakumi_components/skeleton/paragraph_config.rb +92 -0
  179. data/app/components/hakumi_components/skeleton/title_config.rb +31 -0
  180. data/app/components/{hakumi → hakumi_components}/slider/component.html.erb +11 -11
  181. data/app/components/hakumi_components/slider/component.rb +347 -0
  182. data/app/components/hakumi_components/slider/mark.rb +27 -0
  183. data/app/components/hakumi_components/space/compact/component.html.erb +1 -0
  184. data/app/components/hakumi_components/space/compact/component.rb +52 -0
  185. data/app/components/{hakumi → hakumi_components}/space/component.html.erb +1 -1
  186. data/app/components/hakumi_components/space/component.rb +109 -0
  187. data/app/components/hakumi_components/spin/component.rb +270 -0
  188. data/app/components/hakumi_components/splitter/component.html.erb +9 -0
  189. data/app/components/hakumi_components/splitter/component.rb +71 -0
  190. data/app/components/hakumi_components/splitter/panel/component.html.erb +1 -0
  191. data/app/components/hakumi_components/splitter/panel/component.rb +98 -0
  192. data/app/components/hakumi_components/statistic/component.rb +371 -0
  193. data/app/components/{hakumi → hakumi_components}/steps/component.html.erb +4 -4
  194. data/app/components/hakumi_components/steps/component.rb +177 -0
  195. data/app/components/hakumi_components/steps/item/component.rb +130 -0
  196. data/app/components/{hakumi → hakumi_components}/switch/component.html.erb +2 -3
  197. data/app/components/hakumi_components/switch/component.rb +150 -0
  198. data/app/components/hakumi_components/table/column/component.rb +137 -0
  199. data/app/components/hakumi_components/table/column_definition.rb +181 -0
  200. data/app/components/{hakumi → hakumi_components}/table/column_group/component.rb +35 -24
  201. data/app/components/{hakumi → hakumi_components}/table/component.html.erb +22 -31
  202. data/app/components/hakumi_components/table/component.rb +470 -0
  203. data/app/components/hakumi_components/table/concerns/attribute_helpers.rb +22 -0
  204. data/app/components/hakumi_components/table/concerns/cell_rendering.rb +277 -0
  205. data/app/components/hakumi_components/table/concerns/columns.rb +421 -0
  206. data/app/components/hakumi_components/table/concerns/editable.rb +68 -0
  207. data/app/components/hakumi_components/table/concerns/ellipsis.rb +64 -0
  208. data/app/components/hakumi_components/table/concerns/fixed_columns.rb +94 -0
  209. data/app/components/hakumi_components/table/concerns/surface_rendering.rb +365 -0
  210. data/app/components/hakumi_components/table/configs.rb +518 -0
  211. data/app/components/hakumi_components/table/definition_types.rb +40 -0
  212. data/app/components/hakumi_components/table/display_rows.rb +56 -0
  213. data/app/components/hakumi_components/table/ellipsis_config.rb +143 -0
  214. data/app/components/hakumi_components/table/fixed_offset.rb +36 -0
  215. data/app/components/hakumi_components/table/header_cell.rb +23 -0
  216. data/app/components/hakumi_components/table/row_record.rb +60 -0
  217. data/app/components/hakumi_components/table/row_render_state.rb +85 -0
  218. data/app/components/{hakumi → hakumi_components}/tabs/component.html.erb +11 -11
  219. data/app/components/hakumi_components/tabs/component.rb +246 -0
  220. data/app/components/hakumi_components/tabs/indicator_config.rb +34 -0
  221. data/app/components/hakumi_components/tabs/item/component.rb +147 -0
  222. data/app/components/hakumi_components/tag/component.rb +282 -0
  223. data/app/components/{hakumi → hakumi_components}/tag/group/component.rb +20 -8
  224. data/app/components/{hakumi → hakumi_components}/time_picker/component.html.erb +10 -10
  225. data/app/components/{hakumi → hakumi_components}/time_picker/component.rb +75 -21
  226. data/app/components/hakumi_components/timeline/component.html.erb +8 -0
  227. data/app/components/hakumi_components/timeline/component.rb +301 -0
  228. data/app/components/{hakumi → hakumi_components}/timeline/item/component.html.erb +2 -2
  229. data/app/components/hakumi_components/timeline/item/component.rb +198 -0
  230. data/app/components/{hakumi → hakumi_components}/tooltip/component.html.erb +1 -1
  231. data/app/components/hakumi_components/tooltip/component.rb +146 -0
  232. data/app/components/hakumi_components/tour/component.rb +183 -0
  233. data/app/components/hakumi_components/tour/step.rb +86 -0
  234. data/app/components/hakumi_components/transfer/coercion.rb +66 -0
  235. data/app/components/hakumi_components/transfer/component.html.erb +204 -0
  236. data/app/components/hakumi_components/transfer/component.rb +395 -0
  237. data/app/components/hakumi_components/transfer/item.rb +54 -0
  238. data/app/components/hakumi_components/transfer/operations.rb +31 -0
  239. data/app/components/{hakumi → hakumi_components}/tree/component.html.erb +1 -1
  240. data/app/components/hakumi_components/tree/component.rb +342 -0
  241. data/app/components/hakumi_components/tree/concerns/node_rendering.rb +365 -0
  242. data/app/components/hakumi_components/tree/node.rb +276 -0
  243. data/app/components/{hakumi → hakumi_components}/tree_select/component.html.erb +27 -13
  244. data/app/components/hakumi_components/tree_select/component.rb +270 -0
  245. data/app/components/hakumi_components/typography/base_component.rb +142 -0
  246. data/app/components/hakumi_components/typography/link/component.rb +91 -0
  247. data/app/components/{hakumi → hakumi_components}/typography/paragraph/component.rb +7 -1
  248. data/{sig/hakumi/typography/text/component.rbs → app/components/hakumi_components/typography/text/component.rb} +3 -1
  249. data/app/components/hakumi_components/typography/title/component.rb +84 -0
  250. data/app/components/hakumi_components/upload/component.html.erb +135 -0
  251. data/app/components/hakumi_components/upload/component.rb +367 -0
  252. data/app/components/hakumi_components/upload/file_entry.rb +53 -0
  253. data/app/controllers/{hakumi → hakumi_components}/components_controller.rb +3 -2
  254. data/app/form_builders/hakumi_components/form_builder/contracts.rb +55 -0
  255. data/app/form_builders/hakumi_components/form_builder/field_context.rb +43 -0
  256. data/app/form_builders/hakumi_components/form_builder/model_binding.rb +163 -0
  257. data/app/form_builders/hakumi_components/form_builder.rb +403 -0
  258. data/app/helpers/hakumi_components/form_helper.rb +43 -0
  259. data/app/javascript/hakumi_components/controllers/hakumi/admin_panel_controller.js +5 -7
  260. data/app/javascript/hakumi_components/controllers/hakumi/back_top_controller.js +1 -1
  261. data/app/javascript/hakumi_components/controllers/hakumi/button_controller.js +108 -2
  262. data/app/javascript/hakumi_components/controllers/hakumi/calendar_controller.js +183 -95
  263. data/app/javascript/hakumi_components/controllers/hakumi/color_picker_controller.js +23 -285
  264. data/app/javascript/hakumi_components/controllers/hakumi/date_picker_controller.js +274 -262
  265. data/app/javascript/hakumi_components/controllers/hakumi/float_button_group_controller.js +2 -2
  266. data/app/javascript/hakumi_components/controllers/hakumi/message_controller.js +4 -2
  267. data/app/javascript/hakumi_components/controllers/hakumi/modal_controller.js +119 -125
  268. data/app/javascript/hakumi_components/controllers/hakumi/table/editable.js +291 -0
  269. data/app/javascript/hakumi_components/controllers/hakumi/table_controller.js +166 -366
  270. data/app/javascript/hakumi_components/controllers/hakumi/tabs_controller.js +8 -2
  271. data/app/javascript/hakumi_components/controllers/hakumi/tag_controller.js +27 -25
  272. data/app/javascript/hakumi_components/controllers/hakumi/tag_group_controller.js +19 -18
  273. data/app/javascript/hakumi_components/controllers/hakumi/theme_controller.js +116 -117
  274. data/app/javascript/hakumi_components/controllers/hakumi/transfer_controller.js +17 -1
  275. data/app/javascript/hakumi_components/controllers/hakumi/tree_controller.js +363 -78
  276. data/app/javascript/hakumi_components/controllers/hakumi/typography_controller.js +3 -3
  277. data/app/javascript/hakumi_components/controllers/hakumi/upload_controller.js +320 -204
  278. data/app/javascript/hakumi_components/core/render_component.js +37 -11
  279. data/app/javascript/hakumi_components/utils/color_helper.js +262 -0
  280. data/app/javascript/stylesheets/_base.scss +9 -0
  281. data/app/javascript/stylesheets/_hakumi_components.scss +1 -0
  282. data/app/javascript/stylesheets/components/_breadcrumb.scss +2 -2
  283. data/app/javascript/stylesheets/components/_calendar.scss +13 -13
  284. data/app/javascript/stylesheets/components/_cascader.scss +5 -5
  285. data/app/javascript/stylesheets/components/_checkbox.scss +9 -11
  286. data/app/javascript/stylesheets/components/_color_picker.scss +11 -11
  287. data/app/javascript/stylesheets/components/_date_picker.scss +4 -4
  288. data/app/javascript/stylesheets/components/_descriptions.scss +2 -2
  289. data/app/javascript/stylesheets/components/_drawer.scss +3 -3
  290. data/app/javascript/stylesheets/components/_dropdown.scss +2 -2
  291. data/app/javascript/stylesheets/components/_flex.scss +1 -1
  292. data/app/javascript/stylesheets/components/_float_button.scss +5 -5
  293. data/app/javascript/stylesheets/components/_form_item.scss +92 -0
  294. data/app/javascript/stylesheets/components/_image.scss +15 -15
  295. data/app/javascript/stylesheets/components/_input.scss +23 -113
  296. data/app/javascript/stylesheets/components/_layout.scss +27 -26
  297. data/app/javascript/stylesheets/components/_menu.scss +15 -15
  298. data/app/javascript/stylesheets/components/_modal.scss +13 -13
  299. data/app/javascript/stylesheets/components/_notification.scss +3 -3
  300. data/app/javascript/stylesheets/components/_popover.scss +1 -1
  301. data/app/javascript/stylesheets/components/_segmented.scss +3 -3
  302. data/app/javascript/stylesheets/components/_select.scss +6 -6
  303. data/app/javascript/stylesheets/components/_slider.scss +1 -1
  304. data/app/javascript/stylesheets/components/_spin.scss +2 -2
  305. data/app/javascript/stylesheets/components/_steps.scss +10 -10
  306. data/app/javascript/stylesheets/components/_switch.scss +11 -10
  307. data/app/javascript/stylesheets/components/_table.scss +6 -6
  308. data/app/javascript/stylesheets/components/_tag.scss +2 -2
  309. data/app/javascript/stylesheets/components/_tooltip.scss +4 -4
  310. data/app/javascript/stylesheets/components/_tree_select.scss +3 -3
  311. data/app/javascript/stylesheets/components/_typography.scss +3 -3
  312. data/app/javascript/stylesheets/components/_upload.scss +4 -4
  313. data/app/services/hakumi_components/component_handler.rb +124 -0
  314. data/app/services/hakumi_components/icon/loader.rb +112 -0
  315. data/app/services/hakumi_components/illustrations/loader.rb +51 -0
  316. data/app/views/hakumi/_admin_panel.html.erb +1 -1
  317. data/app/views/hakumi/_affix.html.erb +1 -1
  318. data/app/views/hakumi/_alert.html.erb +4 -1
  319. data/app/views/hakumi/_confirm.html.erb +1 -1
  320. data/app/views/hakumi/_drawer.html.erb +2 -2
  321. data/app/views/hakumi/_message.html.erb +1 -1
  322. data/app/views/hakumi/_modal.html.erb +1 -1
  323. data/app/views/hakumi/_notification.html.erb +1 -1
  324. data/app/views/hakumi/_popconfirm.html.erb +1 -1
  325. data/app/views/hakumi/_popover.html.erb +1 -1
  326. data/app/views/hakumi/_qr_code.html.erb +1 -1
  327. data/app/views/hakumi/_result.html.erb +1 -1
  328. data/app/views/hakumi/_segmented.html.erb +1 -1
  329. data/app/views/hakumi/_skeleton.html.erb +1 -1
  330. data/app/views/hakumi/_spin.html.erb +1 -1
  331. data/app/views/hakumi/_statistic.html.erb +12 -12
  332. data/app/views/hakumi/_table.html.erb +1 -1
  333. data/app/views/hakumi/_tag.html.erb +1 -1
  334. data/app/views/hakumi/_timeline.html.erb +1 -1
  335. data/app/views/hakumi/_tree.html.erb +1 -1
  336. data/lib/generators/{hakumi → hakumi_components}/install_generator.rb +17 -4
  337. data/lib/hakumi_components/documentation/models.rb +290 -0
  338. data/lib/hakumi_components/documentation/node.rb +73 -0
  339. data/lib/hakumi_components/documentation.rb +141 -64
  340. data/lib/hakumi_components/engine.rb +26 -14
  341. data/lib/hakumi_components/file_size_checker.rb +215 -0
  342. data/lib/hakumi_components/locales/en.yml +115 -0
  343. data/lib/hakumi_components/rails/attribute_introspection.rb +40 -108
  344. data/lib/hakumi_components/rails/model_reflection.rb +154 -0
  345. data/lib/hakumi_components/rails/validation_introspection.rb +26 -74
  346. data/lib/hakumi_components/rails/validation_mapper.rb +149 -202
  347. data/lib/hakumi_components/rails.rb +3 -1
  348. data/lib/hakumi_components/stylesheet_ownership_checker.rb +191 -0
  349. data/lib/hakumi_components/types/form_field.rb +24 -0
  350. data/lib/hakumi_components/types/html.rb +28 -0
  351. data/lib/hakumi_components/types/rendering.rb +10 -0
  352. data/lib/hakumi_components/types/stimulus.rb +19 -0
  353. data/lib/hakumi_components/types/validation.rb +22 -0
  354. data/lib/hakumi_components/types.rb +13 -0
  355. data/lib/hakumi_components/version.rb +3 -2
  356. data/lib/hakumi_components.rb +26 -5
  357. data/lib/tasks/coverage.rake +1 -0
  358. metadata +310 -346
  359. data/app/components/hakumi/admin_panel/component.rb +0 -40
  360. data/app/components/hakumi/affix/component.rb +0 -88
  361. data/app/components/hakumi/alert/component.rb +0 -84
  362. data/app/components/hakumi/anchor/component.rb +0 -80
  363. data/app/components/hakumi/anchor/link/component.rb +0 -34
  364. data/app/components/hakumi/autocomplete/component.html.erb +0 -74
  365. data/app/components/hakumi/autocomplete/component.rb +0 -202
  366. data/app/components/hakumi/avatar/component.rb +0 -91
  367. data/app/components/hakumi/badge/component.rb +0 -85
  368. data/app/components/hakumi/base_component.rb +0 -192
  369. data/app/components/hakumi/breadcrumb/component.rb +0 -27
  370. data/app/components/hakumi/breadcrumb/item/component.html.erb +0 -17
  371. data/app/components/hakumi/breadcrumb/item/component.rb +0 -35
  372. data/app/components/hakumi/button/component.rb +0 -121
  373. data/app/components/hakumi/calendar/component.rb +0 -448
  374. data/app/components/hakumi/card/component.rb +0 -94
  375. data/app/components/hakumi/card/grid/component.html.erb +0 -3
  376. data/app/components/hakumi/card/grid/component.rb +0 -37
  377. data/app/components/hakumi/card/meta/component.html.erb +0 -23
  378. data/app/components/hakumi/card/meta/component.rb +0 -46
  379. data/app/components/hakumi/carousel/component.rb +0 -147
  380. data/app/components/hakumi/cascader/component.html.erb +0 -41
  381. data/app/components/hakumi/cascader/component.rb +0 -119
  382. data/app/components/hakumi/checkbox/component.rb +0 -64
  383. data/app/components/hakumi/checkbox/group/component.html.erb +0 -12
  384. data/app/components/hakumi/checkbox/group/component.rb +0 -64
  385. data/app/components/hakumi/collapse/component.rb +0 -117
  386. data/app/components/hakumi/collapse/panel/component.rb +0 -65
  387. data/app/components/hakumi/color_picker/component.rb +0 -169
  388. data/app/components/hakumi/concerns/form_field.rb +0 -135
  389. data/app/components/hakumi/date_picker/component.rb +0 -140
  390. data/app/components/hakumi/date_picker/range_picker.rb +0 -136
  391. data/app/components/hakumi/date_picker/shared_rendering.rb +0 -199
  392. data/app/components/hakumi/descriptions/component.rb +0 -182
  393. data/app/components/hakumi/descriptions/item/component.rb +0 -28
  394. data/app/components/hakumi/divider/component.rb +0 -66
  395. data/app/components/hakumi/drawer/component.rb +0 -108
  396. data/app/components/hakumi/dropdown/component.rb +0 -97
  397. data/app/components/hakumi/dropdown/item/component.rb +0 -47
  398. data/app/components/hakumi/flex/component.rb +0 -78
  399. data/app/components/hakumi/float_button/back_top/component.rb +0 -79
  400. data/app/components/hakumi/float_button/component.rb +0 -203
  401. data/app/components/hakumi/float_button/group/component.rb +0 -227
  402. data/app/components/hakumi/float_button/group_cluster/component.rb +0 -141
  403. data/app/components/hakumi/grid/col/component.rb +0 -98
  404. data/app/components/hakumi/grid/row/component.rb +0 -79
  405. data/app/components/hakumi/image/component.rb +0 -112
  406. data/app/components/hakumi/image/preview_group/component.rb +0 -70
  407. data/app/components/hakumi/input/component.rb +0 -185
  408. data/app/components/hakumi/input/password/component.rb +0 -95
  409. data/app/components/hakumi/input/text_area/component.rb +0 -131
  410. data/app/components/hakumi/input_number/component.rb +0 -198
  411. data/app/components/hakumi/layout/component.html.erb +0 -1
  412. data/app/components/hakumi/layout/component.rb +0 -21
  413. data/app/components/hakumi/layout/content/component.html.erb +0 -1
  414. data/app/components/hakumi/layout/content/component.rb +0 -19
  415. data/app/components/hakumi/layout/footer/component.html.erb +0 -1
  416. data/app/components/hakumi/layout/footer/component.rb +0 -19
  417. data/app/components/hakumi/layout/header/component.html.erb +0 -1
  418. data/app/components/hakumi/layout/header/component.rb +0 -19
  419. data/app/components/hakumi/layout/sider/component.html.erb +0 -1
  420. data/app/components/hakumi/layout/sider/component.rb +0 -56
  421. data/app/components/hakumi/mentions/component.rb +0 -165
  422. data/app/components/hakumi/menu/component.rb +0 -126
  423. data/app/components/hakumi/menu/group/component.rb +0 -47
  424. data/app/components/hakumi/menu/item/component.rb +0 -47
  425. data/app/components/hakumi/menu/sub_menu/component.rb +0 -92
  426. data/app/components/hakumi/message/component.rb +0 -106
  427. data/app/components/hakumi/modal/component.rb +0 -99
  428. data/app/components/hakumi/modal/confirm/component.html.erb +0 -23
  429. data/app/components/hakumi/modal/confirm/component.rb +0 -46
  430. data/app/components/hakumi/modal/error/component.rb +0 -51
  431. data/app/components/hakumi/modal/info/component.rb +0 -51
  432. data/app/components/hakumi/modal/success/component.rb +0 -51
  433. data/app/components/hakumi/modal/warning/component.rb +0 -56
  434. data/app/components/hakumi/notification/component.rb +0 -126
  435. data/app/components/hakumi/pagination/component.rb +0 -205
  436. data/app/components/hakumi/popconfirm/component.rb +0 -72
  437. data/app/components/hakumi/popover/component.rb +0 -132
  438. data/app/components/hakumi/progress/component.rb +0 -565
  439. data/app/components/hakumi/qr_code/component.rb +0 -339
  440. data/app/components/hakumi/radio/component.rb +0 -80
  441. data/app/components/hakumi/radio/group/component.rb +0 -132
  442. data/app/components/hakumi/result/component.rb +0 -125
  443. data/app/components/hakumi/segmented/component.rb +0 -269
  444. data/app/components/hakumi/select/component.rb +0 -125
  445. data/app/components/hakumi/skeleton/avatar/component.rb +0 -66
  446. data/app/components/hakumi/skeleton/button/component.rb +0 -59
  447. data/app/components/hakumi/skeleton/component.rb +0 -200
  448. data/app/components/hakumi/skeleton/image/component.rb +0 -80
  449. data/app/components/hakumi/skeleton/input/component.rb +0 -51
  450. data/app/components/hakumi/skeleton/node/component.rb +0 -43
  451. data/app/components/hakumi/slider/component.rb +0 -228
  452. data/app/components/hakumi/space/compact/component.html.erb +0 -3
  453. data/app/components/hakumi/space/compact/component.rb +0 -36
  454. data/app/components/hakumi/space/component.rb +0 -73
  455. data/app/components/hakumi/spin/component.rb +0 -209
  456. data/app/components/hakumi/splitter/component.html.erb +0 -3
  457. data/app/components/hakumi/splitter/component.rb +0 -38
  458. data/app/components/hakumi/splitter/panel/component.html.erb +0 -3
  459. data/app/components/hakumi/splitter/panel/component.rb +0 -73
  460. data/app/components/hakumi/statistic/component.rb +0 -287
  461. data/app/components/hakumi/steps/component.rb +0 -145
  462. data/app/components/hakumi/steps/item/component.rb +0 -91
  463. data/app/components/hakumi/switch/component.rb +0 -124
  464. data/app/components/hakumi/table/column/component.rb +0 -80
  465. data/app/components/hakumi/table/component.rb +0 -731
  466. data/app/components/hakumi/table/concerns/columns.rb +0 -219
  467. data/app/components/hakumi/table/concerns/editable.rb +0 -121
  468. data/app/components/hakumi/table/concerns/ellipsis.rb +0 -63
  469. data/app/components/hakumi/table/concerns/fixed_columns.rb +0 -87
  470. data/app/components/hakumi/tabs/component.rb +0 -196
  471. data/app/components/hakumi/tabs/item/component.rb +0 -87
  472. data/app/components/hakumi/tag/component.rb +0 -187
  473. data/app/components/hakumi/timeline/component.html.erb +0 -7
  474. data/app/components/hakumi/timeline/component.rb +0 -168
  475. data/app/components/hakumi/timeline/item/component.rb +0 -137
  476. data/app/components/hakumi/tooltip/component.rb +0 -121
  477. data/app/components/hakumi/tour/component.rb +0 -158
  478. data/app/components/hakumi/transfer/component.html.erb +0 -173
  479. data/app/components/hakumi/transfer/component.rb +0 -245
  480. data/app/components/hakumi/tree/component.rb +0 -523
  481. data/app/components/hakumi/tree_select/component.rb +0 -261
  482. data/app/components/hakumi/typography/base_component.rb +0 -109
  483. data/app/components/hakumi/typography/link/component.rb +0 -34
  484. data/app/components/hakumi/typography/text/component.rb +0 -8
  485. data/app/components/hakumi/typography/title/component.rb +0 -29
  486. data/app/components/hakumi/upload/component.html.erb +0 -117
  487. data/app/components/hakumi/upload/component.rb +0 -193
  488. data/app/form_builders/hakumi/form_builder.rb +0 -482
  489. data/app/helpers/hakumi/form_helper.rb +0 -39
  490. data/app/services/hakumi/component_handler.rb +0 -53
  491. data/app/services/hakumi/icon/loader.rb +0 -95
  492. data/app/services/hakumi/illustrations/loader.rb +0 -43
  493. data/sig/action_view/tag_builder.rbs +0 -24
  494. data/sig/active_support/concern_patch.rbs +0 -7
  495. data/sig/generators/hakumi/install_generator.rbs +0 -11
  496. data/sig/hakumi/admin_panel/component.rbs +0 -28
  497. data/sig/hakumi/affix/component.rbs +0 -44
  498. data/sig/hakumi/alert/component.rbs +0 -64
  499. data/sig/hakumi/anchor/component.rbs +0 -45
  500. data/sig/hakumi/anchor/link/component.rbs +0 -31
  501. data/sig/hakumi/autocomplete/component.rbs +0 -68
  502. data/sig/hakumi/avatar/component.rbs +0 -44
  503. data/sig/hakumi/badge/component.rbs +0 -41
  504. data/sig/hakumi/base_component.rbs +0 -82
  505. data/sig/hakumi/breadcrumb/component.rbs +0 -21
  506. data/sig/hakumi/breadcrumb/item/component.rbs +0 -36
  507. data/sig/hakumi/button/component.rbs +0 -56
  508. data/sig/hakumi/calendar/component.rbs +0 -41
  509. data/sig/hakumi/card/component.rbs +0 -50
  510. data/sig/hakumi/card/grid/component.rbs +0 -21
  511. data/sig/hakumi/card/meta/component.rbs +0 -25
  512. data/sig/hakumi/carousel/component.rbs +0 -88
  513. data/sig/hakumi/cascader/component.rbs +0 -52
  514. data/sig/hakumi/checkbox/component.rbs +0 -46
  515. data/sig/hakumi/checkbox/group/component.rbs +0 -34
  516. data/sig/hakumi/collapse/component.rbs +0 -57
  517. data/sig/hakumi/collapse/panel/component.rbs +0 -47
  518. data/sig/hakumi/color_picker/component.rbs +0 -80
  519. data/sig/hakumi/concerns/form_field.rbs +0 -89
  520. data/sig/hakumi/container/component.rbs +0 -37
  521. data/sig/hakumi/date_picker/component.rbs +0 -72
  522. data/sig/hakumi/date_picker/range_picker.rbs +0 -68
  523. data/sig/hakumi/date_picker/shared_rendering.rbs +0 -41
  524. data/sig/hakumi/descriptions/component.rbs +0 -59
  525. data/sig/hakumi/descriptions/item/component.rbs +0 -31
  526. data/sig/hakumi/divider/component.rbs +0 -39
  527. data/sig/hakumi/drawer/component.rbs +0 -66
  528. data/sig/hakumi/dropdown/component.rbs +0 -45
  529. data/sig/hakumi/dropdown/divider/component.rbs +0 -11
  530. data/sig/hakumi/dropdown/item/component.rbs +0 -45
  531. data/sig/hakumi/empty/component.rbs +0 -40
  532. data/sig/hakumi/flex/component.rbs +0 -47
  533. data/sig/hakumi/float_button/back_top/component.rbs +0 -45
  534. data/sig/hakumi/float_button/component.rbs +0 -80
  535. data/sig/hakumi/float_button/group/component.rbs +0 -95
  536. data/sig/hakumi/float_button/group_cluster/component.rbs +0 -60
  537. data/sig/hakumi/form/item/component.rbs +0 -39
  538. data/sig/hakumi/form_builder.rbs +0 -37
  539. data/sig/hakumi/grid/col/component.rbs +0 -50
  540. data/sig/hakumi/grid/row/component.rbs +0 -46
  541. data/sig/hakumi/icon/component.rbs +0 -56
  542. data/sig/hakumi/image/component.rbs +0 -56
  543. data/sig/hakumi/image/preview_group/component.rbs +0 -28
  544. data/sig/hakumi/input/component.rbs +0 -71
  545. data/sig/hakumi/input/password/component.rbs +0 -27
  546. data/sig/hakumi/input/text_area/component.rbs +0 -42
  547. data/sig/hakumi/input_number/component.rbs +0 -85
  548. data/sig/hakumi/layout/component.rbs +0 -21
  549. data/sig/hakumi/layout/content/component.rbs +0 -19
  550. data/sig/hakumi/layout/footer/component.rbs +0 -19
  551. data/sig/hakumi/layout/header/component.rbs +0 -19
  552. data/sig/hakumi/layout/sider/component.rbs +0 -19
  553. data/sig/hakumi/mentions/component.rbs +0 -75
  554. data/sig/hakumi/menu/component.rbs +0 -52
  555. data/sig/hakumi/menu/divider/component.rbs +0 -11
  556. data/sig/hakumi/menu/group/component.rbs +0 -20
  557. data/sig/hakumi/menu/item/component.rbs +0 -42
  558. data/sig/hakumi/menu/sub_menu/component.rbs +0 -37
  559. data/sig/hakumi/message/component.rbs +0 -50
  560. data/sig/hakumi/modal/component.rbs +0 -76
  561. data/sig/hakumi/modal/confirm/component.rbs +0 -32
  562. data/sig/hakumi/modal/error/component.rbs +0 -27
  563. data/sig/hakumi/modal/info/component.rbs +0 -27
  564. data/sig/hakumi/modal/success/component.rbs +0 -27
  565. data/sig/hakumi/modal/warning/component.rbs +0 -27
  566. data/sig/hakumi/notification/component.rbs +0 -64
  567. data/sig/hakumi/pagination/component.rbs +0 -113
  568. data/sig/hakumi/popconfirm/component.rbs +0 -52
  569. data/sig/hakumi/popover/component.rbs +0 -66
  570. data/sig/hakumi/progress/component.rbs +0 -201
  571. data/sig/hakumi/qr_code/component.rbs +0 -111
  572. data/sig/hakumi/radio/component.rbs +0 -55
  573. data/sig/hakumi/radio/group/component.rbs +0 -71
  574. data/sig/hakumi/rails/attribute_introspection.rbs +0 -16
  575. data/sig/hakumi/rails/validation_introspection.rbs +0 -18
  576. data/sig/hakumi/rails/validation_mapper.rbs +0 -53
  577. data/sig/hakumi/rails.rbs +0 -6
  578. data/sig/hakumi/rate/component.rbs +0 -56
  579. data/sig/hakumi/result/component.rbs +0 -65
  580. data/sig/hakumi/segmented/component.rbs +0 -72
  581. data/sig/hakumi/select/component.rbs +0 -73
  582. data/sig/hakumi/skeleton/avatar/component.rbs +0 -23
  583. data/sig/hakumi/skeleton/button/component.rbs +0 -24
  584. data/sig/hakumi/skeleton/component.rbs +0 -76
  585. data/sig/hakumi/skeleton/image/component.rbs +0 -22
  586. data/sig/hakumi/skeleton/input/component.rbs +0 -23
  587. data/sig/hakumi/skeleton/node/component.rbs +0 -21
  588. data/sig/hakumi/slider/component.rbs +0 -85
  589. data/sig/hakumi/space/compact/component.rbs +0 -21
  590. data/sig/hakumi/space/component.rbs +0 -47
  591. data/sig/hakumi/spin/component.rbs +0 -77
  592. data/sig/hakumi/splitter/component.rbs +0 -27
  593. data/sig/hakumi/splitter/panel/component.rbs +0 -36
  594. data/sig/hakumi/statistic/component.rbs +0 -97
  595. data/sig/hakumi/steps/component.rbs +0 -82
  596. data/sig/hakumi/steps/item/component.rbs +0 -29
  597. data/sig/hakumi/switch/component.rbs +0 -52
  598. data/sig/hakumi/table/column/component.rbs +0 -57
  599. data/sig/hakumi/table/column_group/component.rbs +0 -20
  600. data/sig/hakumi/table/component.rbs +0 -279
  601. data/sig/hakumi/table/concerns/columns.rbs +0 -95
  602. data/sig/hakumi/table/concerns/editable.rbs +0 -40
  603. data/sig/hakumi/table/concerns/ellipsis.rbs +0 -27
  604. data/sig/hakumi/table/concerns/fixed_columns.rbs +0 -33
  605. data/sig/hakumi/tabs/component.rbs +0 -66
  606. data/sig/hakumi/tabs/item/component.rbs +0 -29
  607. data/sig/hakumi/tag/component.rbs +0 -86
  608. data/sig/hakumi/tag/group/component.rbs +0 -24
  609. data/sig/hakumi/time_picker/component.rbs +0 -72
  610. data/sig/hakumi/timeline/component.rbs +0 -61
  611. data/sig/hakumi/timeline/item/component.rbs +0 -70
  612. data/sig/hakumi/tooltip/component.rbs +0 -73
  613. data/sig/hakumi/tour/component.rbs +0 -84
  614. data/sig/hakumi/transfer/component.rbs +0 -75
  615. data/sig/hakumi/tree/component.rbs +0 -126
  616. data/sig/hakumi/tree_select/component.rbs +0 -122
  617. data/sig/hakumi/typography/base_component.rbs +0 -57
  618. data/sig/hakumi/typography/link/component.rbs +0 -28
  619. data/sig/hakumi/typography/paragraph/component.rbs +0 -13
  620. data/sig/hakumi/typography/title/component.rbs +0 -28
  621. data/sig/hakumi/upload/component.rbs +0 -78
  622. data/sig/hakumi.rbs +0 -96
  623. data/sig/rails/active_model/validations/comparison_validator.rbs +0 -6
  624. data/sig/rails.rbs +0 -18
  625. data/sig/view_component/base.rbs +0 -28
  626. /data/app/components/{hakumi → hakumi_components}/affix/component.html.erb +0 -0
  627. /data/app/components/{hakumi → hakumi_components}/anchor/component.html.erb +0 -0
  628. /data/app/components/{hakumi → hakumi_components}/breadcrumb/component.html.erb +0 -0
  629. /data/app/components/{hakumi → hakumi_components}/dropdown/component.html.erb +0 -0
  630. /data/app/components/{hakumi → hakumi_components}/dropdown/item/component.html.erb +0 -0
  631. /data/app/components/{hakumi → hakumi_components}/icon/component.html.erb +0 -0
  632. /data/app/components/{hakumi → hakumi_components}/menu/component.html.erb +0 -0
  633. /data/app/components/{hakumi → hakumi_components}/menu/group/component.html.erb +0 -0
  634. /data/app/components/{hakumi → hakumi_components}/menu/item/component.html.erb +0 -0
  635. /data/app/components/{hakumi → hakumi_components}/menu/sub_menu/component.html.erb +0 -0
  636. /data/app/components/{hakumi → hakumi_components}/message/component.html.erb +0 -0
  637. /data/app/components/{hakumi → hakumi_components}/qr_code/component.html.erb +0 -0
  638. /data/app/components/{hakumi → hakumi_components}/result/component.html.erb +0 -0
  639. /data/app/components/{hakumi → hakumi_components}/skeleton/avatar/component.html.erb +0 -0
  640. /data/app/components/{hakumi → hakumi_components}/skeleton/button/component.html.erb +0 -0
  641. /data/app/components/{hakumi → hakumi_components}/skeleton/component.html.erb +0 -0
  642. /data/app/components/{hakumi → hakumi_components}/skeleton/input/component.html.erb +0 -0
  643. /data/app/components/{hakumi → hakumi_components}/skeleton/node/component.html.erb +0 -0
  644. /data/app/components/{hakumi → hakumi_components}/spin/component.html.erb +0 -0
  645. /data/app/components/{hakumi → hakumi_components}/statistic/component.html.erb +0 -0
  646. /data/app/components/{hakumi → hakumi_components}/steps/item/component.html.erb +0 -0
  647. /data/app/components/{hakumi → hakumi_components}/tour/component.html.erb +0 -0
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hakumi
4
- module TimePicker
5
- class Component < Hakumi::BaseComponent
6
- include Hakumi::Concerns::FormField
7
-
8
- type time_variant = :default | :borderless | :filled
9
- type time_value = String | Time | DateTime | nil
10
-
11
- SIZES: Array[hakumi_size_standard]
12
- VARIANTS: Array[time_variant]
13
-
14
- @name: String
15
- @label: String?
16
- @caption: String?
17
- @value: time_value
18
- @default_value: time_value
19
- @format: String
20
- @hour_step: Integer
21
- @minute_step: Integer
22
- @second_step: Integer
23
- @use_12_hours: bool
24
- @show_now: bool
25
- @disabled: bool
26
- @allow_clear: bool
27
- @placeholder: String?
28
- @size: hakumi_size_standard
29
- @variant: time_variant
30
- @errors: Array[String]
31
- @standalone: bool
32
- @required: bool
33
- @html_options: hakumi_html_options
34
-
35
- def initialize: (
36
- ?name: String?,
37
- ?label: String?,
38
- ?caption: String?,
39
- ?value: time_value,
40
- ?default_value: time_value,
41
- ?format: String,
42
- ?hour_step: Integer,
43
- ?minute_step: Integer,
44
- ?second_step: Integer,
45
- ?use_12_hours: bool,
46
- ?show_now: bool,
47
- ?disabled: bool,
48
- ?allow_clear: bool,
49
- ?placeholder: String?,
50
- ?size: hakumi_size_standard,
51
- ?variant: time_variant,
52
- ?errors: (Array[String] | String),
53
- ?standalone: bool,
54
- **hakumi_html_options html_options
55
- ) -> void
56
-
57
- private
58
-
59
- def validate_props!: () -> void
60
- def current_value: () -> time_value
61
- def show_seconds?: () -> bool
62
- def wrapper_classes: () -> String
63
- def wrapper_attributes: () -> hakumi_html_options
64
- def input_attributes: () -> hakumi_html_options
65
- def step_value: (untyped value) -> Integer
66
- def formatted_hours: () -> Array[String]
67
- def formatted_minutes: () -> Array[String]
68
- def formatted_seconds: () -> Array[String]
69
- def period_options: () -> Array[String]
70
- end
71
- end
72
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hakumi
4
- module Timeline
5
- class Component < Hakumi::BaseComponent
6
- type timeline_direction = :vertical | :horizontal
7
- type timeline_mode = :left | :right | :alternate
8
- type timeline_variant = :filled | :outlined
9
-
10
- DIRECTIONS: Array[timeline_direction]
11
- MODES: Array[timeline_mode]
12
- VARIANTS: Array[timeline_variant]
13
-
14
- @direction: timeline_direction
15
- @mode: timeline_mode
16
- @reverse: bool
17
- @pending: (String | bool)?
18
- @pending_dot: untyped # String, Symbol, or ViewComponent
19
- @title_span: (String | Integer)?
20
- @variant: timeline_variant
21
- @html_options: hakumi_html_options
22
-
23
- # Class methods for controller integration
24
- def self.extract_controller_locals: (Hash[Symbol, untyped] params) -> Hash[Symbol, untyped]
25
- def self.parse_json_param: (untyped value) -> untyped
26
-
27
- def initialize: (
28
- ?direction: timeline_direction,
29
- ?mode: timeline_mode,
30
- ?reverse: bool,
31
- ?pending: (String | bool)?,
32
- ?pending_dot: untyped,
33
- ?title_span: (String | Integer)?,
34
- ?variant: timeline_variant,
35
- **hakumi_html_options html_options
36
- ) -> void
37
-
38
- attr_reader direction: timeline_direction
39
- attr_reader mode: timeline_mode
40
- attr_reader reverse: bool
41
- attr_reader pending: (String | bool)?
42
- attr_reader pending_dot: untyped
43
- attr_reader title_span: (String | Integer)?
44
- attr_reader variant: timeline_variant
45
-
46
- def wrapper_attributes: () -> hakumi_html_options
47
- def timeline_items: () -> Array[untyped] # Array of Item::Component
48
- def item_position: (Integer index, untyped item) -> (:left | :right)
49
- def pending_item: () -> untyped # Item::Component or nil
50
-
51
- private
52
-
53
- def stimulus_controller: () -> String
54
- def stimulus_data: () -> Hash[Symbol | String, untyped]
55
- def timeline_classes: () -> String
56
- def timeline_style: () -> (String | nil)
57
- def validate_props!: () -> void
58
- def normalized_title_span: () -> (String | nil)
59
- end
60
- end
61
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hakumi
4
- module Timeline
5
- module Item
6
- class Component < Hakumi::BaseComponent
7
- type timeline_color_preset = :blue | :red | :green | :gray
8
- type timeline_position = :left | :right
9
-
10
- COLORS: Hash[timeline_color_preset, String]
11
- POSITIONS: Array[timeline_position]
12
-
13
- @title: (String | untyped)? # String or ViewComponent
14
- @body: (String | untyped)? # String or ViewComponent
15
- @color: (timeline_color_preset | String)
16
- @dot: untyped # String, Symbol, or ViewComponent
17
- @position: (timeline_position | nil)
18
- @loading: bool
19
- @parent: untyped # Parent Timeline::Component
20
- @pending: bool
21
- @html_options: hakumi_html_options
22
- @content_block: (Proc | nil)
23
- @index: (Integer | nil)
24
- @total: (Integer | nil)
25
- @resolved_position: (timeline_position | nil)
26
- @reverse: (bool | nil)
27
- @dot_content: (String | nil)
28
-
29
- def initialize: (
30
- ?title: (String | untyped)?,
31
- ?body: (String | untyped)?,
32
- ?color: (timeline_color_preset | String),
33
- ?dot: untyped,
34
- ?position: (timeline_position | nil),
35
- ?loading: bool,
36
- ?parent: untyped,
37
- ?pending: bool,
38
- **hakumi_html_options html_options
39
- ) { () -> untyped } -> void
40
-
41
- attr_reader title: (String | untyped)?
42
- attr_reader body: (String | untyped)?
43
- attr_reader color: (timeline_color_preset | String)
44
- attr_reader dot: untyped
45
- attr_reader position: (timeline_position | nil)
46
- attr_reader loading: bool
47
- attr_reader parent: untyped
48
- attr_reader pending: bool
49
-
50
- # Sets context information (index, position) from parent Timeline
51
- def with_context: (index: Integer, total: Integer, ?position: timeline_position?, ?reverse: bool) -> self
52
-
53
- def wrapper_attributes: () -> hakumi_html_options
54
- def item_content: () -> (String | nil)
55
- def resolved_position: () -> (timeline_position | nil)
56
- def last_item?: () -> bool
57
- def dot_component?: () -> bool
58
- def dot_content: () -> (String | nil)
59
-
60
- private
61
-
62
- def item_classes: () -> String
63
- def item_data: () -> Hash[Symbol, Integer]
64
- def dot_style: () -> (String | nil)
65
- def color_value_for: ((timeline_color_preset | String) value) -> (String | nil)
66
- def validate_props!: () -> void
67
- end
68
- end
69
- end
70
- end
@@ -1,73 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hakumi
4
- module Tooltip
5
- class Component < Hakumi::BaseComponent
6
- type tooltip_trigger = :hover | :focus | :click
7
- type tooltip_placement = :top | :top_left | :top_right | :bottom | :bottom_left | :bottom_right | :left | :left_top | :left_bottom | :right | :right_top | :right_bottom
8
- type tooltip_color = :default | :pink | :red | :yellow | :orange | :cyan | :green | :blue | :purple | :geekblue | :magenta | :volcano | :gold | :lime
9
-
10
- TRIGGERS: Array[tooltip_trigger]
11
- PLACEMENTS: Array[tooltip_placement]
12
- COLORS: Array[tooltip_color]
13
-
14
- @title: String?
15
- @placement: tooltip_placement
16
- @trigger: tooltip_trigger
17
- @arrow: bool
18
- @color: (tooltip_color | String)
19
- @open: bool?
20
- @fresh: bool
21
- @html_options: hakumi_html_options
22
-
23
- attr_reader title: String?
24
- attr_reader placement: tooltip_placement
25
- attr_reader trigger: tooltip_trigger
26
- attr_reader arrow: bool
27
- attr_reader color: (tooltip_color | String)
28
- attr_reader open: bool?
29
- attr_reader fresh: bool
30
-
31
- def initialize: (
32
- ?title: String?,
33
- ?placement: tooltip_placement,
34
- ?trigger: tooltip_trigger,
35
- ?arrow: bool,
36
- ?color: (tooltip_color | String),
37
- ?open: bool?,
38
- ?fresh: bool,
39
- **hakumi_html_options html_options
40
- ) -> void
41
-
42
- def wrapper_classes: () -> String
43
-
44
- def tooltip_classes: () -> String
45
-
46
- def placement_class: () -> String
47
-
48
- def color_class: () -> String?
49
-
50
- def preset_color?: () -> bool
51
-
52
- def custom_color?: () -> bool
53
-
54
- def custom_color_style: () -> String?
55
-
56
- def stimulus_controller: () -> String
57
-
58
- def stimulus_values: () -> Hash[Symbol, untyped]
59
-
60
- def wrapper_attributes: () -> hakumi_html_options
61
-
62
- def stimulus_data_attributes: () -> hakumi_html_options
63
-
64
- def tooltip_text: () -> String?
65
-
66
- def has_tooltip_content?: () -> bool
67
-
68
- private
69
-
70
- def validate_props!: () -> void
71
- end
72
- end
73
- end
@@ -1,84 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hakumi
4
- module Tour
5
- class Component < Hakumi::BaseComponent
6
- type tour_size = "small" | "default" | "large"
7
- type tour_type = "default" | "primary"
8
- type tour_placement = "top" | "top_left" | "top_right" | "bottom" | "bottom_left" | "bottom_right" | "left" | "left_top" | "left_bottom" | "right" | "right_top" | "right_bottom"
9
-
10
- type tour_step = {
11
- title: String,
12
- body: String,
13
- target: String?,
14
- placement: String
15
- }
16
-
17
- SIZES: Array[tour_size]
18
- TYPES: Array[tour_type]
19
- PLACEMENTS: Array[tour_placement]
20
-
21
- @steps: Array[untyped]
22
- @open: bool
23
- @current: Integer
24
- @size: tour_size
25
- @type: tour_type
26
- @placement: tour_placement
27
- @mask: bool
28
- @mask_closable: bool
29
- @closable: bool
30
- @show_progress: bool
31
- @html_attrs: hakumi_html_options
32
- @component_id: String
33
- @normalized_steps: Array[tour_step]?
34
-
35
- def initialize: (
36
- ?steps: Array[untyped],
37
- ?open: bool,
38
- ?current: Integer,
39
- ?size: tour_size,
40
- ?type: tour_type,
41
- ?placement: tour_placement,
42
- ?mask: bool,
43
- ?mask_closable: bool,
44
- ?closable: bool,
45
- ?show_progress: bool,
46
- **hakumi_html_options html_attrs
47
- ) -> void
48
-
49
- def component_html_attributes: () -> hakumi_html_options
50
-
51
- def title_id: () -> String
52
-
53
- def body_id: () -> String
54
-
55
- def current_step_title: () -> String
56
-
57
- def current_step_body: () -> String
58
-
59
- def progress_label: () -> String?
60
-
61
- def first_step?: () -> bool
62
-
63
- def last_step?: () -> bool
64
-
65
- private
66
-
67
- def component_html_class: () -> String
68
-
69
- def validate_props!: () -> void
70
-
71
- def validate_steps!: () -> void
72
-
73
- def normalized_steps: () -> Array[tour_step]
74
-
75
- def steps_json: () -> String
76
-
77
- def current_step: () -> tour_step
78
-
79
- def current_index: () -> Integer
80
-
81
- def normalized_placement: ((String | Symbol)? value) -> String
82
- end
83
- end
84
- end
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hakumi
4
- module Transfer
5
- class Component < Hakumi::BaseComponent
6
- type pagination_config = bool | Hash[Symbol, untyped]
7
-
8
- DEFAULT_TITLES: Array[String]
9
-
10
- @data_source: Array[Hash[Symbol, untyped]]
11
- @target_keys: Array[String]
12
- @titles: Array[String]
13
- @disabled: bool
14
- @show_search: bool
15
- @show_select_all: bool
16
- @one_way: bool
17
- @pagination: pagination_config
18
- @name: String
19
- @render_item: (Proc | untyped)?
20
- @operations: Hash[Symbol, Symbol]
21
- @search_placeholder: String?
22
- @html_options: hakumi_html_options
23
-
24
- def self.extract_controller_locals: (Hash[Symbol, untyped] params) -> Hash[Symbol, untyped]
25
- def self.parse_data_source: (untyped value) -> Array[untyped]
26
- def self.parse_json_array: (untyped value) -> Array[untyped]
27
- def self.parse_pagination: (untyped value) -> pagination_config
28
- def self.boolean_param: (untyped value, ?default: bool) -> bool
29
-
30
- def initialize: (
31
- data_source: Array[untyped],
32
- ?target_keys: Array[untyped],
33
- ?titles: (Array[String] | String)?,
34
- ?disabled: bool,
35
- ?show_search: bool,
36
- ?show_select_all: bool,
37
- ?one_way: bool,
38
- ?pagination: pagination_config,
39
- ?name: String?,
40
- ?render_item: (Proc | untyped)?,
41
- ?operations: Hash[Symbol, Symbol]?,
42
- ?search_placeholder: String?,
43
- **hakumi_html_options html_options
44
- ) -> void
45
-
46
- attr_reader titles: Array[String]
47
- attr_reader operations: Hash[Symbol, Symbol]
48
-
49
- def search_placeholder: () -> String
50
- def wrapper_attributes: () -> hakumi_html_options
51
- def source_items: () -> Array[Hash[Symbol, untyped]]
52
- def target_items: () -> Array[Hash[Symbol, untyped]]
53
- def show_search?: () -> bool
54
- def show_select_all?: () -> bool
55
- def disabled?: () -> bool
56
- def one_way?: () -> bool
57
- def pagination?: () -> bool
58
- def item_classes: (Hash[Symbol, untyped] item) -> String
59
- def item_checkbox_id: (Hash[Symbol, untyped] item, String panel, Integer index) -> String
60
- def item_content: (Hash[Symbol, untyped] item) -> String?
61
- def item_description: (Hash[Symbol, untyped] item) -> String?
62
-
63
- private
64
-
65
- def wrapper_classes: () -> String
66
- def data_attributes: () -> hakumi_html_options
67
- def pagination_data_value: () -> (String | Hash[Symbol, untyped] | bool | nil)
68
- def normalize_data_source: (Array[untyped] data_source) -> Array[Hash[Symbol, untyped]]
69
- def normalize_titles: ((Array[String] | String)? titles) -> Array[Array[String] | String]
70
- def normalize_operations: (Hash[Symbol, Symbol]? operations) -> Hash[Symbol, Symbol]
71
- def normalize_string: (untyped value) -> String?
72
- def validate_props!: () -> void
73
- end
74
- end
75
- end
@@ -1,126 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hakumi
4
- module Tree
5
- class Component < Hakumi::BaseComponent
6
- DEFAULT_INDENT: Integer
7
-
8
- # Tree node hash structure
9
- type tree_node = {
10
- key: String,
11
- title: String,
12
- children: Array[tree_node],
13
- disabled: bool,
14
- selectable: bool,
15
- checkable: bool,
16
- disable_checkbox: bool,
17
- icon: (String | Symbol)?,
18
- switcher_icon: (String | Symbol)?,
19
- async: bool,
20
- loading: bool,
21
- level: Integer,
22
- parent_key: (String | nil),
23
- leaf: bool,
24
- is_leaf: bool
25
- }
26
-
27
- type switcher_config = {
28
- default: (String | Symbol)
29
- } | {
30
- collapse: (String | Symbol),
31
- expand: (String | Symbol)
32
- }
33
-
34
- @nodes: Array[Hash[Symbol, untyped]]
35
- @checkable: bool
36
- @selectable: bool
37
- @disabled: bool
38
- @default_expand_keys: Array[String]
39
- @default_selected_keys: Array[String]
40
- @default_checked_keys: Array[String]
41
- @expanded_keys: (Array[String] | nil)
42
- @selected_keys: (Array[String] | nil)
43
- @checked_keys: (Array[String] | nil)
44
- @show_line: bool
45
- @switcher_icon: (String | Symbol)?
46
- @icon: (String | Symbol)?
47
- @directory: bool
48
- @multiple: bool
49
- @draggable: bool
50
- @block_node: bool
51
- @searchable: bool
52
- @search_placeholder: String
53
- @height: (Integer | String)?
54
- @check_strictly: bool
55
- @indent: Integer
56
- @html_options: hakumi_html_options
57
- @normalized_nodes: Array[tree_node]
58
-
59
- # Class methods for controller integration
60
- def self.extract_controller_locals: (Hash[Symbol, untyped] params) -> Hash[Symbol, untyped]
61
- def self.parse_nodes: (untyped value) -> Array[untyped]
62
- def self.parse_json_array: (untyped value, ?allow_nil: bool) -> (Array[untyped] | nil)
63
- def self.boolean_param: (untyped value, ?default: bool) -> bool
64
-
65
- def initialize: (
66
- nodes: Array[Hash[Symbol, untyped]],
67
- ?checkable: bool,
68
- ?selectable: bool,
69
- ?disabled: bool,
70
- ?default_expand_keys: (Array[String | Integer] | String | Integer),
71
- ?default_selected_keys: (Array[String | Integer] | String | Integer),
72
- ?default_checked_keys: (Array[String | Integer] | String | Integer),
73
- ?expanded_keys: (Array[String | Integer] | String | Integer | nil)?,
74
- ?selected_keys: (Array[String | Integer] | String | Integer | nil)?,
75
- ?checked_keys: (Array[String | Integer] | String | Integer | nil)?,
76
- ?show_line: bool,
77
- ?switcher_icon: (String | Symbol)?,
78
- ?icon: (String | Symbol)?,
79
- ?directory: bool,
80
- ?multiple: bool,
81
- ?draggable: bool,
82
- ?block_node: bool,
83
- ?searchable: bool,
84
- ?search_placeholder: String,
85
- ?height: (Integer | String)?,
86
- ?check_strictly: bool,
87
- ?indent: Integer,
88
- **hakumi_html_options html_options
89
- ) -> void
90
-
91
- attr_reader normalized_nodes: Array[tree_node]
92
-
93
- def wrapper_attributes: () -> hakumi_html_options
94
- def list_attributes: () -> hakumi_html_options
95
- def searchable?: () -> bool
96
- def search_placeholder: () -> String
97
- def render_node_template: () -> String
98
- def render_indent: (Array[bool] level_mask) -> String
99
- def render_nodes: (Array[tree_node] nodes, ?level_mask: Array[bool]) -> String
100
- def wrapper_classes: () -> String
101
- def list_classes: () -> String
102
- def data_attributes: () -> hakumi_html_options
103
-
104
- private
105
-
106
- def validate_props!: () -> void
107
- def normalize_nodes: (Array[Hash[Symbol, untyped]] nodes, ?parent_key: String?, ?level: Integer) -> Array[tree_node]
108
- def render_node: (tree_node node, index: Integer, total: Integer, level_mask: Array[bool], has_next: bool) -> String
109
- def node_classes: (tree_node node) -> String
110
- def node_data: (tree_node node, index: Integer, total: Integer, has_next: bool) -> Hash[Symbol, untyped]
111
- def node_aria: (tree_node node) -> Hash[Symbol, untyped]
112
- def render_node_content_wrapper: (tree_node node) -> String
113
- def render_switcher: (tree_node node) -> String
114
- def normalize_switcher_conf: ((String | Symbol | Hash[Symbol, untyped]) icon_or_conf) -> (switcher_config | Hash[Symbol, untyped])
115
- def render_checkbox: (tree_node node) -> (String | nil)
116
- def render_icon: (tree_node node) -> (String | nil)
117
- def render_title: (tree_node node) -> String
118
- def render_node_children: (tree_node node, ?Array[bool] level_mask) -> (String | nil)
119
- def switcher_classes: (bool is_leaf) -> String
120
- def expanded?: (String key) -> bool
121
- def selected?: (String key) -> bool
122
- def checked?: (String key) -> bool
123
- def half_checked?: (String _key) -> bool
124
- end
125
- end
126
- end
@@ -1,122 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hakumi
4
- module TreeSelect
5
- class Component < Hakumi::BaseComponent
6
- include Hakumi::Concerns::FormField
7
-
8
- type tree_select_status = nil | :error | :warning
9
- type tree_node = {
10
- key: String,
11
- title: String,
12
- children: Array[tree_node],
13
- disabled: bool?,
14
- selectable: bool?,
15
- checkable: bool?,
16
- disable_checkbox: bool?,
17
- icon: hakumi_icon?,
18
- switcher_icon: hakumi_icon?,
19
- async: bool?,
20
- loading: bool?
21
- }
22
-
23
- SIZES: Array[hakumi_size_standard]
24
- VARIANTS: Array[hakumi_variant_select]
25
- STATUSES: Array[tree_select_status]
26
-
27
- @name: String
28
- @options: Array[Hash[Symbol, untyped]]
29
- @value: (String | Integer | Float | Array[String | Integer | Float])?
30
- @placeholder: String
31
- @multiple: bool
32
- @tree_checkable: bool
33
- @show_search: bool
34
- @tree_default_expand_all: bool
35
- @tree_selectable_leaf_only: bool
36
- @disabled: bool
37
- @allow_clear: bool
38
- @size: hakumi_size_standard
39
- @variant: hakumi_variant_select
40
- @status: tree_select_status
41
- @max_count: Integer?
42
- @prefix: String?
43
- @prefix_icon: hakumi_icon?
44
- @label: String?
45
- @caption: String?
46
- @errors: Array[String]
47
- @standalone: bool
48
- @required: bool
49
- @html_options: hakumi_html_options
50
- @normalized_options: Array[tree_node]?
51
-
52
- attr_reader prefix: String?
53
- attr_reader prefix_icon: hakumi_icon?
54
-
55
- def initialize: (
56
- ?name: String?,
57
- ?options: Array[Hash[Symbol, untyped]],
58
- ?value: (String | Integer | Float | Array[String | Integer | Float])?,
59
- ?placeholder: String,
60
- ?multiple: bool,
61
- ?tree_checkable: bool,
62
- ?show_search: bool,
63
- ?tree_default_expand_all: bool,
64
- ?tree_selectable_leaf_only: bool,
65
- ?disabled: bool,
66
- ?allow_clear: bool,
67
- ?size: hakumi_size_standard,
68
- ?variant: hakumi_variant_select,
69
- ?status: tree_select_status,
70
- ?max_count: Integer?,
71
- ?prefix: String?,
72
- ?prefix_icon: hakumi_icon?,
73
- ?label: String?,
74
- ?caption: String?,
75
- ?errors: (Array[String] | String)?,
76
- ?standalone: bool,
77
- ?required: bool,
78
- **hakumi_html_options html_options
79
- ) -> void
80
-
81
- def wrapper_attributes: () -> hakumi_html_options
82
-
83
- def has_prefix?: () -> bool
84
-
85
- def empty_options?: () -> bool
86
-
87
- def borderless?: () -> bool
88
-
89
- def effective_status: () -> tree_select_status
90
-
91
- def tree_component_options: () -> Hash[Symbol, untyped]
92
-
93
- def input_value: () -> (String | Array[String])?
94
-
95
- def display_label: () -> String?
96
-
97
- def has_value?: () -> bool
98
-
99
- private
100
-
101
- def validate_props!: () -> void
102
-
103
- def wrapper_classes: () -> String
104
-
105
- def normalized_options: () -> Array[tree_node]
106
-
107
- def normalize_options: (Array[Hash[Symbol, untyped]] options, ?parent_key: String?) -> Array[tree_node]
108
-
109
- def selected_keys: () -> Array[String]
110
-
111
- def multi_value?: () -> bool
112
-
113
- def selected_labels: () -> Array[String]
114
-
115
- def build_label_map: (Array[tree_node] options, ?Hash[String, String] map) -> Hash[String, String]
116
-
117
- def default_expand_keys: () -> Array[String]
118
-
119
- def collect_keys: (Array[tree_node] options, ?Array[String] keys) -> Array[String]
120
- end
121
- end
122
- end