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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +33 -3
- data/README.md +218 -369
- data/app/assets/javascripts/hakumi_components.js +40 -34
- data/app/assets/stylesheets/hakumi_components.css +1 -1
- data/app/components/{hakumi → hakumi_components}/admin_panel/component.html.erb +2 -2
- data/app/components/hakumi_components/admin_panel/component.rb +50 -0
- data/app/components/hakumi_components/affix/component.rb +112 -0
- data/app/components/{hakumi → hakumi_components}/alert/component.html.erb +3 -3
- data/app/components/hakumi_components/alert/component.rb +134 -0
- data/app/components/hakumi_components/anchor/component.rb +88 -0
- data/app/components/{hakumi → hakumi_components}/anchor/link/component.html.erb +1 -1
- data/app/components/hakumi_components/anchor/link/component.rb +53 -0
- data/app/components/hakumi_components/autocomplete/component.html.erb +94 -0
- data/app/components/hakumi_components/autocomplete/component.rb +228 -0
- data/app/components/hakumi_components/avatar/component.rb +124 -0
- data/app/components/hakumi_components/badge/component.rb +139 -0
- data/app/components/hakumi_components/base_component.rb +391 -0
- data/app/components/hakumi_components/breadcrumb/component.rb +38 -0
- data/app/components/hakumi_components/breadcrumb/item/component.html.erb +17 -0
- data/app/components/hakumi_components/breadcrumb/item/component.rb +83 -0
- data/app/components/hakumi_components/breadcrumb/item/menu_entry.rb +71 -0
- data/app/components/hakumi_components/button/component.rb +163 -0
- data/app/components/{hakumi → hakumi_components}/calendar/component.html.erb +24 -24
- data/app/components/hakumi_components/calendar/component.rb +471 -0
- data/app/components/hakumi_components/calendar/day_cell.rb +62 -0
- data/app/components/hakumi_components/calendar/display_model.rb +237 -0
- data/app/components/hakumi_components/calendar/event_entry.rb +54 -0
- data/app/components/hakumi_components/calendar/locale_pack.rb +28 -0
- data/app/components/hakumi_components/calendar/panel_entry.rb +48 -0
- data/app/components/hakumi_components/calendar/week_row.rb +28 -0
- data/app/components/{hakumi → hakumi_components}/card/component.html.erb +2 -2
- data/app/components/hakumi_components/card/component.rb +121 -0
- data/app/components/hakumi_components/card/grid/component.html.erb +3 -0
- data/app/components/hakumi_components/card/grid/component.rb +43 -0
- data/app/components/hakumi_components/card/meta/component.html.erb +23 -0
- data/app/components/hakumi_components/card/meta/component.rb +64 -0
- data/app/components/hakumi_components/carousel/autoplay_config.rb +27 -0
- data/app/components/{hakumi → hakumi_components}/carousel/component.html.erb +2 -2
- data/app/components/hakumi_components/carousel/component.rb +165 -0
- data/app/components/hakumi_components/carousel/dots_config.rb +36 -0
- data/app/components/hakumi_components/cascader/component.html.erb +59 -0
- data/app/components/hakumi_components/cascader/component.rb +168 -0
- data/app/components/{hakumi → hakumi_components}/checkbox/component.html.erb +5 -5
- data/app/components/hakumi_components/checkbox/component.rb +98 -0
- data/app/components/hakumi_components/checkbox/group/component.html.erb +12 -0
- data/app/components/hakumi_components/checkbox/group/component.rb +91 -0
- data/app/components/hakumi_components/checkbox/group/option.rb +34 -0
- data/app/components/{hakumi → hakumi_components}/collapse/component.html.erb +1 -1
- data/app/components/hakumi_components/collapse/component.rb +133 -0
- data/app/components/hakumi_components/collapse/panel/component.rb +108 -0
- data/app/components/{hakumi → hakumi_components}/color_picker/component.html.erb +21 -22
- data/app/components/hakumi_components/color_picker/component.rb +279 -0
- data/app/components/hakumi_components/color_picker/preset_group.rb +27 -0
- data/app/components/hakumi_components/concerns/form_field.rb +236 -0
- data/app/components/hakumi_components/concerns/form_field_contract.rb +57 -0
- data/app/components/hakumi_components/concerns/form_field_interface.rb +16 -0
- data/app/components/hakumi_components/concerns/input_control.rb +111 -0
- data/app/components/hakumi_components/concerns/input_control_contract.rb +47 -0
- data/app/components/hakumi_components/concerns/input_control_interface.rb +34 -0
- data/app/components/hakumi_components/concerns/selection_control.rb +122 -0
- data/app/components/hakumi_components/concerns/selection_control_contract.rb +47 -0
- data/app/components/hakumi_components/concerns/selection_control_interface.rb +34 -0
- data/app/components/{hakumi → hakumi_components}/container/component.rb +31 -16
- data/app/components/{hakumi → hakumi_components}/date_picker/component.html.erb +4 -6
- data/app/components/hakumi_components/date_picker/component.rb +254 -0
- data/app/components/{hakumi → hakumi_components}/date_picker/range_picker.html.erb +4 -4
- data/app/components/hakumi_components/date_picker/range_picker.rb +267 -0
- data/app/components/hakumi_components/date_picker/shared_rendering.rb +289 -0
- data/app/components/{hakumi → hakumi_components}/descriptions/component.html.erb +6 -6
- data/app/components/hakumi_components/descriptions/component.rb +219 -0
- data/app/components/hakumi_components/descriptions/item/component.rb +52 -0
- data/app/components/hakumi_components/divider/component.rb +86 -0
- data/app/components/{hakumi → hakumi_components}/drawer/component.html.erb +3 -3
- data/app/components/hakumi_components/drawer/component.rb +191 -0
- data/app/components/hakumi_components/dropdown/component.rb +94 -0
- data/app/components/{hakumi → hakumi_components}/dropdown/divider/component.rb +6 -2
- data/app/components/hakumi_components/dropdown/item/component.rb +73 -0
- data/app/components/{hakumi → hakumi_components}/empty/component.rb +68 -33
- data/app/components/hakumi_components/flex/component.rb +96 -0
- data/app/components/hakumi_components/float_button/back_top/component.rb +86 -0
- data/app/components/hakumi_components/float_button/component.rb +289 -0
- data/app/components/hakumi_components/float_button/group/component.rb +214 -0
- data/app/components/hakumi_components/float_button/group_cluster/component.rb +133 -0
- data/app/components/hakumi_components/float_button/group_spec.rb +259 -0
- data/app/components/hakumi_components/float_button/item_spec.rb +115 -0
- data/app/components/hakumi_components/float_button/position_config.rb +68 -0
- data/app/components/{hakumi → hakumi_components}/form/item/component.rb +36 -29
- data/app/components/hakumi_components/grid/col/component.rb +169 -0
- data/app/components/hakumi_components/grid/row/component.rb +97 -0
- data/app/components/{hakumi → hakumi_components}/icon/component.rb +53 -53
- data/app/components/{hakumi → hakumi_components}/image/component.html.erb +17 -17
- data/app/components/hakumi_components/image/component.rb +175 -0
- data/app/components/{hakumi → hakumi_components}/image/preview_group/component.html.erb +10 -10
- data/app/components/hakumi_components/image/preview_group/component.rb +75 -0
- data/app/components/hakumi_components/image/preview_group/item.rb +48 -0
- data/app/components/{hakumi → hakumi_components}/input/component.html.erb +1 -1
- data/app/components/hakumi_components/input/component.rb +261 -0
- data/app/components/hakumi_components/input/password/component.rb +84 -0
- data/app/components/{hakumi → hakumi_components}/input/text_area/component.html.erb +2 -2
- data/app/components/hakumi_components/input/text_area/component.rb +178 -0
- data/app/components/{hakumi → hakumi_components}/input_number/component.html.erb +9 -9
- data/app/components/hakumi_components/input_number/component.rb +280 -0
- data/app/components/hakumi_components/layout/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/component.rb +28 -0
- data/app/components/hakumi_components/layout/content/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/content/component.rb +29 -0
- data/app/components/hakumi_components/layout/footer/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/footer/component.rb +29 -0
- data/app/components/hakumi_components/layout/header/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/header/component.rb +29 -0
- data/app/components/hakumi_components/layout/sider/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/sider/component.rb +90 -0
- data/app/components/hakumi_components/mentions/coercion.rb +46 -0
- data/app/components/{hakumi → hakumi_components}/mentions/component.html.erb +6 -6
- data/app/components/hakumi_components/mentions/component.rb +229 -0
- data/app/components/hakumi_components/mentions/option.rb +30 -0
- data/app/components/hakumi_components/menu/component.rb +117 -0
- data/app/components/{hakumi → hakumi_components}/menu/divider/component.rb +6 -2
- data/app/components/hakumi_components/menu/group/component.rb +48 -0
- data/app/components/hakumi_components/menu/item/component.rb +70 -0
- data/app/components/hakumi_components/menu/sub_menu/component.rb +104 -0
- data/app/components/hakumi_components/message/component.rb +141 -0
- data/app/components/{hakumi → hakumi_components}/modal/component.html.erb +7 -7
- data/app/components/hakumi_components/modal/component.rb +152 -0
- data/app/components/hakumi_components/modal/confirm/component.html.erb +23 -0
- data/app/components/hakumi_components/modal/confirm/component.rb +87 -0
- data/app/components/hakumi_components/modal/error/component.rb +20 -0
- data/app/components/hakumi_components/modal/info/component.rb +17 -0
- data/app/components/hakumi_components/modal/status_component.rb +150 -0
- data/app/components/hakumi_components/modal/success/component.rb +17 -0
- data/app/components/hakumi_components/modal/warning/component.rb +26 -0
- data/app/components/hakumi_components/notification/component.rb +160 -0
- data/app/components/{hakumi → hakumi_components}/pagination/component.html.erb +8 -12
- data/app/components/hakumi_components/pagination/component.rb +238 -0
- data/app/components/hakumi_components/pagination/page_item.rb +49 -0
- data/app/components/{hakumi → hakumi_components}/popconfirm/component.html.erb +2 -2
- data/app/components/hakumi_components/popconfirm/component.rb +120 -0
- data/app/components/{hakumi → hakumi_components}/popover/component.html.erb +2 -2
- data/app/components/hakumi_components/popover/component.rb +196 -0
- data/app/components/hakumi_components/progress/attribute_renderer.rb +354 -0
- data/app/components/hakumi_components/progress/circle_geometry.rb +76 -0
- data/app/components/{hakumi → hakumi_components}/progress/component.html.erb +19 -18
- data/app/components/hakumi_components/progress/component.rb +393 -0
- data/app/components/hakumi_components/progress/controller_locals_parser.rb +130 -0
- data/app/components/hakumi_components/progress/info_tooltip_policy.rb +39 -0
- data/app/components/hakumi_components/progress/info_value.rb +75 -0
- data/app/components/hakumi_components/progress/status_state.rb +31 -0
- data/app/components/hakumi_components/progress/steps_renderer.rb +149 -0
- data/app/components/hakumi_components/progress/stroke_gradient_value.rb +90 -0
- data/app/components/hakumi_components/qr_code/component.rb +405 -0
- data/app/components/{hakumi → hakumi_components}/radio/component.html.erb +3 -3
- data/app/components/hakumi_components/radio/component.rb +113 -0
- data/app/components/{hakumi → hakumi_components}/radio/group/component.html.erb +10 -10
- data/app/components/hakumi_components/radio/group/component.rb +181 -0
- data/app/components/hakumi_components/radio/group/option.rb +43 -0
- data/app/components/{hakumi → hakumi_components}/rate/component.html.erb +2 -2
- data/app/components/{hakumi → hakumi_components}/rate/component.rb +58 -12
- data/app/components/hakumi_components/result/component.rb +175 -0
- data/app/components/{hakumi → hakumi_components}/segmented/component.html.erb +1 -1
- data/app/components/hakumi_components/segmented/component.rb +232 -0
- data/app/components/hakumi_components/segmented/option.rb +191 -0
- data/app/components/{hakumi → hakumi_components}/select/component.html.erb +22 -22
- data/app/components/hakumi_components/select/component.rb +176 -0
- data/app/components/hakumi_components/selection_control/coercion.rb +161 -0
- data/app/components/hakumi_components/selection_control/entry.rb +22 -0
- data/app/components/hakumi_components/selection_control/option.rb +42 -0
- data/app/components/hakumi_components/selection_control/option_group.rb +34 -0
- data/app/components/hakumi_components/selection_control/tree_node.rb +123 -0
- data/app/components/hakumi_components/skeleton/avatar/component.rb +88 -0
- data/app/components/hakumi_components/skeleton/avatar_config.rb +79 -0
- data/app/components/hakumi_components/skeleton/button/component.rb +77 -0
- data/app/components/hakumi_components/skeleton/component.rb +186 -0
- data/app/components/{hakumi → hakumi_components}/skeleton/image/component.html.erb +1 -1
- data/app/components/hakumi_components/skeleton/image/component.rb +104 -0
- data/app/components/hakumi_components/skeleton/input/component.rb +66 -0
- data/app/components/hakumi_components/skeleton/node/component.rb +59 -0
- data/app/components/hakumi_components/skeleton/paragraph_config.rb +92 -0
- data/app/components/hakumi_components/skeleton/title_config.rb +31 -0
- data/app/components/{hakumi → hakumi_components}/slider/component.html.erb +11 -11
- data/app/components/hakumi_components/slider/component.rb +347 -0
- data/app/components/hakumi_components/slider/mark.rb +27 -0
- data/app/components/hakumi_components/space/compact/component.html.erb +1 -0
- data/app/components/hakumi_components/space/compact/component.rb +52 -0
- data/app/components/{hakumi → hakumi_components}/space/component.html.erb +1 -1
- data/app/components/hakumi_components/space/component.rb +109 -0
- data/app/components/hakumi_components/spin/component.rb +270 -0
- data/app/components/hakumi_components/splitter/component.html.erb +9 -0
- data/app/components/hakumi_components/splitter/component.rb +71 -0
- data/app/components/hakumi_components/splitter/panel/component.html.erb +1 -0
- data/app/components/hakumi_components/splitter/panel/component.rb +98 -0
- data/app/components/hakumi_components/statistic/component.rb +371 -0
- data/app/components/{hakumi → hakumi_components}/steps/component.html.erb +4 -4
- data/app/components/hakumi_components/steps/component.rb +177 -0
- data/app/components/hakumi_components/steps/item/component.rb +130 -0
- data/app/components/{hakumi → hakumi_components}/switch/component.html.erb +2 -3
- data/app/components/hakumi_components/switch/component.rb +150 -0
- data/app/components/hakumi_components/table/column/component.rb +137 -0
- data/app/components/hakumi_components/table/column_definition.rb +181 -0
- data/app/components/{hakumi → hakumi_components}/table/column_group/component.rb +35 -24
- data/app/components/{hakumi → hakumi_components}/table/component.html.erb +22 -31
- data/app/components/hakumi_components/table/component.rb +470 -0
- data/app/components/hakumi_components/table/concerns/attribute_helpers.rb +22 -0
- data/app/components/hakumi_components/table/concerns/cell_rendering.rb +277 -0
- data/app/components/hakumi_components/table/concerns/columns.rb +421 -0
- data/app/components/hakumi_components/table/concerns/editable.rb +68 -0
- data/app/components/hakumi_components/table/concerns/ellipsis.rb +64 -0
- data/app/components/hakumi_components/table/concerns/fixed_columns.rb +94 -0
- data/app/components/hakumi_components/table/concerns/surface_rendering.rb +365 -0
- data/app/components/hakumi_components/table/configs.rb +518 -0
- data/app/components/hakumi_components/table/definition_types.rb +40 -0
- data/app/components/hakumi_components/table/display_rows.rb +56 -0
- data/app/components/hakumi_components/table/ellipsis_config.rb +143 -0
- data/app/components/hakumi_components/table/fixed_offset.rb +36 -0
- data/app/components/hakumi_components/table/header_cell.rb +23 -0
- data/app/components/hakumi_components/table/row_record.rb +60 -0
- data/app/components/hakumi_components/table/row_render_state.rb +85 -0
- data/app/components/{hakumi → hakumi_components}/tabs/component.html.erb +11 -11
- data/app/components/hakumi_components/tabs/component.rb +246 -0
- data/app/components/hakumi_components/tabs/indicator_config.rb +34 -0
- data/app/components/hakumi_components/tabs/item/component.rb +147 -0
- data/app/components/hakumi_components/tag/component.rb +282 -0
- data/app/components/{hakumi → hakumi_components}/tag/group/component.rb +20 -8
- data/app/components/{hakumi → hakumi_components}/time_picker/component.html.erb +10 -10
- data/app/components/{hakumi → hakumi_components}/time_picker/component.rb +75 -21
- data/app/components/hakumi_components/timeline/component.html.erb +8 -0
- data/app/components/hakumi_components/timeline/component.rb +301 -0
- data/app/components/{hakumi → hakumi_components}/timeline/item/component.html.erb +2 -2
- data/app/components/hakumi_components/timeline/item/component.rb +198 -0
- data/app/components/{hakumi → hakumi_components}/tooltip/component.html.erb +1 -1
- data/app/components/hakumi_components/tooltip/component.rb +146 -0
- data/app/components/hakumi_components/tour/component.rb +183 -0
- data/app/components/hakumi_components/tour/step.rb +86 -0
- data/app/components/hakumi_components/transfer/coercion.rb +66 -0
- data/app/components/hakumi_components/transfer/component.html.erb +204 -0
- data/app/components/hakumi_components/transfer/component.rb +395 -0
- data/app/components/hakumi_components/transfer/item.rb +54 -0
- data/app/components/hakumi_components/transfer/operations.rb +31 -0
- data/app/components/{hakumi → hakumi_components}/tree/component.html.erb +1 -1
- data/app/components/hakumi_components/tree/component.rb +342 -0
- data/app/components/hakumi_components/tree/concerns/node_rendering.rb +365 -0
- data/app/components/hakumi_components/tree/node.rb +276 -0
- data/app/components/{hakumi → hakumi_components}/tree_select/component.html.erb +27 -13
- data/app/components/hakumi_components/tree_select/component.rb +270 -0
- data/app/components/hakumi_components/typography/base_component.rb +142 -0
- data/app/components/hakumi_components/typography/link/component.rb +91 -0
- data/app/components/{hakumi → hakumi_components}/typography/paragraph/component.rb +7 -1
- data/{sig/hakumi/typography/text/component.rbs → app/components/hakumi_components/typography/text/component.rb} +3 -1
- data/app/components/hakumi_components/typography/title/component.rb +84 -0
- data/app/components/hakumi_components/upload/component.html.erb +135 -0
- data/app/components/hakumi_components/upload/component.rb +367 -0
- data/app/components/hakumi_components/upload/file_entry.rb +53 -0
- data/app/controllers/{hakumi → hakumi_components}/components_controller.rb +3 -2
- data/app/form_builders/hakumi_components/form_builder/contracts.rb +55 -0
- data/app/form_builders/hakumi_components/form_builder/field_context.rb +43 -0
- data/app/form_builders/hakumi_components/form_builder/model_binding.rb +163 -0
- data/app/form_builders/hakumi_components/form_builder.rb +403 -0
- data/app/helpers/hakumi_components/form_helper.rb +43 -0
- data/app/javascript/hakumi_components/controllers/hakumi/admin_panel_controller.js +5 -7
- data/app/javascript/hakumi_components/controllers/hakumi/back_top_controller.js +1 -1
- data/app/javascript/hakumi_components/controllers/hakumi/button_controller.js +108 -2
- data/app/javascript/hakumi_components/controllers/hakumi/calendar_controller.js +183 -95
- data/app/javascript/hakumi_components/controllers/hakumi/color_picker_controller.js +23 -285
- data/app/javascript/hakumi_components/controllers/hakumi/date_picker_controller.js +274 -262
- data/app/javascript/hakumi_components/controllers/hakumi/float_button_group_controller.js +2 -2
- data/app/javascript/hakumi_components/controllers/hakumi/message_controller.js +4 -2
- data/app/javascript/hakumi_components/controllers/hakumi/modal_controller.js +119 -125
- data/app/javascript/hakumi_components/controllers/hakumi/table/editable.js +291 -0
- data/app/javascript/hakumi_components/controllers/hakumi/table_controller.js +166 -366
- data/app/javascript/hakumi_components/controllers/hakumi/tabs_controller.js +8 -2
- data/app/javascript/hakumi_components/controllers/hakumi/tag_controller.js +27 -25
- data/app/javascript/hakumi_components/controllers/hakumi/tag_group_controller.js +19 -18
- data/app/javascript/hakumi_components/controllers/hakumi/theme_controller.js +116 -117
- data/app/javascript/hakumi_components/controllers/hakumi/transfer_controller.js +17 -1
- data/app/javascript/hakumi_components/controllers/hakumi/tree_controller.js +363 -78
- data/app/javascript/hakumi_components/controllers/hakumi/typography_controller.js +3 -3
- data/app/javascript/hakumi_components/controllers/hakumi/upload_controller.js +320 -204
- data/app/javascript/hakumi_components/core/render_component.js +37 -11
- data/app/javascript/hakumi_components/utils/color_helper.js +262 -0
- data/app/javascript/stylesheets/_base.scss +9 -0
- data/app/javascript/stylesheets/_hakumi_components.scss +1 -0
- data/app/javascript/stylesheets/components/_breadcrumb.scss +2 -2
- data/app/javascript/stylesheets/components/_calendar.scss +13 -13
- data/app/javascript/stylesheets/components/_cascader.scss +5 -5
- data/app/javascript/stylesheets/components/_checkbox.scss +9 -11
- data/app/javascript/stylesheets/components/_color_picker.scss +11 -11
- data/app/javascript/stylesheets/components/_date_picker.scss +4 -4
- data/app/javascript/stylesheets/components/_descriptions.scss +2 -2
- data/app/javascript/stylesheets/components/_drawer.scss +3 -3
- data/app/javascript/stylesheets/components/_dropdown.scss +2 -2
- data/app/javascript/stylesheets/components/_flex.scss +1 -1
- data/app/javascript/stylesheets/components/_float_button.scss +5 -5
- data/app/javascript/stylesheets/components/_form_item.scss +92 -0
- data/app/javascript/stylesheets/components/_image.scss +15 -15
- data/app/javascript/stylesheets/components/_input.scss +23 -113
- data/app/javascript/stylesheets/components/_layout.scss +27 -26
- data/app/javascript/stylesheets/components/_menu.scss +15 -15
- data/app/javascript/stylesheets/components/_modal.scss +13 -13
- data/app/javascript/stylesheets/components/_notification.scss +3 -3
- data/app/javascript/stylesheets/components/_popover.scss +1 -1
- data/app/javascript/stylesheets/components/_segmented.scss +3 -3
- data/app/javascript/stylesheets/components/_select.scss +6 -6
- data/app/javascript/stylesheets/components/_slider.scss +1 -1
- data/app/javascript/stylesheets/components/_spin.scss +2 -2
- data/app/javascript/stylesheets/components/_steps.scss +10 -10
- data/app/javascript/stylesheets/components/_switch.scss +11 -10
- data/app/javascript/stylesheets/components/_table.scss +6 -6
- data/app/javascript/stylesheets/components/_tag.scss +2 -2
- data/app/javascript/stylesheets/components/_tooltip.scss +4 -4
- data/app/javascript/stylesheets/components/_tree_select.scss +3 -3
- data/app/javascript/stylesheets/components/_typography.scss +3 -3
- data/app/javascript/stylesheets/components/_upload.scss +4 -4
- data/app/services/hakumi_components/component_handler.rb +124 -0
- data/app/services/hakumi_components/icon/loader.rb +112 -0
- data/app/services/hakumi_components/illustrations/loader.rb +51 -0
- data/app/views/hakumi/_admin_panel.html.erb +1 -1
- data/app/views/hakumi/_affix.html.erb +1 -1
- data/app/views/hakumi/_alert.html.erb +4 -1
- data/app/views/hakumi/_confirm.html.erb +1 -1
- data/app/views/hakumi/_drawer.html.erb +2 -2
- data/app/views/hakumi/_message.html.erb +1 -1
- data/app/views/hakumi/_modal.html.erb +1 -1
- data/app/views/hakumi/_notification.html.erb +1 -1
- data/app/views/hakumi/_popconfirm.html.erb +1 -1
- data/app/views/hakumi/_popover.html.erb +1 -1
- data/app/views/hakumi/_qr_code.html.erb +1 -1
- data/app/views/hakumi/_result.html.erb +1 -1
- data/app/views/hakumi/_segmented.html.erb +1 -1
- data/app/views/hakumi/_skeleton.html.erb +1 -1
- data/app/views/hakumi/_spin.html.erb +1 -1
- data/app/views/hakumi/_statistic.html.erb +12 -12
- data/app/views/hakumi/_table.html.erb +1 -1
- data/app/views/hakumi/_tag.html.erb +1 -1
- data/app/views/hakumi/_timeline.html.erb +1 -1
- data/app/views/hakumi/_tree.html.erb +1 -1
- data/lib/generators/{hakumi → hakumi_components}/install_generator.rb +17 -4
- data/lib/hakumi_components/documentation/models.rb +290 -0
- data/lib/hakumi_components/documentation/node.rb +73 -0
- data/lib/hakumi_components/documentation.rb +141 -64
- data/lib/hakumi_components/engine.rb +26 -14
- data/lib/hakumi_components/file_size_checker.rb +215 -0
- data/lib/hakumi_components/locales/en.yml +115 -0
- data/lib/hakumi_components/rails/attribute_introspection.rb +40 -108
- data/lib/hakumi_components/rails/model_reflection.rb +154 -0
- data/lib/hakumi_components/rails/validation_introspection.rb +26 -74
- data/lib/hakumi_components/rails/validation_mapper.rb +149 -202
- data/lib/hakumi_components/rails.rb +3 -1
- data/lib/hakumi_components/stylesheet_ownership_checker.rb +191 -0
- data/lib/hakumi_components/types/form_field.rb +24 -0
- data/lib/hakumi_components/types/html.rb +28 -0
- data/lib/hakumi_components/types/rendering.rb +10 -0
- data/lib/hakumi_components/types/stimulus.rb +19 -0
- data/lib/hakumi_components/types/validation.rb +22 -0
- data/lib/hakumi_components/types.rb +13 -0
- data/lib/hakumi_components/version.rb +3 -2
- data/lib/hakumi_components.rb +26 -5
- data/lib/tasks/coverage.rake +1 -0
- metadata +310 -346
- data/app/components/hakumi/admin_panel/component.rb +0 -40
- data/app/components/hakumi/affix/component.rb +0 -88
- data/app/components/hakumi/alert/component.rb +0 -84
- data/app/components/hakumi/anchor/component.rb +0 -80
- data/app/components/hakumi/anchor/link/component.rb +0 -34
- data/app/components/hakumi/autocomplete/component.html.erb +0 -74
- data/app/components/hakumi/autocomplete/component.rb +0 -202
- data/app/components/hakumi/avatar/component.rb +0 -91
- data/app/components/hakumi/badge/component.rb +0 -85
- data/app/components/hakumi/base_component.rb +0 -192
- data/app/components/hakumi/breadcrumb/component.rb +0 -27
- data/app/components/hakumi/breadcrumb/item/component.html.erb +0 -17
- data/app/components/hakumi/breadcrumb/item/component.rb +0 -35
- data/app/components/hakumi/button/component.rb +0 -121
- data/app/components/hakumi/calendar/component.rb +0 -448
- data/app/components/hakumi/card/component.rb +0 -94
- data/app/components/hakumi/card/grid/component.html.erb +0 -3
- data/app/components/hakumi/card/grid/component.rb +0 -37
- data/app/components/hakumi/card/meta/component.html.erb +0 -23
- data/app/components/hakumi/card/meta/component.rb +0 -46
- data/app/components/hakumi/carousel/component.rb +0 -147
- data/app/components/hakumi/cascader/component.html.erb +0 -41
- data/app/components/hakumi/cascader/component.rb +0 -119
- data/app/components/hakumi/checkbox/component.rb +0 -64
- data/app/components/hakumi/checkbox/group/component.html.erb +0 -12
- data/app/components/hakumi/checkbox/group/component.rb +0 -64
- data/app/components/hakumi/collapse/component.rb +0 -117
- data/app/components/hakumi/collapse/panel/component.rb +0 -65
- data/app/components/hakumi/color_picker/component.rb +0 -169
- data/app/components/hakumi/concerns/form_field.rb +0 -135
- data/app/components/hakumi/date_picker/component.rb +0 -140
- data/app/components/hakumi/date_picker/range_picker.rb +0 -136
- data/app/components/hakumi/date_picker/shared_rendering.rb +0 -199
- data/app/components/hakumi/descriptions/component.rb +0 -182
- data/app/components/hakumi/descriptions/item/component.rb +0 -28
- data/app/components/hakumi/divider/component.rb +0 -66
- data/app/components/hakumi/drawer/component.rb +0 -108
- data/app/components/hakumi/dropdown/component.rb +0 -97
- data/app/components/hakumi/dropdown/item/component.rb +0 -47
- data/app/components/hakumi/flex/component.rb +0 -78
- data/app/components/hakumi/float_button/back_top/component.rb +0 -79
- data/app/components/hakumi/float_button/component.rb +0 -203
- data/app/components/hakumi/float_button/group/component.rb +0 -227
- data/app/components/hakumi/float_button/group_cluster/component.rb +0 -141
- data/app/components/hakumi/grid/col/component.rb +0 -98
- data/app/components/hakumi/grid/row/component.rb +0 -79
- data/app/components/hakumi/image/component.rb +0 -112
- data/app/components/hakumi/image/preview_group/component.rb +0 -70
- data/app/components/hakumi/input/component.rb +0 -185
- data/app/components/hakumi/input/password/component.rb +0 -95
- data/app/components/hakumi/input/text_area/component.rb +0 -131
- data/app/components/hakumi/input_number/component.rb +0 -198
- data/app/components/hakumi/layout/component.html.erb +0 -1
- data/app/components/hakumi/layout/component.rb +0 -21
- data/app/components/hakumi/layout/content/component.html.erb +0 -1
- data/app/components/hakumi/layout/content/component.rb +0 -19
- data/app/components/hakumi/layout/footer/component.html.erb +0 -1
- data/app/components/hakumi/layout/footer/component.rb +0 -19
- data/app/components/hakumi/layout/header/component.html.erb +0 -1
- data/app/components/hakumi/layout/header/component.rb +0 -19
- data/app/components/hakumi/layout/sider/component.html.erb +0 -1
- data/app/components/hakumi/layout/sider/component.rb +0 -56
- data/app/components/hakumi/mentions/component.rb +0 -165
- data/app/components/hakumi/menu/component.rb +0 -126
- data/app/components/hakumi/menu/group/component.rb +0 -47
- data/app/components/hakumi/menu/item/component.rb +0 -47
- data/app/components/hakumi/menu/sub_menu/component.rb +0 -92
- data/app/components/hakumi/message/component.rb +0 -106
- data/app/components/hakumi/modal/component.rb +0 -99
- data/app/components/hakumi/modal/confirm/component.html.erb +0 -23
- data/app/components/hakumi/modal/confirm/component.rb +0 -46
- data/app/components/hakumi/modal/error/component.rb +0 -51
- data/app/components/hakumi/modal/info/component.rb +0 -51
- data/app/components/hakumi/modal/success/component.rb +0 -51
- data/app/components/hakumi/modal/warning/component.rb +0 -56
- data/app/components/hakumi/notification/component.rb +0 -126
- data/app/components/hakumi/pagination/component.rb +0 -205
- data/app/components/hakumi/popconfirm/component.rb +0 -72
- data/app/components/hakumi/popover/component.rb +0 -132
- data/app/components/hakumi/progress/component.rb +0 -565
- data/app/components/hakumi/qr_code/component.rb +0 -339
- data/app/components/hakumi/radio/component.rb +0 -80
- data/app/components/hakumi/radio/group/component.rb +0 -132
- data/app/components/hakumi/result/component.rb +0 -125
- data/app/components/hakumi/segmented/component.rb +0 -269
- data/app/components/hakumi/select/component.rb +0 -125
- data/app/components/hakumi/skeleton/avatar/component.rb +0 -66
- data/app/components/hakumi/skeleton/button/component.rb +0 -59
- data/app/components/hakumi/skeleton/component.rb +0 -200
- data/app/components/hakumi/skeleton/image/component.rb +0 -80
- data/app/components/hakumi/skeleton/input/component.rb +0 -51
- data/app/components/hakumi/skeleton/node/component.rb +0 -43
- data/app/components/hakumi/slider/component.rb +0 -228
- data/app/components/hakumi/space/compact/component.html.erb +0 -3
- data/app/components/hakumi/space/compact/component.rb +0 -36
- data/app/components/hakumi/space/component.rb +0 -73
- data/app/components/hakumi/spin/component.rb +0 -209
- data/app/components/hakumi/splitter/component.html.erb +0 -3
- data/app/components/hakumi/splitter/component.rb +0 -38
- data/app/components/hakumi/splitter/panel/component.html.erb +0 -3
- data/app/components/hakumi/splitter/panel/component.rb +0 -73
- data/app/components/hakumi/statistic/component.rb +0 -287
- data/app/components/hakumi/steps/component.rb +0 -145
- data/app/components/hakumi/steps/item/component.rb +0 -91
- data/app/components/hakumi/switch/component.rb +0 -124
- data/app/components/hakumi/table/column/component.rb +0 -80
- data/app/components/hakumi/table/component.rb +0 -731
- data/app/components/hakumi/table/concerns/columns.rb +0 -219
- data/app/components/hakumi/table/concerns/editable.rb +0 -121
- data/app/components/hakumi/table/concerns/ellipsis.rb +0 -63
- data/app/components/hakumi/table/concerns/fixed_columns.rb +0 -87
- data/app/components/hakumi/tabs/component.rb +0 -196
- data/app/components/hakumi/tabs/item/component.rb +0 -87
- data/app/components/hakumi/tag/component.rb +0 -187
- data/app/components/hakumi/timeline/component.html.erb +0 -7
- data/app/components/hakumi/timeline/component.rb +0 -168
- data/app/components/hakumi/timeline/item/component.rb +0 -137
- data/app/components/hakumi/tooltip/component.rb +0 -121
- data/app/components/hakumi/tour/component.rb +0 -158
- data/app/components/hakumi/transfer/component.html.erb +0 -173
- data/app/components/hakumi/transfer/component.rb +0 -245
- data/app/components/hakumi/tree/component.rb +0 -523
- data/app/components/hakumi/tree_select/component.rb +0 -261
- data/app/components/hakumi/typography/base_component.rb +0 -109
- data/app/components/hakumi/typography/link/component.rb +0 -34
- data/app/components/hakumi/typography/text/component.rb +0 -8
- data/app/components/hakumi/typography/title/component.rb +0 -29
- data/app/components/hakumi/upload/component.html.erb +0 -117
- data/app/components/hakumi/upload/component.rb +0 -193
- data/app/form_builders/hakumi/form_builder.rb +0 -482
- data/app/helpers/hakumi/form_helper.rb +0 -39
- data/app/services/hakumi/component_handler.rb +0 -53
- data/app/services/hakumi/icon/loader.rb +0 -95
- data/app/services/hakumi/illustrations/loader.rb +0 -43
- data/sig/action_view/tag_builder.rbs +0 -24
- data/sig/active_support/concern_patch.rbs +0 -7
- data/sig/generators/hakumi/install_generator.rbs +0 -11
- data/sig/hakumi/admin_panel/component.rbs +0 -28
- data/sig/hakumi/affix/component.rbs +0 -44
- data/sig/hakumi/alert/component.rbs +0 -64
- data/sig/hakumi/anchor/component.rbs +0 -45
- data/sig/hakumi/anchor/link/component.rbs +0 -31
- data/sig/hakumi/autocomplete/component.rbs +0 -68
- data/sig/hakumi/avatar/component.rbs +0 -44
- data/sig/hakumi/badge/component.rbs +0 -41
- data/sig/hakumi/base_component.rbs +0 -82
- data/sig/hakumi/breadcrumb/component.rbs +0 -21
- data/sig/hakumi/breadcrumb/item/component.rbs +0 -36
- data/sig/hakumi/button/component.rbs +0 -56
- data/sig/hakumi/calendar/component.rbs +0 -41
- data/sig/hakumi/card/component.rbs +0 -50
- data/sig/hakumi/card/grid/component.rbs +0 -21
- data/sig/hakumi/card/meta/component.rbs +0 -25
- data/sig/hakumi/carousel/component.rbs +0 -88
- data/sig/hakumi/cascader/component.rbs +0 -52
- data/sig/hakumi/checkbox/component.rbs +0 -46
- data/sig/hakumi/checkbox/group/component.rbs +0 -34
- data/sig/hakumi/collapse/component.rbs +0 -57
- data/sig/hakumi/collapse/panel/component.rbs +0 -47
- data/sig/hakumi/color_picker/component.rbs +0 -80
- data/sig/hakumi/concerns/form_field.rbs +0 -89
- data/sig/hakumi/container/component.rbs +0 -37
- data/sig/hakumi/date_picker/component.rbs +0 -72
- data/sig/hakumi/date_picker/range_picker.rbs +0 -68
- data/sig/hakumi/date_picker/shared_rendering.rbs +0 -41
- data/sig/hakumi/descriptions/component.rbs +0 -59
- data/sig/hakumi/descriptions/item/component.rbs +0 -31
- data/sig/hakumi/divider/component.rbs +0 -39
- data/sig/hakumi/drawer/component.rbs +0 -66
- data/sig/hakumi/dropdown/component.rbs +0 -45
- data/sig/hakumi/dropdown/divider/component.rbs +0 -11
- data/sig/hakumi/dropdown/item/component.rbs +0 -45
- data/sig/hakumi/empty/component.rbs +0 -40
- data/sig/hakumi/flex/component.rbs +0 -47
- data/sig/hakumi/float_button/back_top/component.rbs +0 -45
- data/sig/hakumi/float_button/component.rbs +0 -80
- data/sig/hakumi/float_button/group/component.rbs +0 -95
- data/sig/hakumi/float_button/group_cluster/component.rbs +0 -60
- data/sig/hakumi/form/item/component.rbs +0 -39
- data/sig/hakumi/form_builder.rbs +0 -37
- data/sig/hakumi/grid/col/component.rbs +0 -50
- data/sig/hakumi/grid/row/component.rbs +0 -46
- data/sig/hakumi/icon/component.rbs +0 -56
- data/sig/hakumi/image/component.rbs +0 -56
- data/sig/hakumi/image/preview_group/component.rbs +0 -28
- data/sig/hakumi/input/component.rbs +0 -71
- data/sig/hakumi/input/password/component.rbs +0 -27
- data/sig/hakumi/input/text_area/component.rbs +0 -42
- data/sig/hakumi/input_number/component.rbs +0 -85
- data/sig/hakumi/layout/component.rbs +0 -21
- data/sig/hakumi/layout/content/component.rbs +0 -19
- data/sig/hakumi/layout/footer/component.rbs +0 -19
- data/sig/hakumi/layout/header/component.rbs +0 -19
- data/sig/hakumi/layout/sider/component.rbs +0 -19
- data/sig/hakumi/mentions/component.rbs +0 -75
- data/sig/hakumi/menu/component.rbs +0 -52
- data/sig/hakumi/menu/divider/component.rbs +0 -11
- data/sig/hakumi/menu/group/component.rbs +0 -20
- data/sig/hakumi/menu/item/component.rbs +0 -42
- data/sig/hakumi/menu/sub_menu/component.rbs +0 -37
- data/sig/hakumi/message/component.rbs +0 -50
- data/sig/hakumi/modal/component.rbs +0 -76
- data/sig/hakumi/modal/confirm/component.rbs +0 -32
- data/sig/hakumi/modal/error/component.rbs +0 -27
- data/sig/hakumi/modal/info/component.rbs +0 -27
- data/sig/hakumi/modal/success/component.rbs +0 -27
- data/sig/hakumi/modal/warning/component.rbs +0 -27
- data/sig/hakumi/notification/component.rbs +0 -64
- data/sig/hakumi/pagination/component.rbs +0 -113
- data/sig/hakumi/popconfirm/component.rbs +0 -52
- data/sig/hakumi/popover/component.rbs +0 -66
- data/sig/hakumi/progress/component.rbs +0 -201
- data/sig/hakumi/qr_code/component.rbs +0 -111
- data/sig/hakumi/radio/component.rbs +0 -55
- data/sig/hakumi/radio/group/component.rbs +0 -71
- data/sig/hakumi/rails/attribute_introspection.rbs +0 -16
- data/sig/hakumi/rails/validation_introspection.rbs +0 -18
- data/sig/hakumi/rails/validation_mapper.rbs +0 -53
- data/sig/hakumi/rails.rbs +0 -6
- data/sig/hakumi/rate/component.rbs +0 -56
- data/sig/hakumi/result/component.rbs +0 -65
- data/sig/hakumi/segmented/component.rbs +0 -72
- data/sig/hakumi/select/component.rbs +0 -73
- data/sig/hakumi/skeleton/avatar/component.rbs +0 -23
- data/sig/hakumi/skeleton/button/component.rbs +0 -24
- data/sig/hakumi/skeleton/component.rbs +0 -76
- data/sig/hakumi/skeleton/image/component.rbs +0 -22
- data/sig/hakumi/skeleton/input/component.rbs +0 -23
- data/sig/hakumi/skeleton/node/component.rbs +0 -21
- data/sig/hakumi/slider/component.rbs +0 -85
- data/sig/hakumi/space/compact/component.rbs +0 -21
- data/sig/hakumi/space/component.rbs +0 -47
- data/sig/hakumi/spin/component.rbs +0 -77
- data/sig/hakumi/splitter/component.rbs +0 -27
- data/sig/hakumi/splitter/panel/component.rbs +0 -36
- data/sig/hakumi/statistic/component.rbs +0 -97
- data/sig/hakumi/steps/component.rbs +0 -82
- data/sig/hakumi/steps/item/component.rbs +0 -29
- data/sig/hakumi/switch/component.rbs +0 -52
- data/sig/hakumi/table/column/component.rbs +0 -57
- data/sig/hakumi/table/column_group/component.rbs +0 -20
- data/sig/hakumi/table/component.rbs +0 -279
- data/sig/hakumi/table/concerns/columns.rbs +0 -95
- data/sig/hakumi/table/concerns/editable.rbs +0 -40
- data/sig/hakumi/table/concerns/ellipsis.rbs +0 -27
- data/sig/hakumi/table/concerns/fixed_columns.rbs +0 -33
- data/sig/hakumi/tabs/component.rbs +0 -66
- data/sig/hakumi/tabs/item/component.rbs +0 -29
- data/sig/hakumi/tag/component.rbs +0 -86
- data/sig/hakumi/tag/group/component.rbs +0 -24
- data/sig/hakumi/time_picker/component.rbs +0 -72
- data/sig/hakumi/timeline/component.rbs +0 -61
- data/sig/hakumi/timeline/item/component.rbs +0 -70
- data/sig/hakumi/tooltip/component.rbs +0 -73
- data/sig/hakumi/tour/component.rbs +0 -84
- data/sig/hakumi/transfer/component.rbs +0 -75
- data/sig/hakumi/tree/component.rbs +0 -126
- data/sig/hakumi/tree_select/component.rbs +0 -122
- data/sig/hakumi/typography/base_component.rbs +0 -57
- data/sig/hakumi/typography/link/component.rbs +0 -28
- data/sig/hakumi/typography/paragraph/component.rbs +0 -13
- data/sig/hakumi/typography/title/component.rbs +0 -28
- data/sig/hakumi/upload/component.rbs +0 -78
- data/sig/hakumi.rbs +0 -96
- data/sig/rails/active_model/validations/comparison_validator.rbs +0 -6
- data/sig/rails.rbs +0 -18
- data/sig/view_component/base.rbs +0 -28
- /data/app/components/{hakumi → hakumi_components}/affix/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/anchor/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/breadcrumb/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/dropdown/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/dropdown/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/icon/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/group/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/sub_menu/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/message/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/qr_code/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/result/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/avatar/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/button/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/input/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/node/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/spin/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/statistic/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/steps/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/tour/component.html.erb +0 -0
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Radio
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
include Hakumi::Concerns::FormField
|
|
7
|
-
|
|
8
|
-
SIZES: Array[hakumi_size_standard]
|
|
9
|
-
|
|
10
|
-
@name: String
|
|
11
|
-
@value: (String | Integer | Float)?
|
|
12
|
-
@text: String?
|
|
13
|
-
@label: String?
|
|
14
|
-
@caption: String?
|
|
15
|
-
@checked: bool
|
|
16
|
-
@disabled: bool
|
|
17
|
-
@size: hakumi_size_standard
|
|
18
|
-
@id: String
|
|
19
|
-
@auto_focus: bool
|
|
20
|
-
@required: bool
|
|
21
|
-
@standalone: bool
|
|
22
|
-
@errors: Array[String]
|
|
23
|
-
@html_options: hakumi_html_options
|
|
24
|
-
|
|
25
|
-
def initialize: (
|
|
26
|
-
name: String,
|
|
27
|
-
?value: (String | Integer | Float)?,
|
|
28
|
-
?text: String?,
|
|
29
|
-
?label: String?,
|
|
30
|
-
?caption: String?,
|
|
31
|
-
?checked: bool,
|
|
32
|
-
?disabled: bool,
|
|
33
|
-
?size: hakumi_size_standard,
|
|
34
|
-
?id: String?,
|
|
35
|
-
?auto_focus: bool,
|
|
36
|
-
?required: bool,
|
|
37
|
-
?standalone: bool,
|
|
38
|
-
?errors: (Array[String] | String)?,
|
|
39
|
-
**hakumi_html_options html_options
|
|
40
|
-
) -> void
|
|
41
|
-
|
|
42
|
-
def wrapper_classes: () -> String
|
|
43
|
-
|
|
44
|
-
def radio_classes: () -> String
|
|
45
|
-
|
|
46
|
-
def data_controllers: () -> String
|
|
47
|
-
|
|
48
|
-
def label_text: () -> String?
|
|
49
|
-
|
|
50
|
-
private
|
|
51
|
-
|
|
52
|
-
def validate_props!: () -> void
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Radio
|
|
5
|
-
module Group
|
|
6
|
-
class Component < Hakumi::BaseComponent
|
|
7
|
-
include Hakumi::Concerns::FormField
|
|
8
|
-
|
|
9
|
-
type radio_variant = :default | :button | :solid
|
|
10
|
-
type radio_direction = :horizontal | :vertical
|
|
11
|
-
type radio_option = { label: String, value: (String | Integer | Float), disabled: bool }
|
|
12
|
-
|
|
13
|
-
SIZES: Array[hakumi_size_standard]
|
|
14
|
-
VARIANTS: Array[radio_variant]
|
|
15
|
-
DIRECTIONS: Array[radio_direction]
|
|
16
|
-
|
|
17
|
-
@name: String
|
|
18
|
-
@value: (String | Integer | Float)?
|
|
19
|
-
@options: Array[radio_option]
|
|
20
|
-
@label: String?
|
|
21
|
-
@caption: String?
|
|
22
|
-
@variant: radio_variant
|
|
23
|
-
@direction: radio_direction
|
|
24
|
-
@size: hakumi_size_standard
|
|
25
|
-
@disabled: bool
|
|
26
|
-
@standalone: bool
|
|
27
|
-
@required: bool
|
|
28
|
-
@errors: Array[String]
|
|
29
|
-
@html_options: hakumi_html_options
|
|
30
|
-
|
|
31
|
-
def initialize: (
|
|
32
|
-
?name: String?,
|
|
33
|
-
?value: (String | Integer | Float)?,
|
|
34
|
-
?options: Array[Hash[Symbol, untyped] | String],
|
|
35
|
-
?label: String?,
|
|
36
|
-
?caption: String?,
|
|
37
|
-
?variant: radio_variant,
|
|
38
|
-
?direction: radio_direction,
|
|
39
|
-
?size: hakumi_size_standard,
|
|
40
|
-
?disabled: bool,
|
|
41
|
-
?standalone: bool,
|
|
42
|
-
?required: bool,
|
|
43
|
-
?errors: (Array[String] | String)?,
|
|
44
|
-
**hakumi_html_options html_options
|
|
45
|
-
) -> void
|
|
46
|
-
|
|
47
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
48
|
-
|
|
49
|
-
def normalized_options: () -> Array[radio_option]
|
|
50
|
-
|
|
51
|
-
def option_checked?: ((String | Integer | Float) option_value) -> bool
|
|
52
|
-
|
|
53
|
-
def option_disabled?: (radio_option option) -> bool
|
|
54
|
-
|
|
55
|
-
def button_wrapper_classes: (radio_option option) -> String
|
|
56
|
-
|
|
57
|
-
def option_id: (Integer index) -> String
|
|
58
|
-
|
|
59
|
-
def button_group?: () -> bool
|
|
60
|
-
|
|
61
|
-
private
|
|
62
|
-
|
|
63
|
-
def wrapper_classes: () -> String
|
|
64
|
-
|
|
65
|
-
def normalize_options: (Array[Hash[Symbol, untyped] | String] options) -> Array[radio_option]
|
|
66
|
-
|
|
67
|
-
def validate_props!: () -> void
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Rails
|
|
5
|
-
class AttributeIntrospection
|
|
6
|
-
def self.human_attribute_name: (Object object, Symbol attribute) -> String?
|
|
7
|
-
def self.placeholder: (Object object, Symbol attribute) -> String?
|
|
8
|
-
def self.hint: (Object object, Symbol attribute) -> String?
|
|
9
|
-
def self.input_type_from_column: (Object object, Symbol attribute) -> Symbol
|
|
10
|
-
def self.column_for: (Object object, Symbol attribute) -> Object?
|
|
11
|
-
def self.numeric_column?: (Object object, Symbol attribute) -> bool
|
|
12
|
-
def self.text_column?: (Object object, Symbol attribute) -> bool
|
|
13
|
-
def self.column_limit: (Object object, Symbol attribute) -> Integer?
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Rails
|
|
5
|
-
class ValidationIntrospection
|
|
6
|
-
def self.required?: (Object object, Symbol attribute) -> bool
|
|
7
|
-
def self.maxlength: (Object object, Symbol attribute) -> Integer?
|
|
8
|
-
def self.minlength: (Object object, Symbol attribute) -> Integer?
|
|
9
|
-
def self.pattern: (Object object, Symbol attribute) -> String?
|
|
10
|
-
def self.numericality_constraints: (Object object, Symbol attribute) -> Hash[Symbol, Object]
|
|
11
|
-
def self.email_field?: (Object object, Symbol attribute) -> bool
|
|
12
|
-
def self.url_field?: (Object object, Symbol attribute) -> bool
|
|
13
|
-
def self.has_validators?: (Object object) -> bool
|
|
14
|
-
def self.validators_for: (Object object, Symbol attribute) -> Array[Object]
|
|
15
|
-
def self.validator_options: (Object validator) -> Hash[Symbol, Object]
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Rails
|
|
5
|
-
class ValidationMapper
|
|
6
|
-
type validator = _Validator
|
|
7
|
-
type model_object = _ModelObject
|
|
8
|
-
|
|
9
|
-
interface _Validator
|
|
10
|
-
def options: () -> Hash[Symbol, untyped]
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
interface _ModelObject
|
|
14
|
-
def errors: () -> _Errors
|
|
15
|
-
def class: () -> Class
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
interface _Errors
|
|
19
|
-
def generate_message: (Symbol attribute, Symbol type, Hash[Symbol, untyped] options) -> String
|
|
20
|
-
def full_message: (Symbol attribute, String message) -> String
|
|
21
|
-
def respond_to?: (Symbol method) -> bool
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# Public methods
|
|
25
|
-
def self.to_frontend_rules: (untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
26
|
-
def self.merge_rules: (Array[Hash[Symbol, untyped]]? manual_rules, Array[Hash[Symbol, untyped]] auto_rules) -> Array[Hash[Symbol, untyped]]
|
|
27
|
-
|
|
28
|
-
# Private methods
|
|
29
|
-
def self.extract_rule_type: (Hash[Symbol, untyped] rule) -> Symbol?
|
|
30
|
-
def self.map_validator: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]?
|
|
31
|
-
def self.map_presence: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
32
|
-
def self.map_length: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
33
|
-
def self.map_numericality: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
34
|
-
def self.map_format: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
35
|
-
def self.map_confirmation: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
36
|
-
def self.map_comparison: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
37
|
-
def self.map_inclusion: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
38
|
-
def self.map_exclusion: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
39
|
-
def self.map_acceptance: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
40
|
-
def self.map_absence: (validator validator, untyped object, Symbol attribute) -> Array[Hash[Symbol, untyped]]
|
|
41
|
-
def self.email_regex?: (String regex_source) -> bool
|
|
42
|
-
def self.url_regex?: (String regex_source) -> bool
|
|
43
|
-
def self.humanize: (Symbol attribute) -> String
|
|
44
|
-
def self.validation_message: (untyped object, Symbol attribute, Symbol type, Hash[Symbol, untyped] options, Hash[Symbol, untyped] validator_options) -> String
|
|
45
|
-
def self.anonymous_class?: (untyped object) -> bool
|
|
46
|
-
def self.build_comparison_target: (untyped target, untyped object) -> Hash[Symbol, untyped]?
|
|
47
|
-
def self.comparison_message_options: (untyped target, untyped object, Hash[Symbol, untyped] comparison) -> Hash[Symbol, untyped]
|
|
48
|
-
def self.resolve_comparison_value: (untyped target, untyped object) -> untyped
|
|
49
|
-
def self.fallback_message: (Symbol attribute, Symbol type, Hash[Symbol, untyped] options, Hash[Symbol, untyped] validator_options) -> String
|
|
50
|
-
def self.fallback_message_text: (Symbol type, Hash[Symbol, untyped] options) -> String
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
data/sig/hakumi/rails.rbs
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Rate
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
include Hakumi::Concerns::FormField
|
|
7
|
-
|
|
8
|
-
type star_state = :full | :half | :zero
|
|
9
|
-
|
|
10
|
-
@name: String
|
|
11
|
-
@label: String?
|
|
12
|
-
@caption: String?
|
|
13
|
-
@value: untyped
|
|
14
|
-
@default_value: Numeric
|
|
15
|
-
@count: Integer
|
|
16
|
-
@allow_half: bool
|
|
17
|
-
@allow_clear: bool
|
|
18
|
-
@disabled: bool
|
|
19
|
-
@readonly: bool
|
|
20
|
-
@tooltips: Array[String]
|
|
21
|
-
@character: String?
|
|
22
|
-
@required: bool
|
|
23
|
-
@standalone: bool
|
|
24
|
-
@errors: Array[String]
|
|
25
|
-
@html_options: hakumi_html_options
|
|
26
|
-
|
|
27
|
-
def initialize: (
|
|
28
|
-
?name: String?,
|
|
29
|
-
?label: String?,
|
|
30
|
-
?caption: String?,
|
|
31
|
-
?value: untyped,
|
|
32
|
-
?default_value: Numeric,
|
|
33
|
-
?count: Integer,
|
|
34
|
-
?allow_half: bool,
|
|
35
|
-
?allow_clear: bool,
|
|
36
|
-
?disabled: bool,
|
|
37
|
-
?readonly: bool,
|
|
38
|
-
?tooltips: Array[String],
|
|
39
|
-
?character: String?,
|
|
40
|
-
?required: bool,
|
|
41
|
-
?standalone: bool,
|
|
42
|
-
?errors: (Array[String] | String),
|
|
43
|
-
**hakumi_html_options html_options
|
|
44
|
-
) -> void
|
|
45
|
-
|
|
46
|
-
def current_value: () -> Float
|
|
47
|
-
def rate_classes: () -> String
|
|
48
|
-
def rate_wrapper_attributes: () -> hakumi_html_options
|
|
49
|
-
def star_state: (Integer index) -> star_state
|
|
50
|
-
def star_classes: (star_state state) -> String
|
|
51
|
-
def tooltip_for: (Integer index) -> String?
|
|
52
|
-
def character_content: () -> String?
|
|
53
|
-
def input_attributes: () -> hakumi_html_options
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Result
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
type result_status = :success | :info | :warning | :error
|
|
7
|
-
|
|
8
|
-
STATUSES: Array[String]
|
|
9
|
-
DEFAULT_TITLES: Hash[String, String]
|
|
10
|
-
DEFAULT_ICON_NAME: String
|
|
11
|
-
STATUS_ICON_MAP: Hash[String, Hash[Symbol, (String | Symbol)]]
|
|
12
|
-
STATUS_ICON_SIZE: Integer
|
|
13
|
-
|
|
14
|
-
# Extracts locals from controller params for dynamic rendering
|
|
15
|
-
# Params is typically ActionController::Parameters but we use untyped for flexibility
|
|
16
|
-
def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
|
|
17
|
-
|
|
18
|
-
@status: String
|
|
19
|
-
@title: String?
|
|
20
|
-
@sub_title: String?
|
|
21
|
-
@icon: (hakumi_icon | false)?
|
|
22
|
-
@extra: untyped # Can be String, ViewComponent, or any renderable content
|
|
23
|
-
@html_options: hakumi_html_options
|
|
24
|
-
|
|
25
|
-
def initialize: (
|
|
26
|
-
?status: result_status?,
|
|
27
|
-
?title: String?,
|
|
28
|
-
?sub_title: String?,
|
|
29
|
-
?icon: (hakumi_icon | false)?,
|
|
30
|
-
?extra: untyped, # Extra content slot - can be any renderable
|
|
31
|
-
**hakumi_html_options html_options
|
|
32
|
-
) -> void
|
|
33
|
-
|
|
34
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
35
|
-
|
|
36
|
-
def icon_present?: () -> bool
|
|
37
|
-
|
|
38
|
-
def icon_content: () -> String?
|
|
39
|
-
|
|
40
|
-
def title_content: () -> String?
|
|
41
|
-
|
|
42
|
-
def sub_title_content: () -> String?
|
|
43
|
-
|
|
44
|
-
def extra_content: () -> String?
|
|
45
|
-
|
|
46
|
-
def content_present?: () -> bool
|
|
47
|
-
|
|
48
|
-
def extra_present?: () -> bool
|
|
49
|
-
|
|
50
|
-
def title_present?: () -> bool
|
|
51
|
-
|
|
52
|
-
def sub_title_present?: () -> bool
|
|
53
|
-
|
|
54
|
-
private
|
|
55
|
-
|
|
56
|
-
def validate_props!: () -> void
|
|
57
|
-
|
|
58
|
-
def wrapper_classes: () -> String
|
|
59
|
-
|
|
60
|
-
def status_icon_component: () -> Hakumi::Icon::Component?
|
|
61
|
-
|
|
62
|
-
def default_icon: () -> String
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Segmented
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
# Segmented option hash structure
|
|
7
|
-
type segmented_option = {
|
|
8
|
-
label: (String | untyped), # String or ViewComponent
|
|
9
|
-
value: (String | Integer | Symbol),
|
|
10
|
-
disabled: bool,
|
|
11
|
-
icon: (String | Symbol | untyped)?, # String, Symbol, or ViewComponent
|
|
12
|
-
class_name: String?,
|
|
13
|
-
aria_label: String?
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
SIZES: Array[hakumi_size_standard]
|
|
17
|
-
|
|
18
|
-
@options: Array[segmented_option]
|
|
19
|
-
@value: (String | nil)
|
|
20
|
-
@disabled: bool
|
|
21
|
-
@block: bool
|
|
22
|
-
@vertical: bool
|
|
23
|
-
@round: bool
|
|
24
|
-
@name: String
|
|
25
|
-
@size: hakumi_size_standard
|
|
26
|
-
@aria_label: (String | nil)
|
|
27
|
-
@html_options: hakumi_html_options
|
|
28
|
-
|
|
29
|
-
# Class methods for controller integration
|
|
30
|
-
def self.extract_controller_locals: (Hash[Symbol, untyped] params) -> Hash[Symbol, untyped]
|
|
31
|
-
def self.parse_options_param: (untyped options) -> untyped
|
|
32
|
-
def self.truthy_param?: (untyped value) -> bool
|
|
33
|
-
|
|
34
|
-
def initialize: (
|
|
35
|
-
?options: Array[untyped],
|
|
36
|
-
?value: (String | Integer | Symbol)?,
|
|
37
|
-
?default_value: (String | Integer | Symbol)?,
|
|
38
|
-
?disabled: bool,
|
|
39
|
-
?block: bool,
|
|
40
|
-
?vertical: bool,
|
|
41
|
-
?round: bool,
|
|
42
|
-
?name: String?,
|
|
43
|
-
?size: hakumi_size_standard,
|
|
44
|
-
?aria_label: String?,
|
|
45
|
-
**hakumi_html_options html_options
|
|
46
|
-
) -> void
|
|
47
|
-
|
|
48
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
49
|
-
def normalized_options: () -> Array[segmented_option]
|
|
50
|
-
def option_classes: (segmented_option option) -> String
|
|
51
|
-
def option_data_attributes: (segmented_option option) -> hakumi_html_options
|
|
52
|
-
def option_input_attributes: (segmented_option option, Integer index) -> hakumi_html_options
|
|
53
|
-
def option_selected?: (segmented_option option) -> bool
|
|
54
|
-
def option_disabled?: (segmented_option option) -> bool
|
|
55
|
-
def option_id: (Integer index) -> String
|
|
56
|
-
def option_label: (segmented_option option) -> (String | nil)
|
|
57
|
-
def option_icon: (segmented_option option) -> (String | nil)
|
|
58
|
-
|
|
59
|
-
private
|
|
60
|
-
|
|
61
|
-
def validate_props!: () -> void
|
|
62
|
-
def wrapper_classes: () -> String
|
|
63
|
-
def normalize_options: (Array[untyped] options) -> Array[segmented_option]
|
|
64
|
-
def option_aria_label: (segmented_option option) -> (String | nil)
|
|
65
|
-
def icon_only_option?: (segmented_option option) -> bool
|
|
66
|
-
def data_attributes: () -> hakumi_html_options
|
|
67
|
-
def normalize_value: ((String | Integer | Symbol)? value, (String | Integer | Symbol)? default_value) -> (String | nil)
|
|
68
|
-
def normalize_size: ((String | Symbol)? size) -> (Symbol | nil)
|
|
69
|
-
def normalize_string: (untyped value) -> (String | nil)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Select
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
include Hakumi::Concerns::FormField
|
|
7
|
-
|
|
8
|
-
type select_option = [String, (String | Integer | Float)]
|
|
9
|
-
|
|
10
|
-
SIZES: Array[hakumi_size_standard]
|
|
11
|
-
VARIANTS: Array[hakumi_variant_select]
|
|
12
|
-
TRIGGERS: Array[hakumi_trigger]
|
|
13
|
-
|
|
14
|
-
@name: String
|
|
15
|
-
@options: Array[select_option | String | Integer]
|
|
16
|
-
@label: String?
|
|
17
|
-
@caption: String?
|
|
18
|
-
@value: (String | Integer | Float)?
|
|
19
|
-
@placeholder: String?
|
|
20
|
-
@size: hakumi_size_standard
|
|
21
|
-
@variant: hakumi_variant_select
|
|
22
|
-
@trigger: hakumi_trigger
|
|
23
|
-
@icon: hakumi_icon?
|
|
24
|
-
@disabled: bool
|
|
25
|
-
@required: bool
|
|
26
|
-
@allow_clear: bool
|
|
27
|
-
@show_search: bool
|
|
28
|
-
@standalone: bool
|
|
29
|
-
@errors: Array[String]
|
|
30
|
-
@html_options: hakumi_html_options
|
|
31
|
-
|
|
32
|
-
attr_reader variant: hakumi_variant_select
|
|
33
|
-
attr_reader trigger: hakumi_trigger
|
|
34
|
-
attr_reader icon: hakumi_icon?
|
|
35
|
-
|
|
36
|
-
def initialize: (
|
|
37
|
-
?name: String?,
|
|
38
|
-
?options: Array[select_option | String | Integer],
|
|
39
|
-
?label: String?,
|
|
40
|
-
?caption: String?,
|
|
41
|
-
?value: (String | Integer | Float)?,
|
|
42
|
-
?placeholder: String?,
|
|
43
|
-
?size: hakumi_size_standard,
|
|
44
|
-
?variant: hakumi_variant_select,
|
|
45
|
-
?trigger: hakumi_trigger,
|
|
46
|
-
?icon: hakumi_icon?,
|
|
47
|
-
?disabled: bool,
|
|
48
|
-
?required: bool,
|
|
49
|
-
?allow_clear: bool,
|
|
50
|
-
?show_search: bool,
|
|
51
|
-
?standalone: bool,
|
|
52
|
-
?errors: (Array[String] | String)?,
|
|
53
|
-
**hakumi_html_options html_options
|
|
54
|
-
) -> void
|
|
55
|
-
|
|
56
|
-
private
|
|
57
|
-
|
|
58
|
-
def validate_props!: () -> void
|
|
59
|
-
|
|
60
|
-
def select_wrapper_classes: () -> String
|
|
61
|
-
|
|
62
|
-
def borderless?: () -> bool
|
|
63
|
-
|
|
64
|
-
def hover_trigger?: () -> bool
|
|
65
|
-
|
|
66
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
67
|
-
|
|
68
|
-
def selected_label: () -> (String | Integer | Float)?
|
|
69
|
-
|
|
70
|
-
def formatted_options: () -> Array[select_option]
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Skeleton
|
|
5
|
-
module Avatar
|
|
6
|
-
class Component < Hakumi::BaseComponent
|
|
7
|
-
@shape: Symbol
|
|
8
|
-
@size: (Symbol | Integer)
|
|
9
|
-
@active: bool
|
|
10
|
-
@html_options: hakumi_html_options
|
|
11
|
-
|
|
12
|
-
def initialize: (?shape: Symbol, ?size: (Symbol | Integer), ?active: bool, **hakumi_html_options html_options) -> void
|
|
13
|
-
|
|
14
|
-
def call: () -> String
|
|
15
|
-
|
|
16
|
-
private
|
|
17
|
-
|
|
18
|
-
def wrapper_classes: () -> String
|
|
19
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Skeleton
|
|
5
|
-
module Button
|
|
6
|
-
class Component < Hakumi::BaseComponent
|
|
7
|
-
@shape: Symbol
|
|
8
|
-
@size: (Symbol | Integer)
|
|
9
|
-
@active: bool
|
|
10
|
-
@block: bool
|
|
11
|
-
@html_options: hakumi_html_options
|
|
12
|
-
|
|
13
|
-
def initialize: (?shape: Symbol, ?size: (Symbol | Integer), ?active: bool, ?block: bool, **hakumi_html_options html_options) -> void
|
|
14
|
-
|
|
15
|
-
def call: () -> String
|
|
16
|
-
|
|
17
|
-
private
|
|
18
|
-
|
|
19
|
-
def wrapper_classes: () -> String
|
|
20
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Skeleton
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
type skeleton_avatar_size = :small | :default | :large
|
|
7
|
-
type skeleton_avatar_shape = :circle | :square
|
|
8
|
-
type skeleton_config = Hash[Symbol, untyped]
|
|
9
|
-
|
|
10
|
-
AVATAR_SIZES: Array[skeleton_avatar_size]
|
|
11
|
-
AVATAR_SHAPES: Array[skeleton_avatar_shape]
|
|
12
|
-
DEFAULT_PARAGRAPH_ROWS: Integer
|
|
13
|
-
|
|
14
|
-
# Extracts locals from controller params for dynamic rendering
|
|
15
|
-
def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
|
|
16
|
-
|
|
17
|
-
def self.normalize_config_param: (untyped value) -> (skeleton_config | bool)?
|
|
18
|
-
|
|
19
|
-
@loading: bool
|
|
20
|
-
@active: bool
|
|
21
|
-
@round: bool
|
|
22
|
-
@avatar: skeleton_config?
|
|
23
|
-
@title: skeleton_config?
|
|
24
|
-
@paragraph: skeleton_config?
|
|
25
|
-
@html_options: hakumi_html_options
|
|
26
|
-
|
|
27
|
-
def initialize: (
|
|
28
|
-
?loading: bool,
|
|
29
|
-
?active: bool,
|
|
30
|
-
?avatar: skeleton_config | bool,
|
|
31
|
-
?title: skeleton_config | bool,
|
|
32
|
-
?paragraph: skeleton_config | bool,
|
|
33
|
-
?round: bool,
|
|
34
|
-
**hakumi_html_options html_options
|
|
35
|
-
) -> void
|
|
36
|
-
|
|
37
|
-
def loading?: () -> bool
|
|
38
|
-
|
|
39
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
40
|
-
|
|
41
|
-
def avatar?: () -> bool
|
|
42
|
-
|
|
43
|
-
def title?: () -> bool
|
|
44
|
-
|
|
45
|
-
def paragraph?: () -> bool
|
|
46
|
-
|
|
47
|
-
def avatar_classes: () -> String
|
|
48
|
-
|
|
49
|
-
def avatar_style: () -> String?
|
|
50
|
-
|
|
51
|
-
def title_style: () -> String?
|
|
52
|
-
|
|
53
|
-
def paragraph_row_widths: () -> Array[String]
|
|
54
|
-
|
|
55
|
-
def paragraph_row_style: (String? width) -> String?
|
|
56
|
-
|
|
57
|
-
def paragraph_rows: () -> Integer
|
|
58
|
-
|
|
59
|
-
private
|
|
60
|
-
|
|
61
|
-
def normalize_config: (untyped value) -> skeleton_config?
|
|
62
|
-
|
|
63
|
-
def wrapper_classes: () -> String
|
|
64
|
-
|
|
65
|
-
def avatar_size: () -> (skeleton_avatar_size | Numeric)
|
|
66
|
-
|
|
67
|
-
def avatar_shape: () -> skeleton_avatar_shape
|
|
68
|
-
|
|
69
|
-
def default_paragraph_widths: (Integer rows) -> Array[String]
|
|
70
|
-
|
|
71
|
-
def validate_props!: () -> void
|
|
72
|
-
|
|
73
|
-
def validate_inclusion_value: (Symbol name, untyped value, Array[untyped] allowed) -> void
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Skeleton
|
|
5
|
-
module Image
|
|
6
|
-
class Component < Hakumi::BaseComponent
|
|
7
|
-
@shape: Symbol
|
|
8
|
-
@active: bool
|
|
9
|
-
@html_options: hakumi_html_options
|
|
10
|
-
|
|
11
|
-
def initialize: (?shape: Symbol, ?active: bool, **hakumi_html_options html_options) -> void
|
|
12
|
-
|
|
13
|
-
def call: () -> String
|
|
14
|
-
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
def wrapper_classes: () -> String
|
|
18
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Skeleton
|
|
5
|
-
module Input
|
|
6
|
-
class Component < Hakumi::BaseComponent
|
|
7
|
-
@size: (Symbol | Integer)
|
|
8
|
-
@active: bool
|
|
9
|
-
@block: bool
|
|
10
|
-
@html_options: hakumi_html_options
|
|
11
|
-
|
|
12
|
-
def initialize: (?size: (Symbol | Integer), ?active: bool, ?block: bool, **hakumi_html_options html_options) -> void
|
|
13
|
-
|
|
14
|
-
def call: () -> String
|
|
15
|
-
|
|
16
|
-
private
|
|
17
|
-
|
|
18
|
-
def wrapper_classes: () -> String
|
|
19
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Skeleton
|
|
5
|
-
module Node
|
|
6
|
-
class Component < Hakumi::BaseComponent
|
|
7
|
-
@active: bool
|
|
8
|
-
@html_options: hakumi_html_options
|
|
9
|
-
|
|
10
|
-
def initialize: (?active: bool, **hakumi_html_options html_options) -> void
|
|
11
|
-
|
|
12
|
-
def call: () -> String
|
|
13
|
-
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
def wrapper_classes: () -> String
|
|
17
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|