hakumi_components 0.1.18.pre → 0.1.19.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +32 -2
- data/README.md +208 -381
- data/app/assets/javascripts/hakumi_components.js +40 -34
- data/app/assets/stylesheets/hakumi_components.css +1 -1
- data/app/components/hakumi_components/admin_panel/component.rb +19 -9
- data/app/components/hakumi_components/affix/component.rb +54 -30
- data/app/components/hakumi_components/alert/component.html.erb +2 -2
- data/app/components/hakumi_components/alert/component.rb +68 -18
- data/app/components/hakumi_components/anchor/component.rb +35 -27
- data/app/components/hakumi_components/anchor/link/component.html.erb +1 -1
- data/app/components/hakumi_components/anchor/link/component.rb +28 -9
- data/app/components/hakumi_components/autocomplete/component.html.erb +86 -66
- data/app/components/hakumi_components/autocomplete/component.rb +115 -89
- data/app/components/hakumi_components/avatar/component.rb +45 -12
- data/app/components/hakumi_components/badge/component.rb +99 -45
- data/app/components/hakumi_components/base_component.rb +290 -91
- data/app/components/hakumi_components/breadcrumb/component.rb +16 -5
- data/app/components/hakumi_components/breadcrumb/item/component.html.erb +5 -5
- data/app/components/hakumi_components/breadcrumb/item/component.rb +56 -8
- data/app/components/hakumi_components/breadcrumb/item/menu_entry.rb +71 -0
- data/app/components/hakumi_components/button/component.rb +62 -20
- data/app/components/hakumi_components/calendar/component.html.erb +19 -19
- data/app/components/hakumi_components/calendar/component.rb +225 -202
- 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_components/card/component.html.erb +2 -2
- data/app/components/hakumi_components/card/component.rb +76 -49
- data/app/components/hakumi_components/card/grid/component.html.erb +1 -1
- data/app/components/hakumi_components/card/grid/component.rb +23 -17
- data/app/components/hakumi_components/card/meta/component.html.erb +8 -8
- data/app/components/hakumi_components/card/meta/component.rb +42 -24
- data/app/components/hakumi_components/carousel/autoplay_config.rb +27 -0
- data/app/components/hakumi_components/carousel/component.rb +85 -67
- data/app/components/hakumi_components/carousel/dots_config.rb +36 -0
- data/app/components/hakumi_components/cascader/component.html.erb +54 -36
- data/app/components/hakumi_components/cascader/component.rb +111 -62
- data/app/components/hakumi_components/checkbox/component.html.erb +5 -5
- data/app/components/hakumi_components/checkbox/component.rb +40 -6
- data/app/components/hakumi_components/checkbox/group/component.html.erb +4 -4
- data/app/components/hakumi_components/checkbox/group/component.rb +40 -13
- data/app/components/hakumi_components/checkbox/group/option.rb +34 -0
- data/app/components/hakumi_components/collapse/component.rb +64 -48
- data/app/components/hakumi_components/collapse/panel/component.rb +64 -21
- data/app/components/hakumi_components/color_picker/component.html.erb +21 -22
- data/app/components/hakumi_components/color_picker/component.rb +159 -49
- data/app/components/hakumi_components/color_picker/preset_group.rb +27 -0
- data/app/components/hakumi_components/concerns/form_field.rb +169 -68
- 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_components/container/component.rb +29 -14
- data/app/components/hakumi_components/date_picker/component.html.erb +1 -3
- data/app/components/hakumi_components/date_picker/component.rb +130 -16
- data/app/components/hakumi_components/date_picker/range_picker.rb +159 -28
- data/app/components/hakumi_components/date_picker/shared_rendering.rb +151 -61
- data/app/components/hakumi_components/descriptions/component.html.erb +6 -6
- data/app/components/hakumi_components/descriptions/component.rb +98 -61
- data/app/components/hakumi_components/descriptions/item/component.rb +32 -8
- data/app/components/hakumi_components/divider/component.rb +36 -16
- data/app/components/hakumi_components/drawer/component.html.erb +2 -2
- data/app/components/hakumi_components/drawer/component.rb +112 -29
- data/app/components/hakumi_components/dropdown/component.rb +32 -35
- data/app/components/hakumi_components/dropdown/divider/component.rb +4 -0
- data/app/components/hakumi_components/dropdown/item/component.rb +42 -16
- data/app/components/hakumi_components/empty/component.rb +66 -31
- data/app/components/hakumi_components/flex/component.rb +39 -21
- data/app/components/hakumi_components/float_button/back_top/component.rb +35 -28
- data/app/components/hakumi_components/float_button/component.rb +161 -75
- data/app/components/hakumi_components/float_button/group/component.rb +85 -98
- data/app/components/hakumi_components/float_button/group_cluster/component.rb +46 -54
- 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_components/form/item/component.rb +34 -27
- data/app/components/hakumi_components/grid/col/component.rb +88 -17
- data/app/components/hakumi_components/grid/row/component.rb +35 -17
- data/app/components/hakumi_components/icon/component.rb +49 -49
- data/app/components/hakumi_components/image/component.html.erb +7 -7
- data/app/components/hakumi_components/image/component.rb +103 -40
- data/app/components/hakumi_components/image/preview_group/component.html.erb +1 -1
- data/app/components/hakumi_components/image/preview_group/component.rb +41 -36
- data/app/components/hakumi_components/image/preview_group/item.rb +48 -0
- data/app/components/hakumi_components/input/component.html.erb +1 -1
- data/app/components/hakumi_components/input/component.rb +142 -66
- data/app/components/hakumi_components/input/password/component.rb +30 -41
- data/app/components/hakumi_components/input/text_area/component.html.erb +2 -2
- data/app/components/hakumi_components/input/text_area/component.rb +89 -42
- data/app/components/hakumi_components/input_number/component.html.erb +5 -5
- data/app/components/hakumi_components/input_number/component.rb +137 -55
- data/app/components/hakumi_components/layout/component.html.erb +1 -1
- data/app/components/hakumi_components/layout/component.rb +23 -16
- data/app/components/hakumi_components/layout/content/component.html.erb +1 -1
- data/app/components/hakumi_components/layout/content/component.rb +24 -14
- data/app/components/hakumi_components/layout/footer/component.html.erb +1 -1
- data/app/components/hakumi_components/layout/footer/component.rb +24 -14
- data/app/components/hakumi_components/layout/header/component.html.erb +1 -1
- data/app/components/hakumi_components/layout/header/component.rb +24 -14
- data/app/components/hakumi_components/layout/sider/component.html.erb +1 -1
- data/app/components/hakumi_components/layout/sider/component.rb +83 -49
- data/app/components/hakumi_components/mentions/coercion.rb +46 -0
- data/app/components/hakumi_components/mentions/component.html.erb +6 -6
- data/app/components/hakumi_components/mentions/component.rb +131 -67
- data/app/components/hakumi_components/mentions/option.rb +30 -0
- data/app/components/hakumi_components/menu/component.rb +50 -59
- data/app/components/hakumi_components/menu/divider/component.rb +4 -0
- data/app/components/hakumi_components/menu/group/component.rb +16 -15
- data/app/components/hakumi_components/menu/item/component.rb +42 -19
- data/app/components/hakumi_components/menu/sub_menu/component.rb +49 -37
- data/app/components/hakumi_components/message/component.rb +62 -27
- data/app/components/hakumi_components/modal/component.html.erb +6 -6
- data/app/components/hakumi_components/modal/component.rb +93 -40
- data/app/components/hakumi_components/modal/confirm/component.html.erb +2 -2
- data/app/components/hakumi_components/modal/confirm/component.rb +49 -8
- data/app/components/hakumi_components/modal/error/component.rb +8 -39
- data/app/components/hakumi_components/modal/info/component.rb +6 -40
- data/app/components/hakumi_components/modal/status_component.rb +150 -0
- data/app/components/hakumi_components/modal/success/component.rb +6 -40
- data/app/components/hakumi_components/modal/warning/component.rb +14 -44
- data/app/components/hakumi_components/notification/component.rb +72 -38
- data/app/components/hakumi_components/pagination/component.html.erb +7 -11
- data/app/components/hakumi_components/pagination/component.rb +105 -72
- data/app/components/hakumi_components/pagination/page_item.rb +49 -0
- data/app/components/hakumi_components/popconfirm/component.rb +67 -19
- data/app/components/hakumi_components/popover/component.html.erb +2 -2
- data/app/components/hakumi_components/popover/component.rb +102 -38
- 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_components/progress/component.html.erb +18 -17
- data/app/components/hakumi_components/progress/component.rb +230 -402
- 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 +138 -72
- data/app/components/hakumi_components/radio/component.html.erb +3 -3
- data/app/components/hakumi_components/radio/component.rb +42 -9
- data/app/components/hakumi_components/radio/group/component.html.erb +9 -9
- data/app/components/hakumi_components/radio/group/component.rb +76 -27
- data/app/components/hakumi_components/radio/group/option.rb +43 -0
- data/app/components/hakumi_components/rate/component.html.erb +1 -1
- data/app/components/hakumi_components/rate/component.rb +55 -9
- data/app/components/hakumi_components/result/component.rb +87 -37
- data/app/components/hakumi_components/segmented/component.html.erb +1 -1
- data/app/components/hakumi_components/segmented/component.rb +81 -118
- data/app/components/hakumi_components/segmented/option.rb +191 -0
- data/app/components/hakumi_components/select/component.html.erb +19 -19
- data/app/components/hakumi_components/select/component.rb +88 -37
- 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 +36 -14
- data/app/components/hakumi_components/skeleton/avatar_config.rb +79 -0
- data/app/components/hakumi_components/skeleton/button/component.rb +32 -14
- data/app/components/hakumi_components/skeleton/component.rb +79 -93
- data/app/components/hakumi_components/skeleton/image/component.rb +46 -22
- data/app/components/hakumi_components/skeleton/input/component.rb +25 -10
- data/app/components/hakumi_components/skeleton/node/component.rb +23 -7
- 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_components/slider/component.html.erb +11 -11
- data/app/components/hakumi_components/slider/component.rb +172 -53
- data/app/components/hakumi_components/slider/mark.rb +27 -0
- data/app/components/hakumi_components/space/compact/component.html.erb +1 -3
- data/app/components/hakumi_components/space/compact/component.rb +35 -19
- data/app/components/hakumi_components/space/component.html.erb +1 -1
- data/app/components/hakumi_components/space/component.rb +75 -39
- data/app/components/hakumi_components/spin/component.rb +92 -31
- data/app/components/hakumi_components/splitter/component.html.erb +9 -3
- data/app/components/hakumi_components/splitter/component.rb +55 -22
- data/app/components/hakumi_components/splitter/panel/component.html.erb +1 -3
- data/app/components/hakumi_components/splitter/panel/component.rb +64 -39
- data/app/components/hakumi_components/statistic/component.rb +143 -59
- data/app/components/hakumi_components/steps/component.rb +87 -55
- data/app/components/hakumi_components/steps/item/component.rb +59 -20
- data/app/components/hakumi_components/switch/component.html.erb +2 -3
- data/app/components/hakumi_components/switch/component.rb +62 -36
- data/app/components/hakumi_components/table/column/component.rb +80 -23
- data/app/components/hakumi_components/table/column_definition.rb +181 -0
- data/app/components/hakumi_components/table/column_group/component.rb +32 -21
- data/app/components/hakumi_components/table/component.html.erb +22 -31
- data/app/components/hakumi_components/table/component.rb +248 -509
- 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 +293 -91
- data/app/components/hakumi_components/table/concerns/editable.rb +36 -89
- data/app/components/hakumi_components/table/concerns/ellipsis.rb +31 -30
- data/app/components/hakumi_components/table/concerns/fixed_columns.rb +26 -19
- 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_components/tabs/component.html.erb +8 -8
- data/app/components/hakumi_components/tabs/component.rb +114 -64
- data/app/components/hakumi_components/tabs/indicator_config.rb +34 -0
- data/app/components/hakumi_components/tabs/item/component.rb +73 -13
- data/app/components/hakumi_components/tag/component.rb +142 -47
- data/app/components/hakumi_components/tag/group/component.rb +18 -6
- data/app/components/hakumi_components/time_picker/component.html.erb +8 -8
- data/app/components/hakumi_components/time_picker/component.rb +71 -17
- data/app/components/hakumi_components/timeline/component.html.erb +3 -2
- data/app/components/hakumi_components/timeline/component.rb +188 -55
- data/app/components/hakumi_components/timeline/item/component.html.erb +2 -2
- data/app/components/hakumi_components/timeline/item/component.rb +121 -60
- data/app/components/hakumi_components/tooltip/component.html.erb +1 -1
- data/app/components/hakumi_components/tooltip/component.rb +89 -64
- data/app/components/hakumi_components/tour/component.rb +74 -49
- 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 +171 -140
- data/app/components/hakumi_components/transfer/component.rb +232 -82
- data/app/components/hakumi_components/transfer/item.rb +54 -0
- data/app/components/hakumi_components/transfer/operations.rb +31 -0
- data/app/components/hakumi_components/tree/component.rb +219 -400
- 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_components/tree_select/component.html.erb +23 -9
- data/app/components/hakumi_components/tree_select/component.rb +116 -107
- data/app/components/hakumi_components/typography/base_component.rb +69 -36
- data/app/components/hakumi_components/typography/link/component.rb +63 -6
- data/app/components/hakumi_components/typography/paragraph/component.rb +6 -0
- data/app/components/hakumi_components/typography/text/component.rb +4 -0
- data/app/components/hakumi_components/typography/title/component.rb +61 -6
- data/app/components/hakumi_components/upload/component.html.erb +106 -88
- data/app/components/hakumi_components/upload/component.rb +222 -48
- data/app/components/hakumi_components/upload/file_entry.rb +53 -0
- data/app/controllers/hakumi_components/components_controller.rb +2 -1
- 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 +238 -317
- data/app/helpers/hakumi_components/form_helper.rb +27 -23
- 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 +95 -24
- data/app/services/hakumi_components/icon/loader.rb +84 -67
- data/app/services/hakumi_components/illustrations/loader.rb +35 -27
- data/app/views/hakumi/_alert.html.erb +4 -1
- data/app/views/hakumi/_drawer.html.erb +1 -1
- data/app/views/hakumi/_statistic.html.erb +11 -11
- data/lib/generators/hakumi_components/install_generator.rb +14 -1
- data/lib/hakumi_components/documentation/models.rb +290 -0
- data/lib/hakumi_components/documentation/node.rb +73 -0
- data/lib/hakumi_components/documentation.rb +139 -62
- data/lib/hakumi_components/engine.rb +17 -11
- 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 +39 -107
- data/lib/hakumi_components/rails/model_reflection.rb +154 -0
- data/lib/hakumi_components/rails/validation_introspection.rb +25 -73
- data/lib/hakumi_components/rails/validation_mapper.rb +148 -201
- data/lib/hakumi_components/rails.rb +2 -0
- 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 +2 -1
- data/lib/hakumi_components.rb +26 -6
- data/lib/tasks/coverage.rake +1 -0
- metadata +100 -136
- data/sig/action_view/tag_builder.rbs +0 -24
- data/sig/active_support/concern_patch.rbs +0 -7
- data/sig/generators/hakumi_components/install_generator.rbs +0 -11
- data/sig/hakumi_components/admin_panel/component.rbs +0 -28
- data/sig/hakumi_components/affix/component.rbs +0 -44
- data/sig/hakumi_components/alert/component.rbs +0 -64
- data/sig/hakumi_components/anchor/component.rbs +0 -45
- data/sig/hakumi_components/anchor/link/component.rbs +0 -31
- data/sig/hakumi_components/autocomplete/component.rbs +0 -68
- data/sig/hakumi_components/avatar/component.rbs +0 -44
- data/sig/hakumi_components/badge/component.rbs +0 -41
- data/sig/hakumi_components/base_component.rbs +0 -82
- data/sig/hakumi_components/breadcrumb/component.rbs +0 -21
- data/sig/hakumi_components/breadcrumb/item/component.rbs +0 -36
- data/sig/hakumi_components/button/component.rbs +0 -56
- data/sig/hakumi_components/calendar/component.rbs +0 -41
- data/sig/hakumi_components/card/component.rbs +0 -50
- data/sig/hakumi_components/card/grid/component.rbs +0 -21
- data/sig/hakumi_components/card/meta/component.rbs +0 -25
- data/sig/hakumi_components/carousel/component.rbs +0 -88
- data/sig/hakumi_components/cascader/component.rbs +0 -52
- data/sig/hakumi_components/checkbox/component.rbs +0 -46
- data/sig/hakumi_components/checkbox/group/component.rbs +0 -34
- data/sig/hakumi_components/collapse/component.rbs +0 -57
- data/sig/hakumi_components/collapse/panel/component.rbs +0 -47
- data/sig/hakumi_components/color_picker/component.rbs +0 -80
- data/sig/hakumi_components/concerns/form_field.rbs +0 -89
- data/sig/hakumi_components/container/component.rbs +0 -37
- data/sig/hakumi_components/date_picker/component.rbs +0 -72
- data/sig/hakumi_components/date_picker/range_picker.rbs +0 -68
- data/sig/hakumi_components/date_picker/shared_rendering.rbs +0 -41
- data/sig/hakumi_components/descriptions/component.rbs +0 -59
- data/sig/hakumi_components/descriptions/item/component.rbs +0 -31
- data/sig/hakumi_components/divider/component.rbs +0 -39
- data/sig/hakumi_components/drawer/component.rbs +0 -66
- data/sig/hakumi_components/dropdown/component.rbs +0 -45
- data/sig/hakumi_components/dropdown/divider/component.rbs +0 -11
- data/sig/hakumi_components/dropdown/item/component.rbs +0 -45
- data/sig/hakumi_components/empty/component.rbs +0 -40
- data/sig/hakumi_components/flex/component.rbs +0 -47
- data/sig/hakumi_components/float_button/back_top/component.rbs +0 -45
- data/sig/hakumi_components/float_button/component.rbs +0 -80
- data/sig/hakumi_components/float_button/group/component.rbs +0 -95
- data/sig/hakumi_components/float_button/group_cluster/component.rbs +0 -60
- data/sig/hakumi_components/form/item/component.rbs +0 -39
- data/sig/hakumi_components/form_builder.rbs +0 -37
- data/sig/hakumi_components/grid/col/component.rbs +0 -50
- data/sig/hakumi_components/grid/row/component.rbs +0 -46
- data/sig/hakumi_components/icon/component.rbs +0 -56
- data/sig/hakumi_components/image/component.rbs +0 -56
- data/sig/hakumi_components/image/preview_group/component.rbs +0 -28
- data/sig/hakumi_components/input/component.rbs +0 -71
- data/sig/hakumi_components/input/password/component.rbs +0 -27
- data/sig/hakumi_components/input/text_area/component.rbs +0 -42
- data/sig/hakumi_components/input_number/component.rbs +0 -85
- data/sig/hakumi_components/layout/component.rbs +0 -21
- data/sig/hakumi_components/layout/content/component.rbs +0 -19
- data/sig/hakumi_components/layout/footer/component.rbs +0 -19
- data/sig/hakumi_components/layout/header/component.rbs +0 -19
- data/sig/hakumi_components/layout/sider/component.rbs +0 -19
- data/sig/hakumi_components/mentions/component.rbs +0 -75
- data/sig/hakumi_components/menu/component.rbs +0 -52
- data/sig/hakumi_components/menu/divider/component.rbs +0 -11
- data/sig/hakumi_components/menu/group/component.rbs +0 -20
- data/sig/hakumi_components/menu/item/component.rbs +0 -42
- data/sig/hakumi_components/menu/sub_menu/component.rbs +0 -37
- data/sig/hakumi_components/message/component.rbs +0 -50
- data/sig/hakumi_components/modal/component.rbs +0 -76
- data/sig/hakumi_components/modal/confirm/component.rbs +0 -32
- data/sig/hakumi_components/modal/error/component.rbs +0 -27
- data/sig/hakumi_components/modal/info/component.rbs +0 -27
- data/sig/hakumi_components/modal/success/component.rbs +0 -27
- data/sig/hakumi_components/modal/warning/component.rbs +0 -27
- data/sig/hakumi_components/notification/component.rbs +0 -64
- data/sig/hakumi_components/pagination/component.rbs +0 -113
- data/sig/hakumi_components/popconfirm/component.rbs +0 -52
- data/sig/hakumi_components/popover/component.rbs +0 -66
- data/sig/hakumi_components/progress/component.rbs +0 -201
- data/sig/hakumi_components/qr_code/component.rbs +0 -111
- data/sig/hakumi_components/radio/component.rbs +0 -55
- data/sig/hakumi_components/radio/group/component.rbs +0 -71
- data/sig/hakumi_components/rails/attribute_introspection.rbs +0 -16
- data/sig/hakumi_components/rails/validation_introspection.rbs +0 -18
- data/sig/hakumi_components/rails/validation_mapper.rbs +0 -53
- data/sig/hakumi_components/rails.rbs +0 -6
- data/sig/hakumi_components/rate/component.rbs +0 -56
- data/sig/hakumi_components/result/component.rbs +0 -65
- data/sig/hakumi_components/segmented/component.rbs +0 -72
- data/sig/hakumi_components/select/component.rbs +0 -73
- data/sig/hakumi_components/skeleton/avatar/component.rbs +0 -23
- data/sig/hakumi_components/skeleton/button/component.rbs +0 -24
- data/sig/hakumi_components/skeleton/component.rbs +0 -76
- data/sig/hakumi_components/skeleton/image/component.rbs +0 -22
- data/sig/hakumi_components/skeleton/input/component.rbs +0 -23
- data/sig/hakumi_components/skeleton/node/component.rbs +0 -21
- data/sig/hakumi_components/slider/component.rbs +0 -85
- data/sig/hakumi_components/space/compact/component.rbs +0 -21
- data/sig/hakumi_components/space/component.rbs +0 -47
- data/sig/hakumi_components/spin/component.rbs +0 -77
- data/sig/hakumi_components/splitter/component.rbs +0 -27
- data/sig/hakumi_components/splitter/panel/component.rbs +0 -36
- data/sig/hakumi_components/statistic/component.rbs +0 -97
- data/sig/hakumi_components/steps/component.rbs +0 -82
- data/sig/hakumi_components/steps/item/component.rbs +0 -29
- data/sig/hakumi_components/switch/component.rbs +0 -52
- data/sig/hakumi_components/table/column/component.rbs +0 -57
- data/sig/hakumi_components/table/column_group/component.rbs +0 -20
- data/sig/hakumi_components/table/component.rbs +0 -279
- data/sig/hakumi_components/table/concerns/columns.rbs +0 -95
- data/sig/hakumi_components/table/concerns/editable.rbs +0 -40
- data/sig/hakumi_components/table/concerns/ellipsis.rbs +0 -27
- data/sig/hakumi_components/table/concerns/fixed_columns.rbs +0 -33
- data/sig/hakumi_components/tabs/component.rbs +0 -66
- data/sig/hakumi_components/tabs/item/component.rbs +0 -29
- data/sig/hakumi_components/tag/component.rbs +0 -86
- data/sig/hakumi_components/tag/group/component.rbs +0 -24
- data/sig/hakumi_components/time_picker/component.rbs +0 -72
- data/sig/hakumi_components/timeline/component.rbs +0 -61
- data/sig/hakumi_components/timeline/item/component.rbs +0 -70
- data/sig/hakumi_components/tooltip/component.rbs +0 -73
- data/sig/hakumi_components/tour/component.rbs +0 -84
- data/sig/hakumi_components/transfer/component.rbs +0 -75
- data/sig/hakumi_components/tree/component.rbs +0 -126
- data/sig/hakumi_components/tree_select/component.rbs +0 -122
- data/sig/hakumi_components/typography/base_component.rbs +0 -57
- data/sig/hakumi_components/typography/link/component.rbs +0 -28
- data/sig/hakumi_components/typography/paragraph/component.rbs +0 -13
- data/sig/hakumi_components/typography/text/component.rbs +0 -10
- data/sig/hakumi_components/typography/title/component.rbs +0 -28
- data/sig/hakumi_components/upload/component.rbs +0 -78
- data/sig/hakumi_components.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
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Anchor
|
|
5
|
-
module Link
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
@href: String
|
|
8
|
-
@title: String
|
|
9
|
-
@target: String?
|
|
10
|
-
@html_options: hakumi_html_options
|
|
11
|
-
|
|
12
|
-
def initialize: (
|
|
13
|
-
href: String,
|
|
14
|
-
title: String,
|
|
15
|
-
?target: String?,
|
|
16
|
-
**hakumi_html_options html_options
|
|
17
|
-
) -> void
|
|
18
|
-
|
|
19
|
-
attr_reader href: String
|
|
20
|
-
attr_reader title: String
|
|
21
|
-
attr_reader target: String?
|
|
22
|
-
|
|
23
|
-
def link_classes: () -> String
|
|
24
|
-
|
|
25
|
-
def title_classes: () -> String
|
|
26
|
-
|
|
27
|
-
def has_children?: () -> bool
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Autocomplete
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type autocomplete_variant = :outlined | :filled | :borderless | :underlined
|
|
7
|
-
type autocomplete_status = :error | :warning
|
|
8
|
-
type filter_mode = :contains | :starts_with
|
|
9
|
-
|
|
10
|
-
SIZES: Array[hakumi_size_standard]
|
|
11
|
-
VARIANTS: Array[autocomplete_variant]
|
|
12
|
-
STATUSES: Array[autocomplete_status]
|
|
13
|
-
FILTER_MODES: Array[filter_mode]
|
|
14
|
-
|
|
15
|
-
@name: String
|
|
16
|
-
@options: Array[untyped]
|
|
17
|
-
@value: String?
|
|
18
|
-
@placeholder: String?
|
|
19
|
-
@size: hakumi_size_standard
|
|
20
|
-
@variant: autocomplete_variant
|
|
21
|
-
@status: autocomplete_status?
|
|
22
|
-
@disabled: bool
|
|
23
|
-
@allow_clear: bool
|
|
24
|
-
@clear_icon: hakumi_icon
|
|
25
|
-
@input_renderer: Proc?
|
|
26
|
-
@case_sensitive: bool
|
|
27
|
-
@filter_mode: filter_mode
|
|
28
|
-
@not_found_content: String
|
|
29
|
-
@html_options: hakumi_html_options
|
|
30
|
-
|
|
31
|
-
def initialize: (
|
|
32
|
-
name: String,
|
|
33
|
-
?options: Array[untyped],
|
|
34
|
-
?value: String?,
|
|
35
|
-
?placeholder: String?,
|
|
36
|
-
?size: hakumi_size_standard,
|
|
37
|
-
?variant: autocomplete_variant,
|
|
38
|
-
?status: autocomplete_status?,
|
|
39
|
-
?disabled: bool,
|
|
40
|
-
?allow_clear: bool,
|
|
41
|
-
?clear_icon: hakumi_icon,
|
|
42
|
-
?input_renderer: Proc?,
|
|
43
|
-
?case_sensitive: bool,
|
|
44
|
-
?filter_mode: filter_mode,
|
|
45
|
-
?not_found_content: String,
|
|
46
|
-
**hakumi_html_options html_options
|
|
47
|
-
) -> void
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
|
|
51
|
-
def validate_props!: () -> void
|
|
52
|
-
def wrapper_classes: () -> String
|
|
53
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
54
|
-
def input_attributes: () -> hakumi_html_options
|
|
55
|
-
def input_classes: () -> String
|
|
56
|
-
def dropdown_id: () -> String
|
|
57
|
-
def allow_clear?: () -> bool
|
|
58
|
-
def custom_input_renderer?: () -> bool
|
|
59
|
-
def input_renderer: () -> Proc?
|
|
60
|
-
def disabled?: () -> bool
|
|
61
|
-
def clear_icon: () -> hakumi_icon
|
|
62
|
-
def not_found_content: () -> String
|
|
63
|
-
def normalized_items: () -> Array[Hash[Symbol, untyped]]
|
|
64
|
-
def normalize_group_options: (Array[untyped] options) -> Array[Hash[Symbol, untyped]]
|
|
65
|
-
def normalize_simple_option: (untyped opt) -> Hash[Symbol, untyped]?
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Avatar
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type avatar_shape = :circle | :square
|
|
7
|
-
type avatar_size = :small | :default | :large
|
|
8
|
-
|
|
9
|
-
SHAPES: Array[avatar_shape]
|
|
10
|
-
SIZES: Array[avatar_size]
|
|
11
|
-
|
|
12
|
-
@shape: avatar_shape
|
|
13
|
-
@size: (avatar_size | Integer)
|
|
14
|
-
@src: String?
|
|
15
|
-
@icon: hakumi_icon?
|
|
16
|
-
@alt: String?
|
|
17
|
-
@html_options: hakumi_html_options
|
|
18
|
-
|
|
19
|
-
def initialize: (
|
|
20
|
-
?shape: avatar_shape,
|
|
21
|
-
?size: (avatar_size | Integer),
|
|
22
|
-
?src: String?,
|
|
23
|
-
?icon: hakumi_icon?,
|
|
24
|
-
?alt: String?,
|
|
25
|
-
**hakumi_html_options html_options
|
|
26
|
-
) -> void
|
|
27
|
-
|
|
28
|
-
def call: () -> String
|
|
29
|
-
|
|
30
|
-
private
|
|
31
|
-
|
|
32
|
-
def validate_props!: () -> void
|
|
33
|
-
|
|
34
|
-
def wrapper_classes: () -> String
|
|
35
|
-
|
|
36
|
-
def content_wrapper: () -> String
|
|
37
|
-
|
|
38
|
-
# Type assertion: case statement always returns Integer despite @size being (avatar_size | Integer)
|
|
39
|
-
def avatar_size: () -> (avatar_size | Integer)
|
|
40
|
-
|
|
41
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Badge
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type badge_status = :success | :processing | :default | :error | :warning
|
|
7
|
-
|
|
8
|
-
@count: (Integer | String)?
|
|
9
|
-
@dot: bool
|
|
10
|
-
@overflow_count: Integer
|
|
11
|
-
@status: badge_status?
|
|
12
|
-
@text: String?
|
|
13
|
-
@color: hakumi_color?
|
|
14
|
-
@show_zero: bool
|
|
15
|
-
@icon: hakumi_icon?
|
|
16
|
-
@html_options: hakumi_html_options
|
|
17
|
-
|
|
18
|
-
def initialize: (
|
|
19
|
-
?count: (Integer | String)?,
|
|
20
|
-
?dot: bool,
|
|
21
|
-
?overflow_count: Integer,
|
|
22
|
-
?status: badge_status?,
|
|
23
|
-
?text: String?,
|
|
24
|
-
?color: hakumi_color?,
|
|
25
|
-
?show_zero: bool,
|
|
26
|
-
?icon: hakumi_icon?,
|
|
27
|
-
**hakumi_html_options html_options
|
|
28
|
-
) -> void
|
|
29
|
-
|
|
30
|
-
def call: () -> String
|
|
31
|
-
|
|
32
|
-
private
|
|
33
|
-
|
|
34
|
-
def badge_element: () -> String?
|
|
35
|
-
|
|
36
|
-
def status_text_element: () -> String?
|
|
37
|
-
|
|
38
|
-
def display_count: () -> (Integer | String | nil)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
class BaseComponent < ViewComponent::Base
|
|
5
|
-
# Core class methods
|
|
6
|
-
def self.inherited: (Class klass) -> void
|
|
7
|
-
|
|
8
|
-
# Instance methods
|
|
9
|
-
# Generate class names with the hakumi- prefix
|
|
10
|
-
# @param base [String] Base class name (e.g., 'btn', 'icon')
|
|
11
|
-
# @param modifiers [Hash] Hash of modifier keys and their values (Symbol, String, Integer, or bool)
|
|
12
|
-
# @param extras [Array<String>] Additional classes to append
|
|
13
|
-
# @return [String] Combined class string
|
|
14
|
-
def class_names: (String base, ?Hash[Symbol, (Symbol | String | Integer | bool)] modifiers, ?Array[String] extras) -> String
|
|
15
|
-
|
|
16
|
-
# Merge HTML attributes with defaults
|
|
17
|
-
# @param defaults [Hash] Default attributes
|
|
18
|
-
# @param overrides [Hash] User-provided attributes
|
|
19
|
-
# @return [Hash] Merged attributes
|
|
20
|
-
def merge_attributes: (hakumi_html_options defaults, hakumi_html_options overrides) -> hakumi_html_options
|
|
21
|
-
|
|
22
|
-
# Internal helper to check presence without clobbering ActiveSupport#present?
|
|
23
|
-
# Accepts any value type since it's a generic utility method
|
|
24
|
-
# @param value [untyped] Value to check
|
|
25
|
-
# @return [Boolean]
|
|
26
|
-
def value_present?: (untyped value) -> bool
|
|
27
|
-
|
|
28
|
-
# Validate required props
|
|
29
|
-
# @param props [Array<Symbol>] List of required prop names
|
|
30
|
-
# @raise [ArgumentError] if any prop is missing
|
|
31
|
-
def validate_required!: (*Symbol props) -> void
|
|
32
|
-
|
|
33
|
-
# Validate prop is one of allowed values
|
|
34
|
-
# @param prop [Symbol] Prop name
|
|
35
|
-
# @param allowed [Array] Allowed values (typically Symbol enums, but can include strings/integers)
|
|
36
|
-
# @raise [ArgumentError] if value is not allowed
|
|
37
|
-
def validate_inclusion!: (Symbol prop, Array[Symbol | String | Integer | bool] allowed) -> void
|
|
38
|
-
|
|
39
|
-
# Ensure attrs has a DOM ID if it has a Stimulus controller
|
|
40
|
-
# @param attrs [Hash] Attributes hash
|
|
41
|
-
# @return [void]
|
|
42
|
-
def ensure_dom_id!: (hakumi_html_options attrs) -> void
|
|
43
|
-
|
|
44
|
-
# Generate a unique ID with a prefix
|
|
45
|
-
# @param prefix [String] Prefix for the ID
|
|
46
|
-
# @param length [Integer] Length of the random hex (default: 4)
|
|
47
|
-
# @return [String] Generated ID
|
|
48
|
-
def generate_id: (String prefix, ?length: Integer) -> String
|
|
49
|
-
|
|
50
|
-
# Render a value that can be a String, ViewComponent, or other renderable object
|
|
51
|
-
# Accepts: String, ActiveSupport::SafeBuffer, ViewComponent, or any object with to_s
|
|
52
|
-
# @param value [untyped] Value to render (String, ViewComponent, etc.)
|
|
53
|
-
# @return [String, nil] Rendered value or nil if empty
|
|
54
|
-
def render_value: (untyped value) -> (String | nil)
|
|
55
|
-
|
|
56
|
-
# Convert size string/symbol to integer pixels
|
|
57
|
-
# Useful for components that accept both symbolic (:small, :large) and numeric sizes
|
|
58
|
-
# @param size [Symbol, Integer] Size value
|
|
59
|
-
# @param mapping [Hash] Size to pixel mapping
|
|
60
|
-
# @return [Integer] Size in pixels
|
|
61
|
-
def size_to_pixels: ((Symbol | Integer) size, ?Hash[Symbol, Integer] mapping) -> Integer
|
|
62
|
-
|
|
63
|
-
# Convert dimension value to CSS string
|
|
64
|
-
# @param value [Numeric, String, nil] Dimension value
|
|
65
|
-
# @return [String, nil] CSS dimension string
|
|
66
|
-
def dimension_to_css: ((Numeric | String | nil) value) -> String?
|
|
67
|
-
|
|
68
|
-
# Cast a value to boolean using ActiveModel::Type::Boolean
|
|
69
|
-
# @param value [untyped] Value to cast
|
|
70
|
-
# @return [Boolean] Casted boolean value
|
|
71
|
-
def cast_boolean: (untyped value) -> bool
|
|
72
|
-
|
|
73
|
-
# Build inline style string from array or hash
|
|
74
|
-
# @param styles [Array<String>, Hash] Styles as array of CSS strings or hash of property => value
|
|
75
|
-
# @return [String, nil] Combined style string
|
|
76
|
-
def build_inline_style: ((Array[String] | Hash[Symbol | String, (String | Integer | Float)]) styles) -> String?
|
|
77
|
-
|
|
78
|
-
private
|
|
79
|
-
|
|
80
|
-
def prepare_data_attributes: (hakumi_html_options attrs) -> hakumi_html_options
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Breadcrumb
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
@separator: String
|
|
7
|
-
@html_options: hakumi_html_options
|
|
8
|
-
|
|
9
|
-
def initialize: (
|
|
10
|
-
?separator: String,
|
|
11
|
-
**hakumi_html_options html_options
|
|
12
|
-
) -> void
|
|
13
|
-
|
|
14
|
-
attr_reader separator: String
|
|
15
|
-
|
|
16
|
-
def breadcrumb_classes: () -> String
|
|
17
|
-
|
|
18
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Breadcrumb
|
|
5
|
-
module Item
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
@title: String?
|
|
8
|
-
@href: String?
|
|
9
|
-
@target: String?
|
|
10
|
-
@menu: Array[untyped]?
|
|
11
|
-
@html_options: hakumi_html_options
|
|
12
|
-
|
|
13
|
-
def initialize: (
|
|
14
|
-
?title: String?,
|
|
15
|
-
?href: String?,
|
|
16
|
-
?target: String?,
|
|
17
|
-
?menu: Array[untyped]?,
|
|
18
|
-
**hakumi_html_options html_options
|
|
19
|
-
) -> void
|
|
20
|
-
|
|
21
|
-
attr_reader title: String?
|
|
22
|
-
attr_reader href: String?
|
|
23
|
-
attr_reader target: String?
|
|
24
|
-
attr_reader menu: Array[untyped]?
|
|
25
|
-
|
|
26
|
-
def item_classes: () -> String
|
|
27
|
-
|
|
28
|
-
def link?: () -> bool
|
|
29
|
-
|
|
30
|
-
def menu?: () -> bool
|
|
31
|
-
|
|
32
|
-
def display_title: () -> String?
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Button
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type button_type = :primary | :default | :dashed | :text | :link
|
|
7
|
-
type button_size = :small | :middle | :large
|
|
8
|
-
type button_shape = :default | :circle | :round
|
|
9
|
-
type html_button_type = :button | :submit | :reset
|
|
10
|
-
|
|
11
|
-
TYPES: Array[button_type]
|
|
12
|
-
SIZES: Array[button_size]
|
|
13
|
-
SHAPES: Array[button_shape]
|
|
14
|
-
HTML_TYPES: Array[html_button_type]
|
|
15
|
-
|
|
16
|
-
@type: button_type
|
|
17
|
-
@size: button_size
|
|
18
|
-
@html_type: html_button_type
|
|
19
|
-
@href: String?
|
|
20
|
-
@disabled: bool
|
|
21
|
-
@loading: bool
|
|
22
|
-
@danger: bool
|
|
23
|
-
@block: bool
|
|
24
|
-
@icon: (String | Symbol | untyped)?
|
|
25
|
-
@shape: button_shape
|
|
26
|
-
@html_options: hakumi_html_options
|
|
27
|
-
|
|
28
|
-
def initialize: (
|
|
29
|
-
?type: button_type,
|
|
30
|
-
?size: button_size,
|
|
31
|
-
?html_type: html_button_type,
|
|
32
|
-
?href: String?,
|
|
33
|
-
?disabled: bool,
|
|
34
|
-
?loading: bool,
|
|
35
|
-
?danger: bool,
|
|
36
|
-
?block: bool,
|
|
37
|
-
?icon: (String | Symbol | untyped)?,
|
|
38
|
-
?shape: button_shape,
|
|
39
|
-
**hakumi_html_options html_options
|
|
40
|
-
) -> void
|
|
41
|
-
|
|
42
|
-
def call: () -> String
|
|
43
|
-
|
|
44
|
-
private
|
|
45
|
-
|
|
46
|
-
def validate_props!: () -> void
|
|
47
|
-
def tag_name: () -> Symbol
|
|
48
|
-
def wrapper_classes: () -> String
|
|
49
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
50
|
-
def content_wrapper: () -> String
|
|
51
|
-
def icon_element: () -> String?
|
|
52
|
-
def loading_icon: () -> String
|
|
53
|
-
def text_element: () -> String?
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Calendar
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type calendar_mode = "month" | "year"
|
|
7
|
-
type calendar_value = Date | Time | String
|
|
8
|
-
|
|
9
|
-
MODES: Array[String]
|
|
10
|
-
|
|
11
|
-
@value: calendar_value?
|
|
12
|
-
@default_value: calendar_value?
|
|
13
|
-
@mode: calendar_mode
|
|
14
|
-
@full_screen: bool
|
|
15
|
-
@disable_date: Proc?
|
|
16
|
-
@header_render: Proc?
|
|
17
|
-
@html_options: hakumi_html_options
|
|
18
|
-
|
|
19
|
-
def initialize: (
|
|
20
|
-
?value: calendar_value?,
|
|
21
|
-
?default_value: calendar_value?,
|
|
22
|
-
?mode: calendar_mode,
|
|
23
|
-
?full_screen: bool,
|
|
24
|
-
?disable_date: Proc?,
|
|
25
|
-
?header_render: Proc?,
|
|
26
|
-
**hakumi_html_options html_options
|
|
27
|
-
) -> void
|
|
28
|
-
|
|
29
|
-
def call: () -> String
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
def validate_props!: () -> void
|
|
34
|
-
def wrapper_classes: () -> String
|
|
35
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
36
|
-
def render_header: () -> String
|
|
37
|
-
def render_body: () -> String
|
|
38
|
-
def current_date: () -> (Date | Time | String)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Card
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type card_size = :default | :small
|
|
7
|
-
type card_type = :inner | nil
|
|
8
|
-
|
|
9
|
-
@title: (String | untyped)?
|
|
10
|
-
@extra: (String | untyped)?
|
|
11
|
-
@bordered: bool
|
|
12
|
-
@hoverable: bool
|
|
13
|
-
@loading: bool
|
|
14
|
-
@size: card_size
|
|
15
|
-
@type: card_type
|
|
16
|
-
@actions: Array[untyped]
|
|
17
|
-
@cover: (String | untyped)?
|
|
18
|
-
@href: String?
|
|
19
|
-
@target: String?
|
|
20
|
-
@html_options: hakumi_html_options
|
|
21
|
-
|
|
22
|
-
def initialize: (
|
|
23
|
-
?title: (String | untyped)?,
|
|
24
|
-
?extra: (String | untyped)?,
|
|
25
|
-
?bordered: bool,
|
|
26
|
-
?hoverable: bool,
|
|
27
|
-
?loading: bool,
|
|
28
|
-
?size: card_size,
|
|
29
|
-
?type: card_type,
|
|
30
|
-
?actions: Array[untyped],
|
|
31
|
-
?cover: (String | untyped)?,
|
|
32
|
-
?href: String?,
|
|
33
|
-
?target: String?,
|
|
34
|
-
**hakumi_html_options html_options
|
|
35
|
-
) -> void
|
|
36
|
-
|
|
37
|
-
private
|
|
38
|
-
|
|
39
|
-
def classes: () -> String
|
|
40
|
-
|
|
41
|
-
def head_classes: () -> String
|
|
42
|
-
|
|
43
|
-
def body_classes: () -> String
|
|
44
|
-
|
|
45
|
-
def render_title: () -> (String | untyped)?
|
|
46
|
-
|
|
47
|
-
def render_extra: () -> (String | untyped)?
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Card
|
|
5
|
-
module Grid
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
@hoverable: bool
|
|
8
|
-
@html_options: hakumi_html_options
|
|
9
|
-
|
|
10
|
-
def initialize: (
|
|
11
|
-
?hoverable: bool,
|
|
12
|
-
**hakumi_html_options html_options
|
|
13
|
-
) -> void
|
|
14
|
-
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
def classes: () -> String
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Card
|
|
5
|
-
module Meta
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
@title: (String | untyped)?
|
|
8
|
-
@description: (String | untyped)?
|
|
9
|
-
@avatar: (String | untyped)?
|
|
10
|
-
@html_options: hakumi_html_options
|
|
11
|
-
|
|
12
|
-
def initialize: (
|
|
13
|
-
?title: (String | untyped)?,
|
|
14
|
-
?description: (String | untyped)?,
|
|
15
|
-
?avatar: (String | untyped)?,
|
|
16
|
-
**hakumi_html_options html_options
|
|
17
|
-
) -> void
|
|
18
|
-
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
def classes: () -> String
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Carousel
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type carousel_effect = :scrollx | :fade
|
|
7
|
-
type carousel_dot_placement = :top | :bottom | :start | :end
|
|
8
|
-
|
|
9
|
-
EFFECTS: Array[carousel_effect]
|
|
10
|
-
DOT_PLACEMENTS: Array[carousel_dot_placement]
|
|
11
|
-
|
|
12
|
-
@autoplay: bool
|
|
13
|
-
@autoplay_speed: Integer
|
|
14
|
-
@dot_placement: carousel_dot_placement
|
|
15
|
-
@dots: bool
|
|
16
|
-
@dots_class: String?
|
|
17
|
-
@arrows: bool
|
|
18
|
-
@adaptive_height: bool
|
|
19
|
-
@draggable: bool
|
|
20
|
-
@infinite: bool
|
|
21
|
-
@fade: bool
|
|
22
|
-
@effect: carousel_effect
|
|
23
|
-
@speed: Integer
|
|
24
|
-
@easing: String
|
|
25
|
-
@wait_for_animate: bool
|
|
26
|
-
@autoplay_dot_duration: bool
|
|
27
|
-
@html_options: hakumi_html_options
|
|
28
|
-
|
|
29
|
-
def initialize: (
|
|
30
|
-
?autoplay: (bool | Hash[Symbol, untyped]),
|
|
31
|
-
?autoplay_speed: Integer,
|
|
32
|
-
?dot_placement: carousel_dot_placement,
|
|
33
|
-
?dots: (bool | Hash[Symbol, untyped]),
|
|
34
|
-
?dots_class: String?,
|
|
35
|
-
?arrows: bool,
|
|
36
|
-
?adaptive_height: bool,
|
|
37
|
-
?draggable: bool,
|
|
38
|
-
?infinite: bool,
|
|
39
|
-
?fade: bool?,
|
|
40
|
-
?effect: carousel_effect,
|
|
41
|
-
?speed: Integer,
|
|
42
|
-
?easing: String,
|
|
43
|
-
?wait_for_animate: bool,
|
|
44
|
-
**hakumi_html_options html_options
|
|
45
|
-
) -> void
|
|
46
|
-
|
|
47
|
-
attr_reader autoplay: bool
|
|
48
|
-
attr_reader autoplay_speed: Integer
|
|
49
|
-
attr_reader dot_placement: carousel_dot_placement
|
|
50
|
-
attr_reader dots: bool
|
|
51
|
-
attr_reader dots_class: String?
|
|
52
|
-
attr_reader arrows: bool
|
|
53
|
-
attr_reader adaptive_height: bool
|
|
54
|
-
attr_reader draggable: bool
|
|
55
|
-
attr_reader infinite: bool
|
|
56
|
-
attr_reader fade: bool
|
|
57
|
-
attr_reader effect: carousel_effect
|
|
58
|
-
attr_reader speed: Integer
|
|
59
|
-
attr_reader easing: String
|
|
60
|
-
attr_reader wait_for_animate: bool
|
|
61
|
-
attr_reader autoplay_dot_duration: bool
|
|
62
|
-
|
|
63
|
-
def carousel_classes: () -> String
|
|
64
|
-
|
|
65
|
-
def dots?: () -> bool
|
|
66
|
-
|
|
67
|
-
def arrows?: () -> bool
|
|
68
|
-
|
|
69
|
-
def dots_classes: () -> String
|
|
70
|
-
|
|
71
|
-
def slide_classes: (Integer index) -> String
|
|
72
|
-
|
|
73
|
-
def dot_classes: (Integer index) -> String
|
|
74
|
-
|
|
75
|
-
def stimulus_controller: () -> String
|
|
76
|
-
|
|
77
|
-
def stimulus_values: () -> Hash[Symbol, untyped]
|
|
78
|
-
|
|
79
|
-
def stimulus_data_attributes: () -> Hash[String, untyped]
|
|
80
|
-
|
|
81
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
82
|
-
|
|
83
|
-
private
|
|
84
|
-
|
|
85
|
-
def validate_props!: () -> void
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Cascader
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type cascader_option = {
|
|
7
|
-
value: String,
|
|
8
|
-
label: String,
|
|
9
|
-
children: Array[cascader_option]?
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
SIZES: Array[hakumi_size_standard]
|
|
13
|
-
TRIGGERS: Array[hakumi_trigger]
|
|
14
|
-
|
|
15
|
-
@name: String
|
|
16
|
-
@options: Array[Hash[Symbol, untyped]]
|
|
17
|
-
@value: Array[String | Integer | Float]
|
|
18
|
-
@placeholder: String
|
|
19
|
-
@size: hakumi_size_standard
|
|
20
|
-
@disabled: bool
|
|
21
|
-
@allow_clear: bool
|
|
22
|
-
@show_search: bool
|
|
23
|
-
@change_on_select: bool
|
|
24
|
-
@expand_trigger: hakumi_trigger
|
|
25
|
-
@display_render: Proc?
|
|
26
|
-
@html_options: hakumi_html_options
|
|
27
|
-
|
|
28
|
-
def initialize: (
|
|
29
|
-
?name: String?,
|
|
30
|
-
?options: Array[Hash[Symbol, untyped]],
|
|
31
|
-
?value: Array[String | Integer | Float],
|
|
32
|
-
?placeholder: String,
|
|
33
|
-
?size: hakumi_size_standard,
|
|
34
|
-
?disabled: bool,
|
|
35
|
-
?allow_clear: bool,
|
|
36
|
-
?show_search: bool,
|
|
37
|
-
?change_on_select: bool,
|
|
38
|
-
?expand_trigger: hakumi_trigger,
|
|
39
|
-
?display_render: Proc?,
|
|
40
|
-
**hakumi_html_options html_options
|
|
41
|
-
) -> void
|
|
42
|
-
|
|
43
|
-
def validate_props!: () -> void
|
|
44
|
-
|
|
45
|
-
def wrapper_classes: () -> String
|
|
46
|
-
|
|
47
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
48
|
-
|
|
49
|
-
def selected_label: () -> String?
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|