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,95 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Table
|
|
5
|
-
module Concerns
|
|
6
|
-
# Column normalization and management for Table component
|
|
7
|
-
module Columns
|
|
8
|
-
# Column can be a hash config or a Symbol constant (SELECTION_COLUMN, EXPAND_COLUMN)
|
|
9
|
-
type column_like = Hash[Symbol, untyped] | Symbol
|
|
10
|
-
# Normalized column is a hash with specific keys (title, key, width, etc.) and dynamic values
|
|
11
|
-
type column_hash = Hash[Symbol, untyped]
|
|
12
|
-
|
|
13
|
-
# Get all leaf columns (columns without children)
|
|
14
|
-
def leaf_columns: () -> Array[column_hash]
|
|
15
|
-
|
|
16
|
-
# Count of leaf columns (minimum 1)
|
|
17
|
-
def leaf_column_count: () -> Integer
|
|
18
|
-
|
|
19
|
-
# Check if table has selection column
|
|
20
|
-
def selection_column?: () -> bool
|
|
21
|
-
|
|
22
|
-
# Check if table has expandable rows
|
|
23
|
-
def expandable?: () -> bool
|
|
24
|
-
|
|
25
|
-
# Check if table has expand column
|
|
26
|
-
def expand_column?: () -> bool
|
|
27
|
-
|
|
28
|
-
# Get normalized columns with special columns inserted
|
|
29
|
-
def normalized_columns: () -> Array[column_hash]
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
# Normalize an array of column definitions
|
|
34
|
-
def normalize_columns: (Array[column_like] columns) -> Array[column_hash]
|
|
35
|
-
|
|
36
|
-
# Normalize a single column definition
|
|
37
|
-
def normalize_column: (column_hash column) -> (column_hash | nil)
|
|
38
|
-
|
|
39
|
-
# Insert drag handle column if needed
|
|
40
|
-
def insert_drag_handle_column: (Array[column_hash] columns) -> Array[column_hash]
|
|
41
|
-
|
|
42
|
-
# Insert selection column if needed
|
|
43
|
-
def insert_selection_column: (Array[column_hash] columns) -> Array[column_hash]
|
|
44
|
-
|
|
45
|
-
# Insert expand column if needed
|
|
46
|
-
def insert_expand_column: (Array[column_hash] columns) -> Array[column_hash]
|
|
47
|
-
|
|
48
|
-
# Definition for selection column
|
|
49
|
-
def selection_column_definition: () -> column_hash
|
|
50
|
-
|
|
51
|
-
# Definition for expand column
|
|
52
|
-
def expand_column_definition: () -> column_hash
|
|
53
|
-
|
|
54
|
-
# Check if drag handle column should be added
|
|
55
|
-
def drag_handle_column?: () -> bool
|
|
56
|
-
|
|
57
|
-
# Definition for drag handle column
|
|
58
|
-
def drag_handle_column_definition: () -> column_hash
|
|
59
|
-
|
|
60
|
-
# Get first data column (non-special column)
|
|
61
|
-
def first_data_column: () -> (column_hash | nil)
|
|
62
|
-
|
|
63
|
-
# Recursively flatten all leaf columns
|
|
64
|
-
def flatten_leaf_columns: (Array[column_hash] columns) -> Array[column_hash]
|
|
65
|
-
|
|
66
|
-
# Count leaf columns recursively
|
|
67
|
-
def leaf_count: (Array[column_hash] columns) -> Integer
|
|
68
|
-
|
|
69
|
-
# Calculate maximum depth of column hierarchy
|
|
70
|
-
def max_depth: (Array[column_hash] columns, ?Integer depth) -> Integer
|
|
71
|
-
|
|
72
|
-
# Build header rows for rendering
|
|
73
|
-
def build_header_rows: (Array[column_hash] columns) -> Array[Array[column_hash]]
|
|
74
|
-
|
|
75
|
-
# Recursively build header rows
|
|
76
|
-
def build_rows_recursive: (Array[column_hash] columns, Integer level, Array[Array[column_hash]] rows, Integer max_depth) -> void
|
|
77
|
-
|
|
78
|
-
# Methods expected from Table::Component (via BaseComponent)
|
|
79
|
-
def columns_data: () -> Array[column_like]
|
|
80
|
-
def compute_fixed_offsets: (Array[column_hash] columns) -> void
|
|
81
|
-
def generate_id: (String prefix, ?length: Integer) -> String
|
|
82
|
-
# normalize_ellipsis_option: can be bool, hash, or string
|
|
83
|
-
def normalize_ellipsis_option: ((bool | Hash[Symbol, untyped] | String)? option) -> (Hash[Symbol, untyped] | nil)
|
|
84
|
-
# normalize_responsive_breakpoints: can be array or single value
|
|
85
|
-
def normalize_responsive_breakpoints: (untyped option) -> (Array[Symbol] | nil)
|
|
86
|
-
# dimension_to_css: accepts Numeric, String, or nil (from BaseComponent)
|
|
87
|
-
def dimension_to_css: ((Numeric | String)? value) -> String?
|
|
88
|
-
# normalize_column_editable: can be bool or hash with editable config
|
|
89
|
-
def normalize_column_editable: ((bool | Hash[Symbol, untyped])? value) -> (Hash[Symbol, untyped] | nil)
|
|
90
|
-
# normalize_should_cell_update: Symbol or String method name, returns String or nil
|
|
91
|
-
def normalize_should_cell_update: ((Symbol | String)? value) -> String?
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Table
|
|
5
|
-
module Concerns
|
|
6
|
-
# Editable cell and row functionality for Table component
|
|
7
|
-
module Editable
|
|
8
|
-
EDITABLE_MODES: Array[Symbol]
|
|
9
|
-
EDITABLE_TRIGGERS: Array[Symbol]
|
|
10
|
-
EDITABLE_INPUT_TYPES: Array[Symbol]
|
|
11
|
-
|
|
12
|
-
# Returns JSON configuration for the table-level editable settings
|
|
13
|
-
def editable_config_json: () -> String?
|
|
14
|
-
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
# Normalizes the table-level editable configuration
|
|
18
|
-
def normalize_editable: (untyped value) -> untyped
|
|
19
|
-
|
|
20
|
-
# Normalizes column-level editable configuration
|
|
21
|
-
def normalize_column_editable: (untyped value) -> untyped
|
|
22
|
-
|
|
23
|
-
# Normalizes should_cell_update hook name
|
|
24
|
-
def normalize_should_cell_update: (untyped value) -> untyped
|
|
25
|
-
|
|
26
|
-
# Applies editable attributes to cell
|
|
27
|
-
def apply_editable_attributes!: (Hash[Symbol, untyped] attrs, Hash[Symbol, untyped] column) -> void
|
|
28
|
-
|
|
29
|
-
# Applies should_cell_update attributes to cell
|
|
30
|
-
def apply_should_cell_update_attributes!: (Hash[Symbol, untyped] attrs, Hash[Symbol, untyped] column) -> void
|
|
31
|
-
|
|
32
|
-
# Returns the editable payload for a specific cell/column
|
|
33
|
-
def cell_editable_payload: (Hash[Symbol, untyped] column) -> untyped
|
|
34
|
-
|
|
35
|
-
# Instance variable from Table::Component
|
|
36
|
-
@editable: untyped
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Table
|
|
5
|
-
module Concerns
|
|
6
|
-
# Text ellipsis and tooltip handling for Table cells
|
|
7
|
-
module Ellipsis
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
# Get ellipsis config from column
|
|
11
|
-
def ellipsis_config: (Hash[Symbol, untyped] column) -> untyped
|
|
12
|
-
|
|
13
|
-
# Normalize ellipsis option
|
|
14
|
-
def normalize_ellipsis_option: (untyped option) -> untyped
|
|
15
|
-
|
|
16
|
-
# Normalize ellipsis tooltip option
|
|
17
|
-
def normalize_ellipsis_tooltip_option: (untyped option) -> untyped
|
|
18
|
-
|
|
19
|
-
# Get ellipsis title for cell
|
|
20
|
-
def ellipsis_title: (untyped config, untyped raw_value, untyped content_fragment) -> untyped
|
|
21
|
-
|
|
22
|
-
# Get ellipsis tooltip component for cell
|
|
23
|
-
def ellipsis_tooltip_component: (untyped config, untyped raw_value, untyped row, Integer row_index) -> untyped
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Table
|
|
5
|
-
module Concerns
|
|
6
|
-
# Fixed (sticky) column positioning for Table component
|
|
7
|
-
module FixedColumns
|
|
8
|
-
# Check if table has any fixed columns
|
|
9
|
-
def fixed_columns?: () -> bool
|
|
10
|
-
|
|
11
|
-
private
|
|
12
|
-
|
|
13
|
-
# Get or initialize fixed offsets hash
|
|
14
|
-
def fixed_offsets: () -> Hash[untyped, untyped]
|
|
15
|
-
|
|
16
|
-
# Applies fixed column positioning attributes to cell
|
|
17
|
-
def apply_fixed_column_attributes!: (Hash[Symbol, untyped] attrs, Hash[Symbol, untyped] column, ?header: bool) -> void
|
|
18
|
-
|
|
19
|
-
# Compute fixed column offsets from left and right
|
|
20
|
-
def compute_fixed_offsets: (Array[Hash[Symbol, untyped]] leaf_columns) -> void
|
|
21
|
-
|
|
22
|
-
# Get width for fixed column (must be defined)
|
|
23
|
-
def fixed_column_width!: (Hash[Symbol, untyped] column) -> untyped
|
|
24
|
-
|
|
25
|
-
# Convert width value to numeric
|
|
26
|
-
def numeric_width: (untyped value) -> untyped
|
|
27
|
-
|
|
28
|
-
# Instance variable for fixed offsets
|
|
29
|
-
@fixed_offsets: Hash[untyped, untyped]
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Tabs
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type tab_type = :line | :card | :editable_card
|
|
7
|
-
type tab_size = :large | :middle | :small
|
|
8
|
-
type tab_position = :top | :bottom | :left | :right
|
|
9
|
-
type indicator_align = :start | :center | :end
|
|
10
|
-
|
|
11
|
-
TYPES: Array[tab_type]
|
|
12
|
-
SIZES: Array[tab_size]
|
|
13
|
-
TAB_POSITIONS: Array[tab_position]
|
|
14
|
-
INDICATOR_ALIGNS: Array[indicator_align]
|
|
15
|
-
|
|
16
|
-
@active_key: String?
|
|
17
|
-
@default_active_key: String?
|
|
18
|
-
@type: tab_type
|
|
19
|
-
@size: tab_size
|
|
20
|
-
@tab_position: tab_position
|
|
21
|
-
@centered: bool
|
|
22
|
-
@animated: bool
|
|
23
|
-
@indicator: hakumi_html_options?
|
|
24
|
-
@tab_bar_gutter: Integer?
|
|
25
|
-
@tab_bar_extra_content_left: String?
|
|
26
|
-
@tab_bar_extra_content_right: String?
|
|
27
|
-
@add_icon: String?
|
|
28
|
-
@hide_add: bool
|
|
29
|
-
@more_icon: String?
|
|
30
|
-
@html_options: hakumi_html_options
|
|
31
|
-
|
|
32
|
-
def initialize: (
|
|
33
|
-
?active_key: String?,
|
|
34
|
-
?default_active_key: String?,
|
|
35
|
-
?type: tab_type,
|
|
36
|
-
?size: tab_size,
|
|
37
|
-
?tab_position: tab_position,
|
|
38
|
-
?centered: bool,
|
|
39
|
-
?animated: bool,
|
|
40
|
-
?indicator: hakumi_html_options?,
|
|
41
|
-
?tab_bar_gutter: Integer?,
|
|
42
|
-
?tab_bar_extra_content_left: String?,
|
|
43
|
-
?tab_bar_extra_content_right: String?,
|
|
44
|
-
?add_icon: String?,
|
|
45
|
-
?hide_add: bool,
|
|
46
|
-
?more_icon: String?,
|
|
47
|
-
**hakumi_html_options html_options
|
|
48
|
-
) -> void
|
|
49
|
-
|
|
50
|
-
def call: () -> String
|
|
51
|
-
|
|
52
|
-
def before_render: () -> void
|
|
53
|
-
|
|
54
|
-
private
|
|
55
|
-
|
|
56
|
-
def validate_props!: () -> void
|
|
57
|
-
def wrapper_classes: () -> String
|
|
58
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
59
|
-
def render_tab_bar: () -> String
|
|
60
|
-
def render_content: () -> String
|
|
61
|
-
def tab_bar_classes: () -> String
|
|
62
|
-
def tabs_nav_classes: () -> String
|
|
63
|
-
def indicator_style: () -> String
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Tabs
|
|
5
|
-
module Item
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
@key: (String | Symbol)
|
|
8
|
-
@label: String?
|
|
9
|
-
@disabled: bool
|
|
10
|
-
@closable: bool
|
|
11
|
-
@icon: hakumi_icon?
|
|
12
|
-
@html_options: hakumi_html_options
|
|
13
|
-
|
|
14
|
-
def initialize: (
|
|
15
|
-
key: (String | Symbol),
|
|
16
|
-
?label: String?,
|
|
17
|
-
?disabled: bool,
|
|
18
|
-
?closable: bool,
|
|
19
|
-
?icon: hakumi_icon?,
|
|
20
|
-
**hakumi_html_options html_options
|
|
21
|
-
) -> void
|
|
22
|
-
|
|
23
|
-
attr_reader key: (String | Symbol)
|
|
24
|
-
|
|
25
|
-
def call: () -> String
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Tag
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type tag_color_preset = :magenta | :red | :volcano | :orange | :gold | :lime | :green | :cyan | :blue | :geekblue | :purple
|
|
7
|
-
type tag_status = :success | :processing | :error | :default | :warning
|
|
8
|
-
type tag_variant = :filled | :outlined | :borderless
|
|
9
|
-
type tag_color = tag_color_preset | tag_status | String
|
|
10
|
-
|
|
11
|
-
COLORS: Array[tag_color_preset]
|
|
12
|
-
STATUSES: Array[tag_status]
|
|
13
|
-
VARIANTS: Array[tag_variant]
|
|
14
|
-
|
|
15
|
-
# Extracts locals from controller params for dynamic rendering
|
|
16
|
-
def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
|
|
17
|
-
|
|
18
|
-
@color: tag_color?
|
|
19
|
-
@closable: bool
|
|
20
|
-
@close_icon: hakumi_icon?
|
|
21
|
-
@bordered: bool
|
|
22
|
-
@variant: tag_variant
|
|
23
|
-
@href: String?
|
|
24
|
-
@checkable: bool
|
|
25
|
-
@checked: bool
|
|
26
|
-
@draggable: bool
|
|
27
|
-
@html_options: hakumi_html_options
|
|
28
|
-
|
|
29
|
-
def initialize: (
|
|
30
|
-
?color: tag_color?,
|
|
31
|
-
?closable: bool?,
|
|
32
|
-
?close_icon: hakumi_icon?,
|
|
33
|
-
?bordered: bool?,
|
|
34
|
-
?variant: tag_variant?,
|
|
35
|
-
?href: String?,
|
|
36
|
-
?checkable: bool?,
|
|
37
|
-
?checked: bool?,
|
|
38
|
-
?draggable: bool?,
|
|
39
|
-
**hakumi_html_options html_options
|
|
40
|
-
) -> void
|
|
41
|
-
|
|
42
|
-
def call: () -> String
|
|
43
|
-
|
|
44
|
-
# Slot for icon content
|
|
45
|
-
def icon: () -> String?
|
|
46
|
-
def icon?: () -> bool
|
|
47
|
-
def icon=: (String) -> void
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
|
|
51
|
-
def validate_props!: () -> void
|
|
52
|
-
|
|
53
|
-
def render_link_tag: () -> String
|
|
54
|
-
|
|
55
|
-
def render_span_tag: () -> String
|
|
56
|
-
|
|
57
|
-
def tag_content: () -> String
|
|
58
|
-
|
|
59
|
-
def icon_element: () -> String?
|
|
60
|
-
|
|
61
|
-
def content_wrapper: () -> String?
|
|
62
|
-
|
|
63
|
-
def close_button: () -> String?
|
|
64
|
-
|
|
65
|
-
def tag_attributes: () -> hakumi_html_options
|
|
66
|
-
|
|
67
|
-
def tag_classes: () -> String
|
|
68
|
-
|
|
69
|
-
def tag_data_attributes: () -> hakumi_html_options
|
|
70
|
-
|
|
71
|
-
def preset_color?: () -> bool
|
|
72
|
-
|
|
73
|
-
def preset_color: () -> Symbol?
|
|
74
|
-
|
|
75
|
-
def status_color?: () -> bool
|
|
76
|
-
|
|
77
|
-
def status_color: () -> Symbol?
|
|
78
|
-
|
|
79
|
-
def custom_color?: () -> bool
|
|
80
|
-
|
|
81
|
-
def custom_color_styles: () -> String?
|
|
82
|
-
|
|
83
|
-
def contrast_color: (String hex_color) -> String
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Tag
|
|
5
|
-
module Group
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
@sortable: bool
|
|
8
|
-
@animation: Integer
|
|
9
|
-
@html_options: hakumi_html_options
|
|
10
|
-
|
|
11
|
-
def initialize: (?sortable: bool, ?animation: Integer, **hakumi_html_options html_options) -> void
|
|
12
|
-
|
|
13
|
-
def call: () -> String
|
|
14
|
-
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
def tag_group_attributes: () -> hakumi_html_options
|
|
18
|
-
def tag_group_classes: () -> String
|
|
19
|
-
# Returns data attributes hash with controller, sortable_value, animation_value
|
|
20
|
-
def tag_group_data: () -> Hash[Symbol, (String | bool | Integer)]
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module TimePicker
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
include HakumiComponents::Concerns::FormField
|
|
7
|
-
|
|
8
|
-
type time_variant = :default | :borderless | :filled
|
|
9
|
-
type time_value = String | Time | DateTime | nil
|
|
10
|
-
|
|
11
|
-
SIZES: Array[hakumi_size_standard]
|
|
12
|
-
VARIANTS: Array[time_variant]
|
|
13
|
-
|
|
14
|
-
@name: String
|
|
15
|
-
@label: String?
|
|
16
|
-
@caption: String?
|
|
17
|
-
@value: time_value
|
|
18
|
-
@default_value: time_value
|
|
19
|
-
@format: String
|
|
20
|
-
@hour_step: Integer
|
|
21
|
-
@minute_step: Integer
|
|
22
|
-
@second_step: Integer
|
|
23
|
-
@use_12_hours: bool
|
|
24
|
-
@show_now: bool
|
|
25
|
-
@disabled: bool
|
|
26
|
-
@allow_clear: bool
|
|
27
|
-
@placeholder: String?
|
|
28
|
-
@size: hakumi_size_standard
|
|
29
|
-
@variant: time_variant
|
|
30
|
-
@errors: Array[String]
|
|
31
|
-
@standalone: bool
|
|
32
|
-
@required: bool
|
|
33
|
-
@html_options: hakumi_html_options
|
|
34
|
-
|
|
35
|
-
def initialize: (
|
|
36
|
-
?name: String?,
|
|
37
|
-
?label: String?,
|
|
38
|
-
?caption: String?,
|
|
39
|
-
?value: time_value,
|
|
40
|
-
?default_value: time_value,
|
|
41
|
-
?format: String,
|
|
42
|
-
?hour_step: Integer,
|
|
43
|
-
?minute_step: Integer,
|
|
44
|
-
?second_step: Integer,
|
|
45
|
-
?use_12_hours: bool,
|
|
46
|
-
?show_now: bool,
|
|
47
|
-
?disabled: bool,
|
|
48
|
-
?allow_clear: bool,
|
|
49
|
-
?placeholder: String?,
|
|
50
|
-
?size: hakumi_size_standard,
|
|
51
|
-
?variant: time_variant,
|
|
52
|
-
?errors: (Array[String] | String),
|
|
53
|
-
?standalone: bool,
|
|
54
|
-
**hakumi_html_options html_options
|
|
55
|
-
) -> void
|
|
56
|
-
|
|
57
|
-
private
|
|
58
|
-
|
|
59
|
-
def validate_props!: () -> void
|
|
60
|
-
def current_value: () -> time_value
|
|
61
|
-
def show_seconds?: () -> bool
|
|
62
|
-
def wrapper_classes: () -> String
|
|
63
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
64
|
-
def input_attributes: () -> hakumi_html_options
|
|
65
|
-
def step_value: (untyped value) -> Integer
|
|
66
|
-
def formatted_hours: () -> Array[String]
|
|
67
|
-
def formatted_minutes: () -> Array[String]
|
|
68
|
-
def formatted_seconds: () -> Array[String]
|
|
69
|
-
def period_options: () -> Array[String]
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Timeline
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type timeline_direction = :vertical | :horizontal
|
|
7
|
-
type timeline_mode = :left | :right | :alternate
|
|
8
|
-
type timeline_variant = :filled | :outlined
|
|
9
|
-
|
|
10
|
-
DIRECTIONS: Array[timeline_direction]
|
|
11
|
-
MODES: Array[timeline_mode]
|
|
12
|
-
VARIANTS: Array[timeline_variant]
|
|
13
|
-
|
|
14
|
-
@direction: timeline_direction
|
|
15
|
-
@mode: timeline_mode
|
|
16
|
-
@reverse: bool
|
|
17
|
-
@pending: (String | bool)?
|
|
18
|
-
@pending_dot: untyped # String, Symbol, or ViewComponent
|
|
19
|
-
@title_span: (String | Integer)?
|
|
20
|
-
@variant: timeline_variant
|
|
21
|
-
@html_options: hakumi_html_options
|
|
22
|
-
|
|
23
|
-
# Class methods for controller integration
|
|
24
|
-
def self.extract_controller_locals: (Hash[Symbol, untyped] params) -> Hash[Symbol, untyped]
|
|
25
|
-
def self.parse_json_param: (untyped value) -> untyped
|
|
26
|
-
|
|
27
|
-
def initialize: (
|
|
28
|
-
?direction: timeline_direction,
|
|
29
|
-
?mode: timeline_mode,
|
|
30
|
-
?reverse: bool,
|
|
31
|
-
?pending: (String | bool)?,
|
|
32
|
-
?pending_dot: untyped,
|
|
33
|
-
?title_span: (String | Integer)?,
|
|
34
|
-
?variant: timeline_variant,
|
|
35
|
-
**hakumi_html_options html_options
|
|
36
|
-
) -> void
|
|
37
|
-
|
|
38
|
-
attr_reader direction: timeline_direction
|
|
39
|
-
attr_reader mode: timeline_mode
|
|
40
|
-
attr_reader reverse: bool
|
|
41
|
-
attr_reader pending: (String | bool)?
|
|
42
|
-
attr_reader pending_dot: untyped
|
|
43
|
-
attr_reader title_span: (String | Integer)?
|
|
44
|
-
attr_reader variant: timeline_variant
|
|
45
|
-
|
|
46
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
47
|
-
def timeline_items: () -> Array[untyped] # Array of Item::Component
|
|
48
|
-
def item_position: (Integer index, untyped item) -> (:left | :right)
|
|
49
|
-
def pending_item: () -> untyped # Item::Component or nil
|
|
50
|
-
|
|
51
|
-
private
|
|
52
|
-
|
|
53
|
-
def stimulus_controller: () -> String
|
|
54
|
-
def stimulus_data: () -> Hash[Symbol | String, untyped]
|
|
55
|
-
def timeline_classes: () -> String
|
|
56
|
-
def timeline_style: () -> (String | nil)
|
|
57
|
-
def validate_props!: () -> void
|
|
58
|
-
def normalized_title_span: () -> (String | nil)
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Timeline
|
|
5
|
-
module Item
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
type timeline_color_preset = :blue | :red | :green | :gray
|
|
8
|
-
type timeline_position = :left | :right
|
|
9
|
-
|
|
10
|
-
COLORS: Hash[timeline_color_preset, String]
|
|
11
|
-
POSITIONS: Array[timeline_position]
|
|
12
|
-
|
|
13
|
-
@title: (String | untyped)? # String or ViewComponent
|
|
14
|
-
@body: (String | untyped)? # String or ViewComponent
|
|
15
|
-
@color: (timeline_color_preset | String)
|
|
16
|
-
@dot: untyped # String, Symbol, or ViewComponent
|
|
17
|
-
@position: (timeline_position | nil)
|
|
18
|
-
@loading: bool
|
|
19
|
-
@parent: untyped # Parent Timeline::Component
|
|
20
|
-
@pending: bool
|
|
21
|
-
@html_options: hakumi_html_options
|
|
22
|
-
@content_block: (Proc | nil)
|
|
23
|
-
@index: (Integer | nil)
|
|
24
|
-
@total: (Integer | nil)
|
|
25
|
-
@resolved_position: (timeline_position | nil)
|
|
26
|
-
@reverse: (bool | nil)
|
|
27
|
-
@dot_content: (String | nil)
|
|
28
|
-
|
|
29
|
-
def initialize: (
|
|
30
|
-
?title: (String | untyped)?,
|
|
31
|
-
?body: (String | untyped)?,
|
|
32
|
-
?color: (timeline_color_preset | String),
|
|
33
|
-
?dot: untyped,
|
|
34
|
-
?position: (timeline_position | nil),
|
|
35
|
-
?loading: bool,
|
|
36
|
-
?parent: untyped,
|
|
37
|
-
?pending: bool,
|
|
38
|
-
**hakumi_html_options html_options
|
|
39
|
-
) { () -> untyped } -> void
|
|
40
|
-
|
|
41
|
-
attr_reader title: (String | untyped)?
|
|
42
|
-
attr_reader body: (String | untyped)?
|
|
43
|
-
attr_reader color: (timeline_color_preset | String)
|
|
44
|
-
attr_reader dot: untyped
|
|
45
|
-
attr_reader position: (timeline_position | nil)
|
|
46
|
-
attr_reader loading: bool
|
|
47
|
-
attr_reader parent: untyped
|
|
48
|
-
attr_reader pending: bool
|
|
49
|
-
|
|
50
|
-
# Sets context information (index, position) from parent Timeline
|
|
51
|
-
def with_context: (index: Integer, total: Integer, ?position: timeline_position?, ?reverse: bool) -> self
|
|
52
|
-
|
|
53
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
54
|
-
def item_content: () -> (String | nil)
|
|
55
|
-
def resolved_position: () -> (timeline_position | nil)
|
|
56
|
-
def last_item?: () -> bool
|
|
57
|
-
def dot_component?: () -> bool
|
|
58
|
-
def dot_content: () -> (String | nil)
|
|
59
|
-
|
|
60
|
-
private
|
|
61
|
-
|
|
62
|
-
def item_classes: () -> String
|
|
63
|
-
def item_data: () -> Hash[Symbol, Integer]
|
|
64
|
-
def dot_style: () -> (String | nil)
|
|
65
|
-
def color_value_for: ((timeline_color_preset | String) value) -> (String | nil)
|
|
66
|
-
def validate_props!: () -> void
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Tooltip
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type tooltip_trigger = :hover | :focus | :click
|
|
7
|
-
type tooltip_placement = :top | :top_left | :top_right | :bottom | :bottom_left | :bottom_right | :left | :left_top | :left_bottom | :right | :right_top | :right_bottom
|
|
8
|
-
type tooltip_color = :default | :pink | :red | :yellow | :orange | :cyan | :green | :blue | :purple | :geekblue | :magenta | :volcano | :gold | :lime
|
|
9
|
-
|
|
10
|
-
TRIGGERS: Array[tooltip_trigger]
|
|
11
|
-
PLACEMENTS: Array[tooltip_placement]
|
|
12
|
-
COLORS: Array[tooltip_color]
|
|
13
|
-
|
|
14
|
-
@title: String?
|
|
15
|
-
@placement: tooltip_placement
|
|
16
|
-
@trigger: tooltip_trigger
|
|
17
|
-
@arrow: bool
|
|
18
|
-
@color: (tooltip_color | String)
|
|
19
|
-
@open: bool?
|
|
20
|
-
@fresh: bool
|
|
21
|
-
@html_options: hakumi_html_options
|
|
22
|
-
|
|
23
|
-
attr_reader title: String?
|
|
24
|
-
attr_reader placement: tooltip_placement
|
|
25
|
-
attr_reader trigger: tooltip_trigger
|
|
26
|
-
attr_reader arrow: bool
|
|
27
|
-
attr_reader color: (tooltip_color | String)
|
|
28
|
-
attr_reader open: bool?
|
|
29
|
-
attr_reader fresh: bool
|
|
30
|
-
|
|
31
|
-
def initialize: (
|
|
32
|
-
?title: String?,
|
|
33
|
-
?placement: tooltip_placement,
|
|
34
|
-
?trigger: tooltip_trigger,
|
|
35
|
-
?arrow: bool,
|
|
36
|
-
?color: (tooltip_color | String),
|
|
37
|
-
?open: bool?,
|
|
38
|
-
?fresh: bool,
|
|
39
|
-
**hakumi_html_options html_options
|
|
40
|
-
) -> void
|
|
41
|
-
|
|
42
|
-
def wrapper_classes: () -> String
|
|
43
|
-
|
|
44
|
-
def tooltip_classes: () -> String
|
|
45
|
-
|
|
46
|
-
def placement_class: () -> String
|
|
47
|
-
|
|
48
|
-
def color_class: () -> String?
|
|
49
|
-
|
|
50
|
-
def preset_color?: () -> bool
|
|
51
|
-
|
|
52
|
-
def custom_color?: () -> bool
|
|
53
|
-
|
|
54
|
-
def custom_color_style: () -> String?
|
|
55
|
-
|
|
56
|
-
def stimulus_controller: () -> String
|
|
57
|
-
|
|
58
|
-
def stimulus_values: () -> Hash[Symbol, untyped]
|
|
59
|
-
|
|
60
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
61
|
-
|
|
62
|
-
def stimulus_data_attributes: () -> hakumi_html_options
|
|
63
|
-
|
|
64
|
-
def tooltip_text: () -> String?
|
|
65
|
-
|
|
66
|
-
def has_tooltip_content?: () -> bool
|
|
67
|
-
|
|
68
|
-
private
|
|
69
|
-
|
|
70
|
-
def validate_props!: () -> void
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|