rails-active-ui 0.1.0

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 (167) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +6 -0
  3. data/app/assets/stylesheets.css +73555 -0
  4. data/app/components/accordion_component.rb +34 -0
  5. data/app/components/ad_component.rb +28 -0
  6. data/app/components/api_component.rb +24 -0
  7. data/app/components/breadcrumb_component.rb +26 -0
  8. data/app/components/button_component.rb +49 -0
  9. data/app/components/calendar_component.rb +34 -0
  10. data/app/components/card_component.rb +56 -0
  11. data/app/components/checkbox_component.rb +41 -0
  12. data/app/components/column_component.rb +62 -0
  13. data/app/components/comment_component.rb +45 -0
  14. data/app/components/concerns/alignable.rb +21 -0
  15. data/app/components/concerns/attachable.rb +16 -0
  16. data/app/components/concerns/orientable.rb +21 -0
  17. data/app/components/concerns/positionable.rb +21 -0
  18. data/app/components/concerns/sizeable.rb +18 -0
  19. data/app/components/container_component.rb +23 -0
  20. data/app/components/dimmer_component.rb +30 -0
  21. data/app/components/divider_component.rb +30 -0
  22. data/app/components/dropdown_component.rb +63 -0
  23. data/app/components/embed_component.rb +32 -0
  24. data/app/components/emoji_component.rb +15 -0
  25. data/app/components/feed_component.rb +22 -0
  26. data/app/components/flag_component.rb +15 -0
  27. data/app/components/flyout_component.rb +41 -0
  28. data/app/components/form_component.rb +39 -0
  29. data/app/components/grid_component.rb +85 -0
  30. data/app/components/h_stack_component.rb +67 -0
  31. data/app/components/header_component.rb +60 -0
  32. data/app/components/icon_component.rb +41 -0
  33. data/app/components/image_component.rb +46 -0
  34. data/app/components/input_component.rb +52 -0
  35. data/app/components/item_component.rb +39 -0
  36. data/app/components/item_group_component.rb +30 -0
  37. data/app/components/label_component.rb +49 -0
  38. data/app/components/link_component.rb +23 -0
  39. data/app/components/list_component.rb +39 -0
  40. data/app/components/loader_component.rb +33 -0
  41. data/app/components/menu_component.rb +64 -0
  42. data/app/components/menu_item_component.rb +52 -0
  43. data/app/components/message_component.rb +54 -0
  44. data/app/components/modal_component.rb +50 -0
  45. data/app/components/nag_component.rb +25 -0
  46. data/app/components/overlay_component.rb +16 -0
  47. data/app/components/placeholder_component.rb +39 -0
  48. data/app/components/popup_component.rb +31 -0
  49. data/app/components/progress_component.rb +48 -0
  50. data/app/components/pusher_component.rb +18 -0
  51. data/app/components/rail_component.rb +31 -0
  52. data/app/components/rating_component.rb +41 -0
  53. data/app/components/reset_component.rb +12 -0
  54. data/app/components/reveal_component.rb +39 -0
  55. data/app/components/row_component.rb +39 -0
  56. data/app/components/search_component.rb +44 -0
  57. data/app/components/segment_component.rb +57 -0
  58. data/app/components/segment_group_component.rb +36 -0
  59. data/app/components/shape_component.rb +25 -0
  60. data/app/components/sidebar_component.rb +33 -0
  61. data/app/components/site_component.rb +12 -0
  62. data/app/components/slider_component.rb +46 -0
  63. data/app/components/state_component.rb +25 -0
  64. data/app/components/statistic_component.rb +43 -0
  65. data/app/components/step_component.rb +56 -0
  66. data/app/components/step_group_component.rb +38 -0
  67. data/app/components/sticky_component.rb +22 -0
  68. data/app/components/sub_header_component.rb +15 -0
  69. data/app/components/sub_menu_component.rb +24 -0
  70. data/app/components/tab_component.rb +24 -0
  71. data/app/components/table_cell_component.rb +60 -0
  72. data/app/components/table_component.rb +160 -0
  73. data/app/components/table_row_component.rb +43 -0
  74. data/app/components/text_component.rb +73 -0
  75. data/app/components/toast_component.rb +36 -0
  76. data/app/components/transition_component.rb +32 -0
  77. data/app/components/v_stack_component.rb +31 -0
  78. data/app/components/visibility_component.rb +22 -0
  79. data/app/helpers/component_helper.rb +109 -0
  80. data/app/helpers/fui_helper.rb +53 -0
  81. data/app/javascript/accordion.js +547 -0
  82. data/app/javascript/accordion.min.js +11 -0
  83. data/app/javascript/api.js +1112 -0
  84. data/app/javascript/api.min.js +11 -0
  85. data/app/javascript/calendar.js +1960 -0
  86. data/app/javascript/calendar.min.js +11 -0
  87. data/app/javascript/checkbox.js +819 -0
  88. data/app/javascript/checkbox.min.js +11 -0
  89. data/app/javascript/dimmer.js +686 -0
  90. data/app/javascript/dimmer.min.js +11 -0
  91. data/app/javascript/dropdown.js +4019 -0
  92. data/app/javascript/dropdown.min.js +11 -0
  93. data/app/javascript/embed.js +646 -0
  94. data/app/javascript/embed.min.js +11 -0
  95. data/app/javascript/flyout.js +1405 -0
  96. data/app/javascript/flyout.min.js +11 -0
  97. data/app/javascript/form.js +2070 -0
  98. data/app/javascript/form.min.js +11 -0
  99. data/app/javascript/jquery.js +10716 -0
  100. data/app/javascript/jquery.min.js +2 -0
  101. data/app/javascript/modal.js +1507 -0
  102. data/app/javascript/modal.min.js +11 -0
  103. data/app/javascript/nag.js +522 -0
  104. data/app/javascript/nag.min.js +11 -0
  105. data/app/javascript/popup.js +1457 -0
  106. data/app/javascript/popup.min.js +11 -0
  107. data/app/javascript/progress.js +922 -0
  108. data/app/javascript/progress.min.js +11 -0
  109. data/app/javascript/rating.js +496 -0
  110. data/app/javascript/rating.min.js +11 -0
  111. data/app/javascript/search.js +1519 -0
  112. data/app/javascript/search.min.js +11 -0
  113. data/app/javascript/shape.js +721 -0
  114. data/app/javascript/shape.min.js +11 -0
  115. data/app/javascript/sidebar.js +952 -0
  116. data/app/javascript/sidebar.min.js +11 -0
  117. data/app/javascript/site.js +415 -0
  118. data/app/javascript/site.min.js +11 -0
  119. data/app/javascript/slider.js +1449 -0
  120. data/app/javascript/slider.min.js +11 -0
  121. data/app/javascript/state.js +653 -0
  122. data/app/javascript/state.min.js +11 -0
  123. data/app/javascript/sticky.js +852 -0
  124. data/app/javascript/sticky.min.js +11 -0
  125. data/app/javascript/tab.js +867 -0
  126. data/app/javascript/tab.min.js +11 -0
  127. data/app/javascript/toast.js +916 -0
  128. data/app/javascript/toast.min.js +11 -0
  129. data/app/javascript/transition.js +955 -0
  130. data/app/javascript/transition.min.js +11 -0
  131. data/app/javascript/ui/controllers/fui_accordion_controller.js +45 -0
  132. data/app/javascript/ui/controllers/fui_api_controller.js +80 -0
  133. data/app/javascript/ui/controllers/fui_calendar_controller.js +66 -0
  134. data/app/javascript/ui/controllers/fui_checkbox_controller.js +48 -0
  135. data/app/javascript/ui/controllers/fui_dimmer_controller.js +45 -0
  136. data/app/javascript/ui/controllers/fui_dropdown_controller.js +68 -0
  137. data/app/javascript/ui/controllers/fui_embed_controller.js +49 -0
  138. data/app/javascript/ui/controllers/fui_flyout_controller.js +49 -0
  139. data/app/javascript/ui/controllers/fui_form_controller.js +62 -0
  140. data/app/javascript/ui/controllers/fui_modal_controller.js +61 -0
  141. data/app/javascript/ui/controllers/fui_nag_controller.js +52 -0
  142. data/app/javascript/ui/controllers/fui_popup_controller.js +58 -0
  143. data/app/javascript/ui/controllers/fui_progress_controller.js +60 -0
  144. data/app/javascript/ui/controllers/fui_rating_controller.js +49 -0
  145. data/app/javascript/ui/controllers/fui_search_controller.js +76 -0
  146. data/app/javascript/ui/controllers/fui_shape_controller.js +45 -0
  147. data/app/javascript/ui/controllers/fui_sidebar_controller.js +48 -0
  148. data/app/javascript/ui/controllers/fui_site_controller.js +29 -0
  149. data/app/javascript/ui/controllers/fui_slider_controller.js +53 -0
  150. data/app/javascript/ui/controllers/fui_state_controller.js +63 -0
  151. data/app/javascript/ui/controllers/fui_sticky_controller.js +50 -0
  152. data/app/javascript/ui/controllers/fui_tab_controller.js +57 -0
  153. data/app/javascript/ui/controllers/fui_toast_controller.js +60 -0
  154. data/app/javascript/ui/controllers/fui_transition_controller.js +60 -0
  155. data/app/javascript/ui/controllers/fui_visibility_controller.js +55 -0
  156. data/app/javascript/ui/index.js +114 -0
  157. data/app/javascript/visibility.js +1196 -0
  158. data/app/javascript/visibility.min.js +11 -0
  159. data/app/lib/component.rb +63 -0
  160. data/config/importmap.rb +27 -0
  161. data/config/initializers/ruby_template_handler.rb +31 -0
  162. data/config/routes.rb +2 -0
  163. data/lib/tasks/ui_tasks.rake +4 -0
  164. data/lib/ui/engine.rb +27 -0
  165. data/lib/ui/version.rb +3 -0
  166. data/lib/ui.rb +6 -0
  167. metadata +220 -0
@@ -0,0 +1,11 @@
1
+ /*
2
+ * # Fomantic UI - 2.9.4
3
+ * https://github.com/fomantic/Fomantic-UI
4
+ * https://fomantic-ui.com/
5
+ *
6
+ * Copyright 2026 Contributors
7
+ * Released under the MIT license
8
+ * https://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+ !function(w,e,x){"use strict";function S(e){return"function"==typeof e&&"number"!=typeof e.nodeType}e=void 0!==e&&e.Math===Math?e:globalThis,w.fn.dimmer=function(...e){const g=w(this);let b=Date.now(),v=[];const p=e[0],h="string"==typeof p,y=e.slice(1);let C;return g.each(function(){const o=w.isPlainObject(p)?w.extend(!0,{},w.fn.dimmer.settings,p):w.extend({},w.fn.dimmer.settings),i=o.selector;var e=o.namespace;const n=o.className,d=o.error,t="."+e,a="module-"+e,r="ontouchstart"in x.documentElement?"touchstart":"click",s=w(this);let m,l;const c=this;let u=s.data(a);const f={preinitialize:function(){m=f.is.dimmer()?(l=s.parent(),s):(l=s,f.has.dimmer()?o.dimmerName?l.find(i.dimmer).filter("."+o.dimmerName):l.find(i.dimmer):f.create())},initialize:function(){f.debug("Initializing dimmer",o),f.bind.events(),f.set.dimmable(),f.instantiate()},instantiate:function(){f.verbose("Storing instance of module",f),u=f,s.data(a,u)},destroy:function(){f.verbose("Destroying previous module",m),f.unbind.events(),f.remove.variation(),l.off(t)},bind:{events:function(){"hover"===o.on?l.on("mouseenter"+t,f.show).on("mouseleave"+t,f.hide):"click"===o.on&&l.on(r+t,f.toggle),f.is.page()&&(f.debug("Setting as a page dimmer",l),f.set.pageDimmer()),f.is.closable()&&(f.verbose("Adding dimmer close event",m),l.on(r+t,i.dimmer,f.event.click))}},unbind:{events:function(){s.removeData(a),l.off(t)}},event:{click:function(e){f.verbose("Determining if event occurred on dimmer",e),0!==m.find(e.target).length&&!w(e.target).is(i.content)||(f.hide(),e.stopImmediatePropagation())}},addContent:function(e){const i=w(e);f.debug("Add content to dimmer",i),i.parent()[0]!==m[0]&&i.detach().appendTo(m)},create:function(){const e=w(o.template.dimmer(o));return o.dimmerName&&(f.debug("Creating named dimmer",o.dimmerName),e.addClass(o.dimmerName)),e.appendTo(l),e},show:function(e){e=S(e)?e:function(){},f.is.dimmed()&&!f.is.animating()||!f.is.enabled()?f.debug("Dimmer is already shown or disabled"):!1===o.onShow.call(c)?f.verbose("Show callback returned false cancelling dimmer show"):(f.debug("Showing dimmer",m,o),f.set.variation(),f.animate.show(e),o.onChange.call(c))},hide:function(e){e=S(e)?e:function(){},f.is.dimmed()||f.is.animating()?!1===o.onHide.call(c)?f.verbose("Hide callback returned false cancelling dimmer hide"):(f.debug("Hiding dimmer",m),f.animate.hide(e),o.onChange.call(c)):f.debug("Dimmer is not visible")},toggle:function(){f.verbose("Toggling dimmer visibility",m),f.is.dimmed()?f.is.closable()&&f.hide():f.show()},animate:{show:function(e){e=S(e)?e:function(){},o.useCSS&&void 0!==w.fn.transition?(o.useFlex?(f.debug("Using flex dimmer"),f.remove.legacy()):(f.debug("Using legacy non-flex dimmer"),f.set.legacy()),"auto"!==o.opacity&&f.set.opacity(),m.transition({debug:o.debug,verbose:o.verbose,silent:o.silent,displayType:o.useFlex?"flex":"block",animation:(o.transition.showMethod||o.transition)+" in",queue:!1,duration:f.get.duration(),useFailSafe:!0,onStart:function(){f.set.dimmed()},onComplete:function(){f.set.active(),o.onVisible.call(m),e()}})):(f.verbose("Showing dimmer animation with javascript"),f.set.dimmed(),"auto"===o.opacity&&(o.opacity=.8),m.stop().css({opacity:0,width:"100%",height:"100%"}).fadeTo(f.get.duration(),o.opacity,function(){m.removeAttr("style"),f.set.active(),o.onVisible.call(m),e()}))},hide:function(e){e=S(e)?e:function(){},o.useCSS&&void 0!==w.fn.transition?(f.verbose("Hiding dimmer with css"),m.transition({debug:o.debug,verbose:o.verbose,silent:o.silent,displayType:o.useFlex?"flex":"block",animation:(o.transition.hideMethod||o.transition)+" out",queue:!1,duration:f.get.duration(),useFailSafe:!0,onComplete:function(){f.remove.dimmed(),f.remove.variation(),f.remove.active(),o.onHidden.call(m),e()}})):(f.verbose("Hiding dimmer with javascript"),m.stop().fadeOut(f.get.duration(),function(){f.remove.dimmed(),f.remove.active(),m.removeAttr("style"),o.onHidden.call(m),e()}))}},get:{dimmer:function(){return m},duration:function(){return f.is.active()?o.transition.hideDuration||o.duration.hide||o.duration:o.transition.showDuration||o.duration.show||o.duration}},has:{dimmer:function(){return o.dimmerName?0<s.find(i.dimmer).filter("."+o.dimmerName).length:0<s.find(i.dimmer).length}},is:{active:function(){return m.hasClass(n.active)},animating:function(){return m.is(":animated")||m.hasClass(n.animating)},closable:function(){return"auto"===o.closable?"hover"!==o.on:o.closable},dimmer:function(){return s.hasClass(n.dimmer)},dimmable:function(){return s.hasClass(n.dimmable)},dimmed:function(){return l.hasClass(n.dimmed)},disabled:function(){return l.hasClass(n.disabled)},enabled:function(){return!f.is.disabled()},page:function(){return l.is("body")},pageDimmer:function(){return m.hasClass(n.pageDimmer)}},can:{show:function(){return!m.hasClass(n.disabled)}},set:{opacity:function(e){let i=m.css("background-color");const n=i.split(",");var t=n&&3<=n.length;e=0===o.opacity?0:o.opacity||e,i=t?(n[2]=n[2].replace(")",""),n[3]=e+")",n.join(",")):"rgba(0, 0, 0, "+e+")",f.debug("Setting opacity to",e),m.css("background-color",i)},legacy:function(){m.addClass(n.legacy)},active:function(){m.addClass(n.active)},dimmable:function(){l.addClass(n.dimmable)},dimmed:function(){l.addClass(n.dimmed)},pageDimmer:function(){m.addClass(n.pageDimmer)},disabled:function(){m.addClass(n.disabled)},variation:function(e=o.variation){e&&m.addClass(e)}},remove:{active:function(){m.removeClass(n.active)},legacy:function(){m.removeClass(n.legacy)},dimmed:function(){l.removeClass(n.dimmed)},disabled:function(){m.removeClass(n.disabled)},variation:function(e=o.variation){e&&m.removeClass(e)}},setting:function(e,i){if(f.debug("Changing setting",e,i),w.isPlainObject(e))w.extend(!0,o,e);else{if(void 0===i)return o[e];w.isPlainObject(o[e])?w.extend(!0,o[e],i):o[e]=i}},internal:function(e,i){if(w.isPlainObject(e))w.extend(!0,f,e);else{if(void 0===i)return f[e];f[e]=i}},debug:function(...e){!o.silent&&o.debug&&(o.performance?f.performance.log(e):(f.debug=Function.prototype.bind.call(console.info,console,o.name+":"),f.debug.apply(console,e)))},verbose:function(...e){!o.silent&&o.verbose&&o.debug&&(o.performance?f.performance.log(e):(f.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),f.verbose.apply(console,e)))},error:function(...e){o.silent||(f.error=Function.prototype.bind.call(console.error,console,o.name+":"),f.error.apply(console,e))},performance:{log:function(e){var i,n;o.performance&&(n=(i=Date.now())-(b||i),b=i,v.push({Name:e[0],Arguments:e.slice(1),Element:c,"Execution Time":n})),clearTimeout(f.performance.timer),f.performance.timer=setTimeout(function(){f.performance.display()},500)},display:function(){let e=o.name+":",n=0;b=!1,clearTimeout(f.performance.timer),w.each(v,function(e,i){n+=i["Execution Time"]}),e+=" "+n+"ms",1<g.length&&(e+=" ("+g.length+")"),0<v.length&&(console.groupCollapsed(e),console.table(v),console.groupEnd()),v=[]}},invoke:function(t,e=y,i=c){let o=u,a,r,n;return"string"==typeof t&&void 0!==o&&(t=t.split(/[ .]/),a=t.length-1,w.each(t,function(e,i){var n=e!==a?i+t[e+1].charAt(0).toUpperCase()+t[e+1].slice(1):t;if(w.isPlainObject(o[n])&&e!==a)o=o[n];else{if(void 0!==o[n])return r=o[n],!1;{if(!w.isPlainObject(o[i])||e===a)return void 0!==o[i]?r=o[i]:f.error(d.method,t),!1;o=o[i]}}})),S(r)?n=r.apply(i,e):void 0!==r&&(n=r),Array.isArray(C)?C.push(n):void 0!==C?C=[C,n]:void 0!==n&&(C=n),r}};f.preinitialize(),h?(void 0===u&&f.initialize(),f.invoke(p)):(void 0!==u&&u.invoke("destroy"),f.initialize())}),void 0!==C?C:this},w.fn.dimmer.settings={name:"Dimmer",namespace:"dimmer",silent:!1,debug:!1,verbose:!1,performance:!0,useFlex:!0,dimmerName:!1,variation:!1,closable:"auto",useCSS:!0,transition:"fade",on:!1,opacity:"auto",duration:{show:500,hide:500},displayLoader:!1,loaderText:!1,loaderVariation:"",onChange:function(){},onShow:function(){},onHide:function(){},onVisible:function(){},onHidden:function(){},error:{method:"The method you called is not defined."},className:{active:"active",animating:"animating",dimmable:"dimmable",dimmed:"dimmed",dimmer:"dimmer",disabled:"disabled",hide:"hide",legacy:"legacy",pageDimmer:"page",show:"show",loader:"ui loader"},selector:{dimmer:"> .ui.dimmer",content:".ui.dimmer > .content, .ui.dimmer > .content > .center"},template:{dimmer:function(e){const i=w("<div/>").addClass("ui dimmer");let n;return e.displayLoader&&(n=w("<div/>").addClass(e.className.loader).addClass(e.loaderVariation),e.loaderText&&(n.text(e.loaderText),n.addClass("text")),i.append(n)),i}}}}(jQuery,window,document);