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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3e9e824a3e5b4b1c78cdc77a0078cc26f76a0817b02b987585ce854aad510daf
|
|
4
|
+
data.tar.gz: 89779b1bac4f251adf69a45f44dd2de5a2ec95c30c63d5bc704625c7bb2cd1aa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ca0b148fba4aac80d9bdb3d01c15d5cd0ffe91f6e98e85a6c337be76f375b92e1294327ced77f3cdaac929430ae3e548b8176b99182ad9aee957c97a5925da90
|
|
7
|
+
data.tar.gz: 0d38ab92e6ab0f463495b7d088b5947eff48d98ace7a7b1e03bac7f428dc2e161869140209b9cc2f5c935ced717b663f2b2650c505e4ba916d4cfc7b2be5fc8e
|
data/CHANGELOG.md
CHANGED
|
@@ -27,7 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
27
27
|
- **Other** (6): BackTop, ConfigProvider, FloatButton, Icon, Watermark, AdminPanel, Tour
|
|
28
28
|
|
|
29
29
|
**Form Integration:**
|
|
30
|
-
- `
|
|
30
|
+
- `HakumiComponents::FormBuilder` with automatic Rails integration
|
|
31
31
|
- Auto-detection from ActiveRecord validations
|
|
32
32
|
- Auto-detection from I18n (labels, placeholders, hints)
|
|
33
33
|
|
data/README.md
CHANGED
|
@@ -145,11 +145,33 @@ registerHakumiControllers(application)
|
|
|
145
145
|
@import "@hakumi-dev/hakumi-components/styles";
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
## Configuration
|
|
149
|
+
|
|
150
|
+
You can configure HakumiComponents in an initializer:
|
|
149
151
|
|
|
150
152
|
```ruby
|
|
151
153
|
# config/initializers/hakumi_components.rb
|
|
152
|
-
|
|
154
|
+
HakumiComponents.configure do |config|
|
|
155
|
+
config.default_form_builder = true # Use HakumiComponents::FormBuilder as default
|
|
156
|
+
config.base_path = "hakumi/components" # Base URL path for component routes
|
|
157
|
+
end
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Available Configuration Options
|
|
161
|
+
|
|
162
|
+
| Option | Default | Description |
|
|
163
|
+
|--------|---------|-------------|
|
|
164
|
+
| `default_form_builder` | `false` | Use `HakumiComponents::FormBuilder` as the default form builder |
|
|
165
|
+
| `base_path` | `"hakumi/components"` | Base URL path for component routes (modals, drawers, etc.) |
|
|
166
|
+
|
|
167
|
+
### Accessing Configuration
|
|
168
|
+
|
|
169
|
+
```ruby
|
|
170
|
+
HakumiComponents.config.default_form_builder
|
|
171
|
+
# => true
|
|
172
|
+
|
|
173
|
+
HakumiComponents.config.base_path
|
|
174
|
+
# => "hakumi/components"
|
|
153
175
|
```
|
|
154
176
|
|
|
155
177
|
## Usage
|
|
@@ -158,19 +180,19 @@ Rails.application.config.action_view.default_form_builder = Hakumi::FormBuilder
|
|
|
158
180
|
|
|
159
181
|
```erb
|
|
160
182
|
<%# Simple button %>
|
|
161
|
-
<%= render
|
|
183
|
+
<%= render HakumiComponents::Button::Component.new(type: :primary) do %>
|
|
162
184
|
Click me
|
|
163
185
|
<% end %>
|
|
164
186
|
|
|
165
187
|
<%# Form with automatic validation detection %>
|
|
166
|
-
<%= form_with model: @user, builder:
|
|
188
|
+
<%= form_with model: @user, builder: HakumiComponents::FormBuilder do |f| %>
|
|
167
189
|
<%= f.text_field :email %>
|
|
168
190
|
<%= f.text_field :name %>
|
|
169
191
|
<%= f.submit "Save", type: :primary %>
|
|
170
192
|
<% end %>
|
|
171
193
|
|
|
172
194
|
<%# Modal with programmatic control %>
|
|
173
|
-
<%= render
|
|
195
|
+
<%= render HakumiComponents::Modal::Component.new(
|
|
174
196
|
id: "my-modal",
|
|
175
197
|
title: "Confirm Action"
|
|
176
198
|
) do %>
|
|
@@ -183,83 +205,83 @@ Rails.application.config.action_view.default_form_builder = Hakumi::FormBuilder
|
|
|
183
205
|
Browse all **65 components** organized by category. Each component includes detailed documentation, examples, and API reference.
|
|
184
206
|
|
|
185
207
|
#### General (4)
|
|
186
|
-
- [Button](./app/components/
|
|
187
|
-
- [Float Button](./app/components/
|
|
188
|
-
- [Icon](./app/components/
|
|
189
|
-
- [Typography](./app/components/
|
|
208
|
+
- [Button](./app/components/hakumi_components/button/docs/README.md) - Clickable button element
|
|
209
|
+
- [Float Button](./app/components/hakumi_components/float_button/docs/README.md) - Floating action button
|
|
210
|
+
- [Icon](./app/components/hakumi_components/icon/docs/README.md) - Icon display component
|
|
211
|
+
- [Typography](./app/components/hakumi_components/typography/docs/README.md) - Text styling and formatting
|
|
190
212
|
|
|
191
213
|
#### Layout (6)
|
|
192
|
-
- [Divider](./app/components/
|
|
193
|
-
- [Flex](./app/components/
|
|
194
|
-
- [Grid](./app/components/
|
|
195
|
-
- [Layout](./app/components/
|
|
196
|
-
- [Space](./app/components/
|
|
197
|
-
- [Splitter](./app/components/
|
|
214
|
+
- [Divider](./app/components/hakumi_components/divider/docs/README.md) - Horizontal or vertical divider line
|
|
215
|
+
- [Flex](./app/components/hakumi_components/flex/docs/README.md) - Flexbox layout container
|
|
216
|
+
- [Grid](./app/components/hakumi_components/grid/docs/README.md) - Grid layout system
|
|
217
|
+
- [Layout](./app/components/hakumi_components/layout/docs/README.md) - Page layout structure
|
|
218
|
+
- [Space](./app/components/hakumi_components/space/docs/README.md) - Spacing between elements
|
|
219
|
+
- [Splitter](./app/components/hakumi_components/splitter/docs/README.md) - Resizable split panels
|
|
198
220
|
|
|
199
221
|
#### Navigation (6)
|
|
200
|
-
- [Anchor](./app/components/
|
|
201
|
-
- [Breadcrumb](./app/components/
|
|
202
|
-
- [Dropdown](./app/components/
|
|
203
|
-
- [Menu](./app/components/
|
|
204
|
-
- [Pagination](./app/components/
|
|
205
|
-
- [Steps](./app/components/
|
|
222
|
+
- [Anchor](./app/components/hakumi_components/anchor/docs/README.md) - Anchor navigation for page sections
|
|
223
|
+
- [Breadcrumb](./app/components/hakumi_components/breadcrumb/docs/README.md) - Breadcrumb navigation trail
|
|
224
|
+
- [Dropdown](./app/components/hakumi_components/dropdown/docs/README.md) - Dropdown menu
|
|
225
|
+
- [Menu](./app/components/hakumi_components/menu/docs/README.md) - Navigation menu
|
|
226
|
+
- [Pagination](./app/components/hakumi_components/pagination/docs/README.md) - Pagination controls
|
|
227
|
+
- [Steps](./app/components/hakumi_components/steps/docs/README.md) - Step-by-step navigation
|
|
206
228
|
|
|
207
229
|
#### Data Entry (18)
|
|
208
|
-
- [Autocomplete](./app/components/
|
|
209
|
-
- [Cascader](./app/components/
|
|
210
|
-
- [Checkbox](./app/components/
|
|
211
|
-
- [Color Picker](./app/components/
|
|
212
|
-
- [Date Picker](./app/components/
|
|
213
|
-
- [Form](./app/components/
|
|
214
|
-
- [Input](./app/components/
|
|
215
|
-
- [Input Number](./app/components/
|
|
216
|
-
- [Mentions](./app/components/
|
|
217
|
-
- [Radio](./app/components/
|
|
218
|
-
- [Rate](./app/components/
|
|
219
|
-
- [Select](./app/components/
|
|
220
|
-
- [Slider](./app/components/
|
|
221
|
-
- [Switch](./app/components/
|
|
222
|
-
- [Time Picker](./app/components/
|
|
223
|
-
- [Transfer](./app/components/
|
|
224
|
-
- [Tree Select](./app/components/
|
|
225
|
-
- [Upload](./app/components/
|
|
230
|
+
- [Autocomplete](./app/components/hakumi_components/autocomplete/docs/README.md) - Input with autocomplete suggestions
|
|
231
|
+
- [Cascader](./app/components/hakumi_components/cascader/docs/README.md) - Cascading selection dropdown
|
|
232
|
+
- [Checkbox](./app/components/hakumi_components/checkbox/docs/README.md) - Checkbox input
|
|
233
|
+
- [Color Picker](./app/components/hakumi_components/color_picker/docs/README.md) - Color selection input
|
|
234
|
+
- [Date Picker](./app/components/hakumi_components/date_picker/docs/README.md) - Date selection input
|
|
235
|
+
- [Form](./app/components/hakumi_components/form/docs/README.md) - Form wrapper with validation
|
|
236
|
+
- [Input](./app/components/hakumi_components/input/docs/README.md) - Text input field
|
|
237
|
+
- [Input Number](./app/components/hakumi_components/input_number/docs/README.md) - Numeric input field
|
|
238
|
+
- [Mentions](./app/components/hakumi_components/mentions/docs/README.md) - @mentions input
|
|
239
|
+
- [Radio](./app/components/hakumi_components/radio/docs/README.md) - Radio button input
|
|
240
|
+
- [Rate](./app/components/hakumi_components/rate/docs/README.md) - Star rating input
|
|
241
|
+
- [Select](./app/components/hakumi_components/select/docs/README.md) - Dropdown select input
|
|
242
|
+
- [Slider](./app/components/hakumi_components/slider/docs/README.md) - Range slider input
|
|
243
|
+
- [Switch](./app/components/hakumi_components/switch/docs/README.md) - Toggle switch input
|
|
244
|
+
- [Time Picker](./app/components/hakumi_components/time_picker/docs/README.md) - Time selection input
|
|
245
|
+
- [Transfer](./app/components/hakumi_components/transfer/docs/README.md) - Dual list transfer
|
|
246
|
+
- [Tree Select](./app/components/hakumi_components/tree_select/docs/README.md) - Tree structure select
|
|
247
|
+
- [Upload](./app/components/hakumi_components/upload/docs/README.md) - File upload component
|
|
226
248
|
|
|
227
249
|
#### Data Display (20)
|
|
228
|
-
- [Avatar](./app/components/
|
|
229
|
-
- [Badge](./app/components/
|
|
230
|
-
- [Calendar](./app/components/
|
|
231
|
-
- [Card](./app/components/
|
|
232
|
-
- [Carousel](./app/components/
|
|
233
|
-
- [Collapse](./app/components/
|
|
234
|
-
- [Descriptions](./app/components/
|
|
235
|
-
- [Empty](./app/components/
|
|
236
|
-
- [Image](./app/components/
|
|
237
|
-
- [Popover](./app/components/
|
|
238
|
-
- [QR Code](./app/components/
|
|
239
|
-
- [Segmented](./app/components/
|
|
240
|
-
- [Statistic](./app/components/
|
|
241
|
-
- [Table](./app/components/
|
|
242
|
-
- [Tabs](./app/components/
|
|
243
|
-
- [Tag](./app/components/
|
|
244
|
-
- [Timeline](./app/components/
|
|
245
|
-
- [Tooltip](./app/components/
|
|
246
|
-
- [Tour](./app/components/
|
|
247
|
-
- [Tree](./app/components/
|
|
250
|
+
- [Avatar](./app/components/hakumi_components/avatar/docs/README.md) - User avatar display
|
|
251
|
+
- [Badge](./app/components/hakumi_components/badge/docs/README.md) - Badge and status dot
|
|
252
|
+
- [Calendar](./app/components/hakumi_components/calendar/docs/README.md) - Calendar display
|
|
253
|
+
- [Card](./app/components/hakumi_components/card/docs/README.md) - Card container
|
|
254
|
+
- [Carousel](./app/components/hakumi_components/carousel/docs/README.md) - Image/content carousel
|
|
255
|
+
- [Collapse](./app/components/hakumi_components/collapse/docs/README.md) - Collapsible accordion panels
|
|
256
|
+
- [Descriptions](./app/components/hakumi_components/descriptions/docs/README.md) - Description list display
|
|
257
|
+
- [Empty](./app/components/hakumi_components/empty/docs/README.md) - Empty state placeholder
|
|
258
|
+
- [Image](./app/components/hakumi_components/image/docs/README.md) - Image display with preview
|
|
259
|
+
- [Popover](./app/components/hakumi_components/popover/docs/README.md) - Popover overlay
|
|
260
|
+
- [QR Code](./app/components/hakumi_components/qr_code/docs/README.md) - QR code generator
|
|
261
|
+
- [Segmented](./app/components/hakumi_components/segmented/docs/README.md) - Segmented control
|
|
262
|
+
- [Statistic](./app/components/hakumi_components/statistic/docs/README.md) - Statistic display
|
|
263
|
+
- [Table](./app/components/hakumi_components/table/docs/README.md) - Data table
|
|
264
|
+
- [Tabs](./app/components/hakumi_components/tabs/docs/README.md) - Tab navigation
|
|
265
|
+
- [Tag](./app/components/hakumi_components/tag/docs/README.md) - Tag label
|
|
266
|
+
- [Timeline](./app/components/hakumi_components/timeline/docs/README.md) - Timeline display
|
|
267
|
+
- [Tooltip](./app/components/hakumi_components/tooltip/docs/README.md) - Tooltip overlay
|
|
268
|
+
- [Tour](./app/components/hakumi_components/tour/docs/README.md) - Guided tour
|
|
269
|
+
- [Tree](./app/components/hakumi_components/tree/docs/README.md) - Tree structure display
|
|
248
270
|
|
|
249
271
|
#### Feedback (10)
|
|
250
|
-
- [Alert](./app/components/
|
|
251
|
-
- [Drawer](./app/components/
|
|
252
|
-
- [Message](./app/components/
|
|
253
|
-
- [Modal](./app/components/
|
|
254
|
-
- [Notification](./app/components/
|
|
255
|
-
- [Popconfirm](./app/components/
|
|
256
|
-
- [Progress](./app/components/
|
|
257
|
-
- [Result](./app/components/
|
|
258
|
-
- [Skeleton](./app/components/
|
|
259
|
-
- [Spin](./app/components/
|
|
272
|
+
- [Alert](./app/components/hakumi_components/alert/docs/README.md) - Alert message display
|
|
273
|
+
- [Drawer](./app/components/hakumi_components/drawer/docs/README.md) - Slide-out drawer panel
|
|
274
|
+
- [Message](./app/components/hakumi_components/message/docs/README.md) - Global message notification
|
|
275
|
+
- [Modal](./app/components/hakumi_components/modal/docs/README.md) - Modal dialog
|
|
276
|
+
- [Notification](./app/components/hakumi_components/notification/docs/README.md) - Notification message
|
|
277
|
+
- [Popconfirm](./app/components/hakumi_components/popconfirm/docs/README.md) - Confirmation popover
|
|
278
|
+
- [Progress](./app/components/hakumi_components/progress/docs/README.md) - Progress indicator
|
|
279
|
+
- [Result](./app/components/hakumi_components/result/docs/README.md) - Result status page
|
|
280
|
+
- [Skeleton](./app/components/hakumi_components/skeleton/docs/README.md) - Skeleton loading placeholder
|
|
281
|
+
- [Spin](./app/components/hakumi_components/spin/docs/README.md) - Loading spinner
|
|
260
282
|
|
|
261
283
|
#### Other (1)
|
|
262
|
-
- [Affix](./app/components/
|
|
284
|
+
- [Affix](./app/components/hakumi_components/affix/docs/README.md) - Pin element to viewport
|
|
263
285
|
|
|
264
286
|
## JavaScript API
|
|
265
287
|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<p class="hakumi-admin-panel__subtitle">Real-time inventory</p>
|
|
6
6
|
</div>
|
|
7
7
|
<div class="hakumi-admin-panel__controls">
|
|
8
|
-
<%= render(
|
|
9
|
-
<%= render(
|
|
8
|
+
<%= render(HakumiComponents::Button::Component.new(type: :text, icon: :reload, shape: :circle, data: { action: "click->hakumi--admin-panel#refresh:stop" })) { "Refresh" } %>
|
|
9
|
+
<%= render(HakumiComponents::Button::Component.new(type: :text, icon: :close, shape: :circle, data: { action: "click->hakumi--admin-panel#close:stop" })) %>
|
|
10
10
|
</div>
|
|
11
11
|
</div>
|
|
12
12
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Alert
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
TYPES = [ :success, :info, :warning, :error ].freeze
|
|
7
7
|
|
|
8
8
|
# Slots for content
|
|
@@ -68,7 +68,7 @@ module Hakumi
|
|
|
68
68
|
return nil unless show_icon?
|
|
69
69
|
|
|
70
70
|
icon_name = default_icon_name
|
|
71
|
-
render
|
|
71
|
+
render HakumiComponents::Icon::Component.new(name: icon_name)
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def default_icon_name
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Anchor
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
DIRECTIONS = %i[vertical horizontal].freeze
|
|
7
7
|
|
|
8
8
|
renders_many :links, ->(href:, title:, **options) do
|
|
9
|
-
|
|
9
|
+
HakumiComponents::Anchor::Link::Component.new(href: href, title: title, **options)
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def initialize(
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Anchor
|
|
5
5
|
module Link
|
|
6
|
-
class Component <
|
|
6
|
+
class Component < HakumiComponents::BaseComponent
|
|
7
7
|
renders_many :links, ->(href:, title:, **options) do
|
|
8
|
-
|
|
8
|
+
HakumiComponents::Anchor::Link::Component.new(href: href, title: title, **options)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def initialize(href:, title:, target: nil, **html_options)
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
aria-label="Clear"
|
|
14
14
|
data-hakumi--autocomplete-target="clear"
|
|
15
15
|
data-action="click->hakumi--autocomplete#clear">
|
|
16
|
-
<%= render
|
|
16
|
+
<%= render HakumiComponents::Icon::Component.new(name: clear_icon, theme: :filled, fallback_to_outlined: true) %>
|
|
17
17
|
</button>
|
|
18
18
|
<% end %>
|
|
19
19
|
</div>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Autocomplete
|
|
5
5
|
# Hakumi Autocomplete component
|
|
6
6
|
# Text input with dropdown suggestions, built on top of Ant Design styles.
|
|
7
|
-
class Component <
|
|
7
|
+
class Component < HakumiComponents::BaseComponent
|
|
8
8
|
SIZES = %i[small middle large].freeze
|
|
9
9
|
VARIANTS = %i[outlined filled borderless underlined].freeze
|
|
10
10
|
STATUSES = %i[error warning].freeze
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Avatar
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
SHAPES = [ :circle, :square ].freeze
|
|
7
7
|
SIZES = [ :small, :default, :large ].freeze
|
|
8
8
|
|
|
@@ -54,7 +54,7 @@ module Hakumi
|
|
|
54
54
|
image_tag(@src, alt: @alt, width: avatar_size, height: avatar_size)
|
|
55
55
|
elsif @icon
|
|
56
56
|
# Pass size: nil to allow icon to inherit font-size from avatar
|
|
57
|
-
render
|
|
57
|
+
render HakumiComponents::Icon::Component.new(name: @icon, size: nil)
|
|
58
58
|
else
|
|
59
59
|
tag.span(content, data: { hakumi__avatar_text_target: "text" })
|
|
60
60
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Badge
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
def initialize(count: nil, dot: false, overflow_count: 99, status: nil, text: nil, color: nil, show_zero: false, icon: nil, **html_options)
|
|
7
7
|
@count = count
|
|
8
8
|
@dot = dot
|
|
@@ -61,7 +61,7 @@ module Hakumi
|
|
|
61
61
|
|
|
62
62
|
tag.sup(class: classes.join(" "), title: @count, style: (styles.join("; ") if styles.any?)) do
|
|
63
63
|
if @icon
|
|
64
|
-
render
|
|
64
|
+
render HakumiComponents::Icon::Component.new(name: @icon)
|
|
65
65
|
else
|
|
66
66
|
display_count.to_s
|
|
67
67
|
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Breadcrumb
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
renders_many :items, ->(title: nil, href: nil, target: nil, **options, &block) do
|
|
7
|
-
|
|
7
|
+
HakumiComponents::Breadcrumb::Item::Component.new(title: title, href: href, target: target, **options, &block)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def initialize(separator: "/", **html_options)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<% if menu? %>
|
|
2
|
-
<%= render
|
|
2
|
+
<%= render HakumiComponents::Dropdown::Component.new do |dropdown| %>
|
|
3
3
|
<% dropdown.with_trigger do %>
|
|
4
4
|
<span class="hakumi-breadcrumb-link hakumi-breadcrumb-link-dropdown">
|
|
5
5
|
<%= display_title %>
|
|
6
|
-
<%= render
|
|
6
|
+
<%= render HakumiComponents::Icon::Component.new(name: :down, size: 10) %>
|
|
7
7
|
</span>
|
|
8
8
|
<% end %>
|
|
9
9
|
<% menu.each do |item| %>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Breadcrumb
|
|
5
5
|
module Item
|
|
6
|
-
class Component <
|
|
6
|
+
class Component < HakumiComponents::BaseComponent
|
|
7
7
|
def initialize(title: nil, href: nil, target: nil, menu: nil, **html_options)
|
|
8
8
|
@title = title
|
|
9
9
|
@href = href
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Button
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
TYPES = [ :primary, :default, :dashed, :text, :link ].freeze
|
|
7
7
|
SIZES = [ :small, :middle, :large ].freeze
|
|
8
8
|
SHAPES = [ :default, :circle, :round ].freeze
|
|
@@ -101,14 +101,14 @@ module Hakumi
|
|
|
101
101
|
return nil unless @icon
|
|
102
102
|
|
|
103
103
|
if @icon.is_a?(String) || @icon.is_a?(Symbol)
|
|
104
|
-
render
|
|
104
|
+
render HakumiComponents::Icon::Component.new(name: @icon)
|
|
105
105
|
else
|
|
106
106
|
@icon
|
|
107
107
|
end
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
def loading_icon
|
|
111
|
-
render
|
|
111
|
+
render HakumiComponents::Icon::Component.new(name: :loading, spin: true)
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
def text_element
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<% else %>
|
|
9
9
|
<div class="hakumi-calendar-header-left">
|
|
10
10
|
<% if show_year_select? %>
|
|
11
|
-
<%= render
|
|
11
|
+
<%= render HakumiComponents::Select::Component.new(
|
|
12
12
|
value: current_year,
|
|
13
13
|
options: years_range.map { |y| [y.to_s, y] },
|
|
14
14
|
size: fullscreen? ? :middle : :small,
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<% end %>
|
|
20
20
|
|
|
21
21
|
<% if show_month_select? %>
|
|
22
|
-
<%= render
|
|
22
|
+
<%= render HakumiComponents::Select::Component.new(
|
|
23
23
|
value: current_month,
|
|
24
24
|
options: month_names.each_with_index.map { |name, i| [name, i + 1] },
|
|
25
25
|
size: fullscreen? ? :middle : :small,
|
|
@@ -31,14 +31,14 @@
|
|
|
31
31
|
|
|
32
32
|
<% if decade_mode? %>
|
|
33
33
|
<div style="display: flex; align-items: center; gap: 8px;">
|
|
34
|
-
<%= render
|
|
34
|
+
<%= render HakumiComponents::Button::Component.new(
|
|
35
35
|
icon: :left,
|
|
36
36
|
type: :text,
|
|
37
37
|
size: :small,
|
|
38
38
|
data: { action: "click->hakumi--calendar#prevDecade" }
|
|
39
39
|
) %>
|
|
40
40
|
<span style="font-weight: 500; color: var(--color-text); min-width: 100px; text-align: center;"><%= decade_range_label %></span>
|
|
41
|
-
<%= render
|
|
41
|
+
<%= render HakumiComponents::Button::Component.new(
|
|
42
42
|
icon: :right,
|
|
43
43
|
type: :text,
|
|
44
44
|
size: :small,
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
|
|
51
51
|
<% if show_mode_switch? %>
|
|
52
52
|
<div class="hakumi-calendar-header-right">
|
|
53
|
-
<%= render
|
|
53
|
+
<%= render HakumiComponents::Segmented::Component.new(
|
|
54
54
|
options: [
|
|
55
55
|
{ label: "Month", value: "month" },
|
|
56
56
|
{ label: "Year", value: "year" }
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Calendar
|
|
5
|
-
class Component <
|
|
5
|
+
class Component < HakumiComponents::BaseComponent
|
|
6
6
|
MODES = %i[month year quarter decade].freeze
|
|
7
7
|
WEEK_DAYS = %i[sunday monday tuesday wednesday thursday friday saturday].freeze
|
|
8
8
|
LOCALES = {
|
|
@@ -151,7 +151,7 @@ module Hakumi
|
|
|
151
151
|
|
|
152
152
|
def render_event_badge(event)
|
|
153
153
|
helpers.render(
|
|
154
|
-
|
|
154
|
+
HakumiComponents::Badge::Component.new(
|
|
155
155
|
status: event[:type],
|
|
156
156
|
text: event[:content]
|
|
157
157
|
)
|
|
@@ -318,7 +318,7 @@ module Hakumi
|
|
|
318
318
|
|
|
319
319
|
safe_join(items.map do |item|
|
|
320
320
|
content_tag(:div, class: "hakumi-calendar-event hakumi-calendar-event-#{item[:type] || :default}") do
|
|
321
|
-
render
|
|
321
|
+
render HakumiComponents::Badge::Component.new(
|
|
322
322
|
status: item[:type] || :default,
|
|
323
323
|
text: item[:content]
|
|
324
324
|
)
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Card
|
|
5
5
|
# Hakumi Card component
|
|
6
6
|
# A container for displaying content in a box.
|
|
7
7
|
#
|
|
8
8
|
# @example Basic usage with slots
|
|
9
|
-
# <%= render
|
|
9
|
+
# <%= render HakumiComponents::Card::Component.new do |card| %>
|
|
10
10
|
# <% card.with_header { "Card Title" } %>
|
|
11
11
|
# <% card.with_extra { "More" } %>
|
|
12
12
|
# Card content
|
|
13
13
|
# <% end %>
|
|
14
14
|
#
|
|
15
15
|
# @example With cover and actions
|
|
16
|
-
# <%= render
|
|
16
|
+
# <%= render HakumiComponents::Card::Component.new do |card| %>
|
|
17
17
|
# <% card.with_cover { image_tag("example.png") } %>
|
|
18
18
|
# <% card.with_header { "Card Title" } %>
|
|
19
19
|
# Card content
|
|
20
20
|
# <% card.with_action { link_to "Edit", edit_path } %>
|
|
21
21
|
# <% card.with_action { link_to "Delete", "#" } %>
|
|
22
22
|
# <% end %>
|
|
23
|
-
class Component <
|
|
23
|
+
class Component < HakumiComponents::BaseComponent
|
|
24
24
|
# Slots for content
|
|
25
25
|
renders_one :header
|
|
26
26
|
renders_one :cover
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module HakumiComponents
|
|
4
4
|
module Card
|
|
5
5
|
module Grid
|
|
6
6
|
# Hakumi Card Grid component
|
|
7
7
|
# A grid-style item within a Card
|
|
8
8
|
#
|
|
9
9
|
# @example Basic usage
|
|
10
|
-
# <%= render
|
|
11
|
-
# <%= render
|
|
12
|
-
# <%= render
|
|
10
|
+
# <%= render HakumiComponents::Card::Component.new(title: "Title") do %>
|
|
11
|
+
# <%= render HakumiComponents::Card::Grid::Component.new { "Content 1" } %>
|
|
12
|
+
# <%= render HakumiComponents::Card::Grid::Component.new { "Content 2" } %>
|
|
13
13
|
# <% end %>
|
|
14
|
-
class Component <
|
|
14
|
+
class Component < HakumiComponents::BaseComponent
|
|
15
15
|
def initialize(
|
|
16
16
|
hoverable: true,
|
|
17
17
|
**html_options
|