rails-active-ui 0.2.2 → 0.3.1

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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/datatables.css +15 -0
  3. data/app/assets/stylesheets.css +5 -1
  4. data/app/blocks/resource_list_block.rb +153 -0
  5. data/app/components/back_button_component.rb +34 -0
  6. data/app/components/button_component.rb +4 -2
  7. data/app/components/button_to_component.rb +3 -4
  8. data/app/components/column_component.rb +1 -1
  9. data/app/components/container_component.rb +1 -1
  10. data/app/components/dropdown_component.rb +8 -2
  11. data/app/components/grid_component.rb +5 -1
  12. data/app/components/link_to_component.rb +23 -0
  13. data/app/components/menu_item_component.rb +5 -1
  14. data/app/components/message_component.rb +3 -1
  15. data/app/components/modal_component.rb +23 -3
  16. data/app/components/paragraph_component.rb +13 -0
  17. data/app/components/row_component.rb +1 -1
  18. data/app/components/table_row_component.rb +3 -5
  19. data/app/components/template_component.rb +13 -0
  20. data/app/helpers/component_helper.rb +122 -76
  21. data/app/helpers/fui_helper.rb +37 -0
  22. data/app/javascript/datatables.js +10 -0
  23. data/app/javascript/ui/controllers/fui_datatable_controller.js +35 -0
  24. data/app/javascript/ui/controllers/fui_dropdown_controller.js +8 -1
  25. data/app/javascript/ui/controllers/fui_item_list_controller.js +40 -0
  26. data/app/javascript/ui/controllers/navigation_controller.js +23 -0
  27. data/app/javascript/ui/index.js +11 -0
  28. data/app/lib/component.rb +1 -1
  29. data/config/importmap.rb +3 -0
  30. data/config/initializers/ruby_template_handler.rb +4 -1
  31. data/formantic-ui/components/accordion.css +369 -0
  32. data/formantic-ui/components/accordion.js +595 -0
  33. data/formantic-ui/components/accordion.min.css +9 -0
  34. data/formantic-ui/components/accordion.min.js +11 -0
  35. data/formantic-ui/components/ad.css +264 -0
  36. data/formantic-ui/components/ad.min.css +10 -0
  37. data/formantic-ui/components/api.js +1225 -0
  38. data/formantic-ui/components/api.min.js +11 -0
  39. data/formantic-ui/components/breadcrumb.css +135 -0
  40. data/formantic-ui/components/breadcrumb.min.css +9 -0
  41. data/formantic-ui/components/button.css +4058 -0
  42. data/formantic-ui/components/button.min.css +9 -0
  43. data/formantic-ui/components/calendar.css +327 -0
  44. data/formantic-ui/components/calendar.js +2045 -0
  45. data/formantic-ui/components/calendar.min.css +9 -0
  46. data/formantic-ui/components/calendar.min.js +11 -0
  47. data/formantic-ui/components/card.css +1881 -0
  48. data/formantic-ui/components/card.min.css +9 -0
  49. data/formantic-ui/components/checkbox.css +785 -0
  50. data/formantic-ui/components/checkbox.js +888 -0
  51. data/formantic-ui/components/checkbox.min.css +9 -0
  52. data/formantic-ui/components/checkbox.min.js +11 -0
  53. data/formantic-ui/components/comment.css +283 -0
  54. data/formantic-ui/components/comment.min.css +9 -0
  55. data/formantic-ui/components/container.css +300 -0
  56. data/formantic-ui/components/container.min.css +9 -0
  57. data/formantic-ui/components/dimmer.css +367 -0
  58. data/formantic-ui/components/dimmer.js +732 -0
  59. data/formantic-ui/components/dimmer.min.css +9 -0
  60. data/formantic-ui/components/dimmer.min.js +11 -0
  61. data/formantic-ui/components/divider.css +287 -0
  62. data/formantic-ui/components/divider.min.css +9 -0
  63. data/formantic-ui/components/dropdown.css +2087 -0
  64. data/formantic-ui/components/dropdown.js +4432 -0
  65. data/formantic-ui/components/dropdown.min.css +9 -0
  66. data/formantic-ui/components/dropdown.min.js +11 -0
  67. data/formantic-ui/components/embed.css +155 -0
  68. data/formantic-ui/components/embed.js +688 -0
  69. data/formantic-ui/components/embed.min.css +9 -0
  70. data/formantic-ui/components/embed.min.js +11 -0
  71. data/formantic-ui/components/emoji.css +15311 -0
  72. data/formantic-ui/components/emoji.min.css +9 -0
  73. data/formantic-ui/components/feed.css +799 -0
  74. data/formantic-ui/components/feed.min.css +9 -0
  75. data/formantic-ui/components/flag.css +1149 -0
  76. data/formantic-ui/components/flag.min.css +9 -0
  77. data/formantic-ui/components/flyout.css +546 -0
  78. data/formantic-ui/components/flyout.js +1551 -0
  79. data/formantic-ui/components/flyout.min.css +9 -0
  80. data/formantic-ui/components/flyout.min.js +11 -0
  81. data/formantic-ui/components/form.css +1885 -0
  82. data/formantic-ui/components/form.js +2199 -0
  83. data/formantic-ui/components/form.min.css +9 -0
  84. data/formantic-ui/components/form.min.js +11 -0
  85. data/formantic-ui/components/grid.css +1952 -0
  86. data/formantic-ui/components/grid.min.css +9 -0
  87. data/formantic-ui/components/header.css +778 -0
  88. data/formantic-ui/components/header.min.css +9 -0
  89. data/formantic-ui/components/icon.css +7066 -0
  90. data/formantic-ui/components/icon.min.css +9 -0
  91. data/formantic-ui/components/image.css +315 -0
  92. data/formantic-ui/components/image.min.css +9 -0
  93. data/formantic-ui/components/input.css +1566 -0
  94. data/formantic-ui/components/input.min.css +9 -0
  95. data/formantic-ui/components/item.css +534 -0
  96. data/formantic-ui/components/item.min.css +9 -0
  97. data/formantic-ui/components/label.css +2114 -0
  98. data/formantic-ui/components/label.min.css +9 -0
  99. data/formantic-ui/components/list.css +955 -0
  100. data/formantic-ui/components/list.min.css +9 -0
  101. data/formantic-ui/components/loader.css +787 -0
  102. data/formantic-ui/components/loader.min.css +9 -0
  103. data/formantic-ui/components/menu.css +2131 -0
  104. data/formantic-ui/components/menu.min.css +9 -0
  105. data/formantic-ui/components/message.css +619 -0
  106. data/formantic-ui/components/message.min.css +9 -0
  107. data/formantic-ui/components/modal.css +779 -0
  108. data/formantic-ui/components/modal.js +1637 -0
  109. data/formantic-ui/components/modal.min.css +9 -0
  110. data/formantic-ui/components/modal.min.js +11 -0
  111. data/formantic-ui/components/nag.css +290 -0
  112. data/formantic-ui/components/nag.js +566 -0
  113. data/formantic-ui/components/nag.min.css +9 -0
  114. data/formantic-ui/components/nag.min.js +11 -0
  115. data/formantic-ui/components/placeholder.css +228 -0
  116. data/formantic-ui/components/placeholder.min.css +9 -0
  117. data/formantic-ui/components/popup.css +1184 -0
  118. data/formantic-ui/components/popup.js +1561 -0
  119. data/formantic-ui/components/popup.min.css +9 -0
  120. data/formantic-ui/components/popup.min.js +11 -0
  121. data/formantic-ui/components/progress.css +761 -0
  122. data/formantic-ui/components/progress.js +979 -0
  123. data/formantic-ui/components/progress.min.css +9 -0
  124. data/formantic-ui/components/progress.min.js +11 -0
  125. data/formantic-ui/components/rail.css +147 -0
  126. data/formantic-ui/components/rail.min.css +9 -0
  127. data/formantic-ui/components/rating.css +414 -0
  128. data/formantic-ui/components/rating.js +540 -0
  129. data/formantic-ui/components/rating.min.css +9 -0
  130. data/formantic-ui/components/rating.min.js +11 -0
  131. data/formantic-ui/components/reset.css +386 -0
  132. data/formantic-ui/components/reset.min.css +9 -0
  133. data/formantic-ui/components/reveal.css +277 -0
  134. data/formantic-ui/components/reveal.min.css +9 -0
  135. data/formantic-ui/components/search.css +541 -0
  136. data/formantic-ui/components/search.js +1641 -0
  137. data/formantic-ui/components/search.min.css +9 -0
  138. data/formantic-ui/components/search.min.js +11 -0
  139. data/formantic-ui/components/segment.css +1053 -0
  140. data/formantic-ui/components/segment.min.css +9 -0
  141. data/formantic-ui/components/shape.css +144 -0
  142. data/formantic-ui/components/shape.js +797 -0
  143. data/formantic-ui/components/shape.min.css +9 -0
  144. data/formantic-ui/components/shape.min.js +11 -0
  145. data/formantic-ui/components/sidebar.css +539 -0
  146. data/formantic-ui/components/sidebar.js +1054 -0
  147. data/formantic-ui/components/sidebar.min.css +9 -0
  148. data/formantic-ui/components/sidebar.min.js +11 -0
  149. data/formantic-ui/components/site.css +286 -0
  150. data/formantic-ui/components/site.js +455 -0
  151. data/formantic-ui/components/site.min.css +9 -0
  152. data/formantic-ui/components/site.min.js +11 -0
  153. data/formantic-ui/components/slider.css +926 -0
  154. data/formantic-ui/components/slider.js +1546 -0
  155. data/formantic-ui/components/slider.min.css +9 -0
  156. data/formantic-ui/components/slider.min.js +11 -0
  157. data/formantic-ui/components/state.js +697 -0
  158. data/formantic-ui/components/state.min.js +11 -0
  159. data/formantic-ui/components/statistic.css +586 -0
  160. data/formantic-ui/components/statistic.min.css +9 -0
  161. data/formantic-ui/components/step.css +1538 -0
  162. data/formantic-ui/components/step.min.css +9 -0
  163. data/formantic-ui/components/sticky.css +73 -0
  164. data/formantic-ui/components/sticky.js +917 -0
  165. data/formantic-ui/components/sticky.min.css +9 -0
  166. data/formantic-ui/components/sticky.min.js +11 -0
  167. data/formantic-ui/components/tab.css +84 -0
  168. data/formantic-ui/components/tab.js +967 -0
  169. data/formantic-ui/components/tab.min.css +9 -0
  170. data/formantic-ui/components/tab.min.js +11 -0
  171. data/formantic-ui/components/table.css +3473 -0
  172. data/formantic-ui/components/table.min.css +9 -0
  173. data/formantic-ui/components/text.css +155 -0
  174. data/formantic-ui/components/text.min.css +9 -0
  175. data/formantic-ui/components/toast.css +751 -0
  176. data/formantic-ui/components/toast.js +964 -0
  177. data/formantic-ui/components/toast.min.css +9 -0
  178. data/formantic-ui/components/toast.min.js +11 -0
  179. data/formantic-ui/components/transition.css +1148 -0
  180. data/formantic-ui/components/transition.js +1034 -0
  181. data/formantic-ui/components/transition.min.css +9 -0
  182. data/formantic-ui/components/transition.min.js +11 -0
  183. data/formantic-ui/components/visibility.js +1292 -0
  184. data/formantic-ui/components/visibility.min.js +11 -0
  185. data/formantic-ui/semantic.css +78485 -0
  186. data/formantic-ui/semantic.js +31036 -0
  187. data/formantic-ui/semantic.min.css +11 -0
  188. data/formantic-ui/semantic.min.js +11 -0
  189. data/formantic-ui/themes/basic/assets/fonts/LICENSE.txt +91 -0
  190. data/formantic-ui/themes/basic/assets/fonts/icons.woff +0 -0
  191. data/formantic-ui/themes/basic/assets/fonts/icons.woff2 +0 -0
  192. data/formantic-ui/themes/default/assets/fonts/LICENSE_Lato.txt +94 -0
  193. data/formantic-ui/themes/default/assets/fonts/LICENSE_icons.txt +165 -0
  194. data/formantic-ui/themes/default/assets/fonts/Lato-Bold.woff +0 -0
  195. data/formantic-ui/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
  196. data/formantic-ui/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
  197. data/formantic-ui/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  198. data/formantic-ui/themes/default/assets/fonts/Lato-Italic.woff +0 -0
  199. data/formantic-ui/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
  200. data/formantic-ui/themes/default/assets/fonts/Lato-Regular.woff +0 -0
  201. data/formantic-ui/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
  202. data/formantic-ui/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  203. data/formantic-ui/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  204. data/formantic-ui/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
  205. data/formantic-ui/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
  206. data/formantic-ui/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
  207. data/formantic-ui/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
  208. data/formantic-ui/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  209. data/formantic-ui/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  210. data/formantic-ui/themes/default/assets/fonts/brand-icons.woff +0 -0
  211. data/formantic-ui/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  212. data/formantic-ui/themes/default/assets/fonts/icons.woff +0 -0
  213. data/formantic-ui/themes/default/assets/fonts/icons.woff2 +0 -0
  214. data/formantic-ui/themes/default/assets/fonts/outline-icons.woff +0 -0
  215. data/formantic-ui/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  216. data/formantic-ui/themes/famfamfam/assets/images/flags.png +0 -0
  217. data/formantic-ui/themes/github/assets/fonts/LICENSE.txt +94 -0
  218. data/formantic-ui/themes/github/assets/fonts/octicons.woff +0 -0
  219. data/formantic-ui/themes/github/assets/fonts/octicons.woff2 +0 -0
  220. data/formantic-ui/themes/material/assets/fonts/LICENSE.txt +202 -0
  221. data/formantic-ui/themes/material/assets/fonts/icons.woff +0 -0
  222. data/formantic-ui/themes/material/assets/fonts/icons.woff2 +0 -0
  223. data/lib/ui/engine.rb +7 -2
  224. data/lib/ui/version.rb +1 -1
  225. metadata +205 -7
  226. data/app/components/link_component.rb +0 -23
@@ -18,6 +18,7 @@ export default class extends Controller {
18
18
  static values = {
19
19
  clearable: { type: Boolean, default: false },
20
20
  placeholder: { type: String, default: "" },
21
+ action: { type: String, default: "" },
21
22
  forceSelection: { type: Boolean, default: false },
22
23
  fullTextSearch: { type: Boolean, default: false },
23
24
  duration: { type: Number, default: 200 },
@@ -45,7 +46,7 @@ export default class extends Controller {
45
46
  // -- Private --
46
47
 
47
48
  _options() {
48
- return {
49
+ const options = {
49
50
  clearable: this.clearableValue,
50
51
  placeholder: this.placeholderValue || false,
51
52
  forceSelection: this.forceSelectionValue,
@@ -64,5 +65,11 @@ export default class extends Controller {
64
65
  this.dispatch("remove", { detail: { value: removedValue, text: removedText } })
65
66
  },
66
67
  }
68
+
69
+ if (this.actionValue) {
70
+ options.action = this.actionValue
71
+ }
72
+
73
+ return options
67
74
  }
68
75
  }
@@ -0,0 +1,40 @@
1
+ import { Controller } from "@hotwired/stimulus"
2
+
3
+ // Generic list-item selection controller.
4
+ //
5
+ // Mark clickable items with:
6
+ // - data-fui-item-list-target="item"
7
+ // - data-item-id="123"
8
+ //
9
+ // Wire click on link/card with:
10
+ // - data-action="click->fui-item-list#select"
11
+ export default class extends Controller {
12
+ static targets = ["item"]
13
+ static values = { selectedId: { type: Number, default: 0 } }
14
+
15
+ connect() {
16
+ this.#applySelected()
17
+ }
18
+
19
+ select(event) {
20
+ const card =
21
+ event.target.closest("[data-item-id]") ||
22
+ event.currentTarget?.closest?.("[data-item-id]") ||
23
+ event.currentTarget?.querySelector?.("[data-item-id]")
24
+
25
+ if (card) {
26
+ this.selectedIdValue = parseInt(card.dataset.itemId, 10) || 0
27
+ }
28
+ }
29
+
30
+ selectedIdValueChanged() {
31
+ this.#applySelected()
32
+ }
33
+
34
+ #applySelected() {
35
+ this.itemTargets.forEach((item) => {
36
+ const id = parseInt(item.dataset.itemId, 10) || 0
37
+ item.classList.toggle("active", id === this.selectedIdValue)
38
+ })
39
+ }
40
+ }
@@ -0,0 +1,23 @@
1
+ import { Controller } from "@hotwired/stimulus"
2
+
3
+ // Navigation back controller.
4
+ //
5
+ // If there is Turbo history to restore, prevent normal navigation and go back.
6
+ // Otherwise fallback to link href.
7
+ export default class extends Controller {
8
+ back(event) {
9
+ if (this.#shouldRestore) {
10
+ event.preventDefault()
11
+ window.history.back()
12
+ }
13
+ }
14
+
15
+ get #shouldRestore() {
16
+ return !this.#isFirstHistoryEntry
17
+ }
18
+
19
+ get #isFirstHistoryEntry() {
20
+ const state = window.history.state
21
+ return !state || !state.turbo || state.turbo.restorationIndex === 0
22
+ }
23
+ }
@@ -50,6 +50,11 @@ import FuiApiController from "ui/controllers/fui_api_controller"
50
50
  import FuiStateController from "ui/controllers/fui_state_controller"
51
51
  import FuiVisibilityController from "ui/controllers/fui_visibility_controller"
52
52
  import FuiEmojiPickerController from "ui/controllers/fui_emoji_picker_controller"
53
+ import NavigationController from "ui/controllers/navigation_controller"
54
+
55
+ // DataTables
56
+ import FuiDatatableController from "ui/controllers/fui_datatable_controller"
57
+ import FuiItemListController from "ui/controllers/fui_item_list_controller"
53
58
 
54
59
  const controllers = {
55
60
  "fui-site": FuiSiteController,
@@ -78,6 +83,9 @@ const controllers = {
78
83
  "fui-state": FuiStateController,
79
84
  "fui-visibility": FuiVisibilityController,
80
85
  "fui-emoji-picker": FuiEmojiPickerController,
86
+ "fui-datatable": FuiDatatableController,
87
+ "fui-item-list": FuiItemListController,
88
+ "navigation": NavigationController,
81
89
  }
82
90
 
83
91
  export function registerFuiControllers(application) {
@@ -114,4 +122,7 @@ export {
114
122
  FuiStateController,
115
123
  FuiVisibilityController,
116
124
  FuiEmojiPickerController,
125
+ FuiDatatableController,
126
+ FuiItemListController,
127
+ NavigationController,
117
128
  }
data/app/lib/component.rb CHANGED
@@ -14,7 +14,7 @@ class Component
14
14
  include ActiveModel::Attributes
15
15
 
16
16
  # HTML pass-through keys that bypass ActiveModel attributes
17
- HTML_OPTIONS = %i[id class data style role tabindex title aria].to_set.freeze
17
+ HTML_OPTIONS = %i[id class data style role tabindex title aria target rel].to_set.freeze
18
18
 
19
19
  class_attribute :slot_names, default: []
20
20
 
data/config/importmap.rb CHANGED
@@ -26,5 +26,8 @@ pin "ui/controllers/fui_toast_controller", to: "ui/controllers/fui_toast_control
26
26
  pin "ui/controllers/fui_transition_controller", to: "ui/controllers/fui_transition_controller.js"
27
27
  pin "ui/controllers/fui_visibility_controller", to: "ui/controllers/fui_visibility_controller.js"
28
28
  pin "ui/controllers/fui_emoji_picker_controller", to: "ui/controllers/fui_emoji_picker_controller.js"
29
+ pin "ui/controllers/fui_datatable_controller", to: "ui/controllers/fui_datatable_controller.js"
30
+ pin "ui/controllers/fui_item_list_controller", to: "ui/controllers/fui_item_list_controller.js"
31
+ pin "ui/controllers/navigation_controller", to: "ui/controllers/navigation_controller.js"
29
32
 
30
33
  pin "emoji-picker-element", to: "https://cdn.jsdelivr.net/npm/emoji-picker-element@^1/index.js"
@@ -26,6 +26,9 @@ ActionView::Template.register_template_handler :ruby, ->(template, source) {
26
26
  output_buffer
27
27
  RUBY
28
28
  else
29
- "#{source}\noutput_buffer"
29
+ <<~RUBY
30
+ #{source}
31
+ output_buffer
32
+ RUBY
30
33
  end
31
34
  }
@@ -0,0 +1,369 @@
1
+ /*!
2
+ * # Fomantic-UI 2.9.4 - Accordion
3
+ * https://github.com/fomantic/Fomantic-UI/
4
+ *
5
+ *
6
+ * Released under the MIT license
7
+ * https://opensource.org/licenses/MIT
8
+ *
9
+ */
10
+
11
+
12
+ /*******************************
13
+ Accordion
14
+ *******************************/
15
+
16
+ .ui.accordion,
17
+ .ui.accordion .accordion {
18
+ max-width: 100%;
19
+ }
20
+ .ui.accordion .accordion {
21
+ margin: 1em 0 0;
22
+ padding: 0;
23
+ }
24
+
25
+ /* Title */
26
+ .ui.accordion.menu .item > .title,
27
+ .ui.accordion > .title,
28
+ .ui.accordion .accordion > .title {
29
+ cursor: pointer;
30
+ padding: 0.5em 0;
31
+ font-family: "Lato", system-ui, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
32
+ font-size: 1em;
33
+ color: rgba(0, 0, 0, 0.87);
34
+ list-style: none;
35
+ line-height: 1;
36
+ }
37
+
38
+ /* Default Styling */
39
+ .ui.accordion:not(.styled) .title ~ .content,
40
+ .ui.accordion:not(.styled) .accordion .title ~ .content {
41
+ margin: "";
42
+ padding: 0.5em 0 1em;
43
+ }
44
+ .ui.accordion:not(.styled) .title ~ .content:last-child {
45
+ padding-bottom: 0;
46
+ }
47
+
48
+ /* Arrow */
49
+ .ui.accordion .ui.header > .dropdown.icon,
50
+ .ui.accordion .title > .dropdown.icon,
51
+ .ui.accordion .accordion .title > .dropdown.icon {
52
+ display: inline-block;
53
+ float: none;
54
+ opacity: 1;
55
+ width: 1.25em;
56
+ height: 1em;
57
+ margin: 0 0.25rem 0 0;
58
+ padding: 0;
59
+ font-size: 1em;
60
+ transition: transform 0.1s ease, opacity 0.1s ease;
61
+ vertical-align: baseline;
62
+ transform: none;
63
+ }
64
+ .ui.accordion .ui.header > .dropdown.icon.right,
65
+ .ui.accordion .title > .dropdown.icon.right,
66
+ .ui.accordion .accordion .title > .dropdown.icon.right {
67
+ float: right;
68
+ transform: rotate(180deg);
69
+ }
70
+
71
+ /* --------------
72
+ Coupling
73
+ --------------- */
74
+
75
+ /* Menu */
76
+ .ui.accordion.menu .item .title {
77
+ display: block;
78
+ padding: 0;
79
+ }
80
+ .ui.accordion.menu .item .title > .dropdown.icon {
81
+ float: right;
82
+ margin: 0 0.25rem 0 0;
83
+ transform: rotate(180deg);
84
+ }
85
+
86
+ /* Header */
87
+ .ui.accordion .ui.header > .dropdown.icon {
88
+ font-size: 1em;
89
+ margin: 0 0.25rem 0 0;
90
+ }
91
+
92
+
93
+ /*******************************
94
+ States
95
+ *******************************/
96
+
97
+ .ui.accordion[open] > .title > .dropdown.icon,
98
+ .ui.accordion .accordion[open] > .title > .dropdown.icon,
99
+ .ui.accordion .active.title > .dropdown.icon,
100
+ .ui.accordion .accordion .active.title > .dropdown.icon {
101
+ transform: rotate(90deg);
102
+ }
103
+ .ui.accordion.menu .item .active.title > .dropdown.icon {
104
+ transform: rotate(90deg);
105
+ }
106
+
107
+
108
+ /*******************************
109
+ Types
110
+ *******************************/
111
+
112
+
113
+ /* --------------
114
+ Styled
115
+ --------------- */
116
+ .ui.styled.accordion {
117
+ width: 600px;
118
+ }
119
+ .ui.styled.accordion,
120
+ .ui.styled.accordion .accordion {
121
+ border-radius: 0.28571429rem;
122
+ background: #fff;
123
+ box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15);
124
+ }
125
+ .ui.styled.accordion > .title,
126
+ .ui.styled.accordion .accordion > .title {
127
+ margin: 0;
128
+ padding: 0.75em 1em;
129
+ color: rgba(0, 0, 0, 0.4);
130
+ font-weight: bold;
131
+ border-top: 1px solid rgba(34, 36, 38, 0.15);
132
+ transition: background 0.1s ease, color 0.1s ease;
133
+ }
134
+ .ui.styled.accordion > .title:first-child,
135
+ .ui.styled.accordion .accordion > .title:first-child {
136
+ border-top: none;
137
+ }
138
+
139
+ /* Content */
140
+ .ui.styled.accordion > .content {
141
+ margin: 0;
142
+ padding: 0.5em 1em 1.5em;
143
+ }
144
+ .ui.styled.accordion .accordion > .content {
145
+ margin: 0;
146
+ padding: 0.5em 1em 1.5em;
147
+ }
148
+
149
+ /* Hover */
150
+ .ui.styled.accordion > .title:hover {
151
+ background: transparent;
152
+ color: rgba(0, 0, 0, 0.87);
153
+ }
154
+ .ui.styled.accordion .accordion > .title:hover {
155
+ background: transparent;
156
+ color: rgba(0, 0, 0, 0.87);
157
+ }
158
+
159
+ /* Active */
160
+ .ui.styled.accordion[open] > .title,
161
+ .ui.styled.accordion .active.title {
162
+ background: transparent;
163
+ color: rgba(0, 0, 0, 0.95);
164
+ }
165
+ .ui.styled.accordion .accordion[open] > .title,
166
+ .ui.styled.accordion .accordion .active.title {
167
+ background: transparent;
168
+ color: rgba(0, 0, 0, 0.95);
169
+ }
170
+
171
+ /* --------------
172
+ Compact
173
+ --------------- */
174
+
175
+ /* Default Styling */
176
+ .ui.compact.accordion:not(.styled) > .title,
177
+ .ui.compact.accordion:not(.styled) .accordion > .title {
178
+ padding: 0.25em 0;
179
+ }
180
+ .ui.compact.accordion:not(.styled) .title ~ .content,
181
+ .ui.compact.accordion:not(.styled) .accordion .title ~ .content {
182
+ padding: 0.25em 0 0.5em;
183
+ }
184
+
185
+ /* Styled */
186
+ .ui.compact.styled.accordion > .title,
187
+ .ui.compact.styled.accordion .accordion > .title {
188
+ padding: 0.375em 0.5em;
189
+ }
190
+ .ui.compact.styled.accordion .title ~ .content,
191
+ .ui.compact.styled.accordion .accordion .title ~ .content {
192
+ padding: 0.25em 0.5em 0.75em;
193
+ }
194
+
195
+ /* --------------
196
+ Very Compact
197
+ --------------- */
198
+ .ui[class*="very compact"].accordion:not(.styled) > .title,
199
+ .ui[class*="very compact"].accordion:not(.styled) .accordion > .title {
200
+ padding: 0.125em 0;
201
+ }
202
+ .ui[class*="very compact"].accordion:not(.styled) .title ~ .content,
203
+ .ui[class*="very compact"].accordion:not(.styled) .accordion .title ~ .content {
204
+ padding: 0.125em 0 0.25em;
205
+ }
206
+ .ui[class*="very compact"].styled.accordion > .title,
207
+ .ui[class*="very compact"].styled.accordion .accordion > .title {
208
+ padding: 0.1875em 0.25em;
209
+ }
210
+ .ui[class*="very compact"].styled.accordion .title ~ .content,
211
+ .ui[class*="very compact"].styled.accordion .accordion .title ~ .content {
212
+ padding: 0.125em 0.25em 0.375em;
213
+ }
214
+
215
+
216
+ /*******************************
217
+ States
218
+ *******************************/
219
+
220
+
221
+ /* --------------
222
+ Not Active
223
+ --------------- */
224
+ .ui.accordion:not(details) .title ~ .content:not(.active),
225
+ .ui.accordion .accordion:not(details) .title ~ .content:not(.active) {
226
+ display: none;
227
+ }
228
+
229
+
230
+ /*******************************
231
+ Variations
232
+ *******************************/
233
+
234
+
235
+ /* --------------
236
+ Fluid
237
+ --------------- */
238
+ .ui.fluid.accordion,
239
+ .ui.fluid.accordion .accordion {
240
+ width: 100%;
241
+ }
242
+
243
+ /* --------------
244
+ Inverted
245
+ --------------- */
246
+ .ui.inverted.accordion.menu .item > .title,
247
+ .ui.inverted.accordion > .title,
248
+ .ui.inverted.accordion .accordion > .title {
249
+ color: rgba(255, 255, 255, 0.9);
250
+ }
251
+ .ui.inverted.styled.accordion,
252
+ .ui.inverted.styled.accordion .accordion {
253
+ background: #1b1c1d;
254
+ box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1);
255
+ }
256
+ .ui.inverted.styled.accordion > .title,
257
+ .ui.inverted.styled.accordion .accordion > .title {
258
+ color: rgba(255, 255, 255, 0.5);
259
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
260
+ }
261
+
262
+ /* Hover */
263
+ .ui.inverted.styled.accordion > .title:hover {
264
+ background: transparent;
265
+ color: rgba(255, 255, 255, 0.9);
266
+ }
267
+ .ui.inverted.styled.accordion .accordion > .title:hover {
268
+ background: transparent;
269
+ color: rgba(255, 255, 255, 0.9);
270
+ }
271
+
272
+ /* Active */
273
+ .ui.inverted.styled.accordion[open] > .title,
274
+ .ui.inverted.styled.accordion .active.title {
275
+ background: transparent;
276
+ color: #ffffff;
277
+ }
278
+ .ui.inverted.styled.accordion .accordion[open] > .title,
279
+ .ui.inverted.styled.accordion .accordion .active.title {
280
+ background: transparent;
281
+ color: #ffffff;
282
+ }
283
+ .ui.basic.styled.accordion,
284
+ .ui.basic.styled.accordion .accordion {
285
+ background: transparent;
286
+ box-shadow: none;
287
+ }
288
+ .ui.basic.styled.accordion > .title,
289
+ .ui.basic.styled.accordion .accordion > .title {
290
+ border: none;
291
+ color: rgba(0, 0, 0, 0.6);
292
+ }
293
+ .ui.basic.styled.accordion > .title:hover,
294
+ .ui.basic.styled.accordion .accordion > .title:hover {
295
+ background: transparent;
296
+ color: rgba(0, 0, 0, 0.87);
297
+ }
298
+ .ui.basic.styled.accordion[open] > .title,
299
+ .ui.basic.styled.accordion .active.title,
300
+ .ui.basic.styled.accordion .accordion[open] > .title,
301
+ .ui.basic.styled.accordion .accordion .active.title {
302
+ background: transparent;
303
+ color: rgba(0, 0, 0, 0.95);
304
+ }
305
+ .ui.inverted.basic.styled.accordion > .title,
306
+ .ui.inverted.basic.styled.accordion .accordion > .title {
307
+ background: transparent;
308
+ color: rgba(255, 255, 255, 0.8);
309
+ }
310
+ .ui.inverted.basic.styled.accordion > .title:hover,
311
+ .ui.inverted.basic.styled.accordion .accordion > .title:hover {
312
+ background: transparent;
313
+ color: rgba(255, 255, 255, 0.9);
314
+ }
315
+ .ui.inverted.basic.styled.accordion[open] > .title,
316
+ .ui.inverted.basic.styled.accordion .active.title,
317
+ .ui.inverted.basic.styled.accordion .accordion[open] > .title,
318
+ .ui.inverted.basic.styled.accordion .accordion .active.title {
319
+ background: transparent;
320
+ color: #ffffff;
321
+ }
322
+ .ui.tree.accordion:not(.styled) .title ~ .content,
323
+ .ui.tree.accordion:not(.styled) .accordion .title ~ .content {
324
+ padding: 0;
325
+ }
326
+ .ui.tree.accordion > .content,
327
+ .ui.tree.accordion .accordion > .content {
328
+ margin-left: 1.7em;
329
+ }
330
+ .ui.tree.accordion .accordion {
331
+ margin-top: 0;
332
+ }
333
+
334
+
335
+ /*******************************
336
+ Theme Overrides
337
+ *******************************/
338
+
339
+ @font-face {
340
+ font-family: Accordion;
341
+ src: url("data:application/font-woff;base64,d09GRk9UVE8AAAREAAsAAAAABkAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAC7AAAAQoAAAE/j/fxwUZGVE0AAAQUAAAAHAAAAByNqvxQR0RFRgAAA/gAAAAcAAAAIAAnABhPUy8yAAABYAAAAEIAAABgTadW5mNtYXAAAAKMAAAAUQAAAWAFZuKDaGVhZAAAAQgAAAAyAAAANg8zT8toaGVhAAABPAAAABoAAAAkApkA5mhtdHgAAAQwAAAAEwAAABYBtwASbWF4cAAAAVgAAAAGAAAABgAGUABuYW1lAAABpAAAAOYAAAGq/HAhWXBvc3QAAALgAAAADAAAACAAAwAAeJxjYGRgYADi8KWRsvH8Nl8ZuJkYQOD838XvQPT9hGxNIOXJsJ0xD0hzMIClARzsCcoAAHicY2BkYGB88P8BkGQAg+0wBhywAgBgjgOAAAAAAFAAAAYAAHicY2BmOM84gYGVgYHRhzGNgYHBHUp/ZZBkaGFABYwCSJyANNcUBgcGhg+3GB/8fwCUfMCgAFIDV6AAhIwARVcMJwAAeJx1jrFOwzAURU/SNKgFIVgQ6uSRKWolZjaQOnQBqQNb2lpRpMqW3HTowhew8U9I/BU37WOjtmyfd/3utYEbvsn4G7lxRsmtcc4FD8YD6U/GhfjNeMglybjU/DQeM+FHrqwY2QsnzrgSnTjnmnvjgfSpcSF+Nh5yx7txKf3DeMwjX31soqajJdCoqLs26HzFq9yz1WVS6Zv9tk5nmv8Vl0pI7CRHXThmVPofS592bQxuVk3PGF+Ohk6WRhHhGNO3eTbSVhy0z1mra6HV91YyxdC5xgevFL9xq4Obr+MixlDxC/HTOrsAAHicY2BgYGaAYBkGRgYQiALyGMF8FgY7IM3FwMHABISMDAofbv3/+/8/WJXCh5tgNuP/x2A+RC8bUC0DUB8rWIgNiJkY8AJm/NJDHgAALqoOxgAAAHicY2BmwAsAAH0ABHicPY7BSsNAEIZnkk2zlhg1JKAYxOrJi6RepMdC8SKefAJP4kVBzCtkNw7ZjeK1j9C38Rn6CO5CDrppigwMM8P/f/8gMAaIGL4+vD09PwJ6gLCwp2AnaM88e+7bQ0aRTxE7GcPRffJL9D9EIX2bW+sFOXzu5QD7OSwPcuA5Xiew05N8CIDDLiSQuTqGSVmU0/KqKG+Kxaxv8+llMURvHwBAgRJrfEeCEaLns9HdRxzHP/FqaV4yaptWK25SkwZKu4Va0rUSWjYVVbz7CqmqhZBSiNodqGqk5l2vFqrW1PJ4tWbGqZxVKa31htA6gmN2aTBwBobzuYsU1YYkGheyZVBqLjKKxn8cSmvuAAB4nGNgZGBg4AFiAQYJBiYgzQLEIJoRggEFbQBAAAAAAQAAAADeTO04AAAAAM/9o+4AAAAA32BrKXicY2BAAEYQsZ1BiIEBAAPpAMsA") format("woff");
342
+ font-weight: normal;
343
+ font-style: normal;
344
+ }
345
+
346
+ /* Dropdown Icon */
347
+ .ui.accordion .ui.header > .dropdown.icon,
348
+ .ui.accordion .title > .dropdown.icon,
349
+ .ui.accordion .accordion .title > .dropdown.icon {
350
+ font-family: Accordion;
351
+ line-height: 1;
352
+ -webkit-backface-visibility: hidden;
353
+ backface-visibility: hidden;
354
+ font-weight: normal;
355
+ font-style: normal;
356
+ text-align: center;
357
+ }
358
+ .ui.accordion .ui.header > .dropdown.icon::before,
359
+ .ui.accordion .title > .dropdown.icon::before,
360
+ .ui.accordion .accordion .title > .dropdown.icon::before {
361
+ content: "\f0da"
362
+ /* rtl: "\f0d9" */;
363
+ }
364
+
365
+
366
+ /*******************************
367
+ User Overrides
368
+ *******************************/
369
+