hakumi_components 0.1.17.pre → 0.1.18.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 +1 -1
- data/README.md +92 -70
- data/app/components/{hakumi → hakumi_components}/admin_panel/component.html.erb +2 -2
- data/app/components/{hakumi → hakumi_components}/admin_panel/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/affix/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/alert/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/alert/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/anchor/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/anchor/link/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/autocomplete/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/autocomplete/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/avatar/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/badge/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/base_component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/breadcrumb/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/breadcrumb/item/component.html.erb +2 -2
- data/app/components/{hakumi → hakumi_components}/breadcrumb/item/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/button/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/calendar/component.html.erb +5 -5
- data/app/components/{hakumi → hakumi_components}/calendar/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/card/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/card/grid/component.rb +5 -5
- data/app/components/{hakumi → hakumi_components}/card/meta/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/carousel/component.html.erb +2 -2
- data/app/components/{hakumi → hakumi_components}/carousel/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/cascader/component.html.erb +2 -2
- data/app/components/{hakumi → hakumi_components}/cascader/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/checkbox/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/checkbox/group/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/checkbox/group/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/collapse/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/collapse/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/collapse/panel/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/color_picker/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/concerns/form_field.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/container/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/date_picker/component.html.erb +3 -3
- data/app/components/{hakumi → hakumi_components}/date_picker/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/date_picker/range_picker.html.erb +4 -4
- data/app/components/{hakumi → hakumi_components}/date_picker/range_picker.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/date_picker/shared_rendering.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/descriptions/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/descriptions/item/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/divider/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/drawer/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/drawer/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/dropdown/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/dropdown/divider/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/dropdown/item/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/empty/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/flex/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/float_button/back_top/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/float_button/component.rb +5 -5
- data/app/components/{hakumi → hakumi_components}/float_button/group/component.rb +7 -7
- data/app/components/{hakumi → hakumi_components}/float_button/group_cluster/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/form/item/component.rb +6 -6
- data/app/components/{hakumi → hakumi_components}/grid/col/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/grid/row/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/icon/component.rb +8 -8
- data/app/components/{hakumi → hakumi_components}/image/component.html.erb +10 -10
- data/app/components/{hakumi → hakumi_components}/image/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/image/preview_group/component.html.erb +9 -9
- data/app/components/{hakumi → hakumi_components}/image/preview_group/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/input/component.rb +9 -9
- data/app/components/{hakumi → hakumi_components}/input/password/component.rb +5 -5
- data/app/components/{hakumi → hakumi_components}/input/text_area/component.rb +5 -5
- data/app/components/{hakumi → hakumi_components}/input_number/component.html.erb +4 -4
- data/app/components/{hakumi → hakumi_components}/input_number/component.rb +5 -5
- data/app/components/{hakumi → hakumi_components}/layout/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/layout/content/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/layout/footer/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/layout/header/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/layout/sider/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/mentions/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/menu/component.rb +6 -6
- data/app/components/{hakumi → hakumi_components}/menu/divider/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/menu/group/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/menu/item/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/menu/sub_menu/component.rb +7 -7
- data/app/components/{hakumi → hakumi_components}/message/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/modal/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/modal/component.rb +2 -2
- data/app/components/hakumi_components/modal/confirm/component.html.erb +23 -0
- data/app/components/{hakumi → hakumi_components}/modal/confirm/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/modal/error/component.rb +5 -5
- data/app/components/{hakumi → hakumi_components}/modal/info/component.rb +5 -5
- data/app/components/{hakumi → hakumi_components}/modal/success/component.rb +5 -5
- data/app/components/{hakumi → hakumi_components}/modal/warning/component.rb +6 -6
- data/app/components/{hakumi → hakumi_components}/notification/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/pagination/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/pagination/component.rb +7 -7
- data/app/components/{hakumi → hakumi_components}/popconfirm/component.html.erb +2 -2
- data/app/components/{hakumi → hakumi_components}/popconfirm/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/popover/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/progress/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/progress/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/qr_code/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/radio/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/radio/group/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/radio/group/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/rate/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/rate/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/result/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/segmented/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/select/component.html.erb +3 -3
- data/app/components/{hakumi → hakumi_components}/select/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/skeleton/avatar/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/skeleton/button/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/skeleton/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/skeleton/image/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/skeleton/image/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/skeleton/input/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/skeleton/node/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/slider/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/space/compact/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/space/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/spin/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/splitter/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/splitter/panel/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/statistic/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/steps/component.html.erb +4 -4
- data/app/components/{hakumi → hakumi_components}/steps/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/steps/item/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/switch/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/table/column/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/table/column_group/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/table/component.rb +7 -7
- data/app/components/{hakumi → hakumi_components}/table/concerns/columns.rb +8 -8
- data/app/components/{hakumi → hakumi_components}/table/concerns/editable.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/table/concerns/ellipsis.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/table/concerns/fixed_columns.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/tabs/component.html.erb +4 -4
- data/app/components/{hakumi → hakumi_components}/tabs/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/tabs/item/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/tag/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/tag/group/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/time_picker/component.html.erb +2 -2
- data/app/components/{hakumi → hakumi_components}/time_picker/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/timeline/component.rb +4 -4
- data/app/components/{hakumi → hakumi_components}/timeline/item/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/tooltip/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/tour/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/transfer/component.html.erb +4 -4
- data/app/components/{hakumi → hakumi_components}/transfer/component.rb +2 -2
- data/app/components/{hakumi → hakumi_components}/tree/component.html.erb +1 -1
- data/app/components/{hakumi → hakumi_components}/tree/component.rb +10 -10
- data/app/components/{hakumi → hakumi_components}/tree_select/component.html.erb +5 -5
- data/app/components/{hakumi → hakumi_components}/tree_select/component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/typography/base_component.rb +3 -3
- data/app/components/{hakumi → hakumi_components}/typography/link/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/typography/paragraph/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/typography/text/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/typography/title/component.rb +1 -1
- data/app/components/{hakumi → hakumi_components}/upload/component.html.erb +10 -10
- data/app/components/{hakumi → hakumi_components}/upload/component.rb +2 -2
- data/app/controllers/{hakumi → hakumi_components}/components_controller.rb +1 -1
- data/app/form_builders/{hakumi → hakumi_components}/form_builder.rb +31 -31
- data/app/helpers/{hakumi → hakumi_components}/form_helper.rb +4 -4
- data/app/services/hakumi_components/component_handler.rb +53 -0
- data/app/services/{hakumi → hakumi_components}/icon/loader.rb +4 -4
- data/app/services/{hakumi → hakumi_components}/illustrations/loader.rb +4 -4
- data/app/views/hakumi/_admin_panel.html.erb +1 -1
- data/app/views/hakumi/_affix.html.erb +1 -1
- data/app/views/hakumi/_alert.html.erb +1 -1
- data/app/views/hakumi/_confirm.html.erb +1 -1
- data/app/views/hakumi/_drawer.html.erb +1 -1
- data/app/views/hakumi/_message.html.erb +1 -1
- data/app/views/hakumi/_modal.html.erb +1 -1
- data/app/views/hakumi/_notification.html.erb +1 -1
- data/app/views/hakumi/_popconfirm.html.erb +1 -1
- data/app/views/hakumi/_popover.html.erb +1 -1
- data/app/views/hakumi/_qr_code.html.erb +1 -1
- data/app/views/hakumi/_result.html.erb +1 -1
- data/app/views/hakumi/_segmented.html.erb +1 -1
- data/app/views/hakumi/_skeleton.html.erb +1 -1
- data/app/views/hakumi/_spin.html.erb +1 -1
- data/app/views/hakumi/_statistic.html.erb +1 -1
- data/app/views/hakumi/_table.html.erb +1 -1
- data/app/views/hakumi/_tag.html.erb +1 -1
- data/app/views/hakumi/_timeline.html.erb +1 -1
- data/app/views/hakumi/_tree.html.erb +1 -1
- data/lib/generators/{hakumi → hakumi_components}/install_generator.rb +3 -3
- data/lib/hakumi_components/documentation.rb +6 -6
- data/lib/hakumi_components/engine.rb +9 -3
- data/lib/hakumi_components/rails/attribute_introspection.rb +1 -1
- data/lib/hakumi_components/rails/validation_introspection.rb +1 -1
- data/lib/hakumi_components/rails/validation_mapper.rb +1 -1
- data/lib/hakumi_components/rails.rb +1 -1
- data/lib/hakumi_components/version.rb +2 -2
- data/lib/hakumi_components.rb +3 -2
- data/sig/generators/{hakumi → hakumi_components}/install_generator.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/admin_panel/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/affix/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/alert/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/anchor/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/anchor/link/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/autocomplete/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/avatar/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/badge/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/base_component.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/breadcrumb/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/breadcrumb/item/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/button/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/calendar/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/card/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/card/grid/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/card/meta/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/carousel/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/cascader/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/checkbox/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/checkbox/group/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/collapse/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/collapse/panel/component.rbs +4 -4
- data/sig/{hakumi → hakumi_components}/color_picker/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/concerns/form_field.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/container/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/date_picker/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/date_picker/range_picker.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/date_picker/shared_rendering.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/descriptions/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/descriptions/item/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/divider/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/drawer/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/dropdown/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/dropdown/divider/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/dropdown/item/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/empty/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/flex/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/float_button/back_top/component.rbs +6 -6
- data/sig/{hakumi → hakumi_components}/float_button/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/float_button/group/component.rbs +13 -13
- data/sig/{hakumi → hakumi_components}/float_button/group_cluster/component.rbs +7 -7
- data/sig/{hakumi → hakumi_components}/form/item/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/form_builder.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/grid/col/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/grid/row/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/icon/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/image/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/image/preview_group/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/input/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/input/password/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/input/text_area/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/input_number/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/layout/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/layout/content/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/layout/footer/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/layout/header/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/layout/sider/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/mentions/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/menu/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/menu/divider/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/menu/group/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/menu/item/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/menu/sub_menu/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/message/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/modal/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/modal/confirm/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/modal/error/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/modal/info/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/modal/success/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/modal/warning/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/notification/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/pagination/component.rbs +7 -7
- data/sig/{hakumi → hakumi_components}/popconfirm/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/popover/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/progress/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/qr_code/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/radio/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/radio/group/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/rails/attribute_introspection.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/rails/validation_introspection.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/rails/validation_mapper.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/rails.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/rate/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/result/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/segmented/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/select/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/skeleton/avatar/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/skeleton/button/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/skeleton/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/skeleton/image/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/skeleton/input/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/skeleton/node/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/slider/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/space/compact/component.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/space/component.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/spin/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/splitter/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/splitter/panel/component.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/statistic/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/steps/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/steps/item/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/switch/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/table/column/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/table/column_group/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/table/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/table/concerns/columns.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/table/concerns/editable.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/table/concerns/ellipsis.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/table/concerns/fixed_columns.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/tabs/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/tabs/item/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/tag/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/tag/group/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/time_picker/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/timeline/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/timeline/item/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/tooltip/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/tour/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/transfer/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/tree/component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/tree_select/component.rbs +3 -3
- data/sig/{hakumi → hakumi_components}/typography/base_component.rbs +2 -2
- data/sig/{hakumi → hakumi_components}/typography/link/component.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/typography/paragraph/component.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/typography/text/component.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/typography/title/component.rbs +1 -1
- data/sig/{hakumi → hakumi_components}/upload/component.rbs +2 -2
- data/sig/{hakumi.rbs → hakumi_components.rbs} +3 -3
- metadata +340 -340
- data/app/components/hakumi/modal/confirm/component.html.erb +0 -23
- data/app/services/hakumi/component_handler.rb +0 -53
- /data/app/components/{hakumi → hakumi_components}/affix/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/anchor/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/anchor/link/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/breadcrumb/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/card/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/card/grid/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/card/meta/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/checkbox/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/color_picker/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/descriptions/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/dropdown/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/dropdown/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/icon/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/input/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/input/text_area/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/layout/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/layout/content/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/layout/footer/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/layout/header/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/layout/sider/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/mentions/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/group/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/sub_menu/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/message/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/popover/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/qr_code/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/radio/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/result/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/segmented/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/avatar/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/button/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/input/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/node/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/slider/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/space/compact/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/space/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/spin/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/splitter/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/splitter/panel/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/statistic/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/steps/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/switch/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/table/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/timeline/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/timeline/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/tooltip/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/tour/component.html.erb +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Icon
|
|
5
5
|
# Icon component for rendering Ant Design icons
|
|
6
6
|
#
|
|
@@ -10,17 +10,17 @@ module Hakumi
|
|
|
10
10
|
# - Three themes: outlined (default), filled, two-tone
|
|
11
11
|
#
|
|
12
12
|
# @example Basic usage
|
|
13
|
-
# <%= render
|
|
13
|
+
# <%= render HakumiComponents::Icon::Component.new(name: "user") %>
|
|
14
14
|
#
|
|
15
15
|
# @example With size
|
|
16
|
-
# <%= render
|
|
16
|
+
# <%= render HakumiComponents::Icon::Component.new(name: "home", size: 24) %>
|
|
17
17
|
#
|
|
18
18
|
# @example Filled variant
|
|
19
|
-
# <%= render
|
|
19
|
+
# <%= render HakumiComponents::Icon::Component.new(name: "heart", theme: :filled) %>
|
|
20
20
|
#
|
|
21
21
|
# @example Custom SVG
|
|
22
|
-
# <%= render
|
|
23
|
-
class Component <
|
|
22
|
+
# <%= render HakumiComponents::Icon::Component.new(svg: "<svg>...</svg>") %>
|
|
23
|
+
class Component < HakumiComponents::BaseComponent
|
|
24
24
|
THEMES = [ :outlined, :filled, :two_tone ].freeze
|
|
25
25
|
DEFAULT_SIZE = 16
|
|
26
26
|
DEFAULT_COLOR = "currentColor"
|
|
@@ -140,9 +140,9 @@ module Hakumi
|
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
def icon_svg
|
|
143
|
-
svg =
|
|
143
|
+
svg = HakumiComponents::Icon::Loader.load(@name, @theme)
|
|
144
144
|
if svg.blank? && fallback_enabled?
|
|
145
|
-
svg =
|
|
145
|
+
svg = HakumiComponents::Icon::Loader.load(@name, :outlined)
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
return svg.html_safe if svg.present?
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
<% if placeholder? %>
|
|
3
3
|
<div class="hakumi-image-placeholder" data-hakumi--image-target="placeholder">
|
|
4
4
|
<div class="hakumi-image-placeholder-content">
|
|
5
|
-
<%= render
|
|
5
|
+
<%= render HakumiComponents::Icon::Component.new(name: :picture, size: 24) %>
|
|
6
6
|
</div>
|
|
7
7
|
</div>
|
|
8
8
|
<% end %>
|
|
9
9
|
|
|
10
10
|
<div class="hakumi-image-error-placeholder" data-hakumi--image-target="errorPlaceholder" style="display: none;">
|
|
11
11
|
<div class="hakumi-image-placeholder-content">
|
|
12
|
-
<%= render
|
|
12
|
+
<%= render HakumiComponents::Icon::Component.new(name: :picture, size: 24) %>
|
|
13
13
|
</div>
|
|
14
14
|
</div>
|
|
15
15
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
<%= content %>
|
|
22
22
|
<% else %>
|
|
23
23
|
<div class="hakumi-image-mask-info">
|
|
24
|
-
<%= render
|
|
24
|
+
<%= render HakumiComponents::Icon::Component.new(name: :eye, size: 16) %>
|
|
25
25
|
<span>Preview</span>
|
|
26
26
|
</div>
|
|
27
27
|
<% end %>
|
|
@@ -38,40 +38,40 @@
|
|
|
38
38
|
</div>
|
|
39
39
|
<button class="hakumi-image-preview-close" data-action="click->hakumi--image#closePreview">
|
|
40
40
|
<span class="hakumi-icon">
|
|
41
|
-
<%= render
|
|
41
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'close', theme: :outlined) %>
|
|
42
42
|
</span>
|
|
43
43
|
</button>
|
|
44
44
|
<div class="hakumi-image-preview-operations">
|
|
45
45
|
<button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleFlipY" title="Flip Vertical">
|
|
46
46
|
<span class="hakumi-icon" style="transform: rotate(90deg)">
|
|
47
|
-
<%= render
|
|
47
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'swap', theme: :outlined) %>
|
|
48
48
|
</span>
|
|
49
49
|
</button>
|
|
50
50
|
<button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleFlipX" title="Flip Horizontal">
|
|
51
51
|
<span class="hakumi-icon">
|
|
52
|
-
<%= render
|
|
52
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'swap', theme: :outlined) %>
|
|
53
53
|
</span>
|
|
54
54
|
</button>
|
|
55
55
|
<span class="hakumi-image-preview-operations-divider"></span>
|
|
56
56
|
<button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleRotateLeft" title="Rotate Left">
|
|
57
57
|
<span class="hakumi-icon">
|
|
58
|
-
<%= render
|
|
58
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'rotate-left', theme: :outlined) %>
|
|
59
59
|
</span>
|
|
60
60
|
</button>
|
|
61
61
|
<button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleRotateRight" title="Rotate Right">
|
|
62
62
|
<span class="hakumi-icon">
|
|
63
|
-
<%= render
|
|
63
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'rotate-right', theme: :outlined) %>
|
|
64
64
|
</span>
|
|
65
65
|
</button>
|
|
66
66
|
<span class="hakumi-image-preview-operations-divider"></span>
|
|
67
67
|
<button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleZoomOut" title="Zoom Out">
|
|
68
68
|
<span class="hakumi-icon">
|
|
69
|
-
<%= render
|
|
69
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'zoom-out', theme: :outlined) %>
|
|
70
70
|
</span>
|
|
71
71
|
</button>
|
|
72
72
|
<button class="hakumi-image-preview-operations-operation" data-action="click->hakumi--image#handleZoomIn" title="Zoom In">
|
|
73
73
|
<span class="hakumi-icon">
|
|
74
|
-
<%= render
|
|
74
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'zoom-in', theme: :outlined) %>
|
|
75
75
|
</span>
|
|
76
76
|
</button>
|
|
77
77
|
</div>
|
|
@@ -21,19 +21,19 @@
|
|
|
21
21
|
</div>
|
|
22
22
|
<button class="hakumi-image-preview-close">
|
|
23
23
|
<span class="hakumi-icon">
|
|
24
|
-
<%= render
|
|
24
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'close', theme: :outlined) %>
|
|
25
25
|
</span>
|
|
26
26
|
</button>
|
|
27
27
|
|
|
28
28
|
<div class="hakumi-image-preview-nav-wrapper" style="display: none;">
|
|
29
29
|
<button class="hakumi-image-preview-switch hakumi-image-preview-switch-left">
|
|
30
30
|
<span class="hakumi-icon">
|
|
31
|
-
<%= render
|
|
31
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'left', theme: :outlined) %>
|
|
32
32
|
</span>
|
|
33
33
|
</button>
|
|
34
34
|
<button class="hakumi-image-preview-switch hakumi-image-preview-switch-right">
|
|
35
35
|
<span class="hakumi-icon">
|
|
36
|
-
<%= render
|
|
36
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'right', theme: :outlined) %>
|
|
37
37
|
</span>
|
|
38
38
|
</button>
|
|
39
39
|
<div class="hakumi-image-preview-counter">
|
|
@@ -46,34 +46,34 @@
|
|
|
46
46
|
<div class="hakumi-image-preview-operations">
|
|
47
47
|
<button class="hakumi-image-preview-operations-operation" title="Flip Vertical">
|
|
48
48
|
<span class="hakumi-icon" style="transform: rotate(90deg)">
|
|
49
|
-
<%= render
|
|
49
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'swap', theme: :outlined) %>
|
|
50
50
|
</span>
|
|
51
51
|
</button>
|
|
52
52
|
<button class="hakumi-image-preview-operations-operation" title="Flip Horizontal">
|
|
53
53
|
<span class="hakumi-icon">
|
|
54
|
-
<%= render
|
|
54
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'swap', theme: :outlined) %>
|
|
55
55
|
</span>
|
|
56
56
|
</button>
|
|
57
57
|
<span class="hakumi-image-preview-operations-divider"></span>
|
|
58
58
|
<button class="hakumi-image-preview-operations-operation" title="Rotate Left">
|
|
59
59
|
<span class="hakumi-icon">
|
|
60
|
-
<%= render
|
|
60
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'rotate-left', theme: :outlined) %>
|
|
61
61
|
</span>
|
|
62
62
|
</button>
|
|
63
63
|
<button class="hakumi-image-preview-operations-operation" title="Rotate Right">
|
|
64
64
|
<span class="hakumi-icon">
|
|
65
|
-
<%= render
|
|
65
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'rotate-right', theme: :outlined) %>
|
|
66
66
|
</span>
|
|
67
67
|
</button>
|
|
68
68
|
<span class="hakumi-image-preview-operations-divider"></span>
|
|
69
69
|
<button class="hakumi-image-preview-operations-operation" title="Zoom Out">
|
|
70
70
|
<span class="hakumi-icon">
|
|
71
|
-
<%= render
|
|
71
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'zoom-out', theme: :outlined) %>
|
|
72
72
|
</span>
|
|
73
73
|
</button>
|
|
74
74
|
<button class="hakumi-image-preview-operations-operation" title="Zoom In">
|
|
75
75
|
<span class="hakumi-icon">
|
|
76
|
-
<%= render
|
|
76
|
+
<%= render HakumiComponents::Icon::Component.new(name: 'zoom-in', theme: :outlined) %>
|
|
77
77
|
</span>
|
|
78
78
|
</button>
|
|
79
79
|
</div>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Image
|
|
5
5
|
module PreviewGroup
|
|
6
|
-
class Component <
|
|
7
|
-
renders_many :images, ->(**kwargs) {
|
|
6
|
+
class Component < HakumiComponents::BaseComponent
|
|
7
|
+
renders_many :images, ->(**kwargs) { HakumiComponents::Image::Component.new(**kwargs, preview: false) }
|
|
8
8
|
|
|
9
9
|
def initialize(
|
|
10
10
|
items: nil,
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Input
|
|
5
5
|
# Hakumi Input component
|
|
6
6
|
# A basic widget for getting user input, supporting text, number, email, etc.
|
|
7
7
|
#
|
|
8
8
|
# @example Basic usage
|
|
9
|
-
# <%= render
|
|
9
|
+
# <%= render HakumiComponents::Input::Component.new(name: "email", placeholder: "Enter email") %>
|
|
10
10
|
#
|
|
11
11
|
# @example With label and caption
|
|
12
|
-
# <%= render
|
|
12
|
+
# <%= render HakumiComponents::Input::Component.new(
|
|
13
13
|
# name: "username",
|
|
14
14
|
# label: "Username",
|
|
15
15
|
# caption: "Choose a unique username",
|
|
@@ -17,14 +17,14 @@ module Hakumi
|
|
|
17
17
|
# ) %>
|
|
18
18
|
#
|
|
19
19
|
# @example With prefix and suffix
|
|
20
|
-
# <%= render
|
|
20
|
+
# <%= render HakumiComponents::Input::Component.new(
|
|
21
21
|
# name: "amount",
|
|
22
22
|
# prefix: "dollar",
|
|
23
23
|
# suffix: "USD",
|
|
24
24
|
# placeholder: "0.00"
|
|
25
25
|
# ) %>
|
|
26
|
-
class Component <
|
|
27
|
-
include
|
|
26
|
+
class Component < HakumiComponents::BaseComponent
|
|
27
|
+
include HakumiComponents::Concerns::FormField
|
|
28
28
|
|
|
29
29
|
SIZES = [ :small, :middle, :large ].freeze
|
|
30
30
|
|
|
@@ -143,7 +143,7 @@ module Hakumi
|
|
|
143
143
|
|
|
144
144
|
content_tag(:span, class: "hakumi-input-prefix") do
|
|
145
145
|
if @prefix_icon
|
|
146
|
-
render
|
|
146
|
+
render HakumiComponents::Icon::Component.new(name: @prefix_icon)
|
|
147
147
|
elsif @prefix
|
|
148
148
|
@prefix
|
|
149
149
|
end
|
|
@@ -162,7 +162,7 @@ module Hakumi
|
|
|
162
162
|
return nil unless @suffix || @suffix_icon
|
|
163
163
|
|
|
164
164
|
if @suffix_icon
|
|
165
|
-
render
|
|
165
|
+
render HakumiComponents::Icon::Component.new(name: @suffix_icon)
|
|
166
166
|
elsif @suffix
|
|
167
167
|
@suffix
|
|
168
168
|
end
|
|
@@ -177,7 +177,7 @@ module Hakumi
|
|
|
177
177
|
tabindex: "-1",
|
|
178
178
|
data: { action: "click->hakumi--input#clear" }
|
|
179
179
|
) do
|
|
180
|
-
render
|
|
180
|
+
render HakumiComponents::Icon::Component.new(name: :close_circle, theme: :filled)
|
|
181
181
|
end
|
|
182
182
|
end
|
|
183
183
|
end
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Input
|
|
5
5
|
module Password
|
|
6
6
|
# Hakumi Password Input component
|
|
7
7
|
# A password input with visibility toggle functionality
|
|
8
8
|
#
|
|
9
9
|
# @example Basic usage
|
|
10
|
-
# <%= render
|
|
10
|
+
# <%= render HakumiComponents::Input::Password::Component.new(
|
|
11
11
|
# name: "password",
|
|
12
12
|
# label: "Password",
|
|
13
13
|
# placeholder: "Enter password"
|
|
14
14
|
# ) %>
|
|
15
15
|
#
|
|
16
16
|
# @example With size and validation
|
|
17
|
-
# <%= render
|
|
17
|
+
# <%= render HakumiComponents::Input::Password::Component.new(
|
|
18
18
|
# name: "password",
|
|
19
19
|
# label: "Password",
|
|
20
20
|
# size: :large,
|
|
21
21
|
# required: true,
|
|
22
22
|
# errors: ["Password is too short"]
|
|
23
23
|
# ) %>
|
|
24
|
-
class Component <
|
|
24
|
+
class Component < HakumiComponents::Input::Component
|
|
25
25
|
def initialize(**options)
|
|
26
26
|
# Force type to password
|
|
27
27
|
options[:type] = :password
|
|
@@ -75,7 +75,7 @@ module Hakumi
|
|
|
75
75
|
hakumi__input_password_target: "toggleButton"
|
|
76
76
|
}
|
|
77
77
|
) do
|
|
78
|
-
render
|
|
78
|
+
render HakumiComponents::Icon::Component.new(
|
|
79
79
|
name: :eye_invisible,
|
|
80
80
|
data: { hakumi__input_password_target: "icon" }
|
|
81
81
|
)
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Input
|
|
5
5
|
module TextArea
|
|
6
6
|
# Hakumi TextArea component
|
|
7
7
|
# Multi-line text input with optional character count and auto-resize
|
|
8
8
|
#
|
|
9
9
|
# @example Basic usage
|
|
10
|
-
# <%= render
|
|
10
|
+
# <%= render HakumiComponents::Input::TextArea::Component.new(
|
|
11
11
|
# name: "bio",
|
|
12
12
|
# label: "Biography",
|
|
13
13
|
# rows: 4
|
|
14
14
|
# ) %>
|
|
15
15
|
#
|
|
16
16
|
# @example With character count
|
|
17
|
-
# <%= render
|
|
17
|
+
# <%= render HakumiComponents::Input::TextArea::Component.new(
|
|
18
18
|
# name: "description",
|
|
19
19
|
# label: "Description",
|
|
20
20
|
# show_count: true,
|
|
21
21
|
# maxlength: 200
|
|
22
22
|
# ) %>
|
|
23
|
-
class Component <
|
|
24
|
-
include
|
|
23
|
+
class Component < HakumiComponents::BaseComponent
|
|
24
|
+
include HakumiComponents::Concerns::FormField
|
|
25
25
|
|
|
26
26
|
SIZES = [ :small, :middle, :large ].freeze
|
|
27
27
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
data-action="mousedown->hakumi--input-number#handleStepUp"
|
|
15
15
|
<%= "disabled" if @disabled || @readonly %>
|
|
16
16
|
>
|
|
17
|
-
<%= render
|
|
17
|
+
<%= render HakumiComponents::Icon::Component.new(name: :caret_up, size: 10) %>
|
|
18
18
|
</button>
|
|
19
19
|
<button
|
|
20
20
|
type="button"
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
data-action="mousedown->hakumi--input-number#handleStepDown"
|
|
25
25
|
<%= "disabled" if @disabled || @readonly %>
|
|
26
26
|
>
|
|
27
|
-
<%= render
|
|
27
|
+
<%= render HakumiComponents::Icon::Component.new(name: :caret_down, size: 10) %>
|
|
28
28
|
</button>
|
|
29
29
|
</span>
|
|
30
30
|
<% end %>
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
data-action="mousedown->hakumi--input-number#handleStepUp"
|
|
51
51
|
<%= "disabled" if @disabled || @readonly %>
|
|
52
52
|
>
|
|
53
|
-
<%= render
|
|
53
|
+
<%= render HakumiComponents::Icon::Component.new(name: :caret_up, size: 10) %>
|
|
54
54
|
</button>
|
|
55
55
|
<button
|
|
56
56
|
type="button"
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
data-action="mousedown->hakumi--input-number#handleStepDown"
|
|
61
61
|
<%= "disabled" if @disabled || @readonly %>
|
|
62
62
|
>
|
|
63
|
-
<%= render
|
|
63
|
+
<%= render HakumiComponents::Icon::Component.new(name: :caret_down, size: 10) %>
|
|
64
64
|
</button>
|
|
65
65
|
</span>
|
|
66
66
|
<% end %>
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module InputNumber
|
|
5
5
|
# Hakumi InputNumber component
|
|
6
6
|
# Numeric input with precision, formatter, and spinner controls
|
|
7
7
|
#
|
|
8
8
|
# @example Basic usage
|
|
9
|
-
# <%= render
|
|
9
|
+
# <%= render HakumiComponents::InputNumber::Component.new(name: :amount, value: 10) %>
|
|
10
10
|
#
|
|
11
11
|
# @example With formatter and prefix
|
|
12
|
-
# <%= render
|
|
12
|
+
# <%= render HakumiComponents::InputNumber::Component.new(
|
|
13
13
|
# name: :price,
|
|
14
14
|
# value: 199.95,
|
|
15
15
|
# prefix: "$",
|
|
16
16
|
# formatter: { style: "currency", currency: "USD", minimumFractionDigits: 2 }
|
|
17
17
|
# ) %>
|
|
18
|
-
class Component <
|
|
19
|
-
include
|
|
18
|
+
class Component < HakumiComponents::BaseComponent
|
|
19
|
+
include HakumiComponents::Concerns::FormField
|
|
20
20
|
|
|
21
21
|
SIZES = [ :small, :middle, :large ].freeze
|
|
22
22
|
VARIANTS = [ :default, :filled, :borderless ].freeze
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Mentions
|
|
5
5
|
# Hakumi Mentions component
|
|
6
6
|
# Textarea input with dropdown suggestions for mentions
|
|
7
|
-
class Component <
|
|
8
|
-
include
|
|
7
|
+
class Component < HakumiComponents::BaseComponent
|
|
8
|
+
include HakumiComponents::Concerns::FormField
|
|
9
9
|
|
|
10
10
|
SIZES = %i[small default large].freeze
|
|
11
11
|
STATUSES = [ nil, :error, :warning ].freeze
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Menu
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
MODES = %i[horizontal vertical inline].freeze
|
|
7
7
|
TRIGGER_SUBMENU_ACTIONS = %i[hover click].freeze
|
|
8
8
|
|
|
9
9
|
renders_many :items, types: {
|
|
10
10
|
item: {
|
|
11
11
|
renders: ->(key:, label: nil, icon: nil, disabled: false, danger: false, href: nil, target: nil, **options, &block) do
|
|
12
|
-
|
|
12
|
+
HakumiComponents::Menu::Item::Component.new(
|
|
13
13
|
key: key,
|
|
14
14
|
label: label,
|
|
15
15
|
icon: icon,
|
|
@@ -25,7 +25,7 @@ module Hakumi
|
|
|
25
25
|
},
|
|
26
26
|
submenu: {
|
|
27
27
|
renders: ->(key:, label: nil, icon: nil, disabled: false, **options, &block) do
|
|
28
|
-
|
|
28
|
+
HakumiComponents::Menu::SubMenu::Component.new(
|
|
29
29
|
key: key,
|
|
30
30
|
label: label,
|
|
31
31
|
icon: icon,
|
|
@@ -39,12 +39,12 @@ module Hakumi
|
|
|
39
39
|
},
|
|
40
40
|
group: {
|
|
41
41
|
renders: ->(label:, **options, &block) do
|
|
42
|
-
|
|
42
|
+
HakumiComponents::Menu::Group::Component.new(label: label, **options, &block)
|
|
43
43
|
end,
|
|
44
44
|
as: :group
|
|
45
45
|
},
|
|
46
46
|
divider: {
|
|
47
|
-
renders: -> {
|
|
47
|
+
renders: -> { HakumiComponents::Menu::Divider::Component.new },
|
|
48
48
|
as: :divider
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Menu
|
|
5
5
|
module Divider
|
|
6
|
-
class Component <
|
|
6
|
+
class Component < HakumiComponents::BaseComponent
|
|
7
7
|
def call
|
|
8
8
|
tag.li(class: "hakumi-menu-item-divider", role: "separator")
|
|
9
9
|
end
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Menu
|
|
5
5
|
module Group
|
|
6
|
-
class Component <
|
|
6
|
+
class Component < HakumiComponents::BaseComponent
|
|
7
7
|
renders_many :items, types: {
|
|
8
8
|
item: {
|
|
9
9
|
renders: ->(key:, label: nil, icon: nil, disabled: false, danger: false, href: nil, target: nil, **options, &block) do
|
|
10
|
-
|
|
10
|
+
HakumiComponents::Menu::Item::Component.new(
|
|
11
11
|
key: key,
|
|
12
12
|
label: label,
|
|
13
13
|
icon: icon,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Menu
|
|
5
5
|
module Item
|
|
6
|
-
class Component <
|
|
6
|
+
class Component < HakumiComponents::BaseComponent
|
|
7
7
|
def initialize(key:, label: nil, icon: nil, disabled: false, danger: false, href: nil, target: nil, **html_options)
|
|
8
8
|
@key = key
|
|
9
9
|
@label = label
|
|
@@ -36,7 +36,7 @@ module Hakumi
|
|
|
36
36
|
return nil unless icon
|
|
37
37
|
|
|
38
38
|
if icon.is_a?(Symbol)
|
|
39
|
-
|
|
39
|
+
HakumiComponents::Icon::Component.new(name: icon)
|
|
40
40
|
else
|
|
41
41
|
icon
|
|
42
42
|
end
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Menu
|
|
5
5
|
module SubMenu
|
|
6
|
-
class Component <
|
|
6
|
+
class Component < HakumiComponents::BaseComponent
|
|
7
7
|
renders_many :items, types: {
|
|
8
8
|
item: {
|
|
9
9
|
renders: ->(key:, label: nil, icon: nil, disabled: false, danger: false, href: nil, target: nil, **options, &block) do
|
|
10
|
-
|
|
10
|
+
HakumiComponents::Menu::Item::Component.new(
|
|
11
11
|
key: key,
|
|
12
12
|
label: label,
|
|
13
13
|
icon: icon,
|
|
@@ -23,7 +23,7 @@ module Hakumi
|
|
|
23
23
|
},
|
|
24
24
|
submenu: {
|
|
25
25
|
renders: ->(key:, label: nil, icon: nil, disabled: false, **options, &block) do
|
|
26
|
-
|
|
26
|
+
HakumiComponents::Menu::SubMenu::Component.new(
|
|
27
27
|
key: key,
|
|
28
28
|
label: label,
|
|
29
29
|
icon: icon,
|
|
@@ -37,12 +37,12 @@ module Hakumi
|
|
|
37
37
|
},
|
|
38
38
|
group: {
|
|
39
39
|
renders: ->(label:, **options, &block) do
|
|
40
|
-
|
|
40
|
+
HakumiComponents::Menu::Group::Component.new(label: label, **options, &block)
|
|
41
41
|
end,
|
|
42
42
|
as: :group
|
|
43
43
|
},
|
|
44
44
|
divider: {
|
|
45
|
-
renders: -> {
|
|
45
|
+
renders: -> { HakumiComponents::Menu::Divider::Component.new },
|
|
46
46
|
as: :divider
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -81,7 +81,7 @@ module Hakumi
|
|
|
81
81
|
return nil unless icon
|
|
82
82
|
|
|
83
83
|
if icon.is_a?(Symbol)
|
|
84
|
-
|
|
84
|
+
HakumiComponents::Icon::Component.new(name: icon)
|
|
85
85
|
else
|
|
86
86
|
icon
|
|
87
87
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Message
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
TYPES = %i[success info warning error loading].freeze
|
|
7
7
|
|
|
8
8
|
# Extracts locals from controller params for dynamic rendering
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<% if @closable %>
|
|
10
10
|
<button type="button" class="hakumi-modal-close" aria-label="Close" data-hakumi-action="close">
|
|
11
11
|
<span class="hakumi-modal-close-x">
|
|
12
|
-
<%= render
|
|
12
|
+
<%= render HakumiComponents::Icon::Component.new(name: :close) %>
|
|
13
13
|
</span>
|
|
14
14
|
</button>
|
|
15
15
|
<% end %>
|