|
| 1 | +# frozen_string_literal: true |
| 2 | + |
| 3 | +class Views::Docs::Empty < Views::Base |
| 4 | + def view_template |
| 5 | + component = "Empty" |
| 6 | + |
| 7 | + div(class: "max-w-2xl mx-auto w-full py-10 space-y-10") do |
| 8 | + render Docs::Header.new(title: "Empty", description: "Use the empty component to display a state when there is no data or content.") |
| 9 | + |
| 10 | + Heading(level: 2) { "Usage" } |
| 11 | + |
| 12 | + render Docs::VisualCodeExample.new(title: "Default", context: self) do |
| 13 | + <<~RUBY |
| 14 | + Empty do |
| 15 | + EmptyHeader do |
| 16 | + EmptyMedia(variant: :icon) do |
| 17 | + svg(xmlns: "http://www.w3.org/2000/svg", fill: "none", viewbox: "0 0 24 24", stroke_width: "1.5", stroke: "currentColor", class: "size-6") do |s| |
| 18 | + s.path(stroke_linecap: "round", stroke_linejoin: "round", d: "M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193-.34.027-.68.052-1.02.072v3.091l-3-3c-1.354 0-2.694-.055-4.02-.163a2.115 2.115 0 0 1-.825-.242m9.345-8.334a2.126 2.126 0 0 0-.476-.095 48.64 48.64 0 0 0-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.455 48.455 0 0 0 11.25 3c-2.115 0-4.198.137-6.24.402-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235.577.075 1.157.14 1.74.194V21l4.155-4.155") |
| 19 | + end |
| 20 | + end |
| 21 | + EmptyTitle { "No messages yet" } |
| 22 | + EmptyDescription { "Start a conversation to see your messages here." } |
| 23 | + end |
| 24 | + end |
| 25 | + RUBY |
| 26 | + end |
| 27 | + |
| 28 | + render Docs::VisualCodeExample.new(title: "With action", context: self) do |
| 29 | + <<~RUBY |
| 30 | + Empty do |
| 31 | + EmptyHeader do |
| 32 | + EmptyMedia(variant: :icon) do |
| 33 | + svg(xmlns: "http://www.w3.org/2000/svg", fill: "none", viewbox: "0 0 24 24", stroke_width: "1.5", stroke: "currentColor", class: "size-6") do |s| |
| 34 | + s.path(stroke_linecap: "round", stroke_linejoin: "round", d: "M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.129.166 2.27.293 3.423.379.35.026.67.21.865.501L12 21l2.755-4.133a1.14 1.14 0 0 1 .865-.501 48.172 48.172 0 0 0 3.423-.379c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z") |
| 35 | + end |
| 36 | + end |
| 37 | + EmptyTitle { "No projects" } |
| 38 | + EmptyDescription { "Get started by creating your first project." } |
| 39 | + end |
| 40 | + EmptyContent do |
| 41 | + Button { "Create project" } |
| 42 | + end |
| 43 | + end |
| 44 | + RUBY |
| 45 | + end |
| 46 | + |
| 47 | + render Docs::VisualCodeExample.new(title: "Default media", context: self) do |
| 48 | + <<~RUBY |
| 49 | + Empty(class: "border-none") do |
| 50 | + EmptyHeader do |
| 51 | + EmptyMedia(variant: :default) do |
| 52 | + Avatar(size: :lg) do |
| 53 | + AvatarFallback { "RU" } |
| 54 | + end |
| 55 | + end |
| 56 | + EmptyTitle { "No team members" } |
| 57 | + EmptyDescription { "Invite your team to start collaborating." } |
| 58 | + end |
| 59 | + end |
| 60 | + RUBY |
| 61 | + end |
| 62 | + |
| 63 | + render Components::ComponentSetup::Tabs.new(component_name: component) |
| 64 | + |
| 65 | + # components |
| 66 | + render Docs::ComponentsTable.new(component_files(component)) |
| 67 | + end |
| 68 | + end |
| 69 | +end |
0 commit comments