kiso 0.1.0.pre → 0.2.0.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.
Files changed (236) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -2
  3. data/README.md +67 -27
  4. data/Rakefile +8 -0
  5. data/app/assets/tailwind/kiso/checkbox.css +18 -0
  6. data/app/assets/tailwind/kiso/color-mode.css +9 -0
  7. data/app/assets/tailwind/kiso/dashboard.css +194 -0
  8. data/app/assets/tailwind/kiso/engine.css +117 -0
  9. data/app/assets/tailwind/kiso/input-otp.css +10 -0
  10. data/app/assets/tailwind/kiso/radio-group.css +17 -0
  11. data/app/helpers/kiso/component_helper.rb +46 -27
  12. data/app/helpers/kiso/icon_helper.rb +53 -9
  13. data/app/helpers/kiso/theme_helper.rb +38 -0
  14. data/app/javascript/controllers/kiso/combobox_controller.js +616 -0
  15. data/app/javascript/controllers/kiso/command_controller.js +184 -0
  16. data/app/javascript/controllers/kiso/command_dialog_controller.js +104 -0
  17. data/app/javascript/controllers/kiso/dropdown_menu_controller.js +684 -0
  18. data/app/javascript/controllers/kiso/index.d.ts +12 -0
  19. data/app/javascript/controllers/kiso/index.js +42 -0
  20. data/app/javascript/controllers/kiso/input_otp_controller.js +195 -0
  21. data/app/javascript/controllers/kiso/popover_controller.js +254 -0
  22. data/app/javascript/controllers/kiso/select_controller.js +307 -0
  23. data/app/javascript/controllers/kiso/sidebar_controller.js +84 -0
  24. data/app/javascript/controllers/kiso/theme_controller.js +89 -0
  25. data/app/javascript/controllers/kiso/toggle_controller.js +24 -0
  26. data/app/javascript/controllers/kiso/toggle_group_controller.js +128 -0
  27. data/app/javascript/kiso/utils/focusable.js +8 -0
  28. data/app/javascript/kiso/utils/highlight.js +43 -0
  29. data/app/javascript/kiso/utils/positioning.js +86 -0
  30. data/app/javascript/kiso/vendor/floating-ui-core.js +1 -0
  31. data/app/javascript/kiso/vendor/floating-ui-dom.js +1 -0
  32. data/app/views/kiso/components/_alert.html.erb +1 -1
  33. data/app/views/kiso/components/_avatar.html.erb +23 -0
  34. data/app/views/kiso/components/_badge.html.erb +1 -1
  35. data/app/views/kiso/components/_breadcrumb.html.erb +8 -0
  36. data/app/views/kiso/components/_button.html.erb +1 -1
  37. data/app/views/kiso/components/_card.html.erb +1 -1
  38. data/app/views/kiso/components/_checkbox.html.erb +7 -0
  39. data/app/views/kiso/components/_color_mode_button.html.erb +14 -0
  40. data/app/views/kiso/components/_color_mode_select.html.erb +24 -0
  41. data/app/views/kiso/components/_combobox.html.erb +12 -0
  42. data/app/views/kiso/components/_command.html.erb +7 -0
  43. data/app/views/kiso/components/_dashboard_group.html.erb +14 -0
  44. data/app/views/kiso/components/_dashboard_navbar.html.erb +7 -0
  45. data/app/views/kiso/components/_dashboard_panel.html.erb +7 -0
  46. data/app/views/kiso/components/_dashboard_sidebar.html.erb +11 -0
  47. data/app/views/kiso/components/_dashboard_toolbar.html.erb +7 -0
  48. data/app/views/kiso/components/_dropdown_menu.html.erb +7 -0
  49. data/app/views/kiso/components/{_empty_state.html.erb → _empty.html.erb} +2 -2
  50. data/app/views/kiso/components/_field.html.erb +12 -0
  51. data/app/views/kiso/components/_field_group.html.erb +7 -0
  52. data/app/views/kiso/components/_field_set.html.erb +7 -0
  53. data/app/views/kiso/components/_input.html.erb +8 -0
  54. data/app/views/kiso/components/_input_group.html.erb +8 -0
  55. data/app/views/kiso/components/_input_otp.html.erb +22 -0
  56. data/app/views/kiso/components/_kbd.html.erb +7 -0
  57. data/app/views/kiso/components/_label.html.erb +5 -0
  58. data/app/views/kiso/components/_nav.html.erb +7 -0
  59. data/app/views/kiso/components/_pagination.html.erb +9 -0
  60. data/app/views/kiso/components/_popover.html.erb +8 -0
  61. data/app/views/kiso/components/_radio_group.html.erb +8 -0
  62. data/app/views/kiso/components/_select.html.erb +8 -0
  63. data/app/views/kiso/components/_select_native.html.erb +16 -0
  64. data/app/views/kiso/components/_separator.html.erb +1 -1
  65. data/app/views/kiso/components/_stats_card.html.erb +1 -1
  66. data/app/views/kiso/components/_stats_grid.html.erb +1 -1
  67. data/app/views/kiso/components/_switch.html.erb +10 -0
  68. data/app/views/kiso/components/_table.html.erb +2 -1
  69. data/app/views/kiso/components/_textarea.html.erb +9 -0
  70. data/app/views/kiso/components/_toggle.html.erb +12 -0
  71. data/app/views/kiso/components/_toggle_group.html.erb +12 -0
  72. data/app/views/kiso/components/alert/_description.html.erb +1 -1
  73. data/app/views/kiso/components/alert/_title.html.erb +1 -1
  74. data/app/views/kiso/components/avatar/_badge.html.erb +7 -0
  75. data/app/views/kiso/components/avatar/_fallback.html.erb +7 -0
  76. data/app/views/kiso/components/avatar/_group.html.erb +7 -0
  77. data/app/views/kiso/components/avatar/_group_count.html.erb +7 -0
  78. data/app/views/kiso/components/avatar/_image.html.erb +6 -0
  79. data/app/views/kiso/components/breadcrumb/_ellipsis.html.erb +10 -0
  80. data/app/views/kiso/components/breadcrumb/_item.html.erb +7 -0
  81. data/app/views/kiso/components/breadcrumb/_link.html.erb +7 -0
  82. data/app/views/kiso/components/breadcrumb/_list.html.erb +7 -0
  83. data/app/views/kiso/components/breadcrumb/_page.html.erb +9 -0
  84. data/app/views/kiso/components/breadcrumb/_separator.html.erb +9 -0
  85. data/app/views/kiso/components/card/_action.html.erb +7 -0
  86. data/app/views/kiso/components/card/_content.html.erb +1 -1
  87. data/app/views/kiso/components/card/_description.html.erb +1 -1
  88. data/app/views/kiso/components/card/_footer.html.erb +1 -1
  89. data/app/views/kiso/components/card/_header.html.erb +1 -1
  90. data/app/views/kiso/components/card/_title.html.erb +1 -1
  91. data/app/views/kiso/components/combobox/_chip.html.erb +19 -0
  92. data/app/views/kiso/components/combobox/_chips.html.erb +20 -0
  93. data/app/views/kiso/components/combobox/_chips_input.html.erb +10 -0
  94. data/app/views/kiso/components/combobox/_content.html.erb +9 -0
  95. data/app/views/kiso/components/combobox/_empty.html.erb +9 -0
  96. data/app/views/kiso/components/combobox/_group.html.erb +8 -0
  97. data/app/views/kiso/components/combobox/_input.html.erb +23 -0
  98. data/app/views/kiso/components/combobox/_item.html.erb +19 -0
  99. data/app/views/kiso/components/combobox/_label.html.erb +7 -0
  100. data/app/views/kiso/components/combobox/_list.html.erb +10 -0
  101. data/app/views/kiso/components/combobox/_separator.html.erb +6 -0
  102. data/app/views/kiso/components/command/_dialog.html.erb +11 -0
  103. data/app/views/kiso/components/command/_empty.html.erb +9 -0
  104. data/app/views/kiso/components/command/_group.html.erb +14 -0
  105. data/app/views/kiso/components/command/_input.html.erb +16 -0
  106. data/app/views/kiso/components/command/_item.html.erb +13 -0
  107. data/app/views/kiso/components/command/_list.html.erb +10 -0
  108. data/app/views/kiso/components/command/_separator.html.erb +7 -0
  109. data/app/views/kiso/components/command/_shortcut.html.erb +7 -0
  110. data/app/views/kiso/components/dashboard_navbar/_toggle.html.erb +11 -0
  111. data/app/views/kiso/components/dashboard_sidebar/_collapse.html.erb +12 -0
  112. data/app/views/kiso/components/dashboard_sidebar/_footer.html.erb +7 -0
  113. data/app/views/kiso/components/dashboard_sidebar/_header.html.erb +7 -0
  114. data/app/views/kiso/components/dashboard_sidebar/_toggle.html.erb +11 -0
  115. data/app/views/kiso/components/dashboard_toolbar/_left.html.erb +7 -0
  116. data/app/views/kiso/components/dashboard_toolbar/_right.html.erb +7 -0
  117. data/app/views/kiso/components/dropdown_menu/_checkbox_item.html.erb +18 -0
  118. data/app/views/kiso/components/dropdown_menu/_content.html.erb +10 -0
  119. data/app/views/kiso/components/dropdown_menu/_group.html.erb +8 -0
  120. data/app/views/kiso/components/dropdown_menu/_item.html.erb +15 -0
  121. data/app/views/kiso/components/dropdown_menu/_label.html.erb +8 -0
  122. data/app/views/kiso/components/dropdown_menu/_radio_group.html.erb +10 -0
  123. data/app/views/kiso/components/dropdown_menu/_radio_item.html.erb +19 -0
  124. data/app/views/kiso/components/dropdown_menu/_separator.html.erb +6 -0
  125. data/app/views/kiso/components/dropdown_menu/_shortcut.html.erb +7 -0
  126. data/app/views/kiso/components/dropdown_menu/_sub.html.erb +8 -0
  127. data/app/views/kiso/components/dropdown_menu/_sub_content.html.erb +10 -0
  128. data/app/views/kiso/components/dropdown_menu/_sub_trigger.html.erb +12 -0
  129. data/app/views/kiso/components/dropdown_menu/_trigger.html.erb +9 -0
  130. data/app/views/kiso/components/empty/_content.html.erb +7 -0
  131. data/app/views/kiso/components/empty/_description.html.erb +7 -0
  132. data/app/views/kiso/components/empty/_header.html.erb +7 -0
  133. data/app/views/kiso/components/empty/_media.html.erb +7 -0
  134. data/app/views/kiso/components/empty/_title.html.erb +7 -0
  135. data/app/views/kiso/components/field/_content.html.erb +7 -0
  136. data/app/views/kiso/components/field/_description.html.erb +7 -0
  137. data/app/views/kiso/components/field/_error.html.erb +22 -0
  138. data/app/views/kiso/components/field/_label.html.erb +5 -0
  139. data/app/views/kiso/components/field/_separator.html.erb +15 -0
  140. data/app/views/kiso/components/field/_title.html.erb +7 -0
  141. data/app/views/kiso/components/field_set/_legend.html.erb +9 -0
  142. data/app/views/kiso/components/input_group/_addon.html.erb +7 -0
  143. data/app/views/kiso/components/input_otp/_group.html.erb +7 -0
  144. data/app/views/kiso/components/input_otp/_separator.html.erb +8 -0
  145. data/app/views/kiso/components/input_otp/_slot.html.erb +11 -0
  146. data/app/views/kiso/components/kbd/_group.html.erb +7 -0
  147. data/app/views/kiso/components/nav/_item.html.erb +15 -0
  148. data/app/views/kiso/components/nav/_section.html.erb +37 -0
  149. data/app/views/kiso/components/nav/_section_title.html.erb +7 -0
  150. data/app/views/kiso/components/pagination/_content.html.erb +7 -0
  151. data/app/views/kiso/components/pagination/_ellipsis.html.erb +9 -0
  152. data/app/views/kiso/components/pagination/_item.html.erb +7 -0
  153. data/app/views/kiso/components/pagination/_link.html.erb +9 -0
  154. data/app/views/kiso/components/pagination/_next.html.erb +12 -0
  155. data/app/views/kiso/components/pagination/_previous.html.erb +12 -0
  156. data/app/views/kiso/components/popover/_anchor.html.erb +8 -0
  157. data/app/views/kiso/components/popover/_content.html.erb +11 -0
  158. data/app/views/kiso/components/popover/_description.html.erb +7 -0
  159. data/app/views/kiso/components/popover/_header.html.erb +7 -0
  160. data/app/views/kiso/components/popover/_title.html.erb +7 -0
  161. data/app/views/kiso/components/popover/_trigger.html.erb +9 -0
  162. data/app/views/kiso/components/radio_group/_item.html.erb +6 -0
  163. data/app/views/kiso/components/select/_content.html.erb +10 -0
  164. data/app/views/kiso/components/select/_group.html.erb +8 -0
  165. data/app/views/kiso/components/select/_item.html.erb +19 -0
  166. data/app/views/kiso/components/select/_label.html.erb +7 -0
  167. data/app/views/kiso/components/select/_separator.html.erb +6 -0
  168. data/app/views/kiso/components/select/_trigger.html.erb +13 -0
  169. data/app/views/kiso/components/select/_value.html.erb +11 -0
  170. data/app/views/kiso/components/stats_card/_description.html.erb +1 -1
  171. data/app/views/kiso/components/stats_card/_header.html.erb +1 -1
  172. data/app/views/kiso/components/stats_card/_label.html.erb +1 -1
  173. data/app/views/kiso/components/stats_card/_value.html.erb +1 -1
  174. data/app/views/kiso/components/table/_body.html.erb +1 -1
  175. data/app/views/kiso/components/table/_caption.html.erb +1 -1
  176. data/app/views/kiso/components/table/_cell.html.erb +1 -1
  177. data/app/views/kiso/components/table/_footer.html.erb +1 -1
  178. data/app/views/kiso/components/table/_head.html.erb +1 -1
  179. data/app/views/kiso/components/table/_header.html.erb +1 -1
  180. data/app/views/kiso/components/table/_row.html.erb +1 -1
  181. data/app/views/kiso/components/toggle_group/_item.html.erb +13 -0
  182. data/config/deploy.docs.yml +31 -0
  183. data/config/deploy.yml +34 -0
  184. data/config/importmap.rb +10 -0
  185. data/lib/kiso/cli/base.rb +15 -0
  186. data/lib/kiso/cli/icons.rb +2 -1
  187. data/lib/kiso/cli/main.rb +6 -0
  188. data/lib/kiso/cli/make.rb +22 -12
  189. data/lib/kiso/configuration.rb +54 -0
  190. data/lib/kiso/engine.rb +36 -1
  191. data/lib/kiso/theme_overrides.rb +130 -0
  192. data/lib/kiso/themes/alert.rb +16 -1
  193. data/lib/kiso/themes/avatar.rb +53 -0
  194. data/lib/kiso/themes/badge.rb +15 -5
  195. data/lib/kiso/themes/breadcrumb.rb +44 -0
  196. data/lib/kiso/themes/button.rb +15 -2
  197. data/lib/kiso/themes/card.rb +18 -2
  198. data/lib/kiso/themes/checkbox.rb +33 -0
  199. data/lib/kiso/themes/color_mode_button.rb +15 -0
  200. data/lib/kiso/themes/color_mode_select.rb +7 -0
  201. data/lib/kiso/themes/combobox.rb +97 -0
  202. data/lib/kiso/themes/command.rb +79 -0
  203. data/lib/kiso/themes/dashboard.rb +51 -0
  204. data/lib/kiso/themes/dropdown_menu.rb +108 -0
  205. data/lib/kiso/themes/empty.rb +54 -0
  206. data/lib/kiso/themes/field.rb +76 -0
  207. data/lib/kiso/themes/field_group.rb +15 -0
  208. data/lib/kiso/themes/field_set.rb +32 -0
  209. data/lib/kiso/themes/input.rb +33 -0
  210. data/lib/kiso/themes/input_group.rb +39 -0
  211. data/lib/kiso/themes/input_otp.rb +46 -0
  212. data/lib/kiso/themes/kbd.rb +31 -0
  213. data/lib/kiso/themes/label.rb +16 -0
  214. data/lib/kiso/themes/nav.rb +27 -0
  215. data/lib/kiso/themes/pagination.rb +73 -0
  216. data/lib/kiso/themes/popover.rb +32 -0
  217. data/lib/kiso/themes/radio_group.rb +43 -0
  218. data/lib/kiso/themes/select.rb +78 -0
  219. data/lib/kiso/themes/select_native.rb +49 -0
  220. data/lib/kiso/themes/separator.rb +8 -2
  221. data/lib/kiso/themes/shared.rb +51 -0
  222. data/lib/kiso/themes/stats_card.rb +26 -14
  223. data/lib/kiso/themes/switch.rb +56 -0
  224. data/lib/kiso/themes/table.rb +18 -15
  225. data/lib/kiso/themes/textarea.rb +33 -0
  226. data/lib/kiso/themes/toggle.rb +71 -0
  227. data/lib/kiso/themes/toggle_group.rb +13 -0
  228. data/lib/kiso/version.rb +4 -1
  229. data/lib/kiso.rb +70 -2
  230. metadata +183 -22
  231. data/app/views/kiso/components/empty_state/_content.html.erb +0 -7
  232. data/app/views/kiso/components/empty_state/_description.html.erb +0 -7
  233. data/app/views/kiso/components/empty_state/_header.html.erb +0 -7
  234. data/app/views/kiso/components/empty_state/_media.html.erb +0 -7
  235. data/app/views/kiso/components/empty_state/_title.html.erb +0 -7
  236. data/lib/kiso/themes/empty_state.rb +0 -42
@@ -0,0 +1,56 @@
1
+ module Kiso
2
+ module Themes
3
+ # Toggle switch built with a native +<input type="checkbox">+ inside a
4
+ # +<label>+ that acts as the track. The +has-[:checked]:+ selector drives
5
+ # track color and +peer-checked:+ drives thumb translation.
6
+ #
7
+ # @example
8
+ # SwitchTrack.render(color: :primary, size: :md)
9
+ #
10
+ # Variants:
11
+ # - +color+ — :primary (default), :secondary, :success, :info, :warning, :error, :neutral
12
+ # - +size+ — :sm, :md (default)
13
+ #
14
+ # Sub-parts: {SwitchThumb}
15
+ SwitchTrack = ClassVariants.build(
16
+ base: "relative inline-flex shrink-0 cursor-pointer items-center rounded-full " \
17
+ "border-2 border-transparent shadow-xs outline-none bg-accented " \
18
+ "transition-colors " \
19
+ "has-[:focus-visible]:ring-[3px] " \
20
+ "has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50",
21
+ variants: {
22
+ color: COLORS.index_with { "" },
23
+ size: {
24
+ sm: "h-4 w-8",
25
+ md: "h-5 w-9"
26
+ }
27
+ },
28
+ compound_variants: [
29
+ {color: :primary, class: "has-[:checked]:bg-primary has-[:focus-visible]:ring-primary/50"},
30
+ {color: :secondary, class: "has-[:checked]:bg-secondary has-[:focus-visible]:ring-secondary/50"},
31
+ {color: :success, class: "has-[:checked]:bg-success has-[:focus-visible]:ring-success/50"},
32
+ {color: :info, class: "has-[:checked]:bg-info has-[:focus-visible]:ring-info/50"},
33
+ {color: :warning, class: "has-[:checked]:bg-warning has-[:focus-visible]:ring-warning/50"},
34
+ {color: :error, class: "has-[:checked]:bg-error has-[:focus-visible]:ring-error/50"},
35
+ {color: :neutral, class: "has-[:checked]:bg-inverted has-[:focus-visible]:ring-inverted/50"}
36
+ ],
37
+ defaults: {color: :primary, size: :md}
38
+ )
39
+
40
+ # Sliding circle indicator inside the {SwitchTrack}.
41
+ #
42
+ # Variants:
43
+ # - +size+ — :sm, :md (default)
44
+ SwitchThumb = ClassVariants.build(
45
+ base: "pointer-events-none block rounded-full bg-background shadow-lg ring-0 " \
46
+ "transition-transform translate-x-0.5",
47
+ variants: {
48
+ size: {
49
+ sm: "size-3 peer-checked:translate-x-4",
50
+ md: "size-4 peer-checked:translate-x-4"
51
+ }
52
+ },
53
+ defaults: {size: :md}
54
+ )
55
+ end
56
+ end
@@ -1,46 +1,49 @@
1
1
  module Kiso
2
2
  module Themes
3
- # shadcn wraps <table> in a scrollable container div.
4
- # Container: relative w-full overflow-x-auto
5
- # Table: w-full caption-bottom text-sm
3
+ # Data table with header, body, footer, and caption sections.
4
+ #
5
+ # The partial wraps the +<table>+ in a scrollable container div.
6
+ #
7
+ # @example
8
+ # Table.render
9
+ #
10
+ # Sub-parts: {TableHeader}, {TableBody}, {TableFooter}, {TableRow},
11
+ # {TableHead}, {TableCell}, {TableCaption}
6
12
  Table = ClassVariants.build(
7
- base: "w-full caption-bottom text-sm"
13
+ base: "w-full caption-bottom text-sm text-foreground"
8
14
  )
9
15
 
10
- # shadcn: [&_tr]:border-b
11
- # border-border explicit — TW4 defaults border color to currentColor
16
+ # Table header section (+<thead>+). Adds bottom border to child rows.
12
17
  TableHeader = ClassVariants.build(
13
18
  base: "[&_tr]:border-b [&_tr]:border-border"
14
19
  )
15
20
 
16
- # shadcn: [&_tr:last-child]:border-0
21
+ # Table body section (+<tbody>+). Removes border from the last row.
17
22
  TableBody = ClassVariants.build(
18
23
  base: "[&_tr:last-child]:border-0"
19
24
  )
20
25
 
21
- # shadcn: bg-muted/50 border-t font-medium [&>tr]:last:border-b-0
26
+ # Table footer section (+<tfoot>+) with muted background.
22
27
  TableFooter = ClassVariants.build(
23
28
  base: "bg-muted/50 border-t border-border font-medium [&>tr]:last:border-b-0"
24
29
  )
25
30
 
26
- # shadcn: hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors
31
+ # Table row (+<tr>+) with hover highlight and selection state.
27
32
  TableRow = ClassVariants.build(
28
33
  base: "hover:bg-muted/50 data-[state=selected]:bg-muted border-b border-border transition-colors"
29
34
  )
30
35
 
31
- # shadcn: text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap
32
- # [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]
36
+ # Table header cell (+<th>+) with fixed height and font-medium.
33
37
  TableHead = ClassVariants.build(
34
- base: "text-muted-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]"
38
+ base: "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]"
35
39
  )
36
40
 
37
- # shadcn: p-2 align-middle whitespace-nowrap
38
- # [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]
41
+ # Table data cell (+<td>+).
39
42
  TableCell = ClassVariants.build(
40
43
  base: "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]"
41
44
  )
42
45
 
43
- # shadcn: text-muted-foreground mt-4 text-sm
46
+ # Table caption (+<caption>+) rendered below the table.
44
47
  TableCaption = ClassVariants.build(
45
48
  base: "text-muted-foreground mt-4 text-sm"
46
49
  )
@@ -0,0 +1,33 @@
1
+ module Kiso
2
+ module Themes
3
+ # Multi-line text input with auto-sizing via +field-sizing-content+.
4
+ #
5
+ # @example
6
+ # Textarea.render(variant: :outline, size: :md)
7
+ #
8
+ # Variants:
9
+ # - +variant+ — :outline (default), :soft, :ghost
10
+ # - +size+ — :sm, :md (default), :lg
11
+ Textarea = ClassVariants.build(
12
+ base: "text-foreground w-full rounded-md outline-none transition-[color,box-shadow] " \
13
+ "min-h-16 field-sizing-content " \
14
+ "placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground " \
15
+ "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 " \
16
+ "focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary " \
17
+ "aria-invalid:ring-error aria-invalid:focus-visible:ring-error",
18
+ variants: {
19
+ variant: {
20
+ outline: "bg-background ring ring-inset ring-accented shadow-xs",
21
+ soft: "bg-elevated/50 hover:bg-elevated focus:bg-elevated",
22
+ ghost: "bg-transparent hover:bg-elevated focus:bg-elevated"
23
+ },
24
+ size: {
25
+ sm: "px-2.5 py-2 text-sm",
26
+ md: "px-3 py-2 text-base md:text-sm",
27
+ lg: "px-3 py-2 text-base"
28
+ }
29
+ },
30
+ defaults: {variant: :outline, size: :md}
31
+ )
32
+ end
33
+ end
@@ -0,0 +1,71 @@
1
+ module Kiso
2
+ module Themes
3
+ # Two-state toggle button (on/off). Uses +data-[state=on]+ for the
4
+ # pressed state.
5
+ #
6
+ # @example
7
+ # Toggle.render(variant: :default, size: :default)
8
+ #
9
+ # Variants:
10
+ # - +variant+ — :default, :outline
11
+ # - +size+ — :sm, :default, :lg
12
+ #
13
+ # See also: {ToggleGroup} for grouped toggle buttons, {ToggleGroupItem}
14
+ # for items within a group.
15
+ Toggle = ClassVariants.build(
16
+ base: "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium text-foreground " \
17
+ "bg-transparent " \
18
+ "hover:bg-muted hover:text-muted-foreground " \
19
+ "disabled:pointer-events-none disabled:opacity-50 " \
20
+ "data-[state=on]:bg-muted data-[state=on]:text-foreground " \
21
+ "#{Shared::SVG_BASE} " \
22
+ "focus-visible:ring-[3px] focus-visible:ring-ring/50 outline-none " \
23
+ "transition-[color,box-shadow] " \
24
+ "whitespace-nowrap",
25
+ variants: {
26
+ variant: {
27
+ default: "",
28
+ outline: "ring ring-inset ring-border shadow-xs"
29
+ },
30
+ size: {
31
+ sm: "h-8 px-1.5 min-w-8",
32
+ default: "h-9 px-2 min-w-9",
33
+ lg: "h-10 px-2.5 min-w-10"
34
+ }
35
+ },
36
+ defaults: {variant: :default, size: :default}
37
+ )
38
+
39
+ # Individual item within a {ToggleGroup}. Renders flush (no gap) with
40
+ # rounded corners on the first and last items for a joined pill appearance.
41
+ #
42
+ # Variants:
43
+ # - +variant+ — :default, :outline
44
+ # - +size+ — :sm, :default, :lg
45
+ ToggleGroupItem = ClassVariants.build(
46
+ base: "inline-flex items-center justify-center gap-2 text-sm font-medium text-foreground " \
47
+ "bg-transparent min-w-0 " \
48
+ "rounded-none first:rounded-l-md last:rounded-r-md " \
49
+ "hover:bg-muted hover:text-muted-foreground " \
50
+ "disabled:pointer-events-none disabled:opacity-50 " \
51
+ "data-[state=on]:bg-muted data-[state=on]:text-foreground " \
52
+ "#{Shared::SVG_BASE} " \
53
+ "focus-visible:ring-[3px] focus-visible:ring-ring/50 outline-none " \
54
+ "transition-[color,box-shadow] " \
55
+ "whitespace-nowrap " \
56
+ "shrink-0 focus:z-10 focus-visible:z-10",
57
+ variants: {
58
+ variant: {
59
+ default: "",
60
+ outline: "border border-border shadow-xs -ml-px first:ml-0"
61
+ },
62
+ size: {
63
+ sm: "h-8 px-3",
64
+ default: "h-9 px-3",
65
+ lg: "h-10 px-3"
66
+ }
67
+ },
68
+ defaults: {variant: :default, size: :default}
69
+ )
70
+ end
71
+ end
@@ -0,0 +1,13 @@
1
+ module Kiso
2
+ module Themes
3
+ # Container for a set of mutually exclusive {ToggleGroupItem} buttons.
4
+ #
5
+ # @example
6
+ # ToggleGroup.render
7
+ #
8
+ # Sub-parts: {ToggleGroupItem}
9
+ ToggleGroup = ClassVariants.build(
10
+ base: "flex w-fit items-center rounded-md text-foreground"
11
+ )
12
+ end
13
+ end
data/lib/kiso/version.rb CHANGED
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kiso
2
- VERSION = "0.1.0.pre"
4
+ # @return [String] the current gem version
5
+ VERSION = "0.2.0.pre"
3
6
  end
data/lib/kiso.rb CHANGED
@@ -1,17 +1,85 @@
1
- require "tailwindcss-rails"
1
+ # frozen_string_literal: true
2
+
2
3
  require "class_variants"
3
4
  require "tailwind_merge"
4
5
  require "kiso/version"
6
+ require "kiso/configuration"
7
+ require "kiso/theme_overrides"
5
8
  require "kiso/engine"
9
+ require "kiso/themes/shared"
6
10
  require "kiso/themes/badge"
7
11
  require "kiso/themes/alert"
8
12
  require "kiso/themes/button"
9
13
  require "kiso/themes/card"
10
14
  require "kiso/themes/separator"
11
- require "kiso/themes/empty_state"
15
+ require "kiso/themes/empty"
12
16
  require "kiso/themes/stats_card"
13
17
  require "kiso/themes/table"
18
+ require "kiso/themes/pagination"
19
+ require "kiso/themes/label"
20
+ require "kiso/themes/field"
21
+ require "kiso/themes/field_group"
22
+ require "kiso/themes/field_set"
23
+ require "kiso/themes/input"
24
+ require "kiso/themes/textarea"
25
+ require "kiso/themes/input_group"
26
+ require "kiso/themes/input_otp"
27
+ require "kiso/themes/checkbox"
28
+ require "kiso/themes/radio_group"
29
+ require "kiso/themes/switch"
30
+ require "kiso/themes/breadcrumb"
31
+ require "kiso/themes/toggle"
32
+ require "kiso/themes/toggle_group"
33
+ require "kiso/themes/select"
34
+ require "kiso/themes/select_native"
35
+ require "kiso/themes/popover"
36
+ require "kiso/themes/combobox"
37
+ require "kiso/themes/command"
38
+ require "kiso/themes/dropdown_menu"
39
+ require "kiso/themes/kbd"
40
+ require "kiso/themes/color_mode_button"
41
+ require "kiso/themes/color_mode_select"
42
+ require "kiso/themes/dashboard"
43
+ require "kiso/themes/nav"
44
+ require "kiso/themes/avatar"
14
45
  require "kiso/icons"
15
46
 
47
+ # Kiso — a Rails engine providing UI components inspired by shadcn/ui and Nuxt UI.
48
+ #
49
+ # Components are rendered via ERB partials with computed Tailwind classes
50
+ # from theme modules ({Themes}). Use the {ComponentHelper#kui kui} helper
51
+ # to render components in views.
52
+ #
53
+ # @example Rendering a badge
54
+ # kui(:badge, color: :success, variant: :soft) { "Active" }
55
+ #
56
+ # @example Configuring icons
57
+ # Kiso.configure do |config|
58
+ # config.icons[:chevron_right] = "heroicons:chevron-right"
59
+ # end
60
+ #
61
+ # @example Global theme overrides
62
+ # Kiso.configure do |config|
63
+ # config.theme[:button] = { base: "rounded-full", defaults: { variant: :outline } }
64
+ # config.theme[:card_header] = { base: "p-8 sm:p-10" }
65
+ # end
66
+ #
67
+ # @see ComponentHelper#kui
68
+ # @see Themes
16
69
  module Kiso
70
+ class << self
71
+ # @return [Configuration] the global configuration instance
72
+ def configuration
73
+ @configuration ||= Configuration.new
74
+ end
75
+ alias_method :config, :configuration
76
+
77
+ # Yields the global {Configuration} for modification.
78
+ #
79
+ # @yieldparam config [Configuration]
80
+ # @return [void]
81
+ def configure
82
+ yield(configuration)
83
+ end
84
+ end
17
85
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kiso
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre
4
+ version: 0.2.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Clarke
@@ -23,20 +23,6 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '8.0'
26
- - !ruby/object:Gem::Dependency
27
- name: tailwindcss-rails
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0'
40
26
  - !ruby/object:Gem::Dependency
41
27
  name: class_variants
42
28
  requirement: !ruby/object:Gem::Requirement
@@ -94,30 +80,171 @@ files:
94
80
  - app/assets/fonts/kiso/GeistMonoVF.woff2
95
81
  - app/assets/fonts/kiso/GeistVF.woff2
96
82
  - app/assets/fonts/kiso/OFL.txt
83
+ - app/assets/tailwind/kiso/checkbox.css
84
+ - app/assets/tailwind/kiso/color-mode.css
85
+ - app/assets/tailwind/kiso/dashboard.css
97
86
  - app/assets/tailwind/kiso/engine.css
87
+ - app/assets/tailwind/kiso/input-otp.css
88
+ - app/assets/tailwind/kiso/radio-group.css
98
89
  - app/helpers/kiso/component_helper.rb
99
90
  - app/helpers/kiso/icon_helper.rb
91
+ - app/helpers/kiso/theme_helper.rb
92
+ - app/javascript/controllers/kiso/combobox_controller.js
93
+ - app/javascript/controllers/kiso/command_controller.js
94
+ - app/javascript/controllers/kiso/command_dialog_controller.js
95
+ - app/javascript/controllers/kiso/dropdown_menu_controller.js
96
+ - app/javascript/controllers/kiso/index.d.ts
97
+ - app/javascript/controllers/kiso/index.js
98
+ - app/javascript/controllers/kiso/input_otp_controller.js
99
+ - app/javascript/controllers/kiso/popover_controller.js
100
+ - app/javascript/controllers/kiso/select_controller.js
101
+ - app/javascript/controllers/kiso/sidebar_controller.js
102
+ - app/javascript/controllers/kiso/theme_controller.js
103
+ - app/javascript/controllers/kiso/toggle_controller.js
104
+ - app/javascript/controllers/kiso/toggle_group_controller.js
105
+ - app/javascript/kiso/utils/focusable.js
106
+ - app/javascript/kiso/utils/highlight.js
107
+ - app/javascript/kiso/utils/positioning.js
108
+ - app/javascript/kiso/vendor/floating-ui-core.js
109
+ - app/javascript/kiso/vendor/floating-ui-dom.js
100
110
  - app/views/kiso/components/_alert.html.erb
111
+ - app/views/kiso/components/_avatar.html.erb
101
112
  - app/views/kiso/components/_badge.html.erb
113
+ - app/views/kiso/components/_breadcrumb.html.erb
102
114
  - app/views/kiso/components/_button.html.erb
103
115
  - app/views/kiso/components/_card.html.erb
104
- - app/views/kiso/components/_empty_state.html.erb
116
+ - app/views/kiso/components/_checkbox.html.erb
117
+ - app/views/kiso/components/_color_mode_button.html.erb
118
+ - app/views/kiso/components/_color_mode_select.html.erb
119
+ - app/views/kiso/components/_combobox.html.erb
120
+ - app/views/kiso/components/_command.html.erb
121
+ - app/views/kiso/components/_dashboard_group.html.erb
122
+ - app/views/kiso/components/_dashboard_navbar.html.erb
123
+ - app/views/kiso/components/_dashboard_panel.html.erb
124
+ - app/views/kiso/components/_dashboard_sidebar.html.erb
125
+ - app/views/kiso/components/_dashboard_toolbar.html.erb
126
+ - app/views/kiso/components/_dropdown_menu.html.erb
127
+ - app/views/kiso/components/_empty.html.erb
128
+ - app/views/kiso/components/_field.html.erb
129
+ - app/views/kiso/components/_field_group.html.erb
130
+ - app/views/kiso/components/_field_set.html.erb
131
+ - app/views/kiso/components/_input.html.erb
132
+ - app/views/kiso/components/_input_group.html.erb
133
+ - app/views/kiso/components/_input_otp.html.erb
134
+ - app/views/kiso/components/_kbd.html.erb
135
+ - app/views/kiso/components/_label.html.erb
136
+ - app/views/kiso/components/_nav.html.erb
137
+ - app/views/kiso/components/_pagination.html.erb
138
+ - app/views/kiso/components/_popover.html.erb
139
+ - app/views/kiso/components/_radio_group.html.erb
140
+ - app/views/kiso/components/_select.html.erb
141
+ - app/views/kiso/components/_select_native.html.erb
105
142
  - app/views/kiso/components/_separator.html.erb
106
143
  - app/views/kiso/components/_stats_card.html.erb
107
144
  - app/views/kiso/components/_stats_grid.html.erb
145
+ - app/views/kiso/components/_switch.html.erb
108
146
  - app/views/kiso/components/_table.html.erb
147
+ - app/views/kiso/components/_textarea.html.erb
148
+ - app/views/kiso/components/_toggle.html.erb
149
+ - app/views/kiso/components/_toggle_group.html.erb
109
150
  - app/views/kiso/components/alert/_description.html.erb
110
151
  - app/views/kiso/components/alert/_title.html.erb
152
+ - app/views/kiso/components/avatar/_badge.html.erb
153
+ - app/views/kiso/components/avatar/_fallback.html.erb
154
+ - app/views/kiso/components/avatar/_group.html.erb
155
+ - app/views/kiso/components/avatar/_group_count.html.erb
156
+ - app/views/kiso/components/avatar/_image.html.erb
157
+ - app/views/kiso/components/breadcrumb/_ellipsis.html.erb
158
+ - app/views/kiso/components/breadcrumb/_item.html.erb
159
+ - app/views/kiso/components/breadcrumb/_link.html.erb
160
+ - app/views/kiso/components/breadcrumb/_list.html.erb
161
+ - app/views/kiso/components/breadcrumb/_page.html.erb
162
+ - app/views/kiso/components/breadcrumb/_separator.html.erb
163
+ - app/views/kiso/components/card/_action.html.erb
111
164
  - app/views/kiso/components/card/_content.html.erb
112
165
  - app/views/kiso/components/card/_description.html.erb
113
166
  - app/views/kiso/components/card/_footer.html.erb
114
167
  - app/views/kiso/components/card/_header.html.erb
115
168
  - app/views/kiso/components/card/_title.html.erb
116
- - app/views/kiso/components/empty_state/_content.html.erb
117
- - app/views/kiso/components/empty_state/_description.html.erb
118
- - app/views/kiso/components/empty_state/_header.html.erb
119
- - app/views/kiso/components/empty_state/_media.html.erb
120
- - app/views/kiso/components/empty_state/_title.html.erb
169
+ - app/views/kiso/components/combobox/_chip.html.erb
170
+ - app/views/kiso/components/combobox/_chips.html.erb
171
+ - app/views/kiso/components/combobox/_chips_input.html.erb
172
+ - app/views/kiso/components/combobox/_content.html.erb
173
+ - app/views/kiso/components/combobox/_empty.html.erb
174
+ - app/views/kiso/components/combobox/_group.html.erb
175
+ - app/views/kiso/components/combobox/_input.html.erb
176
+ - app/views/kiso/components/combobox/_item.html.erb
177
+ - app/views/kiso/components/combobox/_label.html.erb
178
+ - app/views/kiso/components/combobox/_list.html.erb
179
+ - app/views/kiso/components/combobox/_separator.html.erb
180
+ - app/views/kiso/components/command/_dialog.html.erb
181
+ - app/views/kiso/components/command/_empty.html.erb
182
+ - app/views/kiso/components/command/_group.html.erb
183
+ - app/views/kiso/components/command/_input.html.erb
184
+ - app/views/kiso/components/command/_item.html.erb
185
+ - app/views/kiso/components/command/_list.html.erb
186
+ - app/views/kiso/components/command/_separator.html.erb
187
+ - app/views/kiso/components/command/_shortcut.html.erb
188
+ - app/views/kiso/components/dashboard_navbar/_toggle.html.erb
189
+ - app/views/kiso/components/dashboard_sidebar/_collapse.html.erb
190
+ - app/views/kiso/components/dashboard_sidebar/_footer.html.erb
191
+ - app/views/kiso/components/dashboard_sidebar/_header.html.erb
192
+ - app/views/kiso/components/dashboard_sidebar/_toggle.html.erb
193
+ - app/views/kiso/components/dashboard_toolbar/_left.html.erb
194
+ - app/views/kiso/components/dashboard_toolbar/_right.html.erb
195
+ - app/views/kiso/components/dropdown_menu/_checkbox_item.html.erb
196
+ - app/views/kiso/components/dropdown_menu/_content.html.erb
197
+ - app/views/kiso/components/dropdown_menu/_group.html.erb
198
+ - app/views/kiso/components/dropdown_menu/_item.html.erb
199
+ - app/views/kiso/components/dropdown_menu/_label.html.erb
200
+ - app/views/kiso/components/dropdown_menu/_radio_group.html.erb
201
+ - app/views/kiso/components/dropdown_menu/_radio_item.html.erb
202
+ - app/views/kiso/components/dropdown_menu/_separator.html.erb
203
+ - app/views/kiso/components/dropdown_menu/_shortcut.html.erb
204
+ - app/views/kiso/components/dropdown_menu/_sub.html.erb
205
+ - app/views/kiso/components/dropdown_menu/_sub_content.html.erb
206
+ - app/views/kiso/components/dropdown_menu/_sub_trigger.html.erb
207
+ - app/views/kiso/components/dropdown_menu/_trigger.html.erb
208
+ - app/views/kiso/components/empty/_content.html.erb
209
+ - app/views/kiso/components/empty/_description.html.erb
210
+ - app/views/kiso/components/empty/_header.html.erb
211
+ - app/views/kiso/components/empty/_media.html.erb
212
+ - app/views/kiso/components/empty/_title.html.erb
213
+ - app/views/kiso/components/field/_content.html.erb
214
+ - app/views/kiso/components/field/_description.html.erb
215
+ - app/views/kiso/components/field/_error.html.erb
216
+ - app/views/kiso/components/field/_label.html.erb
217
+ - app/views/kiso/components/field/_separator.html.erb
218
+ - app/views/kiso/components/field/_title.html.erb
219
+ - app/views/kiso/components/field_set/_legend.html.erb
220
+ - app/views/kiso/components/input_group/_addon.html.erb
221
+ - app/views/kiso/components/input_otp/_group.html.erb
222
+ - app/views/kiso/components/input_otp/_separator.html.erb
223
+ - app/views/kiso/components/input_otp/_slot.html.erb
224
+ - app/views/kiso/components/kbd/_group.html.erb
225
+ - app/views/kiso/components/nav/_item.html.erb
226
+ - app/views/kiso/components/nav/_section.html.erb
227
+ - app/views/kiso/components/nav/_section_title.html.erb
228
+ - app/views/kiso/components/pagination/_content.html.erb
229
+ - app/views/kiso/components/pagination/_ellipsis.html.erb
230
+ - app/views/kiso/components/pagination/_item.html.erb
231
+ - app/views/kiso/components/pagination/_link.html.erb
232
+ - app/views/kiso/components/pagination/_next.html.erb
233
+ - app/views/kiso/components/pagination/_previous.html.erb
234
+ - app/views/kiso/components/popover/_anchor.html.erb
235
+ - app/views/kiso/components/popover/_content.html.erb
236
+ - app/views/kiso/components/popover/_description.html.erb
237
+ - app/views/kiso/components/popover/_header.html.erb
238
+ - app/views/kiso/components/popover/_title.html.erb
239
+ - app/views/kiso/components/popover/_trigger.html.erb
240
+ - app/views/kiso/components/radio_group/_item.html.erb
241
+ - app/views/kiso/components/select/_content.html.erb
242
+ - app/views/kiso/components/select/_group.html.erb
243
+ - app/views/kiso/components/select/_item.html.erb
244
+ - app/views/kiso/components/select/_label.html.erb
245
+ - app/views/kiso/components/select/_separator.html.erb
246
+ - app/views/kiso/components/select/_trigger.html.erb
247
+ - app/views/kiso/components/select/_value.html.erb
121
248
  - app/views/kiso/components/stats_card/_description.html.erb
122
249
  - app/views/kiso/components/stats_card/_header.html.erb
123
250
  - app/views/kiso/components/stats_card/_label.html.erb
@@ -129,21 +256,55 @@ files:
129
256
  - app/views/kiso/components/table/_head.html.erb
130
257
  - app/views/kiso/components/table/_header.html.erb
131
258
  - app/views/kiso/components/table/_row.html.erb
259
+ - app/views/kiso/components/toggle_group/_item.html.erb
260
+ - config/deploy.docs.yml
261
+ - config/deploy.yml
262
+ - config/importmap.rb
132
263
  - lib/kiso.rb
133
264
  - lib/kiso/cli.rb
134
265
  - lib/kiso/cli/base.rb
135
266
  - lib/kiso/cli/icons.rb
136
267
  - lib/kiso/cli/main.rb
137
268
  - lib/kiso/cli/make.rb
269
+ - lib/kiso/configuration.rb
138
270
  - lib/kiso/engine.rb
271
+ - lib/kiso/theme_overrides.rb
139
272
  - lib/kiso/themes/alert.rb
273
+ - lib/kiso/themes/avatar.rb
140
274
  - lib/kiso/themes/badge.rb
275
+ - lib/kiso/themes/breadcrumb.rb
141
276
  - lib/kiso/themes/button.rb
142
277
  - lib/kiso/themes/card.rb
143
- - lib/kiso/themes/empty_state.rb
278
+ - lib/kiso/themes/checkbox.rb
279
+ - lib/kiso/themes/color_mode_button.rb
280
+ - lib/kiso/themes/color_mode_select.rb
281
+ - lib/kiso/themes/combobox.rb
282
+ - lib/kiso/themes/command.rb
283
+ - lib/kiso/themes/dashboard.rb
284
+ - lib/kiso/themes/dropdown_menu.rb
285
+ - lib/kiso/themes/empty.rb
286
+ - lib/kiso/themes/field.rb
287
+ - lib/kiso/themes/field_group.rb
288
+ - lib/kiso/themes/field_set.rb
289
+ - lib/kiso/themes/input.rb
290
+ - lib/kiso/themes/input_group.rb
291
+ - lib/kiso/themes/input_otp.rb
292
+ - lib/kiso/themes/kbd.rb
293
+ - lib/kiso/themes/label.rb
294
+ - lib/kiso/themes/nav.rb
295
+ - lib/kiso/themes/pagination.rb
296
+ - lib/kiso/themes/popover.rb
297
+ - lib/kiso/themes/radio_group.rb
298
+ - lib/kiso/themes/select.rb
299
+ - lib/kiso/themes/select_native.rb
144
300
  - lib/kiso/themes/separator.rb
301
+ - lib/kiso/themes/shared.rb
145
302
  - lib/kiso/themes/stats_card.rb
303
+ - lib/kiso/themes/switch.rb
146
304
  - lib/kiso/themes/table.rb
305
+ - lib/kiso/themes/textarea.rb
306
+ - lib/kiso/themes/toggle.rb
307
+ - lib/kiso/themes/toggle_group.rb
147
308
  - lib/kiso/version.rb
148
309
  homepage: https://github.com/steveclarke/kiso
149
310
  licenses:
@@ -1,7 +0,0 @@
1
- <%# locals: (css_classes: "", **component_options) %>
2
- <%= content_tag :div,
3
- class: Kiso::Themes::EmptyStateContent.render(class: css_classes),
4
- data: { component: :empty_state, empty_state_part: :content },
5
- **component_options do %>
6
- <%= yield %>
7
- <% end %>
@@ -1,7 +0,0 @@
1
- <%# locals: (css_classes: "", **component_options) %>
2
- <%= content_tag :div,
3
- class: Kiso::Themes::EmptyStateDescription.render(class: css_classes),
4
- data: { component: :empty_state, empty_state_part: :description },
5
- **component_options do %>
6
- <%= yield %>
7
- <% end %>
@@ -1,7 +0,0 @@
1
- <%# locals: (css_classes: "", **component_options) %>
2
- <%= content_tag :div,
3
- class: Kiso::Themes::EmptyStateHeader.render(class: css_classes),
4
- data: { component: :empty_state, empty_state_part: :header },
5
- **component_options do %>
6
- <%= yield %>
7
- <% end %>
@@ -1,7 +0,0 @@
1
- <%# locals: (variant: :default, css_classes: "", **component_options) %>
2
- <%= content_tag :div,
3
- class: Kiso::Themes::EmptyStateMedia.render(variant: variant, class: css_classes),
4
- data: { component: :empty_state, empty_state_part: :media },
5
- **component_options do %>
6
- <%= yield %>
7
- <% end %>
@@ -1,7 +0,0 @@
1
- <%# locals: (css_classes: "", **component_options) %>
2
- <%= content_tag :div,
3
- class: Kiso::Themes::EmptyStateTitle.render(class: css_classes),
4
- data: { component: :empty_state, empty_state_part: :title },
5
- **component_options do %>
6
- <%= yield %>
7
- <% end %>