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.
- checksums.yaml +7 -0
- data/Rakefile +6 -0
- data/app/assets/stylesheets.css +73555 -0
- data/app/components/accordion_component.rb +34 -0
- data/app/components/ad_component.rb +28 -0
- data/app/components/api_component.rb +24 -0
- data/app/components/breadcrumb_component.rb +26 -0
- data/app/components/button_component.rb +49 -0
- data/app/components/calendar_component.rb +34 -0
- data/app/components/card_component.rb +56 -0
- data/app/components/checkbox_component.rb +41 -0
- data/app/components/column_component.rb +62 -0
- data/app/components/comment_component.rb +45 -0
- data/app/components/concerns/alignable.rb +21 -0
- data/app/components/concerns/attachable.rb +16 -0
- data/app/components/concerns/orientable.rb +21 -0
- data/app/components/concerns/positionable.rb +21 -0
- data/app/components/concerns/sizeable.rb +18 -0
- data/app/components/container_component.rb +23 -0
- data/app/components/dimmer_component.rb +30 -0
- data/app/components/divider_component.rb +30 -0
- data/app/components/dropdown_component.rb +63 -0
- data/app/components/embed_component.rb +32 -0
- data/app/components/emoji_component.rb +15 -0
- data/app/components/feed_component.rb +22 -0
- data/app/components/flag_component.rb +15 -0
- data/app/components/flyout_component.rb +41 -0
- data/app/components/form_component.rb +39 -0
- data/app/components/grid_component.rb +85 -0
- data/app/components/h_stack_component.rb +67 -0
- data/app/components/header_component.rb +60 -0
- data/app/components/icon_component.rb +41 -0
- data/app/components/image_component.rb +46 -0
- data/app/components/input_component.rb +52 -0
- data/app/components/item_component.rb +39 -0
- data/app/components/item_group_component.rb +30 -0
- data/app/components/label_component.rb +49 -0
- data/app/components/link_component.rb +23 -0
- data/app/components/list_component.rb +39 -0
- data/app/components/loader_component.rb +33 -0
- data/app/components/menu_component.rb +64 -0
- data/app/components/menu_item_component.rb +52 -0
- data/app/components/message_component.rb +54 -0
- data/app/components/modal_component.rb +50 -0
- data/app/components/nag_component.rb +25 -0
- data/app/components/overlay_component.rb +16 -0
- data/app/components/placeholder_component.rb +39 -0
- data/app/components/popup_component.rb +31 -0
- data/app/components/progress_component.rb +48 -0
- data/app/components/pusher_component.rb +18 -0
- data/app/components/rail_component.rb +31 -0
- data/app/components/rating_component.rb +41 -0
- data/app/components/reset_component.rb +12 -0
- data/app/components/reveal_component.rb +39 -0
- data/app/components/row_component.rb +39 -0
- data/app/components/search_component.rb +44 -0
- data/app/components/segment_component.rb +57 -0
- data/app/components/segment_group_component.rb +36 -0
- data/app/components/shape_component.rb +25 -0
- data/app/components/sidebar_component.rb +33 -0
- data/app/components/site_component.rb +12 -0
- data/app/components/slider_component.rb +46 -0
- data/app/components/state_component.rb +25 -0
- data/app/components/statistic_component.rb +43 -0
- data/app/components/step_component.rb +56 -0
- data/app/components/step_group_component.rb +38 -0
- data/app/components/sticky_component.rb +22 -0
- data/app/components/sub_header_component.rb +15 -0
- data/app/components/sub_menu_component.rb +24 -0
- data/app/components/tab_component.rb +24 -0
- data/app/components/table_cell_component.rb +60 -0
- data/app/components/table_component.rb +160 -0
- data/app/components/table_row_component.rb +43 -0
- data/app/components/text_component.rb +73 -0
- data/app/components/toast_component.rb +36 -0
- data/app/components/transition_component.rb +32 -0
- data/app/components/v_stack_component.rb +31 -0
- data/app/components/visibility_component.rb +22 -0
- data/app/helpers/component_helper.rb +109 -0
- data/app/helpers/fui_helper.rb +53 -0
- data/app/javascript/accordion.js +547 -0
- data/app/javascript/accordion.min.js +11 -0
- data/app/javascript/api.js +1112 -0
- data/app/javascript/api.min.js +11 -0
- data/app/javascript/calendar.js +1960 -0
- data/app/javascript/calendar.min.js +11 -0
- data/app/javascript/checkbox.js +819 -0
- data/app/javascript/checkbox.min.js +11 -0
- data/app/javascript/dimmer.js +686 -0
- data/app/javascript/dimmer.min.js +11 -0
- data/app/javascript/dropdown.js +4019 -0
- data/app/javascript/dropdown.min.js +11 -0
- data/app/javascript/embed.js +646 -0
- data/app/javascript/embed.min.js +11 -0
- data/app/javascript/flyout.js +1405 -0
- data/app/javascript/flyout.min.js +11 -0
- data/app/javascript/form.js +2070 -0
- data/app/javascript/form.min.js +11 -0
- data/app/javascript/jquery.js +10716 -0
- data/app/javascript/jquery.min.js +2 -0
- data/app/javascript/modal.js +1507 -0
- data/app/javascript/modal.min.js +11 -0
- data/app/javascript/nag.js +522 -0
- data/app/javascript/nag.min.js +11 -0
- data/app/javascript/popup.js +1457 -0
- data/app/javascript/popup.min.js +11 -0
- data/app/javascript/progress.js +922 -0
- data/app/javascript/progress.min.js +11 -0
- data/app/javascript/rating.js +496 -0
- data/app/javascript/rating.min.js +11 -0
- data/app/javascript/search.js +1519 -0
- data/app/javascript/search.min.js +11 -0
- data/app/javascript/shape.js +721 -0
- data/app/javascript/shape.min.js +11 -0
- data/app/javascript/sidebar.js +952 -0
- data/app/javascript/sidebar.min.js +11 -0
- data/app/javascript/site.js +415 -0
- data/app/javascript/site.min.js +11 -0
- data/app/javascript/slider.js +1449 -0
- data/app/javascript/slider.min.js +11 -0
- data/app/javascript/state.js +653 -0
- data/app/javascript/state.min.js +11 -0
- data/app/javascript/sticky.js +852 -0
- data/app/javascript/sticky.min.js +11 -0
- data/app/javascript/tab.js +867 -0
- data/app/javascript/tab.min.js +11 -0
- data/app/javascript/toast.js +916 -0
- data/app/javascript/toast.min.js +11 -0
- data/app/javascript/transition.js +955 -0
- data/app/javascript/transition.min.js +11 -0
- data/app/javascript/ui/controllers/fui_accordion_controller.js +45 -0
- data/app/javascript/ui/controllers/fui_api_controller.js +80 -0
- data/app/javascript/ui/controllers/fui_calendar_controller.js +66 -0
- data/app/javascript/ui/controllers/fui_checkbox_controller.js +48 -0
- data/app/javascript/ui/controllers/fui_dimmer_controller.js +45 -0
- data/app/javascript/ui/controllers/fui_dropdown_controller.js +68 -0
- data/app/javascript/ui/controllers/fui_embed_controller.js +49 -0
- data/app/javascript/ui/controllers/fui_flyout_controller.js +49 -0
- data/app/javascript/ui/controllers/fui_form_controller.js +62 -0
- data/app/javascript/ui/controllers/fui_modal_controller.js +61 -0
- data/app/javascript/ui/controllers/fui_nag_controller.js +52 -0
- data/app/javascript/ui/controllers/fui_popup_controller.js +58 -0
- data/app/javascript/ui/controllers/fui_progress_controller.js +60 -0
- data/app/javascript/ui/controllers/fui_rating_controller.js +49 -0
- data/app/javascript/ui/controllers/fui_search_controller.js +76 -0
- data/app/javascript/ui/controllers/fui_shape_controller.js +45 -0
- data/app/javascript/ui/controllers/fui_sidebar_controller.js +48 -0
- data/app/javascript/ui/controllers/fui_site_controller.js +29 -0
- data/app/javascript/ui/controllers/fui_slider_controller.js +53 -0
- data/app/javascript/ui/controllers/fui_state_controller.js +63 -0
- data/app/javascript/ui/controllers/fui_sticky_controller.js +50 -0
- data/app/javascript/ui/controllers/fui_tab_controller.js +57 -0
- data/app/javascript/ui/controllers/fui_toast_controller.js +60 -0
- data/app/javascript/ui/controllers/fui_transition_controller.js +60 -0
- data/app/javascript/ui/controllers/fui_visibility_controller.js +55 -0
- data/app/javascript/ui/index.js +114 -0
- data/app/javascript/visibility.js +1196 -0
- data/app/javascript/visibility.min.js +11 -0
- data/app/lib/component.rb +63 -0
- data/config/importmap.rb +27 -0
- data/config/initializers/ruby_template_handler.rb +31 -0
- data/config/routes.rb +2 -0
- data/lib/tasks/ui_tasks.rake +4 -0
- data/lib/ui/engine.rb +27 -0
- data/lib/ui/version.rb +3 -0
- data/lib/ui.rb +6 -0
- 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(k,T,O){"use strict";function A(e){return"function"==typeof e&&"number"!=typeof e.nodeType}T=void 0!==T&&T.Math===Math?T:globalThis,k.fn.visibility=function(...e){const o=k(this);let p=Date.now(),h=[];const P=e[0],x="string"==typeof P,y=e.slice(1),C=function(e,o){let n;return[T,O].includes(e)?n=k(e):0===(n=k(o.document).find(e)).length&&(n=o.frameElement?C(e,o.parent):T),n};let S;const V=o.length;let R=0;return o.each(function(){const i=k.isPlainObject(P)?k.extend(!0,{},k.fn.visibility.settings,P):k.extend({},k.fn.visibility.settings),n=i.className;var e=i.namespace;const r=i.error,o=i.metadata,t="."+e,s="module-"+e,c=k(T),a=k(this),l=C(i.context,T);let d,u=a.data(s);const f=this;let b=!1,v,g;const m={initialize:function(){m.debug("Initializing",i),m.setup.cache(),m.should.trackChanges()&&("image"===i.type&&m.setup.image(),"fixed"===i.type&&m.setup.fixed(),i.observeChanges&&m.observeChanges(),m.bind.events()),m.save.position(),m.is.visible()||m.error(r.visible,a),i.initialCheck&&m.checkVisibility(),m.instantiate()},instantiate:function(){m.debug("Storing instance",m),a.data(s,m),u=m},destroy:function(){m.verbose("Destroying previous module"),g&&g.disconnect(),v&&v.disconnect(),c.off("load"+t,m.event.load).off("resize"+t,m.event.resize),l.off("scroll"+t,m.event.scroll).off("scrollchange"+t,m.event.scrollchange),"fixed"===i.type&&(m.resetFixed(),m.remove.placeholder()),a.off(t).removeData(s)},observeChanges:function(){v=new MutationObserver(m.event.contextChanged),g=new MutationObserver(m.event.changed),v.observe(O,{childList:!0,subtree:!0}),g.observe(f,{childList:!0,subtree:!0}),m.debug("Setting up mutation observer",g)},bind:{events:function(){m.verbose("Binding visibility events to scroll and resize"),i.refreshOnLoad&&c.on("load"+t,m.event.load),c.on("resize"+t,m.event.resize),l.off("scroll"+t).on("scroll"+t,m.event.scroll).on("scrollchange"+t,m.event.scrollchange)}},event:{changed:function(e){m.verbose("DOM tree modified, updating visibility calculations"),m.timer=setTimeout(function(){m.verbose("DOM tree modified, updating sticky menu"),m.refresh()},100)},contextChanged:function(e){for(const o of e)for(const n of o.removedNodes)(n===f||0<k(n).find(f).length)&&(m.debug("Element removed from DOM, tearing down events"),m.destroy())},resize:function(){m.debug("Window resized"),i.refreshOnResize&&requestAnimationFrame(m.refresh)},load:function(){m.debug("Page finished loading"),requestAnimationFrame(m.refresh)},scroll:function(){i.throttle?(clearTimeout(m.timer),m.timer=setTimeout(function(){l.triggerHandler("scrollchange"+t,[l.scrollTop()])},i.throttle)):requestAnimationFrame(function(){l.triggerHandler("scrollchange"+t,[l.scrollTop()])})},scrollchange:function(e,o){m.checkVisibility(o)}},precache:function(e,o){let n=(e=Array.isArray(e)?e:[e]).length,t=0;const i=[];let s=O.createElement("img");for(var c=function(){++t>=e.length&&A(o)&&o()};n--;)(s=O.createElement("img")).addEventListener("load",c),s.addEventListener("error",c),s.src=e[n],i.push(s)},enableCallbacks:function(){m.debug("Allowing callbacks to occur"),b=!1},disableCallbacks:function(){m.debug("Disabling all callbacks temporarily"),b=!0},should:{trackChanges:function(){return x?(m.debug("One time query, no need to bind events"),!1):(m.debug("Callbacks being attached"),!0)}},setup:{cache:function(){m.cache={occurred:{},screen:{},element:{}}},image:function(){const e=a.data(o.src);e&&(m.verbose("Lazy loading image",e),i.once=!0,i.observeChanges=!1,i.onOnScreen=function(){m.debug("Image on screen",f),m.precache(e,function(){m.set.image(e,function(){++R===V&&i.onAllLoaded.call(this),i.onLoad.call(this)})})})},fixed:function(){m.debug("Setting up fixed"),i.once=!1,i.observeChanges=!1,i.initialCheck=!0,i.refreshOnLoad=!0,P.transition||(i.transition=!1),m.create.placeholder(),m.debug("Added placeholder",d),i.onTopPassed=function(){m.debug("Element passed, adding fixed position",a),m.show.placeholder(),m.set.fixed(),i.transition&&void 0!==k.fn.transition&&a.transition(i.transition,i.duration)},i.onTopPassedReverse=function(){m.debug("Element returned to position, removing fixed",a),m.hide.placeholder(),m.remove.fixed()}}},create:{placeholder:function(){m.verbose("Creating fixed position placeholder"),d=a.clone(!1).css("display","none").addClass(n.placeholder).insertAfter(a)}},show:{placeholder:function(){m.verbose("Showing placeholder"),d.css("display","block").css("visibility","hidden")}},hide:{placeholder:function(){m.verbose("Hiding placeholder"),d.css("display","none").css("visibility","")}},set:{fixed:function(){m.verbose("Setting element to fixed position"),a.addClass(n.fixed).css({position:"fixed",top:i.offset+"px",left:"auto",zIndex:i.zIndex}),i.onFixed.call(f)},image:function(e,o){a.attr("src",e),i.transition?void 0!==k.fn.transition?a.hasClass(n.visible)?m.debug("Transition already occurred on this image, skipping animation"):a.transition(i.transition,i.duration,o):a.fadeIn(i.duration,o):a.show()}},is:{onScreen:function(){return m.get.elementCalculations().onScreen},offScreen:function(){return m.get.elementCalculations().offScreen},visible:function(){return!(!m.cache||!m.cache.element)&&!(0===m.cache.element.width&&0===m.cache.element.offset.top)},verticallyScrollableContext:function(){var e=l[0]!==T&&l.css("overflow-y");return"auto"===e||"scroll"===e},horizontallyScrollableContext:function(){var e=l[0]!==T&&l.css("overflow-x");return"auto"===e||"scroll"===e}},refresh:function(){m.debug("Refreshing constants (width/height)"),"fixed"===i.type&&m.resetFixed(),m.reset(),m.save.position(),i.checkOnRefresh&&m.checkVisibility(),i.onRefresh.call(f)},resetFixed:function(){m.remove.fixed(),m.remove.occurred()},reset:function(){m.verbose("Resetting all cached values"),k.isPlainObject(m.cache)&&(m.cache.screen={},m.cache.element={})},checkVisibility:function(e){m.verbose("Checking visibility of element",m.cache.element),!b&&m.is.visible()&&(m.save.scroll(e),m.save.calculations(),m.passed(),m.passingReverse(),m.topVisibleReverse(),m.bottomVisibleReverse(),m.topPassedReverse(),m.bottomPassedReverse(),m.onScreen(),m.offScreen(),m.passing(),m.topVisible(),m.bottomVisible(),m.topPassed(),m.bottomPassed(),i.onUpdate&&i.onUpdate.call(f,m.get.elementCalculations()))},passed:function(e,o){const n=m.get.elementCalculations();if(e&&o)i.onPassed[e]=o;else{if(void 0!==e)return m.get.pixelsPassed(e)>n.pixelsPassed;n.passing&&k.each(i.onPassed,function(e,o){n.bottomVisible||n.pixelsPassed>m.get.pixelsPassed(e)?m.execute(o,e):i.once||m.remove.occurred(o)})}},onScreen:function(e){var o=m.get.elementCalculations(),n=e||i.onOnScreen,t="onScreen";if(e&&(m.debug("Adding callback for onScreen",e),i.onOnScreen=e),o.onScreen?m.execute(n,t):i.once||m.remove.occurred(t),void 0!==e)return o.onOnScreen},offScreen:function(e){var o=m.get.elementCalculations(),n=e||i.onOffScreen,t="offScreen";if(e&&(m.debug("Adding callback for offScreen",e),i.onOffScreen=e),o.offScreen?m.execute(n,t):i.once||m.remove.occurred(t),void 0!==e)return o.onOffScreen},passing:function(e){var o=m.get.elementCalculations(),n=e||i.onPassing,t="passing";if(e&&(m.debug("Adding callback for passing",e),i.onPassing=e),o.passing?m.execute(n,t):i.once||m.remove.occurred(t),void 0!==e)return o.passing},topVisible:function(e){var o=m.get.elementCalculations(),n=e||i.onTopVisible,t="topVisible";if(e&&(m.debug("Adding callback for top visible",e),i.onTopVisible=e),o.topVisible?m.execute(n,t):i.once||m.remove.occurred(t),void 0===e)return o.topVisible},bottomVisible:function(e){var o=m.get.elementCalculations(),n=e||i.onBottomVisible,t="bottomVisible";if(e&&(m.debug("Adding callback for bottom visible",e),i.onBottomVisible=e),o.bottomVisible?m.execute(n,t):i.once||m.remove.occurred(t),void 0===e)return o.bottomVisible},topPassed:function(e){var o=m.get.elementCalculations(),n=e||i.onTopPassed,t="topPassed";if(e&&(m.debug("Adding callback for top passed",e),i.onTopPassed=e),o.topPassed?m.execute(n,t):i.once||m.remove.occurred(t),void 0===e)return o.topPassed},bottomPassed:function(e){var o=m.get.elementCalculations(),n=e||i.onBottomPassed,t="bottomPassed";if(e&&(m.debug("Adding callback for bottom passed",e),i.onBottomPassed=e),o.bottomPassed?m.execute(n,t):i.once||m.remove.occurred(t),void 0===e)return o.bottomPassed},passingReverse:function(e){var o=m.get.elementCalculations(),n=e||i.onPassingReverse,t="passingReverse";if(e&&(m.debug("Adding callback for passing reverse",e),i.onPassingReverse=e),o.passing?i.once||m.remove.occurred(t):m.get.occurred("passing")&&m.execute(n,t),void 0!==e)return!o.passing},topVisibleReverse:function(e){var o=m.get.elementCalculations(),n=e||i.onTopVisibleReverse,t="topVisibleReverse";if(e&&(m.debug("Adding callback for top visible reverse",e),i.onTopVisibleReverse=e),o.topVisible?i.once||m.remove.occurred(t):m.get.occurred("topVisible")&&m.execute(n,t),void 0===e)return!o.topVisible},bottomVisibleReverse:function(e){var o=m.get.elementCalculations(),n=e||i.onBottomVisibleReverse,t="bottomVisibleReverse";if(e&&(m.debug("Adding callback for bottom visible reverse",e),i.onBottomVisibleReverse=e),o.bottomVisible?i.once||m.remove.occurred(t):m.get.occurred("bottomVisible")&&m.execute(n,t),void 0===e)return!o.bottomVisible},topPassedReverse:function(e){var o=m.get.elementCalculations(),n=e||i.onTopPassedReverse,t="topPassedReverse";if(e&&(m.debug("Adding callback for top passed reverse",e),i.onTopPassedReverse=e),o.topPassed?i.once||m.remove.occurred(t):m.get.occurred("topPassed")&&m.execute(n,t),void 0===e)return!o.onTopPassed},bottomPassedReverse:function(e){var o=m.get.elementCalculations(),n=e||i.onBottomPassedReverse,t="bottomPassedReverse";if(e&&(m.debug("Adding callback for bottom passed reverse",e),i.onBottomPassedReverse=e),o.bottomPassed?i.once||m.remove.occurred(t):m.get.occurred("bottomPassed")&&m.execute(n,t),void 0===e)return!o.bottomPassed},execute:function(e=!1,o=""){var n=m.get.elementCalculations(),t=m.get.screenCalculations();A(e)&&(i.continuous?(m.debug("Callback being called continuously",o,n),e.call(f,n,t)):m.get.occurred(o)||(m.debug("Conditions met",o,n),e.call(f,n,t))),m.save.occurred(o)},remove:{fixed:function(){m.debug("Removing fixed position"),a.removeClass(n.fixed).css({position:"",top:"",left:"",zIndex:""}),i.onUnfixed.call(f)},placeholder:function(){m.debug("Removing placeholder content"),d&&d.remove()},occurred:function(e){var o;e?void 0!==(o=m.cache.occurred)[e]&&!0===o[e]&&(m.debug("Callback can now be called again",e),m.cache.occurred[e]=!1):m.cache.occurred={}}},save:{calculations:function(){m.verbose("Saving all calculations necessary to determine positioning"),m.save.direction(),m.save.screenCalculations(),m.save.elementCalculations()},occurred:function(e){!e||void 0!==m.cache.occurred[e]&&!0===m.cache.occurred[e]||(m.verbose("Saving callback occurred",e),m.cache.occurred[e]=!0)},scroll:function(e){e=e+i.offset||l.scrollTop()+i.offset,m.cache.scroll=e},direction:function(){var e=m.get.scroll(),o=m.get.lastScroll();let n;return n=o<e&&o?"down":e<o&&o?"up":"static",m.cache.direction=n,m.cache.direction},elementPosition:function(){const e=m.cache.element;var o=m.get.screenSize();return m.verbose("Saving element position"),e.fits=e.height<o.height,e.offset=a.offset(),e.width=a.outerWidth(),e.height=a.outerHeight(),m.is.verticallyScrollableContext()&&(e.offset.top+=l.scrollTop()-l.offset().top),m.is.horizontallyScrollableContext()&&(e.offset.left+=l.scrollLeft()-l.offset().left),m.cache.element=e},elementCalculations:function(){var e=m.get.screenCalculations();const o=m.get.elementPosition();return i.includeMargin?(o.margin={},o.margin.top=Number.parseInt(a.css("margin-top"),10),o.margin.bottom=Number.parseInt(a.css("margin-bottom"),10),o.top=o.offset.top-o.margin.top,o.bottom=o.offset.top+o.height+o.margin.bottom):(o.top=o.offset.top,o.bottom=o.offset.top+o.height),o.topPassed=e.top>=o.top,o.bottomPassed=e.top>=o.bottom,o.topVisible=e.bottom>=o.top&&!o.topPassed,o.bottomVisible=e.bottom>=o.bottom&&!o.bottomPassed,o.pixelsPassed=0,o.percentagePassed=0,o.onScreen=(o.topVisible||o.passing)&&!o.bottomPassed,o.passing=o.topPassed&&!o.bottomPassed,o.offScreen=!o.onScreen,o.passing&&(o.pixelsPassed=e.top-o.top,o.percentagePassed=(e.top-o.top)/o.height),m.cache.element=o,m.verbose("Updated element calculations",o),o},screenCalculations:function(){var e=m.get.scroll();return m.save.direction(),m.cache.screen.top=e,m.cache.screen.bottom=e+m.cache.screen.height,m.cache.screen},screenSize:function(){m.verbose("Saving window position"),m.cache.screen={height:l.height()}},position:function(){m.save.screenSize(),m.save.elementPosition()}},get:{pixelsPassed:function(e){var o=m.get.elementCalculations();return-1<e.search("%")?o.height*(Number.parseInt(e,10)/100):Number.parseInt(e,10)},occurred:function(e){return void 0!==m.cache.occurred&&m.cache.occurred[e]||!1},direction:function(){return void 0===m.cache.direction&&m.save.direction(),m.cache.direction},elementPosition:function(){return void 0===m.cache.element&&m.save.elementPosition(),m.cache.element},elementCalculations:function(){return void 0===m.cache.element&&m.save.elementCalculations(),m.cache.element},screenCalculations:function(){return void 0===m.cache.screen&&m.save.screenCalculations(),m.cache.screen},screenSize:function(){return void 0===m.cache.screen&&m.save.screenSize(),m.cache.screen},scroll:function(){return void 0===m.cache.scroll&&m.save.scroll(),m.cache.scroll},lastScroll:function(){return void 0===m.cache.screen?(m.debug("First scroll event, no last scroll could be found"),!1):m.cache.screen.top}},setting:function(e,o){if(k.isPlainObject(e))k.extend(!0,i,e);else{if(void 0===o)return i[e];i[e]=o}},internal:function(e,o){if(k.isPlainObject(e))k.extend(!0,m,e);else{if(void 0===o)return m[e];m[e]=o}},debug:function(...e){!i.silent&&i.debug&&(i.performance?m.performance.log(e):(m.debug=Function.prototype.bind.call(console.info,console,i.name+":"),m.debug.apply(console,e)))},verbose:function(...e){!i.silent&&i.verbose&&i.debug&&(i.performance?m.performance.log(e):(m.verbose=Function.prototype.bind.call(console.info,console,i.name+":"),m.verbose.apply(console,e)))},error:function(...e){i.silent||(m.error=Function.prototype.bind.call(console.error,console,i.name+":"),m.error.apply(console,e))},performance:{log:function(e){var o,n;i.performance&&(n=(o=Date.now())-(p||o),p=o,h.push({Name:e[0],Arguments:e.slice(1),Element:f,"Execution Time":n})),clearTimeout(m.performance.timer),m.performance.timer=setTimeout(function(){m.performance.display()},500)},display:function(){var e=i.name+":";let n=0;p=!1,clearTimeout(m.performance.timer),k.each(h,function(e,o){n+=o["Execution Time"]}),e+=" "+n+"ms",0<h.length&&(console.groupCollapsed(e),console.table(h),console.groupEnd()),h=[]}},invoke:function(t,e=y,o=f){let i=u,s,c,n;return"string"==typeof t&&void 0!==i&&(t=t.split(/[ .]/),s=t.length-1,k.each(t,function(e,o){var n=e!==s?o+t[e+1].charAt(0).toUpperCase()+t[e+1].slice(1):t;if(k.isPlainObject(i[n])&&e!==s)i=i[n];else{if(void 0!==i[n])return c=i[n],!1;{if(!k.isPlainObject(i[o])||e===s)return void 0!==i[o]?c=i[o]:m.error(r.method,t),!1;i=i[o]}}})),A(c)?n=c.apply(o,e):void 0!==c&&(n=c),Array.isArray(S)?S.push(n):void 0!==S?S=[S,n]:void 0!==n&&(S=n),c}};x?(void 0===u&&m.initialize(),u.save.scroll(),u.save.calculations(),m.invoke(P)):(void 0!==u&&u.invoke("destroy"),m.initialize())}),void 0!==S?S:this},k.fn.visibility.settings={name:"Visibility",namespace:"visibility",debug:!1,verbose:!1,performance:!0,observeChanges:!0,initialCheck:!0,refreshOnLoad:!0,refreshOnResize:!0,checkOnRefresh:!0,once:!0,continuous:!1,offset:0,includeMargin:!1,context:T,throttle:!1,type:!1,zIndex:"10",transition:"fade in",duration:1e3,onPassed:{},onOnScreen:!1,onOffScreen:!1,onPassing:!1,onTopVisible:!1,onBottomVisible:!1,onTopPassed:!1,onBottomPassed:!1,onPassingReverse:!1,onTopVisibleReverse:!1,onBottomVisibleReverse:!1,onTopPassedReverse:!1,onBottomPassedReverse:!1,onLoad:function(){},onAllLoaded:function(){},onFixed:function(){},onUnfixed:function(){},onUpdate:!1,onRefresh:function(){},metadata:{src:"src"},className:{fixed:"fixed",placeholder:"constraint",visible:"visible"},error:{method:"The method you called is not defined.",visible:"Element is hidden, you must call refresh after element becomes visible"}}}(jQuery,window,document);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# The Ancestral Component
|
|
4
|
+
#
|
|
5
|
+
# All components descend from this class. It provides:
|
|
6
|
+
# - ActiveModel::Attributes for declarative attribute definitions
|
|
7
|
+
# - Named slots via the `slot` class macro
|
|
8
|
+
# - The `render_in` contract: block capture, HTML safety, dev annotations
|
|
9
|
+
#
|
|
10
|
+
# See: specs/the-holy-view-spec.md, specs/the-holy-slot-spec.md
|
|
11
|
+
|
|
12
|
+
class Component
|
|
13
|
+
include ActiveModel::Model
|
|
14
|
+
include ActiveModel::Attributes
|
|
15
|
+
|
|
16
|
+
class_attribute :slot_names, default: []
|
|
17
|
+
|
|
18
|
+
def self.default(**overrides)
|
|
19
|
+
overrides.each do |name, value|
|
|
20
|
+
type = attribute_types.fetch(name.to_s).type
|
|
21
|
+
attribute name, type, default: value
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.slot(name)
|
|
26
|
+
self.slot_names = slot_names + [ name ]
|
|
27
|
+
|
|
28
|
+
define_method(name) { |&block|
|
|
29
|
+
@slots[name] = @view_context.capture(&block)
|
|
30
|
+
}
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def render_in(context, &block)
|
|
34
|
+
@view_context = context
|
|
35
|
+
@slots = {}
|
|
36
|
+
@content = context.capture(self, &block) if block
|
|
37
|
+
@content = ERB::Util.html_escape(@content) unless @content.nil? || @content.html_safe?
|
|
38
|
+
|
|
39
|
+
if Rails.env.development?
|
|
40
|
+
"<!-- BEGIN #{self.class.name} -->#{self}<!-- END #{self.class.name} -->".html_safe
|
|
41
|
+
else
|
|
42
|
+
to_s
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def to_s
|
|
47
|
+
raise NotImplementedError
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
def tag
|
|
53
|
+
@view_context.tag
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def safe_join(parts, sep = nil)
|
|
57
|
+
@view_context.safe_join(parts.compact, sep)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def class_names(*args)
|
|
61
|
+
@view_context.class_names(*args)
|
|
62
|
+
end
|
|
63
|
+
end
|
data/config/importmap.rb
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
pin "ui", to: "ui/index.js"
|
|
2
|
+
|
|
3
|
+
pin "ui/controllers/fui_site_controller", to: "ui/controllers/fui_site_controller.js"
|
|
4
|
+
pin "ui/controllers/fui_form_controller", to: "ui/controllers/fui_form_controller.js"
|
|
5
|
+
pin "ui/controllers/fui_accordion_controller", to: "ui/controllers/fui_accordion_controller.js"
|
|
6
|
+
pin "ui/controllers/fui_api_controller", to: "ui/controllers/fui_api_controller.js"
|
|
7
|
+
pin "ui/controllers/fui_calendar_controller", to: "ui/controllers/fui_calendar_controller.js"
|
|
8
|
+
pin "ui/controllers/fui_checkbox_controller", to: "ui/controllers/fui_checkbox_controller.js"
|
|
9
|
+
pin "ui/controllers/fui_dimmer_controller", to: "ui/controllers/fui_dimmer_controller.js"
|
|
10
|
+
pin "ui/controllers/fui_dropdown_controller", to: "ui/controllers/fui_dropdown_controller.js"
|
|
11
|
+
pin "ui/controllers/fui_embed_controller", to: "ui/controllers/fui_embed_controller.js"
|
|
12
|
+
pin "ui/controllers/fui_flyout_controller", to: "ui/controllers/fui_flyout_controller.js"
|
|
13
|
+
pin "ui/controllers/fui_modal_controller", to: "ui/controllers/fui_modal_controller.js"
|
|
14
|
+
pin "ui/controllers/fui_nag_controller", to: "ui/controllers/fui_nag_controller.js"
|
|
15
|
+
pin "ui/controllers/fui_popup_controller", to: "ui/controllers/fui_popup_controller.js"
|
|
16
|
+
pin "ui/controllers/fui_progress_controller", to: "ui/controllers/fui_progress_controller.js"
|
|
17
|
+
pin "ui/controllers/fui_rating_controller", to: "ui/controllers/fui_rating_controller.js"
|
|
18
|
+
pin "ui/controllers/fui_search_controller", to: "ui/controllers/fui_search_controller.js"
|
|
19
|
+
pin "ui/controllers/fui_shape_controller", to: "ui/controllers/fui_shape_controller.js"
|
|
20
|
+
pin "ui/controllers/fui_sidebar_controller", to: "ui/controllers/fui_sidebar_controller.js"
|
|
21
|
+
pin "ui/controllers/fui_slider_controller", to: "ui/controllers/fui_slider_controller.js"
|
|
22
|
+
pin "ui/controllers/fui_state_controller", to: "ui/controllers/fui_state_controller.js"
|
|
23
|
+
pin "ui/controllers/fui_sticky_controller", to: "ui/controllers/fui_sticky_controller.js"
|
|
24
|
+
pin "ui/controllers/fui_tab_controller", to: "ui/controllers/fui_tab_controller.js"
|
|
25
|
+
pin "ui/controllers/fui_toast_controller", to: "ui/controllers/fui_toast_controller.js"
|
|
26
|
+
pin "ui/controllers/fui_transition_controller", to: "ui/controllers/fui_transition_controller.js"
|
|
27
|
+
pin "ui/controllers/fui_visibility_controller", to: "ui/controllers/fui_visibility_controller.js"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# The Sacred Template Handler
|
|
4
|
+
#
|
|
5
|
+
# Registers .html.ruby as a template format. View files are pure Ruby —
|
|
6
|
+
# no angle brackets, no ERB sigils. All output flows through components
|
|
7
|
+
# and the `text` helper method into the output buffer.
|
|
8
|
+
#
|
|
9
|
+
# In development, templates are annotated with HTML comments and metadata
|
|
10
|
+
# so that browser dev tools can identify template boundaries.
|
|
11
|
+
|
|
12
|
+
ActionView::Template.register_template_handler :ruby, ->(template, source) {
|
|
13
|
+
if Rails.env.development?
|
|
14
|
+
meta = {
|
|
15
|
+
path: template.short_identifier,
|
|
16
|
+
virtual_path: template.virtual_path,
|
|
17
|
+
format: template.format,
|
|
18
|
+
variant: template.variant
|
|
19
|
+
}.to_json.gsub('"', '\\"')
|
|
20
|
+
|
|
21
|
+
<<~RUBY
|
|
22
|
+
output_buffer << "<template data-view-meta='#{meta}'></template>\\n".html_safe
|
|
23
|
+
output_buffer << "<!-- BEGIN #{template.short_identifier} -->\\n".html_safe
|
|
24
|
+
#{source}
|
|
25
|
+
output_buffer << "<!-- END #{template.short_identifier} -->\\n".html_safe
|
|
26
|
+
output_buffer
|
|
27
|
+
RUBY
|
|
28
|
+
else
|
|
29
|
+
"#{source}\noutput_buffer"
|
|
30
|
+
end
|
|
31
|
+
}
|
data/config/routes.rb
ADDED
data/lib/ui/engine.rb
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Ui
|
|
4
|
+
class Engine < ::Rails::Engine
|
|
5
|
+
initializer "ui.autoload_paths" do |app|
|
|
6
|
+
app.config.autoload_paths += [ root.join("app", "lib").to_s ]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
initializer "ui.assets" do |app|
|
|
10
|
+
app.config.assets.paths << root.join("formantic-ui")
|
|
11
|
+
app.config.assets.paths << root.join("app/javascript")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
initializer "ui.importmap", before: "importmap" do |app|
|
|
15
|
+
if app.config.respond_to?(:importmap)
|
|
16
|
+
app.config.importmap.paths << root.join("config/importmap.rb")
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
initializer "ui.helpers" do
|
|
21
|
+
ActiveSupport.on_load(:action_view) do
|
|
22
|
+
include ComponentHelper
|
|
23
|
+
include FuiHelper
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
data/lib/ui/version.rb
ADDED
data/lib/ui.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rails-active-ui
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- nathan
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-01 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: rails
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: 8.1.0
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 8.1.0
|
|
26
|
+
description: ActiveModel::Attributes-based view components
|
|
27
|
+
email:
|
|
28
|
+
- nathankidd@hey.com
|
|
29
|
+
executables: []
|
|
30
|
+
extensions: []
|
|
31
|
+
extra_rdoc_files: []
|
|
32
|
+
files:
|
|
33
|
+
- Rakefile
|
|
34
|
+
- app/assets/stylesheets.css
|
|
35
|
+
- app/components/accordion_component.rb
|
|
36
|
+
- app/components/ad_component.rb
|
|
37
|
+
- app/components/api_component.rb
|
|
38
|
+
- app/components/breadcrumb_component.rb
|
|
39
|
+
- app/components/button_component.rb
|
|
40
|
+
- app/components/calendar_component.rb
|
|
41
|
+
- app/components/card_component.rb
|
|
42
|
+
- app/components/checkbox_component.rb
|
|
43
|
+
- app/components/column_component.rb
|
|
44
|
+
- app/components/comment_component.rb
|
|
45
|
+
- app/components/concerns/alignable.rb
|
|
46
|
+
- app/components/concerns/attachable.rb
|
|
47
|
+
- app/components/concerns/orientable.rb
|
|
48
|
+
- app/components/concerns/positionable.rb
|
|
49
|
+
- app/components/concerns/sizeable.rb
|
|
50
|
+
- app/components/container_component.rb
|
|
51
|
+
- app/components/dimmer_component.rb
|
|
52
|
+
- app/components/divider_component.rb
|
|
53
|
+
- app/components/dropdown_component.rb
|
|
54
|
+
- app/components/embed_component.rb
|
|
55
|
+
- app/components/emoji_component.rb
|
|
56
|
+
- app/components/feed_component.rb
|
|
57
|
+
- app/components/flag_component.rb
|
|
58
|
+
- app/components/flyout_component.rb
|
|
59
|
+
- app/components/form_component.rb
|
|
60
|
+
- app/components/grid_component.rb
|
|
61
|
+
- app/components/h_stack_component.rb
|
|
62
|
+
- app/components/header_component.rb
|
|
63
|
+
- app/components/icon_component.rb
|
|
64
|
+
- app/components/image_component.rb
|
|
65
|
+
- app/components/input_component.rb
|
|
66
|
+
- app/components/item_component.rb
|
|
67
|
+
- app/components/item_group_component.rb
|
|
68
|
+
- app/components/label_component.rb
|
|
69
|
+
- app/components/link_component.rb
|
|
70
|
+
- app/components/list_component.rb
|
|
71
|
+
- app/components/loader_component.rb
|
|
72
|
+
- app/components/menu_component.rb
|
|
73
|
+
- app/components/menu_item_component.rb
|
|
74
|
+
- app/components/message_component.rb
|
|
75
|
+
- app/components/modal_component.rb
|
|
76
|
+
- app/components/nag_component.rb
|
|
77
|
+
- app/components/overlay_component.rb
|
|
78
|
+
- app/components/placeholder_component.rb
|
|
79
|
+
- app/components/popup_component.rb
|
|
80
|
+
- app/components/progress_component.rb
|
|
81
|
+
- app/components/pusher_component.rb
|
|
82
|
+
- app/components/rail_component.rb
|
|
83
|
+
- app/components/rating_component.rb
|
|
84
|
+
- app/components/reset_component.rb
|
|
85
|
+
- app/components/reveal_component.rb
|
|
86
|
+
- app/components/row_component.rb
|
|
87
|
+
- app/components/search_component.rb
|
|
88
|
+
- app/components/segment_component.rb
|
|
89
|
+
- app/components/segment_group_component.rb
|
|
90
|
+
- app/components/shape_component.rb
|
|
91
|
+
- app/components/sidebar_component.rb
|
|
92
|
+
- app/components/site_component.rb
|
|
93
|
+
- app/components/slider_component.rb
|
|
94
|
+
- app/components/state_component.rb
|
|
95
|
+
- app/components/statistic_component.rb
|
|
96
|
+
- app/components/step_component.rb
|
|
97
|
+
- app/components/step_group_component.rb
|
|
98
|
+
- app/components/sticky_component.rb
|
|
99
|
+
- app/components/sub_header_component.rb
|
|
100
|
+
- app/components/sub_menu_component.rb
|
|
101
|
+
- app/components/tab_component.rb
|
|
102
|
+
- app/components/table_cell_component.rb
|
|
103
|
+
- app/components/table_component.rb
|
|
104
|
+
- app/components/table_row_component.rb
|
|
105
|
+
- app/components/text_component.rb
|
|
106
|
+
- app/components/toast_component.rb
|
|
107
|
+
- app/components/transition_component.rb
|
|
108
|
+
- app/components/v_stack_component.rb
|
|
109
|
+
- app/components/visibility_component.rb
|
|
110
|
+
- app/helpers/component_helper.rb
|
|
111
|
+
- app/helpers/fui_helper.rb
|
|
112
|
+
- app/javascript/accordion.js
|
|
113
|
+
- app/javascript/accordion.min.js
|
|
114
|
+
- app/javascript/api.js
|
|
115
|
+
- app/javascript/api.min.js
|
|
116
|
+
- app/javascript/calendar.js
|
|
117
|
+
- app/javascript/calendar.min.js
|
|
118
|
+
- app/javascript/checkbox.js
|
|
119
|
+
- app/javascript/checkbox.min.js
|
|
120
|
+
- app/javascript/dimmer.js
|
|
121
|
+
- app/javascript/dimmer.min.js
|
|
122
|
+
- app/javascript/dropdown.js
|
|
123
|
+
- app/javascript/dropdown.min.js
|
|
124
|
+
- app/javascript/embed.js
|
|
125
|
+
- app/javascript/embed.min.js
|
|
126
|
+
- app/javascript/flyout.js
|
|
127
|
+
- app/javascript/flyout.min.js
|
|
128
|
+
- app/javascript/form.js
|
|
129
|
+
- app/javascript/form.min.js
|
|
130
|
+
- app/javascript/jquery.js
|
|
131
|
+
- app/javascript/jquery.min.js
|
|
132
|
+
- app/javascript/modal.js
|
|
133
|
+
- app/javascript/modal.min.js
|
|
134
|
+
- app/javascript/nag.js
|
|
135
|
+
- app/javascript/nag.min.js
|
|
136
|
+
- app/javascript/popup.js
|
|
137
|
+
- app/javascript/popup.min.js
|
|
138
|
+
- app/javascript/progress.js
|
|
139
|
+
- app/javascript/progress.min.js
|
|
140
|
+
- app/javascript/rating.js
|
|
141
|
+
- app/javascript/rating.min.js
|
|
142
|
+
- app/javascript/search.js
|
|
143
|
+
- app/javascript/search.min.js
|
|
144
|
+
- app/javascript/shape.js
|
|
145
|
+
- app/javascript/shape.min.js
|
|
146
|
+
- app/javascript/sidebar.js
|
|
147
|
+
- app/javascript/sidebar.min.js
|
|
148
|
+
- app/javascript/site.js
|
|
149
|
+
- app/javascript/site.min.js
|
|
150
|
+
- app/javascript/slider.js
|
|
151
|
+
- app/javascript/slider.min.js
|
|
152
|
+
- app/javascript/state.js
|
|
153
|
+
- app/javascript/state.min.js
|
|
154
|
+
- app/javascript/sticky.js
|
|
155
|
+
- app/javascript/sticky.min.js
|
|
156
|
+
- app/javascript/tab.js
|
|
157
|
+
- app/javascript/tab.min.js
|
|
158
|
+
- app/javascript/toast.js
|
|
159
|
+
- app/javascript/toast.min.js
|
|
160
|
+
- app/javascript/transition.js
|
|
161
|
+
- app/javascript/transition.min.js
|
|
162
|
+
- app/javascript/ui/controllers/fui_accordion_controller.js
|
|
163
|
+
- app/javascript/ui/controllers/fui_api_controller.js
|
|
164
|
+
- app/javascript/ui/controllers/fui_calendar_controller.js
|
|
165
|
+
- app/javascript/ui/controllers/fui_checkbox_controller.js
|
|
166
|
+
- app/javascript/ui/controllers/fui_dimmer_controller.js
|
|
167
|
+
- app/javascript/ui/controllers/fui_dropdown_controller.js
|
|
168
|
+
- app/javascript/ui/controllers/fui_embed_controller.js
|
|
169
|
+
- app/javascript/ui/controllers/fui_flyout_controller.js
|
|
170
|
+
- app/javascript/ui/controllers/fui_form_controller.js
|
|
171
|
+
- app/javascript/ui/controllers/fui_modal_controller.js
|
|
172
|
+
- app/javascript/ui/controllers/fui_nag_controller.js
|
|
173
|
+
- app/javascript/ui/controllers/fui_popup_controller.js
|
|
174
|
+
- app/javascript/ui/controllers/fui_progress_controller.js
|
|
175
|
+
- app/javascript/ui/controllers/fui_rating_controller.js
|
|
176
|
+
- app/javascript/ui/controllers/fui_search_controller.js
|
|
177
|
+
- app/javascript/ui/controllers/fui_shape_controller.js
|
|
178
|
+
- app/javascript/ui/controllers/fui_sidebar_controller.js
|
|
179
|
+
- app/javascript/ui/controllers/fui_site_controller.js
|
|
180
|
+
- app/javascript/ui/controllers/fui_slider_controller.js
|
|
181
|
+
- app/javascript/ui/controllers/fui_state_controller.js
|
|
182
|
+
- app/javascript/ui/controllers/fui_sticky_controller.js
|
|
183
|
+
- app/javascript/ui/controllers/fui_tab_controller.js
|
|
184
|
+
- app/javascript/ui/controllers/fui_toast_controller.js
|
|
185
|
+
- app/javascript/ui/controllers/fui_transition_controller.js
|
|
186
|
+
- app/javascript/ui/controllers/fui_visibility_controller.js
|
|
187
|
+
- app/javascript/ui/index.js
|
|
188
|
+
- app/javascript/visibility.js
|
|
189
|
+
- app/javascript/visibility.min.js
|
|
190
|
+
- app/lib/component.rb
|
|
191
|
+
- config/importmap.rb
|
|
192
|
+
- config/initializers/ruby_template_handler.rb
|
|
193
|
+
- config/routes.rb
|
|
194
|
+
- lib/tasks/ui_tasks.rake
|
|
195
|
+
- lib/ui.rb
|
|
196
|
+
- lib/ui/engine.rb
|
|
197
|
+
- lib/ui/version.rb
|
|
198
|
+
homepage: https://github.com/n-at-han-k/rails-active-ui
|
|
199
|
+
licenses: []
|
|
200
|
+
metadata:
|
|
201
|
+
homepage_uri: https://github.com/n-at-han-k/rails-active-ui
|
|
202
|
+
source_code_uri: https://github.com/n-at-han-k/rails-active-ui
|
|
203
|
+
rdoc_options: []
|
|
204
|
+
require_paths:
|
|
205
|
+
- lib
|
|
206
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
207
|
+
requirements:
|
|
208
|
+
- - ">="
|
|
209
|
+
- !ruby/object:Gem::Version
|
|
210
|
+
version: '0'
|
|
211
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
|
+
requirements:
|
|
213
|
+
- - ">="
|
|
214
|
+
- !ruby/object:Gem::Version
|
|
215
|
+
version: '0'
|
|
216
|
+
requirements: []
|
|
217
|
+
rubygems_version: 3.7.2
|
|
218
|
+
specification_version: 4
|
|
219
|
+
summary: ActiveModel::Attributes-based view components
|
|
220
|
+
test_files: []
|