Class: Playbook::KitBase

Inherits:
ViewComponent::Base
  • Object
show all
Includes:
AlignContent, AlignItems, AlignSelf, BorderRadius, Bottom, Classnames, Cursor, Display, Flex, FlexDirection, FlexGrow, FlexShrink, FlexWrap, Hover, JustifyContent, JustifySelf, Left, LineHeight, NumberSpacing, Order, Overflow, PbKitHelper, Position, Props, Right, Shadow, Spacing, TextAlign, Top, Truncate, VerticalAlign, ZIndex
Defined in:
lib/playbook/kit_base.rb

Direct Known Subclasses

PbAdvancedTable::AdvancedTable, PbAdvancedTable::TableBody, PbAdvancedTable::TableHeader, PbAdvancedTable::TableRow, PbAdvancedTable::TableSubrowHeader, PbAvatar::Avatar, PbAvatarActionButton::AvatarActionButton, PbBackground::Background, PbBadge::Badge, PbBarGraph::BarGraph, PbBody::Body, PbBreadCrumbs::BreadCrumbItem, PbBreadCrumbs::BreadCrumbs, PbButton::Button, PbButtonToolbar::ButtonToolbar, PbCaption::Caption, PbCard::Card, PbCard::CardBody, PbCard::CardHeader, PbCheckbox::Checkbox, PbCircleChart::CircleChart, PbCircleIconButton::CircleIconButton, PbCollapsible::Collapsible, PbCollapsible::CollapsibleContent, PbCollapsible::CollapsibleIcon, PbCollapsible::CollapsibleMain, PbContact::Contact, PbCurrency::Currency, PbDashboardValue::DashboardValue, PbDate::Date, PbDatePicker::DatePicker, PbDateRangeInline::DateRangeInline, PbDateRangeStacked::DateRangeStacked, PbDateStacked::DateStacked, PbDateTime::DateTime, PbDateTimeStacked::DateTimeStacked, PbDateYearStacked::DateYearStacked, PbDetail::Detail, PbDialog::Dialog, PbDialog::DialogBody, PbDialog::DialogFooter, PbDialog::DialogHeader, PbDistributionBar::DistributionBar, PbDocs::KitExample, PbDraggable::Draggable, PbDraggable::DraggableContainer, PbDraggable::DraggableItem, PbDrawer::Drawer, PbDropdown::Dropdown, PbDropdown::DropdownContainer, PbDropdown::DropdownOption, PbDropdown::DropdownTrigger, PbFileUpload::FileUpload, PbFilter::Filter, PbFixedConfirmationToast::FixedConfirmationToast, PbFlex::Flex, PbFlex::FlexItem, PbForm::Form, PbFormGroup::FormGroup, PbFormPill::FormPill, PbGauge::Gauge, PbHashtag::Hashtag, PbHighlight::Highlight, PbHomeAddressStreet::CityEmphasis, PbHomeAddressStreet::HomeAddressStreet, PbHomeAddressStreet::StreetEmphasis, PbIcon::Icon, PbIconCircle::IconCircle, PbIconStatValue::IconStatValue, PbIconValue::IconValue, PbImage::Image, PbLabelPill::LabelPill, PbLabelValue::LabelValue, PbLayout::Body, PbLayout::Footer, PbLayout::Header, PbLayout::Item, PbLayout::Layout, PbLayout::Sidebar, PbLegend::Legend, PbLineGraph::LineGraph, PbLink::Link, PbList::Item, PbList::List, PbLoadingInline::LoadingInline, PbMessage::Message, PbMessage::MessageMention, PbMultiLevelSelect::MultiLevelSelect, PbMultipleUsers::MultipleUsers, PbMultipleUsersStacked::MultipleUsersStacked, PbNav::Item, PbNav::Nav, PbOnlineStatus::OnlineStatus, PbOverlay::Overlay, PbPagination::Pagination, PbPassphrase::Passphrase, PbPerson::Person, PbPersonContact::PersonContact, PbPhoneNumberInput::PhoneNumberInput, PbPill::Pill, PbPopover::Popover, PbProgressPills::ProgressPills, PbProgressSimple::ProgressSimple, PbProgressStep::ProgressStep, PbProgressStep::ProgressStepItem, PbRadio::Radio, PbRichTextEditor::RichTextEditor, PbSectionSeparator::SectionSeparator, PbSelect::Select, PbSelectableCard::SelectableCard, PbSelectableCardIcon::SelectableCardIcon, PbSelectableIcon::SelectableIcon, PbSelectableList::SelectableList, PbSelectableList::SelectableListItem, PbSkeletonLoading::SkeletonLoading, PbSource::Source, PbStarRating::StarRating, PbStatChange::StatChange, PbStatValue::StatValue, PbTable::Table, PbTable::TableBody, PbTable::TableCell, PbTable::TableHead, PbTable::TableHeader, PbTable::TableRow, PbTextInput::AddOn, PbTextInput::TextInput, PbTextarea::Textarea, PbTime::Time, PbTimeRangeInline::TimeRangeInline, PbTimeStacked::TimeStacked, PbTimeline::Detail, PbTimeline::Item, PbTimeline::Label, PbTimeline::Step, PbTimeline::Timeline, PbTimestamp::Timestamp, PbTitle::Title, PbTitleCount::TitleCount, PbTitleDetail::TitleDetail, PbToggle::Toggle, PbTooltip::Tooltip, PbTreemapChart::TreemapChart, PbTypeahead::Typeahead, PbUser::User, PbUserBadge::UserBadge, PbWeekdayStacked::WeekdayStacked

Constant Summary

Constants included from PositionPropsCss

PositionPropsCss::POSITION_VALUES

Instance Attribute Summary

Attributes included from Props

#values

Instance Method Summary collapse

Methods included from VerticalAlign

included, #vertical_align_options, #vertical_align_props, #vertical_align_values

Methods included from Bottom

#bottom_options, #bottom_values, included

Methods included from PositionPropsCss

#positioning_css

Methods included from Right

included, #right_options, #right_values

Methods included from Top

included, #top_options, #top_values

Methods included from Left

included, #left_options, #left_values

Methods included from Truncate

included, #truncate_options, #truncate_props, #truncate_values

Methods included from Overflow

included, #overflow_options, #overflow_props, #overflow_values

Methods included from TextAlign

included, #text_align_options, #text_align_props, #text_align_values

Methods included from BorderRadius

#border_radius_options, #border_radius_props, #border_radius_values, included

Methods included from Hover

#hover_attributes, #hover_background_values, #hover_color_values, #hover_options, #hover_props, #hover_scale_values, #hover_shadow_values, #hover_values, included

Methods included from Position

included, #position_options, #position_values

Methods included from Order

included, #order_options, #order_props, #order_values

Methods included from FlexShrink

#flex_shrink_options, #flex_shrink_props, #flex_shrink_values, included

Methods included from FlexGrow

#flex_grow_options, #flex_grow_props, #flex_grow_values, included

Methods included from Flex

#flex_options, #flex_props, #flex_values, included

Methods included from AlignSelf

#align_self_options, #align_self_props, #align_self_values, included

Methods included from AlignContent

#align_content_options, #align_content_props, #align_content_values, included

Methods included from AlignItems

#align_items_options, #align_items_props, #align_items_values, included

Methods included from JustifySelf

included, #justify_self_options, #justify_self_props, #justify_self_values

Methods included from JustifyContent

included, #justify_content_options, #justify_content_props, #justify_content_values

Methods included from FlexWrap

#flex_wrap_options, #flex_wrap_props, #flex_wrap_values, included

Methods included from FlexDirection

#flex_direction_options, #flex_direction_props, #flex_direction_values, included

Methods included from Cursor

#cursor_options, #cursor_props, #cursor_values, included

Methods included from Display

#display_options, #display_props, #display_size_values, #display_values, included

Methods included from LineHeight

included, #line_height_options, #line_height_props, #line_height_values

Methods included from Shadow

included, #shadow_options, #shadow_props, #shadow_values

Methods included from NumberSpacing

included, #number_spacing_options, #number_spacing_values

Methods included from ZIndex

included, #screen_size_values, #z_index_options, #z_index_props, #z_index_values

Methods included from Spacing

#break_method_values, #filter_classname, included, #max_width_options, #max_width_props, #max_width_values, #min_width_options, #min_width_props, #min_width_values, #screen_size_values, #spacing_options, #spacing_props, #spacing_values

Methods included from Classnames

#generate_classname, #generate_classname_without_spacing, included

Methods included from Props

#initialize, #prop

Methods included from PbKitHelper

#pb_rails

Methods included from PbFormsHelper

#pb_form_with

Instance Method Details

#combined_html_optionsObject

rubocop:enable Style/OptionalBooleanParameter



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/playbook/kit_base.rb', line 113

def combined_html_options
  merged = default_html_options.dup

  html_options.each do |key, value|
    if key == :style && value.is_a?(Hash)
      # Convert style hash to CSS string
      merged[:style] = value.map { |k, v| "#{k.to_s.gsub('_', '-')}: #{v}" }.join("; ")
    else
      merged[key] = value
    end
  end

  inline_styles = dynamic_inline_props
  merged[:style] = if inline_styles.present?
                     merged[:style].present? ? "#{merged[:style]}; #{inline_styles}" : inline_styles
                   end

  merged.deep_merge(data_attributes)
end

#global_inline_propsObject



133
134
135
136
137
138
139
# File 'lib/playbook/kit_base.rb', line 133

def global_inline_props
  {
    height: height,
    min_height: min_height,
    max_height: max_height,
  }.compact
end

#objectObject



81
82
83
# File 'lib/playbook/kit_base.rb', line 81

def object
  self
end

#pb_content_tag(name = :div, content_or_options_with_block = {}, options = {}, escape = true, &block) ⇒ Object

rubocop:disable Style/OptionalBooleanParameter



105
106
107
108
109
110
# File 'lib/playbook/kit_base.rb', line 105

def (name = :div, content_or_options_with_block = {}, options = {}, escape = true, &block)
  combined_options = options
                     .merge(combined_html_options)
                     .merge(default_options.merge(content_or_options_with_block))
  (name, combined_options, options, escape, &block)
end