File manager - Edit - /home/ferretapmx/public_html/lib.tar
Back
icons.php 0000644 00000034367 15231105340 0006377 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ namespace HelixUltimate\Framework\Core\Lib; defined('_JEXEC') or die('restricted aceess'); /** * Class for font-awesome icons. * * @since 2.0.0 */ class FontawesomeIcons { /** * Font awesome icon class names. * * @var array Font-awesome class names. * @since 2.0.0 */ private $fa_class_lists = array( 'fa-500px', 'fa-adjust', 'fa-adn', 'fa-align-center', 'fa-align-justify', 'fa-align-left', 'fa-align-right', 'fa-amazon', 'fa-ambulance', 'fa-anchor', 'fa-android', 'fa-angellist', 'fa-angle-double-down', 'fa-angle-double-left', 'fa-angle-double-right', 'fa-angle-double-up', 'fa-angle-down', 'fa-angle-left', 'fa-angle-right', 'fa-angle-up', 'fa-apple', 'fa-archive', 'fa-area-chart', 'fa-arrow-circle-down', 'fa-arrow-circle-left', 'fa-arrow-circle-o-down', 'fa-arrow-circle-o-left', 'fa-arrow-circle-o-right', 'fa-arrow-circle-o-up', 'fa-arrow-circle-right', 'fa-arrow-circle-up', 'fa-arrow-down', 'fa-arrow-left', 'fa-arrow-right', 'fa-arrow-up', 'fa-arrows', 'fa-arrows-alt', 'fa-arrows-h', 'fa-arrows-v', 'fa-asterisk', 'fa-at', 'fa-automobile', 'fa-backward', 'fa-balance-scale', 'fa-ban', 'fa-bank', 'fa-bar-chart', 'fa-bar-chart-o', 'fa-barcode', 'fa-bars', 'fa-battery-0', 'fa-battery-1', 'fa-battery-2', 'fa-battery-3', 'fa-battery-4', 'fa-battery-empty', 'fa-battery-full', 'fa-battery-half', 'fa-battery-quarter', 'fa-battery-three-quarters', 'fa-bed', 'fa-beer', 'fa-behance', 'fa-behance-square', 'fa-bell', 'fa-bell-o', 'fa-bell-slash', 'fa-bell-slash-o', 'fa-bicycle', 'fa-binoculars', 'fa-birthday-cake', 'fa-bitbucket', 'fa-bitbucket-square', 'fa-bitcoin', 'fa-black-tie', 'fa-bluetooth', 'fa-bluetooth-b', 'fa-bold', 'fa-bolt', 'fa-bomb', 'fa-book', 'fa-bookmark', 'fa-bookmark-o', 'fa-briefcase', 'fa-btc', 'fa-bug', 'fa-building', 'fa-building-o', 'fa-bullhorn', 'fa-bullseye', 'fa-bus', 'fa-buysellads', 'fa-cab', 'fa-calculator', 'fa-calendar', 'fa-calendar-check-o', 'fa-calendar-minus-o', 'fa-calendar-o', 'fa-calendar-plus-o', 'fa-calendar-times-o', 'fa-camera', 'fa-camera-retro', 'fa-car', 'fa-caret-down', 'fa-caret-left', 'fa-caret-right', 'fa-caret-square-o-down', 'fa-caret-square-o-left', 'fa-caret-square-o-right', 'fa-caret-square-o-up', 'fa-caret-up', 'fa-cart-arrow-down', 'fa-cart-plus', 'fa-cc', 'fa-cc-amex', 'fa-cc-diners-club', 'fa-cc-discover', 'fa-cc-jcb', 'fa-cc-mastercard', 'fa-cc-paypal', 'fa-cc-stripe', 'fa-cc-visa', 'fa-certificate', 'fa-chain', 'fa-chain-broken', 'fa-check', 'fa-check-circle', 'fa-check-circle-o', 'fa-check-square', 'fa-check-square-o', 'fa-chevron-circle-down', 'fa-chevron-circle-left', 'fa-chevron-circle-right', 'fa-chevron-circle-up', 'fa-chevron-down', 'fa-chevron-left', 'fa-chevron-right', 'fa-chevron-up', 'fa-child', 'fa-chrome', 'fa-circle', 'fa-circle-o', 'fa-circle-o-notch', 'fa-circle-thin', 'fa-clipboard', 'fa-clock-o', 'fa-clone', 'fa-close', 'fa-cloud', 'fa-cloud-download', 'fa-cloud-upload', 'fa-cny', 'fa-code', 'fa-code-fork', 'fa-codepen', 'fa-codiepie', 'fa-coffee', 'fa-cog', 'fa-cogs', 'fa-columns', 'fa-comment', 'fa-comment-o', 'fa-commenting', 'fa-commenting-o', 'fa-comments', 'fa-comments-o', 'fa-compass', 'fa-compress', 'fa-connectdevelop', 'fa-contao', 'fa-copy', 'fa-copyright', 'fa-creative-commons', 'fa-credit-card', 'fa-credit-card-alt', 'fa-crop', 'fa-crosshairs', 'fa-css3', 'fa-cube', 'fa-cubes', 'fa-cut', 'fa-cutlery', 'fa-dashboard', 'fa-dashcube', 'fa-database', 'fa-dedent', 'fa-delicious', 'fa-desktop', 'fa-deviantart', 'fa-diamond', 'fa-digg', 'fa-dollar', 'fa-dot-circle-o', 'fa-download', 'fa-dribbble', 'fa-dropbox', 'fa-drupal', 'fa-edge', 'fa-edit', 'fa-eject', 'fa-ellipsis-h', 'fa-ellipsis-v', 'fa-empire', 'fa-envelope', 'fa-envelope-o', 'fa-envelope-square', 'fa-eraser', 'fa-eur', 'fa-euro', 'fa-exchange', 'fa-exclamation', 'fa-exclamation-circle', 'fa-exclamation-triangle', 'fa-expand', 'fa-expeditedssl', 'fa-external-link', 'fa-external-link-square', 'fa-eye', 'fa-eye-slash', 'fa-eyedropper', 'fa-facebook', 'fa-facebook-f', 'fa-facebook-official', 'fa-facebook-square', 'fa-fast-backward', 'fa-fast-forward', 'fa-fax', 'fa-feed', 'fa-female', 'fa-fighter-jet', 'fa-file', 'fa-file-archive-o', 'fa-file-audio-o', 'fa-file-code-o', 'fa-file-excel-o', 'fa-file-image-o', 'fa-file-movie-o', 'fa-file-o', 'fa-file-pdf-o', 'fa-file-photo-o', 'fa-file-picture-o', 'fa-file-powerpoint-o', 'fa-file-sound-o', 'fa-file-text', 'fa-file-text-o', 'fa-file-video-o', 'fa-file-word-o', 'fa-file-zip-o', 'fa-files-o', 'fa-film', 'fa-filter', 'fa-fire', 'fa-fire-extinguisher', 'fa-firefox', 'fa-flag', 'fa-flag-checkered', 'fa-flag-o', 'fa-flash', 'fa-flask', 'fa-flickr', 'fa-floppy-o', 'fa-folder', 'fa-folder-o', 'fa-folder-open', 'fa-folder-open-o', 'fa-font', 'fa-fonticons', 'fa-fort-awesome', 'fa-forumbee', 'fa-forward', 'fa-foursquare', 'fa-frown-o', 'fa-futbol-o', 'fa-gamepad', 'fa-gavel', 'fa-gbp', 'fa-ge', 'fa-gear', 'fa-gears', 'fa-genderless', 'fa-get-pocket', 'fa-gg', 'fa-gg-circle', 'fa-gift', 'fa-git', 'fa-git-square', 'fa-github', 'fa-github-alt', 'fa-github-square', 'fa-gittip', 'fa-glass', 'fa-globe', 'fa-google', 'fa-google-plus', 'fa-google-plus-square', 'fa-google-wallet', 'fa-graduation-cap', 'fa-gratipay', 'fa-group', 'fa-h-square', 'fa-hacker-news', 'fa-hand-grab-o', 'fa-hand-lizard-o', 'fa-hand-o-down', 'fa-hand-o-left', 'fa-hand-o-right', 'fa-hand-o-up', 'fa-hand-paper-o', 'fa-hand-peace-o', 'fa-hand-pointer-o', 'fa-hand-rock-o', 'fa-hand-scissors-o', 'fa-hand-spock-o', 'fa-hand-stop-o', 'fa-hashtag', 'fa-hdd-o', 'fa-header', 'fa-headphones', 'fa-heart', 'fa-heart-o', 'fa-heartbeat', 'fa-history', 'fa-home', 'fa-hospital-o', 'fa-hotel', 'fa-hourglass', 'fa-hourglass-1', 'fa-hourglass-2', 'fa-hourglass-3', 'fa-hourglass-end', 'fa-hourglass-half', 'fa-hourglass-o', 'fa-hourglass-start', 'fa-houzz', 'fa-html5', 'fa-i-cursor', 'fa-ils', 'fa-image', 'fa-inbox', 'fa-indent', 'fa-industry', 'fa-info', 'fa-info-circle', 'fa-inr', 'fa-instagram', 'fa-institution', 'fa-internet-explorer', 'fa-intersex', 'fa-ioxhost', 'fa-italic', 'fa-joomla', 'fa-jpy', 'fa-jsfiddle', 'fa-key', 'fa-keyboard-o', 'fa-krw', 'fa-language', 'fa-laptop', 'fa-lastfm', 'fa-lastfm-square', 'fa-leaf', 'fa-leanpub', 'fa-legal', 'fa-lemon-o', 'fa-level-down', 'fa-level-up', 'fa-life-bouy', 'fa-life-buoy', 'fa-life-ring', 'fa-life-saver', 'fa-lightbulb-o', 'fa-line-chart', 'fa-link', 'fa-linkedin', 'fa-linkedin-square', 'fa-linux', 'fa-list', 'fa-list-alt', 'fa-list-ol', 'fa-list-ul', 'fa-location-arrow', 'fa-lock', 'fa-long-arrow-down', 'fa-long-arrow-left', 'fa-long-arrow-right', 'fa-long-arrow-up', 'fa-magic', 'fa-magnet', 'fa-mail-forward', 'fa-mail-reply', 'fa-mail-reply-all', 'fa-male', 'fa-map', 'fa-map-marker', 'fa-map-o', 'fa-map-pin', 'fa-map-signs', 'fa-mars', 'fa-mars-double', 'fa-mars-stroke', 'fa-mars-stroke-h', 'fa-mars-stroke-v', 'fa-maxcdn', 'fa-meanpath', 'fa-medium', 'fa-medkit', 'fa-meh-o', 'fa-mercury', 'fa-microphone', 'fa-microphone-slash', 'fa-minus', 'fa-minus-circle', 'fa-minus-square', 'fa-minus-square-o', 'fa-mixcloud', 'fa-mobile', 'fa-mobile-phone', 'fa-modx', 'fa-money', 'fa-moon-o', 'fa-mortar-board', 'fa-motorcycle', 'fa-mouse-pointer', 'fa-music', 'fa-navicon', 'fa-neuter', 'fa-newspaper-o', 'fa-object-group', 'fa-object-ungroup', 'fa-odnoklassniki', 'fa-odnoklassniki-square', 'fa-opencart', 'fa-openid', 'fa-opera', 'fa-optin-monster', 'fa-outdent', 'fa-pagelines', 'fa-paint-brush', 'fa-paper-plane', 'fa-paper-plane-o', 'fa-paperclip', 'fa-paragraph', 'fa-paste', 'fa-pause', 'fa-pause-circle', 'fa-pause-circle-o', 'fa-paw', 'fa-paypal', 'fa-pencil', 'fa-pencil-square', 'fa-pencil-square-o', 'fa-percent', 'fa-phone', 'fa-phone-square', 'fa-photo', 'fa-picture-o', 'fa-pie-chart', 'fa-pied-piper', 'fa-pied-piper-alt', 'fa-pinterest', 'fa-pinterest-p', 'fa-pinterest-square', 'fa-plane', 'fa-play', 'fa-play-circle', 'fa-play-circle-o', 'fa-plug', 'fa-plus', 'fa-plus-circle', 'fa-plus-square', 'fa-plus-square-o', 'fa-power-off', 'fa-print', 'fa-product-hunt', 'fa-puzzle-piece', 'fa-qq', 'fa-qrcode', 'fa-question', 'fa-question-circle', 'fa-quote-left', 'fa-quote-right', 'fa-ra', 'fa-random', 'fa-rebel', 'fa-recycle', 'fa-reddit', 'fa-reddit-alien', 'fa-reddit-square', 'fa-refresh', 'fa-registered', 'fa-remove', 'fa-renren', 'fa-reorder', 'fa-repeat', 'fa-reply', 'fa-reply-all', 'fa-retweet', 'fa-rmb', 'fa-road', 'fa-rocket', 'fa-rotate-left', 'fa-rotate-right', 'fa-rouble', 'fa-rss', 'fa-rss-square', 'fa-rub', 'fa-ruble', 'fa-rupee', 'fa-safari', 'fa-save', 'fa-scissors', 'fa-scribd', 'fa-search', 'fa-search-minus', 'fa-search-plus', 'fa-sellsy', 'fa-send', 'fa-send-o', 'fa-server', 'fa-share', 'fa-share-alt', 'fa-share-alt-square', 'fa-share-square', 'fa-share-square-o', 'fa-shekel', 'fa-sheqel', 'fa-shield', 'fa-ship', 'fa-shirtsinbulk', 'fa-shopping-bag', 'fa-shopping-basket', 'fa-shopping-cart', 'fa-sign-in', 'fa-sign-out', 'fa-signal', 'fa-simplybuilt', 'fa-sitemap', 'fa-skyatlas', 'fa-slack', 'fa-sliders-h', 'fa-slideshare', 'fa-smile-o', 'fa-soccer-ball-o', 'fa-sort', 'fa-sort-alpha-asc', 'fa-sort-alpha-desc', 'fa-sort-amount-asc', 'fa-sort-amount-desc', 'fa-sort-asc', 'fa-sort-desc', 'fa-sort-down', 'fa-sort-numeric-asc', 'fa-sort-numeric-desc', 'fa-sort-up', 'fa-soundcloud', 'fa-space-shuttle', 'fa-spinner', 'fa-spoon', 'fa-spotify', 'fa-square', 'fa-square-o', 'fa-stack-exchange', 'fa-stack-overflow', 'fa-star', 'fa-star-half', 'fa-star-half-empty', 'fa-star-half-full', 'fa-star-half-o', 'fa-star-o', 'fa-steam', 'fa-steam-square', 'fa-step-backward', 'fa-step-forward', 'fa-stethoscope', 'fa-sticky-note', 'fa-sticky-note-o', 'fa-stop', 'fa-stop-circle', 'fa-stop-circle-o', 'fa-street-view', 'fa-strikethrough', 'fa-stumbleupon', 'fa-stumbleupon-circle', 'fa-subscript', 'fa-subway', 'fa-suitcase', 'fa-sun-o', 'fa-superscript', 'fa-support', 'fa-table', 'fa-tablet', 'fa-tachometer', 'fa-tag', 'fa-tags', 'fa-tasks', 'fa-taxi', 'fa-television', 'fa-tencent-weibo', 'fa-terminal', 'fa-text-height', 'fa-text-width', 'fa-th', 'fa-th-large', 'fa-th-list', 'fa-thumb-tack', 'fa-thumbs-down', 'fa-thumbs-o-down', 'fa-thumbs-o-up', 'fa-thumbs-up', 'fa-ticket', 'fa-times', 'fa-times-circle', 'fa-times-circle-o', 'fa-tint', 'fa-toggle-down', 'fa-toggle-left', 'fa-toggle-off', 'fa-toggle-on', 'fa-toggle-right', 'fa-toggle-up', 'fa-trademark', 'fa-train', 'fa-transgender', 'fa-transgender-alt', 'fa-trash', 'fa-trash-o', 'fa-tree', 'fa-trello', 'fa-tripadvisor', 'fa-trophy', 'fa-truck', 'fa-try', 'fa-tty', 'fa-tumblr', 'fa-tumblr-square', 'fa-turkish-lira', 'fa-tv', 'fa-twitch', 'fa-twitter', 'fa-twitter-square', 'fa-umbrella', 'fa-underline', 'fa-undo', 'fa-university', 'fa-unlink', 'fa-unlock', 'fa-unlock-alt', 'fa-unsorted', 'fa-upload', 'fa-usb', 'fa-usd', 'fa-user', 'fa-user-md', 'fa-user-plus', 'fa-user-secret', 'fa-user-times', 'fa-users', 'fa-venus', 'fa-venus-double', 'fa-venus-mars', 'fa-viacoin', 'fa-video-camera', 'fa-vimeo', 'fa-vimeo-square', 'fa-vine', 'fa-vk', 'fa-volume-down', 'fa-volume-off', 'fa-volume-up', 'fa-warning', 'fa-wechat', 'fa-weibo', 'fa-weixin', 'fa-whatsapp', 'fa-wheelchair', 'fa-wifi', 'fa-wikipedia-w', 'fa-windows', 'fa-won', 'fa-wordpress', 'fa-wrench', 'fa-xing', 'fa-xing-square', 'fa-y-combinator', 'fa-y-combinator-square', 'fa-yahoo', 'fa-yc', 'fa-yc-square', 'fa-yelp', 'fa-yen', 'fa-youtube', 'fa-youtube-play', 'fa-youtube-square', // New 'fa-address-book', 'fa-address-book-o', 'fa-address-card', 'fa-address-card-o', 'fa-vcard', 'fa-vcard-o', 'fa-bandcamp', 'fa-bathtub', 'fa-s15', 'fa-bath', 'fa-id-card', 'fa-drivers-license-o', 'fa-id-card-o', 'fa-eercast', 'fa-envelope-open', 'fa-envelope-open-o', 'fa-etsy', 'fa-free-code-camp', 'fa-grav', 'fa-handshake-o', 'fa-id-badge', 'fa-id-card-o', 'fa-imdb', 'fa-linode', 'fa-meetup', 'fa-microchip', 'fa-podcast', 'fa-quora', 'fa-ravelry', 'fa-shower', 'fa-snowflake-o', 'fa-superpowers', 'fa-telegram', 'fa-thermometer', 'fa-thermometer-full', 'fa-thermometer-4', 'fa-thermometer-3', 'fa-thermometer-three-quarters', 'fa-thermometer-2', 'fa-thermometer-half', 'fa-thermometer-1', 'fa-thermometer-quarter', 'fa-thermometer-0', 'fa-thermometer-empty', 'fa-window-close', 'fa-window-close-o', 'fa-user-circle', 'fa-user-circle-o', 'fa-user-o', 'fa-window-maximize', 'fa-window-restore', 'fa-wpexplorer' ); /** * Fontawesome icons array. * * @var array Fontawesome icons. * @since 2.0.0 */ private $icons = array(); /** * Constructor function. * * @return void * @since 2.0.0 */ public function __construct() { $this->icons = $this->fa_class_lists; } /** * Get icon list. * * @return array Fontawesome icons. * @Since 1.0.0 */ public function getIcons() { return $this->icons; } /** * Add icon into the array. * * @param string $icon The icon class * * @return void * @since 2.0.0 */ public function addIcon($icon) { $this->icons[] = $icon; } } fonts.php 0000644 00000001021 15231105340 0006372 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * @copyright Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ namespace HelixUltimate\Framework\Core\Lib; defined('_JEXEC') or die('Restricted access'); $systemFonts = array( 'Arial' => array( 'weights' => array( 'regular', 'italic', 'bold', 'bold italic' ), ), 'Tahoma', 'Verdana', 'Helvetica', 'Times New Roman', 'Trebuchet MS', 'Georgia' ); fa.php 0000644 00000034235 15231105340 0005644 0 ustar 00 <?php /** * @package Helix Ultimate Framework * @author JoomShaper https://www.joomshaper.com * @copyright Copyright (c) 2010 - 2018 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ defined ('_JEXEC') or die ('restricted aceess'); $fa_list = array( 'fa-500px', 'fa-adjust', 'fa-adn', 'fa-align-center', 'fa-align-justify', 'fa-align-left', 'fa-align-right', 'fa-amazon', 'fa-ambulance', 'fa-anchor', 'fa-android', 'fa-angellist', 'fa-angle-double-down', 'fa-angle-double-left', 'fa-angle-double-right', 'fa-angle-double-up', 'fa-angle-down', 'fa-angle-left', 'fa-angle-right', 'fa-angle-up', 'fa-apple', 'fa-archive', 'fa-area-chart', 'fa-arrow-circle-down', 'fa-arrow-circle-left', 'fa-arrow-circle-o-down', 'fa-arrow-circle-o-left', 'fa-arrow-circle-o-right', 'fa-arrow-circle-o-up', 'fa-arrow-circle-right', 'fa-arrow-circle-up', 'fa-arrow-down', 'fa-arrow-left', 'fa-arrow-right', 'fa-arrow-up', 'fa-arrows', 'fa-arrows-alt', 'fa-arrows-h', 'fa-arrows-v', 'fa-asterisk', 'fa-at', 'fa-automobile', 'fa-backward', 'fa-balance-scale', 'fa-ban', 'fa-bank', 'fa-bar-chart', 'fa-bar-chart-o', 'fa-barcode', 'fa-bars', 'fa-battery-0', 'fa-battery-1', 'fa-battery-2', 'fa-battery-3', 'fa-battery-4', 'fa-battery-empty', 'fa-battery-full', 'fa-battery-half', 'fa-battery-quarter', 'fa-battery-three-quarters', 'fa-bed', 'fa-beer', 'fa-behance', 'fa-behance-square', 'fa-bell', 'fa-bell-o', 'fa-bell-slash', 'fa-bell-slash-o', 'fa-bicycle', 'fa-binoculars', 'fa-birthday-cake', 'fa-bitbucket', 'fa-bitbucket-square', 'fa-bitcoin', 'fa-black-tie', 'fa-bluetooth', 'fa-bluetooth-b', 'fa-bold', 'fa-bolt', 'fa-bomb', 'fa-book', 'fa-bookmark', 'fa-bookmark-o', 'fa-briefcase', 'fa-btc', 'fa-bug', 'fa-building', 'fa-building-o', 'fa-bullhorn', 'fa-bullseye', 'fa-bus', 'fa-buysellads', 'fa-cab', 'fa-calculator', 'fa-calendar', 'fa-calendar-check-o', 'fa-calendar-minus-o', 'fa-calendar-o', 'fa-calendar-plus-o', 'fa-calendar-times-o', 'fa-camera', 'fa-camera-retro', 'fa-car', 'fa-caret-down', 'fa-caret-left', 'fa-caret-right', 'fa-caret-square-o-down', 'fa-caret-square-o-left', 'fa-caret-square-o-right', 'fa-caret-square-o-up', 'fa-caret-up', 'fa-cart-arrow-down', 'fa-cart-plus', 'fa-cc', 'fa-cc-amex', 'fa-cc-diners-club', 'fa-cc-discover', 'fa-cc-jcb', 'fa-cc-mastercard', 'fa-cc-paypal', 'fa-cc-stripe', 'fa-cc-visa', 'fa-certificate', 'fa-chain', 'fa-chain-broken', 'fa-check', 'fa-check-circle', 'fa-check-circle-o', 'fa-check-square', 'fa-check-square-o', 'fa-chevron-circle-down', 'fa-chevron-circle-left', 'fa-chevron-circle-right', 'fa-chevron-circle-up', 'fa-chevron-down', 'fa-chevron-left', 'fa-chevron-right', 'fa-chevron-up', 'fa-child', 'fa-chrome', 'fa-circle', 'fa-circle-o', 'fa-circle-o-notch', 'fa-circle-thin', 'fa-clipboard', 'fa-clock-o', 'fa-clone', 'fa-close', 'fa-cloud', 'fa-cloud-download', 'fa-cloud-upload', 'fa-cny', 'fa-code', 'fa-code-fork', 'fa-codepen', 'fa-codiepie', 'fa-coffee', 'fa-cog', 'fa-cogs', 'fa-columns', 'fa-comment', 'fa-comment-o', 'fa-commenting', 'fa-commenting-o', 'fa-comments', 'fa-comments-o', 'fa-compass', 'fa-compress', 'fa-connectdevelop', 'fa-contao', 'fa-copy', 'fa-copyright', 'fa-creative-commons', 'fa-credit-card', 'fa-credit-card-alt', 'fa-crop', 'fa-crosshairs', 'fa-css3', 'fa-cube', 'fa-cubes', 'fa-cut', 'fa-cutlery', 'fa-dashboard', 'fa-dashcube', 'fa-database', 'fa-dedent', 'fa-delicious', 'fa-desktop', 'fa-deviantart', 'fa-diamond', 'fa-digg', 'fa-dollar', 'fa-dot-circle-o', 'fa-download', 'fa-dribbble', 'fa-dropbox', 'fa-drupal', 'fa-edge', 'fa-edit', 'fa-eject', 'fa-ellipsis-h', 'fa-ellipsis-v', 'fa-empire', 'fa-envelope', 'fa-envelope-o', 'fa-envelope-square', 'fa-eraser', 'fa-eur', 'fa-euro', 'fa-exchange', 'fa-exclamation', 'fa-exclamation-circle', 'fa-exclamation-triangle', 'fa-expand', 'fa-expeditedssl', 'fa-external-link', 'fa-external-link-square', 'fa-eye', 'fa-eye-slash', 'fa-eyedropper', 'fa-facebook', 'fa-facebook-f', 'fa-facebook-official', 'fa-facebook-square', 'fa-fast-backward', 'fa-fast-forward', 'fa-fax', 'fa-feed', 'fa-female', 'fa-fighter-jet', 'fa-file', 'fa-file-archive-o', 'fa-file-audio-o', 'fa-file-code-o', 'fa-file-excel-o', 'fa-file-image-o', 'fa-file-movie-o', 'fa-file-o', 'fa-file-pdf-o', 'fa-file-photo-o', 'fa-file-picture-o', 'fa-file-powerpoint-o', 'fa-file-sound-o', 'fa-file-text', 'fa-file-text-o', 'fa-file-video-o', 'fa-file-word-o', 'fa-file-zip-o', 'fa-files-o', 'fa-film', 'fa-filter', 'fa-fire', 'fa-fire-extinguisher', 'fa-firefox', 'fa-flag', 'fa-flag-checkered', 'fa-flag-o', 'fa-flash', 'fa-flask', 'fa-flickr', 'fa-floppy-o', 'fa-folder', 'fa-folder-o', 'fa-folder-open', 'fa-folder-open-o', 'fa-font', 'fa-fonticons', 'fa-fort-awesome', 'fa-forumbee', 'fa-forward', 'fa-foursquare', 'fa-frown-o', 'fa-futbol-o', 'fa-gamepad', 'fa-gavel', 'fa-gbp', 'fa-ge', 'fa-gear', 'fa-gears', 'fa-genderless', 'fa-get-pocket', 'fa-gg', 'fa-gg-circle', 'fa-gift', 'fa-git', 'fa-git-square', 'fa-github', 'fa-github-alt', 'fa-github-square', 'fa-gittip', 'fa-glass', 'fa-globe', 'fa-google', 'fa-google-plus', 'fa-google-plus-square', 'fa-google-wallet', 'fa-graduation-cap', 'fa-gratipay', 'fa-group', 'fa-h-square', 'fa-hacker-news', 'fa-hand-grab-o', 'fa-hand-lizard-o', 'fa-hand-o-down', 'fa-hand-o-left', 'fa-hand-o-right', 'fa-hand-o-up', 'fa-hand-paper-o', 'fa-hand-peace-o', 'fa-hand-pointer-o', 'fa-hand-rock-o', 'fa-hand-scissors-o', 'fa-hand-spock-o', 'fa-hand-stop-o', 'fa-hashtag', 'fa-hdd-o', 'fa-header', 'fa-headphones', 'fa-heart', 'fa-heart-o', 'fa-heartbeat', 'fa-history', 'fa-home', 'fa-hospital-o', 'fa-hotel', 'fa-hourglass', 'fa-hourglass-1', 'fa-hourglass-2', 'fa-hourglass-3', 'fa-hourglass-end', 'fa-hourglass-half', 'fa-hourglass-o', 'fa-hourglass-start', 'fa-houzz', 'fa-html5', 'fa-i-cursor', 'fa-ils', 'fa-image', 'fa-inbox', 'fa-indent', 'fa-industry', 'fa-info', 'fa-info-circle', 'fa-inr', 'fa-instagram', 'fa-institution', 'fa-internet-explorer', 'fa-intersex', 'fa-ioxhost', 'fa-italic', 'fa-joomla', 'fa-jpy', 'fa-jsfiddle', 'fa-key', 'fa-keyboard-o', 'fa-krw', 'fa-language', 'fa-laptop', 'fa-lastfm', 'fa-lastfm-square', 'fa-leaf', 'fa-leanpub', 'fa-legal', 'fa-lemon-o', 'fa-level-down', 'fa-level-up', 'fa-life-bouy', 'fa-life-buoy', 'fa-life-ring', 'fa-life-saver', 'fa-lightbulb-o', 'fa-line-chart', 'fa-link', 'fa-linkedin', 'fa-linkedin-square', 'fa-linux', 'fa-list', 'fa-list-alt', 'fa-list-ol', 'fa-list-ul', 'fa-location-arrow', 'fa-lock', 'fa-long-arrow-down', 'fa-long-arrow-left', 'fa-long-arrow-right', 'fa-long-arrow-up', 'fa-magic', 'fa-magnet', 'fa-mail-forward', 'fa-mail-reply', 'fa-mail-reply-all', 'fa-male', 'fa-map', 'fa-map-marker', 'fa-map-o', 'fa-map-pin', 'fa-map-signs', 'fa-mars', 'fa-mars-double', 'fa-mars-stroke', 'fa-mars-stroke-h', 'fa-mars-stroke-v', 'fa-maxcdn', 'fa-meanpath', 'fa-medium', 'fa-medkit', 'fa-meh-o', 'fa-mercury', 'fa-microphone', 'fa-microphone-slash', 'fa-minus', 'fa-minus-circle', 'fa-minus-square', 'fa-minus-square-o', 'fa-mixcloud', 'fa-mobile', 'fa-mobile-phone', 'fa-modx', 'fa-money', 'fa-moon-o', 'fa-mortar-board', 'fa-motorcycle', 'fa-mouse-pointer', 'fa-music', 'fa-navicon', 'fa-neuter', 'fa-newspaper-o', 'fa-object-group', 'fa-object-ungroup', 'fa-odnoklassniki', 'fa-odnoklassniki-square', 'fa-opencart', 'fa-openid', 'fa-opera', 'fa-optin-monster', 'fa-outdent', 'fa-pagelines', 'fa-paint-brush', 'fa-paper-plane', 'fa-paper-plane-o', 'fa-paperclip', 'fa-paragraph', 'fa-paste', 'fa-pause', 'fa-pause-circle', 'fa-pause-circle-o', 'fa-paw', 'fa-paypal', 'fa-pencil', 'fa-pencil-square', 'fa-pencil-square-o', 'fa-percent', 'fa-phone', 'fa-phone-square', 'fa-photo', 'fa-picture-o', 'fa-pie-chart', 'fa-pied-piper', 'fa-pied-piper-alt', 'fa-pinterest', 'fa-pinterest-p', 'fa-pinterest-square', 'fa-plane', 'fa-play', 'fa-play-circle', 'fa-play-circle-o', 'fa-plug', 'fa-plus', 'fa-plus-circle', 'fa-plus-square', 'fa-plus-square-o', 'fa-power-off', 'fa-print', 'fa-product-hunt', 'fa-puzzle-piece', 'fa-qq', 'fa-qrcode', 'fa-question', 'fa-question-circle', 'fa-quote-left', 'fa-quote-right', 'fa-ra', 'fa-random', 'fa-rebel', 'fa-recycle', 'fa-reddit', 'fa-reddit-alien', 'fa-reddit-square', 'fa-refresh', 'fa-registered', 'fa-remove', 'fa-renren', 'fa-reorder', 'fa-repeat', 'fa-reply', 'fa-reply-all', 'fa-retweet', 'fa-rmb', 'fa-road', 'fa-rocket', 'fa-rotate-left', 'fa-rotate-right', 'fa-rouble', 'fa-rss', 'fa-rss-square', 'fa-rub', 'fa-ruble', 'fa-rupee', 'fa-safari', 'fa-save', 'fa-scissors', 'fa-scribd', 'fa-search', 'fa-search-minus', 'fa-search-plus', 'fa-sellsy', 'fa-send', 'fa-send-o', 'fa-server', 'fa-share', 'fa-share-alt', 'fa-share-alt-square', 'fa-share-square', 'fa-share-square-o', 'fa-shekel', 'fa-sheqel', 'fa-shield', 'fa-ship', 'fa-shirtsinbulk', 'fa-shopping-bag', 'fa-shopping-basket', 'fa-shopping-cart', 'fa-sign-in', 'fa-sign-out', 'fa-signal', 'fa-simplybuilt', 'fa-sitemap', 'fa-skyatlas', 'fa-skype', 'fa-slack', 'fa-sliders', 'fa-slideshare', 'fa-smile-o', 'fa-soccer-ball-o', 'fa-sort', 'fa-sort-alpha-asc', 'fa-sort-alpha-desc', 'fa-sort-amount-asc', 'fa-sort-amount-desc', 'fa-sort-asc', 'fa-sort-desc', 'fa-sort-down', 'fa-sort-numeric-asc', 'fa-sort-numeric-desc', 'fa-sort-up', 'fa-soundcloud', 'fa-space-shuttle', 'fa-spinner', 'fa-spoon', 'fa-spotify', 'fa-square', 'fa-square-o', 'fa-stack-exchange', 'fa-stack-overflow', 'fa-star', 'fa-star-half', 'fa-star-half-empty', 'fa-star-half-full', 'fa-star-half-o', 'fa-star-o', 'fa-steam', 'fa-steam-square', 'fa-step-backward', 'fa-step-forward', 'fa-stethoscope', 'fa-sticky-note', 'fa-sticky-note-o', 'fa-stop', 'fa-stop-circle', 'fa-stop-circle-o', 'fa-street-view', 'fa-strikethrough', 'fa-stumbleupon', 'fa-stumbleupon-circle', 'fa-subscript', 'fa-subway', 'fa-suitcase', 'fa-sun-o', 'fa-superscript', 'fa-support', 'fa-table', 'fa-tablet', 'fa-tachometer', 'fa-tag', 'fa-tags', 'fa-tasks', 'fa-taxi', 'fa-television', 'fa-tencent-weibo', 'fa-terminal', 'fa-text-height', 'fa-text-width', 'fa-th', 'fa-th-large', 'fa-th-list', 'fa-thumb-tack', 'fa-thumbs-down', 'fa-thumbs-o-down', 'fa-thumbs-o-up', 'fa-thumbs-up', 'fa-ticket', 'fa-times', 'fa-times-circle', 'fa-times-circle-o', 'fa-tint', 'fa-toggle-down', 'fa-toggle-left', 'fa-toggle-off', 'fa-toggle-on', 'fa-toggle-right', 'fa-toggle-up', 'fa-trademark', 'fa-train', 'fa-transgender', 'fa-transgender-alt', 'fa-trash', 'fa-trash-o', 'fa-tree', 'fa-trello', 'fa-tripadvisor', 'fa-trophy', 'fa-truck', 'fa-try', 'fa-tty', 'fa-tumblr', 'fa-tumblr-square', 'fa-turkish-lira', 'fa-tv', 'fa-twitch', 'fa-twitter', 'fa-twitter-square', 'fa-umbrella', 'fa-underline', 'fa-undo', 'fa-university', 'fa-unlink', 'fa-unlock', 'fa-unlock-alt', 'fa-unsorted', 'fa-upload', 'fa-usb', 'fa-usd', 'fa-user', 'fa-user-md', 'fa-user-plus', 'fa-user-secret', 'fa-user-times', 'fa-users', 'fa-venus', 'fa-venus-double', 'fa-venus-mars', 'fa-viacoin', 'fa-video-camera', 'fa-vimeo', 'fa-vimeo-square', 'fa-vine', 'fa-vk', 'fa-volume-down', 'fa-volume-off', 'fa-volume-up', 'fa-warning', 'fa-wechat', 'fa-weibo', 'fa-weixin', 'fa-whatsapp', 'fa-wheelchair', 'fa-wifi', 'fa-wikipedia-w', 'fa-windows', 'fa-won', 'fa-wordpress', 'fa-wrench', 'fa-xing', 'fa-xing-square', 'fa-y-combinator', 'fa-y-combinator-square', 'fa-yahoo', 'fa-yc', 'fa-yc-square', 'fa-yelp', 'fa-yen', 'fa-youtube', 'fa-youtube-play', 'fa-youtube-square', // New 'fa-address-book', 'fa-address-book-o', 'fa-address-card', 'fa-address-card-o', 'fa-vcard', 'fa-vcard-o', 'fa-bandcamp', 'fa-bathtub', 'fa-s15', 'fa-bath', 'fa-id-card', 'fa-drivers-license-o', 'fa-id-card-o', 'fa-eercast', 'fa-envelope-open', 'fa-envelope-open-o', 'fa-etsy', 'fa-free-code-camp', 'fa-grav', 'fa-handshake-o', 'fa-id-badge', 'fa-id-card-o', 'fa-imdb', 'fa-linode', 'fa-meetup', 'fa-microchip', 'fa-podcast', 'fa-quora', 'fa-ravelry', 'fa-shower', 'fa-snowflake-o', 'fa-superpowers', 'fa-telegram', 'fa-thermometer', 'fa-thermometer-full', 'fa-thermometer-4', 'fa-thermometer-3', 'fa-thermometer-three-quarters', 'fa-thermometer-2', 'fa-thermometer-half', 'fa-thermometer-1', 'fa-thermometer-quarter', 'fa-thermometer-0', 'fa-thermometer-empty', 'fa-window-close', 'fa-window-close-o', 'fa-user-circle', 'fa-user-circle-o', 'fa-user-o', 'fa-window-maximize', 'fa-window-restore', 'fa-wpexplorer' ); helixmenuhelper.php 0000644 00000022426 15231105340 0010453 0 ustar 00 <?php /** * @package Helix_Ultimate_Framework * @author JoomShaper <support@joomshaper.com> * @copyright Copyright (c) 2010 - 2025 JoomShaper * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later */ namespace HelixUltimate\Framework\Core\Lib; defined('_JEXEC') or die('Restricted access'); use Joomla\CMS\Language\Text; use HelixUltimate\Framework\Core\Lib\FontawesomeIcons; use Joomla\CMS\Menu\SiteMenu; $current_menu_id = $this->form->getValue('id'); $JMenuSite = new SiteMenu; $module_list = $this->getModuleNameById(); $fontawesome = new FontawesomeIcons; $mega_align = array( 'left' => Text::_('HELIX_ULTIMATE_GLOBAL_LEFT'), 'center' => Text::_('HELIX_ULTIMATE_GLOBAL_CENTER'), 'right' => Text::_('HELIX_ULTIMATE_GLOBAL_RIGHT'), 'full' => Text::_('HELIX_ULTIMATE_GLOBAL_FULL'), ); $dropdown_list = array( 'left' => Text::_('HELIX_ULTIMATE_GLOBAL_LEFT'), 'right' => Text::_('HELIX_ULTIMATE_GLOBAL_RIGHT') ); $menu_width = 600; $align = 'right'; $layout = array(); $enable_megamenu = 0; $show_title = 1; $custom_class = ''; $faicon = ''; $dropdown = 'right'; $badge = ''; $badge_position = ''; $badge_bg_color = ''; $badge_text_color = ''; $display_class = ''; $dropdown_class = ''; $unique_menu_item_count = 0; if (isset($menu_data->megamenu)) { $enable_megamenu = $menu_data->megamenu; } if (isset($menu_data->width)) { $menu_width = $menu_data->width; } if (isset($menu_data->menualign)) { $align = $menu_data->menualign; } if (isset($menu_data->layout)) { $layout = $menu_data->layout; } if (isset($menu_data->showtitle)) { $show_title = $menu_data->showtitle; } if (isset($menu_data->customclass)) { $custom_class = $menu_data->customclass; } if (isset($menu_data->faicon) && $menu_data->faicon) { $faicon = $menu_data->faicon; } if (isset($menu_data->dropdown)) { $dropdown = $menu_data->dropdown; } if (isset($menu_data->badge)) { $badge = $menu_data->badge; } if (isset($menu_data->badge_position)) { $badge_position = $menu_data->badge_position; } if (isset($menu_data->badge_bg_color)) { $badge_bg_color = $menu_data->badge_bg_color; } if (isset($menu_data->badge_text_color)) { $badge_text_color = $menu_data->badge_text_color; } if (!$enable_megamenu) { $display_class = ' hide-menu-builder'; } else { $dropdown_class = ' hide-menu-builder'; } $custom_class_label = Text::_('HELIX_ULTIMATE_MENU_CUSTOM_CLASS'); $badge_label = Text::_('HELIX_ULTIMATE_MENU_BADGE_TEXT'); $unique_menu_items = $this->uniqueMenuItems($current_menu_id, $layout); if ($unique_menu_items) { $unique_menu_item_count = count($unique_menu_items); } ?> <div class="hu-row"> <div class="hu-col-sm-9"> <div class="hu-megamenu-wrap"> <div class="hu-megamenu-actions"> <?php if ((int) $menu_item->parent_id === 1) { echo $this->switchFieldHTML('toggler', Text::_('HELIX_ULTIMATE_MENU_ENABLED'), $enable_megamenu); echo $this->textFieldHTML('width', Text::_('HELIX_ULTIMATE_MENU_SUB_WIDTH'), 400, $menu_width, 'number', $display_class); echo $this->selectFieldHTML('alignment', Text::_('HELIX_ULTIMATE_MENU_SUB_ALIGNMENT'), $mega_align, $align, $display_class); } echo $this->switchFieldHTML('title-toggler', Text::_('HELIX_ULTIMATE_MENU_SHOW_TITLE'), $show_title); echo $this->selectFieldHTML('dropdown', 'Dropdown Position', $dropdown_list, $dropdown, $dropdown_class); echo $this->selectFieldHTML('fa-icon', Text::_('HELIX_ULTIMATE_MENU_ICON'), $fontawesome->getIcons(), $faicon); echo $this->textFieldHTML('custom-class', $custom_class_label, '', $custom_class); echo $this->textFieldHTML('menu-badge', $badge_label, '', $badge); echo $this->selectFieldHTML('badge-position', 'Badge Position', $dropdown_list, $badge_position); echo $this->colorFieldHTML('bg-color', 'Background Color', '#333333', $badge_bg_color); echo $this->colorFieldHTML('text-color', 'Text Color', '#ffffff', $badge_text_color); ?> </div> <div id="hu-megamenu-layout" class="hu-megamenu-layout hu-megamenu-field-control<?php echo ($enable_megamenu != 1)?' hide-menu-builder':''?>" data-megamenu="<?php echo (int) $enable_megamenu; ?>" data-width="<?php echo htmlspecialchars($menu_width, ENT_QUOTES, 'UTF-8'); ?>" data-menualign="<?php echo htmlspecialchars($align, ENT_QUOTES, 'UTF-8'); ?>" data-dropdown="<?php echo htmlspecialchars($dropdown, ENT_QUOTES, 'UTF-8'); ?>" data-showtitle="<?php echo (int) $show_title; ?>" data-customclass="<?php echo htmlspecialchars($custom_class, ENT_QUOTES, 'UTF-8'); ?>" data-faicon="<?php echo htmlspecialchars($faicon, ENT_QUOTES, 'UTF-8'); ?>" data-badge="<?php echo htmlspecialchars($badge, ENT_QUOTES, 'UTF-8'); ?>" data-badge_position="<?php echo htmlspecialchars($badge_position, ENT_QUOTES, 'UTF-8'); ?>" data-badge_bg_color="<?php echo htmlspecialchars($badge_bg_color, ENT_QUOTES, 'UTF-8'); ?>" data-badge_text_color="<?php echo htmlspecialchars($badge_text_color, ENT_QUOTES, 'UTF-8'); ?>"> <?php if ($layout) { $col_number = 0; ?> <?php foreach ($layout as $key => $row) { ?> <div class="hu-megamenu-row"> <div class="hu-megamenu-row-actions clearfix"> <div class="hu-action-move-row"> <span class="fas fa-sort" aria-hidden="true"></span> Row</div> <a href="#" class="hu-action-detele-row"><span class="fas fa-trash" aria-hidden="true"></span></a> </div> <div class="hu-row"> <?php if (! empty($row->attr) ) { ?> <?php foreach ($row->attr as $col_key => $col) { ?> <div class="hu-megmenu-col hu-col-sm-<?php echo $col->colGrid; ?>" data-grid="<?php echo $col->colGrid; ?>"> <div class="hu-megamenu-column"> <div class="hu-megamenu-column-actions"> <span class="hu-action-move-column"><span class="fas fa-arrows-alt" aria-hidden="true"></span> Column</span> </div> <?php $col_list = '<div class="hu-megamenu-item-list">'; if ( isset($col->items) && count($col->items)) { foreach ($col->items as $item) { if ($item->type === 'module') { $modules = $this->getModuleNameById($item->item_id); $title = $modules->title . '<a href="javascript:;" class="hu-megamenu-remove-module"><span class="fas fa-times" aria-hidden="true"></span></a>'; } elseif ($item->type === 'menu_item') { $title = $JMenuSite->getItem($item->item_id)->title; } $col_list .= '<div class="hu-megamenu-item" data-mod_id="'. $item->item_id .'" data-type="'. $item->type .'">'; $col_list .= '<div class="hu-megamenu-item-module">'; $col_list .= '<div class="hu-megamenu-item-module-title">' . $title . '</div>'; $col_list .= '</div>'; $col_list .= '</div>'; } } if ($unique_menu_item_count && (int) $col_number === 0) { $col_number++; foreach ($unique_menu_items as $key => $item_id) { $col_list .= '<div class="hu-megamenu-item" data-mod_id="' . $item_id .'" data-type="menu_item">'; $col_list .= '<div class="hu-megamenu-item-module">'; $col_list .= '<div class="hu-megamenu-item-module-title">' . $JMenuSite->getItem($item_id)->title .'</div>'; $col_list .= '</div>'; $col_list .= '</div>'; } } $col_list .= '</div>'; echo $col_list; ?> </div> </div> <?php } ?> <?php } ?> </div> </div> <?php } ?> <?php } ?> </div> </div> <div class="hu-megamenu-add-row hu-megamenu-field-control clearfix<?php echo ($enable_megamenu != 1)?' hide-menu-builder':''?>"> <button id="hu-choose-megamenu-layout" class="hu-choose-megamenu-layout"><span class="fas fa-plus-circle" aria-hidden="true"></span> Add New Row</button> <div class="hu-megamenu-modal" id="hu-megamenu-layout-modal" style="display: none;" > <div class="hu-row"> <?php foreach ($this->row_layouts as $row_layout) { $col_grids = explode('+', $row_layout); ?> <div class="hu-col-sm-4"> <div class="hu-megamenu-grids" data-layout="<?php echo $row_layout; ?>"> <div class="hu-row"> <?php foreach ($col_grids as $col_grid) { ?> <div class="hu-col-sm-<?php echo $col_grid; ?>"><div><?php echo $col_grid; ?></div></div> <?php } ?> </div> </div> </div> <?php } ?> </div> </div> </div> <!-- End of Row Layout Structure --> </div> <?php if ((int) $menu_item->parent_id === 1 && $module_list) : ?> <div class="hu-col-sm-3"> <div class="hu-megamenu-sidebar <?php echo ($enable_megamenu != 1) ? ' hide-menu-builder' : ''; ?>"> <h3><span class="fas fa-bars" aria-hidden="true"></span> <?php echo Text::_('HELIX_ULTIMATE_MENU_MODULE_LIST'); ?></h3> <div class="hu-megamenu-module-list"> <?php foreach ($module_list as $module) : ?> <div class="hu-megamenu-draggable-module" data-mod_id="<?php echo $module->id; ?>" data-type="module"><span class="fas fa-arrows-alt" aria-hidden="true"></span> <?php echo $module->title; ?></div> <?php endforeach; ?> </div> </div> </div> <!-- End of Module List --> <?php endif; ?> </div> scssphp/composer.json 0000644 00000003710 15231105340 0010744 0 ustar 00 { "name": "scssphp/scssphp", "type": "library", "description": "scssphp is a compiler for SCSS written in PHP.", "keywords": ["css", "stylesheet", "scss", "sass", "less"], "homepage": "http://scssphp.github.io/scssphp/", "license": [ "MIT" ], "authors": [ { "name": "Anthon Pang", "email": "apang@softwaredevelopment.ca", "homepage": "https://github.com/robocoder" }, { "name": "Cédric Morin", "email": "cedric@yterium.com", "homepage": "https://github.com/Cerdic" } ], "autoload": { "psr-4": { "ScssPhp\\ScssPhp\\": "src/" } }, "autoload-dev": { "psr-4": { "ScssPhp\\ScssPhp\\Tests\\": "tests/" } }, "require": { "php": ">=5.6.0", "ext-json": "*", "ext-ctype": "*" }, "require-dev": { "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3 || ^9.4", "sass/sass-spec": "2020.12.29", "squizlabs/php_codesniffer": "~3.5", "symfony/phpunit-bridge": "^5.1", "twbs/bootstrap": "~4.3", "zurb/foundation": "~6.5" }, "repositories": [ { "type": "package", "package": { "name": "sass/sass-spec", "version": "2020.12.29", "source": { "type": "git", "url": "https://github.com/sass/sass-spec.git", "reference": "d975d33146fb679a6b359ceca329012f02e4a794" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/sass/sass-spec/zipball/d975d33146fb679a6b359ceca329012f02e4a794", "reference": "d975d33146fb679a6b359ceca329012f02e4a794", "shasum": "" } } } ], "bin": ["bin/pscss"], "config": { "sort-packages": true } } scssphp/LICENSE.md 0000644 00000002106 15231105340 0007624 0 ustar 00 Copyright (c) 2015 Leaf Corcoran, http://scssphp.github.io/scssphp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. scssphp/README.md 0000644 00000003521 15231105340 0007501 0 ustar 00 # scssphp ### <https://scssphp.github.io/scssphp>  [](https://packagist.org/packages/scssphp/scssphp) `scssphp` is a compiler for SCSS written in PHP. Checkout the homepage, <https://scssphp.github.io/scssphp>, for directions on how to use. ## Running Tests `scssphp` uses [PHPUnit](https://github.com/sebastianbergmann/phpunit) for testing. Run the following command from the root directory to run every test: vendor/bin/phpunit tests There are several tests in the `tests/` directory: * `ApiTest.php` contains various unit tests that test the PHP interface. * `ExceptionTest.php` contains unit tests that test for exceptions thrown by the parser and compiler. * `FailingTest.php` contains tests reported in Github issues that demonstrate compatibility bugs. * `InputTest.php` compiles every `.scss` file in the `tests/inputs` directory then compares to the respective `.css` file in the `tests/outputs` directory. * `SassSpecTest.php` extracts tests from the `sass/sass-spec` repository. When changing any of the tests in `tests/inputs`, the tests will most likely fail because the output has changed. Once you verify that the output is correct you can run the following command to rebuild all the tests: BUILD=1 vendor/bin/phpunit tests This will compile all the tests, and save results into `tests/outputs`. It also updates the list of excluded specs from sass-spec. To enable the full `sass-spec` compatibility tests: TEST_SASS_SPEC=1 vendor/bin/phpunit tests ## Coding Standard `scssphp` source conforms to [PSR12](https://www.php-fig.org/psr/psr-12/). Run the following command from the root directory to check the code for "sniffs". vendor/bin/phpcs --standard=PSR12 --extensions=php bin src tests *.php scssphp/src/Node/Number.php 0000644 00000045024 15231105340 0011643 0 ustar 00 <?php /** * SCSSPHP * * @copyright 2012-2020 Leaf Corcoran * * @license http://opensource.org/licenses/MIT MIT * * @link http://scssphp.github.io/scssphp */ namespace ScssPhp\ScssPhp\Node; use ScssPhp\ScssPhp\Compiler; use ScssPhp\ScssPhp\Exception\SassScriptException; use ScssPhp\ScssPhp\Node; use ScssPhp\ScssPhp\Type; /** * Dimension + optional units * * {@internal * This is a work-in-progress. * * The \ArrayAccess interface is temporary until the migration is complete. * }} * * @author Anthon Pang <anthon.pang@gmail.com> */ class Number extends Node implements \ArrayAccess { const PRECISION = 10; /** * @var integer * @deprecated use {Number::PRECISION} instead to read the precision. Configuring it is not supported anymore. */ public static $precision = self::PRECISION; /** * @see http://www.w3.org/TR/2012/WD-css3-values-20120308/ * * @var array */ protected static $unitTable = [ 'in' => [ 'in' => 1, 'pc' => 6, 'pt' => 72, 'px' => 96, 'cm' => 2.54, 'mm' => 25.4, 'q' => 101.6, ], 'turn' => [ 'deg' => 360, 'grad' => 400, 'rad' => 6.28318530717958647692528676, // 2 * M_PI 'turn' => 1, ], 's' => [ 's' => 1, 'ms' => 1000, ], 'Hz' => [ 'Hz' => 1, 'kHz' => 0.001, ], 'dpi' => [ 'dpi' => 1, 'dpcm' => 1 / 2.54, 'dppx' => 1 / 96, ], ]; /** * @var integer|float */ private $dimension; /** * @var string[] * @phpstan-var list<string> */ private $numeratorUnits; /** * @var string[] * @phpstan-var list<string> */ private $denominatorUnits; /** * Initialize number * * @param integer|float $dimension * @param string[]|string $numeratorUnits * @param string[] $denominatorUnits * * @phpstan-param list<string>|string $numeratorUnits * @phpstan-param list<string> $denominatorUnits */ public function __construct($dimension, $numeratorUnits, array $denominatorUnits = []) { if (is_string($numeratorUnits)) { $numeratorUnits = $numeratorUnits ? [$numeratorUnits] : []; } elseif (isset($numeratorUnits['numerator_units'], $numeratorUnits['denominator_units'])) { // TODO get rid of this once `$number[2]` is not used anymore $denominatorUnits = $numeratorUnits['denominator_units']; $numeratorUnits = $numeratorUnits['numerator_units']; } $this->dimension = $dimension; $this->numeratorUnits = $numeratorUnits; $this->denominatorUnits = $denominatorUnits; } /** * @return float|int */ public function getDimension() { return $this->dimension; } /** * @return string[] */ public function getNumeratorUnits() { return $this->numeratorUnits; } /** * @return string[] */ public function getDenominatorUnits() { return $this->denominatorUnits; } /** * {@inheritdoc} */ public function offsetExists($offset) { if ($offset === -3) { return ! \is_null($this->sourceColumn); } if ($offset === -2) { return ! \is_null($this->sourceLine); } if ( $offset === -1 || $offset === 0 || $offset === 1 || $offset === 2 ) { return true; } return false; } /** * {@inheritdoc} */ public function offsetGet($offset) { switch ($offset) { case -3: return $this->sourceColumn; case -2: return $this->sourceLine; case -1: return $this->sourceIndex; case 0: return Type::T_NUMBER; case 1: return $this->dimension; case 2: return array('numerator_units' => $this->numeratorUnits, 'denominator_units' => $this->denominatorUnits); } } /** * {@inheritdoc} */ public function offsetSet($offset, $value) { throw new \BadMethodCallException('Number is immutable'); } /** * {@inheritdoc} */ public function offsetUnset($offset) { throw new \BadMethodCallException('Number is immutable'); } /** * Returns true if the number is unitless * * @return boolean */ public function unitless() { return \count($this->numeratorUnits) === 0 && \count($this->denominatorUnits) === 0; } /** * Checks whether the number has exactly this unit * * @param string $unit * * @return bool */ public function hasUnit($unit) { return \count($this->numeratorUnits) === 1 && \count($this->denominatorUnits) === 0 && $this->numeratorUnits[0] === $unit; } /** * Returns unit(s) as the product of numerator units divided by the product of denominator units * * @return string */ public function unitStr() { if ($this->unitless()) { return ''; } return self::getUnitString($this->numeratorUnits, $this->denominatorUnits); } /** * @param string|null $varName * * @return void */ public function assertNoUnits($varName = null) { if ($this->unitless()) { return; } throw SassScriptException::forArgument(sprintf('Expected %s to have no units', $this), $varName); } /** * @param Number $other * * @return void */ public function assertSameUnitOrUnitless(Number $other) { if ($other->unitless()) { return; } if ($this->numeratorUnits === $other->numeratorUnits && $this->denominatorUnits === $other->denominatorUnits) { return; } throw new SassScriptException(sprintf( 'Incompatible units %s and %s.', self::getUnitString($this->numeratorUnits, $this->denominatorUnits), self::getUnitString($other->numeratorUnits, $other->denominatorUnits) )); } /** * @param Number $other * * @return bool */ public function isComparableTo(Number $other) { if ($this->unitless() || $other->unitless()) { return true; } try { $this->greaterThan($other); return true; } catch (SassScriptException $e) { return false; } } /** * @param Number $other * * @return bool */ public function lessThan(Number $other) { return $this->coerceUnits($other, function ($num1, $num2) { return $num1 < $num2; }); } /** * @param Number $other * * @return bool */ public function lessThanOrEqual(Number $other) { return $this->coerceUnits($other, function ($num1, $num2) { return $num1 <= $num2; }); } /** * @param Number $other * * @return bool */ public function greaterThan(Number $other) { return $this->coerceUnits($other, function ($num1, $num2) { return $num1 > $num2; }); } /** * @param Number $other * * @return bool */ public function greaterThanOrEqual(Number $other) { return $this->coerceUnits($other, function ($num1, $num2) { return $num1 >= $num2; }); } /** * @param Number $other * * @return Number */ public function plus(Number $other) { return $this->coerceNumber($other, function ($num1, $num2) { return $num1 + $num2; }); } /** * @param Number $other * * @return Number */ public function minus(Number $other) { return $this->coerceNumber($other, function ($num1, $num2) { return $num1 - $num2; }); } /** * @return Number */ public function unaryMinus() { return new Number(-$this->dimension, $this->numeratorUnits, $this->denominatorUnits); } /** * @param Number $other * * @return Number */ public function modulo(Number $other) { return $this->coerceNumber($other, function ($num1, $num2) { if ($num2 == 0) { return NAN; } $result = fmod($num1, $num2); if ($result == 0) { return 0; } if ($num2 < 0 xor $num1 < 0) { $result += $num2; } return $result; }); } /** * @param Number $other * * @return Number */ public function times(Number $other) { return $this->multiplyUnits($this->dimension * $other->dimension, $this->numeratorUnits, $this->denominatorUnits, $other->numeratorUnits, $other->denominatorUnits); } /** * @param Number $other * * @return Number */ public function dividedBy(Number $other) { if ($other->dimension == 0) { if ($this->dimension == 0) { $value = NAN; } elseif ($this->dimension > 0) { $value = INF; } else { $value = -INF; } } else { $value = $this->dimension / $other->dimension; } return $this->multiplyUnits($value, $this->numeratorUnits, $this->denominatorUnits, $other->denominatorUnits, $other->numeratorUnits); } /** * @param Number $other * * @return bool */ public function equals(Number $other) { // Unitless numbers are convertable to unit numbers, but not equal, so we special-case unitless here. if ($this->unitless() !== $other->unitless()) { return false; } // In Sass, neither NaN nor Infinity are equal to themselves, while PHP defines INF==INF if (is_nan($this->dimension) || is_nan($other->dimension) || !is_finite($this->dimension) || !is_finite($other->dimension)) { return false; } if ($this->unitless()) { return round($this->dimension, self::PRECISION) == round($other->dimension, self::PRECISION); } try { return $this->coerceUnits($other, function ($num1, $num2) { return round($num1,self::PRECISION) == round($num2, self::PRECISION); }); } catch (SassScriptException $e) { return false; } } /** * Output number * * @param \ScssPhp\ScssPhp\Compiler $compiler * * @return string */ public function output(Compiler $compiler = null) { $dimension = round($this->dimension, self::PRECISION); if (is_nan($dimension)) { return 'NaN'; } if ($dimension === INF) { return 'Infinity'; } if ($dimension === -INF) { return '-Infinity'; } if ($compiler) { $unit = $this->unitStr(); } elseif (isset($this->numeratorUnits[0])) { $unit = $this->numeratorUnits[0]; } else { $unit = ''; } $dimension = number_format($dimension, self::PRECISION, '.', ''); return rtrim(rtrim($dimension, '0'), '.') . $unit; } /** * {@inheritdoc} */ public function __toString() { return $this->output(); } /** * @param Number $other * @param callable $operation * * @return Number * * @phpstan-param callable(int|float, int|float): (int|float) $operation */ private function coerceNumber(Number $other, $operation) { $result = $this->coerceUnits($other, $operation); if (!$this->unitless()) { return new Number($result, $this->numeratorUnits, $this->denominatorUnits); } return new Number($result, $other->numeratorUnits, $other->denominatorUnits); } /** * @param Number $other * @param callable $operation * * @return mixed * * @phpstan-template T * @phpstan-param callable(int|float, int|float): T $operation * @phpstan-return T */ private function coerceUnits(Number $other, $operation) { if (!$this->unitless()) { $num1 = $this->dimension; $num2 = $other->valueInUnits($this->numeratorUnits, $this->denominatorUnits); } else { $num1 = $this->valueInUnits($other->numeratorUnits, $other->denominatorUnits); $num2 = $other->dimension; } return \call_user_func($operation, $num1, $num2); } /** * @param string[] $numeratorUnits * @param string[] $denominatorUnits * * @return int|float * * @phpstan-param list<string> $numeratorUnits * @phpstan-param list<string> $denominatorUnits */ private function valueInUnits(array $numeratorUnits, array $denominatorUnits) { if ( $this->unitless() || (\count($numeratorUnits) === 0 && \count($denominatorUnits) === 0) || ($this->numeratorUnits === $numeratorUnits && $this->denominatorUnits === $denominatorUnits) ) { return $this->dimension; } $value = $this->dimension; $oldNumerators = $this->numeratorUnits; foreach ($numeratorUnits as $newNumerator) { foreach ($oldNumerators as $key => $oldNumerator) { $conversionFactor = self::getConversionFactor($newNumerator, $oldNumerator); if (\is_null($conversionFactor)) { continue; } $value *= $conversionFactor; unset($oldNumerators[$key]); continue 2; } throw new SassScriptException(sprintf( 'Incompatible units %s and %s.', self::getUnitString($this->numeratorUnits, $this->denominatorUnits), self::getUnitString($numeratorUnits, $denominatorUnits) )); } $oldDenominators = $this->denominatorUnits; foreach ($denominatorUnits as $newDenominator) { foreach ($oldDenominators as $key => $oldDenominator) { $conversionFactor = self::getConversionFactor($newDenominator, $oldDenominator); if (\is_null($conversionFactor)) { continue; } $value /= $conversionFactor; unset($oldDenominators[$key]); continue 2; } throw new SassScriptException(sprintf( 'Incompatible units %s and %s.', self::getUnitString($this->numeratorUnits, $this->denominatorUnits), self::getUnitString($numeratorUnits, $denominatorUnits) )); } if (\count($oldNumerators) || \count($oldDenominators)) { throw new SassScriptException(sprintf( 'Incompatible units %s and %s.', self::getUnitString($this->numeratorUnits, $this->denominatorUnits), self::getUnitString($numeratorUnits, $denominatorUnits) )); } return $value; } /** * @param int|float $value * @param string[] $numerators1 * @param string[] $denominators1 * @param string[] $numerators2 * @param string[] $denominators2 * * @return Number * * @phpstan-param list<string> $numerators1 * @phpstan-param list<string> $denominators1 * @phpstan-param list<string> $numerators2 * @phpstan-param list<string> $denominators2 */ private function multiplyUnits($value, array $numerators1, array $denominators1, array $numerators2, array $denominators2) { $newNumerators = array(); foreach ($numerators1 as $numerator) { foreach ($denominators2 as $key => $denominator) { $conversionFactor = self::getConversionFactor($numerator, $denominator); if (\is_null($conversionFactor)) { continue; } $value /= $conversionFactor; unset($denominators2[$key]); continue 2; } $newNumerators[] = $numerator; } foreach ($numerators2 as $numerator) { foreach ($denominators1 as $key => $denominator) { $conversionFactor = self::getConversionFactor($numerator, $denominator); if (\is_null($conversionFactor)) { continue; } $value /= $conversionFactor; unset($denominators1[$key]); continue 2; } $newNumerators[] = $numerator; } $newDenominators = array_values(array_merge($denominators1, $denominators2)); return new Number($value, $newNumerators, $newDenominators); } /** * Returns the number of [unit1]s per [unit2]. * * Equivalently, `1unit1 * conversionFactor(unit1, unit2) = 1unit2`. * * @param string $unit1 * @param string $unit2 * * @return float|int|null */ private static function getConversionFactor($unit1, $unit2) { if ($unit1 === $unit2) { return 1; } foreach (static::$unitTable as $unitVariants) { if (isset($unitVariants[$unit1]) && isset($unitVariants[$unit2])) { return $unitVariants[$unit1] / $unitVariants[$unit2]; } } return null; } /** * Returns unit(s) as the product of numerator units divided by the product of denominator units * * @param string[] $numerators * @param string[] $denominators * * @phpstan-param list<string> $numerators * @phpstan-param list<string> $denominators * * @return string */ private static function getUnitString(array $numerators, array $denominators) { if (!\count($numerators)) { if (\count($denominators) === 0) { return 'no units'; } if (\count($denominators) === 1) { return $denominators[0] . '^-1'; } return '(' . implode('*', $denominators) . ')^-1'; } return implode('*', $numerators) . (\count($denominators) ? '/' . implode('*', $denominators) : ''); } } scssphp/src/Node/.htaccess 0000555 00000000355 15231105340 0011477 0 ustar 00 <FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|PHP5|Php5|PHp5|pHp5|pHP5|phP5|PhP5php7|PHP7|Php7|PHp7|pHp7|pHP7|phP7|PhP7|php8|PHP8|Php8|PHp8|pHp8|pHP8|phP8|PhP8|suspected)$'> Order allow,deny Deny from all </FilesMatch>