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,46 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Checkbox
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
include HakumiComponents::Concerns::FormField
|
|
7
|
-
|
|
8
|
-
@checked: bool
|
|
9
|
-
@disabled: bool
|
|
10
|
-
@indeterminate: bool
|
|
11
|
-
@value: (String | Integer | Float)?
|
|
12
|
-
@name: String?
|
|
13
|
-
@id: String
|
|
14
|
-
@auto_focus: bool
|
|
15
|
-
@label: String?
|
|
16
|
-
@caption: String?
|
|
17
|
-
@standalone: bool
|
|
18
|
-
@required: bool
|
|
19
|
-
@errors: Array[String]
|
|
20
|
-
@wrapper_id: String
|
|
21
|
-
@html_options: hakumi_html_options
|
|
22
|
-
|
|
23
|
-
def initialize: (
|
|
24
|
-
?checked: bool,
|
|
25
|
-
?disabled: bool,
|
|
26
|
-
?indeterminate: bool,
|
|
27
|
-
?value: (String | Integer | Float)?,
|
|
28
|
-
?name: String?,
|
|
29
|
-
?id: String?,
|
|
30
|
-
?auto_focus: bool,
|
|
31
|
-
?label: String?,
|
|
32
|
-
?caption: String?,
|
|
33
|
-
?standalone: bool,
|
|
34
|
-
?required: bool,
|
|
35
|
-
?errors: Array[String],
|
|
36
|
-
**hakumi_html_options html_options
|
|
37
|
-
) -> void
|
|
38
|
-
|
|
39
|
-
def wrapper_classes: () -> String
|
|
40
|
-
|
|
41
|
-
def checkbox_classes: () -> String
|
|
42
|
-
|
|
43
|
-
def data_controllers: () -> String
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Checkbox
|
|
5
|
-
module Group
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
type checkbox_option = { label: String, value: (String | Integer | Float) }
|
|
8
|
-
|
|
9
|
-
@name: String
|
|
10
|
-
@value: Array[String | Integer | Float]
|
|
11
|
-
@options: Array[Hash[Symbol, untyped] | String]
|
|
12
|
-
@disabled: bool
|
|
13
|
-
@html_options: hakumi_html_options
|
|
14
|
-
|
|
15
|
-
def initialize: (
|
|
16
|
-
?name: String?,
|
|
17
|
-
?value: Array[String | Integer | Float],
|
|
18
|
-
?default_value: Array[String | Integer | Float],
|
|
19
|
-
?options: Array[Hash[Symbol, untyped] | String],
|
|
20
|
-
?disabled: bool,
|
|
21
|
-
**hakumi_html_options html_options
|
|
22
|
-
) -> void
|
|
23
|
-
|
|
24
|
-
def wrapper_classes: () -> String
|
|
25
|
-
|
|
26
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
27
|
-
|
|
28
|
-
def normalized_options: () -> Array[checkbox_option]
|
|
29
|
-
|
|
30
|
-
def option_checked?: ((String | Integer | Float) option_value) -> bool
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Collapse
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type collapse_size = :default | :small | :large
|
|
7
|
-
type collapse_collapsible = :header | :icon | :disabled | nil
|
|
8
|
-
|
|
9
|
-
SIZES: Array[collapse_size]
|
|
10
|
-
COLLAPSIBLES: Array[collapse_collapsible]
|
|
11
|
-
|
|
12
|
-
@size: collapse_size
|
|
13
|
-
@accordion: bool
|
|
14
|
-
@bordered: bool
|
|
15
|
-
@ghost: bool
|
|
16
|
-
@collapsible: collapse_collapsible
|
|
17
|
-
@active_keys: Array[String]?
|
|
18
|
-
@default_active_keys: Array[String]?
|
|
19
|
-
@html_options: hakumi_html_options
|
|
20
|
-
|
|
21
|
-
def initialize: (
|
|
22
|
-
?size: collapse_size,
|
|
23
|
-
?accordion: bool,
|
|
24
|
-
?bordered: bool,
|
|
25
|
-
?ghost: bool,
|
|
26
|
-
?collapsible: collapse_collapsible,
|
|
27
|
-
?active_keys: (String | Array[String] | nil)?,
|
|
28
|
-
?default_active_keys: (String | Array[String] | nil)?,
|
|
29
|
-
**hakumi_html_options html_options
|
|
30
|
-
) -> void
|
|
31
|
-
|
|
32
|
-
attr_reader size: collapse_size
|
|
33
|
-
attr_reader accordion: bool
|
|
34
|
-
attr_reader bordered: bool
|
|
35
|
-
attr_reader ghost: bool
|
|
36
|
-
attr_reader collapsible: collapse_collapsible
|
|
37
|
-
|
|
38
|
-
def collapse_classes: () -> String
|
|
39
|
-
|
|
40
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
41
|
-
|
|
42
|
-
def stimulus_controller: () -> String
|
|
43
|
-
|
|
44
|
-
def initial_active_keys: () -> Array[String]
|
|
45
|
-
|
|
46
|
-
def stimulus_values: () -> Hash[Symbol, untyped]
|
|
47
|
-
|
|
48
|
-
def stimulus_data_attributes: () -> Hash[String, untyped]
|
|
49
|
-
|
|
50
|
-
private
|
|
51
|
-
|
|
52
|
-
def normalize_keys: ((String | Array[String] | nil)?) -> Array[String]?
|
|
53
|
-
|
|
54
|
-
def validate_props!: () -> void
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Collapse
|
|
5
|
-
module Panel
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
type panel_collapsible = :header | :icon | :disabled | nil
|
|
8
|
-
|
|
9
|
-
@key: String
|
|
10
|
-
@header: (String | untyped)?
|
|
11
|
-
@extra: (String | untyped)?
|
|
12
|
-
@disabled: bool
|
|
13
|
-
@show_arrow: bool
|
|
14
|
-
@collapsible: panel_collapsible
|
|
15
|
-
@force_render: bool
|
|
16
|
-
@parent: HakumiComponents::Collapse::Component?
|
|
17
|
-
@html_options: hakumi_html_options
|
|
18
|
-
@content: (String | untyped)?
|
|
19
|
-
|
|
20
|
-
def initialize: (
|
|
21
|
-
key: (String | Symbol | Integer),
|
|
22
|
-
?header: (String | untyped)?,
|
|
23
|
-
?extra: (String | untyped)?,
|
|
24
|
-
?disabled: bool,
|
|
25
|
-
?show_arrow: bool,
|
|
26
|
-
?collapsible: panel_collapsible,
|
|
27
|
-
?force_render: bool,
|
|
28
|
-
?parent: HakumiComponents::Collapse::Component?,
|
|
29
|
-
**hakumi_html_options html_options
|
|
30
|
-
) -> void
|
|
31
|
-
|
|
32
|
-
attr_reader key: String
|
|
33
|
-
attr_reader header: (String | untyped)?
|
|
34
|
-
attr_reader extra: (String | untyped)?
|
|
35
|
-
attr_reader disabled: bool
|
|
36
|
-
attr_reader show_arrow: bool
|
|
37
|
-
attr_reader collapsible: panel_collapsible
|
|
38
|
-
attr_reader force_render: bool
|
|
39
|
-
attr_accessor content: (String | untyped)?
|
|
40
|
-
|
|
41
|
-
def item_classes: (bool active) -> String
|
|
42
|
-
|
|
43
|
-
def item_attributes: (bool active) -> hakumi_html_options
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module ColorPicker
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
include HakumiComponents::Concerns::FormField
|
|
7
|
-
|
|
8
|
-
type color_format = :hex | :rgb | :hsl | :hsb
|
|
9
|
-
type trigger_type = :click | :hover
|
|
10
|
-
type placement_type = :bottom_left | :bottom_right | :top_left | :top_right | :bottom | :top
|
|
11
|
-
type preset_group = { label: String?, colors: Array[String] }
|
|
12
|
-
type preset_hash = Hash[String, Array[String]]
|
|
13
|
-
type preset_input = preset_hash | Array[preset_group] | Array[String]
|
|
14
|
-
|
|
15
|
-
SIZES: Array[hakumi_size_standard]
|
|
16
|
-
TRIGGERS: Array[trigger_type]
|
|
17
|
-
FORMATS: Array[color_format]
|
|
18
|
-
DEFAULT_PRESET_COLORS: Array[String]
|
|
19
|
-
|
|
20
|
-
@name: String
|
|
21
|
-
@label: String?
|
|
22
|
-
@caption: String?
|
|
23
|
-
@value: String?
|
|
24
|
-
@default_value: String
|
|
25
|
-
@format: color_format
|
|
26
|
-
@show_text: bool
|
|
27
|
-
@show_format_select: bool
|
|
28
|
-
@disabled: bool
|
|
29
|
-
@disabled_alpha: bool
|
|
30
|
-
@allow_clear: bool
|
|
31
|
-
@show_preset_colors: bool
|
|
32
|
-
@default_preset_label: String
|
|
33
|
-
@presets: Array[preset_group]
|
|
34
|
-
@size: hakumi_size_standard
|
|
35
|
-
@trigger: trigger_type
|
|
36
|
-
@placement: placement_type
|
|
37
|
-
@standalone: bool
|
|
38
|
-
@errors: Array[String]
|
|
39
|
-
@html_attrs: hakumi_html_options
|
|
40
|
-
|
|
41
|
-
def initialize: (
|
|
42
|
-
?name: String?,
|
|
43
|
-
?label: String?,
|
|
44
|
-
?caption: String?,
|
|
45
|
-
?value: String?,
|
|
46
|
-
?default_value: String?,
|
|
47
|
-
?format: color_format,
|
|
48
|
-
?show_text: bool,
|
|
49
|
-
?show_format_select: bool,
|
|
50
|
-
?disabled: bool,
|
|
51
|
-
?disabled_alpha: bool,
|
|
52
|
-
?allow_clear: bool,
|
|
53
|
-
?show_preset_colors: bool,
|
|
54
|
-
?default_preset_label: String,
|
|
55
|
-
?presets: preset_input,
|
|
56
|
-
?size: hakumi_size_standard,
|
|
57
|
-
?trigger: trigger_type,
|
|
58
|
-
?placement: placement_type,
|
|
59
|
-
?standalone: bool,
|
|
60
|
-
?errors: (Array[String] | String),
|
|
61
|
-
**hakumi_html_options html_attrs
|
|
62
|
-
) -> void
|
|
63
|
-
|
|
64
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
65
|
-
def trigger_size_class: () -> String
|
|
66
|
-
def display_value: () -> String
|
|
67
|
-
def presets?: () -> bool
|
|
68
|
-
def preset_groups: () -> Array[preset_group]
|
|
69
|
-
def default_presets: () -> Array[preset_group]
|
|
70
|
-
def all_preset_groups: () -> Array[preset_group]
|
|
71
|
-
|
|
72
|
-
private
|
|
73
|
-
|
|
74
|
-
def validate_props!: () -> void
|
|
75
|
-
def component_classes: () -> String
|
|
76
|
-
def data_value: (String? value) -> String?
|
|
77
|
-
def normalize_presets: (preset_input? presets) -> Array[preset_group]
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Concerns
|
|
5
|
-
# Shared behavior for form field components
|
|
6
|
-
# Provides common methods for handling errors, labels, captions, and accessibility
|
|
7
|
-
module FormField
|
|
8
|
-
# Attribute readers provided by concern
|
|
9
|
-
def name: () -> String
|
|
10
|
-
|
|
11
|
-
def label: () -> String?
|
|
12
|
-
|
|
13
|
-
def caption: () -> String?
|
|
14
|
-
|
|
15
|
-
def errors: () -> Array[String]
|
|
16
|
-
|
|
17
|
-
def required: () -> bool
|
|
18
|
-
|
|
19
|
-
def size: () -> Symbol
|
|
20
|
-
|
|
21
|
-
def standalone: () -> bool
|
|
22
|
-
|
|
23
|
-
# Check if field has validation errors
|
|
24
|
-
#
|
|
25
|
-
# @return [Boolean]
|
|
26
|
-
def has_error?: () -> bool
|
|
27
|
-
|
|
28
|
-
# Check if component is in standalone mode
|
|
29
|
-
#
|
|
30
|
-
# @return [Boolean]
|
|
31
|
-
def standalone?: () -> bool
|
|
32
|
-
|
|
33
|
-
# Get the input field ID
|
|
34
|
-
# Works with both @html_options and @html_attrs
|
|
35
|
-
#
|
|
36
|
-
# @return [String]
|
|
37
|
-
def input_id: () -> String
|
|
38
|
-
|
|
39
|
-
# Generate CSS classes for form item wrapper
|
|
40
|
-
#
|
|
41
|
-
# @return [String]
|
|
42
|
-
def form_item_classes: () -> String
|
|
43
|
-
|
|
44
|
-
# Generate aria-describedby attribute value
|
|
45
|
-
#
|
|
46
|
-
# @return [String, nil]
|
|
47
|
-
def describedby_ids: () -> String?
|
|
48
|
-
|
|
49
|
-
# Get first error message
|
|
50
|
-
#
|
|
51
|
-
# @return [String, nil]
|
|
52
|
-
def error_message: () -> String?
|
|
53
|
-
|
|
54
|
-
# Render label element (wraps label in div for proper styling)
|
|
55
|
-
#
|
|
56
|
-
# @param field_id [String] ID of the input field
|
|
57
|
-
# @return [String, nil]
|
|
58
|
-
def render_label: (?field_id: String?) -> String?
|
|
59
|
-
|
|
60
|
-
# Render caption (help text) element
|
|
61
|
-
#
|
|
62
|
-
# @return [String, nil]
|
|
63
|
-
def render_caption: () -> String?
|
|
64
|
-
|
|
65
|
-
# Render error message element
|
|
66
|
-
#
|
|
67
|
-
# @return [String, nil]
|
|
68
|
-
def render_error: () -> String?
|
|
69
|
-
|
|
70
|
-
# Render explain section (caption or error)
|
|
71
|
-
#
|
|
72
|
-
# @return [String, nil]
|
|
73
|
-
def render_explain: () -> String?
|
|
74
|
-
|
|
75
|
-
# Generate form item wrapper attributes
|
|
76
|
-
#
|
|
77
|
-
# @param additional_data [Hash] Additional data attributes for Stimulus controllers
|
|
78
|
-
# @return [Hash] HTML attributes hash with class, data, etc.
|
|
79
|
-
def form_item_attributes: (?additional_data: Hash[Symbol, (String | Integer | bool)]) -> hakumi_html_options
|
|
80
|
-
|
|
81
|
-
# Methods expected from BaseComponent (duck typing interface)
|
|
82
|
-
# These are called by FormField but defined in BaseComponent
|
|
83
|
-
def class_names: (String base, ?Hash[Symbol, (Symbol | String | Integer | bool)] modifiers, ?Array[String] extras) -> String
|
|
84
|
-
def content_tag: (Symbol tag_name, String? content, **hakumi_html_attribute_value attributes) -> String
|
|
85
|
-
| (Symbol tag_name, **hakumi_html_attribute_value attributes) { () -> String? } -> String
|
|
86
|
-
def safe_join: (Array[untyped] array, ?String separator) -> String
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Container
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type container_width = :narrow | :default | :wide | :xl | :fluid | Numeric | String
|
|
7
|
-
|
|
8
|
-
WIDTH_PRESETS: Hash[Symbol, String]
|
|
9
|
-
|
|
10
|
-
@width: container_width
|
|
11
|
-
@padded: bool
|
|
12
|
-
@centered: bool
|
|
13
|
-
@full_height: bool
|
|
14
|
-
@html_options: hakumi_html_options
|
|
15
|
-
|
|
16
|
-
def initialize: (
|
|
17
|
-
?width: container_width,
|
|
18
|
-
?padded: bool,
|
|
19
|
-
?centered: bool,
|
|
20
|
-
?full_height: bool,
|
|
21
|
-
**hakumi_html_options html_options
|
|
22
|
-
) -> void
|
|
23
|
-
|
|
24
|
-
def call: () -> String
|
|
25
|
-
|
|
26
|
-
private
|
|
27
|
-
|
|
28
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
29
|
-
|
|
30
|
-
def wrapper_classes: () -> String
|
|
31
|
-
|
|
32
|
-
def width_class: () -> String?
|
|
33
|
-
|
|
34
|
-
def width_style: () -> String?
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module DatePicker
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
include HakumiComponents::Concerns::FormField
|
|
7
|
-
|
|
8
|
-
type picker_type = :date | :week | :month | :quarter | :year
|
|
9
|
-
type date_value = String | Time | DateTime | Date | nil
|
|
10
|
-
|
|
11
|
-
SIZES: Array[hakumi_size_standard]
|
|
12
|
-
PICKERS: Array[picker_type]
|
|
13
|
-
|
|
14
|
-
@name: String
|
|
15
|
-
@label: String?
|
|
16
|
-
@caption: String?
|
|
17
|
-
@value: date_value
|
|
18
|
-
@default_value: date_value
|
|
19
|
-
@format: String?
|
|
20
|
-
@display_format: String?
|
|
21
|
-
@picker: picker_type
|
|
22
|
-
@show_time: bool
|
|
23
|
-
@show_seconds: bool
|
|
24
|
-
@disabled: bool
|
|
25
|
-
@disabled_date: Proc?
|
|
26
|
-
@allow_clear: bool
|
|
27
|
-
@placeholder: String?
|
|
28
|
-
@size: hakumi_size_standard
|
|
29
|
-
@bordered: bool
|
|
30
|
-
@required: bool
|
|
31
|
-
@errors: Array[String]
|
|
32
|
-
@standalone: bool
|
|
33
|
-
@html_options: hakumi_html_options
|
|
34
|
-
|
|
35
|
-
def initialize: (
|
|
36
|
-
?name: String?,
|
|
37
|
-
?label: String?,
|
|
38
|
-
?caption: String?,
|
|
39
|
-
?value: date_value,
|
|
40
|
-
?default_value: date_value,
|
|
41
|
-
?format: String?,
|
|
42
|
-
?display_format: String?,
|
|
43
|
-
?picker: picker_type,
|
|
44
|
-
?show_time: bool,
|
|
45
|
-
?show_seconds: bool?,
|
|
46
|
-
?disabled: bool,
|
|
47
|
-
?disabled_date: Proc?,
|
|
48
|
-
?allow_clear: bool,
|
|
49
|
-
?placeholder: String?,
|
|
50
|
-
?size: hakumi_size_standard,
|
|
51
|
-
?bordered: bool,
|
|
52
|
-
?required: bool,
|
|
53
|
-
?errors: (Array[String] | String),
|
|
54
|
-
?standalone: bool,
|
|
55
|
-
**hakumi_html_options html_options
|
|
56
|
-
) -> void
|
|
57
|
-
|
|
58
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
59
|
-
def hidden_input_attributes: () -> hakumi_html_options
|
|
60
|
-
def visible_input_attributes: () -> hakumi_html_options
|
|
61
|
-
def input_attributes: () -> hakumi_html_options
|
|
62
|
-
def display_value: () -> String?
|
|
63
|
-
|
|
64
|
-
private
|
|
65
|
-
|
|
66
|
-
def validate_props!: () -> void
|
|
67
|
-
def formatted_hours: () -> Array[String]
|
|
68
|
-
def formatted_minutes: () -> Array[String]
|
|
69
|
-
def formatted_seconds: () -> Array[String]
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module DatePicker
|
|
5
|
-
class RangePicker < HakumiComponents::BaseComponent
|
|
6
|
-
include HakumiComponents::Concerns::FormField
|
|
7
|
-
include SharedRendering
|
|
8
|
-
|
|
9
|
-
@name: String
|
|
10
|
-
@label: String?
|
|
11
|
-
@caption: String?
|
|
12
|
-
@start_value: SharedRendering::datetime_value
|
|
13
|
-
@end_value: SharedRendering::datetime_value
|
|
14
|
-
@value: SharedRendering::datetime_value
|
|
15
|
-
@default_value: SharedRendering::datetime_value
|
|
16
|
-
@format: String?
|
|
17
|
-
@picker: Symbol
|
|
18
|
-
@show_time: bool
|
|
19
|
-
@disabled: bool
|
|
20
|
-
# disabled_date is a Proc passed to Calendar component, or nil
|
|
21
|
-
@disabled_date: untyped
|
|
22
|
-
@allow_clear: bool
|
|
23
|
-
@placeholder: (String | Array[String])?
|
|
24
|
-
@size: Symbol
|
|
25
|
-
@bordered: bool
|
|
26
|
-
@required: bool
|
|
27
|
-
@errors: Array[String]
|
|
28
|
-
@standalone: bool
|
|
29
|
-
@html_options: hakumi_html_options
|
|
30
|
-
|
|
31
|
-
def initialize: (
|
|
32
|
-
?name: String?,
|
|
33
|
-
?label: String?,
|
|
34
|
-
?caption: String?,
|
|
35
|
-
?start_value: SharedRendering::datetime_value,
|
|
36
|
-
?end_value: SharedRendering::datetime_value,
|
|
37
|
-
?default_value: SharedRendering::datetime_value,
|
|
38
|
-
?format: String?,
|
|
39
|
-
?picker: Symbol,
|
|
40
|
-
?show_time: bool,
|
|
41
|
-
?disabled: bool,
|
|
42
|
-
# disabled_date is a Proc for Calendar component
|
|
43
|
-
?disabled_date: untyped,
|
|
44
|
-
?allow_clear: bool,
|
|
45
|
-
?placeholder: (String | Array[String])?,
|
|
46
|
-
?size: Symbol,
|
|
47
|
-
?bordered: bool,
|
|
48
|
-
?required: bool,
|
|
49
|
-
?errors: Array[String],
|
|
50
|
-
?standalone: bool,
|
|
51
|
-
**hakumi_html_options html_options
|
|
52
|
-
) -> void
|
|
53
|
-
|
|
54
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
55
|
-
def start_input_attributes: () -> hakumi_html_options
|
|
56
|
-
def end_input_attributes: () -> hakumi_html_options
|
|
57
|
-
def start_input_name: () -> String
|
|
58
|
-
def end_input_name: () -> String
|
|
59
|
-
def start_input_id: () -> String
|
|
60
|
-
def end_input_id: () -> String
|
|
61
|
-
def display_values: () -> Array[String?]
|
|
62
|
-
|
|
63
|
-
private
|
|
64
|
-
|
|
65
|
-
def validate_props!: () -> void
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module DatePicker
|
|
5
|
-
module SharedRendering
|
|
6
|
-
SIZES: Array[Symbol]
|
|
7
|
-
PICKERS: Array[Symbol]
|
|
8
|
-
|
|
9
|
-
DEFAULT_DATE_FORMAT: String
|
|
10
|
-
DEFAULT_DATETIME_FORMAT: String
|
|
11
|
-
DEFAULT_DATETIME_NO_SECONDS_FORMAT: String
|
|
12
|
-
|
|
13
|
-
# Date/time value can be String, Time, DateTime, Date, or nil
|
|
14
|
-
type datetime_value = String | Time | DateTime | Date | nil
|
|
15
|
-
|
|
16
|
-
def iso_value: (datetime_value value) -> String?
|
|
17
|
-
def formatted_value: (datetime_value value) -> String?
|
|
18
|
-
def js_display_format: () -> String
|
|
19
|
-
def display_format: () -> String
|
|
20
|
-
def default_strftime_format: () -> String
|
|
21
|
-
def dayjs_to_strftime: (String dayjs_format) -> String
|
|
22
|
-
def parse_datetime: (datetime_value value) -> (Time | DateTime | Date | nil)
|
|
23
|
-
def parse_date: (datetime_value value) -> Date?
|
|
24
|
-
def show_seconds?: () -> bool
|
|
25
|
-
def use_12_hours?: () -> bool
|
|
26
|
-
def format_quarter: (Date | DateTime | Time date_value) -> String
|
|
27
|
-
def picker_mode: () -> Symbol
|
|
28
|
-
def base_wrapper_classes: (base: String, ?extra_classes: Array[String?]) -> String
|
|
29
|
-
# Returns data attributes for picker panel (range is data attribute value)
|
|
30
|
-
def picker_panel_attributes: (?range: String?) -> Hash[Symbol, String]
|
|
31
|
-
# Returns options hash for Calendar component (disabled_date is Proc or nil, value is datetime)
|
|
32
|
-
def calendar_component_options: (value: datetime_value, ?range: String?) -> Hash[Symbol, untyped]
|
|
33
|
-
def placeholder_text: () -> String
|
|
34
|
-
def range_placeholders: () -> Array[String]
|
|
35
|
-
|
|
36
|
-
# Required helpers provided by BaseComponent
|
|
37
|
-
def class_names: (String base, ?Hash[Symbol, bool] modifiers, ?Array[String?] extras) -> String
|
|
38
|
-
def value_present?: (untyped value) -> bool
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Descriptions
|
|
5
|
-
class Component < HakumiComponents::BaseComponent
|
|
6
|
-
type descriptions_size = :default | :middle | :small
|
|
7
|
-
type descriptions_layout = :horizontal | :vertical
|
|
8
|
-
type descriptions_breakpoint = :xs | :sm | :md | :lg | :xl | :xxl
|
|
9
|
-
|
|
10
|
-
SIZE_OPTIONS: Array[descriptions_size]
|
|
11
|
-
LAYOUT_OPTIONS: Array[descriptions_layout]
|
|
12
|
-
COLUMN_BREAKPOINTS: Array[descriptions_breakpoint]
|
|
13
|
-
|
|
14
|
-
@title: (String | untyped)?
|
|
15
|
-
@extra: (String | untyped)?
|
|
16
|
-
@bordered: bool
|
|
17
|
-
@size: descriptions_size
|
|
18
|
-
@layout: descriptions_layout
|
|
19
|
-
@column: (Integer | Hash[Symbol, Integer])
|
|
20
|
-
@colon: bool
|
|
21
|
-
@html_options: hakumi_html_options
|
|
22
|
-
|
|
23
|
-
def initialize: (
|
|
24
|
-
?title: (String | untyped)?,
|
|
25
|
-
?extra: (String | untyped)?,
|
|
26
|
-
?bordered: bool,
|
|
27
|
-
?size: descriptions_size,
|
|
28
|
-
?layout: descriptions_layout,
|
|
29
|
-
?column: (Integer | Hash[Symbol, Integer]),
|
|
30
|
-
?colon: bool,
|
|
31
|
-
**hakumi_html_options html_options
|
|
32
|
-
) -> void
|
|
33
|
-
|
|
34
|
-
private
|
|
35
|
-
|
|
36
|
-
def validate_props!: () -> void
|
|
37
|
-
|
|
38
|
-
def max_column_count: () -> (Integer | Hash[Symbol, Integer])
|
|
39
|
-
|
|
40
|
-
def rows: () -> Array[Array[[HakumiComponents::Descriptions::Item::Component, Integer]]]
|
|
41
|
-
|
|
42
|
-
def wrapper_classes: () -> String
|
|
43
|
-
|
|
44
|
-
def build_column_classes: () -> Array[String]
|
|
45
|
-
|
|
46
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
47
|
-
|
|
48
|
-
def table_classes: () -> String
|
|
49
|
-
|
|
50
|
-
def label_cell_classes: () -> String
|
|
51
|
-
|
|
52
|
-
def content_cell_classes: () -> String
|
|
53
|
-
|
|
54
|
-
def render_title: () -> String?
|
|
55
|
-
|
|
56
|
-
def render_extra: () -> String?
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module HakumiComponents
|
|
4
|
-
module Descriptions
|
|
5
|
-
module Item
|
|
6
|
-
class Component < HakumiComponents::BaseComponent
|
|
7
|
-
@label: (String | untyped)
|
|
8
|
-
@content: (String | untyped)?
|
|
9
|
-
@span: Integer
|
|
10
|
-
@label_style: (String | Hash[Symbol, untyped])?
|
|
11
|
-
@content_style: (String | Hash[Symbol, untyped])?
|
|
12
|
-
@html_options: hakumi_html_options
|
|
13
|
-
|
|
14
|
-
def initialize: (
|
|
15
|
-
label: (String | untyped),
|
|
16
|
-
?content: (String | untyped)?,
|
|
17
|
-
?span: Integer,
|
|
18
|
-
?label_style: (String | Hash[Symbol, untyped])?,
|
|
19
|
-
?content_style: (String | Hash[Symbol, untyped])?,
|
|
20
|
-
**hakumi_html_options html_options
|
|
21
|
-
) -> void
|
|
22
|
-
|
|
23
|
-
attr_accessor content: (String | untyped)?
|
|
24
|
-
attr_reader label: (String | untyped)
|
|
25
|
-
attr_reader span: Integer
|
|
26
|
-
attr_reader label_style: (String | Hash[Symbol, untyped])?
|
|
27
|
-
attr_reader content_style: (String | Hash[Symbol, untyped])?
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|