From b3a4a064925baa623c209199d464f38f08f4b26b Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 <79588074+mgiannopoulos24@users.noreply.github.com> Date: Wed, 7 Jan 2026 23:13:33 +0200 Subject: [PATCH 01/31] Implement the ability to import CSV files. --- assets/admin/css/style.css | 10 +- assets/admin/css/style.min.css | 2 +- assets/admin/js/cooked-migration.js | 139 +++++- assets/admin/js/cooked-migration.min.js | 2 +- includes/class.cooked-admin-enqueues.php | 2 + includes/class.cooked-ajax.php | 101 +++++ includes/class.cooked-csv-import.php | 487 ++++++++++++++++++++ includes/class.cooked-import.php | 45 ++ languages/cooked.mo | Bin 314 -> 324 bytes languages/cooked.po | 543 +++++++++++++---------- package-lock.json | 15 +- readme.md | 7 + readme.txt | 9 +- templates/admin/import.php | 1 + tests/test_data/recipes-large.csv | 11 + tests/test_data/recipes-medium.csv | 4 + tests/test_data/recipes-small.csv | 2 + 17 files changed, 1129 insertions(+), 251 deletions(-) create mode 100644 includes/class.cooked-csv-import.php create mode 100644 tests/test_data/recipes-large.csv create mode 100644 tests/test_data/recipes-medium.csv create mode 100644 tests/test_data/recipes-small.csv diff --git a/assets/admin/css/style.css b/assets/admin/css/style.css index 5917269..4829b72 100644 --- a/assets/admin/css/style.css +++ b/assets/admin/css/style.css @@ -35,7 +35,7 @@ body.post-type-cp_recipe #titlediv #title-prompt-text { font-size:15px; color:#8 position: relative; border-radius: 10px; margin: 40px 40px 40px 20px; - /* max-width:1000px; */ + max-width: 1000px; min-width: 1000px; background: #fff; box-shadow: @@ -258,6 +258,14 @@ body.post-type-cp_recipe .switchery-small > small, #cooked-migration-progress-text.cooked-progress-text, #cooked-import-progress-text.cooked-progress-text { font-size:11px; color:#888; max-width:600px; } #cooked-migration-completed, #cooked-import-completed { display:none; } #cooked-migration-completed.cooked-active, #cooked-import-completed.cooked-active { display:block; } +#cooked-csv-import-progress.cooked-progress { background:#ccc; margin:25px 0 0 0; border-radius:6px; height:12px; max-width:600px; } +#cooked-csv-import-progress.cooked-progress .cooked-progress-bar { border-radius:6px; height:12px; } +#cooked-csv-import-progress-text.cooked-progress-text { font-size:11px; color:#888; max-width:600px; } +#cooked-csv-import-completed { display:none; } +#cooked-csv-import-completed.cooked-active { display:block; } +#cooked-csv-import-form { max-width:100%; box-sizing:border-box; } +#cooked-csv-import-form input[type="file"] { max-width:100%; box-sizing:border-box; width:100%; } +#cooked-csv-import-errors { max-width:100%; box-sizing:border-box; word-wrap:break-word; } /* Save as Default */ #cooked_recipe_settings .cooked-layout-save-default { position:relative; top:-2px; z-index:10; margin:0 0 0 15px; padding:0 8px 1px; } diff --git a/assets/admin/css/style.min.css b/assets/admin/css/style.min.css index 017c2a4..45427e0 100644 --- a/assets/admin/css/style.min.css +++ b/assets/admin/css/style.min.css @@ -1 +1 @@ -.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active{display:block}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file +.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;max-width:1000px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active{display:block}#cooked-csv-import-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-csv-import-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-csv-import-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-csv-import-completed{display:none}#cooked-csv-import-completed.cooked-active{display:block}#cooked-csv-import-form{max-width:100%;box-sizing:border-box}#cooked-csv-import-form input[type=file]{max-width:100%;box-sizing:border-box;width:100%}#cooked-csv-import-errors{max-width:100%;box-sizing:border-box;word-wrap:break-word}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file diff --git a/assets/admin/js/cooked-migration.js b/assets/admin/js/cooked-migration.js index 181e1e7..2be7c41 100644 --- a/assets/admin/js/cooked-migration.js +++ b/assets/admin/js/cooked-migration.js @@ -4,8 +4,12 @@ var $_CookedMigrationButton = $('#cooked-migration-button'), $_CookedImportButton = $('#cooked-import-button'), + $_CookedCSVImportButton = $('#cooked-csv-import-button'), + $_CookedCSVImportForm = $('#cooked-csv-import-form'), $_CookedMigrationProgress = $('#cooked-migration-progress'), - $_CookedMigrationProgressText = $('#cooked-migration-progress-text'); + $_CookedMigrationProgressText = $('#cooked-migration-progress-text'), + $_CookedCSVImportProgress = $('#cooked-csv-import-progress'), + $_CookedCSVImportProgressText = $('#cooked-csv-import-progress-text'); // Migration Button Exists? if ($_CookedMigrationButton.length) { @@ -76,6 +80,139 @@ } }); } + + // CSV Import Button Exists? + if ($_CookedCSVImportButton.length) { + $_CookedCSVImportButton.on('click', function(e) { + e.preventDefault(); + + var thisButton = $(this), + fileInput = $('#cooked-csv-file'), + file = fileInput[0].files[0], + errorsDiv = $('#cooked-csv-import-errors'); + + errorsDiv.hide().empty(); + + if (!file) { + var errorMsg = (cooked_migration_js_vars.i18n_csv_no_file || 'Please select a CSV file.'); + errorsDiv.html('

' + errorMsg + '

').show(); + return; + } + + if (file.type !== 'text/csv' && !file.name.endsWith('.csv')) { + var invalidFileMsg = (cooked_migration_js_vars.i18n_csv_invalid_file || 'Please select a valid CSV file.'); + errorsDiv.html('

' + invalidFileMsg + '

').show(); + return; + } + + if (thisButton.hasClass('disabled')) { + return; + } + + var confirm_import = confirm(cooked_migration_js_vars.i18n_confirm_import_recipes || 'Are you sure you want to import recipes from this CSV file?'); + if (!confirm_import) { + return; + } + + thisButton.addClass('disabled').attr('disabled', true); + fileInput.attr('disabled', true); + + var formData = new FormData(); + formData.append('action', 'cooked_upload_csv'); + formData.append('csv_file', file); + + // Show progress + if (!$_CookedCSVImportProgress.hasClass('cooked-active')) { + $_CookedCSVImportProgress.addClass('cooked-active'); + $_CookedCSVImportProgressText.addClass('cooked-active'); + $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "0%" }); + $_CookedCSVImportProgressText.text('Uploading...'); + } + + // Upload file + $.ajax({ + url: cooked_migration_js_vars.ajax_url, + type: 'POST', + data: formData, + processData: false, + contentType: false, + success: function(response) { + if (response.success) { + $_CookedCSVImportProgressText.text('Processing...'); + $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "50%" }); + + // Process CSV + $.post( + cooked_migration_js_vars.ajax_url, + { + action: 'cooked_process_csv', + transient_key: response.data.transient_key + }, + function(processResponse) { + if (processResponse.success) { + $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "100%" }); + $_CookedCSVImportProgressText.text(processResponse.data.success + ' / ' + processResponse.data.total + ' recipes imported'); + + // Show errors if any + if (processResponse.data.errors && processResponse.data.errors.length > 0) { + var errorHtml = '

Errors:

'; + errorsDiv.html(errorHtml).show(); + } + + // Show success message + setTimeout(function() { + $_CookedCSVImportProgress.hide(); + $_CookedCSVImportProgressText.hide(); + $('#cooked-csv-import-completed').show(); + thisButton.hide(); + fileInput.hide(); + }, 2000); + } else { + errorsDiv.html('

' + (processResponse.data.message || 'Import failed.') + '

').show(); + if (processResponse.data.errors && processResponse.data.errors.length > 0) { + var errorHtml = ''; + errorsDiv.append(errorHtml); + } + thisButton.removeClass('disabled').attr('disabled', false); + fileInput.attr('disabled', false); + $_CookedCSVImportProgress.removeClass('cooked-active'); + $_CookedCSVImportProgressText.removeClass('cooked-active'); + } + }, + 'json' + ).fail(function() { + errorsDiv.html('

Failed to process CSV file.

').show(); + thisButton.removeClass('disabled').attr('disabled', false); + fileInput.attr('disabled', false); + $_CookedCSVImportProgress.removeClass('cooked-active'); + $_CookedCSVImportProgressText.removeClass('cooked-active'); + }); + } else { + errorsDiv.html('

' + (response.data.message || 'File upload failed.') + '

').show(); + thisButton.removeClass('disabled').attr('disabled', false); + fileInput.attr('disabled', false); + $_CookedCSVImportProgress.removeClass('cooked-active'); + $_CookedCSVImportProgressText.removeClass('cooked-active'); + } + }, + error: function() { + errorsDiv.html('

Failed to upload CSV file.

').show(); + thisButton.removeClass('disabled').attr('disabled', false); + fileInput.attr('disabled', false); + $_CookedCSVImportProgress.removeClass('cooked-active'); + $_CookedCSVImportProgressText.removeClass('cooked-active'); + } + }); + }); + } }); })( jQuery ); diff --git a/assets/admin/js/cooked-migration.min.js b/assets/admin/js/cooked-migration.min.js index c632055..8afb607 100644 --- a/assets/admin/js/cooked-migration.min.js +++ b/assets/admin/js/cooked-migration.min.js @@ -1 +1 @@ -(r=>{r(document).ready(function(){var e=r("#cooked-migration-button"),o=r("#cooked-import-button");r("#cooked-migration-progress"),r("#cooked-migration-progress-text");e.length&&e.on("click",function(e){e.preventDefault();e=r(this);confirm(cooked_migration_js_vars.i18n_confirm_migrate_recipe)&&!e.hasClass("disabled")&&(e.addClass("disabled").attr("disabled",!0),e.hide(),r.post(cooked_migration_js_vars.ajax_url,{action:"cooked_get_migrate_ids"},function(e){var o;e&&(o=JSON.parse(e),0"+i+" hrs, "+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):1<=r?c.html(t+" / "+o+""+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):c.text(t+" / "+o)):c.text(t+" / "+o),cooked_migrate_recipes(e,s)):(a.hide(),c.hide(),jQuery(".recipe-setting-block.migrate_button").find("h3").hide(),jQuery(".recipe-setting-block.migrate_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.migrate_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-migration-button").hide(),jQuery("#cooked-migration-completed").addClass("cooked-active"))}))}function cooked_import_recipes(e,s,a){var n,c,d,o,_=0;0"+i+" hrs, "+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):1<=r?d.html(t+" / "+o+""+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):d.text(t+" / "+o)):d.text(t+" / "+o),cooked_import_recipes(e,s,a)):(n.hide(),d.hide(),jQuery(".recipe-setting-block.import_button").find("h3").hide(),jQuery(".recipe-setting-block.import_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.import_button").find(".cooked-import-note").hide(),jQuery(".recipe-setting-block.import_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-import-button").hide(),jQuery("#cooked-import-completed").addClass("cooked-active"))}))} \ No newline at end of file +(d=>{d(document).ready(function(){var e=d("#cooked-migration-button"),o=d("#cooked-import-button"),t=d("#cooked-csv-import-button"),s=(d("#cooked-csv-import-form"),d("#cooked-migration-progress"),d("#cooked-migration-progress-text"),d("#cooked-csv-import-progress")),a=d("#cooked-csv-import-progress-text");e.length&&e.on("click",function(e){e.preventDefault();e=d(this);confirm(cooked_migration_js_vars.i18n_confirm_migrate_recipe)&&!e.hasClass("disabled")&&(e.addClass("disabled").attr("disabled",!0),e.hide(),d.post(cooked_migration_js_vars.ajax_url,{action:"cooked_get_migrate_ids"},function(e){var o;e&&(o=JSON.parse(e),0"}),o+="",r.html(o).show()),setTimeout(function(){s.hide(),a.hide(),d("#cooked-csv-import-completed").show(),t.hide(),i.hide()},2e3)):(r.html("

"+(e.data.message||"Import failed.")+"

").show(),e.data.errors&&0",e.data.errors.forEach(function(e){o+="
  • "+e+"
  • "}),o+="",r.append(o)),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),s.removeClass("cooked-active"),a.removeClass("cooked-active"))},"json").fail(function(){r.html("

    Failed to process CSV file.

    ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),s.removeClass("cooked-active"),a.removeClass("cooked-active")})):(r.html("

    "+(e.data.message||"File upload failed.")+"

    ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),s.removeClass("cooked-active"),a.removeClass("cooked-active"))},error:function(){r.html("

    Failed to upload CSV file.

    ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),s.removeClass("cooked-active"),a.removeClass("cooked-active")}})):(e=cooked_migration_js_vars.i18n_csv_invalid_file||"Please select a valid CSV file.",r.html("

    "+e+"

    ").show()):(o=cooked_migration_js_vars.i18n_csv_no_file||"Please select a CSV file.",r.html("

    "+o+"

    ").show())})})})(jQuery);{function cookedDecimalAdjust(e,o,t){return void 0===t||0==+t?Math[e](o):(t=+t,null===(o=+o)||isNaN(o)||"number"!=typeof t||t%1!=0?NaN:o<0?-cookedDecimalAdjust(e,-o,t):(o=o.toString().split("e"),+((o=(o=Math[e](+(o[0]+"e"+(o[1]?+o[1]-t:-t)))).toString().split("e"))[0]+"e"+(o[1]?+o[1]+t:t))))}}Math.round10||(Math.round10=function(e,o){return cookedDecimalAdjust("round",e,o)});var cooked_recipe_migrate_counter=0,progressIterations=0;function cooked_migrate_recipes(e,s){var a,d,c,o,n=0;0"+i+" hrs, "+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):1<=r?c.html(t+" / "+o+""+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):c.text(t+" / "+o)):c.text(t+" / "+o),cooked_migrate_recipes(e,s)):(a.hide(),c.hide(),jQuery(".recipe-setting-block.migrate_button").find("h3").hide(),jQuery(".recipe-setting-block.migrate_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.migrate_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-migration-button").hide(),jQuery("#cooked-migration-completed").addClass("cooked-active"))}))}function cooked_import_recipes(e,s,a){var d,c,n,o,l=0;0"+i+" hrs, "+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):1<=r?n.html(t+" / "+o+""+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):n.text(t+" / "+o)):n.text(t+" / "+o),cooked_import_recipes(e,s,a)):(d.hide(),n.hide(),jQuery(".recipe-setting-block.import_button").find("h3").hide(),jQuery(".recipe-setting-block.import_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.import_button").find(".cooked-import-note").hide(),jQuery(".recipe-setting-block.import_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-import-button").hide(),jQuery("#cooked-import-completed").addClass("cooked-active"))}))} \ No newline at end of file diff --git a/includes/class.cooked-admin-enqueues.php b/includes/class.cooked-admin-enqueues.php index dd611fe..d62c711 100644 --- a/includes/class.cooked-admin-enqueues.php +++ b/includes/class.cooked-admin-enqueues.php @@ -148,6 +148,8 @@ public function admin_enqueues( $hook ) { /* translators: confirmation for migrating all ### recipes, where ### displays the total number for the migration. */ 'i18n_confirm_migrate_recipes' => sprintf(__('Please confirm that you are ready to migrate all %s recipes.', 'cooked'), number_format($total_old_recipes)), 'i18n_confirm_import_recipes' => __('Please confirm that you are ready to import all recipes.', 'cooked'), + 'i18n_csv_no_file' => __('Please select a CSV file.', 'cooked'), + 'i18n_csv_invalid_file' => __('Please select a valid CSV file.', 'cooked'), 'wp_editor_roles_allowed' => esc_attr($wp_editor_roles_allowed), ]; diff --git a/includes/class.cooked-ajax.php b/includes/class.cooked-ajax.php index 65e2aa1..8bd77d2 100644 --- a/includes/class.cooked-ajax.php +++ b/includes/class.cooked-ajax.php @@ -47,6 +47,12 @@ function __construct() { // Import Recipes add_action( 'wp_ajax_cooked_import_recipes', [&$this, 'import_recipes']); + + // CSV Import - Upload file + add_action( 'wp_ajax_cooked_upload_csv', [&$this, 'upload_csv']); + + // CSV Import - Process file + add_action( 'wp_ajax_cooked_process_csv', [&$this, 'process_csv']); } public function get_migrate_ids() { @@ -360,4 +366,99 @@ public function load_default() { wp_die(); } + + /** + * Handle CSV file upload + */ + public function upload_csv() { + if (!current_user_can('edit_cooked_recipes')) { + wp_send_json_error(['message' => __('You do not have permission to import recipes.', 'cooked')]); + } + + if (!isset($_FILES['csv_file']) || $_FILES['csv_file']['error'] !== UPLOAD_ERR_OK) { + wp_send_json_error(['message' => __('File upload failed.', 'cooked')]); + } + + // Validate file type + $file_type = wp_check_filetype($_FILES['csv_file']['name']); + if ($file_type['ext'] !== 'csv') { + wp_send_json_error(['message' => __('Invalid file type. Please upload a CSV file.', 'cooked')]); + } + + // Use WordPress upload handler + require_once(ABSPATH . 'wp-admin/includes/file.php'); + $upload = wp_handle_upload($_FILES['csv_file'], ['test_form' => false]); + + if (isset($upload['error'])) { + wp_send_json_error(['message' => $upload['error']]); + } + + // Store file path in transient for processing + $transient_key = 'cooked_csv_import_' . get_current_user_id() . '_' . time(); + set_transient($transient_key, $upload['file'], 3600); // 1 hour + + wp_send_json_success([ + 'transient_key' => $transient_key, + 'file_path' => $upload['file'] + ]); + } + + /** + * Process CSV file and import recipes + */ + public function process_csv() { + if (!current_user_can('edit_cooked_recipes')) { + wp_send_json_error(['message' => __('You do not have permission to import recipes.', 'cooked')]); + } + + $transient_key = isset($_POST['transient_key']) ? sanitize_text_field($_POST['transient_key']) : ''; + $file_path = get_transient($transient_key); + + if (!$file_path || !file_exists($file_path)) { + wp_send_json_error(['message' => __('CSV file not found. Please upload again.', 'cooked')]); + } + + // Ensure required classes are loaded + if (!class_exists('Cooked_Recipes')) { + require_once COOKED_DIR . 'includes/class.cooked-recipes.php'; + } + if (!class_exists('Cooked_Measurements')) { + require_once COOKED_DIR . 'includes/class.cooked-measurements.php'; + } + if (!class_exists('Cooked_Recipe_Meta')) { + require_once COOKED_DIR . 'includes/class.cooked-recipe-meta.php'; + } + + require_once COOKED_DIR . 'includes/class.cooked-csv-import.php'; + + // Process the CSV file + if (!class_exists('Cooked_CSV_Import')) { + wp_send_json_error(['message' => __('CSV Import class could not be loaded.', 'cooked')]); + } + + $results = Cooked_CSV_Import::import_from_file($file_path); + + // Clean up + if (file_exists($file_path)) { + @unlink($file_path); + } + delete_transient($transient_key); + + if ($results['success'] > 0) { + wp_send_json_success([ + 'message' => sprintf( + __('Successfully imported %d recipe(s).', 'cooked'), + $results['success'] + ), + 'success' => $results['success'], + 'total' => $results['total'], + 'errors' => $results['errors'] + ]); + } else { + wp_send_json_error([ + 'message' => __('No recipes were imported.', 'cooked'), + 'errors' => $results['errors'] + ]); + } + } } diff --git a/includes/class.cooked-csv-import.php b/includes/class.cooked-csv-import.php new file mode 100644 index 0000000..ddd960d --- /dev/null +++ b/includes/class.cooked-csv-import.php @@ -0,0 +1,487 @@ + 0, + 'errors' => [], + 'total' => 0 + ]; + + // Ensure required classes are loaded + if ( ! class_exists( 'Cooked_Recipes' ) ) { + $results['errors'][] = __( 'Cooked_Recipes class not found. Plugin may not be properly loaded.', 'cooked' ); + return $results; + } + + if ( ! class_exists( 'Cooked_Measurements' ) ) { + $results['errors'][] = __( 'Cooked_Measurements class not found. Plugin may not be properly loaded.', 'cooked' ); + return $results; + } + + if ( ! class_exists( 'Cooked_Recipe_Meta' ) ) { + $results['errors'][] = __( 'Cooked_Recipe_Meta class not found. Plugin may not be properly loaded.', 'cooked' ); + return $results; + } + + if ( ! file_exists( $file_path ) ) { + $results['errors'][] = __( 'CSV file not found.', 'cooked' ); + return $results; + } + + // Open and parse CSV file + $handle = fopen( $file_path, 'r' ); + if ( $handle === false ) { + $results['errors'][] = __( 'Could not open CSV file.', 'cooked' ); + return $results; + } + + // Read header row + $headers = fgetcsv( $handle ); + if ( $headers === false || empty( $headers ) ) { + $results['errors'][] = __( 'CSV file is empty or invalid.', 'cooked' ); + fclose( $handle ); + return $results; + } + + // Normalize headers (trim and lowercase) + $headers = array_map( 'trim', $headers ); + $headers = array_map( 'strtolower', $headers ); + + // Check for required title column + if ( ! in_array( 'title', $headers ) ) { + $results['errors'][] = __( 'CSV file must contain a "title" column.', 'cooked' ); + fclose( $handle ); + return $results; + } + + $row_number = 1; + while ( ( $row = fgetcsv( $handle ) ) !== false ) { + $row_number++; + $results['total']++; + + // Skip empty rows + if ( empty( array_filter( $row ) ) ) { + continue; + } + + // Map row data to headers + $data = []; + foreach ( $headers as $index => $header ) { + $data[ $header ] = isset( $row[ $index ] ) ? trim( $row[ $index ] ) : ''; + } + + // Import this recipe + try { + $import_result = self::import_recipe( $data, $row_number ); + if ( $import_result['success'] ) { + $results['success']++; + } else { + $error_msg = isset( $import_result['error'] ) ? $import_result['error'] : __( 'Unknown error', 'cooked' ); + $results['errors'][] = sprintf( __( 'Row %d: %s', 'cooked' ), $row_number, $error_msg ); + if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { + error_log( 'Cooked CSV Import Error Row ' . $row_number . ': ' . $error_msg ); + } + } + } catch ( Exception $e ) { + $error_msg = $e->getMessage(); + $results['errors'][] = sprintf( __( 'Row %d: %s', 'cooked' ), $row_number, $error_msg ); + if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { + error_log( 'Cooked CSV Import Exception Row ' . $row_number . ': ' . $error_msg ); + error_log( 'Stack trace: ' . $e->getTraceAsString() ); + } + } + } + + fclose( $handle ); + return $results; + } + + /** + * Import a single recipe from CSV data + * + * @param array $data Recipe data from CSV row + * @param int $row_number Row number for error reporting + * @return array Result with success status and error message if any + */ + public static function import_recipe( $data, $row_number = 0 ) { + global $_cooked_settings; + + // Validate required fields + if ( empty( $data['title'] ) ) { + return [ + 'success' => false, + 'error' => __( 'Title is required', 'cooked' ) + ]; + } + + // Get default content + if ( isset( $_cooked_settings['default_content'] ) ) { + $default_content = stripslashes( $_cooked_settings['default_content'] ); + } else { + $default_content = Cooked_Recipes::default_content(); + } + + // Create new recipe post + $new_recipe = [ + 'post_type' => 'cp_recipe', + 'post_status' => 'draft', + 'post_title' => sanitize_text_field( $data['title'] ), + 'post_content' => '', + 'post_author' => get_current_user_id(), + ]; + + $recipe_id = wp_insert_post( $new_recipe ); + if ( is_wp_error( $recipe_id ) ) { + return [ + 'success' => false, + 'error' => $recipe_id->get_error_message() + ]; + } + + // Prepare recipe meta + $recipe_meta = []; + $recipe_meta['cooked_version'] = COOKED_VERSION; + $recipe_meta['content'] = $default_content; + $recipe_meta['excerpt'] = isset( $data['excerpt'] ) ? sanitize_text_field( $data['excerpt'] ) : ''; + $recipe_meta['seo_description'] = isset( $data['seo_description'] ) ? sanitize_text_field( $data['seo_description'] ) : ( isset( $data['excerpt'] ) ? sanitize_text_field( $data['excerpt'] ) : '' ); + $recipe_meta['notes'] = isset( $data['notes'] ) ? wp_kses_post( $data['notes'] ) : ''; + + // Difficulty level + $difficulty_level = isset( $data['difficulty_level'] ) ? intval( $data['difficulty_level'] ) : 0; + if ( $difficulty_level < 1 || $difficulty_level > 3 ) { + $difficulty_level = 0; + } + $recipe_meta['difficulty_level'] = $difficulty_level; + + // Times + $recipe_meta['prep_time'] = isset( $data['prep_time'] ) ? intval( $data['prep_time'] ) : 0; + $recipe_meta['cook_time'] = isset( $data['cook_time'] ) ? intval( $data['cook_time'] ) : 0; + $recipe_meta['total_time'] = $recipe_meta['prep_time'] + $recipe_meta['cook_time']; + if ( isset( $data['total_time'] ) && ! empty( $data['total_time'] ) ) { + $recipe_meta['total_time'] = intval( $data['total_time'] ); + } + + // Parse ingredients + $recipe_meta['ingredients'] = []; + if ( ! empty( $data['ingredients'] ) ) { + $measurements = Cooked_Measurements::get(); + + // Split by | to get all parts + // Format: amount|measurement|name|amount|measurement|name||sub_amount|sub_measurement|sub_name|... + // When we see ||, it becomes two consecutive empty strings in the array + $all_parts = array_map( 'trim', explode( '|', $data['ingredients'] ) ); + $i = 0; + + while ( $i < count( $all_parts ) ) { + // Skip empty parts (they come from || separator) + if ( empty( $all_parts[ $i ] ) ) { + $i++; + continue; + } + + $part = $all_parts[ $i ]; + + // Check if it's a section heading (starts with #) + if ( strpos( $part, '#' ) === 0 ) { + $recipe_meta['ingredients'][] = [ + 'section_heading_name' => trim( $part, '#' ), + ]; + $i++; + continue; + } + + // Collect next 3 non-empty parts for an ingredient (amount|measurement|name) + $ingredient_parts = []; + $j = $i; + while ( count( $ingredient_parts ) < 3 && $j < count( $all_parts ) ) { + $p = trim( $all_parts[ $j ] ); + if ( ! empty( $p ) ) { + $ingredient_parts[] = $p; + } + $j++; + } + + if ( count( $ingredient_parts ) >= 3 ) { + $ingredient = self::parse_ingredient_parts( $ingredient_parts, $measurements ); + $i = $j; // Move past the collected parts + + // Check if next parts are empty (indicating || separator for substitution) + // Look ahead to see if we have empty parts followed by non-empty parts + $next_empty_count = 0; + $k = $i; + while ( $k < count( $all_parts ) && empty( trim( $all_parts[ $k ] ) ) ) { + $next_empty_count++; + $k++; + } + + // If we have empty parts (from ||) and then more parts, it's a substitution + if ( $next_empty_count > 0 && $k < count( $all_parts ) ) { + // Collect substitution parts (next 3 non-empty parts) + $sub_parts = []; + $sub_i = $k; + while ( count( $sub_parts ) < 3 && $sub_i < count( $all_parts ) ) { + $sub_part = trim( $all_parts[ $sub_i ] ); + if ( ! empty( $sub_part ) ) { + $sub_parts[] = $sub_part; + } + $sub_i++; + } + + // Parse substitution + if ( count( $sub_parts ) >= 3 ) { + $ingredient['sub_amount'] = sanitize_text_field( $sub_parts[0] ); + $sub_measurement = sanitize_text_field( $sub_parts[1] ); + $matched_sub_measurement = self::match_measurement( $sub_measurement, $measurements ); + if ( $matched_sub_measurement ) { + $ingredient['sub_measurement'] = $matched_sub_measurement; + } + $ingredient['sub_name'] = sanitize_text_field( $sub_parts[2] ); + } elseif ( count( $sub_parts ) == 2 ) { + $ingredient['sub_amount'] = sanitize_text_field( $sub_parts[0] ); + $ingredient['sub_name'] = sanitize_text_field( $sub_parts[1] ); + } elseif ( count( $sub_parts ) == 1 ) { + $ingredient['sub_name'] = sanitize_text_field( $sub_parts[0] ); + } + + $i = $sub_i; // Move past substitution + } + + $recipe_meta['ingredients'][] = $ingredient; + } else { + // Not enough parts for a complete ingredient, skip + $i++; + } + } + } + + // Parse directions + $recipe_meta['directions'] = []; + if ( ! empty( $data['directions'] ) ) { + $directions = explode( '|', $data['directions'] ); + foreach ( $directions as $direction_string ) { + $direction_string = trim( $direction_string ); + if ( empty( $direction_string ) ) { + continue; + } + + // Check if it's a section heading (starts with #) + if ( strpos( $direction_string, '#' ) === 0 ) { + $recipe_meta['directions'][] = [ + 'section_heading_name' => trim( $direction_string, '#' ), + ]; + continue; + } + + $recipe_meta['directions'][] = [ + 'content' => wp_kses_post( $direction_string ), + ]; + } + } + + // Nutrition data + $recipe_meta['nutrition'] = []; + if ( isset( $data['servings'] ) && ! empty( $data['servings'] ) ) { + $recipe_meta['nutrition']['servings'] = sanitize_text_field( $data['servings'] ); + } + if ( isset( $data['calories'] ) && ! empty( $data['calories'] ) ) { + $recipe_meta['nutrition']['calories'] = intval( $data['calories'] ); + } + + // Save recipe meta + $recipe_meta = Cooked_Recipe_Meta::meta_cleanup( $recipe_meta ); + update_post_meta( $recipe_id, '_recipe_settings', $recipe_meta ); + + // Update post excerpt + $recipe_excerpt = ! empty( $recipe_meta['excerpt'] ) ? $recipe_meta['excerpt'] : get_the_title( $recipe_id ); + $seo_content = apply_filters( 'cooked_seo_recipe_content', '

    ' . wp_kses_post( $recipe_excerpt ) . '

    ' . __( 'Ingredients', 'cooked' ) . '

    [cooked-ingredients checkboxes=false]

    ' . __( 'Directions', 'cooked' ) . '

    [cooked-directions numbers=false]' ); + $seo_content = do_shortcode( $seo_content ); + + $should_update_content = apply_filters( 'cooked_should_update_post_content', true, $recipe_id ); + if ( $should_update_content ) { + wp_update_post( [ + 'ID' => $recipe_id, + 'post_excerpt' => $recipe_excerpt, + 'post_content' => $seo_content + ] ); + } else { + wp_update_post( [ + 'ID' => $recipe_id, + 'post_excerpt' => $recipe_excerpt + ] ); + } + + // Handle taxonomies + if ( ! empty( $data['categories'] ) ) { + $categories = array_map( 'trim', explode( ',', $data['categories'] ) ); + $category_ids = []; + foreach ( $categories as $category_name ) { + if ( ! empty( $category_name ) ) { + $term = get_term_by( 'name', $category_name, 'cp_recipe_category' ); + if ( ! $term ) { + $term = wp_insert_term( $category_name, 'cp_recipe_category' ); + if ( ! is_wp_error( $term ) ) { + $category_ids[] = $term['term_id']; + } + } else { + $category_ids[] = $term->term_id; + } + } + } + if ( ! empty( $category_ids ) ) { + wp_set_object_terms( $recipe_id, $category_ids, 'cp_recipe_category' ); + } + } + + if ( ! empty( $data['tags'] ) ) { + $tags = array_map( 'trim', explode( ',', $data['tags'] ) ); + $tag_ids = []; + foreach ( $tags as $tag_name ) { + if ( ! empty( $tag_name ) ) { + $term = get_term_by( 'name', $tag_name, 'cp_recipe_tags' ); + if ( ! $term ) { + $term = wp_insert_term( $tag_name, 'cp_recipe_tags' ); + if ( ! is_wp_error( $term ) ) { + $tag_ids[] = $term['term_id']; + } + } else { + $tag_ids[] = $term->term_id; + } + } + } + if ( ! empty( $tag_ids ) ) { + wp_set_object_terms( $recipe_id, $tag_ids, 'cp_recipe_tags' ); + } + } + + return [ + 'success' => true, + 'recipe_id' => $recipe_id + ]; + } + + /** + * Match a measurement string to a measurement key + * Checks exact key match, variations, singular, and plural forms + * + * @param string $measurement_string The measurement string from CSV + * @param array $measurements Full measurements array + * @return string|false The measurement key or false if not found + */ + private static function match_measurement( $measurement_string, $measurements ) { + $measurement_string = strtolower( trim( $measurement_string ) ); + + // First, check for exact key match + if ( isset( $measurements[ $measurement_string ] ) ) { + return $measurement_string; + } + + // Check variations, singular, and plural for each measurement + foreach ( $measurements as $key => $measurement_data ) { + // Check variations + if ( isset( $measurement_data['variations'] ) && is_array( $measurement_data['variations'] ) ) { + foreach ( $measurement_data['variations'] as $variation ) { + if ( strtolower( $variation ) === $measurement_string ) { + return $key; + } + } + } + + // Check singular + if ( isset( $measurement_data['singular'] ) && strtolower( $measurement_data['singular'] ) === $measurement_string ) { + return $key; + } + + // Check plural + if ( isset( $measurement_data['plural'] ) && strtolower( $measurement_data['plural'] ) === $measurement_string ) { + return $key; + } + + // Check singular abbreviation + if ( isset( $measurement_data['singular_abbr'] ) && strtolower( $measurement_data['singular_abbr'] ) === $measurement_string ) { + return $key; + } + + // Check plural abbreviation + if ( isset( $measurement_data['plural_abbr'] ) && strtolower( $measurement_data['plural_abbr'] ) === $measurement_string ) { + return $key; + } + } + + return false; + } + + /** + * Parse ingredient parts into ingredient array + * + * @param array $parts Array of ingredient parts (amount, measurement, name, etc.) + * @param array $measurements Full measurements array + * @return array|false Ingredient array or false on error + */ + private static function parse_ingredient_parts( $parts, $measurements ) { + if ( empty( $parts ) ) { + return false; + } + + $ingredient = [ + 'amount' => '', + 'measurement' => '', + 'name' => '', + 'url' => '', + 'description' => '', + 'sub_amount' => '', + 'sub_measurement' => '', + 'sub_name' => '', + ]; + + if ( count( $parts ) >= 3 ) { + // Format: amount|measurement|name + $ingredient['amount'] = sanitize_text_field( $parts[0] ); + $measurement = sanitize_text_field( $parts[1] ); + $matched_measurement = self::match_measurement( $measurement, $measurements ); + if ( $matched_measurement ) { + $ingredient['measurement'] = $matched_measurement; + } + $ingredient['name'] = sanitize_text_field( $parts[2] ); + if ( isset( $parts[3] ) ) { + $ingredient['description'] = sanitize_text_field( $parts[3] ); + } + } elseif ( count( $parts ) == 2 ) { + // Format: amount|name (no measurement) + $ingredient['amount'] = sanitize_text_field( $parts[0] ); + $ingredient['name'] = sanitize_text_field( $parts[1] ); + } else { + // Format: name only + $ingredient['name'] = sanitize_text_field( $parts[0] ); + } + + return $ingredient; + } +} + diff --git a/includes/class.cooked-import.php b/includes/class.cooked-import.php index 03a0e7b..09363dd 100644 --- a/includes/class.cooked-import.php +++ b/includes/class.cooked-import.php @@ -148,6 +148,34 @@ public static function tabs_fields() { ]; } + // CSV Import Tab + $html_desc = __( 'Import recipes from a CSV file. Your CSV file should include the following columns:', 'cooked' ); + $html_desc .= '
      '; + $html_desc .= '
    • title - ' . __( 'Recipe title (required)', 'cooked' ) . '
    • '; + $html_desc .= '
    • excerpt - ' . __( 'Recipe excerpt/description', 'cooked' ) . '
    • '; + $html_desc .= '
    • prep_time - ' . __( 'Prep time in minutes', 'cooked' ) . '
    • '; + $html_desc .= '
    • cook_time - ' . __( 'Cook time in minutes', 'cooked' ) . '
    • '; + $html_desc .= '
    • difficulty_level - ' . __( 'Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)', 'cooked' ) . '
    • '; + $html_desc .= '
    • ingredients - ' . __( 'Ingredients separated by pipe (|). Format: "amount|measurement|name" or "name" for simple ingredients. Add substitutions with double pipe (||): "amount|measurement|name||sub_amount|sub_measurement|sub_name"', 'cooked' ) . '
    • '; + $html_desc .= '
    • directions - ' . __( 'Directions/instructions separated by pipe (|)', 'cooked' ) . '
    • '; + $html_desc .= '
    • notes - ' . __( 'Recipe notes', 'cooked' ) . '
    • '; + $html_desc .= '
    • categories - ' . __( 'Categories separated by comma', 'cooked' ) . '
    • '; + $html_desc .= '
    • tags - ' . __( 'Tags separated by comma', 'cooked' ) . '
    • '; + $html_desc .= '
    '; + $html_desc .= '

    ' . __( 'Note:', 'cooked' ) . ' ' . __( 'Recipes will be imported with the \'Draft\' status. After the import is complete, you can bulk edit the recipes and change their status to \'Published\'.', 'cooked' ) . '

    '; + + $import_tabs['csv_import'] = [ + 'name' => __('CSV Import', 'cooked'), + 'icon' => 'migrate', + 'fields' => [ + 'cooked_csv_import' => [ + 'title' => __('Import Recipes via CSV', 'cooked'), + 'desc' => $html_desc, + 'type' => 'csv_upload', + ] + ] + ]; + $import_tabs['more_imports_coming_soon'] = [ 'name' => __('More Imports are Coming Soon...', 'cooked'), 'icon' => 'migrate', @@ -183,4 +211,21 @@ public static function field_message( $name, $field_options, $color, $field ) { echo '

    ' . $field['message'] . '

    '; } + public static function field_csv_upload( $name, $field_options, $color, $field ) { + wp_enqueue_script('jquery'); + echo '
    '; + echo '

    '; + echo ''; + echo '

    '; + echo '

    '; + echo ''; + echo '

    '; + echo '

    '; + echo ''; + echo '

    '; + echo ''; + echo ''; + echo '
    '; + } + } diff --git a/languages/cooked.mo b/languages/cooked.mo index 691d98b018e3754fde1f06726916695067430cbd..4e4d8e414dcaed0ad8247c621ebe4edcb71d2b0f 100644 GIT binary patch delta 108 zcmdnRbcAVwh$1rs1A`6_gMbAPb1^b7SORGv1pyN^^|dofN(zdt^!3a0i&6@TQj3fA z@{7{-i%Sa%@{3CJ3vx=+GxPM5^YgP)QzkPq>Q9VT;P6SzOD|1KPn}p1%g6u#i@+O0 delta 64 zcmX@Yw2Ntih$sUP=zs_y0MR^*3=FyxP4y@4R-X7WiZj4JMAx|}HL+yk43&u!^tkfU MOB2&mtrWNz0Hbackup your database in case something goes wrong." +#: includes/class.cooked-import.php:48 includes/class.cooked-import.php:102 +msgid "" +"Before you begin, please make sure you backup your database in case " +"something goes wrong." msgstr "" -#: includes/class.cooked-import.php:50 -#: includes/class.cooked-import.php:104 -msgid "Click the button below to import these recipes. Here is what will happen to your recipes:" +#: includes/class.cooked-import.php:50 includes/class.cooked-import.php:104 +msgid "" +"Click the button below to import these recipes. Here is what will happen to " +"your recipes:" msgstr "" -#: includes/class.cooked-import.php:52 -#: includes/class.cooked-import.php:106 +#: includes/class.cooked-import.php:52 includes/class.cooked-import.php:106 msgid "Recipes will be imported with the 'Draft' status." msgstr "" -#: includes/class.cooked-import.php:53 -#: includes/class.cooked-import.php:107 -msgid "Comments and ratings data will also be imported (ratings are available in Cooked Pro)." +#: includes/class.cooked-import.php:53 includes/class.cooked-import.php:107 +msgid "" +"Comments and ratings data will also be imported (ratings are available in " +"Cooked Pro)." msgstr "" -#: includes/class.cooked-import.php:54 -#: includes/class.cooked-import.php:109 -msgid "After the import is complete, you can bulk edit the recipes and change their status to 'Published'." +#: includes/class.cooked-import.php:54 includes/class.cooked-import.php:109 +msgid "" +"After the import is complete, you can bulk edit the recipes and change their " +"status to 'Published'." msgstr "" #: includes/class.cooked-import.php:55 -msgid "The existing WP Delicious recipes and data will not be modified or deleted." +msgid "" +"The existing WP Delicious recipes and data will not be modified or deleted." msgstr "" -#: includes/class.cooked-import.php:56 -#: includes/class.cooked-import.php:111 -msgid "Certain data that is not suppoted by Cooked will not be imported (such as Cooking Temp, Estimated Cost, Recipe Keywords, etc)." +#: includes/class.cooked-import.php:56 includes/class.cooked-import.php:111 +msgid "" +"Certain data that is not suppoted by Cooked will not be imported (such as " +"Cooking Temp, Estimated Cost, Recipe Keywords, etc)." msgstr "" -#: includes/class.cooked-import.php:57 -#: includes/class.cooked-import.php:112 -msgid "You can run the import multiple times, but keep in mind that duplicate recipes will be created." +#: includes/class.cooked-import.php:57 includes/class.cooked-import.php:112 +msgid "" +"You can run the import multiple times, but keep in mind that duplicate " +"recipes will be created." msgstr "" -#: includes/class.cooked-import.php:61 -#: includes/class.cooked-import.php:116 +#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 #: includes/class.cooked-migration.php:58 msgid "Wow, you have a lot of recipes!" msgstr "" -#: includes/class.cooked-import.php:61 -#: includes/class.cooked-import.php:116 +#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 #: includes/class.cooked-migration.php:58 -msgid "It is definitely recommended that you get yourself a cup of coffee or tea after clicking this button." +msgid "" +"It is definitely recommended that you get yourself a cup of coffee or tea " +"after clicking this button." msgstr "" -#: includes/class.cooked-import.php:63 -#: includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 #: includes/class.cooked-migration.php:60 msgid "Note:" msgstr "" -#: includes/class.cooked-import.php:63 -#: includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 #: includes/class.cooked-migration.php:60 msgid "The more recipes you have, the longer this will take." msgstr "" -#: includes/class.cooked-import.php:68 -#: includes/class.cooked-import.php:83 +#: includes/class.cooked-import.php:68 includes/class.cooked-import.php:83 msgid "WP Delicious - Import" msgstr "" +#: includes/class.cooked-import.php:108 +msgid "" +"The difficulty level will be set to Beginner since it is not " +"supported by WP Recipe Maker." +msgstr "" + +#: includes/class.cooked-import.php:110 +msgid "The existing WP Recipe Maker and data will not be modified or deleted." +msgstr "" + +#: includes/class.cooked-import.php:123 includes/class.cooked-import.php:138 +msgid "WP Recipe Maker - Import" +msgstr "" + #: includes/class.cooked-import.php:152 msgid "More Imports are Coming Soon..." msgstr "" @@ -299,8 +314,7 @@ msgstr "" msgid "Begin Import" msgstr "" -#: includes/class.cooked-import.php:178 -#: includes/class.cooked-settings.php:592 +#: includes/class.cooked-import.php:178 includes/class.cooked-settings.php:592 msgid "reload" msgstr "" @@ -415,6 +429,19 @@ msgstr "" msgid "tablespoons" msgstr "" +#: includes/class.cooked-measurements.php:85 +#: includes/class.cooked-measurements.php:86 +msgid "dl" +msgstr "" + +#: includes/class.cooked-measurements.php:87 +msgid "deciliter" +msgstr "" + +#: includes/class.cooked-measurements.php:88 +msgid "deciliters" +msgstr "" + #: includes/class.cooked-measurements.php:92 #: includes/class.cooked-measurements.php:93 msgid "ml" @@ -583,8 +610,7 @@ msgid "cans" msgstr "" #: includes/class.cooked-measurements.php:202 -#: includes/class.cooked-recipes.php:799 -#: includes/class.cooked-settings.php:223 +#: includes/class.cooked-recipes.php:799 includes/class.cooked-settings.php:223 msgid "Servings" msgstr "" @@ -801,13 +827,19 @@ msgstr "" #. translators: for displaying singular or plural versions depending on the number of recipes. #: includes/class.cooked-migration.php:47 #, php-format -msgid "There is %1$s recipe that should be migrated from %2$s to take advantage of new features and reliability." -msgid_plural "There are %1$s recipes that should be migrated from %2$s to take advantage of new features and reliability." +msgid "" +"There is %1$s recipe that should be migrated from %2$s to take advantage of " +"new features and reliability." +msgid_plural "" +"There are %1$s recipes that should be migrated from %2$s to take advantage " +"of new features and reliability." msgstr[0] "" msgstr[1] "" #: includes/class.cooked-migration.php:49 -msgid "Please click the button below to migrate these recipes. Here is what will happen to your recipes:" +msgid "" +"Please click the button below to migrate these recipes. Here is what will " +"happen to your recipes:" msgstr "" #: includes/class.cooked-migration.php:51 @@ -819,11 +851,14 @@ msgid "Remapped fields will greatly speed up recipe loading times." msgstr "" #: includes/class.cooked-migration.php:53 -msgid "If recipe excerpt exists, the short description will be moved to the top of the recipe template." +msgid "" +"If recipe excerpt exists, the short description will be moved to the top of " +"the recipe template." msgstr "" #: includes/class.cooked-migration.php:54 -msgid "If no recipe excerpt exists, the short description will be used instead." +msgid "" +"If no recipe excerpt exists, the short description will be used instead." msgstr "" #: includes/class.cooked-migration.php:55 @@ -837,8 +872,12 @@ msgstr "" #. translators: for displaying singular or plural versions depending on the number of recipes. #: includes/class.cooked-migration.php:90 #, php-format -msgid "There is %1$s recipe that is from an older version of Cooked. Please %2$s to migrate this recipe." -msgid_plural "There are %1$s recipes that are from an older version of Cooked. Please %2$s to migrate these recipes." +msgid "" +"There is %1$s recipe that is from an older version of Cooked. Please %2$s to " +"migrate this recipe." +msgid_plural "" +"There are %1$s recipes that are from an older version of Cooked. Please %2$s " +"to migrate these recipes." msgstr[0] "" msgstr[1] "" @@ -908,12 +947,18 @@ msgstr "" msgid "Current recipe category being viewed." msgstr "" +#: includes/class.cooked-recipe-maker.php:103 +msgid "Error importing WP Recipe Maker recipe." +msgstr "" + #: includes/class.cooked-recipe-meta.php:202 msgid "Display Recipe" msgstr "" #: includes/class.cooked-recipe-meta.php:203 -msgid "This shortcode displays the recipe in its entirety, using the \"Recipe Template\" field in the first tab." +msgid "" +"This shortcode displays the recipe in its entirety, using the \"Recipe " +"Template\" field in the first tab." msgstr "" #: includes/class.cooked-recipe-meta.php:238 @@ -936,7 +981,9 @@ msgstr "" #. translators: for displaying singular or plural versions depending on the number of recipes. #: includes/class.cooked-recipe-meta.php:328 #, php-format -msgid "It looks like this recipe is from a different version of %s. Please review and click \"Update\" to save it." +msgid "" +"It looks like this recipe is from a different version of %s. Please review " +"and click \"Update\" to save it." msgstr "" #: includes/class.cooked-recipe-meta.php:336 @@ -956,7 +1003,9 @@ msgid "Default Recipe Template" msgstr "" #: includes/class.cooked-recipe-meta.php:351 -msgid "Choose from the options below to use this layout as the default for new recipes or for all recipes." +msgid "" +"Choose from the options below to use this layout as the default for new " +"recipes or for all recipes." msgstr "" #: includes/class.cooked-recipe-meta.php:351 @@ -972,7 +1021,10 @@ msgid "Reset" msgstr "" #: includes/class.cooked-recipe-meta.php:351 -msgid "Using the built-in recipe shortcodes found on the \"Shortcodes\" tab, you can create the layout of your recipe below. Use the \"Save as Default\" button to save your template." +msgid "" +"Using the built-in recipe shortcodes found on the \"Shortcodes\" tab, you " +"can create the layout of your recipe below. Use the \"Save as Default\" " +"button to save your template." msgstr "" #: includes/class.cooked-recipe-meta.php:369 @@ -980,7 +1032,9 @@ msgid "Recipe Excerpt" msgstr "" #: includes/class.cooked-recipe-meta.php:369 -msgid "The excerpt is used on recipe listing templates, where the full recipe should not be displayed." +msgid "" +"The excerpt is used on recipe listing templates, where the full recipe " +"should not be displayed." msgstr "" #: includes/class.cooked-recipe-meta.php:392 @@ -988,7 +1042,10 @@ msgid "SEO Description" msgstr "" #: includes/class.cooked-recipe-meta.php:392 -msgid "This description is used for SEO purposes and is optional. By default, Cooked will use the Recipe Excerpt above if available or the Recipe Title if not." +msgid "" +"This description is used for SEO purposes and is optional. By default, " +"Cooked will use the Recipe Excerpt above if available or the Recipe Title if " +"not." msgstr "" #: includes/class.cooked-recipe-meta.php:403 @@ -1053,6 +1110,18 @@ msgstr "" msgid "ex. Eggs, Milk, etc." msgstr "" +#: includes/class.cooked-recipe-meta.php:504 +#: includes/class.cooked-recipe-meta.php:596 +#: includes/class.cooked-recipe-meta.php:662 +msgid "Substitution:" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:517 +#: includes/class.cooked-recipe-meta.php:609 +#: includes/class.cooked-recipe-meta.php:675 +msgid "ex. Apple Sauce, Tofu, etc." +msgstr "" + #: includes/class.cooked-recipe-meta.php:528 #: includes/class.cooked-recipe-meta.php:683 #: includes/class.cooked-recipe-meta.php:755 @@ -1060,6 +1129,13 @@ msgstr "" msgid "Section Heading" msgstr "" +#: includes/class.cooked-recipe-meta.php:532 +#: includes/class.cooked-recipe-meta.php:687 +#: includes/class.cooked-recipe-meta.php:759 +#: includes/class.cooked-recipe-meta.php:851 +msgid "Heading Element:" +msgstr "" + #: includes/class.cooked-recipe-meta.php:623 msgid "Add Ingredient" msgstr "" @@ -1099,7 +1175,10 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:999 #: includes/class.cooked-shortcodes.php:1065 -msgid "The % Daily Value (DV) tells you how much a nutrient in a serving of food contributes to a daily diet. 2,000 calories a day is used for general nutrition advice." +msgid "" +"The % Daily Value (DV) tells you how much a nutrient in a serving of food " +"contributes to a daily diet. 2,000 calories a day is used for general " +"nutrition advice." msgstr "" #: includes/class.cooked-recipe-meta.php:1015 @@ -1119,7 +1198,9 @@ msgstr "" #. translators: a message describing how to display a video from YouTube or Vimeo. #: includes/class.cooked-recipe-meta.php:1046 #, php-format -msgid "If you would like to display a video as the first item in your gallery, you can paste a valid %1$s or %2$s URL below." +msgid "" +"If you would like to display a video as the first item in your gallery, you " +"can paste a valid %1$s or %2$s URL below." msgstr "" #: includes/class.cooked-recipe-meta.php:1051 @@ -1143,11 +1224,13 @@ msgid "\"%1$s\" and \"%2$s\"" msgstr "" #: includes/class.cooked-recipe-meta.php:1094 -msgid "This will allow you to include or exclude content from the shortcode output." +msgid "" +"This will allow you to include or exclude content from the shortcode output." msgstr "" #: includes/class.cooked-recipe-meta.php:1103 -msgid "Used like \"include\", but will position the content to the left or right." +msgid "" +"Used like \"include\", but will position the content to the left or right." msgstr "" #: includes/class.cooked-recipe-meta.php:1113 @@ -1196,7 +1279,8 @@ msgid "Full-Screen Mode" msgstr "" #: includes/class.cooked-recipe-meta.php:1145 -msgid "This will display the list of ingredients, added via the \"Ingredients\" tab." +msgid "" +"This will display the list of ingredients, added via the \"Ingredients\" tab." msgstr "" #: includes/class.cooked-recipe-meta.php:1151 @@ -1212,7 +1296,8 @@ msgid "Hide checkboxes" msgstr "" #: includes/class.cooked-recipe-meta.php:1176 -msgid "This will display the list of directions, added via the \"Directions\" tab." +msgid "" +"This will display the list of directions, added via the \"Directions\" tab." msgstr "" #: includes/class.cooked-recipe-meta.php:1182 @@ -1250,7 +1335,9 @@ msgid "This will display the Nutrition Facts label, if data is present." msgstr "" #: includes/class.cooked-recipe-meta.php:1257 -msgid "This will display the gallery, if one is set or created from the \"Gallery\" tab." +msgid "" +"This will display the gallery, if one is set or created from the \"Gallery\" " +"tab." msgstr "" #: includes/class.cooked-recipe-meta.php:1265 @@ -1294,11 +1381,15 @@ msgid "\"%1$s\" or \"%2$s\"" msgstr "" #: includes/class.cooked-recipe-meta.php:1336 -msgid "This will display the excerpt, if one is available from the \"Layout & Content\" tab." +msgid "" +"This will display the excerpt, if one is available from the \"Layout & " +"Content\" tab." msgstr "" #: includes/class.cooked-recipe-meta.php:1360 -msgid "This will display the notes, if one is available from the \"Layout & Content\" tab." +msgid "" +"This will display the notes, if one is available from the \"Layout & " +"Content\" tab." msgstr "" #: includes/class.cooked-recipe-meta.php:1366 @@ -1349,8 +1440,7 @@ msgstr "" #. translators: stating the recipe author with a "By" in front of it. (ex: "By John Smith") #. translators: referring to the author (ex: By John Smith) -#: includes/class.cooked-recipes.php:268 -#: includes/class.cooked-recipes.php:322 +#: includes/class.cooked-recipes.php:268 includes/class.cooked-recipes.php:322 #: templates/front/recipe-single.php:47 #, php-format msgid "By %s" @@ -1432,17 +1522,19 @@ msgid "Yields" msgstr "" #. translators: singular and plural "serving" sizes -#: includes/class.cooked-recipes.php:796 -#: includes/class.cooked-recipes.php:807 +#: includes/class.cooked-recipes.php:796 includes/class.cooked-recipes.php:807 #, php-format msgid "%s Serving" msgid_plural "%s Servings" msgstr[0] "" msgstr[1] "" +#: includes/class.cooked-recipes.php:904 includes/class.cooked-recipes.php:918 +msgid "or" +msgstr "" + #. translators: singular and plural "steps" -#: includes/class.cooked-recipes.php:962 -#: includes/class.cooked-seo.php:83 +#: includes/class.cooked-recipes.php:962 includes/class.cooked-seo.php:83 #, php-format msgid "Step %d" msgstr "" @@ -1473,6 +1565,10 @@ msgstr "" msgid "Find a recipe..." msgstr "" +#: includes/class.cooked-recipes.php:1116 +msgid "Search" +msgstr "" + #: includes/class.cooked-recipes.php:1129 msgid "Newest first" msgstr "" @@ -1497,12 +1593,13 @@ msgstr "" msgid "Cooked settings has been updated!" msgstr "" -#: includes/class.cooked-settings.php:144 -msgid "No default" +#: includes/class.cooked-settings.php:104 +msgid "Cooked Plugin Setup" msgstr "" -#: includes/class.cooked-settings.php:164 -msgid "General" +#: includes/class.cooked-settings.php:105 +#, php-format +msgid "To display your recipes properly, please set up your %s." msgstr "" #: includes/class.cooked-settings.php:106 @@ -1510,10 +1607,33 @@ msgstr "" msgid "Browse/Search Recipes Page" msgstr "" +#: includes/class.cooked-settings.php:143 +msgid "Choose a page..." +msgstr "" + +#: includes/class.cooked-settings.php:143 +msgid "No pages" +msgstr "" + +#: includes/class.cooked-settings.php:144 +msgid "No default" +msgstr "" + +#: includes/class.cooked-settings.php:164 +msgid "General" +msgstr "" + #. translators: a description on how to add the [cooked-browse] shortcode to a page #: includes/class.cooked-settings.php:170 #, php-format -msgid "Create a page with the %s shortcode on it, then choose it from this dropdown." +msgid "" +"Create a page with the %s shortcode on it, then choose it from this dropdown." +msgstr "" + +#. translators: a description on how to add the [cooked-browse] shortcode to a page +#: includes/class.cooked-settings.php:170 +msgid "" +"Note: This setting is required for the plugin to function properly." msgstr "" #: includes/class.cooked-settings.php:176 @@ -1523,7 +1643,8 @@ msgstr "" #. translators: a description on how to choose the default number of recipes per page. #: includes/class.cooked-settings.php:178 #, php-format -msgid "Choose the default (set via the %s panel) or choose a different number here." +msgid "" +"Choose the default (set via the %s panel) or choose a different number here." msgstr "" #. translators: a description on how to choose the default number of recipes per page. @@ -1544,7 +1665,9 @@ msgid "Global Recipe Toggles" msgstr "" #: includes/class.cooked-settings.php:197 -msgid "You can quickly hide or show different recipe elements (site-wide) with these checkboxes." +msgid "" +"You can quickly hide or show different recipe elements (site-wide) with " +"these checkboxes." msgstr "" #: includes/class.cooked-settings.php:228 @@ -1592,7 +1715,15 @@ msgid "Author Links" msgstr "" #: includes/class.cooked-settings.php:257 -msgid "If you do not want the author names to link to the author recipe listings, you can disable them here." +msgid "" +"If you do not want the author names to link to the author recipe listings, " +"you can disable them here." +msgstr "" + +#: includes/class.cooked-settings.php:257 +msgid "" +"Note: Author links require the Browse/Search Recipes Page to be set " +"up correctly to function properly." msgstr "" #: includes/class.cooked-settings.php:264 @@ -1606,7 +1737,8 @@ msgstr "" #. translators: a description on how to set the default recipe category for the [cooked-browse] shortcode. #: includes/class.cooked-settings.php:271 #, php-format -msgid "Optionally set the default recipe category for your %s shortcode display." +msgid "" +"Optionally set the default recipe category for your %s shortcode display." msgstr "" #: includes/class.cooked-settings.php:277 @@ -1635,12 +1767,47 @@ msgstr "" msgid "Alphabetical (reversed)" msgstr "" +#: includes/class.cooked-settings.php:293 +msgid "Section Heading Default HTML Tag" +msgstr "" + +#. translators: a description on how to set the default sort order for the [cooked-browse] shortcode. +#: includes/class.cooked-settings.php:295 +msgid "Set the default HTML tag for your section headings." +msgstr "" + +#: includes/class.cooked-settings.php:301 +msgid "div" +msgstr "" + +#: includes/class.cooked-settings.php:302 +msgid "h2" +msgstr "" + +#: includes/class.cooked-settings.php:303 +msgid "h3" +msgstr "" + +#: includes/class.cooked-settings.php:304 +msgid "h4" +msgstr "" + +#: includes/class.cooked-settings.php:305 +msgid "h5" +msgstr "" + +#: includes/class.cooked-settings.php:306 +msgid "h6" +msgstr "" + #: includes/class.cooked-settings.php:311 msgid "WP Editor Roles" msgstr "" #: includes/class.cooked-settings.php:312 -msgid "Choose which user roles can use the WP Editor for the Excerpt, Directions & Notes fields." +msgid "" +"Choose which user roles can use the WP Editor for the Excerpt, Directions & " +"Notes fields." msgstr "" #: includes/class.cooked-settings.php:318 @@ -1682,7 +1849,9 @@ msgid "Disable Recipe Schema Output" msgstr "" #: includes/class.cooked-settings.php:332 -msgid "You should only do this if you're using something else to output schema information." +msgid "" +"You should only do this if you're using something else to output schema " +"information." msgstr "" #: includes/class.cooked-settings.php:333 @@ -1702,7 +1871,9 @@ msgid "Dark Mode" msgstr "" #: includes/class.cooked-settings.php:345 -msgid "If your site has a dark background, you should enable \"Dark Mode\" so that Cooked can match this style." +msgid "" +"If your site has a dark background, you should enable \"Dark Mode\" so that " +"Cooked can match this style." msgstr "" #: includes/class.cooked-settings.php:351 @@ -1714,7 +1885,9 @@ msgid "Author Images" msgstr "" #: includes/class.cooked-settings.php:357 -msgid "If you do not want to display the author images (avatars), you can disable them here." +msgid "" +"If you do not want to display the author images (avatars), you can disable " +"them here." msgstr "" #: includes/class.cooked-settings.php:364 @@ -1758,7 +1931,8 @@ msgid "Third Responsive Breakpoint" msgstr "" #: includes/class.cooked-settings.php:398 -msgid "Set the third responsive breakpoint. Best for phones and other small devices." +msgid "" +"Set the third responsive breakpoint. Best for phones and other small devices." msgstr "" #: includes/class.cooked-settings.php:406 @@ -1806,13 +1980,19 @@ msgstr "" #. translators: referring to the bottom of the Settings page. #: includes/class.cooked-shortcodes.php:149 #, php-format -msgid "Public recipes are currently disabled. You can change this at the bottom of the %s page." +msgid "" +"Public recipes are currently disabled. You can change this at the bottom of " +"the %s page." msgstr "" #: includes/class.cooked-shortcodes.php:297 msgid "(recipe not found or in draft status)" msgstr "" +#: includes/class.cooked-shortcodes.php:661 +msgid "Fullscreen" +msgstr "" + #: includes/class.cooked-taxonomies.php:40 msgid "Search Categories" msgstr "" @@ -1858,13 +2038,11 @@ msgstr[1] "" msgid "Edit Recipe(s)..." msgstr "" -#: includes/class.cooked-widgets.php:38 -#: includes/class.cooked-widgets.php:40 +#: includes/class.cooked-widgets.php:38 includes/class.cooked-widgets.php:40 msgid "Choose recipe(s)..." msgstr "" -#: includes/widgets/nutrition.php:31 -#: includes/widgets/search.php:37 +#: includes/widgets/nutrition.php:31 includes/widgets/search.php:37 msgid "Title (optional):" msgstr "" @@ -1898,13 +2076,11 @@ msgstr "" msgid "Modern Centered" msgstr "" -#: includes/widgets/recipe-card.php:99 -#: includes/widgets/recipe-list.php:83 +#: includes/widgets/recipe-card.php:99 includes/widgets/recipe-list.php:83 msgid "Width:" msgstr "" -#: includes/widgets/recipe-card.php:105 -#: includes/widgets/recipe-list.php:89 +#: includes/widgets/recipe-card.php:105 includes/widgets/recipe-list.php:89 msgid "Hide Image" msgstr "" @@ -1912,8 +2088,7 @@ msgstr "" msgid "Hide Title" msgstr "" -#: includes/widgets/recipe-card.php:115 -#: includes/widgets/recipe-list.php:94 +#: includes/widgets/recipe-card.php:115 includes/widgets/recipe-list.php:94 msgid "Hide Author" msgstr "" @@ -1978,7 +2153,10 @@ msgstr "" #. translators: referring to "Cooked Pro" #: templates/admin/pro.php:14 #, php-format -msgid "The %s upgrade adds loads of new features like ratings, favorites, user profiles, automatic nutrition information and more. Check out the list below for all of the details." +msgid "" +"The %s upgrade adds loads of new features like ratings, favorites, user " +"profiles, automatic nutrition information and more. Check out the list below " +"for all of the details." msgstr "" #: templates/admin/pro.php:23 @@ -2061,8 +2239,7 @@ msgstr "" msgid "Update Settings" msgstr "" -#: templates/admin/settings.php:10 -#: templates/admin/welcome.php:33 +#: templates/admin/settings.php:10 templates/admin/welcome.php:33 msgid "Cooked Settings" msgstr "" @@ -2074,15 +2251,18 @@ msgstr "" #: templates/admin/welcome.php:16 #, php-format -msgid "If this is your first time using %1$s, head over to the %2$s page for some initial configuration. You can also check out the %3$s if you get stuck or contact me on %4$s. If you just recently updated, you can find out what's new below." +msgid "" +"If this is your first time using %1$s, head over to the %2$s page for some " +"initial configuration. You can also check out the %3$s if you get stuck or " +"contact me on %4$s. If you just recently updated, you can find out what's " +"new below." msgstr "" #: templates/admin/welcome.php:19 msgid "documentation" msgstr "" -#: templates/admin/welcome.php:20 -#: templates/admin/welcome.php:32 +#: templates/admin/welcome.php:20 templates/admin/welcome.php:32 msgid "Discord" msgstr "" @@ -2107,128 +2287,3 @@ msgstr "" #: templates/front/recipe-list.php:38 msgid "View all recipes" msgstr "" - -#: includes/class.cooked-recipe-meta.php:532 -#: includes/class.cooked-recipe-meta.php:687 -#: includes/class.cooked-recipe-meta.php:759 -#: includes/class.cooked-recipe-meta.php:851 -msgid "Heading Element:" -msgstr "" - -#: includes/class.cooked-measurements.php:85 -#: includes/class.cooked-measurements.php:86 -msgid "dl" -msgstr "" - -#: includes/class.cooked-measurements.php:87 -msgid "deciliter" -msgstr "" - -#: includes/class.cooked-measurements.php:88 -msgid "deciliters" -msgstr "" - -#: includes/class.cooked-settings.php:293 -msgid "Section Heading Default HTML Tag" -msgstr "" - -#. translators: a description on how to set the default sort order for the [cooked-browse] shortcode. -#: includes/class.cooked-settings.php:295 -msgid "Set the default HTML tag for your section headings." -msgstr "" - -#: includes/class.cooked-settings.php:301 -msgid "div" -msgstr "" - -#: includes/class.cooked-settings.php:302 -msgid "h2" -msgstr "" - -#: includes/class.cooked-settings.php:303 -msgid "h3" -msgstr "" - -#: includes/class.cooked-settings.php:304 -msgid "h4" -msgstr "" - -#: includes/class.cooked-settings.php:305 -msgid "h5" -msgstr "" - -#: includes/class.cooked-settings.php:306 -msgid "h6" -msgstr "" - -#: includes/class.cooked-recipes.php:1116 -msgid "Search" -msgstr "" - -#: includes/class.cooked-shortcodes.php:661 -msgid "Fullscreen" -msgstr "" - -#: includes/class.cooked-settings.php:143 -msgid "Choose a page..." -msgstr "" - -#: includes/class.cooked-settings.php:143 -msgid "No pages" -msgstr "" - -#: includes/class.cooked-delicious-recipes.php:102 -msgid "Error importing WP Delicious recipe." -msgstr "" - -#: includes/class.cooked-import.php:108 -msgid "The difficulty level will be set to Beginner since it is not supported by WP Recipe Maker." -msgstr "" - -#: includes/class.cooked-import.php:110 -msgid "The existing WP Recipe Maker and data will not be modified or deleted." -msgstr "" - -#: includes/class.cooked-import.php:123 -#: includes/class.cooked-import.php:138 -msgid "WP Recipe Maker - Import" -msgstr "" - -#: includes/class.cooked-recipe-maker.php:103 -msgid "Error importing WP Recipe Maker recipe." -msgstr "" - -#: includes/class.cooked-settings.php:104 -msgid "Cooked Plugin Setup" -msgstr "" - -#: includes/class.cooked-settings.php:105 -#, php-format -msgid "To display your recipes properly, please set up your %s." -msgstr "" - -#. translators: a description on how to add the [cooked-browse] shortcode to a page -#: includes/class.cooked-settings.php:170 -msgid "Note: This setting is required for the plugin to function properly." -msgstr "" - -#: includes/class.cooked-settings.php:257 -msgid "Note: Author links require the Browse/Search Recipes Page to be set up correctly to function properly." -msgstr "" - -#: includes/class.cooked-recipe-meta.php:504 -#: includes/class.cooked-recipe-meta.php:596 -#: includes/class.cooked-recipe-meta.php:662 -msgid "Substitution:" -msgstr "" - -#: includes/class.cooked-recipe-meta.php:517 -#: includes/class.cooked-recipe-meta.php:609 -#: includes/class.cooked-recipe-meta.php:675 -msgid "ex. Apple Sauce, Tofu, etc." -msgstr "" - -#: includes/class.cooked-recipes.php:904 -#: includes/class.cooked-recipes.php:918 -msgid "or" -msgstr "" diff --git a/package-lock.json b/package-lock.json index 9da2a42..09d390e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -106,6 +106,7 @@ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=8.0.0" } @@ -129,6 +130,7 @@ "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=14" }, @@ -142,6 +144,7 @@ "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, @@ -168,6 +171,7 @@ "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", @@ -598,6 +602,7 @@ "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" @@ -625,6 +630,7 @@ "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", @@ -653,6 +659,7 @@ "integrity": "sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=14" } @@ -1000,6 +1007,7 @@ "integrity": "sha512-IVAh/nOJaw6W9g+RJVlIQJ6gSiER+ae6mKQ5CX1bERzQgbC1VSeBlwdvczT7pxb0GWiyrxH4TGKbMfDb4Sq/ig==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "playwright": "1.55.1" }, @@ -1295,6 +1303,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1542,7 +1551,8 @@ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.7.0.tgz", "integrity": "sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==", "dev": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/bare-fs": { "version": "4.4.4", @@ -2113,7 +2123,8 @@ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz", "integrity": "sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==", "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/dot-case": { "version": "3.0.4", diff --git a/readme.md b/readme.md index 56736c7..7034583 100644 --- a/readme.md +++ b/readme.md @@ -33,6 +33,8 @@ Most recipe plugins require that you purchase a PRO version for features like nu * Cooking times with clickable, interactive timers. * Very developer-friendly with loads of hooks & filters. * Servings switcher to adjust ingredient amounts. +* Ingredient Substitutions - Add alternative ingredients for dietary restrictions or preferences. +* CSV Import - Bulk import recipes from CSV files with support for ingredients, directions, substitutions, and more. * And more to come... Of course, if you want even more, you can always check out the [PRO](https://cooked.pro) version of Cooked. It adds features like ratings & favorites, recipe submissions, and so much more. @@ -69,6 +71,11 @@ wp i18n make-pot /wp-content/themes/cooked/ /wp-content/themes/cooked/languages/ ``` bash gulp build ``` +#### Creating distribution bundle +``` bash +npm run bundle +``` +Creates a `cooked.zip` file ready for distribution, excluding development files. ## Documentation diff --git a/readme.txt b/readme.txt index 2cf673b..66eca62 100644 --- a/readme.txt +++ b/readme.txt @@ -41,6 +41,8 @@ Most recipe plugins require that you purchase a PRO version for features like nu * Cooking times with clickable, interactive timers. * Very developer-friendly with loads of hooks & filters. * Servings switcher to adjust ingredient amounts. +* Ingredient Substitutions - Add alternative ingredients for dietary restrictions or preferences. +* CSV Import - Bulk import recipes from CSV files with support for ingredients, directions, substitutions, and more. * And more to come... Of course, if you want even more, you can always check out the [PRO](https://cooked.pro) version of Cooked. It adds features like ratings & favorites, recipe submissions, and so much more. @@ -76,10 +78,15 @@ Be sure to check the [Cooked Documentation](https://github.com/XjSv/Cooked/wiki) == Upgrade Notice == -Version 1.11.2 includes a new import for WP Recipe Maker recipes, transient message handling for guests to support guest recipe submissions, and developer hooks: `cooked_info_shortcode_output` filter and `cooked_ingredients_shortcode_before`/`cooked_ingredients_shortcode_after` actions for enhanced customization. +Version 1.11.3 includes CSV import functionality, allowing you to bulk import recipes from CSV files. This makes it easy to migrate recipes from other systems or import large recipe collections. The CSV import supports all recipe fields including ingredients with substitutions, directions, nutrition data, categories, and tags. == Changelog == += 1.11.3 = +* **NEW:** Added CSV import functionality for bulk importing recipes from CSV files. +* **NEW:** CSV import supports all recipe fields including ingredients with substitutions, directions, nutrition data, categories, and tags. +* **NEW:** Added `bundle` npm script for creating distribution-ready zip files. + = 1.11.2 = * **NEW:** Added import for WP Recipe Maker recipes. * **TWEAK:** Improved author permalink generation and rewrite rules for recipe authors. diff --git a/templates/admin/import.php b/templates/admin/import.php index 44585fe..acf87a2 100644 --- a/templates/admin/import.php +++ b/templates/admin/import.php @@ -9,6 +9,7 @@ require_once COOKED_DIR . 'includes/class.cooked-import.php'; require_once COOKED_DIR . 'includes/class.cooked-delicious-recipes.php'; require_once COOKED_DIR . 'includes/class.cooked-recipe-maker.php'; + require_once COOKED_DIR . 'includes/class.cooked-csv-import.php'; global $_cooked_settings; diff --git a/tests/test_data/recipes-large.csv b/tests/test_data/recipes-large.csv new file mode 100644 index 0000000..05447b1 --- /dev/null +++ b/tests/test_data/recipes-large.csv @@ -0,0 +1,11 @@ +title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,tags +"Simple Scrambled Eggs","Perfect fluffy scrambled eggs for breakfast",5,5,1,"4|large|Eggs||4|large|Egg Replacer|2|tbsp|Milk||2|tbsp|Almond Milk|1|tbsp|Butter|Salt and Pepper|Fresh Chives","Crack eggs into a bowl|Add milk and whisk until combined|Heat butter in a non-stick pan over medium-low heat|Pour in egg mixture|Gently stir with a spatula until cooked|Season with salt and pepper|Garnish with fresh chives","Cook low and slow for best results","Breakfast","eggs,breakfast,simple" +"Classic Caesar Salad","Crisp romaine lettuce with homemade Caesar dressing",15,0,1,"#Salad|1|head|Romaine Lettuce|1/2|cup|Parmesan Cheese|1/4|cup|Croutons|#Dressing|2|anchovy|Anchovy Fillets||2|tbsp|Miso Paste|2|cloves|Garlic|1|tbsp|Dijon Mustard|2|tbsp|Lemon Juice|1/4|cup|Olive Oil|1/4|cup|Parmesan Cheese|Black Pepper","Wash and chop romaine lettuce|In a bowl, mash anchovies with garlic|Whisk in mustard, lemon juice, and olive oil|Stir in parmesan cheese|Toss lettuce with dressing|Top with croutons and additional parmesan|Season with black pepper","Anchovies can be omitted for a vegetarian version","Salads","caesar,salad,romaine" +"Beef Stroganoff","Tender beef in a creamy mushroom sauce served over egg noodles",20,45,2,"1|lb|Beef Sirloin||1|lb|Mushrooms (for vegetarian)|2|tbsp|Butter|1|medium|Onion|8|oz|Mushrooms|2|tbsp|All-Purpose Flour|1|cup|Beef Broth||1|cup|Vegetable Broth|1|tbsp|Worcestershire Sauce|1/2|cup|Sour Cream||1/2|cup|Coconut Cream|Salt and Pepper|Egg Noodles|Fresh Parsley","Cut beef into thin strips|Season with salt and pepper|Heat butter in a large skillet|Brown beef on all sides, remove and set aside|Add onion and mushrooms, cook until softened|Sprinkle with flour and stir|Add broth and Worcestershire sauce|Return beef to pan, simmer 15 minutes|Stir in sour cream|Serve over egg noodles|Garnish with fresh parsley","Don't boil after adding sour cream or it will curdle","Main Dishes","beef,stroganoff,comfort food" +"Banana Bread","Moist and flavorful banana bread perfect for breakfast or snack",15,60,1,"3|ripe|Bananas|1/3|cup|Butter||1/3|cup|Coconut Oil|3/4|cup|Granulated Sugar|1|large|Egg||1|tbsp|Flaxseed Meal + 3 tbsp Water|1|tsp|Vanilla Extract|1|tsp|Baking Soda|Pinch of Salt|1 1/2|cups|All-Purpose Flour","Preheat oven to 350°F (175°C)|Grease a 9x5 inch loaf pan|Mash bananas in a large bowl|Mix in melted butter and sugar|Beat in egg and vanilla|Stir in baking soda and salt|Fold in flour until just combined|Pour into prepared pan|Bake for 60 minutes until toothpick comes out clean|Cool in pan 10 minutes, then transfer to wire rack","Best with very ripe bananas","Breakfast,Desserts","banana,bread,baking" +"Chicken Tikka Masala","Creamy Indian curry with tender chicken in a spiced tomato sauce",30,40,2,"#Marinade|1|lb|Chicken Breast||1|lb|Tofu|1|cup|Plain Yogurt||1|cup|Coconut Yogurt|2|tbsp|Lemon Juice|2|tsp|Garam Masala|1|tsp|Turmeric|1|tsp|Cumin|#Sauce|1|tbsp|Butter||1|tbsp|Coconut Oil|1|medium|Onion|3|cloves|Garlic|1|tbsp|Ginger|1|tbsp|Garam Masala|1|tsp|Paprika|1|can|Tomato Sauce|1|cup|Heavy Cream||1|cup|Coconut Cream|Fresh Cilantro|Basmati Rice","Cut chicken into bite-sized pieces|Mix yogurt, lemon juice, and spices for marinade|Marinate chicken for at least 30 minutes|Heat butter in a large pan|Cook chicken until browned, remove|Add onion, garlic, and ginger, cook until soft|Stir in spices and cook 1 minute|Add tomato sauce and simmer|Return chicken to pan|Stir in cream and simmer 10 minutes|Garnish with cilantro|Serve over basmati rice","Marinating overnight yields best results","Main Dishes,Indian","chicken,curry,indian,spicy" +"Caprese Salad","Fresh Italian salad with tomatoes, mozzarella, and basil",10,0,1,"4|large|Tomatoes|8|oz|Fresh Mozzarella|1/4|cup|Fresh Basil|2|tbsp|Olive Oil|1|tbsp|Balsamic Vinegar|Salt and Pepper","Slice tomatoes and mozzarella|Arrange on a platter alternating tomato and mozzarella|Tear basil leaves and scatter over top|Drizzle with olive oil and balsamic|Season with salt and pepper|Serve immediately","Use the best quality ingredients you can find","Salads,Italian","caprese,tomato,mozzarella,fresh" +"Beef and Broccoli Stir Fry","Quick and easy Chinese-inspired stir fry",15,15,1,"1|lb|Beef Sirloin||1|lb|Tempeh|1|head|Broccoli|2|cloves|Garlic|1|tbsp|Ginger|1/4|cup|Soy Sauce||1/4|cup|Tamari|2|tbsp|Honey||2|tbsp|Maple Syrup|1|tbsp|Cornstarch|2|tbsp|Vegetable Oil|Sesame Seeds|White Rice","Cut beef into thin strips|Cut broccoli into florets|Mix soy sauce, honey, and cornstarch|Heat oil in a wok or large pan|Stir-fry beef until browned, remove|Add broccoli, garlic, and ginger|Cook until broccoli is tender-crisp|Return beef to pan|Pour in sauce and stir until thickened|Garnish with sesame seeds|Serve over white rice","Cook over high heat for best results","Main Dishes,Asian","beef,broccoli,stir fry,quick" +"Apple Pie","Classic American apple pie with flaky crust",45,60,2,"#Crust|2|cups|All-Purpose Flour|1|tsp|Salt|2/3|cup|Butter||2/3|cup|Shortening|4-6|tbsp|Ice Water|#Filling|6|cups|Apples|3/4|cup|Granulated Sugar|2|tbsp|All-Purpose Flour|1|tsp|Cinnamon|1/4|tsp|Nutmeg|1|tbsp|Lemon Juice|2|tbsp|Butter","Make pie crust: mix flour and salt|Cut in butter until crumbly|Add water gradually until dough forms|Divide in half, wrap and chill 30 minutes|Peel and slice apples|Mix apples with sugar, flour, and spices|Add lemon juice|Roll out bottom crust, place in pie pan|Fill with apple mixture|Dot with butter|Cover with top crust, seal edges|Cut vents in top|Bake at 425°F for 45-50 minutes until golden","Serve warm with vanilla ice cream","Desserts","apple,pie,classic,baking" +"Greek Salad","Fresh Mediterranean salad with feta and olives",15,0,1,"2|large|Tomatoes|1|cucumber|Cucumber|1|red|Onion|1|green|Bell Pepper|4|oz|Feta Cheese|1/2|cup|Kalamata Olives|2|tbsp|Olive Oil|1|tbsp|Red Wine Vinegar|1|tsp|Dried Oregano|Salt and Pepper","Cut tomatoes into wedges|Slice cucumber|Thinly slice onion and bell pepper|Cut feta into cubes|Mix all vegetables in a bowl|Add olives and feta|Whisk together olive oil, vinegar, and oregano|Drizzle over salad|Season with salt and pepper|Toss gently and serve","Best served immediately","Salads,Mediterranean","greek,salad,feta,olives" +"Chicken Noodle Soup","Comforting homemade chicken soup with vegetables and noodles",20,30,1,"1|lb|Chicken Breast||1|lb|Chickpeas|8|cups|Chicken Broth||8|cups|Vegetable Broth|2|cups|Egg Noodles|2|carrots|Carrots|2|stalks|Celery|1|medium|Onion|2|cloves|Garlic|1|tsp|Dried Thyme|Salt and Pepper|Fresh Parsley","Cut chicken into bite-sized pieces|Dice carrots, celery, and onion|Heat broth in a large pot|Add vegetables and cook until tender|Add chicken and cook until done|Stir in noodles and cook until al dente|Season with thyme, salt, and pepper|Garnish with fresh parsley|Serve hot","Perfect for cold weather","Soups,Comfort Food","chicken,soup,noodles,comfort" diff --git a/tests/test_data/recipes-medium.csv b/tests/test_data/recipes-medium.csv new file mode 100644 index 0000000..03c1d67 --- /dev/null +++ b/tests/test_data/recipes-medium.csv @@ -0,0 +1,4 @@ +title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,tags +"Classic Beef Lasagna","A hearty Italian lasagna with layers of pasta, meat sauce, and cheese",30,60,2,"#Meat Sauce|1|lb|Ground Beef||1|lb|Ground Turkey|1|medium|Onion|3|cloves|Garlic|1|can|Crushed Tomatoes|2|tbsp|Tomato Paste|1|tsp|Dried Oregano|1|tsp|Dried Basil|Salt and Pepper to taste|#Cheese Mixture|2|cups|Ricotta Cheese|1|cup|Mozzarella Cheese|1/2|cup|Parmesan Cheese|2|large|Eggs|1/4|cup|Fresh Parsley|#Other|12|sheets|Lasagna Noodles|2|cups|Mozzarella Cheese (for topping)","Preheat oven to 375°F (190°C)|Cook lasagna noodles according to package directions|In a large skillet, brown ground beef over medium heat|Add onion and garlic, cook until softened|Stir in crushed tomatoes, tomato paste, and seasonings|Simmer for 20 minutes|In a bowl, mix ricotta, mozzarella, parmesan, eggs, and parsley|Layer: sauce, noodles, cheese mixture, repeat|Top with remaining mozzarella|Cover with foil and bake for 45 minutes|Remove foil and bake 15 more minutes until bubbly|Let stand 10 minutes before serving","Can be frozen for up to 3 months","Main Dishes,Italian","lasagna,pasta,beef,cheese" +"Vegetarian Buddha Bowl","A colorful and nutritious bowl with quinoa, roasted vegetables, and tahini dressing",20,30,1,"#Base|1|cup|Quinoa|2|cups|Vegetable Broth|#Vegetables|1|medium|Sweet Potato|1|head|Broccoli|1|red|Bell Pepper|1|cup|Chickpeas|2|tbsp|Olive Oil|Salt and Pepper|#Dressing|1/4|cup|Tahini|2|tbsp|Lemon Juice|2|tbsp|Water|1|clove|Garlic|1|tsp|Maple Syrup||1|tsp|Honey|#Toppings|1|avocado|Avocado|2|tbsp|Pumpkin Seeds|Fresh Cilantro","Preheat oven to 400°F (200°C)|Cook quinoa in vegetable broth according to package directions|Cut sweet potato into cubes, toss with olive oil|Roast sweet potato for 20 minutes|Add broccoli and bell pepper, roast 10 more minutes|Drain and rinse chickpeas, season with salt|Whisk together tahini, lemon juice, water, garlic, and sweetener|Divide quinoa among bowls|Top with roasted vegetables and chickpeas|Drizzle with tahini dressing|Garnish with avocado, pumpkin seeds, and cilantro","Great for meal prep - keeps well for 3-4 days","Main Dishes,Vegetarian","buddha bowl,vegetarian,healthy,quinoa" +"Chocolate Lava Cake","Decadent individual chocolate cakes with a molten center",15,12,2,"4|oz|Dark Chocolate|4|tbsp|Butter||4|tbsp|Coconut Oil|2|large|Eggs|2|tbsp|Granulated Sugar|2|tbsp|All-Purpose Flour|1|tsp|Vanilla Extract|Pinch of Salt|Powdered Sugar for dusting","Preheat oven to 425°F (220°C)|Butter 4 ramekins and dust with cocoa powder|Melt chocolate and butter in a double boiler|In a separate bowl, beat eggs and sugar until pale|Fold in flour, vanilla, and salt|Stir in melted chocolate mixture|Divide batter among ramekins|Bake for 12-14 minutes until edges are set but center is soft|Let cool 1 minute, then invert onto plates|Dust with powdered sugar and serve immediately","Must be served immediately while still warm","Desserts","chocolate,cake,decadent" diff --git a/tests/test_data/recipes-small.csv b/tests/test_data/recipes-small.csv new file mode 100644 index 0000000..7c81c7a --- /dev/null +++ b/tests/test_data/recipes-small.csv @@ -0,0 +1,2 @@ +title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,tags +"Chocolate Chip Cookies","Classic homemade chocolate chip cookies that are soft and chewy",15,12,1,"2|cups|All-Purpose Flour|1|cup|Butter||1|cup|Margarine|1|tsp|Baking Soda|1|tsp|Salt|3/4|cup|Granulated Sugar|3/4|cup|Brown Sugar|2|large|Eggs|2|tsp|Vanilla Extract|2|cups|Chocolate Chips","Preheat oven to 375°F (190°C)|In a large bowl, cream together the butter and sugars until smooth|Beat in eggs and vanilla|In a separate bowl, combine flour, baking soda, and salt|Gradually blend into the creamed mixture|Stir in chocolate chips|Drop rounded tablespoons of dough onto ungreased cookie sheets|Bake for 9 to 11 minutes or until golden brown|Cool on baking sheet for 2 minutes before removing to wire rack","Store in an airtight container for up to 1 week","Desserts","cookies,chocolate,baking" From c23321f845742fd02ba8514a4d51509f185bc472 Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 <79588074+mgiannopoulos24@users.noreply.github.com> Date: Fri, 9 Jan 2026 20:05:05 +0200 Subject: [PATCH 02/31] Updated missing translations --- assets/admin/js/cooked-migration.js | 38 +- assets/admin/js/cooked-migration.min.js | 2 +- includes/class.cooked-admin-enqueues.php | 12 + includes/class.cooked-ajax.php | 2 +- languages/cooked-fr_FR.mo | Bin 32010 -> 26426 bytes languages/cooked-fr_FR.po | 3647 +++++++++++++--------- languages/cooked.po | 2581 ++++++++------- languages/cooked.pot | 2551 +++++++-------- 8 files changed, 4737 insertions(+), 4096 deletions(-) diff --git a/assets/admin/js/cooked-migration.js b/assets/admin/js/cooked-migration.js index 2be7c41..a039c2a 100644 --- a/assets/admin/js/cooked-migration.js +++ b/assets/admin/js/cooked-migration.js @@ -71,7 +71,7 @@ cooked_import_recipes(json_recipe_ids, total_recipes, import_type); } } else { - console.log('Something went wrong'); + console.log(cooked_migration_js_vars.i18n_something_wrong || 'Something went wrong'); thisButton.addClass('disabled').attr('disabled', false); thisButton.show(); } @@ -109,7 +109,7 @@ return; } - var confirm_import = confirm(cooked_migration_js_vars.i18n_confirm_import_recipes || 'Are you sure you want to import recipes from this CSV file?'); + var confirm_import = confirm(cooked_migration_js_vars.i18n_confirm_csv_import || cooked_migration_js_vars.i18n_confirm_import_recipes || 'Are you sure you want to import recipes from this CSV file?'); if (!confirm_import) { return; } @@ -126,7 +126,7 @@ $_CookedCSVImportProgress.addClass('cooked-active'); $_CookedCSVImportProgressText.addClass('cooked-active'); $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "0%" }); - $_CookedCSVImportProgressText.text('Uploading...'); + $_CookedCSVImportProgressText.text(cooked_migration_js_vars.i18n_uploading || 'Uploading...'); } // Upload file @@ -138,7 +138,7 @@ contentType: false, success: function(response) { if (response.success) { - $_CookedCSVImportProgressText.text('Processing...'); + $_CookedCSVImportProgressText.text(cooked_migration_js_vars.i18n_processing || 'Processing...'); $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "50%" }); // Process CSV @@ -151,11 +151,13 @@ function(processResponse) { if (processResponse.success) { $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "100%" }); - $_CookedCSVImportProgressText.text(processResponse.data.success + ' / ' + processResponse.data.total + ' recipes imported'); + var recipesImportedText = cooked_migration_js_vars.i18n_recipes_imported || 'recipes imported'; + $_CookedCSVImportProgressText.text(processResponse.data.success + ' / ' + processResponse.data.total + ' ' + recipesImportedText); // Show errors if any if (processResponse.data.errors && processResponse.data.errors.length > 0) { - var errorHtml = '

    Errors:

      '; + var errorsLabel = cooked_migration_js_vars.i18n_errors || 'Errors:'; + var errorHtml = '

      ' + errorsLabel + '

        '; processResponse.data.errors.forEach(function(error) { errorHtml += '
      • ' + error + '
      • '; }); @@ -172,7 +174,8 @@ fileInput.hide(); }, 2000); } else { - errorsDiv.html('

        ' + (processResponse.data.message || 'Import failed.') + '

        ').show(); + var importFailedText = cooked_migration_js_vars.i18n_import_failed || 'Import failed.'; + errorsDiv.html('

        ' + (processResponse.data.message || importFailedText) + '

        ').show(); if (processResponse.data.errors && processResponse.data.errors.length > 0) { var errorHtml = '
          '; processResponse.data.errors.forEach(function(error) { @@ -189,14 +192,16 @@ }, 'json' ).fail(function() { - errorsDiv.html('

          Failed to process CSV file.

          ').show(); + var failedProcessText = cooked_migration_js_vars.i18n_failed_process_csv || 'Failed to process CSV file.'; + errorsDiv.html('

          ' + failedProcessText + '

          ').show(); thisButton.removeClass('disabled').attr('disabled', false); fileInput.attr('disabled', false); $_CookedCSVImportProgress.removeClass('cooked-active'); $_CookedCSVImportProgressText.removeClass('cooked-active'); }); } else { - errorsDiv.html('

          ' + (response.data.message || 'File upload failed.') + '

          ').show(); + var fileUploadFailedText = cooked_migration_js_vars.i18n_file_upload_failed || 'File upload failed.'; + errorsDiv.html('

          ' + (response.data.message || fileUploadFailedText) + '

          ').show(); thisButton.removeClass('disabled').attr('disabled', false); fileInput.attr('disabled', false); $_CookedCSVImportProgress.removeClass('cooked-active'); @@ -204,7 +209,8 @@ } }, error: function() { - errorsDiv.html('

          Failed to upload CSV file.

          ').show(); + var failedUploadText = cooked_migration_js_vars.i18n_failed_upload_csv || 'Failed to upload CSV file.'; + errorsDiv.html('

          ' + failedUploadText + '

          ').show(); thisButton.removeClass('disabled').attr('disabled', false); fileInput.attr('disabled', false); $_CookedCSVImportProgress.removeClass('cooked-active'); @@ -304,10 +310,12 @@ function cooked_migrate_recipes(recipe_ids, total_recipes ) { if ( progress_percent < 100 && progress_percent > 3 && isFinite( estimatedCompletionTime ) ){ estimatedHours = Math.floor(estimatedCompletionTime / 3600); estimatedMinutes = Math.floor((estimatedCompletionTime / 60) % 60); + var hrsText = cooked_migration_js_vars.i18n_hrs || 'hrs'; + var minsText = cooked_migration_js_vars.i18n_mins || 'mins'; if ( estimatedHours >= 1 ){ - progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedHours + " hrs, " + estimatedMinutes + " mins " + cooked_migration_js_vars.i18n_remaining + "" ); + progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedHours + " " + hrsText + ", " + estimatedMinutes + " " + minsText + " " + cooked_migration_js_vars.i18n_remaining + "" ); } else if ( estimatedMinutes >= 1 ){ - progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedMinutes + " mins " + cooked_migration_js_vars.i18n_remaining + "" ); + progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedMinutes + " " + minsText + " " + cooked_migration_js_vars.i18n_remaining + "" ); } else { progress_text.text( formattedComplete + " / " + formattedTotal ); } @@ -387,10 +395,12 @@ function cooked_import_recipes(recipe_ids, total_recipes, import_type) { if ( progress_percent < 100 && progress_percent > 3 && isFinite( estimatedCompletionTime ) ) { estimatedHours = Math.floor(estimatedCompletionTime / 3600); estimatedMinutes = Math.floor((estimatedCompletionTime / 60) % 60); + var hrsText = cooked_migration_js_vars.i18n_hrs || 'hrs'; + var minsText = cooked_migration_js_vars.i18n_mins || 'mins'; if ( estimatedHours >= 1 ){ - progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedHours + " hrs, " + estimatedMinutes + " mins " + cooked_migration_js_vars.i18n_remaining + "" ); + progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedHours + " " + hrsText + ", " + estimatedMinutes + " " + minsText + " " + cooked_migration_js_vars.i18n_remaining + "" ); } else if ( estimatedMinutes >= 1 ){ - progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedMinutes + " mins " + cooked_migration_js_vars.i18n_remaining + "" ); + progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedMinutes + " " + minsText + " " + cooked_migration_js_vars.i18n_remaining + "" ); } else { progress_text.text( formattedComplete + " / " + formattedTotal ); } diff --git a/assets/admin/js/cooked-migration.min.js b/assets/admin/js/cooked-migration.min.js index 8afb607..846468d 100644 --- a/assets/admin/js/cooked-migration.min.js +++ b/assets/admin/js/cooked-migration.min.js @@ -1 +1 @@ -(d=>{d(document).ready(function(){var e=d("#cooked-migration-button"),o=d("#cooked-import-button"),t=d("#cooked-csv-import-button"),s=(d("#cooked-csv-import-form"),d("#cooked-migration-progress"),d("#cooked-migration-progress-text"),d("#cooked-csv-import-progress")),a=d("#cooked-csv-import-progress-text");e.length&&e.on("click",function(e){e.preventDefault();e=d(this);confirm(cooked_migration_js_vars.i18n_confirm_migrate_recipe)&&!e.hasClass("disabled")&&(e.addClass("disabled").attr("disabled",!0),e.hide(),d.post(cooked_migration_js_vars.ajax_url,{action:"cooked_get_migrate_ids"},function(e){var o;e&&(o=JSON.parse(e),0"}),o+="
        ",r.html(o).show()),setTimeout(function(){s.hide(),a.hide(),d("#cooked-csv-import-completed").show(),t.hide(),i.hide()},2e3)):(r.html("

        "+(e.data.message||"Import failed.")+"

        ").show(),e.data.errors&&0",e.data.errors.forEach(function(e){o+="
      • "+e+"
      • "}),o+="
      ",r.append(o)),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),s.removeClass("cooked-active"),a.removeClass("cooked-active"))},"json").fail(function(){r.html("

      Failed to process CSV file.

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),s.removeClass("cooked-active"),a.removeClass("cooked-active")})):(r.html("

      "+(e.data.message||"File upload failed.")+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),s.removeClass("cooked-active"),a.removeClass("cooked-active"))},error:function(){r.html("

      Failed to upload CSV file.

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),s.removeClass("cooked-active"),a.removeClass("cooked-active")}})):(e=cooked_migration_js_vars.i18n_csv_invalid_file||"Please select a valid CSV file.",r.html("

      "+e+"

      ").show()):(o=cooked_migration_js_vars.i18n_csv_no_file||"Please select a CSV file.",r.html("

      "+o+"

      ").show())})})})(jQuery);{function cookedDecimalAdjust(e,o,t){return void 0===t||0==+t?Math[e](o):(t=+t,null===(o=+o)||isNaN(o)||"number"!=typeof t||t%1!=0?NaN:o<0?-cookedDecimalAdjust(e,-o,t):(o=o.toString().split("e"),+((o=(o=Math[e](+(o[0]+"e"+(o[1]?+o[1]-t:-t)))).toString().split("e"))[0]+"e"+(o[1]?+o[1]+t:t))))}}Math.round10||(Math.round10=function(e,o){return cookedDecimalAdjust("round",e,o)});var cooked_recipe_migrate_counter=0,progressIterations=0;function cooked_migrate_recipes(e,s){var a,d,c,o,n=0;0"+i+" hrs, "+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):1<=r?c.html(t+" / "+o+""+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):c.text(t+" / "+o)):c.text(t+" / "+o),cooked_migrate_recipes(e,s)):(a.hide(),c.hide(),jQuery(".recipe-setting-block.migrate_button").find("h3").hide(),jQuery(".recipe-setting-block.migrate_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.migrate_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-migration-button").hide(),jQuery("#cooked-migration-completed").addClass("cooked-active"))}))}function cooked_import_recipes(e,s,a){var d,c,n,o,l=0;0"+i+" hrs, "+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):1<=r?n.html(t+" / "+o+""+r+" mins "+cooked_migration_js_vars.i18n_remaining+""):n.text(t+" / "+o)):n.text(t+" / "+o),cooked_import_recipes(e,s,a)):(d.hide(),n.hide(),jQuery(".recipe-setting-block.import_button").find("h3").hide(),jQuery(".recipe-setting-block.import_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.import_button").find(".cooked-import-note").hide(),jQuery(".recipe-setting-block.import_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-import-button").hide(),jQuery("#cooked-import-completed").addClass("cooked-active"))}))} \ No newline at end of file +(c=>{c(document).ready(function(){var e=c("#cooked-migration-button"),o=c("#cooked-import-button"),i=c("#cooked-csv-import-button"),a=(c("#cooked-csv-import-form"),c("#cooked-migration-progress"),c("#cooked-migration-progress-text"),c("#cooked-csv-import-progress")),d=c("#cooked-csv-import-progress-text");e.length&&e.on("click",function(e){e.preventDefault();e=c(this);confirm(cooked_migration_js_vars.i18n_confirm_migrate_recipe)&&!e.hasClass("disabled")&&(e.addClass("disabled").attr("disabled",!0),e.hide(),c.post(cooked_migration_js_vars.ajax_url,{action:"cooked_get_migrate_ids"},function(e){var o;e&&(o=JSON.parse(e),0

        ",e.data.errors.forEach(function(e){i+="
      • "+e+"
      • "}),i+="
      ",s.html(i).show()),setTimeout(function(){a.hide(),d.hide(),c("#cooked-csv-import-completed").show(),t.hide(),r.hide()},2e3)):(o=cooked_migration_js_vars.i18n_import_failed||"Import failed.",s.html("

      "+(e.data.message||o)+"

      ").show(),e.data.errors&&0",e.data.errors.forEach(function(e){i+="
    • "+e+"
    • "}),i+="
    ",s.append(i)),t.removeClass("disabled").attr("disabled",!1),r.attr("disabled",!1),a.removeClass("cooked-active"),d.removeClass("cooked-active"))},"json").fail(function(){var e=cooked_migration_js_vars.i18n_failed_process_csv||"Failed to process CSV file.";s.html("

    "+e+"

    ").show(),t.removeClass("disabled").attr("disabled",!1),r.attr("disabled",!1),a.removeClass("cooked-active"),d.removeClass("cooked-active")})):(o=cooked_migration_js_vars.i18n_file_upload_failed||"File upload failed.",s.html("

    "+(e.data.message||o)+"

    ").show(),t.removeClass("disabled").attr("disabled",!1),r.attr("disabled",!1),a.removeClass("cooked-active"),d.removeClass("cooked-active"))},error:function(){var e=cooked_migration_js_vars.i18n_failed_upload_csv||"Failed to upload CSV file.";s.html("

    "+e+"

    ").show(),t.removeClass("disabled").attr("disabled",!1),r.attr("disabled",!1),a.removeClass("cooked-active"),d.removeClass("cooked-active")}})):(e=cooked_migration_js_vars.i18n_csv_invalid_file||"Please select a valid CSV file.",s.html("

    "+e+"

    ").show()):(o=cooked_migration_js_vars.i18n_csv_no_file||"Please select a CSV file.",s.html("

    "+o+"

    ").show())})})})(jQuery);{function cookedDecimalAdjust(e,o,i){return void 0===i||0==+i?Math[e](o):(i=+i,null===(o=+o)||isNaN(o)||"number"!=typeof i||i%1!=0?NaN:o<0?-cookedDecimalAdjust(e,-o,i):(o=o.toString().split("e"),+((o=(o=Math[e](+(o[0]+"e"+(o[1]?+o[1]-i:-i)))).toString().split("e"))[0]+"e"+(o[1]?+o[1]+i:i))))}}Math.round10||(Math.round10=function(e,o){return cookedDecimalAdjust("round",e,o)});var cooked_recipe_migrate_counter=0,progressIterations=0;function cooked_migrate_recipes(e,d){var c,n,_,o,l=0;0"+t+" "+s+", "+r+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):1<=r?_.html(i+" / "+o+""+r+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):_.text(i+" / "+o)):_.text(i+" / "+o),cooked_migrate_recipes(e,d)):(c.hide(),_.hide(),jQuery(".recipe-setting-block.migrate_button").find("h3").hide(),jQuery(".recipe-setting-block.migrate_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.migrate_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-migration-button").hide(),jQuery("#cooked-migration-completed").addClass("cooked-active"))}))}function cooked_import_recipes(e,d,c){var n,_,l,o,p=0;0"+t+" "+s+", "+r+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):1<=r?l.html(i+" / "+o+""+r+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):l.text(i+" / "+o)):l.text(i+" / "+o),cooked_import_recipes(e,d,c)):(n.hide(),l.hide(),jQuery(".recipe-setting-block.import_button").find("h3").hide(),jQuery(".recipe-setting-block.import_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.import_button").find(".cooked-import-note").hide(),jQuery(".recipe-setting-block.import_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-import-button").hide(),jQuery("#cooked-import-completed").addClass("cooked-active"))}))} \ No newline at end of file diff --git a/includes/class.cooked-admin-enqueues.php b/includes/class.cooked-admin-enqueues.php index d62c711..8fda179 100644 --- a/includes/class.cooked-admin-enqueues.php +++ b/includes/class.cooked-admin-enqueues.php @@ -148,8 +148,20 @@ public function admin_enqueues( $hook ) { /* translators: confirmation for migrating all ### recipes, where ### displays the total number for the migration. */ 'i18n_confirm_migrate_recipes' => sprintf(__('Please confirm that you are ready to migrate all %s recipes.', 'cooked'), number_format($total_old_recipes)), 'i18n_confirm_import_recipes' => __('Please confirm that you are ready to import all recipes.', 'cooked'), + 'i18n_confirm_csv_import' => __('Are you sure you want to import recipes from this CSV file?', 'cooked'), 'i18n_csv_no_file' => __('Please select a CSV file.', 'cooked'), 'i18n_csv_invalid_file' => __('Please select a valid CSV file.', 'cooked'), + 'i18n_uploading' => __('Uploading...', 'cooked'), + 'i18n_processing' => __('Processing...', 'cooked'), + 'i18n_recipes_imported' => __('recipes imported', 'cooked'), + 'i18n_errors' => __('Errors:', 'cooked'), + 'i18n_import_failed' => __('Import failed.', 'cooked'), + 'i18n_failed_process_csv' => __('Failed to process CSV file.', 'cooked'), + 'i18n_failed_upload_csv' => __('Failed to upload CSV file.', 'cooked'), + 'i18n_file_upload_failed' => __('File upload failed.', 'cooked'), + 'i18n_something_wrong' => __('Something went wrong', 'cooked'), + 'i18n_hrs' => __('hrs', 'cooked'), + 'i18n_mins' => __('mins', 'cooked'), 'wp_editor_roles_allowed' => esc_attr($wp_editor_roles_allowed), ]; diff --git a/includes/class.cooked-ajax.php b/includes/class.cooked-ajax.php index 8bd77d2..7f62bf6 100644 --- a/includes/class.cooked-ajax.php +++ b/includes/class.cooked-ajax.php @@ -343,7 +343,7 @@ public function save_default() { $_cooked_settings['default_content'] = wp_kses_post( $_POST['default_content'] ); update_option('cooked_settings', $_cooked_settings); } else { - echo 'No default content provided.'; + echo esc_html__( 'No default content provided.', 'cooked' ); } wp_die(); diff --git a/languages/cooked-fr_FR.mo b/languages/cooked-fr_FR.mo index 141d90b609c930695e72d8c055dc1bcac19d5ec9..f0d7136b04e2f997cdc626b80f730011c2b1c234 100644 GIT binary patch delta 8179 zcmZA63wTXuzQ^&kBNss;f{0tQOG1c=?-x!wX8Q=T2_7Bf#LWLM&Mx#!;eh)N#mEM{_mJX zeKkg5okuJy65}x%TOs`ftaK7F6!bC`L$M+G@z@>bn)27MHu)enz;{jgNo3B}1+0fx zFcxncBNHsE3HcVN1$0F%AOq_$zLiNLn}U2Ci5pQ3ucBst6V8*0ZcVG-Uy zO|;-qXJXTF82KvfgGW&PTCJQ3M52zO0S44za}t_)d(6Xh(;$EvXeDY3H=(w6FRJ}9 z)W9cD3pkHzf7#@3V{`JZ*3M3~#75*(QIFTa*6hC?y73ffB2}ir)2NO&q0ahE)D9dp z`QxaGoWmr%in_l+qO(FbDxZv+P!H5ZvXQ1%G3w}6B(ncn$p%xg6}2@-P&a;xIUU!(`TeMV4q+)in(UMZR*}#SJdaxWdejWJ zp=SQJDgO{P&)c?z@X>7ut^J31d(@nSttm80tvJBJBg#OcI*0-?#+T z@fy^YzhHa?HNYOMjfYUL*HKi5mryJH5yS8{M&dox1jCt)78HldcfgwWzfVoVvT~5N z)>zEJC8(KyjJn|~lfQ~}$lo(Yq&Ne{qKEQ$)N8j8HGu=h53mFIPf!#58SCi%zfVF> zYb3Q17>|YMM(xA`RQ(dvL-rgt#Wzqp^nt1W4E4oy5%uuhL@gjJ)p7Uq@_9LU|;e@n1|bt-yQ2Zs=ugC&W^;Pj;GSVBT8ejXd(izff3$?w8g$`4~*JcW9yFQHa^#pG{cBl7oA12p8f zyCJs5XzYOlafr#U#B9C)8%XdiYJH7v4DVrCZ(&>Hn5|Q&fkRk^298GM<53exH05c= zUdBvg9;*E~)B=l8-xHM>&-m6t5;`jzwSrBUfV)lkXV{+n861x;orijS zc`U#<&PfBzMh#qsn&@Jzh09I-D#`fP^CUEZb*5r7>PWVsCiDjCDSp?KA47Hg3F@Ie zi|V)<)z9~+hwwUTB6p1UQ2n}?t@?|=fVMP-gbSNt2)00Vn1H&WHLBxwroI#EzAmVh z^)+UrCN>&1fvKqeN>KgGLiJN-%I9aW|EgF>fo@oWn(+!$`5L2*x^W|_! z)qW?c-5%7=9Y9U!gegCVH4iVU{gn*%UpHK*Kr6Y8y1~V_j3yF=+NxO8jm=R5CgFR` zq#eeQ|E{02fcvQS;g31@*EcpojnfphP&e}JY$XRsxJisbJ)Kpk4p*RFpRJgHL2QAi zO!*BQLO!&=^Q)GN>ez!?c`2%&CsF;ZL%shyuqhre20kYdPr+5x3PT4tMx!PakNMah zXW}B%N~%!3$@b2*c#88`hTGYsGsGSgk8yJpuU33FaiUp{+44v9lbggHbuojy;mY z{%hrZDNu(KQ9mAYQ4OEK=J+gXfSouFk6Wn?89h;Au&`Q(}ZAMLa zAGXI2O!*I}m4~rSnn+!2f`K@b=!p7)8G;(92(|T3peD2tHRA&~A8(@`(s}vL1b&Bl zR$fC5@D6Gxj-m!WiF5HZ=HS4QHT3~&H3^;3i>Lu!#oG9d@ha*ey@l$q?kMM9GL2DN zya+Y$Q>ce`gYkXTQ(leQv7b>#7CqWoSSmKr`=3KX6`q;`euRu0FqZN?s0kcFt?WE% zf|pS{bj_64DRBNiXpEem<-=%v54EEwQ0>3PMi?^2y#Gx|=*;?HGt5SvO%ZB~7hyx( zf||fy)Rw+y%8wwsYMsSGOdjieZ!E<}$^QW-;Acn^t39ufc4`R*H1Kv3jd3q(fR8W% zPobWPpHM4^p?B4{$8hY1T45j5j^ttkEHL#mP!pev8fPi$2-l#FZhay9UrAys1wF9w zcxNJc*oJ%&9>!;IA?C6SzJ0CZ$eU@^o#^~0n?mHf#oCGNuJsd6!|X}UGqnSY$bXMB zaoA+%dt~2a&Oeias432SIuc{Zdr&JWN3CobHpexnt>1wPtDsO2_Hg+)v`jOC#b5JuaM6J+=I{Ql0nXScm+>Dy}KGe>9g#)k}S796W zSqs^VJT_J&s~CzNoP}>=C^qrdOq~DzLqc2C0mHB->f!2#dPoMN2Ff$#V@>&F)P%jL zBUp@KxEj^pTGUQ#!CLqhs^8tHe)nUj-v9Sa#Sv5SF>1@cKy`EhU3djU@G7dqYZ!(% zQ62w`s(*mGFJy)@foN2J%~9oTP!s5kA&hVJCZR3qi|TNoDlpsRb5S>pM70}l%BL8M zF`V*QsQVr_R-h(2AJy+749BIY*L?*B^ptNQp)=lt8t5Q~X`^Hamo`=@gMC5 z%^KS7W}$)oDlske?Vd<&LqgXeqtaW5bS1ckQ|@Kk8Ck?9)$VDu_Q2mk3>lh^0hb8oj6ju4vNBoMg?ZUnD(<(98EX;&p!iWqfYt<%wm~=}F#U`k$ zzESC6L{IX6R)%XRv7NY2JVyCb_zKa3_?E~g%oVUcB=sgShK7Air_0GVB|X*T^*?du zP*w-|$*lSH*Nc0CxJNv^{)>dZDXtPeQ`pM%5o7XA@U}@mqdjUsgAv5L6pk?!ca87h zB!@OBr%-mMsz1$B^nYt zi2o#j95c- zVUUi*SmO8Omk>vZgG5JSE3t^!Lo6gl((ZrIN^%eKl+Ib;9_yJ?Y2Rp-W>09{Hu!Su zbXTxCv8l_BY|}e9rp+=}OW$mFLFrttmFe@%_7=OdJaguF%NLL>EAy7y1CmEX4)T=G zcIWwuz4oWc4}$00#ky=)%3!-NC85zA-*nF$_b6{sX_?nu;43Ma`gng!aL9l0!x~^b;&tF~k zq~4wEUKtyL)B5fVwPOahsaI0&DfYT6eD3^mpZ)m2YCDkmU2y)OH6eCvR=6lBzH*Pdz*{ua-KWSmufkJQ(Z7VE3Q9T_d#i#|bMCtA zFLMXj1;bK<+lRg53YHHqaoLwgj0ld-4+)9LtSt5Wee>+VsK%j{rB&tj=~0DswRdj6 zZ|?MRZ*cMGVps55!E~2hKDOAtJ~qWp8kZFGk2~hF2T%Bmy>a5&;NVGampyy(ayw>9 zRq)v3itesp!>VjouwwqCTK2_--PyMx!B-Z|bp0RsQRb-t delta 13678 zcmchdd3;sXwZ~7G=OM@-ARLAO2_Z5G7#R!%2$Lj)AfN&_xhKhyn|s4O_l806I#m?3 z4p&sf0jpBcS|7$1=Yd$YYDI0G>R5-i7Kd83&h~wO=j;o?>ifLcKi>Jc@?C46J*>U< z+WYLQ-t%uV=T~X7OB;Wm)}UtIn1+s)c2}f22w+Yv*9gqR6@)c7nIV9`HWH zXJA+CcVHX%DQpYBhOJ@CAwhY2!){RTd&46vD`gEt=|#bK*agmmIdC}~0MCGO;5yhI z-Ud}~FH}d5!fx^Fk- zSA~(LU@TmKJsq}#7ejTl9p=Fspug5oOY#O(C_jhlr$cVwaCfMg4}_|pXYAu(KkQjh zj#TCnf3nbuQ=lZ=47Cfch4T1bs0cg(RqrKZe*hKguc0E?8Si8t3FXj8$f{XWq528K zw$L;7X;6-BNukK29gu{z_Ck5~3RJ@bP;31a)C{eWLA|!Hy-cW%j)8Ju7SupXp&Vaj z>?lc5G!{SkvqoEu)4u)V6)VXm3ltXWhC;sZ_Z>HcYNPbwY zjtLr$f$DG~>;k7lWp^1|3YWn=cn4I-UxSL&dr*=49ID-S&`)MQ2>Pz&K-HTzLFp=NqE>;*3~_N`Fw?}G~Uey9oj$-Ms<%E1;B19pJwCmU+OAy7*;1|A0s zQz!~`15~JXLd|#=RL6Uu8a{07{ZRGZfO6nns0n-yb#S$r6to)xHPASyrJZc-IZ*8u z!DC@6jG{HU7AiEa7=8w)V0Wd~0=NL`z}NxR@!e37*azkC^RN$m6Uy-~p$2YW7&zPu zYDxM-y&n>kr>t=(^5|HonaqQ#xEv~UA*cc3P@&yq-v7k#0;p_H!z198a4WnGu7t-D zXO`dE4j+R1;qTzZ%(|`i{|ctrkAiA=B|Hn(zv&iX z%i$hK{#vamTnG!HcFz_#5B>oXRLd?3mUJ2H%J^1|6u1^@Z8t+jkQkB2FRyclHwEQkDK#rdQ1U%?Xi2-K0; zc?ON)Sg7~qP{~;dwbu3UR=5ckz}(`%(WOvJ8HRE=Y06W@#9y9oH7_nV+-Z1=;hj)3 zegG;mPrz32Rj8!<6I9N81vT@mnZZY`7gYHKm&-%z$b*2dcwT!*VE3mp~1$9IDgd8iq_58J^{p=SE6VG9lq zIo=kkUKiL)`@feII11_c0%NpZ^XA!d9Hq`UVVzDldYw zU2(7A9W_SJAU z{06F{;zfZY3!uIw6~-2t4bOnRVH$RWx29118N+M}nqUQd0d|M^<$;4!;aKds zP>ybbn(1Z6ZiMRR38;3@LQU*#s7QVUJHghAgPh8S`kbdGq9}_i;9z(f90{+5J>U~i zIq^C?0=^IBKo(vOfqkIrO@Op91S-^&G0U$89xG*q%S}X^pUYYhsvF9Ck8pt7iw4Kz%1?mxxT`; z-Mlyfj-Y}EZFn`*THOy7@~5Ff_W{(v9hU~%_9&=&qo5q03j4t2kgApkUHByI#94d{ zU!nx#Tho^Z7lys?0_?UYaS4H!L9J=;lY_Mz0JSYg8ha*GWEMdkG)tilu2Y}}3c-uu zlTZ;j>6GAPbqs5v|NDP6inhmEs3bfKYNp#v`JGTRdl0IlXP`p-N7xm<1&@ONfa<5) ziXdnD!Kv7}#;!GNfNFov3gWMZ7f_%9Zh;Ejy-+iK5%z>1Lxs96druA?2^HFWs2rFH z^I(}N-v||%ZBP#FfW6@^!v|o0>=#z1f`LAvKm&JP70e_TPQ{)L*TQpQFZdnQF6kKx z9GL`_l=I+TxC&~(K9xbFhCn$o3f94Ka1OlQyg!ga(TqNW+Mn&Jf`NNN9W09tPl0lv z8fpnPK?iPz!{7%{+w_QVuq1<_LOd4A!9th=7aAs^wqa@qib8xl8~}d<6^VDCLZ(qv z-UrH_Xt>a@25JH+Cwf46_ zHGBkW25-Wl@H412?^_f6>Kz8iymqE>JBa|Z-!&YzyYz=ps_q$-J_WwO7Y)PwQ zZE*61;UG1H>`3bl$k}9dc7qUBK{;?fROGfn4Rk9U2!9Rz_rC|rS9m=5_;nVOQn1tuArf>K! z_!gWP;a~5-zGP%d4Z25zBpMDM!af0RfL&w3?RX2EkG&t3!T$BZ?}8{?jJ+4Gf}Pd` z$y*1>N9z}m;91?`!3nq?&cJ>a>fGq*5r54%#|t7b0k*>~fm-`As2SEl<$wp(@I1pS zVHfP1p(3;wDhZpQ>i-ccVjn@BGhf0S*gFv<^%R}I+BPRsFczK)m%wY_5%5#UMzGow z$2=H?li+rk4WEOm_b$|d^cDOL_Gkz~p1n43crMiY<*)lELq)U#7Qq#8E8Gb+(NzBWU~SHZb18TQ zk~h{c5*oEtP>z29)nBXA{3S_Q zN1&*~u}}j{f(lJBYzfPt2C9G>=wv9z!lv9c<@HbltbK@Ie{sjwfa;d4+9y$;pk0aN}@D2G~X3_9!p-}~5 z!}E|b$>qgRj60AURBE1=;Kj&r-k%QJz!^vbdNtJZEbGd>-?KV13m)QBBT~M9Xo-{LE_kY`XaM@jcX6(;}9F!Oj#RbGx~p- z_rkf@zks(iD_cmJo&(4f^fOZYITBeRgTlE`PhJ53?}_}q7U{#g2VoDS5jh3Xqfgl~ zebcrTjAgmmEeMV-0d1qNhUu|KG7oJ;#*4 zY|6VCmca9oy~aL*daF#`j+Biu);;bc*^wTBkhqI>~6@<)IiT7j0NyvH2aq<^#eG0JtHy2sQDL4W)(l^i5Y!D*&} zK4r(4ibaO?@H=EZbsCU=nevliIre0vAEM`<$OFC>{O~ubRmJ-j$kE8+%>Lhs@keUB zfRv#}VUua$VP~G@0SF>Bv%^!HaG>zL3&fC0M18#iheS35&F%@LgYg1!LSs$6uAbOhv>Np z$wvO9_{XT2dB&qZiBXB1ihiYecLMgY=&j(4%TcOPETW5_7%)8PBaX!J+nUC7r+9kLv8 zkvYgW$T8Hp7|A>x1HIJ$k2dFKN(bk7gY8f>Y)i3xD;7Uw{+2i;|2EStlGNzP*uX7?|S?Rt&b%W){IzewY}J_b9~JS8`!f$k%$vtpE1jwL;~+U z-$t<)IEmU=SayBA6Sro>olwHDLuSV5(SsLGnUQooH|ls+aVWmpUJwgARlHH+|mVe|4-%);ZBcDB;GUjpq#MnbpHh(4Uv_eU`h<38$|ZI=lOnI`WLp6@S_+E^gO^BFtuCGylal@K)uoo&8%@2kvumXSMwns;HEnSD~^wGoDv>}6|tG)EL z;a|_5=SE^R|HE3YuCacs%Ao~aU6a0OM5J5TiAU|(ahwS@NBWBqp~i~bwOQTRib0Mn ztXJs0^l$Sfq!d59IOGz;C80>t!M(U+SB5-?@UbfP*!M-x(iD-tOu;jdZT4*QLm zcha%z2wo+#b8BkJ075{ZQNm8W6Addx=*rKXOg~Y_33~-rY5Lo|$2!%y$vV3{SzjNE zC(;j%yt}w88Hy)pf7lNDfkN`LEa{RlekiR)2>+P>sX$wtaCljpY4=U zC%3UH*Rw{AmyGI>)!Ht1H#m(~7qo8CsY-cSUK@(zYWmvI<5K0xno!)c7Kb=27T1PY zC%@ZFx(}kz&+ueD%NFLy2!}o99O7@R+RwFWj*=wjU65l+b`G9=yE@dsk(O{!lO8jy zkH@NAwz7XD*Tv#afjy(v8P#kPM0C#ind`ei{%Hv9u&|S03A}>zGo!bs99E4DN&=d* zH$mR3#6LUPU$F?8VY5LM4RxVI(+L;Yr4fhKR!eq5oy&yCQ-8w;Jr!uO^sc-(*u6Fg z{j1C$AoU-N;4o@11ep+w@$WP6YWym<8(QEphjoRFI%-`K6K{uQ(>}(c$daw zRt0gWiY4n=mMXq43bMYKAXZ&HC_Qt+JHuJIS((gH{kR(Xi4$0hg8WJkoA|db9CS(& z6WPYjlP+%2Dc0;Gl-^O8*U?#57+eKn@$`d*CAqbUM7>vd^wE`kfH`OR{uWfl>a0w0 zRgf!WYh#<^re>wjojhmo^h4ijd$LYrH+uZx%^N?Q{AE^Z->v(0=6L&d?z`9K5Irv?7|h&9FkI16uGoY<9C*Jnf#WY|g1@!c8>o=KIGH81tOQ&PBCZ9h=1~ zotR$Qe@1YmGH#sjW|T(kXq^}JZn*K`>8)F&imI#Ks#@i>6Qx`q8Wu&jA1*rFOFaAz zcCp1x$Kk3(4;klp)9gE|7pAK2FrMtHOczPFAx@9+rrjh~GMeck{paGPrR9nBI-X2* zZbFvY+kDZvbXcXDVbgBzL&0^(gfREVUU<2Ub7qFK4!aZGGRw&tw7_K(FiR4jtAeLN z?ODM^$N?55KDS?GQk<*IU5)tpCCuW z&W2I`3y&mFJ1rDR<0plpc-TcJbN%6fU!vZq)j(fOySY&~bt!#?sqb;GWDOK?dh*<0 zfyJmJn{l^kr+umtl69U8PM4=S3mSSXH}hBz_O z08x3s!Zq#o><(4#D6+!Cv-H_>pGx5%dTod=)doA{r=dv=E=X(%EmcAptLXRv<8{;S zNYic&E1w!-a!HdTEf4pjDyCbxpJ=)!G0|YR`Bx~y=8kHc@ug(m_9N%JPSo>1Tr?q! zHO!A|NHo#-=Da~!t+^YmuDNug_kh&UaO_>eLi+5xi6OJWZ4bK8AVYn&L z&{huM9j?{rUQCm*&8|(J7M(fxT_~jv_CX>zxJArZWCG?TC)MMP%TO#4adD&7his1v zY?RQF42~Cb2}^LFVimXs+*SH|*CH-E9xGGj@P%;d(wCOK7u==}-v<6&s(BGNsUXhr z5XX<>S*39t3UZkRn%1~s(SWSpd~^t?(exGN8(U*@vueNiuB^uUDsE}fZ4r4z zdaWaoxLzgKrJbdP+^ecMH5SAY-l!^)#j_ST@haC24>z03|LP60=7;#&b0Cn>QCCT- zfZ|4o{N@nEi2CObS16OmEVaIx(JC!}l)Jc})(OWiSCZ;|RVotlJVz}GkbJ{Qo3o{ zcctb;Z2i*6@o#GS4v`P8{}E79D;A^{D;VTh=EBCDGZ(h<;cmoi>`18Tm->AejI0|H z8_WN=Wfq6uABT@uqO+vgh|&La(DXN@{ZilW-OMKJG{iYPOj64)Z4!PC@X0yoZo-wf zd?XWO08aS_(hn~r%Rm4Kd9}I9aSm$e)Zvi~Cied__!2h}s&gC5m%Y@w{VaZ1>C+HT z=dGMMfPbmb{4`c3Fvn0`)6Eon>FCNnxtvS>O^=MLiye#y%g7{kx+VQI-nVm53sbf^MB*fRgxdG`pub)H||+AC#!dibD!MQ^2?{p=572U lw4!C_@L@N^3TI-rv(7GTe*20g(`Pt~{tp+$XB{`|zX2=xnCbuk diff --git a/languages/cooked-fr_FR.po b/languages/cooked-fr_FR.po index b96e058..75dbdd5 100644 --- a/languages/cooked-fr_FR.po +++ b/languages/cooked-fr_FR.po @@ -1,7 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Cooked\n" -"POT-Creation-Date: 2020-01-06 09:14-0500\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cooked\n" +"POT-Creation-Date: 2026-01-09 20:03+0200\n" "PO-Revision-Date: 2020-01-06 09:16-0500\n" "Last-Translator: \n" "Language-Team: Gora Tech \n" @@ -20,1991 +21,2561 @@ msgstr "" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: *.js\n" -#: includes/class.cooked-admin-enqueues.php:134 -msgid "remaining" -msgstr "restant" - -#: includes/class.cooked-admin-enqueues.php:135 -#: includes/class.cooked-recipe-meta.php:563 -#: includes/class.cooked-recipe-meta.php:596 -#: includes/class.cooked-recipe-meta.php:623 -msgid "Add Image" -msgstr "Ajouter une image" - -#: includes/class.cooked-admin-enqueues.php:136 -#: includes/class.cooked-recipe-meta.php:563 -msgid "Change Image" -msgstr "Changer l’image" - -#: includes/class.cooked-admin-enqueues.php:137 -msgid "Use this Image" -msgstr "Utiliser cette image" +#: includes/class.cooked-csv-import.php:39 +msgid "Cooked_Recipes class not found. Plugin may not be properly loaded." +msgstr "" -#: includes/class.cooked-admin-enqueues.php:138 -#: includes/class.cooked-recipe-meta.php:803 -msgid "Add to Gallery" -msgstr "Ajouter à la galerie" +#: includes/class.cooked-csv-import.php:44 +msgid "Cooked_Measurements class not found. Plugin may not be properly loaded." +msgstr "" -#: includes/class.cooked-admin-enqueues.php:139 -msgid "Edit Gallery Item" -msgstr "Modifier un élément de la galerie" +#: includes/class.cooked-csv-import.php:49 +msgid "Cooked_Recipe_Meta class not found. Plugin may not be properly loaded." +msgstr "" -#: includes/class.cooked-admin-enqueues.php:140 -msgid "Update Gallery Item" -msgstr "Mettre à jour l'élément de galerie" +#: includes/class.cooked-csv-import.php:54 +msgid "CSV file not found." +msgstr "" -#: includes/class.cooked-admin-enqueues.php:141 -msgid "Saved" -msgstr "Sauvegarder" +#: includes/class.cooked-csv-import.php:61 +msgid "Could not open CSV file." +msgstr "" -#: includes/class.cooked-admin-enqueues.php:142 -msgid "Applied" -msgstr "Appliquer" +#: includes/class.cooked-csv-import.php:68 +msgid "CSV file is empty or invalid." +msgstr "" -#: includes/class.cooked-admin-enqueues.php:143 -msgid "" -"Are you sure you want to apply this new template to all of your recipes?" +#: includes/class.cooked-csv-import.php:79 +msgid "CSV file must contain a \"title\" column." msgstr "" -"Êtes-vous sûr de vouloir appliquer ce nouveau modèle à toutes vos recettes ?" -#: includes/class.cooked-admin-enqueues.php:144 -msgid "" -"Are you sure you want to reset this recipe template to the Cooked plugin " -"default?" +#: includes/class.cooked-csv-import.php:106 +msgid "Unknown error" msgstr "" -"Êtes-vous sûr de vouloir réinitialiser ce modèle de recette par celui du " -"plugin Cooked par défaut ?" -#: includes/class.cooked-admin-enqueues.php:145 +#: includes/class.cooked-csv-import.php:107 +#: includes/class.cooked-csv-import.php:114 #, php-format -msgid "Please confirm that you are ready to migrate all %s recipes." -msgstr "Veuillez confirmer que vous êtes prêt à migrer toutes les recettes %s." +msgid "Row %d: %s" +msgstr "" -#: includes/class.cooked-admin-menus.php:34 -#: includes/class.cooked-admin-menus.php:53 -#: includes/class.cooked-post-types.php:272 -#: includes/class.cooked-post-types.php:274 -#: includes/class.cooked-post-types.php:286 -msgid "Recipes" -msgstr "Recettes" +#: includes/class.cooked-csv-import.php:140 +#, fuzzy +msgid "Title is required" +msgstr "La recette doit être validée" -#: includes/class.cooked-admin-menus.php:35 -#: includes/class.cooked-admin-menus.php:55 -#: includes/class.cooked-post-types.php:276 -msgid "Add New" -msgstr "Ajouter une recette" +#: includes/class.cooked-csv-import.php:323 +#: includes/class.cooked-recipe-meta.php:157 +#: includes/class.cooked-recipe-meta.php:244 +#: includes/class.cooked-recipe-meta.php:1144 +#: includes/class.cooked-functions.php:134 includes/class.cooked-ajax.php:180 +#: includes/class.cooked-recipes.php:636 +msgid "Ingredients" +msgstr "Ingrédients" -#: includes/class.cooked-admin-menus.php:41 -#: includes/class.cooked-admin-menus.php:56 -#: includes/class.cooked-recipe-meta.php:84 -#: includes/class.cooked-shortcodes.php:109 templates/admin/welcome.php:9 -msgid "Settings" -msgstr "Paramètres" +#: includes/class.cooked-csv-import.php:323 +#: includes/class.cooked-recipe-meta.php:157 +#: includes/class.cooked-recipe-meta.php:250 +#: includes/class.cooked-recipe-meta.php:1175 +#: includes/class.cooked-functions.php:135 includes/class.cooked-ajax.php:180 +#: includes/class.cooked-recipes.php:640 +msgid "Directions" +msgstr "Instructions" -#: includes/class.cooked-admin-menus.php:42 -msgid "What's New?" -msgstr "Quoi de neuf ?" +#: includes/class.cooked-yoastseo.php:33 +#: includes/class.cooked-rankmathseo.php:37 +msgid "Current recipe category being viewed." +msgstr "" -#: includes/class.cooked-admin-menus.php:44 templates/admin/welcome.php:20 -msgid "Upgrade to Pro" -msgstr "Passer à Pro" +#: includes/class.cooked-recipe-meta.php:98 +#: includes/class.cooked-admin-menus.php:45 +#: includes/class.cooked-admin-menus.php:65 +#: includes/class.cooked-shortcodes.php:149 +msgid "Settings" +msgstr "Paramètres" -#: includes/class.cooked-admin-menus.php:54 -#: includes/class.cooked-post-types.php:281 -msgid "All Recipes" -msgstr "Toutes les recettes" +#: includes/class.cooked-recipe-meta.php:202 +msgid "Display Recipe" +msgstr "Afficher la recette" -#: includes/class.cooked-admin-menus.php:63 -#: includes/class.cooked-admin-menus.php:71 -#: includes/class.cooked-admin-menus.php:79 -msgid "You do not have sufficient permissions to access this page." +#: includes/class.cooked-recipe-meta.php:203 +msgid "" +"This shortcode displays the recipe in its entirety, using the \"Recipe " +"Template\" field in the first tab." msgstr "" -"Vous n'avez pas les autorisations suffisantes pour accéder à cette page." - -#: includes/class.cooked-ajax.php:97 includes/class.cooked-functions.php:121 -#: includes/class.cooked-recipe-meta.php:132 -#: includes/class.cooked-recipe-meta.php:225 -#: includes/class.cooked-recipe-meta.php:876 -#: includes/class.cooked-recipes.php:622 templates/front/recipe.php:34 -msgid "Ingredients" -msgstr "Ingrédients" +"Ce shortcode affiche la recette dans son intégralité, en utilisant le champ " +"\"Modèle de recette\" dans le premier onglet." -#: includes/class.cooked-ajax.php:97 includes/class.cooked-functions.php:122 -#: includes/class.cooked-recipe-meta.php:132 -#: includes/class.cooked-recipe-meta.php:231 -#: includes/class.cooked-recipe-meta.php:907 -#: includes/class.cooked-recipes.php:622 templates/front/recipe.php:35 -msgid "Directions" -msgstr "Instructions" +#: includes/class.cooked-recipe-meta.php:238 +msgid "Layout" +msgstr "Disposition" -#: includes/class.cooked-enqueues.php:36 -#: includes/class.cooked-recipe-meta.php:1079 -msgid "Timer" -msgstr "Minuteur" +#: includes/class.cooked-recipe-meta.php:256 +#: includes/class.cooked-functions.php:137 +msgid "Nutrition" +msgstr "Valeurs nutritionnelles" -#: includes/class.cooked-functions.php:79 -#: includes/class.cooked-functions.php:82 -msgid "New" -msgstr "Nouveau" +#: includes/class.cooked-recipe-meta.php:262 +#: includes/class.cooked-recipe-meta.php:1256 +msgid "Gallery" +msgstr "Galerie" -#: includes/class.cooked-functions.php:80 -#: includes/class.cooked-functions.php:83 -msgid "Tweak" -msgstr "Finaliser" +#: includes/class.cooked-recipe-meta.php:268 +msgid "Shortcodes" +msgstr "Shortcodes" -#: includes/class.cooked-functions.php:81 -#: includes/class.cooked-functions.php:84 -msgid "Fixed" -msgstr "Fixer" +#: includes/class.cooked-recipe-meta.php:325 +msgid "Recipe Review Required" +msgstr "La recette doit être validée" -#: includes/class.cooked-functions.php:90 +#: includes/class.cooked-recipe-meta.php:328 #, php-format -msgid "What's new in %s?" -msgstr "Quoi de neuf dans %s ?" +msgid "" +"It looks like this recipe is from a different version of %s. Please review " +"and click \"Update\" to save it." +msgstr "" +"Il semble que cette recette provienne d'une version différente de %s. Merci " +"de la modifier et cliquez sur \"Mettre à jour\" pour l'enregistrer." -#: includes/class.cooked-functions.php:114 -msgid "Print" -msgstr "Imprimer" +#: includes/class.cooked-recipe-meta.php:336 +msgid "Recipe Shortcode" +msgstr "Shortcode de la recette" -#: includes/class.cooked-functions.php:115 -msgid "Print Options:" -msgstr "Options d'impression :" +#: includes/class.cooked-recipe-meta.php:337 +msgid "You can use the following shortcode to display your recipe anywhere:" +msgstr "" +"Vous pouvez utiliser le shortcode suivant pour afficher votre recette " +"n’importe où :" -#: includes/class.cooked-functions.php:117 -msgid "Title" -msgstr "Titre" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Recipe Template" +msgstr "Modèle de recette" -#: includes/class.cooked-functions.php:118 -msgid "Information" -msgstr "Informations" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Default Recipe Template" +msgstr "Modèle de recette par défaut" -#: includes/class.cooked-functions.php:119 -#: includes/class.cooked-recipe-meta.php:1055 -#: includes/class.cooked-settings.php:141 -msgid "Excerpt" -msgstr "Extrait" +#: includes/class.cooked-recipe-meta.php:351 +msgid "" +"Choose from the options below to use this layout as the default for new " +"recipes or for all recipes." +msgstr "" +"Choisissez parmi les options ci-dessous pour utiliser ce modèle comme mise " +"en page par défaut pour les nouvelles recettes uniquement ou pour toutes les " +"recettes." -#: includes/class.cooked-functions.php:120 -msgid "Images" -msgstr "Images" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Save as Default" +msgstr "Enregistrer comme valeur par défaut" -#: includes/class.cooked-functions.php:123 -#: includes/class.cooked-recipe-meta.php:237 -msgid "Nutrition" -msgstr "Valeurs nutritionnelles" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Apply to All" +msgstr "Appliquer à tous" -#: includes/class.cooked-measurements.php:27 -msgctxt "Grams Abbreviation (Singular)" -msgid "g" -msgstr "g" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Reset" +msgstr "Réinitialiser" -#: includes/class.cooked-measurements.php:28 -msgctxt "Grams Abbreviation (Plural)" -msgid "g" -msgstr "g" +#: includes/class.cooked-recipe-meta.php:351 +msgid "" +"Using the built-in recipe shortcodes found on the \"Shortcodes\" tab, you " +"can create the layout of your recipe below. Use the \"Save as Default\" " +"button to save your template." +msgstr "" +"En utilisant les codes abrégés de recette intégrés dans l’onglet " +"\"Shortcodes\", vous pouvez créer ci-dessous une mise en page pour votre " +"recette. Utilisez ensuite le bouton \"Enregistrer comme valeur par défaut\" " +"pour enregistrer ce nouveau modèle." -#: includes/class.cooked-measurements.php:29 -msgid "gram" -msgstr "gramme" +#: includes/class.cooked-recipe-meta.php:369 +msgid "Recipe Excerpt" +msgstr "Extrait de la recette" -#: includes/class.cooked-measurements.php:30 -msgid "grams" -msgstr "grammes" +#: includes/class.cooked-recipe-meta.php:369 +msgid "" +"The excerpt is used on recipe listing templates, where the full recipe " +"should not be displayed." +msgstr "" +"L’extrait est utilisé sur les modèles de liste de recettes, où la recette " +"complète ne doit pas être affichée." -#: includes/class.cooked-measurements.php:34 -msgctxt "Kilograms Abbreviation (Singular)" -msgid "kg" -msgstr "kg" +#: includes/class.cooked-recipe-meta.php:392 +msgid "SEO Description" +msgstr "Description de la minuterie" -#: includes/class.cooked-measurements.php:35 -msgctxt "Kilograms Abbreviation (Plural)" -msgid "kg" -msgstr "kg" +#: includes/class.cooked-recipe-meta.php:392 +msgid "" +"This description is used for SEO purposes and is optional. By default, " +"Cooked will use the Recipe Excerpt above if available or the Recipe Title if " +"not." +msgstr "" +"Cette description est utilisée à des fins de SEO et est facultative. Par " +"défaut, Cooked utilisera l'extrait de recette ci-dessus si disponible ou le " +"titre de recette si ce n'est pas le cas." -#: includes/class.cooked-measurements.php:36 -msgid "kilogram" -msgstr "kilogramme" +#: includes/class.cooked-recipe-meta.php:403 +#: includes/class.cooked-settings.php:217 +msgid "Difficulty Level" +msgstr "Niveau de difficulté" -#: includes/class.cooked-measurements.php:37 -msgid "kilograms" -msgstr "kilogrammes" +#: includes/class.cooked-recipe-meta.php:412 +#: includes/class.cooked-recipe-meta.php:1118 +#: includes/class.cooked-settings.php:220 +#: includes/class.cooked-shortcodes.php:448 +#: includes/class.cooked-shortcodes.php:670 +msgid "Prep Time" +msgstr "Préparation" -#: includes/class.cooked-measurements.php:41 -#: includes/class.cooked-measurements.php:42 -msgid "mg" -msgstr "mg" +#: includes/class.cooked-recipe-meta.php:414 +#: includes/class.cooked-recipe-meta.php:419 +#: includes/class.cooked-recipe-meta.php:424 +msgid "minutes" +msgstr "minutes" -#: includes/class.cooked-measurements.php:43 -msgid "milligram" -msgstr "milligramme" +#: includes/class.cooked-recipe-meta.php:417 +#: includes/class.cooked-recipe-meta.php:1119 +#: includes/class.cooked-settings.php:221 +#: includes/class.cooked-shortcodes.php:449 +#: includes/class.cooked-shortcodes.php:679 +msgid "Cook Time" +msgstr "Cuisson" -#: includes/class.cooked-measurements.php:44 -msgid "milligrams" -msgstr "milligrammes" +#: includes/class.cooked-recipe-meta.php:422 +#: includes/class.cooked-recipe-meta.php:1120 +#: includes/class.cooked-settings.php:222 +#: includes/class.cooked-shortcodes.php:450 +#: includes/class.cooked-shortcodes.php:690 +#: includes/class.cooked-shortcodes.php:697 +msgid "Total Time" +msgstr "Temps total" -#: includes/class.cooked-measurements.php:48 -#: includes/class.cooked-measurements.php:49 -msgid "oz" -msgstr "oz" +#: includes/class.cooked-recipe-meta.php:430 +#, fuzzy +msgid "Recipe Notes" +msgstr "Recettes" -#: includes/class.cooked-measurements.php:50 -msgid "ounce" -msgstr "once" +#: includes/class.cooked-recipe-meta.php:430 +msgid "The notes are displayed in the recipe." +msgstr "" -#: includes/class.cooked-measurements.php:51 -msgid "ounces" -msgstr "onces" +#: includes/class.cooked-recipe-meta.php:455 +msgid "Amount" +msgstr "Quantité" -#: includes/class.cooked-measurements.php:55 -#: includes/class.cooked-measurements.php:56 -msgid "fl oz" -msgstr "fl oz" +#: includes/class.cooked-recipe-meta.php:456 +msgid "Measurement" +msgstr "Unité de mesure" -#: includes/class.cooked-measurements.php:57 -msgid "fluid ounce" -msgstr "fluid ounce" +#: includes/class.cooked-recipe-meta.php:457 +msgid "Item" +msgstr "Élément" -#: includes/class.cooked-measurements.php:58 -msgid "fluid ounces" -msgstr "fluid ounces" +#: includes/class.cooked-recipe-meta.php:495 +#: includes/class.cooked-recipe-meta.php:587 +#: includes/class.cooked-recipe-meta.php:653 +msgid "ex. Eggs, Milk, etc." +msgstr "ex : oeufs, lait, etc." -#: includes/class.cooked-measurements.php:62 -#: includes/class.cooked-measurements.php:64 -msgid "cup" -msgstr "tasse" +#: includes/class.cooked-recipe-meta.php:504 +#: includes/class.cooked-recipe-meta.php:596 +#: includes/class.cooked-recipe-meta.php:662 +#, fuzzy +msgid "Substitution:" +msgstr "Valeurs nutritionnelles" -#: includes/class.cooked-measurements.php:63 -#: includes/class.cooked-measurements.php:65 -msgid "cups" -msgstr "tasses" +#: includes/class.cooked-recipe-meta.php:517 +#: includes/class.cooked-recipe-meta.php:609 +#: includes/class.cooked-recipe-meta.php:675 +msgid "ex. Apple Sauce, Tofu, etc." +msgstr "" -#: includes/class.cooked-measurements.php:69 -#: includes/class.cooked-measurements.php:70 -msgid "tsp" -msgstr "c-à-c" +#: includes/class.cooked-recipe-meta.php:528 +#: includes/class.cooked-recipe-meta.php:683 +#: includes/class.cooked-recipe-meta.php:755 +#: includes/class.cooked-recipe-meta.php:847 +msgid "Section Heading" +msgstr "Titre de la section" -#: includes/class.cooked-measurements.php:71 -msgid "teaspoon" -msgstr "cuillère à café (5ml)" +#: includes/class.cooked-recipe-meta.php:532 +#: includes/class.cooked-recipe-meta.php:687 +#: includes/class.cooked-recipe-meta.php:759 +#: includes/class.cooked-recipe-meta.php:851 +msgid "Heading Element:" +msgstr "" -#: includes/class.cooked-measurements.php:72 -msgid "teaspoons" -msgstr "cuillères à café" +#: includes/class.cooked-recipe-meta.php:623 +msgid "Add Ingredient" +msgstr "Ajouter un ingrédient" -#: includes/class.cooked-measurements.php:76 -#: includes/class.cooked-measurements.php:77 -msgid "tbsp" -msgstr "c-à-s" +#: includes/class.cooked-recipe-meta.php:624 +#: includes/class.cooked-recipe-meta.php:826 +msgid "Add Section Heading" +msgstr "Ajouter une entête" -#: includes/class.cooked-measurements.php:78 -msgid "tablespoon" -msgstr "cuillère à soupe (15ml)" +#: includes/class.cooked-recipe-meta.php:739 +#: includes/class.cooked-admin-enqueues.php:139 +msgid "Change Image" +msgstr "Changer l’image" -#: includes/class.cooked-measurements.php:79 -msgid "tablespoons" -msgstr "cuillères à soupe" +#: includes/class.cooked-recipe-meta.php:739 +#: includes/class.cooked-recipe-meta.php:794 +#: includes/class.cooked-recipe-meta.php:834 +#: includes/class.cooked-admin-enqueues.php:138 +msgid "Add Image" +msgstr "Ajouter une image" -#: includes/class.cooked-measurements.php:83 -#: includes/class.cooked-measurements.php:84 -msgid "ml" -msgstr "ml" +#: includes/class.cooked-recipe-meta.php:825 +msgid "Add Direction" +msgstr "Ajouter une étape de la recette" -#: includes/class.cooked-measurements.php:85 -msgid "milliliter" -msgstr "millilitre" +#: includes/class.cooked-recipe-meta.php:882 +msgid "Nutrition Information" +msgstr "Informations nutritionnelles" -#: includes/class.cooked-measurements.php:86 -msgid "milliliters" -msgstr "millilitres" +#: includes/class.cooked-recipe-meta.php:920 +#: includes/class.cooked-shortcodes.php:1061 +msgid "Nutrition Facts" +msgstr "Valeurs nutritionnelles" -#: includes/class.cooked-measurements.php:90 -#: includes/class.cooked-measurements.php:91 -msgid "l" -msgstr "l" +#: includes/class.cooked-recipe-meta.php:938 +#: includes/class.cooked-shortcodes.php:1029 +#, fuzzy +msgid "Amount per serving" +msgstr "Quantité par dose" -#: includes/class.cooked-measurements.php:92 -msgid "liter" -msgstr "litre" +#: includes/class.cooked-recipe-meta.php:948 +#: includes/class.cooked-shortcodes.php:1039 +msgid "% Daily Value *" +msgstr "% Valeur quotidienne *" -#: includes/class.cooked-measurements.php:93 -msgid "liters" -msgstr "litres" +#: includes/class.cooked-recipe-meta.php:967 +#: includes/class.cooked-shortcodes.php:971 +msgid "Includes" +msgstr "" -#: includes/class.cooked-measurements.php:97 -#: includes/class.cooked-measurements.php:99 -msgid "stick" -msgstr "bâton" +#: includes/class.cooked-recipe-meta.php:999 +#: includes/class.cooked-shortcodes.php:1065 +msgid "" +"The % Daily Value (DV) tells you how much a nutrient in a serving of food " +"contributes to a daily diet. 2,000 calories a day is used for general " +"nutrition advice." +msgstr "" -#: includes/class.cooked-measurements.php:98 -#: includes/class.cooked-measurements.php:100 -msgid "sticks" -msgstr "bâtons" +#: includes/class.cooked-recipe-meta.php:1015 +msgid "Recipe Gallery Type" +msgstr "Modifier la galerie de recette" -#: includes/class.cooked-measurements.php:104 -msgid "lb" -msgstr "lb" +#: includes/class.cooked-recipe-meta.php:1028 +msgid "Choose one..." +msgstr "Choisissez une..." -#: includes/class.cooked-measurements.php:105 -msgid "lbs" -msgstr "lbs" +#: includes/class.cooked-recipe-meta.php:1042 +#, fuzzy, php-format +msgid "%1$s or %2$s Video" +msgstr "%s ou %s Vidéo" -#: includes/class.cooked-measurements.php:106 -msgid "pound" -msgstr "livre" +#: includes/class.cooked-recipe-meta.php:1046 +#, fuzzy, php-format +msgid "" +"If you would like to display a video as the first item in your gallery, you " +"can paste a valid %1$s or %2$s URL below." +msgstr "" +"Si vous souhaitez afficher une vidéo en tant que premier élément de votre " +"galerie, vous pouvez coller une URL %s ou %s valide ci-dessous." -#: includes/class.cooked-measurements.php:107 -msgid "pounds" -msgstr "livres" +#: includes/class.cooked-recipe-meta.php:1051 +msgid "Gallery Items" +msgstr "Éléments de la galerie" -#: includes/class.cooked-measurements.php:111 -#: includes/class.cooked-measurements.php:113 -msgid "dash" -msgstr "pincée" +#: includes/class.cooked-recipe-meta.php:1066 +#: includes/class.cooked-admin-enqueues.php:141 +msgid "Add to Gallery" +msgstr "Ajouter à la galerie" -#: includes/class.cooked-measurements.php:112 -#: includes/class.cooked-measurements.php:114 -msgid "dashes" -msgstr "pincées" +#: includes/class.cooked-recipe-meta.php:1082 +msgid "Recipe Information" +msgstr "Informations sur la recette" -#: includes/class.cooked-measurements.php:118 -#: includes/class.cooked-measurements.php:120 -msgid "drop" -msgstr "goutte" +#: includes/class.cooked-recipe-meta.php:1083 +msgid "This will display the recipe author, cooking times, etc." +msgstr "Cela affichera l’auteur de la recette, les temps de cuisson, etc." + +#: includes/class.cooked-recipe-meta.php:1092 +#: includes/class.cooked-recipe-meta.php:1102 +#, fuzzy, php-format +msgid "\"%1$s\" and \"%2$s\"" +msgstr "« %s » et « %s »" + +#: includes/class.cooked-recipe-meta.php:1094 +msgid "" +"This will allow you to include or exclude content from the shortcode output." +msgstr "" +"Cela vous permettra d'inclure ou d'exclure du contenu généré par le " +"shortcode." + +#: includes/class.cooked-recipe-meta.php:1103 +msgid "" +"Used like \"include\", but will position the content to the left or right." +msgstr "" +"Utilisé de la même façon qu'« inclure », mais positionnera le contenu à " +"gauche ou à droite." + +#: includes/class.cooked-recipe-meta.php:1113 +#: includes/class.cooked-recipe-meta.php:1159 +#: includes/class.cooked-recipe-meta.php:1190 +#: includes/class.cooked-recipe-meta.php:1215 +#: includes/class.cooked-recipe-meta.php:1239 +#: includes/class.cooked-recipe-meta.php:1299 +#: includes/class.cooked-recipe-meta.php:1344 +#: includes/class.cooked-recipe-meta.php:1374 +#: includes/class.cooked-recipe-meta.php:1419 +msgid "Available Variables" +msgstr "Variables disponibles" + +#: includes/class.cooked-recipe-meta.php:1117 +#: includes/class.cooked-settings.php:215 +#: includes/class.cooked-shortcodes.php:445 +#: includes/class.cooked-shortcodes.php:623 +msgid "Author" +msgstr "Auteur" + +#: includes/class.cooked-recipe-meta.php:1121 +#: includes/class.cooked-shortcodes.php:446 +#: includes/class.cooked-shortcodes.php:634 +msgid "Difficulty" +msgstr "Difficulté" + +#: includes/class.cooked-recipe-meta.php:1122 +msgid "Servings Switcher" +msgstr "Sélecteur de parts" + +#: includes/class.cooked-recipe-meta.php:1123 +#: includes/class.cooked-taxonomies.php:39 +#: includes/class.cooked-settings.php:216 +#: includes/class.cooked-shortcodes.php:717 +#: includes/class.cooked-shortcodes.php:720 +msgid "Category" +msgstr "Catégorie" + +#: includes/class.cooked-recipe-meta.php:1124 +msgid "Print Mode" +msgstr "Imprimer" + +#: includes/class.cooked-recipe-meta.php:1125 +msgid "Full-Screen Mode" +msgstr "Mode plein écran" + +#: includes/class.cooked-recipe-meta.php:1145 +msgid "" +"This will display the list of ingredients, added via the \"Ingredients\" tab." +msgstr "" +"Cela affichera la liste des ingrédients, ajoutés via l’onglet " +"« Ingrédients »." + +#: includes/class.cooked-recipe-meta.php:1151 +msgid "This will allow you to hide or show the checkboxes:" +msgstr "Cela vous permettra de masquer ou d’afficher les cases à cocher :" + +#: includes/class.cooked-recipe-meta.php:1161 +msgid "Show checkboxes" +msgstr "Afficher les cases à cocher" + +#: includes/class.cooked-recipe-meta.php:1162 +msgid "Hide checkboxes" +msgstr "Masquer les cases à cocher" + +#: includes/class.cooked-recipe-meta.php:1176 +msgid "" +"This will display the list of directions, added via the \"Directions\" tab." +msgstr "" +"Cela affichera la liste des étapes de la recette, ajoutée via l’onglet " +"« Etapes de la recette »." + +#: includes/class.cooked-recipe-meta.php:1182 +msgid "This will allow you to hide or show the numbers:" +msgstr "" +"Cela vous permettra de masquer ou d’afficher la numérotaion des étapes :" + +#: includes/class.cooked-recipe-meta.php:1192 +msgid "Show numbers" +msgstr "Afficher la numérotation" + +#: includes/class.cooked-recipe-meta.php:1193 +msgid "Hide numbers" +msgstr "Masquer la numérotation" + +#: includes/class.cooked-recipe-meta.php:1206 +msgid "Featured Image" +msgstr "Image mise en avant" + +#: includes/class.cooked-recipe-meta.php:1207 +msgid "This will display the featured image, if one is set." +msgstr "Cela affichera l’image sélectionnée, si elle est définie." + +#: includes/class.cooked-recipe-meta.php:1217 +#: includes/class.cooked-recipe-meta.php:1241 +#: includes/class.cooked-recipe-meta.php:1346 +msgid "None" +msgstr "Aucun" + +#: includes/class.cooked-recipe-meta.php:1230 +msgid "Nutrition Label" +msgstr "Étiquette nutritionnelle" + +#: includes/class.cooked-recipe-meta.php:1231 +msgid "This will display the Nutrition Facts label, if data is present." +msgstr "" +"Cela affichera l'étiquette de la valeur nutritive, si des données sont " +"présentes." + +#: includes/class.cooked-recipe-meta.php:1257 +msgid "" +"This will display the gallery, if one is set or created from the \"Gallery\" " +"tab." +msgstr "" +"Cela affichera la galerie, si elle est définie ou créée à partir de l’onglet " +"« Galerie »." + +#: includes/class.cooked-recipe-meta.php:1265 +msgid "Set the width of the gallery." +msgstr "Définissez la largeur de la galerie." + +#: includes/class.cooked-recipe-meta.php:1272 +msgid "Set the image size ratio." +msgstr "Définissez le rapport de taille d’image." + +#: includes/class.cooked-recipe-meta.php:1282 +msgid "Set the navigation style." +msgstr "Défissez le style de navigation." + +#: includes/class.cooked-recipe-meta.php:1289 +msgid "Enable or disable \"Full-Screen\" mode." +msgstr "Activer ou désactiver le mode « Plein écran »." + +#: includes/class.cooked-recipe-meta.php:1304 +#, fuzzy, php-format +msgid "ex: \"%1$s\" or \"%2$s\"" +msgstr "ex : « %s » ou « %s »" + +#: includes/class.cooked-recipe-meta.php:1309 +#, php-format +msgid "ex: \"%s\"" +msgstr "ex : « %s »" + +#: includes/class.cooked-recipe-meta.php:1314 +#, fuzzy, php-format +msgid "\"%1$s\", \"%2$s\", or \"%3$s\"" +msgstr "« %s », « %s », ou « %s »" + +#: includes/class.cooked-recipe-meta.php:1319 +#, fuzzy, php-format +msgid "\"%1$s\" or \"%2$s\"" +msgstr "« %s » ou « %s »" + +#: includes/class.cooked-recipe-meta.php:1335 +#: includes/class.cooked-functions.php:132 +#: includes/class.cooked-settings.php:218 +msgid "Excerpt" +msgstr "Extrait" + +#: includes/class.cooked-recipe-meta.php:1336 +msgid "" +"This will display the excerpt, if one is available from the \"Layout & " +"Content\" tab." +msgstr "" +"Cela affichera l’extrait, s’il en existe un dans l’onglet « Mise en page et " +"contenu »." + +#: includes/class.cooked-recipe-meta.php:1359 +#: includes/class.cooked-functions.php:136 +#: includes/class.cooked-settings.php:219 +#: includes/class.cooked-shortcodes.php:774 +#: includes/class.cooked-recipes.php:643 +#, fuzzy +msgid "Notes" +msgstr "Remarque :" + +#: includes/class.cooked-recipe-meta.php:1360 +#, fuzzy +msgid "" +"This will display the notes, if one is available from the \"Layout & " +"Content\" tab." +msgstr "" +"Cela affichera l’extrait, s’il en existe un dans l’onglet « Mise en page et " +"contenu »." + +#: includes/class.cooked-recipe-meta.php:1366 +#, fuzzy +msgid "This will allow you to hide or show the header for the notes section:" +msgstr "Cela vous permettra de masquer ou d’afficher les cases à cocher :" + +#: includes/class.cooked-recipe-meta.php:1376 +#, fuzzy +msgid "Show header" +msgstr "Afficher les cases à cocher" + +#: includes/class.cooked-recipe-meta.php:1377 +#, fuzzy +msgid "Hide header" +msgstr "Masquer l'image" + +#: includes/class.cooked-recipe-meta.php:1390 +#: includes/class.cooked-enqueues.php:52 +msgid "Timer" +msgstr "Minuteur" + +#: includes/class.cooked-recipe-meta.php:1391 +msgid "This will display a special link to start a cooking timer." +msgstr "Cela affichera un lien spécial pour démarrer une minuterie de cuisson." + +#: includes/class.cooked-recipe-meta.php:1400 +#, fuzzy, php-format +msgid "\"%1$s\", \"%2$s\" and \"%3$s\"" +msgstr "« %s », « %s » et « %s »" + +#: includes/class.cooked-recipe-meta.php:1402 +msgid "Use just one or a combination of all three to set the timer length" +msgstr "" +"Utilisez un seul ou une combinaison des trois pour régler la longueur de la " +"minuterie" + +#: includes/class.cooked-recipe-meta.php:1409 +msgid "Add a short description for this timer, if applicable." +msgstr "Ajoutez une courte description pour cette minuterie, le cas échéant." + +#: includes/class.cooked-recipe-meta.php:1421 +msgid "Time in seconds" +msgstr "Temps en secondes" + +#: includes/class.cooked-recipe-meta.php:1422 +msgid "Time in minutes" +msgstr "Temps en minutes" + +#: includes/class.cooked-recipe-meta.php:1423 +msgid "Time in hours" +msgstr "Temps en heures" + +#: includes/class.cooked-recipe-meta.php:1424 +msgid "Timer Description" +msgstr "Description de la minuterie" + +#: includes/class.cooked-import.php:46 includes/class.cooked-import.php:100 +#, fuzzy, php-format +msgid "There is %1$s recipe that should be imported from %2$s." +msgstr "" +"Il y a %s recette qui devrait être migrée depuis %s pour tirer parti des " +"nouvelles fonctionnalités et de la fiabilité." + +#: includes/class.cooked-import.php:48 includes/class.cooked-import.php:102 +msgid "" +"Before you begin, please make sure you backup your database in case " +"something goes wrong." +msgstr "" + +#: includes/class.cooked-import.php:50 includes/class.cooked-import.php:104 +#, fuzzy +msgid "" +"Click the button below to import these recipes. Here is what will happen to " +"your recipes:" +msgstr "" +"Veuillez cliquer sur le bouton ci-dessous pour migrer ces recettes. Voici ce " +"qui va arriver à vos recettes :" + +#: includes/class.cooked-import.php:52 includes/class.cooked-import.php:106 +msgid "Recipes will be imported with the 'Draft' status." +msgstr "" + +#: includes/class.cooked-import.php:53 includes/class.cooked-import.php:107 +msgid "" +"Comments and ratings data will also be imported (ratings are available in " +"Cooked Pro)." +msgstr "" + +#: includes/class.cooked-import.php:54 includes/class.cooked-import.php:109 +msgid "" +"After the import is complete, you can bulk edit the recipes and change their " +"status to 'Published'." +msgstr "" + +#: includes/class.cooked-import.php:55 +msgid "" +"The existing WP Delicious recipes and data will not be modified or deleted." +msgstr "" + +#: includes/class.cooked-import.php:56 includes/class.cooked-import.php:111 +msgid "" +"Certain data that is not suppoted by Cooked will not be imported (such as " +"Cooking Temp, Estimated Cost, Recipe Keywords, etc)." +msgstr "" + +#: includes/class.cooked-import.php:57 includes/class.cooked-import.php:112 +msgid "" +"You can run the import multiple times, but keep in mind that duplicate " +"recipes will be created." +msgstr "" + +#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 +#: includes/class.cooked-migration.php:58 +msgid "Wow, you have a lot of recipes!" +msgstr "Wow, vous avez beaucoup de recettes !" + +#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 +#: includes/class.cooked-migration.php:58 +msgid "" +"It is definitely recommended that you get yourself a cup of coffee or tea " +"after clicking this button." +msgstr "" +"Il est fortement recommandé de prendre une tasse de café ou de thé après " +"avoir cliqué sur ce bouton." + +#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:165 includes/class.cooked-migration.php:60 +msgid "Note:" +msgstr "Remarque :" + +#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 +#: includes/class.cooked-migration.php:60 +msgid "The more recipes you have, the longer this will take." +msgstr "Plus vous avez de recettes, plus cela prendra de temps." + +#: includes/class.cooked-import.php:68 includes/class.cooked-import.php:83 +msgid "WP Delicious - Import" +msgstr "" + +#: includes/class.cooked-import.php:108 +msgid "" +"The difficulty level will be set to Beginner since it is not " +"supported by WP Recipe Maker." +msgstr "" + +#: includes/class.cooked-import.php:110 +msgid "The existing WP Recipe Maker and data will not be modified or deleted." +msgstr "" + +#: includes/class.cooked-import.php:123 includes/class.cooked-import.php:138 +msgid "WP Recipe Maker - Import" +msgstr "" + +#: includes/class.cooked-import.php:152 +msgid "" +"Import recipes from a CSV file. Your CSV file should include the following " +"columns:" +msgstr "" + +#: includes/class.cooked-import.php:154 +#, fuzzy +msgid "Recipe title (required)" +msgstr "La recette doit être validée" + +#: includes/class.cooked-import.php:155 +#, fuzzy +msgid "Recipe excerpt/description" +msgstr "Extrait de la recette" + +#: includes/class.cooked-import.php:156 +#, fuzzy +msgid "Prep time in minutes" +msgstr "Temps en minutes" + +#: includes/class.cooked-import.php:157 +#, fuzzy +msgid "Cook time in minutes" +msgstr "Temps en minutes" + +#: includes/class.cooked-import.php:158 +msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" +msgstr "" + +#: includes/class.cooked-import.php:159 +msgid "" +"Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or " +"\"name\" for simple ingredients. Add substitutions with double pipe (||): " +"\"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" +msgstr "" + +#: includes/class.cooked-import.php:160 +msgid "Directions/instructions separated by pipe (|)" +msgstr "" + +#: includes/class.cooked-import.php:161 +#, fuzzy +msgid "Recipe notes" +msgstr "Taxonomies des recettes" + +#: includes/class.cooked-import.php:162 +msgid "Categories separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:163 +msgid "Tags separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:165 +msgid "" +"Recipes will be imported with the 'Draft' status. After the import is " +"complete, you can bulk edit the recipes and change their status to " +"'Published'." +msgstr "" + +#: includes/class.cooked-import.php:168 +msgid "CSV Import" +msgstr "" + +#: includes/class.cooked-import.php:172 +msgid "Import Recipes via CSV" +msgstr "" + +#: includes/class.cooked-import.php:180 +msgid "More Imports are Coming Soon..." +msgstr "" + +#: includes/class.cooked-import.php:201 +#, fuzzy +msgid "Begin Import" +msgstr "Facile" + +#: includes/class.cooked-import.php:206 includes/class.cooked-import.php:226 +#: includes/class.cooked-settings.php:592 +msgid "reload" +msgstr "recharger" + +#: includes/class.cooked-import.php:221 +msgid "Upload and Import CSV" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "Import Complete!" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "You can now" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "the import screen or" +msgstr "" + +#: includes/class.cooked-import.php:226 +#, fuzzy +msgid "view your recipes" +msgstr "Voir toutes les recettes" + +#: includes/class.cooked-widgets.php:38 +msgid "Edit Recipe(s)..." +msgstr "Éditer recette(s)..." + +#: includes/class.cooked-widgets.php:38 includes/class.cooked-widgets.php:40 +msgid "Choose recipe(s)..." +msgstr "Choisir recette(s)..." + +#: includes/class.cooked-seo.php:83 includes/class.cooked-recipes.php:962 +#, php-format +msgid "Step %d" +msgstr "Étape %d" + +#: includes/widgets/recipe-card.php:75 +#: includes/widgets/recipe-categories.php:40 +#: includes/widgets/recipe-list.php:48 +msgid "Widget Title (optional):" +msgstr "Nom du Widget (facultatif) :" + +#: includes/widgets/recipe-card.php:80 +msgid "Recipe:" +msgstr "Recette :" + +#: includes/widgets/recipe-card.php:89 +msgid "Style:" +msgstr "Style :" + +#: includes/widgets/recipe-card.php:91 +msgid "Simple" +msgstr "Simple" + +#: includes/widgets/recipe-card.php:92 +msgid "Simple Centered" +msgstr "Simple centré" + +#: includes/widgets/recipe-card.php:93 +msgid "Modern" +msgstr "Moderne" + +#: includes/widgets/recipe-card.php:94 +msgid "Modern Centered" +msgstr "Moderne centré" + +#: includes/widgets/recipe-card.php:99 includes/widgets/recipe-list.php:83 +msgid "Width:" +msgstr "Largeur :" + +#: includes/widgets/recipe-card.php:105 includes/widgets/recipe-list.php:89 +msgid "Hide Image" +msgstr "Masquer l'image" + +#: includes/widgets/recipe-card.php:110 +msgid "Hide Title" +msgstr "Masquer le titre" + +#: includes/widgets/recipe-card.php:115 includes/widgets/recipe-list.php:94 +msgid "Hide Author" +msgstr "Masquer l'auteur" + +#: includes/widgets/recipe-card.php:120 +msgid "Hide Excerpt" +msgstr "Masquer l'extrait" + +#: includes/widgets/recipe-categories.php:45 +#: includes/class.cooked-taxonomies.php:42 +msgid "Parent Category" +msgstr "Catégorie parente" + +#: includes/widgets/recipe-categories.php:48 +#: includes/class.cooked-taxonomies.php:41 +#: includes/class.cooked-recipes.php:1044 +msgid "All Categories" +msgstr "Toutes les catégories" + +#: includes/widgets/recipe-categories.php:58 +msgid "Hide Empty Categories" +msgstr "Masquer les catégories vides" -#: includes/class.cooked-measurements.php:119 -#: includes/class.cooked-measurements.php:121 -msgid "drops" -msgstr "gouttes" +#: includes/widgets/search.php:37 includes/widgets/nutrition.php:31 +msgid "Title (optional):" +msgstr "Titre (facultatif) :" -#: includes/class.cooked-measurements.php:125 -msgid "gal" -msgstr "gal" +#: includes/widgets/search.php:42 +msgid "Size:" +msgstr "Taille :" -#: includes/class.cooked-measurements.php:126 -msgid "gals" -msgstr "gals" +#: includes/widgets/search.php:44 +msgid "Compact" +msgstr "Compact" -#: includes/class.cooked-measurements.php:127 -msgid "gallon" -msgstr "gallon" +#: includes/widgets/search.php:45 +msgid "Wide" +msgstr "Large" -#: includes/class.cooked-measurements.php:128 -msgid "gallons" -msgstr "gallons" +#: includes/widgets/search.php:51 +msgid "Hide \"Browse\" dropdown" +msgstr "Masquer \"Parcourir\" la liste déroulante" -#: includes/class.cooked-measurements.php:132 -#: includes/class.cooked-measurements.php:134 -msgid "pinch" -msgstr "pinch" +#: includes/widgets/search.php:56 +msgid "Hide \"Sorting\" dropdown" +msgstr "Masquer \"Tri\" du menu déroulant" -#: includes/class.cooked-measurements.php:133 -#: includes/class.cooked-measurements.php:135 -msgid "pinches" -msgstr "pinches" +#: includes/widgets/recipe-list.php:53 +msgid "Sorted by:" +msgstr "Trier par :" -#: includes/class.cooked-measurements.php:139 -#: includes/class.cooked-measurements.php:140 -msgid "pt" -msgstr "pt" +#: includes/widgets/recipe-list.php:55 +msgid "Most Recent" +msgstr "Plus récents" -#: includes/class.cooked-measurements.php:141 -msgid "pint" -msgstr "pint" +#: includes/widgets/recipe-list.php:56 +msgid "Choose Recipes" +msgstr "Choisir une recette(s)" -#: includes/class.cooked-measurements.php:142 -msgid "pints" -msgstr "pints" +#: includes/widgets/recipe-list.php:62 +msgid "Show:" +msgstr "Afficher :" -#: includes/class.cooked-measurements.php:146 -msgid "qt" -msgstr "qt" +#: includes/widgets/recipe-list.php:73 +msgid "Recipes:" +msgstr "Recettes :" -#: includes/class.cooked-measurements.php:147 -msgid "qts" -msgstr "qts" +#: includes/class.cooked-recipe-maker.php:103 +msgid "Error importing WP Recipe Maker recipe." +msgstr "" -#: includes/class.cooked-measurements.php:148 -msgid "quart" -msgstr "quart" +#: includes/class.cooked-functions.php:103 +#, php-format +msgid "What's new in %s?" +msgstr "Quoi de neuf dans %s ?" -#: includes/class.cooked-measurements.php:149 -msgid "quarts" -msgstr "quarts" +#: includes/class.cooked-functions.php:127 +#: includes/class.cooked-shortcodes.php:655 +msgid "Print" +msgstr "Imprimer" -#: includes/class.cooked-measurements.php:167 -msgid "Serving Size" -msgstr "Part" +#: includes/class.cooked-functions.php:128 +msgid "Print Options:" +msgstr "Options d'impression :" -#: includes/class.cooked-measurements.php:171 -#: includes/class.cooked-settings.php:145 -msgid "Servings" -msgstr "Parts" +#: includes/class.cooked-functions.php:130 +msgid "Title" +msgstr "Titre" -#: includes/class.cooked-measurements.php:178 -msgid "Calories" -msgstr "Calories" +#: includes/class.cooked-functions.php:131 +msgid "Information" +msgstr "Informations" -#: includes/class.cooked-measurements.php:182 -msgid "Calories from Fat" -msgstr "Calories provenant des lipides" +#: includes/class.cooked-functions.php:133 +msgid "Images" +msgstr "Images" -#: includes/class.cooked-measurements.php:189 -msgid "Total Fat" -msgstr "Graisse totale" +#: includes/class.cooked-post-types.php:89 +msgid "Photo" +msgstr "Photo" -#: includes/class.cooked-measurements.php:195 -msgid "Saturated Fat" -msgstr "Acides gras saturés" +#: includes/class.cooked-post-types.php:403 +msgid "Recipe Archive" +msgstr "Archive des recettes" -#: includes/class.cooked-measurements.php:201 -msgid "Trans Fat" -msgstr "Acides gras insaturés" +#: includes/class.cooked-post-types.php:419 +#: includes/class.cooked-post-types.php:421 +#: includes/class.cooked-post-types.php:433 +#: includes/class.cooked-admin-menus.php:36 +#: includes/class.cooked-admin-menus.php:59 includes/class.cooked-users.php:154 +msgid "Recipes" +msgstr "Recettes" -#: includes/class.cooked-measurements.php:208 -msgid "Cholesterol" -msgstr "Cholesterol" +#: includes/class.cooked-post-types.php:420 +#: includes/class.cooked-post-types.php:422 +msgid "Recipe" +msgstr "Recette" -#: includes/class.cooked-measurements.php:214 -msgid "Sodium" -msgstr "Sodium" +#: includes/class.cooked-post-types.php:423 +#: includes/class.cooked-admin-menus.php:37 +#: includes/class.cooked-admin-menus.php:61 +msgid "Add New" +msgstr "Ajouter une recette" -#: includes/class.cooked-measurements.php:220 -msgid "Potassium" -msgstr "Potassium" +#: includes/class.cooked-post-types.php:424 +msgid "Add New Recipe" +msgstr "Ajouter une nouvelle recette" -#: includes/class.cooked-measurements.php:226 -msgid "Total Carbohydrate" -msgstr "Glucides totaux" +#: includes/class.cooked-post-types.php:425 +msgid "New Recipe" +msgstr "Nouvelle recette" -#: includes/class.cooked-measurements.php:226 -msgid "Net Carbohydrate" -msgstr "Glucides nets" +#: includes/class.cooked-post-types.php:426 +msgid "Edit Recipe" +msgstr "Modifier la recette" -#: includes/class.cooked-measurements.php:232 -msgid "Dietary Fiber" -msgstr "Fibre alimentaire" +#: includes/class.cooked-post-types.php:427 +msgid "View Recipe" +msgstr "Voir la recette" -#: includes/class.cooked-measurements.php:238 -msgid "Sugars" -msgstr "Sucre" +#: includes/class.cooked-post-types.php:428 +#: includes/class.cooked-admin-menus.php:60 +msgid "All Recipes" +msgstr "Toutes les recettes" -#: includes/class.cooked-measurements.php:245 -msgid "Protein" -msgstr "Protéine" +#: includes/class.cooked-post-types.php:429 +msgid "Search Recipes" +msgstr "Rechercher des recettes" -#: includes/class.cooked-measurements.php:254 -msgid "Vitamin A" -msgstr "Vitamine A" +#: includes/class.cooked-post-types.php:430 +msgid "No recipes found." +msgstr "Aucune recette trouvée." -#: includes/class.cooked-measurements.php:259 -msgid "Vitamin C" -msgstr "Vitamine C" +#: includes/class.cooked-post-types.php:431 +msgid "No recipes found in trash." +msgstr "Aucune recette trouvée dans la corbeille." -#: includes/class.cooked-measurements.php:264 -msgid "Calcium" -msgstr "Calcium" +#: includes/class.cooked-post-types.php:459 +msgid "Recipe title ..." +msgstr "Titre de la recette..." -#: includes/class.cooked-measurements.php:269 -msgid "Iron" -msgstr "Fer" +#: includes/class.cooked-post-types.php:477 +#, fuzzy +msgid "Cooked Browse Recipes Page" +msgstr "Parcourir / Rechercher des pages de recettes" -#: includes/class.cooked-measurements.php:274 -msgid "Vitamin D" -msgstr "Vitamine D" +#: includes/class.cooked-ajax.php:346 +msgid "No default content provided." +msgstr "" -#: includes/class.cooked-measurements.php:279 -msgid "Vitamin E" -msgstr "Vitamine E" +#: includes/class.cooked-ajax.php:375 includes/class.cooked-ajax.php:411 +#, fuzzy +msgid "You do not have permission to import recipes." +msgstr "" +"Vous n'avez pas les autorisations suffisantes pour accéder à cette page." -#: includes/class.cooked-measurements.php:284 -msgid "Vitamin K" -msgstr "Vitamine K" +#: includes/class.cooked-ajax.php:379 +#: includes/class.cooked-admin-enqueues.php:161 +msgid "File upload failed." +msgstr "" -#: includes/class.cooked-measurements.php:289 -msgid "Thiamin" -msgstr "Vitamine B1 (Thiamin)" +#: includes/class.cooked-ajax.php:385 +msgid "Invalid file type. Please upload a CSV file." +msgstr "" -#: includes/class.cooked-measurements.php:294 -msgid "Riboflavin" -msgstr "Vitamine B2 (Riboflavine)" +#: includes/class.cooked-ajax.php:418 +msgid "CSV file not found. Please upload again." +msgstr "" -#: includes/class.cooked-measurements.php:299 -msgid "Niacin" -msgstr "Vitamine B3 (Niacine)" +#: includes/class.cooked-ajax.php:436 +msgid "CSV Import class could not be loaded." +msgstr "" -#: includes/class.cooked-measurements.php:304 -msgid "Vitamin B6" -msgstr "Vitamine B6" +#: includes/class.cooked-ajax.php:450 +#, php-format +msgid "Successfully imported %d recipe(s)." +msgstr "" -#: includes/class.cooked-measurements.php:309 -msgid "Folate" -msgstr "Vitamine B9 (Folate)" +#: includes/class.cooked-ajax.php:459 +#, fuzzy +msgid "No recipes were imported." +msgstr "Aucune recette trouvée." -#: includes/class.cooked-measurements.php:314 -msgid "Vitamin B12" -msgstr "Vitamine B12" +#: includes/class.cooked-rankmathseo.php:36 +#, fuzzy +msgid "Recipe Category" +msgstr "Permalien de la catégorie de recette" -#: includes/class.cooked-measurements.php:319 -msgid "Biotin" -msgstr "Vitamine B8 (Biotine)" +#: includes/class.cooked-taxonomies.php:38 +#: includes/class.cooked-taxonomies.php:48 +#: includes/class.cooked-settings.php:191 +#: includes/class.cooked-recipes.php:1042 +msgid "Categories" +msgstr "Catégories" -#: includes/class.cooked-measurements.php:324 -msgid "Pantothenic Acid" -msgstr "Vitamine B5 (Acide pantothénique)" +#: includes/class.cooked-taxonomies.php:40 +msgid "Search Categories" +msgstr "Rechercher des catégories" -#: includes/class.cooked-measurements.php:329 -msgid "Phosphorus" -msgstr "Phosphore" +#: includes/class.cooked-taxonomies.php:43 +msgid "Parent Category:" +msgstr "Catégorie parente :" -#: includes/class.cooked-measurements.php:334 -msgid "Iodine" -msgstr "Iode" +#: includes/class.cooked-taxonomies.php:44 +msgid "Edit Category" +msgstr "Modifier la catégorie" -#: includes/class.cooked-measurements.php:339 -msgid "Magnesium" -msgstr "Magnésium" +#: includes/class.cooked-taxonomies.php:45 +msgid "Update Category" +msgstr "Mise à jour de la catégorie" -#: includes/class.cooked-measurements.php:344 -msgid "Zinc" -msgstr "Zinc" +#: includes/class.cooked-taxonomies.php:46 +msgid "Add New Category" +msgstr "Ajouter une nouvelle catégorie" -#: includes/class.cooked-measurements.php:349 -msgid "Selenium" -msgstr "Sélénium" +#: includes/class.cooked-taxonomies.php:47 +msgid "New Category Name" +msgstr "Nom de la nouvelle catégorie" -#: includes/class.cooked-measurements.php:354 -msgid "Copper" -msgstr "Cuivre" +#: includes/class.cooked-taxonomies.php:49 +msgid "No Categories" +msgstr "Aucune catégorie" -#: includes/class.cooked-measurements.php:359 -msgid "Manganese" -msgstr "Manganèse" +#: includes/class.cooked-taxonomies.php:136 +#, fuzzy, php-format +msgid "%s Recipe" +msgstr "%s recette" -#: includes/class.cooked-measurements.php:364 -msgid "Chromium" -msgstr "Chromium" +#: includes/class.cooked-plugin-extra.php:31 +msgid "Required by Cooked Pro" +msgstr "" -#: includes/class.cooked-measurements.php:369 -msgid "Molybdenum" -msgstr "Molybdène" +#: includes/class.cooked-delicious-recipes.php:102 +msgid "Error importing WP Delicious recipe." +msgstr "" -#: includes/class.cooked-measurements.php:374 -msgid "Chloride" -msgstr "Chlorure" +#: includes/class.cooked-admin-menus.php:46 +msgid "Import" +msgstr "" -#: includes/class.cooked-measurements.php:661 -#: includes/class.cooked-measurements.php:670 -#: includes/class.cooked-measurements.php:684 -#, php-format -msgid "%d min" -msgstr "%d min" +#: includes/class.cooked-admin-menus.php:47 +msgid "What's New?" +msgstr "Quoi de neuf ?" -#: includes/class.cooked-measurements.php:661 -#: includes/class.cooked-measurements.php:670 -#: includes/class.cooked-measurements.php:684 -#, php-format -msgid "%d mins" -msgstr "%d mins" +#: includes/class.cooked-admin-menus.php:50 +msgid "Upgrade to Pro" +msgstr "Passer à Pro" -#: includes/class.cooked-measurements.php:669 -#: includes/class.cooked-measurements.php:683 -#, php-format -msgid "%d hr" -msgstr "%d h" +#: includes/class.cooked-admin-menus.php:90 +#: includes/class.cooked-admin-menus.php:99 +#: includes/class.cooked-admin-menus.php:108 +#: includes/class.cooked-admin-menus.php:117 +msgid "You do not have sufficient permissions to access this page." +msgstr "" +"Vous n'avez pas les autorisations suffisantes pour accéder à cette page." -#: includes/class.cooked-measurements.php:669 -#: includes/class.cooked-measurements.php:683 -#, php-format -msgid "%d hrs" -msgstr "%d h" +#: includes/class.cooked-settings.php:85 +msgid "Cooked settings has been updated!" +msgstr "" -#: includes/class.cooked-measurements.php:682 -#, php-format -msgid "%d day" -msgstr "%d jour" +#: includes/class.cooked-settings.php:104 +msgid "Cooked Plugin Setup" +msgstr "" -#: includes/class.cooked-measurements.php:682 +#: includes/class.cooked-settings.php:105 #, php-format -msgid "%d days" -msgstr "%d jours" +msgid "To display your recipes properly, please set up your %s." +msgstr "" -#: includes/class.cooked-migration.php:52 -#, php-format -msgid "" -"There is %s recipe that should be migrated from %s to take advantage of new " -"features and reliability." -msgid_plural "" -"There are %s recipes that should be migrated from %s to take advantage of " -"new features and reliability." -msgstr[0] "" -"Il y a %s recette qui devrait être migrée depuis %s pour tirer parti des " -"nouvelles fonctionnalités et de la fiabilité." -msgstr[1] "" -"Il y a %s recettes qui devrait être migrée depuis %s pour tirer parti des " -"nouvelles fonctionnalités et de la fiabilité." +#: includes/class.cooked-settings.php:106 +#: includes/class.cooked-settings.php:168 +msgid "Browse/Search Recipes Page" +msgstr "Parcourir / Rechercher des pages de recettes" -#: includes/class.cooked-migration.php:54 -msgid "" -"Please click the button below to migrate these recipes. Here is what will " -"happen to your recipes:" +#: includes/class.cooked-settings.php:104 +#, php-format +msgid "" msgstr "" -"Veuillez cliquer sur le bouton ci-dessous pour migrer ces recettes. Voici ce " -"qui va arriver à vos recettes :" -#: includes/class.cooked-migration.php:56 -msgid "NO DATA LOSS, all fields will be remapped." -msgstr "AUCUNE PERTE DE DONNÉES, tous les champs seront réaffectés." +#: includes/class.cooked-settings.php:143 +msgid "Choose a page..." +msgstr "Choisir une page…" -#: includes/class.cooked-migration.php:57 -msgid "Remapped fields will greatly speed up recipe loading times." -msgstr "" -"Les champs réaffectés vont grandement accélérer les temps de chargement des " -"recettes." +#: includes/class.cooked-settings.php:143 +msgid "No pages" +msgstr "Aucune page" -#: includes/class.cooked-migration.php:58 +#: includes/class.cooked-settings.php:144 +msgid "No default" +msgstr "Pas de choix par défaut" + +#: includes/class.cooked-settings.php:144 +#: includes/class.cooked-recipes.php:1039 +msgid "No categories" +msgstr "Aucune catégories" + +#: includes/class.cooked-settings.php:164 +msgid "General" +msgstr "Général" + +#: includes/class.cooked-settings.php:170 +#, php-format msgid "" -"If recipe excerpt exists, the short description will be moved to the top of " -"the recipe template." +"Create a page with the %s shortcode on it, then choose it from this dropdown." msgstr "" -"Si l'extrait de recette existe, la description courte sera déplacée vers le " -"haut du modèle de recette." +"Créez une page avec le shortcode %s, puis sélectionnez-la dans la liste ci-" +"dessous." -#: includes/class.cooked-migration.php:59 +#: includes/class.cooked-settings.php:170 msgid "" -"If no recipe excerpt exists, the short description will be used instead." +"Note: This setting is required for the plugin to function properly." msgstr "" -"Si aucun extrait de recette n'existe, la description courte sera utilisée à " -"la place." -#: includes/class.cooked-migration.php:60 -msgid "Version number will be applied to each recipe." -msgstr "Le numéro de version sera appliqué à chaque recette." - -#: includes/class.cooked-migration.php:63 -msgid "Wow, you have a lot of recipes!" -msgstr "Wow, vous avez beaucoup de recettes !" +#: includes/class.cooked-settings.php:176 +msgid "Recipes Per Page" +msgstr "Nombre de recettes par page" -#: includes/class.cooked-migration.php:63 +#: includes/class.cooked-settings.php:178 +#, php-format msgid "" -"It is definitely recommended that you get yourself a cup of coffee or tea " -"after clicking this button." +"Choose the default (set via the %s panel) or choose a different number here." msgstr "" -"Il est fortement recommandé de prendre une tasse de café ou de thé après " -"avoir cliqué sur ce bouton." +"Choisissez la valeur par défaut (définie via le panneau %s) ou indiquez une " +"autre valeur ici." -#: includes/class.cooked-migration.php:65 -msgid "Note:" -msgstr "Remarque :" +#: includes/class.cooked-settings.php:178 +msgid "Settings > Reading" +msgstr "Paramètres > Lecture" -#: includes/class.cooked-migration.php:65 -msgid "The more recipes you have, the longer this will take." -msgstr "Plus vous avez de recettes, plus cela prendra de temps." +#: includes/class.cooked-settings.php:184 +msgid "Recipe Taxonomies" +msgstr "Taxonomies des recettes" -#: includes/class.cooked-migration.php:70 -msgid "Migration" -msgstr "Migration" +#: includes/class.cooked-settings.php:185 +msgid "Choose which taxonomies you want to enable for your recipes." +msgstr "" +"Choisissez les taxonomies que vous souhaitez activer pour vos recettes." -#: includes/class.cooked-migration.php:98 -#, php-format +#: includes/class.cooked-settings.php:196 +msgid "Global Recipe Toggles" +msgstr "Bascule de la totalité des recettes" + +#: includes/class.cooked-settings.php:197 msgid "" -"There is %s recipe that is from an older version of Cooked. Please %s to " -"migrate this recipe." -msgid_plural "" -"There are %s recipes that are from an older version of Cooked. Please %s to " -"migrate these recipes." -msgstr[0] "" -"Il y a %s recette qui provient d'une ancienne version de Cooked. S'il vous " -"plaît %s pour migrer cette recette." -msgstr[1] "" -"Il y a %s recettes qui proviennent d'une ancienne version de Cooked. S'il " -"vous plaît %s pour migrer ces recettes." +"You can quickly hide or show different recipe elements (site-wide) with " +"these checkboxes." +msgstr "" +"Vous pouvez masquer ou afficher rapidement différents éléments de recette " +"(sur l’ensemble du site) à l’aide de ces cases à cocher." -#: includes/class.cooked-migration.php:98 -msgid "click here" -msgstr "cliquez ici" +#: includes/class.cooked-settings.php:223 +#: includes/class.cooked-measurements.php:202 +#: includes/class.cooked-recipes.php:799 +msgid "Servings" +msgstr "Parts" -#: includes/class.cooked-post-types.php:45 -msgid "Photo" -msgstr "Photo" +#: includes/class.cooked-settings.php:228 +msgid "Carbs Format" +msgstr "Format des glucides" -#: includes/class.cooked-post-types.php:260 -msgid "Recipe Archive" -msgstr "Archive des recettes" +#: includes/class.cooked-settings.php:229 +msgid "You can display carbs as \"Total\" or \"Net\"." +msgstr "Vous pouvez afficher les glucides comme « total » ou « net »." -#: includes/class.cooked-post-types.php:273 -#: includes/class.cooked-post-types.php:275 -msgid "Recipe" -msgstr "Recette" +#: includes/class.cooked-settings.php:235 +msgid "Total Carbs" +msgstr "Glucides totaux" -#: includes/class.cooked-post-types.php:277 -msgid "Add New Recipe" -msgstr "Ajouter une nouvelle recette" +#: includes/class.cooked-settings.php:236 +msgid "Net Carbs" +msgstr "Glucides nets" -#: includes/class.cooked-post-types.php:278 -msgid "New Recipe" -msgstr "Nouvelle recette" +#: includes/class.cooked-settings.php:241 +msgid "Author Name Format" +msgstr "Format du nom d'auteur" -#: includes/class.cooked-post-types.php:279 -msgid "Edit Recipe" -msgstr "Modifier la recette" +#: includes/class.cooked-settings.php:242 +msgid "You can show the full author's name or just a part of it." +msgstr "" +"Vous pouvez afficher le nom complet de l’auteur ou seulement une partie de " +"celui-ci." -#: includes/class.cooked-post-types.php:280 -msgid "View Recipe" -msgstr "Voir la recette" +#: includes/class.cooked-settings.php:248 +msgid "Full name" +msgstr "Nom complet" -#: includes/class.cooked-post-types.php:282 -msgid "Search Recipes" -msgstr "Rechercher des recettes" +#: includes/class.cooked-settings.php:249 +msgid "Full first name w/last name initial" +msgstr "Prénom complet / 1ère lettre du nom de famille" -#: includes/class.cooked-post-types.php:283 -msgid "No recipes found." -msgstr "Aucune recette trouvée." +#: includes/class.cooked-settings.php:250 +msgid "First name initial w/full last name" +msgstr "1ère lettre du prénom / nom complet" -#: includes/class.cooked-post-types.php:284 -msgid "No recipes found in trash." -msgstr "Aucune recette trouvée dans la corbeille." +#: includes/class.cooked-settings.php:251 +msgid "First name only" +msgstr "Prénom uniquement" -#: includes/class.cooked-post-types.php:313 -msgid "Recipe title ..." -msgstr "Titre de la recette..." +#: includes/class.cooked-settings.php:256 +msgid "Author Links" +msgstr "Liens vers l'auteur" -#: includes/class.cooked-recipe-meta.php:181 -msgid "Display Recipe" -msgstr "Afficher la recette" +#: includes/class.cooked-settings.php:257 +msgid "" +"If you do not want the author names to link to the author recipe listings, " +"you can disable them here." +msgstr "" +"Si vous ne souhaitez pas que les noms des auteurs soient reliés à leurs " +"recettes, vous pouvez les désactiver ici." -#: includes/class.cooked-recipe-meta.php:182 +#: includes/class.cooked-settings.php:257 msgid "" -"This shortcode displays the recipe in its entirety, using the \"Recipe " -"Template\" field in the first tab." +"Note: Author links require the Browse/Search Recipes Page to be set " +"up correctly to function properly." msgstr "" -"Ce shortcode affiche la recette dans son intégralité, en utilisant le champ " -"\"Modèle de recette\" dans le premier onglet." -#: includes/class.cooked-recipe-meta.php:219 -msgid "Layout" -msgstr "Disposition" +#: includes/class.cooked-settings.php:264 +msgid "Disable Author Links" +msgstr "Désactiver les liens vers l’auteur" -#: includes/class.cooked-recipe-meta.php:243 -#: includes/class.cooked-recipe-meta.php:988 -msgid "Gallery" -msgstr "Galerie" +#: includes/class.cooked-settings.php:269 +msgid "Default Category" +msgstr "Catégorie par Défaut" -#: includes/class.cooked-recipe-meta.php:249 -msgid "Shortcodes" -msgstr "Shortcodes" +#: includes/class.cooked-settings.php:271 +#, php-format +msgid "" +"Optionally set the default recipe category for your %s shortcode display." +msgstr "" +"Si vous le voulez, vous pouvez indiquer une catégorie de recettes qui sera " +"utilisée par défaut avec le shortcode %s." -#: includes/class.cooked-recipe-meta.php:301 -msgid "Recipe Review Required" -msgstr "La recette doit être validée" +#: includes/class.cooked-settings.php:277 +msgid "Default Sort Order" +msgstr "Classement par défaut" -#: includes/class.cooked-recipe-meta.php:302 +#: includes/class.cooked-settings.php:279 #, php-format -msgid "" -"It looks like this recipe is from a different version of %s. Please review " -"and click \"Update\" to save it." +msgid "Set the default sort order for your %s shortcode display." msgstr "" -"Il semble que cette recette provienne d'une version différente de %s. Merci " -"de la modifier et cliquez sur \"Mettre à jour\" pour l'enregistrer." +"Indiquez l'ordre de tri qui sera utilisé par défaut avec avec le shortcode " +"%s." -#: includes/class.cooked-recipe-meta.php:309 -msgid "Recipe Shortcode" -msgstr "Shortcode de la recette" +#: includes/class.cooked-settings.php:285 +msgid "Newest First" +msgstr "La plus récente en premier" -#: includes/class.cooked-recipe-meta.php:310 -msgid "You can use the following shortcode to display your recipe anywhere:" +#: includes/class.cooked-settings.php:286 +msgid "Oldest First" +msgstr "La plus ancienne en premier" + +#: includes/class.cooked-settings.php:287 +msgid "Alphabetical" +msgstr "Alphabétique" + +#: includes/class.cooked-settings.php:288 +msgid "Alphabetical (reversed)" +msgstr "Alphabétique (inversé)" + +#: includes/class.cooked-settings.php:293 +#, fuzzy +msgid "Section Heading Default HTML Tag" +msgstr "Titre de la section" + +#: includes/class.cooked-settings.php:295 +#, fuzzy +msgid "Set the default HTML tag for your section headings." msgstr "" -"Vous pouvez utiliser le shortcode suivant pour afficher votre recette " -"n’importe où :" +"Indiquez l'ordre de tri qui sera utilisé par défaut avec avec le shortcode " +"%s." -#: includes/class.cooked-recipe-meta.php:321 -msgid "Recipe Template" -msgstr "Modèle de recette" +#: includes/class.cooked-settings.php:301 +msgid "div" +msgstr "" -#: includes/class.cooked-recipe-meta.php:321 -msgid "Default Recipe Template" -msgstr "Modèle de recette par défaut" +#: includes/class.cooked-settings.php:302 +msgid "h2" +msgstr "" + +#: includes/class.cooked-settings.php:303 +msgid "h3" +msgstr "" + +#: includes/class.cooked-settings.php:304 +msgid "h4" +msgstr "" + +#: includes/class.cooked-settings.php:305 +msgid "h5" +msgstr "" + +#: includes/class.cooked-settings.php:306 +msgid "h6" +msgstr "" + +#: includes/class.cooked-settings.php:311 +msgid "WP Editor Roles" +msgstr "" -#: includes/class.cooked-recipe-meta.php:321 +#: includes/class.cooked-settings.php:312 msgid "" -"Choose from the options below to use this layout as the default for new " -"recipes or for all recipes." +"Choose which user roles can use the WP Editor for the Excerpt, Directions & " +"Notes fields." msgstr "" -"Choisissez parmi les options ci-dessous pour utiliser ce modèle comme mise " -"en page par défaut pour les nouvelles recettes uniquement ou pour toutes les " -"recettes." -#: includes/class.cooked-recipe-meta.php:321 -msgid "Save as Default" -msgstr "Enregistrer comme valeur par défaut" +#: includes/class.cooked-settings.php:318 +msgid "Advanced Settings" +msgstr "Paramètres Avancés" -#: includes/class.cooked-recipe-meta.php:321 -msgid "Apply to All" -msgstr "Appliquer à tous" +#: includes/class.cooked-settings.php:328 +msgid "Disable Public Recipes" +msgstr "Désactiver les recettes publiques" + +#: includes/class.cooked-settings.php:328 +#, php-format +msgid "Only show recipes using the %s shortcode." +msgstr "Afficher uniquement les recettes en utilisant le shortcode %s." + +#: includes/class.cooked-settings.php:330 +#, php-format +msgid "Disable %s Tags" +msgstr "Désactiver les mots-clés %s" + +#: includes/class.cooked-settings.php:330 +msgid "Prevents duplicates when tags already exist." +msgstr "Empêcher les doublons lorsque les mots-clés existent déjà." + +#: includes/class.cooked-settings.php:331 +msgid "Disable \"Servings Switcher\"" +msgstr "Désactiver le \"Sélecteur de parts\"" -#: includes/class.cooked-recipe-meta.php:321 -msgid "Reset" -msgstr "Réinitialiser" +#: includes/class.cooked-settings.php:331 +msgid "Removes the servings dropdown on recipes." +msgstr "" +"Supprimer la liste déroulante indiquant le nombre de parts sur les recettes." + +#: includes/class.cooked-settings.php:332 +msgid "Disable Recipe Schema Output" +msgstr "Désactiver la sortie de schéma de recette" -#: includes/class.cooked-recipe-meta.php:321 +#: includes/class.cooked-settings.php:332 msgid "" -"Using the built-in recipe shortcodes found on the \"Shortcodes\" tab, you " -"can create the layout of your recipe below. Use the \"Save as Default\" " -"button to save your template." +"You should only do this if you're using something else to output schema " +"information." msgstr "" -"En utilisant les codes abrégés de recette intégrés dans l’onglet \"Shortcodes" -"\", vous pouvez créer ci-dessous une mise en page pour votre recette. " -"Utilisez ensuite le bouton \"Enregistrer comme valeur par défaut\" pour " -"enregistrer ce nouveau modèle." +"Vous ne devriez le faire que si vous utilisez autre chose pour produire des " +"informations sur les schémas." -#: includes/class.cooked-recipe-meta.php:329 -msgid "Recipe Excerpt" -msgstr "Extrait de la recette" +#: includes/class.cooked-settings.php:333 +#, fuzzy +msgid "Disable Recipe Archive Page" +msgstr "Désactiver la sortie de schéma de recette" -#: includes/class.cooked-recipe-meta.php:329 -msgid "" -"The excerpt is used on recipe listing templates, where the full recipe " -"should not be displayed." +#: includes/class.cooked-settings.php:333 +msgid "Prevents the recipe archive from being displayed." msgstr "" -"L’extrait est utilisé sur les modèles de liste de recettes, où la recette " -"complète ne doit pas être affichée." -#: includes/class.cooked-recipe-meta.php:334 -msgid "SEO Description" -msgstr "Description de la minuterie" +#: includes/class.cooked-settings.php:340 +msgid "Design" +msgstr "Design" + +#: includes/class.cooked-settings.php:344 +msgid "Dark Mode" +msgstr "Mode sombre" -#: includes/class.cooked-recipe-meta.php:334 +#: includes/class.cooked-settings.php:345 msgid "" -"This description is used for SEO purposes and is optional. By default, " -"Cooked will use the Recipe Excerpt above if available or the Recipe Title if " -"not." +"If your site has a dark background, you should enable \"Dark Mode\" so that " +"Cooked can match this style." msgstr "" -"Cette description est utilisée à des fins de SEO et est facultative. Par " -"défaut, Cooked utilisera l'extrait de recette ci-dessus si disponible ou le " -"titre de recette si ce n'est pas le cas." +"Si votre site a un fond arrière-plan sombre, vous devez activer le \"Mode " +"sombre\" afin que Cooked puisse s'adapter à votre style." -#: includes/class.cooked-recipe-meta.php:344 -#: includes/class.cooked-settings.php:140 -msgid "Difficulty Level" -msgstr "Niveau de difficulté" +#: includes/class.cooked-settings.php:351 +msgid "Enable \"Dark Mode\"" +msgstr "Activer \"Mode sombre\"" -#: includes/class.cooked-recipe-meta.php:353 -#: includes/class.cooked-recipe-meta.php:850 -#: includes/class.cooked-settings.php:142 -#: includes/class.cooked-shortcodes.php:437 -#: includes/class.cooked-shortcodes.php:620 -msgid "Prep Time" -msgstr "Préparation" +#: includes/class.cooked-settings.php:356 +msgid "Author Images" +msgstr "Images de l’auteur" -#: includes/class.cooked-recipe-meta.php:355 -#: includes/class.cooked-recipe-meta.php:360 -#: includes/class.cooked-recipe-meta.php:365 -msgid "minutes" -msgstr "minutes" +#: includes/class.cooked-settings.php:357 +msgid "" +"If you do not want to display the author images (avatars), you can disable " +"them here." +msgstr "" +"Si vous ne voulez pas afficher les images des auteurs (avatars), faites-le " +"ici." -#: includes/class.cooked-recipe-meta.php:358 -#: includes/class.cooked-recipe-meta.php:851 -#: includes/class.cooked-settings.php:143 -#: includes/class.cooked-shortcodes.php:438 -#: includes/class.cooked-shortcodes.php:628 -msgid "Cook Time" -msgstr "Cuisson" +#: includes/class.cooked-settings.php:364 +msgid "Hide Author Images" +msgstr "Masquer l'avatar de l’auteur" -#: includes/class.cooked-recipe-meta.php:363 -#: includes/class.cooked-recipe-meta.php:852 -#: includes/class.cooked-settings.php:144 -#: includes/class.cooked-shortcodes.php:439 -#: includes/class.cooked-shortcodes.php:637 -#: includes/class.cooked-shortcodes.php:643 -msgid "Total Time" -msgstr "Temps total" +#: includes/class.cooked-settings.php:369 +msgid "Main Color" +msgstr "Couleur Principale" -#: includes/class.cooked-recipe-meta.php:377 -msgid "Amount" -msgstr "Quantité" +#: includes/class.cooked-settings.php:370 +msgid "Used on buttons, cooking timer, etc." +msgstr "Utilisée sur les boutons, minuteur, etc.." -#: includes/class.cooked-recipe-meta.php:378 -msgid "Measurement" -msgstr "Unité de mesure" +#: includes/class.cooked-settings.php:376 +msgid "Main Color (on hover)" +msgstr "Couleur Principale (au survol)" -#: includes/class.cooked-recipe-meta.php:379 -msgid "Item" -msgstr "Élément" +#: includes/class.cooked-settings.php:377 +msgid "Used when hovering over buttons." +msgstr "Utilisée lorsque vous passez la souris sur les boutons." -#: includes/class.cooked-recipe-meta.php:416 -#: includes/class.cooked-recipe-meta.php:467 -#: includes/class.cooked-recipe-meta.php:514 -msgid "ex. Eggs, Milk, etc." -msgstr "ex : oeufs, lait, etc." +#: includes/class.cooked-settings.php:383 +msgid "First Responsive Breakpoint" +msgstr "Premier Point de rupture Responsive" -#: includes/class.cooked-recipe-meta.php:430 -#: includes/class.cooked-recipe-meta.php:525 -#: includes/class.cooked-recipe-meta.php:579 -#: includes/class.cooked-recipe-meta.php:636 -msgid "Section Heading" -msgstr "Titre de la section" +#: includes/class.cooked-settings.php:384 +msgid "Set the first responsive breakpoint. Best for large tablets." +msgstr "" +"Définissez le premier point de rupture responsive. Utilisé pour les grandes " +"tablettes." -#: includes/class.cooked-recipe-meta.php:484 -msgid "Add Ingredient" -msgstr "Ajouter un ingrédient" +#: includes/class.cooked-settings.php:390 +msgid "Second Responsive Breakpoint" +msgstr "Second Point de rupture Responsive" -#: includes/class.cooked-recipe-meta.php:485 -#: includes/class.cooked-recipe-meta.php:615 -msgid "Add Section Heading" -msgstr "Ajouter une entête" +#: includes/class.cooked-settings.php:391 +msgid "Set the second responsive breakpoint. Best for small tablets." +msgstr "" +"Définissez le deuxième point de rupture responsive. Utilisé pour les petites " +"tablettes." -#: includes/class.cooked-recipe-meta.php:614 -msgid "Add Direction" -msgstr "Ajouter une étape de la recette" +#: includes/class.cooked-settings.php:397 +msgid "Third Responsive Breakpoint" +msgstr "Troisième Point de rupture Responsive" -#: includes/class.cooked-recipe-meta.php:649 -msgid "Nutrition Information" -msgstr "Informations nutritionnelles" +#: includes/class.cooked-settings.php:398 +msgid "" +"Set the third responsive breakpoint. Best for phones and other small devices." +msgstr "" +"Définissez le troisième point de rupture responsive. Utilisé pour les " +"smartphones." -#: includes/class.cooked-recipe-meta.php:686 -#: includes/class.cooked-shortcodes.php:975 -msgid "Nutrition Facts" -msgstr "Valeurs nutritionnelles" +#: includes/class.cooked-settings.php:406 +msgid "Permalinks" +msgstr "Permaliens" -#: includes/class.cooked-recipe-meta.php:696 -#: includes/class.cooked-shortcodes.php:943 -msgid "Amount Per Serving" -msgstr "Quantité par dose" +#: includes/class.cooked-settings.php:410 +msgid "Recipe Permalink" +msgstr "Permalien de la recette" -#: includes/class.cooked-recipe-meta.php:708 -#: includes/class.cooked-shortcodes.php:953 -msgid "% Daily Value *" -msgstr "% Valeur quotidienne *" +#: includes/class.cooked-settings.php:413 +msgid "recipe-name" +msgstr "nom-de-la-recette" -#: includes/class.cooked-recipe-meta.php:744 -#: includes/class.cooked-shortcodes.php:978 -msgid "" -"Percent Daily Values are based on a 2,000 calorie diet. Your daily value may " -"be higher or lower depending on your calorie needs." -msgstr "" -"* Le pourcentage de la valeur quotidienne est basée sur un régime de 2000 " -"calories. Vos valeurs quotidiennes peuvent être supérieures ou inférieures " -"selon vos besoins caloriques." +#: includes/class.cooked-settings.php:417 +msgid "Recipe Author Permalink" +msgstr "Permalien de l’auteur de la recette" -#: includes/class.cooked-recipe-meta.php:758 -msgid "Recipe Gallery Type" -msgstr "Modifier la galerie de recette" +#: includes/class.cooked-settings.php:420 +msgid "author-name" +msgstr "nom-de-l-auteur" -#: includes/class.cooked-recipe-meta.php:771 -msgid "Choose one..." -msgstr "Choisissez une..." +#: includes/class.cooked-settings.php:424 +msgid "Recipe Category Permalink" +msgstr "Permalien de la catégorie de recette" -#: includes/class.cooked-recipe-meta.php:783 -#, php-format -msgid "%s or %s Video" -msgstr "%s ou %s Vidéo" +#: includes/class.cooked-settings.php:427 +msgid "recipe-category-name" +msgstr "nom-categorie-recette" -#: includes/class.cooked-recipe-meta.php:784 +#: includes/class.cooked-settings.php:438 #, php-format -msgid "" -"If you would like to display a video as the first item in your gallery, you " -"can paste a valid %s or %s URL below." -msgstr "" -"Si vous souhaitez afficher une vidéo en tant que premier élément de votre " -"galerie, vous pouvez coller une URL %s ou %s valide ci-dessous." +msgid "WordPress Default %s" +msgstr "WordPress par défaut %s" -#: includes/class.cooked-recipe-meta.php:788 -msgid "Gallery Items" -msgstr "Éléments de la galerie" +#: includes/class.cooked-settings.php:443 +msgid "Show All (no pagination)" +msgstr "Afficher tout (sans pagination)" -#: includes/class.cooked-recipe-meta.php:819 -msgid "Recipe Information" -msgstr "Informations sur la recette" +#: includes/class.cooked-settings.php:587 +msgid "Begin Migration" +msgstr "Commencez la migration" -#: includes/class.cooked-recipe-meta.php:820 -msgid "This will display the recipe author, cooking times, etc." -msgstr "Cela affichera l’auteur de la recette, les temps de cuisson, etc." +#: includes/class.cooked-roles.php:22 +msgid "Recipe Editor" +msgstr "Éditeur de recette" -#: includes/class.cooked-recipe-meta.php:827 -#: includes/class.cooked-recipe-meta.php:834 -#, php-format -msgid "\"%s\" and \"%s\"" -msgstr "« %s » et « %s »" +#: includes/class.cooked-measurements.php:29 +#: includes/class.cooked-measurements.php:30 +#, fuzzy +msgid "g" +msgstr "g" -#: includes/class.cooked-recipe-meta.php:828 -msgid "" -"This will allow you to include or exclude content from the shortcode output." -msgstr "" -"Cela vous permettra d'inclure ou d'exclure du contenu généré par le " -"shortcode." +#: includes/class.cooked-measurements.php:31 +msgid "gram" +msgstr "gramme" -#: includes/class.cooked-recipe-meta.php:835 -msgid "" -"Used like \"include\", but will position the content to the left or right." -msgstr "" -"Utilisé de la même façon qu'« inclure », mais positionnera le contenu à " -"gauche ou à droite." +#: includes/class.cooked-measurements.php:32 +msgid "grams" +msgstr "grammes" -#: includes/class.cooked-recipe-meta.php:845 -#: includes/class.cooked-recipe-meta.php:891 -#: includes/class.cooked-recipe-meta.php:922 -#: includes/class.cooked-recipe-meta.php:947 -#: includes/class.cooked-recipe-meta.php:971 -#: includes/class.cooked-recipe-meta.php:1031 -#: includes/class.cooked-recipe-meta.php:1064 -#: includes/class.cooked-recipe-meta.php:1105 -msgid "Available Variables" -msgstr "Variables disponibles" +#: includes/class.cooked-measurements.php:36 +#: includes/class.cooked-measurements.php:37 +#, fuzzy +msgid "kg" +msgstr "kg" -#: includes/class.cooked-recipe-meta.php:849 -#: includes/class.cooked-settings.php:138 -#: includes/class.cooked-shortcodes.php:434 -#: includes/class.cooked-shortcodes.php:577 -msgid "Author" -msgstr "Auteur" +#: includes/class.cooked-measurements.php:38 +msgid "kilogram" +msgstr "kilogramme" -#: includes/class.cooked-recipe-meta.php:853 -#: includes/class.cooked-shortcodes.php:435 -#: includes/class.cooked-shortcodes.php:589 -msgid "Difficulty" -msgstr "Difficulté" +#: includes/class.cooked-measurements.php:39 +msgid "kilograms" +msgstr "kilogrammes" -#: includes/class.cooked-recipe-meta.php:854 -msgid "Servings Switcher" -msgstr "Sélecteur de parts" +#: includes/class.cooked-measurements.php:43 +#: includes/class.cooked-measurements.php:44 +msgid "mg" +msgstr "mg" -#: includes/class.cooked-recipe-meta.php:855 -#: includes/class.cooked-settings.php:139 -#: includes/class.cooked-shortcodes.php:663 -#: includes/class.cooked-shortcodes.php:666 -#: includes/class.cooked-taxonomies.php:45 -msgid "Category" -msgstr "Catégorie" +#: includes/class.cooked-measurements.php:45 +msgid "milligram" +msgstr "milligramme" -#: includes/class.cooked-recipe-meta.php:856 -msgid "Print Mode" -msgstr "Imprimer" +#: includes/class.cooked-measurements.php:46 +msgid "milligrams" +msgstr "milligrammes" -#: includes/class.cooked-recipe-meta.php:857 -msgid "Full-Screen Mode" -msgstr "Mode plein écran" +#: includes/class.cooked-measurements.php:50 +#: includes/class.cooked-measurements.php:51 +msgid "oz" +msgstr "oz" -#: includes/class.cooked-recipe-meta.php:877 -msgid "" -"This will display the list of ingredients, added via the \"Ingredients\" tab." -msgstr "" -"Cela affichera la liste des ingrédients, ajoutés via l’onglet " -"« Ingrédients »." +#: includes/class.cooked-measurements.php:52 +msgid "ounce" +msgstr "once" -#: includes/class.cooked-recipe-meta.php:883 -msgid "This will allow you to hide or show the checkboxes:" -msgstr "Cela vous permettra de masquer ou d’afficher les cases à cocher :" +#: includes/class.cooked-measurements.php:53 +msgid "ounces" +msgstr "onces" -#: includes/class.cooked-recipe-meta.php:893 -msgid "Show checkboxes" -msgstr "Afficher les cases à cocher" +#: includes/class.cooked-measurements.php:57 +#: includes/class.cooked-measurements.php:58 +msgid "fl oz" +msgstr "fl oz" -#: includes/class.cooked-recipe-meta.php:894 -msgid "Hide checkboxes" -msgstr "Masquer les cases à cocher" +#: includes/class.cooked-measurements.php:59 +msgid "fluid ounce" +msgstr "fluid ounce" -#: includes/class.cooked-recipe-meta.php:908 -msgid "" -"This will display the list of directions, added via the \"Directions\" tab." -msgstr "" -"Cela affichera la liste des étapes de la recette, ajoutée via l’onglet " -"« Etapes de la recette »." +#: includes/class.cooked-measurements.php:60 +msgid "fluid ounces" +msgstr "fluid ounces" -#: includes/class.cooked-recipe-meta.php:914 -msgid "This will allow you to hide or show the numbers:" -msgstr "" -"Cela vous permettra de masquer ou d’afficher la numérotaion des étapes :" +#: includes/class.cooked-measurements.php:64 +#: includes/class.cooked-measurements.php:66 +msgid "cup" +msgstr "tasse" + +#: includes/class.cooked-measurements.php:65 +#: includes/class.cooked-measurements.php:67 +msgid "cups" +msgstr "tasses" + +#: includes/class.cooked-measurements.php:71 +#: includes/class.cooked-measurements.php:72 +msgid "tsp" +msgstr "c-à-c" -#: includes/class.cooked-recipe-meta.php:924 -msgid "Show numbers" -msgstr "Afficher la numérotation" +#: includes/class.cooked-measurements.php:73 +msgid "teaspoon" +msgstr "cuillère à café (5ml)" -#: includes/class.cooked-recipe-meta.php:925 -msgid "Hide numbers" -msgstr "Masquer la numérotation" +#: includes/class.cooked-measurements.php:74 +msgid "teaspoons" +msgstr "cuillères à café" -#: includes/class.cooked-recipe-meta.php:938 -msgid "Featured Image" -msgstr "Image mise en avant" +#: includes/class.cooked-measurements.php:78 +#: includes/class.cooked-measurements.php:79 +msgid "tbsp" +msgstr "c-à-s" -#: includes/class.cooked-recipe-meta.php:939 -msgid "This will display the featured image, if one is set." -msgstr "Cela affichera l’image sélectionnée, si elle est définie." +#: includes/class.cooked-measurements.php:80 +msgid "tablespoon" +msgstr "cuillère à soupe (15ml)" -#: includes/class.cooked-recipe-meta.php:949 -#: includes/class.cooked-recipe-meta.php:973 -#: includes/class.cooked-recipe-meta.php:1066 -msgid "None" -msgstr "Aucun" +#: includes/class.cooked-measurements.php:81 +msgid "tablespoons" +msgstr "cuillères à soupe" -#: includes/class.cooked-recipe-meta.php:962 -msgid "Nutrition Label" -msgstr "Étiquette nutritionnelle" +#: includes/class.cooked-measurements.php:85 +#: includes/class.cooked-measurements.php:86 +#, fuzzy +msgid "dl" +msgstr "l" -#: includes/class.cooked-recipe-meta.php:963 -msgid "This will display the Nutrition Facts label, if data is present." -msgstr "" -"Cela affichera l'étiquette de la valeur nutritive, si des données sont " -"présentes." +#: includes/class.cooked-measurements.php:87 +#, fuzzy +msgid "deciliter" +msgstr "litre" -#: includes/class.cooked-recipe-meta.php:989 -msgid "" -"This will display the gallery, if one is set or created from the \"Gallery\" " -"tab." -msgstr "" -"Cela affichera la galerie, si elle est définie ou créée à partir de l’onglet " -"« Galerie »." +#: includes/class.cooked-measurements.php:88 +#, fuzzy +msgid "deciliters" +msgstr "litres" -#: includes/class.cooked-recipe-meta.php:997 -msgid "Set the width of the gallery." -msgstr "Définissez la largeur de la galerie." +#: includes/class.cooked-measurements.php:92 +#: includes/class.cooked-measurements.php:93 +msgid "ml" +msgstr "ml" -#: includes/class.cooked-recipe-meta.php:1004 -msgid "Set the image size ratio." -msgstr "Définissez le rapport de taille d’image." +#: includes/class.cooked-measurements.php:94 +msgid "milliliter" +msgstr "millilitre" -#: includes/class.cooked-recipe-meta.php:1014 -msgid "Set the navigation style." -msgstr "Défissez le style de navigation." +#: includes/class.cooked-measurements.php:95 +msgid "milliliters" +msgstr "millilitres" -#: includes/class.cooked-recipe-meta.php:1021 -msgid "Enable or disable \"Full-Screen\" mode." -msgstr "Activer ou désactiver le mode « Plein écran »." +#: includes/class.cooked-measurements.php:99 +#: includes/class.cooked-measurements.php:100 +msgid "l" +msgstr "l" -#: includes/class.cooked-recipe-meta.php:1034 -#, php-format -msgid "ex: \"%s\" or \"%s\"" -msgstr "ex : « %s » ou « %s »" +#: includes/class.cooked-measurements.php:101 +msgid "liter" +msgstr "litre" -#: includes/class.cooked-recipe-meta.php:1036 -#, php-format -msgid "ex: \"%s\"" -msgstr "ex : « %s »" +#: includes/class.cooked-measurements.php:102 +msgid "liters" +msgstr "litres" -#: includes/class.cooked-recipe-meta.php:1038 -#, php-format -msgid "\"%s\", \"%s\", or \"%s\"" -msgstr "« %s », « %s », ou « %s »" +#: includes/class.cooked-measurements.php:106 +#: includes/class.cooked-measurements.php:108 +msgid "stick" +msgstr "bâton" -#: includes/class.cooked-recipe-meta.php:1040 -#, php-format -msgid "\"%s\" or \"%s\"" -msgstr "« %s » ou « %s »" +#: includes/class.cooked-measurements.php:107 +#: includes/class.cooked-measurements.php:109 +msgid "sticks" +msgstr "bâtons" -#: includes/class.cooked-recipe-meta.php:1056 -msgid "" -"This will display the excerpt, if one is available from the \"Layout & " -"Content\" tab." -msgstr "" -"Cela affichera l’extrait, s’il en existe un dans l’onglet « Mise en page et " -"contenu »." +#: includes/class.cooked-measurements.php:113 +msgid "lb" +msgstr "lb" -#: includes/class.cooked-recipe-meta.php:1080 -msgid "This will display a special link to start a cooking timer." -msgstr "Cela affichera un lien spécial pour démarrer une minuterie de cuisson." +#: includes/class.cooked-measurements.php:114 +msgid "lbs" +msgstr "lbs" -#: includes/class.cooked-recipe-meta.php:1087 -#, php-format -msgid "\"%s\", \"%s\" and \"%s\"" -msgstr "« %s », « %s » et « %s »" +#: includes/class.cooked-measurements.php:115 +msgid "pound" +msgstr "livre" -#: includes/class.cooked-recipe-meta.php:1088 -msgid "Use just one or a combination of all three to set the timer length" -msgstr "" -"Utilisez un seul ou une combinaison des trois pour régler la longueur de la " -"minuterie" +#: includes/class.cooked-measurements.php:116 +msgid "pounds" +msgstr "livres" -#: includes/class.cooked-recipe-meta.php:1095 -msgid "Add a short description for this timer, if applicable." -msgstr "Ajoutez une courte description pour cette minuterie, le cas échéant." +#: includes/class.cooked-measurements.php:120 +#: includes/class.cooked-measurements.php:122 +msgid "dash" +msgstr "pincée" -#: includes/class.cooked-recipe-meta.php:1107 -msgid "Time in seconds" -msgstr "Temps en secondes" +#: includes/class.cooked-measurements.php:121 +#: includes/class.cooked-measurements.php:123 +msgid "dashes" +msgstr "pincées" -#: includes/class.cooked-recipe-meta.php:1108 -msgid "Time in minutes" -msgstr "Temps en minutes" +#: includes/class.cooked-measurements.php:127 +#: includes/class.cooked-measurements.php:129 +msgid "drop" +msgstr "goutte" -#: includes/class.cooked-recipe-meta.php:1109 -msgid "Time in hours" -msgstr "Temps en heures" +#: includes/class.cooked-measurements.php:128 +#: includes/class.cooked-measurements.php:130 +msgid "drops" +msgstr "gouttes" -#: includes/class.cooked-recipe-meta.php:1110 -msgid "Timer Description" -msgstr "Description de la minuterie" +#: includes/class.cooked-measurements.php:134 +msgid "gal" +msgstr "gal" -#: includes/class.cooked-recipes.php:265 includes/class.cooked-recipes.php:319 -#: templates/front/recipe-single.php:46 -#, php-format -msgid "By %s" -msgstr "Par %s" +#: includes/class.cooked-measurements.php:135 +msgid "gals" +msgstr "gals" -#: includes/class.cooked-recipes.php:627 -msgid "Beginner" -msgstr "Facile" +#: includes/class.cooked-measurements.php:136 +msgid "gallon" +msgstr "gallon" -#: includes/class.cooked-recipes.php:628 -msgid "Intermediate" -msgstr "Moyen" +#: includes/class.cooked-measurements.php:137 +msgid "gallons" +msgstr "gallons" -#: includes/class.cooked-recipes.php:629 -msgid "Advanced" -msgstr "Avancé" +#: includes/class.cooked-measurements.php:141 +#: includes/class.cooked-measurements.php:143 +msgid "pinch" +msgstr "pinch" -#: includes/class.cooked-recipes.php:659 -msgid "Cooked Gallery" -msgstr "Galerie de recette" +#: includes/class.cooked-measurements.php:142 +#: includes/class.cooked-measurements.php:144 +msgid "pinches" +msgstr "pinches" -#: includes/class.cooked-recipes.php:663 -msgid "Envira Gallery" -msgstr "Galerie Envira" +#: includes/class.cooked-measurements.php:148 +#: includes/class.cooked-measurements.php:149 +msgid "pt" +msgstr "pt" -#: includes/class.cooked-recipes.php:667 -msgid "Soliloquy Slider" -msgstr "Diaporama Soliloquy" +#: includes/class.cooked-measurements.php:150 +msgid "pint" +msgstr "pint" -#: includes/class.cooked-recipes.php:671 -msgid "Slider Revolution" -msgstr "Slider Revolution" +#: includes/class.cooked-measurements.php:151 +msgid "pints" +msgstr "pints" -#: includes/class.cooked-recipes.php:747 -#, php-format -msgid "Quarter (%s Serving)" -msgid_plural "Quarter (%s Servings)" -msgstr[0] "Quart (%s portion)" -msgstr[1] "Quart (%s portions)" +#: includes/class.cooked-measurements.php:155 +msgid "qt" +msgstr "qt" -#: includes/class.cooked-recipes.php:748 -#, php-format -msgid "Half (%s Serving)" -msgid_plural "Half (%s Servings)" -msgstr[0] "Demi (%s portion)" -msgstr[1] "Demi (%s portions)" +#: includes/class.cooked-measurements.php:156 +msgid "qts" +msgstr "qts" -#: includes/class.cooked-recipes.php:749 -#, php-format -msgid "Default (%s Serving)" -msgid_plural "Default (%s Servings)" -msgstr[0] "Par défaut (%s portion)" -msgstr[1] "Par défaut (%s portions)" +#: includes/class.cooked-measurements.php:157 +msgid "quart" +msgstr "quart" -#: includes/class.cooked-recipes.php:750 -#, php-format -msgid "Double (%s Servings)" -msgstr "Double (%s portions)" +#: includes/class.cooked-measurements.php:158 +msgid "quarts" +msgstr "quarts" -#: includes/class.cooked-recipes.php:751 -#, php-format -msgid "Triple (%s Servings)" -msgstr "Triple (%s portions)" +#: includes/class.cooked-measurements.php:162 +#: includes/class.cooked-measurements.php:163 +msgid "drizzle" +msgstr "" -#: includes/class.cooked-recipes.php:758 -#: includes/class.cooked-shortcodes.php:436 -msgid "Yields" -msgstr "Portions" +#: includes/class.cooked-measurements.php:164 +#: includes/class.cooked-measurements.php:165 +msgid "Drizzle" +msgstr "" -#: includes/class.cooked-recipes.php:760 includes/class.cooked-recipes.php:767 -#, php-format -msgid "%s Serving" -msgid_plural "%s Servings" -msgstr[0] "%s portion" -msgstr[1] "%s portions" +#: includes/class.cooked-measurements.php:169 +#: includes/class.cooked-measurements.php:171 +msgid "clove" +msgstr "" -#: includes/class.cooked-recipes.php:866 -#, php-format -msgid "Step %d" -msgstr "Étape %d" +#: includes/class.cooked-measurements.php:170 +#: includes/class.cooked-measurements.php:172 +msgid "cloves" +msgstr "" -#: includes/class.cooked-recipes.php:917 -msgid "Browse" -msgstr "Parcourir" +#: includes/class.cooked-measurements.php:176 +#: includes/class.cooked-measurements.php:178 +msgid "jar" +msgstr "" -#: includes/class.cooked-recipes.php:931 includes/class.cooked-settings.php:100 -msgid "No categories" -msgstr "Aucune catégories" +#: includes/class.cooked-measurements.php:177 +#: includes/class.cooked-measurements.php:179 +msgid "jars" +msgstr "" -#: includes/class.cooked-recipes.php:934 includes/class.cooked-settings.php:129 -#: includes/class.cooked-taxonomies.php:44 -#: includes/class.cooked-taxonomies.php:54 -msgid "Categories" -msgstr "Catégories" +#: includes/class.cooked-measurements.php:183 +#: includes/class.cooked-measurements.php:185 +msgid "can" +msgstr "" -#: includes/class.cooked-recipes.php:936 -#: includes/class.cooked-taxonomies.php:47 -#: includes/widgets/recipe-categories.php:48 -msgid "All Categories" -msgstr "Toutes les catégories" +#: includes/class.cooked-measurements.php:184 +#: includes/class.cooked-measurements.php:186 +msgid "cans" +msgstr "" -#: includes/class.cooked-recipes.php:999 -msgid "Find a recipe..." -msgstr "Trouvez une recette..." +#: includes/class.cooked-measurements.php:206 +#, fuzzy +msgid "Serving size" +msgstr "Part" -#: includes/class.cooked-recipes.php:1019 -msgid "Newest first" -msgstr "Plus récentes en premier" +#: includes/class.cooked-measurements.php:213 +msgid "Calories" +msgstr "Calories" -#: includes/class.cooked-recipes.php:1023 -msgid "Oldest first" -msgstr "Les plus anciennes en premier" +#: includes/class.cooked-measurements.php:220 +msgid "Total Fat" +msgstr "Graisse totale" -#: includes/class.cooked-recipes.php:1027 -msgid "Alphabetical (A-Z)" -msgstr "Ordre Alphabétique (A-Z)" +#: includes/class.cooked-measurements.php:226 +msgid "Saturated Fat" +msgstr "Acides gras saturés" -#: includes/class.cooked-recipes.php:1031 -msgid "Alphabetical (Z-A)" -msgstr "Ordre Alphabétique (Z-A)" +#: includes/class.cooked-measurements.php:232 +msgid "Trans Fat" +msgstr "Acides gras insaturés" -#: includes/class.cooked-roles.php:40 -msgid "Recipe Editor" -msgstr "Éditeur de recette" +#: includes/class.cooked-measurements.php:233 +#, fuzzy +msgid "Trans Fat" +msgstr "Acides gras insaturés" -#: includes/class.cooked-settings.php:99 -msgid "Choose a page..." -msgstr "Choisir une page…" +#: includes/class.cooked-measurements.php:238 +#, fuzzy +msgid "Monounsaturated Fat" +msgstr "Acides gras saturés" -#: includes/class.cooked-settings.php:99 -msgid "No pages" -msgstr "Aucune page" +#: includes/class.cooked-measurements.php:243 +#, fuzzy +msgid "Polyunsaturated Fat" +msgstr "Acides gras saturés" -#: includes/class.cooked-settings.php:100 -msgid "No default" -msgstr "Pas de choix par défaut" +#: includes/class.cooked-measurements.php:250 +msgid "Cholesterol" +msgstr "Cholesterol" -#: includes/class.cooked-settings.php:106 -msgid "General" -msgstr "Général" +#: includes/class.cooked-measurements.php:256 +msgid "Sodium" +msgstr "Sodium" -#: includes/class.cooked-settings.php:110 -msgid "Browse/Search Recipes Page" -msgstr "Parcourir / Rechercher des pages de recettes" +#: includes/class.cooked-measurements.php:262 +msgid "Total Carbohydrate" +msgstr "Glucides totaux" -#: includes/class.cooked-settings.php:111 -#, php-format -msgid "" -"Create a page with the %s shortcode on it, then choose it from this dropdown." -msgstr "" -"Créez une page avec le shortcode %s, puis sélectionnez-la dans la liste ci-" -"dessous." +#: includes/class.cooked-measurements.php:262 +msgid "Net Carbohydrate" +msgstr "Glucides nets" -#: includes/class.cooked-settings.php:117 -msgid "Recipes Per Page" -msgstr "Nombre de recettes par page" +#: includes/class.cooked-measurements.php:268 +msgid "Dietary Fiber" +msgstr "Fibre alimentaire" -#: includes/class.cooked-settings.php:118 -#, php-format -msgid "" -"Choose the default (set via the %s panel) or choose a different number here." -msgstr "" -"Choisissez la valeur par défaut (définie via le panneau %s) ou indiquez une " -"autre valeur ici." +#: includes/class.cooked-measurements.php:274 +#, fuzzy +msgid "Total Sugars" +msgstr "Glucides totaux" -#: includes/class.cooked-settings.php:118 -msgid "Settings > Reading" -msgstr "Paramètres > Lecture" +#: includes/class.cooked-measurements.php:280 +#, fuzzy +msgid "Added Sugars" +msgstr "Sucre" -#: includes/class.cooked-settings.php:124 -msgid "Recipe Taxonomies" -msgstr "Taxonomies des recettes" +#: includes/class.cooked-measurements.php:288 +msgid "Protein" +msgstr "Protéine" -#: includes/class.cooked-settings.php:125 -msgid "Choose which taxonomies you want to enable for your recipes." -msgstr "" -"Choisissez les taxonomies que vous souhaitez activer pour vos recettes." +#: includes/class.cooked-measurements.php:297 +msgid "Vitamin A" +msgstr "Vitamine A" -#: includes/class.cooked-settings.php:133 -msgid "Global Recipe Toggles" -msgstr "Bascule de la totalité des recettes" +#: includes/class.cooked-measurements.php:303 +msgid "Vitamin C" +msgstr "Vitamine C" -#: includes/class.cooked-settings.php:134 -msgid "" -"You can quickly hide or show different recipe elements (site-wide) with " -"these checkboxes." -msgstr "" -"Vous pouvez masquer ou afficher rapidement différents éléments de recette " -"(sur l’ensemble du site) à l’aide de ces cases à cocher." +#: includes/class.cooked-measurements.php:309 +msgid "Calcium" +msgstr "Calcium" -#: includes/class.cooked-settings.php:149 -msgid "Carbs Format" -msgstr "Format des glucides" +#: includes/class.cooked-measurements.php:315 +msgid "Iron" +msgstr "Fer" -#: includes/class.cooked-settings.php:150 -msgid "You can display carbs as \"Total\" or \"Net\"." -msgstr "Vous pouvez afficher les glucides comme « total » ou « net »." +#: includes/class.cooked-measurements.php:321 +msgid "Potassium" +msgstr "Potassium" -#: includes/class.cooked-settings.php:154 -msgid "Total Carbs" -msgstr "Glucides totaux" +#: includes/class.cooked-measurements.php:327 +msgid "Vitamin D" +msgstr "Vitamine D" -#: includes/class.cooked-settings.php:155 -msgid "Net Carbs" -msgstr "Glucides nets" +#: includes/class.cooked-measurements.php:333 +msgid "Vitamin E" +msgstr "Vitamine E" -#: includes/class.cooked-settings.php:159 -msgid "Author Name Format" -msgstr "Format du nom d'auteur" +#: includes/class.cooked-measurements.php:339 +msgid "Vitamin K" +msgstr "Vitamine K" -#: includes/class.cooked-settings.php:160 -msgid "You can show the full author's name or just a part of it." -msgstr "" -"Vous pouvez afficher le nom complet de l’auteur ou seulement une partie de " -"celui-ci." +#: includes/class.cooked-measurements.php:345 +msgid "Thiamin" +msgstr "Vitamine B1 (Thiamin)" -#: includes/class.cooked-settings.php:164 -msgid "Full name" -msgstr "Nom complet" +#: includes/class.cooked-measurements.php:351 +msgid "Riboflavin" +msgstr "Vitamine B2 (Riboflavine)" -#: includes/class.cooked-settings.php:165 -msgid "Full first name w/last name initial" -msgstr "Prénom complet / 1ère lettre du nom de famille" +#: includes/class.cooked-measurements.php:357 +msgid "Niacin" +msgstr "Vitamine B3 (Niacine)" -#: includes/class.cooked-settings.php:166 -msgid "First name initial w/full last name" -msgstr "1ère lettre du prénom / nom complet" +#: includes/class.cooked-measurements.php:363 +msgid "Vitamin B6" +msgstr "Vitamine B6" -#: includes/class.cooked-settings.php:167 -msgid "First name only" -msgstr "Prénom uniquement" +#: includes/class.cooked-measurements.php:369 +msgid "Folate" +msgstr "Vitamine B9 (Folate)" -#: includes/class.cooked-settings.php:171 -msgid "Author Links" -msgstr "Liens vers l'auteur" +#: includes/class.cooked-measurements.php:375 +msgid "Vitamin B12" +msgstr "Vitamine B12" -#: includes/class.cooked-settings.php:172 -msgid "" -"If you do not want the author names to link to the author recipe listings, " -"you can disable them here." -msgstr "" -"Si vous ne souhaitez pas que les noms des auteurs soient reliés à leurs " -"recettes, vous pouvez les désactiver ici." +#: includes/class.cooked-measurements.php:381 +msgid "Biotin" +msgstr "Vitamine B8 (Biotine)" -#: includes/class.cooked-settings.php:177 -msgid "Disable Author Links" -msgstr "Désactiver les liens vers l’auteur" +#: includes/class.cooked-measurements.php:387 +msgid "Pantothenic Acid" +msgstr "Vitamine B5 (Acide pantothénique)" -#: includes/class.cooked-settings.php:181 -msgid "Default Category" -msgstr "Catégorie par Défaut" +#: includes/class.cooked-measurements.php:393 +msgid "Phosphorus" +msgstr "Phosphore" -#: includes/class.cooked-settings.php:182 -#, php-format -msgid "" -"Optionally set the default recipe category for your %s shortcode display." -msgstr "" -"Si vous le voulez, vous pouvez indiquer une catégorie de recettes qui sera " -"utilisée par défaut avec le shortcode %s." +#: includes/class.cooked-measurements.php:399 +msgid "Iodine" +msgstr "Iode" -#: includes/class.cooked-settings.php:188 -msgid "Default Sort Order" -msgstr "Classement par défaut" +#: includes/class.cooked-measurements.php:405 +msgid "Magnesium" +msgstr "Magnésium" -#: includes/class.cooked-settings.php:189 -#, php-format -msgid "Set the default sort order for your %s shortcode display." -msgstr "" -"Indiquez l'ordre de tri qui sera utilisé par défaut avec avec le shortcode " -"%s." +#: includes/class.cooked-measurements.php:411 +msgid "Zinc" +msgstr "Zinc" -#: includes/class.cooked-settings.php:193 -msgid "Newest First" -msgstr "La plus récente en premier" +#: includes/class.cooked-measurements.php:417 +msgid "Selenium" +msgstr "Sélénium" -#: includes/class.cooked-settings.php:194 -msgid "Oldest First" -msgstr "La plus ancienne en premier" +#: includes/class.cooked-measurements.php:423 +msgid "Copper" +msgstr "Cuivre" -#: includes/class.cooked-settings.php:195 -msgid "Alphabetical" -msgstr "Alphabétique" +#: includes/class.cooked-measurements.php:429 +msgid "Manganese" +msgstr "Manganèse" -#: includes/class.cooked-settings.php:196 -msgid "Alphabetical (reversed)" -msgstr "Alphabétique (inversé)" +#: includes/class.cooked-measurements.php:435 +msgid "Chromium" +msgstr "Chromium" -#: includes/class.cooked-settings.php:200 -msgid "Advanced Settings" -msgstr "Paramètres Avancés" +#: includes/class.cooked-measurements.php:441 +msgid "Molybdenum" +msgstr "Molybdène" -#: includes/class.cooked-settings.php:207 -msgid "Disable Public Recipes" -msgstr "Désactiver les recettes publiques" +#: includes/class.cooked-measurements.php:447 +msgid "Chloride" +msgstr "Chlorure" -#: includes/class.cooked-settings.php:207 +#: includes/class.cooked-measurements.php:703 +#: includes/class.cooked-measurements.php:714 +#: includes/class.cooked-measurements.php:732 #, php-format -msgid "Only show recipes using the %s shortcode." -msgstr "Afficher uniquement les recettes en utilisant le shortcode %s." +msgid "%d min" +msgstr "%d min" -#: includes/class.cooked-settings.php:208 +#: includes/class.cooked-measurements.php:703 +#: includes/class.cooked-measurements.php:714 +#: includes/class.cooked-measurements.php:732 #, php-format -msgid "Disable %s Tags" -msgstr "Désactiver les mots-clés %s" +msgid "%d mins" +msgstr "%d mins" -#: includes/class.cooked-settings.php:208 -msgid "Prevents duplicates when tags already exist." -msgstr "Empêcher les doublons lorsque les mots-clés existent déjà." +#: includes/class.cooked-measurements.php:712 +#: includes/class.cooked-measurements.php:730 +#, php-format +msgid "%d hr" +msgstr "%d h" -#: includes/class.cooked-settings.php:209 -msgid "Disable \"Servings Switcher\"" -msgstr "Désactiver le \"Sélecteur de parts\"" +#: includes/class.cooked-measurements.php:712 +#: includes/class.cooked-measurements.php:730 +#, php-format +msgid "%d hrs" +msgstr "%d h" -#: includes/class.cooked-settings.php:209 -msgid "Removes the servings dropdown on recipes." -msgstr "" -"Supprimer la liste déroulante indiquant le nombre de parts sur les recettes." +#: includes/class.cooked-measurements.php:728 +#, php-format +msgid "%d day" +msgstr "%d jour" -#: includes/class.cooked-settings.php:210 -msgid "Disable Recipe Schema Output" -msgstr "Désactiver la sortie de schéma de recette" +#: includes/class.cooked-measurements.php:728 +#, php-format +msgid "%d days" +msgstr "%d jours" -#: includes/class.cooked-settings.php:210 +#: includes/class.cooked-shortcodes.php:149 +#, php-format msgid "" -"You should only do this if you're using something else to output schema " -"information." +"Public recipes are currently disabled. You can change this at the bottom of " +"the %s page." msgstr "" -"Vous ne devriez le faire que si vous utilisez autre chose pour produire des " -"informations sur les schémas." +"Les recettes publiques sont actuellement désactivées. Vous pouvez le " +"modifier en bas de la page %s." -#: includes/class.cooked-settings.php:216 -msgid "Design" -msgstr "Design" +#: includes/class.cooked-shortcodes.php:297 +msgid "(recipe not found or in draft status)" +msgstr "(recette introuvable ou en statut brouillon)" -#: includes/class.cooked-settings.php:220 -msgid "Dark Mode" -msgstr "Mode sombre" +#: includes/class.cooked-shortcodes.php:447 +#: includes/class.cooked-recipes.php:792 +msgid "Yields" +msgstr "Portions" -#: includes/class.cooked-settings.php:221 -msgid "" -"If your site has a dark background, you should enable \"Dark Mode\" so that " -"Cooked can match this style." -msgstr "" -"Si votre site a un fond arrière-plan sombre, vous devez activer le \"Mode " -"sombre\" afin que Cooked puisse s'adapter à votre style." +#: includes/class.cooked-shortcodes.php:661 +#, fuzzy +msgid "Fullscreen" +msgstr "Mode plein écran" -#: includes/class.cooked-settings.php:225 -msgid "Enable \"Dark Mode\"" -msgstr "Activer \"Mode sombre\"" +#: includes/class.cooked-admin-enqueues.php:137 +msgid "remaining" +msgstr "restant" -#: includes/class.cooked-settings.php:229 -msgid "Author Images" -msgstr "Images de l’auteur" +#: includes/class.cooked-admin-enqueues.php:140 +msgid "Use this Image" +msgstr "Utiliser cette image" + +#: includes/class.cooked-admin-enqueues.php:142 +msgid "Edit Gallery Item" +msgstr "Modifier un élément de la galerie" + +#: includes/class.cooked-admin-enqueues.php:143 +msgid "Update Gallery Item" +msgstr "Mettre à jour l'élément de galerie" + +#: includes/class.cooked-admin-enqueues.php:144 +msgid "Saved" +msgstr "Sauvegarder" + +#: includes/class.cooked-admin-enqueues.php:145 +msgid "Applied" +msgstr "Appliquer" -#: includes/class.cooked-settings.php:230 +#: includes/class.cooked-admin-enqueues.php:146 msgid "" -"If you do not want to display the author images (avatars), you can disable " -"them here." +"Are you sure you want to apply this new template to all of your recipes?" msgstr "" -"Si vous ne voulez pas afficher les images des auteurs (avatars), faites-le " -"ici." - -#: includes/class.cooked-settings.php:235 -msgid "Hide Author Images" -msgstr "Masquer l'avatar de l’auteur" +"Êtes-vous sûr de vouloir appliquer ce nouveau modèle à toutes vos recettes ?" -#: includes/class.cooked-settings.php:239 -msgid "Main Color" -msgstr "Couleur Principale" +#: includes/class.cooked-admin-enqueues.php:147 +msgid "" +"Are you sure you want to reset this recipe template to the Cooked plugin " +"default?" +msgstr "" +"Êtes-vous sûr de vouloir réinitialiser ce modèle de recette par celui du " +"plugin Cooked par défaut ?" -#: includes/class.cooked-settings.php:240 -msgid "Used on buttons, cooking timer, etc." -msgstr "Utilisée sur les boutons, minuteur, etc.." +#: includes/class.cooked-admin-enqueues.php:149 +#, php-format +msgid "Please confirm that you are ready to migrate all %s recipes." +msgstr "Veuillez confirmer que vous êtes prêt à migrer toutes les recettes %s." -#: includes/class.cooked-settings.php:246 -msgid "Main Color (on hover)" -msgstr "Couleur Principale (au survol)" +#: includes/class.cooked-admin-enqueues.php:150 +#, fuzzy +msgid "Please confirm that you are ready to import all recipes." +msgstr "Veuillez confirmer que vous êtes prêt à migrer toutes les recettes %s." -#: includes/class.cooked-settings.php:247 -msgid "Used when hovering over buttons." -msgstr "Utilisée lorsque vous passez la souris sur les boutons." +#: includes/class.cooked-admin-enqueues.php:151 +#, fuzzy +msgid "Are you sure you want to import recipes from this CSV file?" +msgstr "" +"Êtes-vous sûr de vouloir réinitialiser ce modèle de recette par celui du " +"plugin Cooked par défaut ?" -#: includes/class.cooked-settings.php:253 -msgid "First Responsive Breakpoint" -msgstr "Premier Point de rupture Responsive" +#: includes/class.cooked-admin-enqueues.php:152 +msgid "Please select a CSV file." +msgstr "" -#: includes/class.cooked-settings.php:254 -msgid "Set the first responsive breakpoint. Best for large tablets." +#: includes/class.cooked-admin-enqueues.php:153 +msgid "Please select a valid CSV file." msgstr "" -"Définissez le premier point de rupture responsive. Utilisé pour les grandes " -"tablettes." -#: includes/class.cooked-settings.php:260 -msgid "Second Responsive Breakpoint" -msgstr "Second Point de rupture Responsive" +#: includes/class.cooked-admin-enqueues.php:154 +msgid "Uploading..." +msgstr "" -#: includes/class.cooked-settings.php:261 -msgid "Set the second responsive breakpoint. Best for small tablets." +#: includes/class.cooked-admin-enqueues.php:155 +msgid "Processing..." msgstr "" -"Définissez le deuxième point de rupture responsive. Utilisé pour les petites " -"tablettes." -#: includes/class.cooked-settings.php:267 -msgid "Third Responsive Breakpoint" -msgstr "Troisième Point de rupture Responsive" +#: includes/class.cooked-admin-enqueues.php:156 +#, fuzzy +msgid "recipes imported" +msgstr "Modèle de recette" -#: includes/class.cooked-settings.php:268 -msgid "" -"Set the third responsive breakpoint. Best for phones and other small devices." +#: includes/class.cooked-admin-enqueues.php:157 +msgid "Errors:" msgstr "" -"Définissez le troisième point de rupture responsive. Utilisé pour les " -"smartphones." - -#: includes/class.cooked-settings.php:276 -msgid "Permalinks" -msgstr "Permaliens" -#: includes/class.cooked-settings.php:280 -msgid "Recipe Permalink" -msgstr "Permalien de la recette" +#: includes/class.cooked-admin-enqueues.php:158 +msgid "Import failed." +msgstr "" -#: includes/class.cooked-settings.php:283 -msgid "recipe-name" -msgstr "nom-de-la-recette" +#: includes/class.cooked-admin-enqueues.php:159 +msgid "Failed to process CSV file." +msgstr "" -#: includes/class.cooked-settings.php:287 -msgid "Recipe Author Permalink" -msgstr "Permalien de l’auteur de la recette" +#: includes/class.cooked-admin-enqueues.php:160 +msgid "Failed to upload CSV file." +msgstr "" -#: includes/class.cooked-settings.php:290 -msgid "author-name" -msgstr "nom-de-l-auteur" +#: includes/class.cooked-admin-enqueues.php:162 +msgid "Something went wrong" +msgstr "" -#: includes/class.cooked-settings.php:294 -msgid "Recipe Category Permalink" -msgstr "Permalien de la catégorie de recette" +#: includes/class.cooked-admin-enqueues.php:163 +#, fuzzy +msgid "hrs" +msgstr "%d h" -#: includes/class.cooked-settings.php:297 -msgid "recipe-category-name" -msgstr "nom-categorie-recette" +#: includes/class.cooked-admin-enqueues.php:164 +#, fuzzy +msgid "mins" +msgstr "%d mins" -#: includes/class.cooked-settings.php:310 +#: includes/class.cooked-recipes.php:209 #, php-format -msgid "WordPress Default %s" -msgstr "WordPress par défaut %s" - -#: includes/class.cooked-settings.php:315 -msgid "Show All (no pagination)" -msgstr "Afficher tout (sans pagination)" - -#: includes/class.cooked-settings.php:448 -msgid "Begin Migration" -msgstr "Commencez la migration" +msgid " AND ( %s OR %s ) " +msgstr "" -#: includes/class.cooked-settings.php:453 -msgid "reload" -msgstr "recharger" +#: includes/class.cooked-recipes.php:268 includes/class.cooked-recipes.php:322 +#, php-format +msgid "By %s" +msgstr "Par %s" -#: includes/class.cooked-shortcodes.php:109 +#: includes/class.cooked-recipes.php:384 #, php-format -msgid "" -"Public recipes are currently disabled. You can change this at the bottom of " -"the %s page." +msgid "All %s" msgstr "" -"Les recettes publiques sont actuellement désactivées. Vous pouvez le " -"modifier en bas de la page %s." -#: includes/class.cooked-shortcodes.php:276 -msgid "(recipe not found or in draft status)" -msgstr "(recette introuvable ou en statut brouillon)" +#: includes/class.cooked-recipes.php:651 +msgid "Beginner" +msgstr "Facile" -#: includes/class.cooked-taxonomies.php:46 -msgid "Search Categories" -msgstr "Rechercher des catégories" +#: includes/class.cooked-recipes.php:652 +msgid "Intermediate" +msgstr "Moyen" -#: includes/class.cooked-taxonomies.php:48 -#: includes/widgets/recipe-categories.php:45 -msgid "Parent Category" -msgstr "Catégorie parente" +#: includes/class.cooked-recipes.php:653 +msgid "Advanced" +msgstr "Avancé" -#: includes/class.cooked-taxonomies.php:49 -msgid "Parent Category:" -msgstr "Catégorie parente :" +#: includes/class.cooked-recipes.php:679 +msgid "Cooked Gallery" +msgstr "Galerie de recette" -#: includes/class.cooked-taxonomies.php:50 -msgid "Edit Category" -msgstr "Modifier la catégorie" +#: includes/class.cooked-recipes.php:683 +msgid "Envira Gallery" +msgstr "Galerie Envira" -#: includes/class.cooked-taxonomies.php:51 -msgid "Update Category" -msgstr "Mise à jour de la catégorie" +#: includes/class.cooked-recipes.php:687 +msgid "Soliloquy Slider" +msgstr "Diaporama Soliloquy" -#: includes/class.cooked-taxonomies.php:52 -msgid "Add New Category" -msgstr "Ajouter une nouvelle catégorie" +#: includes/class.cooked-recipes.php:691 +msgid "Slider Revolution" +msgstr "Slider Revolution" -#: includes/class.cooked-taxonomies.php:53 -msgid "New Category Name" -msgstr "Nom de la nouvelle catégorie" +#: includes/class.cooked-recipes.php:766 +#, fuzzy, php-format +msgid "Quarter (%s Serving)" +msgstr "Quart (%s portion)" -#: includes/class.cooked-taxonomies.php:55 -msgid "No Categories" -msgstr "Aucune catégorie" +#: includes/class.cooked-recipes.php:769 +#, fuzzy, php-format +msgid "Half (%s Serving)" +msgstr "Demi (%s portion)" + +#: includes/class.cooked-recipes.php:772 +#, fuzzy, php-format +msgid "Default (%s Serving)" +msgstr "Par défaut (%s portion)" -#: includes/class.cooked-taxonomies.php:144 +#: includes/class.cooked-recipes.php:775 #, php-format -msgid "%s Recipe" -msgid_plural "%s Recipes" -msgstr[0] "%s recette" -msgstr[1] "%s recettes" +msgid "Double (%s Servings)" +msgstr "Double (%s portions)" -#: includes/class.cooked-widgets.php:37 -msgid "Edit Recipe(s)..." -msgstr "Éditer recette(s)..." +#: includes/class.cooked-recipes.php:778 +#, php-format +msgid "Triple (%s Servings)" +msgstr "Triple (%s portions)" -#: includes/class.cooked-widgets.php:37 includes/class.cooked-widgets.php:39 -msgid "Choose recipe(s)..." -msgstr "Choisir recette(s)..." +#: includes/class.cooked-recipes.php:796 includes/class.cooked-recipes.php:807 +#, fuzzy, php-format +msgid "%s Serving" +msgstr "%s portion" -#: includes/widgets/nutrition.php:31 includes/widgets/search.php:37 -msgid "Title (optional):" -msgstr "Titre (facultatif) :" +#: includes/class.cooked-recipes.php:904 includes/class.cooked-recipes.php:918 +msgid "or" +msgstr "" -#: includes/widgets/recipe-card.php:83 -#: includes/widgets/recipe-categories.php:40 -#: includes/widgets/recipe-list.php:47 -msgid "Widget Title (optional):" -msgstr "Nom du Widget (facultatif) :" +#: includes/class.cooked-recipes.php:1022 +msgid "Browse" +msgstr "Parcourir" -#: includes/widgets/recipe-card.php:88 -msgid "Recipe:" -msgstr "Recette :" +#: includes/class.cooked-recipes.php:1114 +msgid "Find a recipe..." +msgstr "Trouvez une recette..." -#: includes/widgets/recipe-card.php:97 -msgid "Style:" -msgstr "Style :" +#: includes/class.cooked-recipes.php:1116 +#, fuzzy +msgid "Search" +msgstr "Rechercher des recettes" -#: includes/widgets/recipe-card.php:99 -msgid "Simple" -msgstr "Simple" +#: includes/class.cooked-recipes.php:1129 +msgid "Newest first" +msgstr "Plus récentes en premier" -#: includes/widgets/recipe-card.php:100 -msgid "Simple Centered" -msgstr "Simple centré" +#: includes/class.cooked-recipes.php:1133 +msgid "Oldest first" +msgstr "Les plus anciennes en premier" -#: includes/widgets/recipe-card.php:101 -msgid "Modern" -msgstr "Moderne" +#: includes/class.cooked-recipes.php:1137 +msgid "Alphabetical (A-Z)" +msgstr "Ordre Alphabétique (A-Z)" -#: includes/widgets/recipe-card.php:102 -msgid "Modern Centered" -msgstr "Moderne centré" +#: includes/class.cooked-recipes.php:1141 +msgid "Alphabetical (Z-A)" +msgstr "Ordre Alphabétique (Z-A)" -#: includes/widgets/recipe-card.php:107 includes/widgets/recipe-list.php:82 -msgid "Width:" -msgstr "Largeur :" +#: includes/class.cooked-updates.php:118 +#, php-format +msgid "Cooked: Updated from version %s to %s" +msgstr "" -#: includes/widgets/recipe-card.php:113 includes/widgets/recipe-list.php:88 -msgid "Hide Image" -msgstr "Masquer l'image" +#: includes/class.cooked-updates.php:134 +#, php-format +msgid "Cooked: Error running update method %s: %s" +msgstr "" -#: includes/widgets/recipe-card.php:118 -msgid "Hide Title" -msgstr "Masquer le titre" +#: includes/class.cooked-updates.php:248 +#, php-format +msgid "" +"Cooked: Fixed line endings in %d recipes for WordPress exporter/importer " +"compatibility." +msgstr "" -#: includes/widgets/recipe-card.php:123 includes/widgets/recipe-list.php:93 -msgid "Hide Author" -msgstr "Masquer l'auteur" +#: includes/class.cooked-migration.php:47 +#, fuzzy, php-format +msgid "" +"There is %1$s recipe that should be migrated from %2$s to take advantage of " +"new features and reliability." +msgstr "" +"Il y a %s recette qui devrait être migrée depuis %s pour tirer parti des " +"nouvelles fonctionnalités et de la fiabilité." -#: includes/widgets/recipe-card.php:128 -msgid "Hide Excerpt" -msgstr "Masquer l'extrait" +#: includes/class.cooked-migration.php:49 +msgid "" +"Please click the button below to migrate these recipes. Here is what will " +"happen to your recipes:" +msgstr "" +"Veuillez cliquer sur le bouton ci-dessous pour migrer ces recettes. Voici ce " +"qui va arriver à vos recettes :" -#: includes/widgets/recipe-categories.php:58 -msgid "Hide Empty Categories" -msgstr "Masquer les catégories vides" +#: includes/class.cooked-migration.php:51 +msgid "NO DATA LOSS, all fields will be remapped." +msgstr "AUCUNE PERTE DE DONNÉES, tous les champs seront réaffectés." -#: includes/widgets/recipe-list.php:52 -msgid "Sorted by:" -msgstr "Trier par :" +#: includes/class.cooked-migration.php:52 +msgid "Remapped fields will greatly speed up recipe loading times." +msgstr "" +"Les champs réaffectés vont grandement accélérer les temps de chargement des " +"recettes." -#: includes/widgets/recipe-list.php:54 -msgid "Most Recent" -msgstr "Plus récents" +#: includes/class.cooked-migration.php:53 +msgid "" +"If recipe excerpt exists, the short description will be moved to the top of " +"the recipe template." +msgstr "" +"Si l'extrait de recette existe, la description courte sera déplacée vers le " +"haut du modèle de recette." -#: includes/widgets/recipe-list.php:55 -msgid "Choose Recipes" -msgstr "Choisir une recette(s)" +#: includes/class.cooked-migration.php:54 +msgid "" +"If no recipe excerpt exists, the short description will be used instead." +msgstr "" +"Si aucun extrait de recette n'existe, la description courte sera utilisée à " +"la place." -#: includes/widgets/recipe-list.php:61 -msgid "Show:" -msgstr "Afficher :" +#: includes/class.cooked-migration.php:55 +msgid "Version number will be applied to each recipe." +msgstr "Le numéro de version sera appliqué à chaque recette." -#: includes/widgets/recipe-list.php:72 -msgid "Recipes:" -msgstr "Recettes :" +#: includes/class.cooked-migration.php:65 +msgid "Migration" +msgstr "Migration" -#: includes/widgets/search.php:42 -msgid "Size:" -msgstr "Taille :" +#: includes/class.cooked-migration.php:90 +#, fuzzy, php-format +msgid "" +"There is %1$s recipe that is from an older version of Cooked. Please %2$s to " +"migrate this recipe." +msgstr "" +"Il y a %s recette qui provient d'une ancienne version de Cooked. S'il vous " +"plaît %s pour migrer cette recette." -#: includes/widgets/search.php:44 -msgid "Compact" -msgstr "Compact" +#: includes/class.cooked-migration.php:90 +msgid "click here" +msgstr "cliquez ici" -#: includes/widgets/search.php:45 -msgid "Wide" -msgstr "Large" +#~ msgid "New" +#~ msgstr "Nouveau" -#: includes/widgets/search.php:51 -msgid "Hide \"Browse\" dropdown" -msgstr "Masquer \"Parcourir\" la liste déroulante" +#~ msgid "Tweak" +#~ msgstr "Finaliser" -#: includes/widgets/search.php:56 -msgid "Hide \"Sorting\" dropdown" -msgstr "Masquer \"Tri\" du menu déroulant" +#~ msgid "Fixed" +#~ msgstr "Fixer" + +#~ msgctxt "Grams Abbreviation (Plural)" +#~ msgid "g" +#~ msgstr "g" + +#~ msgctxt "Kilograms Abbreviation (Plural)" +#~ msgid "kg" +#~ msgstr "kg" + +#~ msgid "Calories from Fat" +#~ msgstr "Calories provenant des lipides" + +#~ msgid "" +#~ "Percent Daily Values are based on a 2,000 calorie diet. Your daily value " +#~ "may be higher or lower depending on your calorie needs." +#~ msgstr "" +#~ "* Le pourcentage de la valeur quotidienne est basée sur un régime de 2000 " +#~ "calories. Vos valeurs quotidiennes peuvent être supérieures ou " +#~ "inférieures selon vos besoins caloriques." -#: templates/admin/pro.php:8 #, php-format -msgid "Ready for %s?" -msgstr "Prêt pour %s ?" +#~ msgid "Ready for %s?" +#~ msgstr "Prêt pour %s ?" -#: templates/admin/pro.php:9 #, php-format -msgid "" -"The %s upgrade adds loads of new features like ratings, favorites, user " -"profiles and more. Check out the list below for all of the details." -msgstr "" -"La mise à niveau de %s ajoute de nombreuses nouvelles fonctionnalités telles " -"que les classements, les favoris, les profils utilisateur et plus encore. " -"Consultez la liste ci-dessous pour tous les détails." +#~ msgid "" +#~ "The %s upgrade adds loads of new features like ratings, favorites, user " +#~ "profiles and more. Check out the list below for all of the details." +#~ msgstr "" +#~ "La mise à niveau de %s ajoute de nombreuses nouvelles fonctionnalités " +#~ "telles que les classements, les favoris, les profils utilisateur et plus " +#~ "encore. Consultez la liste ci-dessous pour tous les détails." -#: templates/admin/pro.php:17 -msgid "Premium Support" -msgstr "Assistance Premium" +#~ msgid "Premium Support" +#~ msgstr "Assistance Premium" -#: templates/admin/pro.php:18 -msgid "User Profiles" -msgstr "Profils utilisateurs" +#~ msgid "User Profiles" +#~ msgstr "Profils utilisateurs" -#: templates/admin/pro.php:19 -msgid "User Ratings" -msgstr "Évaluations du visiteur" +#~ msgid "User Ratings" +#~ msgstr "Évaluations du visiteur" -#: templates/admin/pro.php:20 -msgid "User Favorites" -msgstr "Recettes favorites" +#~ msgid "User Favorites" +#~ msgstr "Recettes favorites" -#: templates/admin/pro.php:21 -msgid "Ingredient Links" -msgstr "Liens vers un ingrédient" +#~ msgid "Ingredient Links" +#~ msgstr "Liens vers un ingrédient" -#: templates/admin/pro.php:24 -msgid "Social Sharing" -msgstr "Réseaux sociaux" +#~ msgid "Social Sharing" +#~ msgstr "Réseaux sociaux" -#: templates/admin/pro.php:25 -msgid "Recipe Submissions" -msgstr "Proposition de recettes" +#~ msgid "Recipe Submissions" +#~ msgstr "Proposition de recettes" -#: templates/admin/pro.php:26 -msgid "Modern Grid Layout" -msgstr "Disposition en grille moderne" +#~ msgid "Modern Grid Layout" +#~ msgstr "Disposition en grille moderne" -#: templates/admin/pro.php:27 -msgid "Full-Width Layout" -msgstr "Affichage pleine largeur" +#~ msgid "Full-Width Layout" +#~ msgstr "Affichage pleine largeur" -#: templates/admin/pro.php:28 -msgid "Pagination Options" -msgstr "Pagination numérotée" +#~ msgid "Pagination Options" +#~ msgstr "Pagination numérotée" -#: templates/admin/pro.php:31 -msgid "Compact List Layout" -msgstr "Affichage en liste compacte" +#~ msgid "Compact List Layout" +#~ msgstr "Affichage en liste compacte" -#: templates/admin/pro.php:32 -msgid "Fitness Layout" -msgstr "Mise en forme style Fitness" +#~ msgid "Fitness Layout" +#~ msgstr "Mise en forme style Fitness" -#: templates/admin/pro.php:33 -msgid "Cuisines" -msgstr "Styles de cuisine" +#~ msgid "Cuisines" +#~ msgstr "Styles de cuisine" -#: templates/admin/pro.php:34 -msgid "Cooking Methods" -msgstr "Modes de cuisson" +#~ msgid "Cooking Methods" +#~ msgstr "Modes de cuisson" -#: templates/admin/pro.php:35 -msgid "Tags" -msgstr "Mots-clés" +#~ msgid "Tags" +#~ msgstr "Mots-clés" -#: templates/admin/pro.php:39 #, php-format -msgid "Get %s" -msgstr "Obtenir %s" +#~ msgid "Get %s" +#~ msgstr "Obtenir %s" -#: templates/admin/pro.php:40 #, php-format -msgid "Use coupon code %s for %s off!" -msgstr "Utilisez le code promo %s pour %s de réduction !" +#~ msgid "Use coupon code %s for %s off!" +#~ msgstr "Utilisez le code promo %s pour %s de réduction !" -#: templates/admin/settings.php:16 -msgid "Update Settings" -msgstr "Mettre à jour les paramètres" +#~ msgid "Update Settings" +#~ msgstr "Mettre à jour les paramètres" -#: templates/admin/settings.php:20 templates/admin/welcome.php:18 -msgid "Cooked Settings" -msgstr "Configuration de Cooked" +#~ msgid "Cooked Settings" +#~ msgstr "Configuration de Cooked" -#: templates/admin/welcome.php:8 #, php-format -msgid "Thanks for using %s!" -msgstr "Merci d'utiliser %s !" +#~ msgid "Thanks for using %s!" +#~ msgstr "Merci d'utiliser %s !" -#: templates/admin/welcome.php:9 #, php-format -msgid "" -"If this is your first time using %s, head over to the %s page for some " -"initial configuration. You can also check out the %s if you get stuck. If " -"you just recently updated, you can find out what's new below." -msgstr "" -"Si c’est la première fois que vous utilisez %s, rendez-vous sur la page %s " -"pour une configuration initiale. Vous pouvez également consulter les %s si " -"vous êtes bloqué. Si vous venez de mettre à jour récemment, vous pouvez " -"découvrir les nouveautés ci-dessous." +#~ msgid "" +#~ "If this is your first time using %s, head over to the %s page for some " +#~ "initial configuration. You can also check out the %s if you get stuck. If " +#~ "you just recently updated, you can find out what's new below." +#~ msgstr "" +#~ "Si c’est la première fois que vous utilisez %s, rendez-vous sur la page " +#~ "%s pour une configuration initiale. Vous pouvez également consulter les " +#~ "%s si vous êtes bloqué. Si vous venez de mettre à jour récemment, vous " +#~ "pouvez découvrir les nouveautés ci-dessous." -#: templates/admin/welcome.php:9 -msgid "documentation" -msgstr "documentation" +#~ msgid "documentation" +#~ msgstr "documentation" -#: templates/admin/welcome.php:15 -msgid "Quick Links" -msgstr "Liens rapides" +#~ msgid "Quick Links" +#~ msgstr "Liens rapides" -#: templates/admin/welcome.php:17 -msgid "Documentation" -msgstr "Documentation" +#~ msgid "Documentation" +#~ msgstr "Documentation" -#: templates/admin/welcome.php:19 -msgid "Create a Recipe" -msgstr "Créer une recette" +#~ msgid "Create a Recipe" +#~ msgstr "Créer une recette" -#: templates/front/recipe-list.php:36 #, php-format -msgid "Recipes by %s" -msgstr "Recettes de %s" - -#: templates/front/recipe-list.php:37 -msgid "View all recipes" -msgstr "Voir toutes les recettes" +#~ msgid "Recipes by %s" +#~ msgstr "Recettes de %s" -#. Plugin Name of the plugin/theme -msgid "Cooked" -msgstr "Cooked" +#~ msgid "Cooked" +#~ msgstr "Cooked" -#. Plugin URI of the plugin/theme -msgid "https://cooked.pro" -msgstr "https://cooked.pro" +#~ msgid "https://cooked.pro" +#~ msgstr "https://cooked.pro" -#. Description of the plugin/theme -msgid "A recipe plugin for WordPress." -msgstr "Un plugin de recette pour WordPress." +#~ msgid "A recipe plugin for WordPress." +#~ msgstr "Un plugin de recette pour WordPress." -#. Author of the plugin/theme -msgid "Gora Tech" -msgstr "Gora Tech" +#~ msgid "Gora Tech" +#~ msgstr "Gora Tech" -#. Author URI of the plugin/theme -msgid "https://goratech.dev" -msgstr "https://goratech.dev" +#~ msgid "https://goratech.dev" +#~ msgstr "https://goratech.dev" #~ msgid "Restricted Diets" #~ msgstr "Régimes restreints" diff --git a/languages/cooked.po b/languages/cooked.po index 30ec0c0..f98575b 100644 --- a/languages/cooked.po +++ b/languages/cooked.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cooked\n" -"POT-Creation-Date: 2025-12-28T15:29:21-05:00\n" +"POT-Creation-Date: 2026-01-09 20:03+0200\n" "PO-Revision-Date: 2024-11-14T10:43:07-05:00\n" "Last-Translator: \n" "Language-Team: \n" @@ -11,883 +11,933 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#. Plugin Name of the plugin -#: cooked.php -msgid "Cooked - Recipe Management" +#: includes/class.cooked-csv-import.php:39 +msgid "Cooked_Recipes class not found. Plugin may not be properly loaded." msgstr "" -#. Plugin URI of the plugin -#: cooked.php -msgid "https://wordpress.org/plugins/cooked/" +#: includes/class.cooked-csv-import.php:44 +msgid "Cooked_Measurements class not found. Plugin may not be properly loaded." msgstr "" -#. Description of the plugin -#: cooked.php -msgid "A recipe plugin for WordPress." +#: includes/class.cooked-csv-import.php:49 +msgid "Cooked_Recipe_Meta class not found. Plugin may not be properly loaded." msgstr "" -#. Author of the plugin -#: cooked.php -msgid "Gora Tech" +#: includes/class.cooked-csv-import.php:54 +msgid "CSV file not found." msgstr "" -#. Author URI of the plugin -#: cooked.php -msgid "https://goratech.dev" +#: includes/class.cooked-csv-import.php:61 +msgid "Could not open CSV file." msgstr "" -#: includes/class.cooked-admin-enqueues.php:137 -msgid "remaining" +#: includes/class.cooked-csv-import.php:68 +msgid "CSV file is empty or invalid." msgstr "" -#: includes/class.cooked-admin-enqueues.php:138 -#: includes/class.cooked-recipe-meta.php:739 -#: includes/class.cooked-recipe-meta.php:794 -#: includes/class.cooked-recipe-meta.php:834 -msgid "Add Image" +#: includes/class.cooked-csv-import.php:79 +msgid "CSV file must contain a \"title\" column." msgstr "" -#: includes/class.cooked-admin-enqueues.php:139 -#: includes/class.cooked-recipe-meta.php:739 -msgid "Change Image" +#: includes/class.cooked-csv-import.php:106 +msgid "Unknown error" msgstr "" -#: includes/class.cooked-admin-enqueues.php:140 -msgid "Use this Image" +#: includes/class.cooked-csv-import.php:107 +#: includes/class.cooked-csv-import.php:114 +#, php-format +msgid "Row %d: %s" msgstr "" -#: includes/class.cooked-admin-enqueues.php:141 -#: includes/class.cooked-recipe-meta.php:1066 -msgid "Add to Gallery" +#: includes/class.cooked-csv-import.php:140 +msgid "Title is required" msgstr "" -#: includes/class.cooked-admin-enqueues.php:142 -msgid "Edit Gallery Item" +#: includes/class.cooked-csv-import.php:323 +#: includes/class.cooked-recipe-meta.php:157 +#: includes/class.cooked-recipe-meta.php:244 +#: includes/class.cooked-recipe-meta.php:1144 +#: includes/class.cooked-functions.php:134 includes/class.cooked-ajax.php:180 +#: includes/class.cooked-recipes.php:636 +msgid "Ingredients" msgstr "" -#: includes/class.cooked-admin-enqueues.php:143 -msgid "Update Gallery Item" +#: includes/class.cooked-csv-import.php:323 +#: includes/class.cooked-recipe-meta.php:157 +#: includes/class.cooked-recipe-meta.php:250 +#: includes/class.cooked-recipe-meta.php:1175 +#: includes/class.cooked-functions.php:135 includes/class.cooked-ajax.php:180 +#: includes/class.cooked-recipes.php:640 +msgid "Directions" msgstr "" -#: includes/class.cooked-admin-enqueues.php:144 -msgid "Saved" +#: includes/class.cooked-yoastseo.php:33 +#: includes/class.cooked-rankmathseo.php:37 +msgid "Current recipe category being viewed." msgstr "" -#: includes/class.cooked-admin-enqueues.php:145 -msgid "Applied" +#: includes/class.cooked-recipe-meta.php:98 +#: includes/class.cooked-admin-menus.php:45 +#: includes/class.cooked-admin-menus.php:65 +#: includes/class.cooked-shortcodes.php:149 +msgid "Settings" msgstr "" -#: includes/class.cooked-admin-enqueues.php:146 -msgid "" -"Are you sure you want to apply this new template to all of your recipes?" +#: includes/class.cooked-recipe-meta.php:202 +msgid "Display Recipe" msgstr "" -#: includes/class.cooked-admin-enqueues.php:147 +#: includes/class.cooked-recipe-meta.php:203 msgid "" -"Are you sure you want to reset this recipe template to the Cooked plugin " -"default?" +"This shortcode displays the recipe in its entirety, using the \"Recipe " +"Template\" field in the first tab." msgstr "" -#. translators: confirmation for migrating all ### recipes, where ### displays the total number for the migration. -#: includes/class.cooked-admin-enqueues.php:149 +#: includes/class.cooked-recipe-meta.php:238 +msgid "Layout" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:256 +#: includes/class.cooked-functions.php:137 +msgid "Nutrition" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:262 +#: includes/class.cooked-recipe-meta.php:1256 +msgid "Gallery" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:268 +msgid "Shortcodes" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:325 +msgid "Recipe Review Required" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:328 #, php-format -msgid "Please confirm that you are ready to migrate all %s recipes." +msgid "" +"It looks like this recipe is from a different version of %s. Please review " +"and click \"Update\" to save it." msgstr "" -#: includes/class.cooked-admin-enqueues.php:150 -msgid "Please confirm that you are ready to import all recipes." +#: includes/class.cooked-recipe-meta.php:336 +msgid "Recipe Shortcode" msgstr "" -#: includes/class.cooked-admin-menus.php:36 -#: includes/class.cooked-admin-menus.php:59 -#: includes/class.cooked-post-types.php:421 -#: includes/class.cooked-post-types.php:433 includes/class.cooked-users.php:154 -msgid "Recipes" +#: includes/class.cooked-recipe-meta.php:337 +msgid "You can use the following shortcode to display your recipe anywhere:" msgstr "" -#: includes/class.cooked-admin-menus.php:37 -#: includes/class.cooked-admin-menus.php:61 -#: includes/class.cooked-post-types.php:423 -msgid "Add New" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Recipe Template" msgstr "" -#. translators: referring to the bottom of the Settings page. -#: includes/class.cooked-admin-menus.php:45 -#: includes/class.cooked-admin-menus.php:65 -#: includes/class.cooked-recipe-meta.php:98 -#: includes/class.cooked-shortcodes.php:149 templates/admin/welcome.php:18 -msgid "Settings" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Default Recipe Template" msgstr "" -#: includes/class.cooked-admin-menus.php:46 -msgid "Import" +#: includes/class.cooked-recipe-meta.php:351 +msgid "" +"Choose from the options below to use this layout as the default for new " +"recipes or for all recipes." msgstr "" -#: includes/class.cooked-admin-menus.php:47 -msgid "What's New?" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Save as Default" msgstr "" -#: includes/class.cooked-admin-menus.php:50 templates/admin/welcome.php:35 -msgid "Upgrade to Pro" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Apply to All" msgstr "" -#: includes/class.cooked-admin-menus.php:60 -#: includes/class.cooked-post-types.php:428 -msgid "All Recipes" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Reset" msgstr "" -#: includes/class.cooked-admin-menus.php:90 -#: includes/class.cooked-admin-menus.php:99 -#: includes/class.cooked-admin-menus.php:108 -#: includes/class.cooked-admin-menus.php:117 -msgid "You do not have sufficient permissions to access this page." +#: includes/class.cooked-recipe-meta.php:351 +msgid "" +"Using the built-in recipe shortcodes found on the \"Shortcodes\" tab, you " +"can create the layout of your recipe below. Use the \"Save as Default\" " +"button to save your template." msgstr "" -#: includes/class.cooked-ajax.php:174 includes/class.cooked-functions.php:134 -#: includes/class.cooked-recipe-meta.php:157 -#: includes/class.cooked-recipe-meta.php:244 -#: includes/class.cooked-recipe-meta.php:1144 -#: includes/class.cooked-recipes.php:636 templates/front/recipe.php:34 -msgid "Ingredients" +#: includes/class.cooked-recipe-meta.php:369 +msgid "Recipe Excerpt" msgstr "" -#: includes/class.cooked-ajax.php:174 includes/class.cooked-functions.php:135 -#: includes/class.cooked-recipe-meta.php:157 -#: includes/class.cooked-recipe-meta.php:250 -#: includes/class.cooked-recipe-meta.php:1175 -#: includes/class.cooked-recipes.php:640 templates/front/recipe.php:35 -msgid "Directions" +#: includes/class.cooked-recipe-meta.php:369 +msgid "" +"The excerpt is used on recipe listing templates, where the full recipe " +"should not be displayed." msgstr "" -#: includes/class.cooked-delicious-recipes.php:102 -msgid "Error importing WP Delicious recipe." +#: includes/class.cooked-recipe-meta.php:392 +msgid "SEO Description" msgstr "" -#: includes/class.cooked-enqueues.php:52 -#: includes/class.cooked-recipe-meta.php:1390 -msgid "Timer" +#: includes/class.cooked-recipe-meta.php:392 +msgid "" +"This description is used for SEO purposes and is optional. By default, " +"Cooked will use the Recipe Excerpt above if available or the Recipe Title if " +"not." msgstr "" -#. translators: a title for the "What's new in Cooked?" section. -#: includes/class.cooked-functions.php:103 -#, php-format -msgid "What's new in %s?" +#: includes/class.cooked-recipe-meta.php:403 +#: includes/class.cooked-settings.php:217 +msgid "Difficulty Level" msgstr "" -#: includes/class.cooked-functions.php:127 -#: includes/class.cooked-shortcodes.php:655 -msgid "Print" +#: includes/class.cooked-recipe-meta.php:412 +#: includes/class.cooked-recipe-meta.php:1118 +#: includes/class.cooked-settings.php:220 +#: includes/class.cooked-shortcodes.php:448 +#: includes/class.cooked-shortcodes.php:670 +msgid "Prep Time" msgstr "" -#: includes/class.cooked-functions.php:128 -msgid "Print Options:" +#: includes/class.cooked-recipe-meta.php:414 +#: includes/class.cooked-recipe-meta.php:419 +#: includes/class.cooked-recipe-meta.php:424 +msgid "minutes" msgstr "" -#: includes/class.cooked-functions.php:130 -msgid "Title" +#: includes/class.cooked-recipe-meta.php:417 +#: includes/class.cooked-recipe-meta.php:1119 +#: includes/class.cooked-settings.php:221 +#: includes/class.cooked-shortcodes.php:449 +#: includes/class.cooked-shortcodes.php:679 +msgid "Cook Time" msgstr "" -#: includes/class.cooked-functions.php:131 -msgid "Information" +#: includes/class.cooked-recipe-meta.php:422 +#: includes/class.cooked-recipe-meta.php:1120 +#: includes/class.cooked-settings.php:222 +#: includes/class.cooked-shortcodes.php:450 +#: includes/class.cooked-shortcodes.php:690 +#: includes/class.cooked-shortcodes.php:697 +msgid "Total Time" msgstr "" -#: includes/class.cooked-functions.php:132 -#: includes/class.cooked-recipe-meta.php:1335 -#: includes/class.cooked-settings.php:218 -msgid "Excerpt" +#: includes/class.cooked-recipe-meta.php:430 +msgid "Recipe Notes" msgstr "" -#: includes/class.cooked-functions.php:133 -msgid "Images" +#: includes/class.cooked-recipe-meta.php:430 +msgid "The notes are displayed in the recipe." msgstr "" -#: includes/class.cooked-functions.php:136 -#: includes/class.cooked-recipe-meta.php:1359 -#: includes/class.cooked-recipes.php:643 includes/class.cooked-settings.php:219 -#: includes/class.cooked-shortcodes.php:774 -msgid "Notes" +#: includes/class.cooked-recipe-meta.php:455 +msgid "Amount" msgstr "" -#: includes/class.cooked-functions.php:137 -#: includes/class.cooked-recipe-meta.php:256 -msgid "Nutrition" +#: includes/class.cooked-recipe-meta.php:456 +msgid "Measurement" msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-import.php:46 includes/class.cooked-import.php:100 -#, php-format -msgid "There is %1$s recipe that should be imported from %2$s." -msgid_plural "There are %1$s recipes that should be imported from %2$s." -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-recipe-meta.php:457 +msgid "Item" +msgstr "" -#: includes/class.cooked-import.php:48 includes/class.cooked-import.php:102 -msgid "" -"Before you begin, please make sure you backup your database in case " -"something goes wrong." +#: includes/class.cooked-recipe-meta.php:495 +#: includes/class.cooked-recipe-meta.php:587 +#: includes/class.cooked-recipe-meta.php:653 +msgid "ex. Eggs, Milk, etc." msgstr "" -#: includes/class.cooked-import.php:50 includes/class.cooked-import.php:104 -msgid "" -"Click the button below to import these recipes. Here is what will happen to " -"your recipes:" +#: includes/class.cooked-recipe-meta.php:504 +#: includes/class.cooked-recipe-meta.php:596 +#: includes/class.cooked-recipe-meta.php:662 +msgid "Substitution:" msgstr "" -#: includes/class.cooked-import.php:52 includes/class.cooked-import.php:106 -msgid "Recipes will be imported with the 'Draft' status." +#: includes/class.cooked-recipe-meta.php:517 +#: includes/class.cooked-recipe-meta.php:609 +#: includes/class.cooked-recipe-meta.php:675 +msgid "ex. Apple Sauce, Tofu, etc." msgstr "" -#: includes/class.cooked-import.php:53 includes/class.cooked-import.php:107 -msgid "" -"Comments and ratings data will also be imported (ratings are available in " -"Cooked Pro)." +#: includes/class.cooked-recipe-meta.php:528 +#: includes/class.cooked-recipe-meta.php:683 +#: includes/class.cooked-recipe-meta.php:755 +#: includes/class.cooked-recipe-meta.php:847 +msgid "Section Heading" msgstr "" -#: includes/class.cooked-import.php:54 includes/class.cooked-import.php:109 -msgid "" -"After the import is complete, you can bulk edit the recipes and change their " -"status to 'Published'." +#: includes/class.cooked-recipe-meta.php:532 +#: includes/class.cooked-recipe-meta.php:687 +#: includes/class.cooked-recipe-meta.php:759 +#: includes/class.cooked-recipe-meta.php:851 +msgid "Heading Element:" msgstr "" -#: includes/class.cooked-import.php:55 -msgid "" -"The existing WP Delicious recipes and data will not be modified or deleted." +#: includes/class.cooked-recipe-meta.php:623 +msgid "Add Ingredient" msgstr "" -#: includes/class.cooked-import.php:56 includes/class.cooked-import.php:111 -msgid "" -"Certain data that is not suppoted by Cooked will not be imported (such as " -"Cooking Temp, Estimated Cost, Recipe Keywords, etc)." +#: includes/class.cooked-recipe-meta.php:624 +#: includes/class.cooked-recipe-meta.php:826 +msgid "Add Section Heading" msgstr "" -#: includes/class.cooked-import.php:57 includes/class.cooked-import.php:112 -msgid "" -"You can run the import multiple times, but keep in mind that duplicate " -"recipes will be created." +#: includes/class.cooked-recipe-meta.php:739 +#: includes/class.cooked-admin-enqueues.php:139 +msgid "Change Image" msgstr "" -#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 -#: includes/class.cooked-migration.php:58 -msgid "Wow, you have a lot of recipes!" +#: includes/class.cooked-recipe-meta.php:739 +#: includes/class.cooked-recipe-meta.php:794 +#: includes/class.cooked-recipe-meta.php:834 +#: includes/class.cooked-admin-enqueues.php:138 +msgid "Add Image" msgstr "" -#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 -#: includes/class.cooked-migration.php:58 -msgid "" -"It is definitely recommended that you get yourself a cup of coffee or tea " -"after clicking this button." +#: includes/class.cooked-recipe-meta.php:825 +msgid "Add Direction" msgstr "" -#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 -#: includes/class.cooked-migration.php:60 -msgid "Note:" +#: includes/class.cooked-recipe-meta.php:882 +msgid "Nutrition Information" msgstr "" -#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 -#: includes/class.cooked-migration.php:60 -msgid "The more recipes you have, the longer this will take." +#: includes/class.cooked-recipe-meta.php:920 +#: includes/class.cooked-shortcodes.php:1061 +msgid "Nutrition Facts" msgstr "" -#: includes/class.cooked-import.php:68 includes/class.cooked-import.php:83 -msgid "WP Delicious - Import" +#: includes/class.cooked-recipe-meta.php:938 +#: includes/class.cooked-shortcodes.php:1029 +msgid "Amount per serving" msgstr "" -#: includes/class.cooked-import.php:108 +#: includes/class.cooked-recipe-meta.php:948 +#: includes/class.cooked-shortcodes.php:1039 +msgid "% Daily Value *" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:967 +#: includes/class.cooked-shortcodes.php:971 +msgid "Includes" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:999 +#: includes/class.cooked-shortcodes.php:1065 msgid "" -"The difficulty level will be set to Beginner since it is not " -"supported by WP Recipe Maker." +"The % Daily Value (DV) tells you how much a nutrient in a serving of food " +"contributes to a daily diet. 2,000 calories a day is used for general " +"nutrition advice." msgstr "" -#: includes/class.cooked-import.php:110 -msgid "The existing WP Recipe Maker and data will not be modified or deleted." +#: includes/class.cooked-recipe-meta.php:1015 +msgid "Recipe Gallery Type" msgstr "" -#: includes/class.cooked-import.php:123 includes/class.cooked-import.php:138 -msgid "WP Recipe Maker - Import" +#: includes/class.cooked-recipe-meta.php:1028 +msgid "Choose one..." msgstr "" -#: includes/class.cooked-import.php:152 -msgid "More Imports are Coming Soon..." +#: includes/class.cooked-recipe-meta.php:1042 +#, php-format +msgid "%1$s or %2$s Video" msgstr "" -#: includes/class.cooked-import.php:173 -msgid "Begin Import" +#: includes/class.cooked-recipe-meta.php:1046 +#, php-format +msgid "" +"If you would like to display a video as the first item in your gallery, you " +"can paste a valid %1$s or %2$s URL below." msgstr "" -#: includes/class.cooked-import.php:178 includes/class.cooked-settings.php:592 -msgid "reload" +#: includes/class.cooked-recipe-meta.php:1051 +msgid "Gallery Items" msgstr "" -#: includes/class.cooked-measurements.php:29 -msgctxt "Grams Abbreviation (Singular)" -msgid "g" +#: includes/class.cooked-recipe-meta.php:1066 +#: includes/class.cooked-admin-enqueues.php:141 +msgid "Add to Gallery" msgstr "" -#: includes/class.cooked-measurements.php:30 -msgctxt "Grams Abbreviation (Plural)" -msgid "g" +#: includes/class.cooked-recipe-meta.php:1082 +msgid "Recipe Information" msgstr "" -#: includes/class.cooked-measurements.php:31 -msgid "gram" +#: includes/class.cooked-recipe-meta.php:1083 +msgid "This will display the recipe author, cooking times, etc." msgstr "" -#: includes/class.cooked-measurements.php:32 -msgid "grams" +#: includes/class.cooked-recipe-meta.php:1092 +#: includes/class.cooked-recipe-meta.php:1102 +#, php-format +msgid "\"%1$s\" and \"%2$s\"" msgstr "" -#: includes/class.cooked-measurements.php:36 -msgctxt "Kilograms Abbreviation (Singular)" -msgid "kg" +#: includes/class.cooked-recipe-meta.php:1094 +msgid "" +"This will allow you to include or exclude content from the shortcode output." msgstr "" -#: includes/class.cooked-measurements.php:37 -msgctxt "Kilograms Abbreviation (Plural)" -msgid "kg" +#: includes/class.cooked-recipe-meta.php:1103 +msgid "" +"Used like \"include\", but will position the content to the left or right." msgstr "" -#: includes/class.cooked-measurements.php:38 -msgid "kilogram" +#: includes/class.cooked-recipe-meta.php:1113 +#: includes/class.cooked-recipe-meta.php:1159 +#: includes/class.cooked-recipe-meta.php:1190 +#: includes/class.cooked-recipe-meta.php:1215 +#: includes/class.cooked-recipe-meta.php:1239 +#: includes/class.cooked-recipe-meta.php:1299 +#: includes/class.cooked-recipe-meta.php:1344 +#: includes/class.cooked-recipe-meta.php:1374 +#: includes/class.cooked-recipe-meta.php:1419 +msgid "Available Variables" msgstr "" -#: includes/class.cooked-measurements.php:39 -msgid "kilograms" +#: includes/class.cooked-recipe-meta.php:1117 +#: includes/class.cooked-settings.php:215 +#: includes/class.cooked-shortcodes.php:445 +#: includes/class.cooked-shortcodes.php:623 +msgid "Author" msgstr "" -#: includes/class.cooked-measurements.php:43 -#: includes/class.cooked-measurements.php:44 -msgid "mg" +#: includes/class.cooked-recipe-meta.php:1121 +#: includes/class.cooked-shortcodes.php:446 +#: includes/class.cooked-shortcodes.php:634 +msgid "Difficulty" msgstr "" -#: includes/class.cooked-measurements.php:45 -msgid "milligram" +#: includes/class.cooked-recipe-meta.php:1122 +msgid "Servings Switcher" msgstr "" -#: includes/class.cooked-measurements.php:46 -msgid "milligrams" +#: includes/class.cooked-recipe-meta.php:1123 +#: includes/class.cooked-taxonomies.php:39 +#: includes/class.cooked-settings.php:216 +#: includes/class.cooked-shortcodes.php:717 +#: includes/class.cooked-shortcodes.php:720 +msgid "Category" msgstr "" -#: includes/class.cooked-measurements.php:50 -#: includes/class.cooked-measurements.php:51 -msgid "oz" +#: includes/class.cooked-recipe-meta.php:1124 +msgid "Print Mode" msgstr "" -#: includes/class.cooked-measurements.php:52 -msgid "ounce" +#: includes/class.cooked-recipe-meta.php:1125 +msgid "Full-Screen Mode" msgstr "" -#: includes/class.cooked-measurements.php:53 -msgid "ounces" +#: includes/class.cooked-recipe-meta.php:1145 +msgid "" +"This will display the list of ingredients, added via the \"Ingredients\" tab." msgstr "" -#: includes/class.cooked-measurements.php:57 -#: includes/class.cooked-measurements.php:58 -msgid "fl oz" +#: includes/class.cooked-recipe-meta.php:1151 +msgid "This will allow you to hide or show the checkboxes:" msgstr "" -#: includes/class.cooked-measurements.php:59 -msgid "fluid ounce" +#: includes/class.cooked-recipe-meta.php:1161 +msgid "Show checkboxes" msgstr "" -#: includes/class.cooked-measurements.php:60 -msgid "fluid ounces" +#: includes/class.cooked-recipe-meta.php:1162 +msgid "Hide checkboxes" msgstr "" -#: includes/class.cooked-measurements.php:64 -#: includes/class.cooked-measurements.php:66 -msgid "cup" +#: includes/class.cooked-recipe-meta.php:1176 +msgid "" +"This will display the list of directions, added via the \"Directions\" tab." msgstr "" -#: includes/class.cooked-measurements.php:65 -#: includes/class.cooked-measurements.php:67 -msgid "cups" +#: includes/class.cooked-recipe-meta.php:1182 +msgid "This will allow you to hide or show the numbers:" msgstr "" -#: includes/class.cooked-measurements.php:71 -#: includes/class.cooked-measurements.php:72 -msgid "tsp" +#: includes/class.cooked-recipe-meta.php:1192 +msgid "Show numbers" msgstr "" -#: includes/class.cooked-measurements.php:73 -msgid "teaspoon" +#: includes/class.cooked-recipe-meta.php:1193 +msgid "Hide numbers" +msgstr "" + +#: includes/class.cooked-recipe-meta.php:1206 +msgid "Featured Image" msgstr "" -#: includes/class.cooked-measurements.php:74 -msgid "teaspoons" +#: includes/class.cooked-recipe-meta.php:1207 +msgid "This will display the featured image, if one is set." msgstr "" -#: includes/class.cooked-measurements.php:78 -#: includes/class.cooked-measurements.php:79 -msgid "tbsp" +#: includes/class.cooked-recipe-meta.php:1217 +#: includes/class.cooked-recipe-meta.php:1241 +#: includes/class.cooked-recipe-meta.php:1346 +msgid "None" msgstr "" -#: includes/class.cooked-measurements.php:80 -msgid "tablespoon" +#: includes/class.cooked-recipe-meta.php:1230 +msgid "Nutrition Label" msgstr "" -#: includes/class.cooked-measurements.php:81 -msgid "tablespoons" +#: includes/class.cooked-recipe-meta.php:1231 +msgid "This will display the Nutrition Facts label, if data is present." msgstr "" -#: includes/class.cooked-measurements.php:85 -#: includes/class.cooked-measurements.php:86 -msgid "dl" +#: includes/class.cooked-recipe-meta.php:1257 +msgid "" +"This will display the gallery, if one is set or created from the \"Gallery\" " +"tab." msgstr "" -#: includes/class.cooked-measurements.php:87 -msgid "deciliter" +#: includes/class.cooked-recipe-meta.php:1265 +msgid "Set the width of the gallery." msgstr "" -#: includes/class.cooked-measurements.php:88 -msgid "deciliters" +#: includes/class.cooked-recipe-meta.php:1272 +msgid "Set the image size ratio." msgstr "" -#: includes/class.cooked-measurements.php:92 -#: includes/class.cooked-measurements.php:93 -msgid "ml" +#: includes/class.cooked-recipe-meta.php:1282 +msgid "Set the navigation style." msgstr "" -#: includes/class.cooked-measurements.php:94 -msgid "milliliter" +#: includes/class.cooked-recipe-meta.php:1289 +msgid "Enable or disable \"Full-Screen\" mode." msgstr "" -#: includes/class.cooked-measurements.php:95 -msgid "milliliters" +#: includes/class.cooked-recipe-meta.php:1304 +#, php-format +msgid "ex: \"%1$s\" or \"%2$s\"" msgstr "" -#: includes/class.cooked-measurements.php:99 -#: includes/class.cooked-measurements.php:100 -msgid "l" +#: includes/class.cooked-recipe-meta.php:1309 +#, php-format +msgid "ex: \"%s\"" msgstr "" -#: includes/class.cooked-measurements.php:101 -msgid "liter" +#: includes/class.cooked-recipe-meta.php:1314 +#, php-format +msgid "\"%1$s\", \"%2$s\", or \"%3$s\"" msgstr "" -#: includes/class.cooked-measurements.php:102 -msgid "liters" +#: includes/class.cooked-recipe-meta.php:1319 +#, php-format +msgid "\"%1$s\" or \"%2$s\"" msgstr "" -#: includes/class.cooked-measurements.php:106 -#: includes/class.cooked-measurements.php:108 -msgid "stick" +#: includes/class.cooked-recipe-meta.php:1335 +#: includes/class.cooked-functions.php:132 +#: includes/class.cooked-settings.php:218 +msgid "Excerpt" msgstr "" -#: includes/class.cooked-measurements.php:107 -#: includes/class.cooked-measurements.php:109 -msgid "sticks" +#: includes/class.cooked-recipe-meta.php:1336 +msgid "" +"This will display the excerpt, if one is available from the \"Layout & " +"Content\" tab." msgstr "" -#: includes/class.cooked-measurements.php:113 -msgid "lb" +#: includes/class.cooked-recipe-meta.php:1359 +#: includes/class.cooked-functions.php:136 +#: includes/class.cooked-settings.php:219 +#: includes/class.cooked-shortcodes.php:774 +#: includes/class.cooked-recipes.php:643 +msgid "Notes" msgstr "" -#: includes/class.cooked-measurements.php:114 -msgid "lbs" +#: includes/class.cooked-recipe-meta.php:1360 +msgid "" +"This will display the notes, if one is available from the \"Layout & " +"Content\" tab." msgstr "" -#: includes/class.cooked-measurements.php:115 -msgid "pound" +#: includes/class.cooked-recipe-meta.php:1366 +msgid "This will allow you to hide or show the header for the notes section:" msgstr "" -#: includes/class.cooked-measurements.php:116 -msgid "pounds" +#: includes/class.cooked-recipe-meta.php:1376 +msgid "Show header" msgstr "" -#: includes/class.cooked-measurements.php:120 -#: includes/class.cooked-measurements.php:122 -msgid "dash" +#: includes/class.cooked-recipe-meta.php:1377 +msgid "Hide header" msgstr "" -#: includes/class.cooked-measurements.php:121 -#: includes/class.cooked-measurements.php:123 -msgid "dashes" +#: includes/class.cooked-recipe-meta.php:1390 +#: includes/class.cooked-enqueues.php:52 +msgid "Timer" msgstr "" -#: includes/class.cooked-measurements.php:127 -#: includes/class.cooked-measurements.php:129 -msgid "drop" +#: includes/class.cooked-recipe-meta.php:1391 +msgid "This will display a special link to start a cooking timer." msgstr "" -#: includes/class.cooked-measurements.php:128 -#: includes/class.cooked-measurements.php:130 -msgid "drops" +#: includes/class.cooked-recipe-meta.php:1400 +#, php-format +msgid "\"%1$s\", \"%2$s\" and \"%3$s\"" msgstr "" -#: includes/class.cooked-measurements.php:134 -msgid "gal" +#: includes/class.cooked-recipe-meta.php:1402 +msgid "Use just one or a combination of all three to set the timer length" msgstr "" -#: includes/class.cooked-measurements.php:135 -msgid "gals" +#: includes/class.cooked-recipe-meta.php:1409 +msgid "Add a short description for this timer, if applicable." msgstr "" -#: includes/class.cooked-measurements.php:136 -msgid "gallon" +#: includes/class.cooked-recipe-meta.php:1421 +msgid "Time in seconds" msgstr "" -#: includes/class.cooked-measurements.php:137 -msgid "gallons" +#: includes/class.cooked-recipe-meta.php:1422 +msgid "Time in minutes" msgstr "" -#: includes/class.cooked-measurements.php:141 -#: includes/class.cooked-measurements.php:143 -msgid "pinch" +#: includes/class.cooked-recipe-meta.php:1423 +msgid "Time in hours" msgstr "" -#: includes/class.cooked-measurements.php:142 -#: includes/class.cooked-measurements.php:144 -msgid "pinches" +#: includes/class.cooked-recipe-meta.php:1424 +msgid "Timer Description" msgstr "" -#: includes/class.cooked-measurements.php:148 -#: includes/class.cooked-measurements.php:149 -msgid "pt" +#: includes/class.cooked-import.php:46 includes/class.cooked-import.php:100 +#, php-format +msgid "There is %1$s recipe that should be imported from %2$s." msgstr "" -#: includes/class.cooked-measurements.php:150 -msgid "pint" +#: includes/class.cooked-import.php:48 includes/class.cooked-import.php:102 +msgid "" +"Before you begin, please make sure you backup your database in case " +"something goes wrong." msgstr "" -#: includes/class.cooked-measurements.php:151 -msgid "pints" +#: includes/class.cooked-import.php:50 includes/class.cooked-import.php:104 +msgid "" +"Click the button below to import these recipes. Here is what will happen to " +"your recipes:" msgstr "" -#: includes/class.cooked-measurements.php:155 -msgid "qt" +#: includes/class.cooked-import.php:52 includes/class.cooked-import.php:106 +msgid "Recipes will be imported with the 'Draft' status." msgstr "" -#: includes/class.cooked-measurements.php:156 -msgid "qts" +#: includes/class.cooked-import.php:53 includes/class.cooked-import.php:107 +msgid "" +"Comments and ratings data will also be imported (ratings are available in " +"Cooked Pro)." msgstr "" -#: includes/class.cooked-measurements.php:157 -msgid "quart" +#: includes/class.cooked-import.php:54 includes/class.cooked-import.php:109 +msgid "" +"After the import is complete, you can bulk edit the recipes and change their " +"status to 'Published'." msgstr "" -#: includes/class.cooked-measurements.php:158 -msgid "quarts" +#: includes/class.cooked-import.php:55 +msgid "" +"The existing WP Delicious recipes and data will not be modified or deleted." msgstr "" -#: includes/class.cooked-measurements.php:162 -#: includes/class.cooked-measurements.php:163 -msgid "drizzle" +#: includes/class.cooked-import.php:56 includes/class.cooked-import.php:111 +msgid "" +"Certain data that is not suppoted by Cooked will not be imported (such as " +"Cooking Temp, Estimated Cost, Recipe Keywords, etc)." msgstr "" -#: includes/class.cooked-measurements.php:164 -#: includes/class.cooked-measurements.php:165 -msgid "Drizzle" +#: includes/class.cooked-import.php:57 includes/class.cooked-import.php:112 +msgid "" +"You can run the import multiple times, but keep in mind that duplicate " +"recipes will be created." msgstr "" -#: includes/class.cooked-measurements.php:169 -#: includes/class.cooked-measurements.php:171 -msgid "clove" +#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 +#: includes/class.cooked-migration.php:58 +msgid "Wow, you have a lot of recipes!" msgstr "" -#: includes/class.cooked-measurements.php:170 -#: includes/class.cooked-measurements.php:172 -msgid "cloves" +#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 +#: includes/class.cooked-migration.php:58 +msgid "" +"It is definitely recommended that you get yourself a cup of coffee or tea " +"after clicking this button." msgstr "" -#: includes/class.cooked-measurements.php:176 -#: includes/class.cooked-measurements.php:178 -msgid "jar" +#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:165 includes/class.cooked-migration.php:60 +msgid "Note:" msgstr "" -#: includes/class.cooked-measurements.php:177 -#: includes/class.cooked-measurements.php:179 -msgid "jars" +#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 +#: includes/class.cooked-migration.php:60 +msgid "The more recipes you have, the longer this will take." msgstr "" -#: includes/class.cooked-measurements.php:183 -#: includes/class.cooked-measurements.php:185 -msgid "can" +#: includes/class.cooked-import.php:68 includes/class.cooked-import.php:83 +msgid "WP Delicious - Import" msgstr "" -#: includes/class.cooked-measurements.php:184 -#: includes/class.cooked-measurements.php:186 -msgid "cans" +#: includes/class.cooked-import.php:108 +msgid "" +"The difficulty level will be set to Beginner since it is not " +"supported by WP Recipe Maker." msgstr "" -#: includes/class.cooked-measurements.php:202 -#: includes/class.cooked-recipes.php:799 includes/class.cooked-settings.php:223 -msgid "Servings" +#: includes/class.cooked-import.php:110 +msgid "The existing WP Recipe Maker and data will not be modified or deleted." msgstr "" -#: includes/class.cooked-measurements.php:206 -msgid "Serving size" +#: includes/class.cooked-import.php:123 includes/class.cooked-import.php:138 +msgid "WP Recipe Maker - Import" msgstr "" -#: includes/class.cooked-measurements.php:213 -msgid "Calories" +#: includes/class.cooked-import.php:152 +msgid "" +"Import recipes from a CSV file. Your CSV file should include the following " +"columns:" msgstr "" -#: includes/class.cooked-measurements.php:220 -msgid "Total Fat" +#: includes/class.cooked-import.php:154 +msgid "Recipe title (required)" msgstr "" -#: includes/class.cooked-measurements.php:226 -msgid "Saturated Fat" +#: includes/class.cooked-import.php:155 +msgid "Recipe excerpt/description" msgstr "" -#: includes/class.cooked-measurements.php:232 -msgid "Trans Fat" +#: includes/class.cooked-import.php:156 +msgid "Prep time in minutes" msgstr "" -#: includes/class.cooked-measurements.php:233 -msgid "Trans Fat" +#: includes/class.cooked-import.php:157 +msgid "Cook time in minutes" msgstr "" -#: includes/class.cooked-measurements.php:238 -msgid "Monounsaturated Fat" +#: includes/class.cooked-import.php:158 +msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" msgstr "" -#: includes/class.cooked-measurements.php:243 -msgid "Polyunsaturated Fat" +#: includes/class.cooked-import.php:159 +msgid "" +"Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or " +"\"name\" for simple ingredients. Add substitutions with double pipe (||): " +"\"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" msgstr "" -#: includes/class.cooked-measurements.php:250 -msgid "Cholesterol" +#: includes/class.cooked-import.php:160 +msgid "Directions/instructions separated by pipe (|)" msgstr "" -#: includes/class.cooked-measurements.php:256 -msgid "Sodium" +#: includes/class.cooked-import.php:161 +msgid "Recipe notes" msgstr "" -#: includes/class.cooked-measurements.php:262 -msgid "Total Carbohydrate" +#: includes/class.cooked-import.php:162 +msgid "Categories separated by comma" msgstr "" -#: includes/class.cooked-measurements.php:262 -msgid "Net Carbohydrate" +#: includes/class.cooked-import.php:163 +msgid "Tags separated by comma" msgstr "" -#: includes/class.cooked-measurements.php:268 -msgid "Dietary Fiber" +#: includes/class.cooked-import.php:165 +msgid "" +"Recipes will be imported with the 'Draft' status. After the import is " +"complete, you can bulk edit the recipes and change their status to " +"'Published'." msgstr "" -#: includes/class.cooked-measurements.php:274 -msgid "Total Sugars" +#: includes/class.cooked-import.php:168 +msgid "CSV Import" msgstr "" -#: includes/class.cooked-measurements.php:280 -msgid "Added Sugars" +#: includes/class.cooked-import.php:172 +msgid "Import Recipes via CSV" msgstr "" -#: includes/class.cooked-measurements.php:288 -msgid "Protein" +#: includes/class.cooked-import.php:180 +msgid "More Imports are Coming Soon..." msgstr "" -#: includes/class.cooked-measurements.php:297 -msgid "Vitamin A" +#: includes/class.cooked-import.php:201 +msgid "Begin Import" msgstr "" -#: includes/class.cooked-measurements.php:303 -msgid "Vitamin C" +#: includes/class.cooked-import.php:206 includes/class.cooked-import.php:226 +#: includes/class.cooked-settings.php:592 +msgid "reload" msgstr "" -#: includes/class.cooked-measurements.php:309 -msgid "Calcium" +#: includes/class.cooked-import.php:221 +msgid "Upload and Import CSV" msgstr "" -#: includes/class.cooked-measurements.php:315 -msgid "Iron" +#: includes/class.cooked-import.php:226 +msgid "Import Complete!" msgstr "" -#: includes/class.cooked-measurements.php:321 -msgid "Potassium" +#: includes/class.cooked-import.php:226 +msgid "You can now" msgstr "" -#: includes/class.cooked-measurements.php:327 -msgid "Vitamin D" +#: includes/class.cooked-import.php:226 +msgid "the import screen or" msgstr "" -#: includes/class.cooked-measurements.php:333 -msgid "Vitamin E" +#: includes/class.cooked-import.php:226 +msgid "view your recipes" msgstr "" -#: includes/class.cooked-measurements.php:339 -msgid "Vitamin K" +#: includes/class.cooked-widgets.php:38 +msgid "Edit Recipe(s)..." msgstr "" -#: includes/class.cooked-measurements.php:345 -msgid "Thiamin" +#: includes/class.cooked-widgets.php:38 includes/class.cooked-widgets.php:40 +msgid "Choose recipe(s)..." msgstr "" -#: includes/class.cooked-measurements.php:351 -msgid "Riboflavin" +#: includes/class.cooked-seo.php:83 includes/class.cooked-recipes.php:962 +#, php-format +msgid "Step %d" msgstr "" -#: includes/class.cooked-measurements.php:357 -msgid "Niacin" +#: includes/widgets/recipe-card.php:75 +#: includes/widgets/recipe-categories.php:40 +#: includes/widgets/recipe-list.php:48 +msgid "Widget Title (optional):" msgstr "" -#: includes/class.cooked-measurements.php:363 -msgid "Vitamin B6" +#: includes/widgets/recipe-card.php:80 +msgid "Recipe:" msgstr "" -#: includes/class.cooked-measurements.php:369 -msgid "Folate" +#: includes/widgets/recipe-card.php:89 +msgid "Style:" msgstr "" -#: includes/class.cooked-measurements.php:375 -msgid "Vitamin B12" +#: includes/widgets/recipe-card.php:91 +msgid "Simple" msgstr "" -#: includes/class.cooked-measurements.php:381 -msgid "Biotin" +#: includes/widgets/recipe-card.php:92 +msgid "Simple Centered" msgstr "" -#: includes/class.cooked-measurements.php:387 -msgid "Pantothenic Acid" +#: includes/widgets/recipe-card.php:93 +msgid "Modern" msgstr "" -#: includes/class.cooked-measurements.php:393 -msgid "Phosphorus" +#: includes/widgets/recipe-card.php:94 +msgid "Modern Centered" msgstr "" -#: includes/class.cooked-measurements.php:399 -msgid "Iodine" +#: includes/widgets/recipe-card.php:99 includes/widgets/recipe-list.php:83 +msgid "Width:" msgstr "" -#: includes/class.cooked-measurements.php:405 -msgid "Magnesium" +#: includes/widgets/recipe-card.php:105 includes/widgets/recipe-list.php:89 +msgid "Hide Image" msgstr "" -#: includes/class.cooked-measurements.php:411 -msgid "Zinc" +#: includes/widgets/recipe-card.php:110 +msgid "Hide Title" msgstr "" -#: includes/class.cooked-measurements.php:417 -msgid "Selenium" +#: includes/widgets/recipe-card.php:115 includes/widgets/recipe-list.php:94 +msgid "Hide Author" msgstr "" -#: includes/class.cooked-measurements.php:423 -msgid "Copper" +#: includes/widgets/recipe-card.php:120 +msgid "Hide Excerpt" msgstr "" -#: includes/class.cooked-measurements.php:429 -msgid "Manganese" +#: includes/widgets/recipe-categories.php:45 +#: includes/class.cooked-taxonomies.php:42 +msgid "Parent Category" msgstr "" -#: includes/class.cooked-measurements.php:435 -msgid "Chromium" +#: includes/widgets/recipe-categories.php:48 +#: includes/class.cooked-taxonomies.php:41 +#: includes/class.cooked-recipes.php:1044 +msgid "All Categories" msgstr "" -#: includes/class.cooked-measurements.php:441 -msgid "Molybdenum" +#: includes/widgets/recipe-categories.php:58 +msgid "Hide Empty Categories" msgstr "" -#: includes/class.cooked-measurements.php:447 -msgid "Chloride" +#: includes/widgets/search.php:37 includes/widgets/nutrition.php:31 +msgid "Title (optional):" msgstr "" -#. translators: singular and plural number of minutes (shorthand) -#: includes/class.cooked-measurements.php:703 -#: includes/class.cooked-measurements.php:714 -#: includes/class.cooked-measurements.php:732 -#, php-format -msgid "%d min" +#: includes/widgets/search.php:42 +msgid "Size:" msgstr "" -#. translators: singular and plural number of minutes (shorthand) -#: includes/class.cooked-measurements.php:703 -#: includes/class.cooked-measurements.php:714 -#: includes/class.cooked-measurements.php:732 -#, php-format -msgid "%d mins" +#: includes/widgets/search.php:44 +msgid "Compact" msgstr "" -#. translators: singular and plural number of hours (shorthand) -#: includes/class.cooked-measurements.php:712 -#: includes/class.cooked-measurements.php:730 -#, php-format -msgid "%d hr" +#: includes/widgets/search.php:45 +msgid "Wide" msgstr "" -#. translators: singular and plural number of hours (shorthand) -#: includes/class.cooked-measurements.php:712 -#: includes/class.cooked-measurements.php:730 -#, php-format -msgid "%d hrs" +#: includes/widgets/search.php:51 +msgid "Hide \"Browse\" dropdown" msgstr "" -#. translators: singular and plural number of days -#: includes/class.cooked-measurements.php:728 -#, php-format -msgid "%d day" +#: includes/widgets/search.php:56 +msgid "Hide \"Sorting\" dropdown" msgstr "" -#. translators: singular and plural number of days -#: includes/class.cooked-measurements.php:728 -#, php-format -msgid "%d days" +#: includes/widgets/recipe-list.php:53 +msgid "Sorted by:" msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-migration.php:47 -#, php-format -msgid "" -"There is %1$s recipe that should be migrated from %2$s to take advantage of " -"new features and reliability." -msgid_plural "" -"There are %1$s recipes that should be migrated from %2$s to take advantage " -"of new features and reliability." -msgstr[0] "" -msgstr[1] "" +#: includes/widgets/recipe-list.php:55 +msgid "Most Recent" +msgstr "" -#: includes/class.cooked-migration.php:49 -msgid "" -"Please click the button below to migrate these recipes. Here is what will " -"happen to your recipes:" +#: includes/widgets/recipe-list.php:56 +msgid "Choose Recipes" msgstr "" -#: includes/class.cooked-migration.php:51 -msgid "NO DATA LOSS, all fields will be remapped." +#: includes/widgets/recipe-list.php:62 +msgid "Show:" msgstr "" -#: includes/class.cooked-migration.php:52 -msgid "Remapped fields will greatly speed up recipe loading times." +#: includes/widgets/recipe-list.php:73 +msgid "Recipes:" msgstr "" -#: includes/class.cooked-migration.php:53 -msgid "" -"If recipe excerpt exists, the short description will be moved to the top of " -"the recipe template." +#: includes/class.cooked-recipe-maker.php:103 +msgid "Error importing WP Recipe Maker recipe." msgstr "" -#: includes/class.cooked-migration.php:54 -msgid "" -"If no recipe excerpt exists, the short description will be used instead." +#: includes/class.cooked-functions.php:103 +#, php-format +msgid "What's new in %s?" msgstr "" -#: includes/class.cooked-migration.php:55 -msgid "Version number will be applied to each recipe." +#: includes/class.cooked-functions.php:127 +#: includes/class.cooked-shortcodes.php:655 +msgid "Print" msgstr "" -#: includes/class.cooked-migration.php:65 -msgid "Migration" +#: includes/class.cooked-functions.php:128 +msgid "Print Options:" msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-migration.php:90 -#, php-format -msgid "" -"There is %1$s recipe that is from an older version of Cooked. Please %2$s to " -"migrate this recipe." -msgid_plural "" -"There are %1$s recipes that are from an older version of Cooked. Please %2$s " -"to migrate these recipes." -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-functions.php:130 +msgid "Title" +msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-migration.php:90 -msgid "click here" +#: includes/class.cooked-functions.php:131 +msgid "Information" msgstr "" -#: includes/class.cooked-plugin-extra.php:31 -msgid "Required by Cooked Pro" +#: includes/class.cooked-functions.php:133 +msgid "Images" msgstr "" #: includes/class.cooked-post-types.php:89 @@ -898,10 +948,25 @@ msgstr "" msgid "Recipe Archive" msgstr "" +#: includes/class.cooked-post-types.php:419 +#: includes/class.cooked-post-types.php:421 +#: includes/class.cooked-post-types.php:433 +#: includes/class.cooked-admin-menus.php:36 +#: includes/class.cooked-admin-menus.php:59 includes/class.cooked-users.php:154 +msgid "Recipes" +msgstr "" + +#: includes/class.cooked-post-types.php:420 #: includes/class.cooked-post-types.php:422 msgid "Recipe" msgstr "" +#: includes/class.cooked-post-types.php:423 +#: includes/class.cooked-admin-menus.php:37 +#: includes/class.cooked-admin-menus.php:61 +msgid "Add New" +msgstr "" + #: includes/class.cooked-post-types.php:424 msgid "Add New Recipe" msgstr "" @@ -918,1066 +983,1017 @@ msgstr "" msgid "View Recipe" msgstr "" +#: includes/class.cooked-post-types.php:428 +#: includes/class.cooked-admin-menus.php:60 +msgid "All Recipes" +msgstr "" + #: includes/class.cooked-post-types.php:429 msgid "Search Recipes" msgstr "" -#: includes/class.cooked-post-types.php:430 -msgid "No recipes found." +#: includes/class.cooked-post-types.php:430 +msgid "No recipes found." +msgstr "" + +#: includes/class.cooked-post-types.php:431 +msgid "No recipes found in trash." +msgstr "" + +#: includes/class.cooked-post-types.php:459 +msgid "Recipe title ..." +msgstr "" + +#: includes/class.cooked-post-types.php:477 +msgid "Cooked Browse Recipes Page" +msgstr "" + +#: includes/class.cooked-ajax.php:346 +msgid "No default content provided." +msgstr "" + +#: includes/class.cooked-ajax.php:375 includes/class.cooked-ajax.php:411 +msgid "You do not have permission to import recipes." +msgstr "" + +#: includes/class.cooked-ajax.php:379 +#: includes/class.cooked-admin-enqueues.php:161 +msgid "File upload failed." +msgstr "" + +#: includes/class.cooked-ajax.php:385 +msgid "Invalid file type. Please upload a CSV file." +msgstr "" + +#: includes/class.cooked-ajax.php:418 +msgid "CSV file not found. Please upload again." msgstr "" -#: includes/class.cooked-post-types.php:431 -msgid "No recipes found in trash." +#: includes/class.cooked-ajax.php:436 +msgid "CSV Import class could not be loaded." msgstr "" -#: includes/class.cooked-post-types.php:459 -msgid "Recipe title ..." +#: includes/class.cooked-ajax.php:450 +#, php-format +msgid "Successfully imported %d recipe(s)." msgstr "" -#: includes/class.cooked-post-types.php:477 -msgid "Cooked Browse Recipes Page" +#: includes/class.cooked-ajax.php:459 +msgid "No recipes were imported." msgstr "" #: includes/class.cooked-rankmathseo.php:36 msgid "Recipe Category" msgstr "" -#: includes/class.cooked-rankmathseo.php:37 -#: includes/class.cooked-yoastseo.php:33 -msgid "Current recipe category being viewed." +#: includes/class.cooked-taxonomies.php:38 +#: includes/class.cooked-taxonomies.php:48 +#: includes/class.cooked-settings.php:191 +#: includes/class.cooked-recipes.php:1042 +msgid "Categories" msgstr "" -#: includes/class.cooked-recipe-maker.php:103 -msgid "Error importing WP Recipe Maker recipe." +#: includes/class.cooked-taxonomies.php:40 +msgid "Search Categories" msgstr "" -#: includes/class.cooked-recipe-meta.php:202 -msgid "Display Recipe" +#: includes/class.cooked-taxonomies.php:43 +msgid "Parent Category:" msgstr "" -#: includes/class.cooked-recipe-meta.php:203 -msgid "" -"This shortcode displays the recipe in its entirety, using the \"Recipe " -"Template\" field in the first tab." +#: includes/class.cooked-taxonomies.php:44 +msgid "Edit Category" msgstr "" -#: includes/class.cooked-recipe-meta.php:238 -msgid "Layout" +#: includes/class.cooked-taxonomies.php:45 +msgid "Update Category" msgstr "" -#: includes/class.cooked-recipe-meta.php:262 -#: includes/class.cooked-recipe-meta.php:1256 -msgid "Gallery" +#: includes/class.cooked-taxonomies.php:46 +msgid "Add New Category" msgstr "" -#: includes/class.cooked-recipe-meta.php:268 -msgid "Shortcodes" +#: includes/class.cooked-taxonomies.php:47 +msgid "New Category Name" msgstr "" -#: includes/class.cooked-recipe-meta.php:325 -msgid "Recipe Review Required" +#: includes/class.cooked-taxonomies.php:49 +msgid "No Categories" msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-recipe-meta.php:328 +#: includes/class.cooked-taxonomies.php:136 #, php-format -msgid "" -"It looks like this recipe is from a different version of %s. Please review " -"and click \"Update\" to save it." +msgid "%s Recipe" msgstr "" -#: includes/class.cooked-recipe-meta.php:336 -msgid "Recipe Shortcode" +#: includes/class.cooked-plugin-extra.php:31 +msgid "Required by Cooked Pro" msgstr "" -#: includes/class.cooked-recipe-meta.php:337 -msgid "You can use the following shortcode to display your recipe anywhere:" +#: includes/class.cooked-delicious-recipes.php:102 +msgid "Error importing WP Delicious recipe." msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Recipe Template" +#: includes/class.cooked-admin-menus.php:46 +msgid "Import" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Default Recipe Template" +#: includes/class.cooked-admin-menus.php:47 +msgid "What's New?" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "" -"Choose from the options below to use this layout as the default for new " -"recipes or for all recipes." +#: includes/class.cooked-admin-menus.php:50 +msgid "Upgrade to Pro" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Save as Default" +#: includes/class.cooked-admin-menus.php:90 +#: includes/class.cooked-admin-menus.php:99 +#: includes/class.cooked-admin-menus.php:108 +#: includes/class.cooked-admin-menus.php:117 +msgid "You do not have sufficient permissions to access this page." msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Apply to All" +#: includes/class.cooked-settings.php:85 +msgid "Cooked settings has been updated!" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Reset" +#: includes/class.cooked-settings.php:104 +msgid "Cooked Plugin Setup" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "" -"Using the built-in recipe shortcodes found on the \"Shortcodes\" tab, you " -"can create the layout of your recipe below. Use the \"Save as Default\" " -"button to save your template." +#: includes/class.cooked-settings.php:105 +#, php-format +msgid "To display your recipes properly, please set up your %s." msgstr "" -#: includes/class.cooked-recipe-meta.php:369 -msgid "Recipe Excerpt" +#: includes/class.cooked-settings.php:106 +#: includes/class.cooked-settings.php:168 +msgid "Browse/Search Recipes Page" msgstr "" -#: includes/class.cooked-recipe-meta.php:369 -msgid "" -"The excerpt is used on recipe listing templates, where the full recipe " -"should not be displayed." +#: includes/class.cooked-settings.php:104 +#, php-format +msgid "" msgstr "" -#: includes/class.cooked-recipe-meta.php:392 -msgid "SEO Description" +#: includes/class.cooked-settings.php:143 +msgid "Choose a page..." msgstr "" -#: includes/class.cooked-recipe-meta.php:392 -msgid "" -"This description is used for SEO purposes and is optional. By default, " -"Cooked will use the Recipe Excerpt above if available or the Recipe Title if " -"not." +#: includes/class.cooked-settings.php:143 +msgid "No pages" msgstr "" -#: includes/class.cooked-recipe-meta.php:403 -#: includes/class.cooked-settings.php:217 -msgid "Difficulty Level" +#: includes/class.cooked-settings.php:144 +msgid "No default" msgstr "" -#: includes/class.cooked-recipe-meta.php:412 -#: includes/class.cooked-recipe-meta.php:1118 -#: includes/class.cooked-settings.php:220 -#: includes/class.cooked-shortcodes.php:448 -#: includes/class.cooked-shortcodes.php:670 -msgid "Prep Time" +#: includes/class.cooked-settings.php:144 +#: includes/class.cooked-recipes.php:1039 +msgid "No categories" msgstr "" -#: includes/class.cooked-recipe-meta.php:414 -#: includes/class.cooked-recipe-meta.php:419 -#: includes/class.cooked-recipe-meta.php:424 -msgid "minutes" +#: includes/class.cooked-settings.php:164 +msgid "General" msgstr "" -#: includes/class.cooked-recipe-meta.php:417 -#: includes/class.cooked-recipe-meta.php:1119 -#: includes/class.cooked-settings.php:221 -#: includes/class.cooked-shortcodes.php:449 -#: includes/class.cooked-shortcodes.php:679 -msgid "Cook Time" +#: includes/class.cooked-settings.php:170 +#, php-format +msgid "" +"Create a page with the %s shortcode on it, then choose it from this dropdown." msgstr "" -#: includes/class.cooked-recipe-meta.php:422 -#: includes/class.cooked-recipe-meta.php:1120 -#: includes/class.cooked-settings.php:222 -#: includes/class.cooked-shortcodes.php:450 -#: includes/class.cooked-shortcodes.php:690 -#: includes/class.cooked-shortcodes.php:697 -msgid "Total Time" +#: includes/class.cooked-settings.php:170 +msgid "" +"Note: This setting is required for the plugin to function properly." msgstr "" -#: includes/class.cooked-recipe-meta.php:430 -msgid "Recipe Notes" +#: includes/class.cooked-settings.php:176 +msgid "Recipes Per Page" msgstr "" -#: includes/class.cooked-recipe-meta.php:430 -msgid "The notes are displayed in the recipe." +#: includes/class.cooked-settings.php:178 +#, php-format +msgid "" +"Choose the default (set via the %s panel) or choose a different number here." msgstr "" -#: includes/class.cooked-recipe-meta.php:455 -msgid "Amount" +#: includes/class.cooked-settings.php:178 +msgid "Settings > Reading" msgstr "" -#: includes/class.cooked-recipe-meta.php:456 -msgid "Measurement" +#: includes/class.cooked-settings.php:184 +msgid "Recipe Taxonomies" msgstr "" -#: includes/class.cooked-recipe-meta.php:457 -msgid "Item" +#: includes/class.cooked-settings.php:185 +msgid "Choose which taxonomies you want to enable for your recipes." msgstr "" -#: includes/class.cooked-recipe-meta.php:495 -#: includes/class.cooked-recipe-meta.php:587 -#: includes/class.cooked-recipe-meta.php:653 -msgid "ex. Eggs, Milk, etc." +#: includes/class.cooked-settings.php:196 +msgid "Global Recipe Toggles" msgstr "" -#: includes/class.cooked-recipe-meta.php:504 -#: includes/class.cooked-recipe-meta.php:596 -#: includes/class.cooked-recipe-meta.php:662 -msgid "Substitution:" +#: includes/class.cooked-settings.php:197 +msgid "" +"You can quickly hide or show different recipe elements (site-wide) with " +"these checkboxes." msgstr "" -#: includes/class.cooked-recipe-meta.php:517 -#: includes/class.cooked-recipe-meta.php:609 -#: includes/class.cooked-recipe-meta.php:675 -msgid "ex. Apple Sauce, Tofu, etc." +#: includes/class.cooked-settings.php:223 +#: includes/class.cooked-measurements.php:202 +#: includes/class.cooked-recipes.php:799 +msgid "Servings" msgstr "" -#: includes/class.cooked-recipe-meta.php:528 -#: includes/class.cooked-recipe-meta.php:683 -#: includes/class.cooked-recipe-meta.php:755 -#: includes/class.cooked-recipe-meta.php:847 -msgid "Section Heading" +#: includes/class.cooked-settings.php:228 +msgid "Carbs Format" msgstr "" -#: includes/class.cooked-recipe-meta.php:532 -#: includes/class.cooked-recipe-meta.php:687 -#: includes/class.cooked-recipe-meta.php:759 -#: includes/class.cooked-recipe-meta.php:851 -msgid "Heading Element:" +#: includes/class.cooked-settings.php:229 +msgid "You can display carbs as \"Total\" or \"Net\"." msgstr "" -#: includes/class.cooked-recipe-meta.php:623 -msgid "Add Ingredient" +#: includes/class.cooked-settings.php:235 +msgid "Total Carbs" msgstr "" -#: includes/class.cooked-recipe-meta.php:624 -#: includes/class.cooked-recipe-meta.php:826 -msgid "Add Section Heading" +#: includes/class.cooked-settings.php:236 +msgid "Net Carbs" msgstr "" -#: includes/class.cooked-recipe-meta.php:825 -msgid "Add Direction" +#: includes/class.cooked-settings.php:241 +msgid "Author Name Format" msgstr "" -#: includes/class.cooked-recipe-meta.php:882 -msgid "Nutrition Information" +#: includes/class.cooked-settings.php:242 +msgid "You can show the full author's name or just a part of it." msgstr "" -#: includes/class.cooked-recipe-meta.php:920 -#: includes/class.cooked-shortcodes.php:1061 -msgid "Nutrition Facts" +#: includes/class.cooked-settings.php:248 +msgid "Full name" msgstr "" -#: includes/class.cooked-recipe-meta.php:938 -#: includes/class.cooked-shortcodes.php:1029 -msgid "Amount per serving" +#: includes/class.cooked-settings.php:249 +msgid "Full first name w/last name initial" msgstr "" -#: includes/class.cooked-recipe-meta.php:948 -#: includes/class.cooked-shortcodes.php:1039 -msgid "% Daily Value *" +#: includes/class.cooked-settings.php:250 +msgid "First name initial w/full last name" +msgstr "" + +#: includes/class.cooked-settings.php:251 +msgid "First name only" +msgstr "" + +#: includes/class.cooked-settings.php:256 +msgid "Author Links" msgstr "" -#: includes/class.cooked-recipe-meta.php:967 -#: includes/class.cooked-shortcodes.php:971 -msgid "Includes" +#: includes/class.cooked-settings.php:257 +msgid "" +"If you do not want the author names to link to the author recipe listings, " +"you can disable them here." msgstr "" -#: includes/class.cooked-recipe-meta.php:999 -#: includes/class.cooked-shortcodes.php:1065 +#: includes/class.cooked-settings.php:257 msgid "" -"The % Daily Value (DV) tells you how much a nutrient in a serving of food " -"contributes to a daily diet. 2,000 calories a day is used for general " -"nutrition advice." +"Note: Author links require the Browse/Search Recipes Page to be set " +"up correctly to function properly." msgstr "" -#: includes/class.cooked-recipe-meta.php:1015 -msgid "Recipe Gallery Type" +#: includes/class.cooked-settings.php:264 +msgid "Disable Author Links" msgstr "" -#: includes/class.cooked-recipe-meta.php:1028 -msgid "Choose one..." +#: includes/class.cooked-settings.php:269 +msgid "Default Category" msgstr "" -#. translators: a title for the video section of the recipe editor, where users can paste a YouToub or Vimeo URL into the field below. -#: includes/class.cooked-recipe-meta.php:1042 +#: includes/class.cooked-settings.php:271 #, php-format -msgid "%1$s or %2$s Video" +msgid "" +"Optionally set the default recipe category for your %s shortcode display." msgstr "" -#. translators: a message describing how to display a video from YouTube or Vimeo. -#: includes/class.cooked-recipe-meta.php:1046 +#: includes/class.cooked-settings.php:277 +msgid "Default Sort Order" +msgstr "" + +#: includes/class.cooked-settings.php:279 #, php-format -msgid "" -"If you would like to display a video as the first item in your gallery, you " -"can paste a valid %1$s or %2$s URL below." +msgid "Set the default sort order for your %s shortcode display." msgstr "" -#: includes/class.cooked-recipe-meta.php:1051 -msgid "Gallery Items" +#: includes/class.cooked-settings.php:285 +msgid "Newest First" msgstr "" -#: includes/class.cooked-recipe-meta.php:1082 -msgid "Recipe Information" +#: includes/class.cooked-settings.php:286 +msgid "Oldest First" msgstr "" -#: includes/class.cooked-recipe-meta.php:1083 -msgid "This will display the recipe author, cooking times, etc." +#: includes/class.cooked-settings.php:287 +msgid "Alphabetical" msgstr "" -#. translators: "include and exclude" section title -#. translators: "left and right" section title -#: includes/class.cooked-recipe-meta.php:1092 -#: includes/class.cooked-recipe-meta.php:1102 -#, php-format -msgid "\"%1$s\" and \"%2$s\"" +#: includes/class.cooked-settings.php:288 +msgid "Alphabetical (reversed)" msgstr "" -#: includes/class.cooked-recipe-meta.php:1094 -msgid "" -"This will allow you to include or exclude content from the shortcode output." +#: includes/class.cooked-settings.php:293 +msgid "Section Heading Default HTML Tag" msgstr "" -#: includes/class.cooked-recipe-meta.php:1103 -msgid "" -"Used like \"include\", but will position the content to the left or right." +#: includes/class.cooked-settings.php:295 +msgid "Set the default HTML tag for your section headings." msgstr "" -#: includes/class.cooked-recipe-meta.php:1113 -#: includes/class.cooked-recipe-meta.php:1159 -#: includes/class.cooked-recipe-meta.php:1190 -#: includes/class.cooked-recipe-meta.php:1215 -#: includes/class.cooked-recipe-meta.php:1239 -#: includes/class.cooked-recipe-meta.php:1299 -#: includes/class.cooked-recipe-meta.php:1344 -#: includes/class.cooked-recipe-meta.php:1374 -#: includes/class.cooked-recipe-meta.php:1419 -msgid "Available Variables" +#: includes/class.cooked-settings.php:301 +msgid "div" msgstr "" -#: includes/class.cooked-recipe-meta.php:1117 -#: includes/class.cooked-settings.php:215 -#: includes/class.cooked-shortcodes.php:445 -#: includes/class.cooked-shortcodes.php:623 -msgid "Author" +#: includes/class.cooked-settings.php:302 +msgid "h2" msgstr "" -#: includes/class.cooked-recipe-meta.php:1121 -#: includes/class.cooked-shortcodes.php:446 -#: includes/class.cooked-shortcodes.php:634 -msgid "Difficulty" +#: includes/class.cooked-settings.php:303 +msgid "h3" msgstr "" -#: includes/class.cooked-recipe-meta.php:1122 -msgid "Servings Switcher" +#: includes/class.cooked-settings.php:304 +msgid "h4" msgstr "" -#: includes/class.cooked-recipe-meta.php:1123 -#: includes/class.cooked-settings.php:216 -#: includes/class.cooked-shortcodes.php:717 -#: includes/class.cooked-shortcodes.php:720 -#: includes/class.cooked-taxonomies.php:39 -msgid "Category" +#: includes/class.cooked-settings.php:305 +msgid "h5" msgstr "" -#: includes/class.cooked-recipe-meta.php:1124 -msgid "Print Mode" +#: includes/class.cooked-settings.php:306 +msgid "h6" msgstr "" -#: includes/class.cooked-recipe-meta.php:1125 -msgid "Full-Screen Mode" +#: includes/class.cooked-settings.php:311 +msgid "WP Editor Roles" msgstr "" -#: includes/class.cooked-recipe-meta.php:1145 +#: includes/class.cooked-settings.php:312 msgid "" -"This will display the list of ingredients, added via the \"Ingredients\" tab." +"Choose which user roles can use the WP Editor for the Excerpt, Directions & " +"Notes fields." msgstr "" -#: includes/class.cooked-recipe-meta.php:1151 -msgid "This will allow you to hide or show the checkboxes:" +#: includes/class.cooked-settings.php:318 +msgid "Advanced Settings" msgstr "" -#: includes/class.cooked-recipe-meta.php:1161 -msgid "Show checkboxes" +#: includes/class.cooked-settings.php:328 +msgid "Disable Public Recipes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1162 -msgid "Hide checkboxes" +#: includes/class.cooked-settings.php:328 +#, php-format +msgid "Only show recipes using the %s shortcode." msgstr "" -#: includes/class.cooked-recipe-meta.php:1176 -msgid "" -"This will display the list of directions, added via the \"Directions\" tab." +#: includes/class.cooked-settings.php:330 +#, php-format +msgid "Disable %s Tags" msgstr "" -#: includes/class.cooked-recipe-meta.php:1182 -msgid "This will allow you to hide or show the numbers:" +#: includes/class.cooked-settings.php:330 +msgid "Prevents duplicates when tags already exist." msgstr "" -#: includes/class.cooked-recipe-meta.php:1192 -msgid "Show numbers" +#: includes/class.cooked-settings.php:331 +msgid "Disable \"Servings Switcher\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1193 -msgid "Hide numbers" +#: includes/class.cooked-settings.php:331 +msgid "Removes the servings dropdown on recipes." msgstr "" -#: includes/class.cooked-recipe-meta.php:1206 -msgid "Featured Image" +#: includes/class.cooked-settings.php:332 +msgid "Disable Recipe Schema Output" msgstr "" -#: includes/class.cooked-recipe-meta.php:1207 -msgid "This will display the featured image, if one is set." +#: includes/class.cooked-settings.php:332 +msgid "" +"You should only do this if you're using something else to output schema " +"information." msgstr "" -#: includes/class.cooked-recipe-meta.php:1217 -#: includes/class.cooked-recipe-meta.php:1241 -#: includes/class.cooked-recipe-meta.php:1346 -msgid "None" +#: includes/class.cooked-settings.php:333 +msgid "Disable Recipe Archive Page" msgstr "" -#: includes/class.cooked-recipe-meta.php:1230 -msgid "Nutrition Label" +#: includes/class.cooked-settings.php:333 +msgid "Prevents the recipe archive from being displayed." msgstr "" -#: includes/class.cooked-recipe-meta.php:1231 -msgid "This will display the Nutrition Facts label, if data is present." +#: includes/class.cooked-settings.php:340 +msgid "Design" msgstr "" -#: includes/class.cooked-recipe-meta.php:1257 +#: includes/class.cooked-settings.php:344 +msgid "Dark Mode" +msgstr "" + +#: includes/class.cooked-settings.php:345 msgid "" -"This will display the gallery, if one is set or created from the \"Gallery\" " -"tab." +"If your site has a dark background, you should enable \"Dark Mode\" so that " +"Cooked can match this style." msgstr "" -#: includes/class.cooked-recipe-meta.php:1265 -msgid "Set the width of the gallery." +#: includes/class.cooked-settings.php:351 +msgid "Enable \"Dark Mode\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1272 -msgid "Set the image size ratio." +#: includes/class.cooked-settings.php:356 +msgid "Author Images" msgstr "" -#: includes/class.cooked-recipe-meta.php:1282 -msgid "Set the navigation style." +#: includes/class.cooked-settings.php:357 +msgid "" +"If you do not want to display the author images (avatars), you can disable " +"them here." msgstr "" -#: includes/class.cooked-recipe-meta.php:1289 -msgid "Enable or disable \"Full-Screen\" mode." +#: includes/class.cooked-settings.php:364 +msgid "Hide Author Images" msgstr "" -#. translators: related to the width of slideshows: "80% or 300px" section title -#: includes/class.cooked-recipe-meta.php:1304 -#, php-format -msgid "ex: \"%1$s\" or \"%2$s\"" +#: includes/class.cooked-settings.php:369 +msgid "Main Color" msgstr "" -#. translators: related to the image ratio for slideshows: "ex: 800/600" section title -#: includes/class.cooked-recipe-meta.php:1309 -#, php-format -msgid "ex: \"%s\"" +#: includes/class.cooked-settings.php:370 +msgid "Used on buttons, cooking timer, etc." msgstr "" -#. translators: related to the navigation style for slideshows: "dots, thumbs or false" section title -#: includes/class.cooked-recipe-meta.php:1314 -#, php-format -msgid "\"%1$s\", \"%2$s\", or \"%3$s\"" +#: includes/class.cooked-settings.php:376 +msgid "Main Color (on hover)" msgstr "" -#. translators: related to allowing full screen for slideshows: "true or false" section title -#: includes/class.cooked-recipe-meta.php:1319 -#, php-format -msgid "\"%1$s\" or \"%2$s\"" +#: includes/class.cooked-settings.php:377 +msgid "Used when hovering over buttons." msgstr "" -#: includes/class.cooked-recipe-meta.php:1336 -msgid "" -"This will display the excerpt, if one is available from the \"Layout & " -"Content\" tab." +#: includes/class.cooked-settings.php:383 +msgid "First Responsive Breakpoint" msgstr "" -#: includes/class.cooked-recipe-meta.php:1360 -msgid "" -"This will display the notes, if one is available from the \"Layout & " -"Content\" tab." +#: includes/class.cooked-settings.php:384 +msgid "Set the first responsive breakpoint. Best for large tablets." msgstr "" -#: includes/class.cooked-recipe-meta.php:1366 -msgid "This will allow you to hide or show the header for the notes section:" +#: includes/class.cooked-settings.php:390 +msgid "Second Responsive Breakpoint" msgstr "" -#: includes/class.cooked-recipe-meta.php:1376 -msgid "Show header" +#: includes/class.cooked-settings.php:391 +msgid "Set the second responsive breakpoint. Best for small tablets." msgstr "" -#: includes/class.cooked-recipe-meta.php:1377 -msgid "Hide header" +#: includes/class.cooked-settings.php:397 +msgid "Third Responsive Breakpoint" msgstr "" -#: includes/class.cooked-recipe-meta.php:1391 -msgid "This will display a special link to start a cooking timer." +#: includes/class.cooked-settings.php:398 +msgid "" +"Set the third responsive breakpoint. Best for phones and other small devices." msgstr "" -#. translators: "seconds, minutes and hours" section title -#: includes/class.cooked-recipe-meta.php:1400 -#, php-format -msgid "\"%1$s\", \"%2$s\" and \"%3$s\"" +#: includes/class.cooked-settings.php:406 +msgid "Permalinks" msgstr "" -#: includes/class.cooked-recipe-meta.php:1402 -msgid "Use just one or a combination of all three to set the timer length" +#: includes/class.cooked-settings.php:410 +msgid "Recipe Permalink" msgstr "" -#: includes/class.cooked-recipe-meta.php:1409 -msgid "Add a short description for this timer, if applicable." +#: includes/class.cooked-settings.php:413 +msgid "recipe-name" msgstr "" -#: includes/class.cooked-recipe-meta.php:1421 -msgid "Time in seconds" +#: includes/class.cooked-settings.php:417 +msgid "Recipe Author Permalink" msgstr "" -#: includes/class.cooked-recipe-meta.php:1422 -msgid "Time in minutes" +#: includes/class.cooked-settings.php:420 +msgid "author-name" msgstr "" -#: includes/class.cooked-recipe-meta.php:1423 -msgid "Time in hours" +#: includes/class.cooked-settings.php:424 +msgid "Recipe Category Permalink" msgstr "" -#: includes/class.cooked-recipe-meta.php:1424 -msgid "Timer Description" +#: includes/class.cooked-settings.php:427 +msgid "recipe-category-name" msgstr "" -#. translators: stating the recipe author with a "By" in front of it. (ex: "By John Smith") -#. translators: referring to the author (ex: By John Smith) -#: includes/class.cooked-recipes.php:268 includes/class.cooked-recipes.php:322 -#: templates/front/recipe-single.php:47 +#: includes/class.cooked-settings.php:438 #, php-format -msgid "By %s" +msgid "WordPress Default %s" msgstr "" -#. translators: For showing "All" of a taxonomy (ex: "All Burgers") -#: includes/class.cooked-recipes.php:384 -#, php-format -msgid "All %s" +#: includes/class.cooked-settings.php:443 +msgid "Show All (no pagination)" msgstr "" -#: includes/class.cooked-recipes.php:651 -msgid "Beginner" +#: includes/class.cooked-settings.php:587 +msgid "Begin Migration" msgstr "" -#: includes/class.cooked-recipes.php:652 -msgid "Intermediate" +#: includes/class.cooked-roles.php:22 +msgid "Recipe Editor" msgstr "" -#: includes/class.cooked-recipes.php:653 -msgid "Advanced" +#: includes/class.cooked-measurements.php:29 +#: includes/class.cooked-measurements.php:30 +msgid "g" msgstr "" -#: includes/class.cooked-recipes.php:679 -msgid "Cooked Gallery" +#: includes/class.cooked-measurements.php:31 +msgid "gram" msgstr "" -#: includes/class.cooked-recipes.php:683 -msgid "Envira Gallery" +#: includes/class.cooked-measurements.php:32 +msgid "grams" msgstr "" -#: includes/class.cooked-recipes.php:687 -msgid "Soliloquy Slider" +#: includes/class.cooked-measurements.php:36 +#: includes/class.cooked-measurements.php:37 +msgid "kg" msgstr "" -#: includes/class.cooked-recipes.php:691 -msgid "Slider Revolution" +#: includes/class.cooked-measurements.php:38 +msgid "kilogram" msgstr "" -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:766 -#, php-format -msgid "Quarter (%s Serving)" -msgid_plural "Quarter (%s Servings)" -msgstr[0] "" -msgstr[1] "" - -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:769 -#, php-format -msgid "Half (%s Serving)" -msgid_plural "Half (%s Servings)" -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-measurements.php:39 +msgid "kilograms" +msgstr "" -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:772 -#, php-format -msgid "Default (%s Serving)" -msgid_plural "Default (%s Servings)" -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-measurements.php:43 +#: includes/class.cooked-measurements.php:44 +msgid "mg" +msgstr "" -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:775 -#, php-format -msgid "Double (%s Servings)" +#: includes/class.cooked-measurements.php:45 +msgid "milligram" msgstr "" -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:778 -#, php-format -msgid "Triple (%s Servings)" +#: includes/class.cooked-measurements.php:46 +msgid "milligrams" msgstr "" -#: includes/class.cooked-recipes.php:792 -#: includes/class.cooked-shortcodes.php:447 -msgid "Yields" +#: includes/class.cooked-measurements.php:50 +#: includes/class.cooked-measurements.php:51 +msgid "oz" msgstr "" -#. translators: singular and plural "serving" sizes -#: includes/class.cooked-recipes.php:796 includes/class.cooked-recipes.php:807 -#, php-format -msgid "%s Serving" -msgid_plural "%s Servings" -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-measurements.php:52 +msgid "ounce" +msgstr "" -#: includes/class.cooked-recipes.php:904 includes/class.cooked-recipes.php:918 -msgid "or" +#: includes/class.cooked-measurements.php:53 +msgid "ounces" msgstr "" -#. translators: singular and plural "steps" -#: includes/class.cooked-recipes.php:962 includes/class.cooked-seo.php:83 -#, php-format -msgid "Step %d" +#: includes/class.cooked-measurements.php:57 +#: includes/class.cooked-measurements.php:58 +msgid "fl oz" msgstr "" -#: includes/class.cooked-recipes.php:1022 -msgid "Browse" +#: includes/class.cooked-measurements.php:59 +msgid "fluid ounce" msgstr "" -#: includes/class.cooked-recipes.php:1039 -#: includes/class.cooked-settings.php:144 -msgid "No categories" +#: includes/class.cooked-measurements.php:60 +msgid "fluid ounces" msgstr "" -#: includes/class.cooked-recipes.php:1042 -#: includes/class.cooked-settings.php:191 -#: includes/class.cooked-taxonomies.php:38 -#: includes/class.cooked-taxonomies.php:48 -msgid "Categories" +#: includes/class.cooked-measurements.php:64 +#: includes/class.cooked-measurements.php:66 +msgid "cup" msgstr "" -#: includes/class.cooked-recipes.php:1044 -#: includes/class.cooked-taxonomies.php:41 -#: includes/widgets/recipe-categories.php:48 -msgid "All Categories" +#: includes/class.cooked-measurements.php:65 +#: includes/class.cooked-measurements.php:67 +msgid "cups" msgstr "" -#: includes/class.cooked-recipes.php:1114 -msgid "Find a recipe..." +#: includes/class.cooked-measurements.php:71 +#: includes/class.cooked-measurements.php:72 +msgid "tsp" msgstr "" -#: includes/class.cooked-recipes.php:1116 -msgid "Search" +#: includes/class.cooked-measurements.php:73 +msgid "teaspoon" msgstr "" -#: includes/class.cooked-recipes.php:1129 -msgid "Newest first" +#: includes/class.cooked-measurements.php:74 +msgid "teaspoons" msgstr "" -#: includes/class.cooked-recipes.php:1133 -msgid "Oldest first" +#: includes/class.cooked-measurements.php:78 +#: includes/class.cooked-measurements.php:79 +msgid "tbsp" msgstr "" -#: includes/class.cooked-recipes.php:1137 -msgid "Alphabetical (A-Z)" +#: includes/class.cooked-measurements.php:80 +msgid "tablespoon" msgstr "" -#: includes/class.cooked-recipes.php:1141 -msgid "Alphabetical (Z-A)" +#: includes/class.cooked-measurements.php:81 +msgid "tablespoons" msgstr "" -#: includes/class.cooked-roles.php:22 -msgid "Recipe Editor" +#: includes/class.cooked-measurements.php:85 +#: includes/class.cooked-measurements.php:86 +msgid "dl" msgstr "" -#: includes/class.cooked-settings.php:85 -msgid "Cooked settings has been updated!" +#: includes/class.cooked-measurements.php:87 +msgid "deciliter" msgstr "" -#: includes/class.cooked-settings.php:104 -msgid "Cooked Plugin Setup" +#: includes/class.cooked-measurements.php:88 +msgid "deciliters" msgstr "" -#: includes/class.cooked-settings.php:105 -#, php-format -msgid "To display your recipes properly, please set up your %s." +#: includes/class.cooked-measurements.php:92 +#: includes/class.cooked-measurements.php:93 +msgid "ml" msgstr "" -#: includes/class.cooked-settings.php:106 -#: includes/class.cooked-settings.php:168 -msgid "Browse/Search Recipes Page" +#: includes/class.cooked-measurements.php:94 +msgid "milliliter" msgstr "" -#: includes/class.cooked-settings.php:143 -msgid "Choose a page..." +#: includes/class.cooked-measurements.php:95 +msgid "milliliters" msgstr "" -#: includes/class.cooked-settings.php:143 -msgid "No pages" +#: includes/class.cooked-measurements.php:99 +#: includes/class.cooked-measurements.php:100 +msgid "l" msgstr "" -#: includes/class.cooked-settings.php:144 -msgid "No default" +#: includes/class.cooked-measurements.php:101 +msgid "liter" msgstr "" -#: includes/class.cooked-settings.php:164 -msgid "General" +#: includes/class.cooked-measurements.php:102 +msgid "liters" msgstr "" -#. translators: a description on how to add the [cooked-browse] shortcode to a page -#: includes/class.cooked-settings.php:170 -#, php-format -msgid "" -"Create a page with the %s shortcode on it, then choose it from this dropdown." +#: includes/class.cooked-measurements.php:106 +#: includes/class.cooked-measurements.php:108 +msgid "stick" msgstr "" -#. translators: a description on how to add the [cooked-browse] shortcode to a page -#: includes/class.cooked-settings.php:170 -msgid "" -"Note: This setting is required for the plugin to function properly." +#: includes/class.cooked-measurements.php:107 +#: includes/class.cooked-measurements.php:109 +msgid "sticks" msgstr "" -#: includes/class.cooked-settings.php:176 -msgid "Recipes Per Page" +#: includes/class.cooked-measurements.php:113 +msgid "lb" msgstr "" -#. translators: a description on how to choose the default number of recipes per page. -#: includes/class.cooked-settings.php:178 -#, php-format -msgid "" -"Choose the default (set via the %s panel) or choose a different number here." +#: includes/class.cooked-measurements.php:114 +msgid "lbs" msgstr "" -#. translators: a description on how to choose the default number of recipes per page. -#: includes/class.cooked-settings.php:178 -msgid "Settings > Reading" +#: includes/class.cooked-measurements.php:115 +msgid "pound" msgstr "" -#: includes/class.cooked-settings.php:184 -msgid "Recipe Taxonomies" +#: includes/class.cooked-measurements.php:116 +msgid "pounds" msgstr "" -#: includes/class.cooked-settings.php:185 -msgid "Choose which taxonomies you want to enable for your recipes." +#: includes/class.cooked-measurements.php:120 +#: includes/class.cooked-measurements.php:122 +msgid "dash" msgstr "" -#: includes/class.cooked-settings.php:196 -msgid "Global Recipe Toggles" +#: includes/class.cooked-measurements.php:121 +#: includes/class.cooked-measurements.php:123 +msgid "dashes" msgstr "" -#: includes/class.cooked-settings.php:197 -msgid "" -"You can quickly hide or show different recipe elements (site-wide) with " -"these checkboxes." +#: includes/class.cooked-measurements.php:127 +#: includes/class.cooked-measurements.php:129 +msgid "drop" msgstr "" -#: includes/class.cooked-settings.php:228 -msgid "Carbs Format" +#: includes/class.cooked-measurements.php:128 +#: includes/class.cooked-measurements.php:130 +msgid "drops" msgstr "" -#: includes/class.cooked-settings.php:229 -msgid "You can display carbs as \"Total\" or \"Net\"." +#: includes/class.cooked-measurements.php:134 +msgid "gal" msgstr "" -#: includes/class.cooked-settings.php:235 -msgid "Total Carbs" +#: includes/class.cooked-measurements.php:135 +msgid "gals" msgstr "" -#: includes/class.cooked-settings.php:236 -msgid "Net Carbs" +#: includes/class.cooked-measurements.php:136 +msgid "gallon" msgstr "" -#: includes/class.cooked-settings.php:241 -msgid "Author Name Format" +#: includes/class.cooked-measurements.php:137 +msgid "gallons" msgstr "" -#: includes/class.cooked-settings.php:242 -msgid "You can show the full author's name or just a part of it." +#: includes/class.cooked-measurements.php:141 +#: includes/class.cooked-measurements.php:143 +msgid "pinch" msgstr "" -#: includes/class.cooked-settings.php:248 -msgid "Full name" +#: includes/class.cooked-measurements.php:142 +#: includes/class.cooked-measurements.php:144 +msgid "pinches" msgstr "" -#: includes/class.cooked-settings.php:249 -msgid "Full first name w/last name initial" +#: includes/class.cooked-measurements.php:148 +#: includes/class.cooked-measurements.php:149 +msgid "pt" msgstr "" -#: includes/class.cooked-settings.php:250 -msgid "First name initial w/full last name" +#: includes/class.cooked-measurements.php:150 +msgid "pint" msgstr "" -#: includes/class.cooked-settings.php:251 -msgid "First name only" +#: includes/class.cooked-measurements.php:151 +msgid "pints" msgstr "" -#: includes/class.cooked-settings.php:256 -msgid "Author Links" +#: includes/class.cooked-measurements.php:155 +msgid "qt" msgstr "" -#: includes/class.cooked-settings.php:257 -msgid "" -"If you do not want the author names to link to the author recipe listings, " -"you can disable them here." +#: includes/class.cooked-measurements.php:156 +msgid "qts" msgstr "" -#: includes/class.cooked-settings.php:257 -msgid "" -"Note: Author links require the Browse/Search Recipes Page to be set " -"up correctly to function properly." +#: includes/class.cooked-measurements.php:157 +msgid "quart" msgstr "" -#: includes/class.cooked-settings.php:264 -msgid "Disable Author Links" +#: includes/class.cooked-measurements.php:158 +msgid "quarts" msgstr "" -#: includes/class.cooked-settings.php:269 -msgid "Default Category" +#: includes/class.cooked-measurements.php:162 +#: includes/class.cooked-measurements.php:163 +msgid "drizzle" msgstr "" -#. translators: a description on how to set the default recipe category for the [cooked-browse] shortcode. -#: includes/class.cooked-settings.php:271 -#, php-format -msgid "" -"Optionally set the default recipe category for your %s shortcode display." +#: includes/class.cooked-measurements.php:164 +#: includes/class.cooked-measurements.php:165 +msgid "Drizzle" msgstr "" -#: includes/class.cooked-settings.php:277 -msgid "Default Sort Order" +#: includes/class.cooked-measurements.php:169 +#: includes/class.cooked-measurements.php:171 +msgid "clove" msgstr "" -#. translators: a description on how to set the default sort order for the [cooked-browse] shortcode. -#: includes/class.cooked-settings.php:279 -#, php-format -msgid "Set the default sort order for your %s shortcode display." +#: includes/class.cooked-measurements.php:170 +#: includes/class.cooked-measurements.php:172 +msgid "cloves" msgstr "" -#: includes/class.cooked-settings.php:285 -msgid "Newest First" +#: includes/class.cooked-measurements.php:176 +#: includes/class.cooked-measurements.php:178 +msgid "jar" msgstr "" -#: includes/class.cooked-settings.php:286 -msgid "Oldest First" +#: includes/class.cooked-measurements.php:177 +#: includes/class.cooked-measurements.php:179 +msgid "jars" msgstr "" -#: includes/class.cooked-settings.php:287 -msgid "Alphabetical" +#: includes/class.cooked-measurements.php:183 +#: includes/class.cooked-measurements.php:185 +msgid "can" msgstr "" -#: includes/class.cooked-settings.php:288 -msgid "Alphabetical (reversed)" +#: includes/class.cooked-measurements.php:184 +#: includes/class.cooked-measurements.php:186 +msgid "cans" msgstr "" -#: includes/class.cooked-settings.php:293 -msgid "Section Heading Default HTML Tag" +#: includes/class.cooked-measurements.php:206 +msgid "Serving size" msgstr "" -#. translators: a description on how to set the default sort order for the [cooked-browse] shortcode. -#: includes/class.cooked-settings.php:295 -msgid "Set the default HTML tag for your section headings." +#: includes/class.cooked-measurements.php:213 +msgid "Calories" msgstr "" -#: includes/class.cooked-settings.php:301 -msgid "div" +#: includes/class.cooked-measurements.php:220 +msgid "Total Fat" msgstr "" -#: includes/class.cooked-settings.php:302 -msgid "h2" +#: includes/class.cooked-measurements.php:226 +msgid "Saturated Fat" msgstr "" -#: includes/class.cooked-settings.php:303 -msgid "h3" +#: includes/class.cooked-measurements.php:232 +msgid "Trans Fat" msgstr "" -#: includes/class.cooked-settings.php:304 -msgid "h4" +#: includes/class.cooked-measurements.php:233 +msgid "Trans Fat" msgstr "" -#: includes/class.cooked-settings.php:305 -msgid "h5" +#: includes/class.cooked-measurements.php:238 +msgid "Monounsaturated Fat" msgstr "" -#: includes/class.cooked-settings.php:306 -msgid "h6" +#: includes/class.cooked-measurements.php:243 +msgid "Polyunsaturated Fat" msgstr "" -#: includes/class.cooked-settings.php:311 -msgid "WP Editor Roles" +#: includes/class.cooked-measurements.php:250 +msgid "Cholesterol" msgstr "" -#: includes/class.cooked-settings.php:312 -msgid "" -"Choose which user roles can use the WP Editor for the Excerpt, Directions & " -"Notes fields." +#: includes/class.cooked-measurements.php:256 +msgid "Sodium" msgstr "" -#: includes/class.cooked-settings.php:318 -msgid "Advanced Settings" +#: includes/class.cooked-measurements.php:262 +msgid "Total Carbohydrate" msgstr "" -#. translators: an option to only show recipes with the [cooked-recipe] shortcode. -#: includes/class.cooked-settings.php:328 -msgid "Disable Public Recipes" +#: includes/class.cooked-measurements.php:262 +msgid "Net Carbohydrate" msgstr "" -#. translators: an option to only show recipes with the [cooked-recipe] shortcode. -#: includes/class.cooked-settings.php:328 -#, php-format -msgid "Only show recipes using the %s shortcode." +#: includes/class.cooked-measurements.php:268 +msgid "Dietary Fiber" msgstr "" -#. translators: an option to disable "meta" tags. -#: includes/class.cooked-settings.php:330 -#, php-format -msgid "Disable %s Tags" +#: includes/class.cooked-measurements.php:274 +msgid "Total Sugars" msgstr "" -#. translators: an option to disable "meta" tags. -#: includes/class.cooked-settings.php:330 -msgid "Prevents duplicates when tags already exist." +#: includes/class.cooked-measurements.php:280 +msgid "Added Sugars" msgstr "" -#: includes/class.cooked-settings.php:331 -msgid "Disable \"Servings Switcher\"" +#: includes/class.cooked-measurements.php:288 +msgid "Protein" msgstr "" -#: includes/class.cooked-settings.php:331 -msgid "Removes the servings dropdown on recipes." +#: includes/class.cooked-measurements.php:297 +msgid "Vitamin A" msgstr "" -#: includes/class.cooked-settings.php:332 -msgid "Disable Recipe Schema Output" +#: includes/class.cooked-measurements.php:303 +msgid "Vitamin C" msgstr "" -#: includes/class.cooked-settings.php:332 -msgid "" -"You should only do this if you're using something else to output schema " -"information." +#: includes/class.cooked-measurements.php:309 +msgid "Calcium" msgstr "" -#: includes/class.cooked-settings.php:333 -msgid "Disable Recipe Archive Page" +#: includes/class.cooked-measurements.php:315 +msgid "Iron" msgstr "" -#: includes/class.cooked-settings.php:333 -msgid "Prevents the recipe archive from being displayed." +#: includes/class.cooked-measurements.php:321 +msgid "Potassium" msgstr "" -#: includes/class.cooked-settings.php:340 -msgid "Design" +#: includes/class.cooked-measurements.php:327 +msgid "Vitamin D" msgstr "" -#: includes/class.cooked-settings.php:344 -msgid "Dark Mode" +#: includes/class.cooked-measurements.php:333 +msgid "Vitamin E" msgstr "" -#: includes/class.cooked-settings.php:345 -msgid "" -"If your site has a dark background, you should enable \"Dark Mode\" so that " -"Cooked can match this style." +#: includes/class.cooked-measurements.php:339 +msgid "Vitamin K" msgstr "" -#: includes/class.cooked-settings.php:351 -msgid "Enable \"Dark Mode\"" +#: includes/class.cooked-measurements.php:345 +msgid "Thiamin" msgstr "" -#: includes/class.cooked-settings.php:356 -msgid "Author Images" +#: includes/class.cooked-measurements.php:351 +msgid "Riboflavin" msgstr "" -#: includes/class.cooked-settings.php:357 -msgid "" -"If you do not want to display the author images (avatars), you can disable " -"them here." +#: includes/class.cooked-measurements.php:357 +msgid "Niacin" msgstr "" -#: includes/class.cooked-settings.php:364 -msgid "Hide Author Images" +#: includes/class.cooked-measurements.php:363 +msgid "Vitamin B6" msgstr "" -#: includes/class.cooked-settings.php:369 -msgid "Main Color" +#: includes/class.cooked-measurements.php:369 +msgid "Folate" msgstr "" -#: includes/class.cooked-settings.php:370 -msgid "Used on buttons, cooking timer, etc." +#: includes/class.cooked-measurements.php:375 +msgid "Vitamin B12" msgstr "" -#: includes/class.cooked-settings.php:376 -msgid "Main Color (on hover)" +#: includes/class.cooked-measurements.php:381 +msgid "Biotin" msgstr "" -#: includes/class.cooked-settings.php:377 -msgid "Used when hovering over buttons." +#: includes/class.cooked-measurements.php:387 +msgid "Pantothenic Acid" msgstr "" -#: includes/class.cooked-settings.php:383 -msgid "First Responsive Breakpoint" +#: includes/class.cooked-measurements.php:393 +msgid "Phosphorus" msgstr "" -#: includes/class.cooked-settings.php:384 -msgid "Set the first responsive breakpoint. Best for large tablets." +#: includes/class.cooked-measurements.php:399 +msgid "Iodine" msgstr "" -#: includes/class.cooked-settings.php:390 -msgid "Second Responsive Breakpoint" +#: includes/class.cooked-measurements.php:405 +msgid "Magnesium" msgstr "" -#: includes/class.cooked-settings.php:391 -msgid "Set the second responsive breakpoint. Best for small tablets." +#: includes/class.cooked-measurements.php:411 +msgid "Zinc" msgstr "" -#: includes/class.cooked-settings.php:397 -msgid "Third Responsive Breakpoint" +#: includes/class.cooked-measurements.php:417 +msgid "Selenium" msgstr "" -#: includes/class.cooked-settings.php:398 -msgid "" -"Set the third responsive breakpoint. Best for phones and other small devices." +#: includes/class.cooked-measurements.php:423 +msgid "Copper" msgstr "" -#: includes/class.cooked-settings.php:406 -msgid "Permalinks" +#: includes/class.cooked-measurements.php:429 +msgid "Manganese" msgstr "" -#: includes/class.cooked-settings.php:410 -msgid "Recipe Permalink" +#: includes/class.cooked-measurements.php:435 +msgid "Chromium" msgstr "" -#: includes/class.cooked-settings.php:413 -msgid "recipe-name" +#: includes/class.cooked-measurements.php:441 +msgid "Molybdenum" msgstr "" -#: includes/class.cooked-settings.php:417 -msgid "Recipe Author Permalink" +#: includes/class.cooked-measurements.php:447 +msgid "Chloride" msgstr "" -#: includes/class.cooked-settings.php:420 -msgid "author-name" +#: includes/class.cooked-measurements.php:703 +#: includes/class.cooked-measurements.php:714 +#: includes/class.cooked-measurements.php:732 +#, php-format +msgid "%d min" msgstr "" -#: includes/class.cooked-settings.php:424 -msgid "Recipe Category Permalink" +#: includes/class.cooked-measurements.php:703 +#: includes/class.cooked-measurements.php:714 +#: includes/class.cooked-measurements.php:732 +#, php-format +msgid "%d mins" msgstr "" -#: includes/class.cooked-settings.php:427 -msgid "recipe-category-name" +#: includes/class.cooked-measurements.php:712 +#: includes/class.cooked-measurements.php:730 +#, php-format +msgid "%d hr" msgstr "" -#. translators: posts_per_page default -#: includes/class.cooked-settings.php:438 +#: includes/class.cooked-measurements.php:712 +#: includes/class.cooked-measurements.php:730 #, php-format -msgid "WordPress Default %s" +msgid "%d hrs" msgstr "" -#: includes/class.cooked-settings.php:443 -msgid "Show All (no pagination)" +#: includes/class.cooked-measurements.php:728 +#, php-format +msgid "%d day" msgstr "" -#: includes/class.cooked-settings.php:587 -msgid "Begin Migration" +#: includes/class.cooked-measurements.php:728 +#, php-format +msgid "%d days" msgstr "" -#. translators: referring to the bottom of the Settings page. #: includes/class.cooked-shortcodes.php:149 #, php-format msgid "" @@ -1989,301 +2005,280 @@ msgstr "" msgid "(recipe not found or in draft status)" msgstr "" +#: includes/class.cooked-shortcodes.php:447 +#: includes/class.cooked-recipes.php:792 +msgid "Yields" +msgstr "" + #: includes/class.cooked-shortcodes.php:661 msgid "Fullscreen" msgstr "" -#: includes/class.cooked-taxonomies.php:40 -msgid "Search Categories" +#: includes/class.cooked-admin-enqueues.php:137 +msgid "remaining" msgstr "" -#: includes/class.cooked-taxonomies.php:42 -#: includes/widgets/recipe-categories.php:45 -msgid "Parent Category" +#: includes/class.cooked-admin-enqueues.php:140 +msgid "Use this Image" msgstr "" -#: includes/class.cooked-taxonomies.php:43 -msgid "Parent Category:" +#: includes/class.cooked-admin-enqueues.php:142 +msgid "Edit Gallery Item" msgstr "" -#: includes/class.cooked-taxonomies.php:44 -msgid "Edit Category" +#: includes/class.cooked-admin-enqueues.php:143 +msgid "Update Gallery Item" msgstr "" -#: includes/class.cooked-taxonomies.php:45 -msgid "Update Category" +#: includes/class.cooked-admin-enqueues.php:144 +msgid "Saved" msgstr "" -#: includes/class.cooked-taxonomies.php:46 -msgid "Add New Category" +#: includes/class.cooked-admin-enqueues.php:145 +msgid "Applied" msgstr "" -#: includes/class.cooked-taxonomies.php:47 -msgid "New Category Name" +#: includes/class.cooked-admin-enqueues.php:146 +msgid "" +"Are you sure you want to apply this new template to all of your recipes?" msgstr "" -#: includes/class.cooked-taxonomies.php:49 -msgid "No Categories" +#: includes/class.cooked-admin-enqueues.php:147 +msgid "" +"Are you sure you want to reset this recipe template to the Cooked plugin " +"default?" msgstr "" -#. translators: for displaying singular or plural versions depending on the number. -#: includes/class.cooked-taxonomies.php:136 +#: includes/class.cooked-admin-enqueues.php:149 #, php-format -msgid "%s Recipe" -msgid_plural "%s Recipes" -msgstr[0] "" -msgstr[1] "" - -#: includes/class.cooked-widgets.php:38 -msgid "Edit Recipe(s)..." -msgstr "" - -#: includes/class.cooked-widgets.php:38 includes/class.cooked-widgets.php:40 -msgid "Choose recipe(s)..." -msgstr "" - -#: includes/widgets/nutrition.php:31 includes/widgets/search.php:37 -msgid "Title (optional):" +msgid "Please confirm that you are ready to migrate all %s recipes." msgstr "" -#: includes/widgets/recipe-card.php:75 -#: includes/widgets/recipe-categories.php:40 -#: includes/widgets/recipe-list.php:48 -msgid "Widget Title (optional):" +#: includes/class.cooked-admin-enqueues.php:150 +msgid "Please confirm that you are ready to import all recipes." msgstr "" -#: includes/widgets/recipe-card.php:80 -msgid "Recipe:" +#: includes/class.cooked-admin-enqueues.php:151 +msgid "Are you sure you want to import recipes from this CSV file?" msgstr "" -#: includes/widgets/recipe-card.php:89 -msgid "Style:" +#: includes/class.cooked-admin-enqueues.php:152 +msgid "Please select a CSV file." msgstr "" -#: includes/widgets/recipe-card.php:91 -msgid "Simple" +#: includes/class.cooked-admin-enqueues.php:153 +msgid "Please select a valid CSV file." msgstr "" -#: includes/widgets/recipe-card.php:92 -msgid "Simple Centered" +#: includes/class.cooked-admin-enqueues.php:154 +msgid "Uploading..." msgstr "" -#: includes/widgets/recipe-card.php:93 -msgid "Modern" +#: includes/class.cooked-admin-enqueues.php:155 +msgid "Processing..." msgstr "" -#: includes/widgets/recipe-card.php:94 -msgid "Modern Centered" +#: includes/class.cooked-admin-enqueues.php:156 +msgid "recipes imported" msgstr "" -#: includes/widgets/recipe-card.php:99 includes/widgets/recipe-list.php:83 -msgid "Width:" +#: includes/class.cooked-admin-enqueues.php:157 +msgid "Errors:" msgstr "" -#: includes/widgets/recipe-card.php:105 includes/widgets/recipe-list.php:89 -msgid "Hide Image" +#: includes/class.cooked-admin-enqueues.php:158 +msgid "Import failed." msgstr "" -#: includes/widgets/recipe-card.php:110 -msgid "Hide Title" +#: includes/class.cooked-admin-enqueues.php:159 +msgid "Failed to process CSV file." msgstr "" -#: includes/widgets/recipe-card.php:115 includes/widgets/recipe-list.php:94 -msgid "Hide Author" +#: includes/class.cooked-admin-enqueues.php:160 +msgid "Failed to upload CSV file." msgstr "" -#: includes/widgets/recipe-card.php:120 -msgid "Hide Excerpt" +#: includes/class.cooked-admin-enqueues.php:162 +msgid "Something went wrong" msgstr "" -#: includes/widgets/recipe-categories.php:58 -msgid "Hide Empty Categories" +#: includes/class.cooked-admin-enqueues.php:163 +msgid "hrs" msgstr "" -#: includes/widgets/recipe-list.php:53 -msgid "Sorted by:" +#: includes/class.cooked-admin-enqueues.php:164 +msgid "mins" msgstr "" -#: includes/widgets/recipe-list.php:55 -msgid "Most Recent" +#: includes/class.cooked-recipes.php:209 +#, php-format +msgid " AND ( %s OR %s ) " msgstr "" -#: includes/widgets/recipe-list.php:56 -msgid "Choose Recipes" +#: includes/class.cooked-recipes.php:268 includes/class.cooked-recipes.php:322 +#, php-format +msgid "By %s" msgstr "" -#: includes/widgets/recipe-list.php:62 -msgid "Show:" +#: includes/class.cooked-recipes.php:384 +#, php-format +msgid "All %s" msgstr "" -#: includes/widgets/recipe-list.php:73 -msgid "Recipes:" +#: includes/class.cooked-recipes.php:651 +msgid "Beginner" msgstr "" -#: includes/widgets/search.php:42 -msgid "Size:" +#: includes/class.cooked-recipes.php:652 +msgid "Intermediate" msgstr "" -#: includes/widgets/search.php:44 -msgid "Compact" +#: includes/class.cooked-recipes.php:653 +msgid "Advanced" msgstr "" -#: includes/widgets/search.php:45 -msgid "Wide" +#: includes/class.cooked-recipes.php:679 +msgid "Cooked Gallery" msgstr "" -#: includes/widgets/search.php:51 -msgid "Hide \"Browse\" dropdown" +#: includes/class.cooked-recipes.php:683 +msgid "Envira Gallery" msgstr "" -#: includes/widgets/search.php:56 -msgid "Hide \"Sorting\" dropdown" +#: includes/class.cooked-recipes.php:687 +msgid "Soliloquy Slider" msgstr "" -#: templates/admin/import.php:6 -msgid "Cooked Import" +#: includes/class.cooked-recipes.php:691 +msgid "Slider Revolution" msgstr "" -#. translators: referring to "Cooked Pro" -#: templates/admin/pro.php:10 +#: includes/class.cooked-recipes.php:766 #, php-format -msgid "Ready for %s?" +msgid "Quarter (%s Serving)" msgstr "" -#. translators: referring to "Cooked Pro" -#: templates/admin/pro.php:14 +#: includes/class.cooked-recipes.php:769 #, php-format -msgid "" -"The %s upgrade adds loads of new features like ratings, favorites, user " -"profiles, automatic nutrition information and more. Check out the list below " -"for all of the details." -msgstr "" - -#: templates/admin/pro.php:23 -msgid "Premium Support" -msgstr "" - -#: templates/admin/pro.php:24 -msgid "User Profiles" +msgid "Half (%s Serving)" msgstr "" -#: templates/admin/pro.php:25 -msgid "User Ratings" +#: includes/class.cooked-recipes.php:772 +#, php-format +msgid "Default (%s Serving)" msgstr "" -#: templates/admin/pro.php:26 -msgid "User Favorites" +#: includes/class.cooked-recipes.php:775 +#, php-format +msgid "Double (%s Servings)" msgstr "" -#: templates/admin/pro.php:27 -msgid "Ingredient Links" +#: includes/class.cooked-recipes.php:778 +#, php-format +msgid "Triple (%s Servings)" msgstr "" -#: templates/admin/pro.php:30 -msgid "Social Sharing" +#: includes/class.cooked-recipes.php:796 includes/class.cooked-recipes.php:807 +#, php-format +msgid "%s Serving" msgstr "" -#: templates/admin/pro.php:31 -msgid "Recipe Submissions" +#: includes/class.cooked-recipes.php:904 includes/class.cooked-recipes.php:918 +msgid "or" msgstr "" -#: templates/admin/pro.php:32 -msgid "Modern Grid Layout" +#: includes/class.cooked-recipes.php:1022 +msgid "Browse" msgstr "" -#: templates/admin/pro.php:33 -msgid "Full-Width Layout" +#: includes/class.cooked-recipes.php:1114 +msgid "Find a recipe..." msgstr "" -#: templates/admin/pro.php:34 -msgid "Pagination Options" +#: includes/class.cooked-recipes.php:1116 +msgid "Search" msgstr "" -#: templates/admin/pro.php:35 -msgid "Auto Nutrition Facts" +#: includes/class.cooked-recipes.php:1129 +msgid "Newest first" msgstr "" -#: templates/admin/pro.php:38 -msgid "Compact List Layout" +#: includes/class.cooked-recipes.php:1133 +msgid "Oldest first" msgstr "" -#: templates/admin/pro.php:39 -msgid "Fitness Layout" +#: includes/class.cooked-recipes.php:1137 +msgid "Alphabetical (A-Z)" msgstr "" -#: templates/admin/pro.php:40 -msgid "Cuisines" +#: includes/class.cooked-recipes.php:1141 +msgid "Alphabetical (Z-A)" msgstr "" -#: templates/admin/pro.php:41 -msgid "Cooking Methods" +#: includes/class.cooked-updates.php:118 +#, php-format +msgid "Cooked: Updated from version %s to %s" msgstr "" -#: templates/admin/pro.php:42 -msgid "Tags" +#: includes/class.cooked-updates.php:134 +#, php-format +msgid "Cooked: Error running update method %s: %s" msgstr "" -#. translators: referring to "Cooked Pro" -#: templates/admin/pro.php:48 +#: includes/class.cooked-updates.php:248 #, php-format -msgid "Get %s" +msgid "" +"Cooked: Fixed line endings in %d recipes for WordPress exporter/importer " +"compatibility." msgstr "" -#. translators: referring to the "COOKED10" coupon code to get "10%" off Cooked Pro -#: templates/admin/pro.php:52 +#: includes/class.cooked-migration.php:47 #, php-format -msgid "Use coupon code %1$s for %2$s off!" +msgid "" +"There is %1$s recipe that should be migrated from %2$s to take advantage of " +"new features and reliability." msgstr "" -#: templates/admin/settings.php:6 -msgid "Update Settings" +#: includes/class.cooked-migration.php:49 +msgid "" +"Please click the button below to migrate these recipes. Here is what will " +"happen to your recipes:" msgstr "" -#: templates/admin/settings.php:10 templates/admin/welcome.php:33 -msgid "Cooked Settings" +#: includes/class.cooked-migration.php:51 +msgid "NO DATA LOSS, all fields will be remapped." msgstr "" -#. translators: referring to "Cooked" -#: templates/admin/welcome.php:10 -#, php-format -msgid "Thanks for using %s!" +#: includes/class.cooked-migration.php:52 +msgid "Remapped fields will greatly speed up recipe loading times." msgstr "" -#: templates/admin/welcome.php:16 -#, php-format +#: includes/class.cooked-migration.php:53 msgid "" -"If this is your first time using %1$s, head over to the %2$s page for some " -"initial configuration. You can also check out the %3$s if you get stuck or " -"contact me on %4$s. If you just recently updated, you can find out what's " -"new below." -msgstr "" - -#: templates/admin/welcome.php:19 -msgid "documentation" -msgstr "" - -#: templates/admin/welcome.php:20 templates/admin/welcome.php:32 -msgid "Discord" +"If recipe excerpt exists, the short description will be moved to the top of " +"the recipe template." msgstr "" -#: templates/admin/welcome.php:29 -msgid "Quick Links" +#: includes/class.cooked-migration.php:54 +msgid "" +"If no recipe excerpt exists, the short description will be used instead." msgstr "" -#: templates/admin/welcome.php:31 -msgid "Documentation" +#: includes/class.cooked-migration.php:55 +msgid "Version number will be applied to each recipe." msgstr "" -#: templates/admin/welcome.php:34 -msgid "Create a Recipe" +#: includes/class.cooked-migration.php:65 +msgid "Migration" msgstr "" -#. translators: referring to the author (ex: Recipes by John Smith) -#: templates/front/recipe-list.php:37 +#: includes/class.cooked-migration.php:90 #, php-format -msgid "Recipes by %s" +msgid "" +"There is %1$s recipe that is from an older version of Cooked. Please %2$s to " +"migrate this recipe." msgstr "" -#: templates/front/recipe-list.php:38 -msgid "View all recipes" +#: includes/class.cooked-migration.php:90 +msgid "click here" msgstr "" diff --git a/languages/cooked.pot b/languages/cooked.pot index 5ad3cb8..5734553 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -1,887 +1,949 @@ -# Copyright (C) 2025 Gora Tech -# This file is distributed under the GPL2. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the Cooked - Recipe Management package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: Cooked - Recipe Management 1.12.0\n" +"Project-Id-Version: Cooked - Recipe Management 1.11.2\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cooked\n" +"POT-Creation-Date: 2026-01-09 20:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2025-12-28T15:29:21-05:00\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"X-Generator: WP-CLI 2.12.0\n" -"X-Domain: cooked\n" -#. Plugin Name of the plugin -#: cooked.php -msgid "Cooked - Recipe Management" +#: includes/class.cooked-csv-import.php:39 +msgid "Cooked_Recipes class not found. Plugin may not be properly loaded." msgstr "" -#. Plugin URI of the plugin -#: cooked.php -msgid "https://wordpress.org/plugins/cooked/" +#: includes/class.cooked-csv-import.php:44 +msgid "Cooked_Measurements class not found. Plugin may not be properly loaded." msgstr "" -#. Description of the plugin -#: cooked.php -msgid "A recipe plugin for WordPress." +#: includes/class.cooked-csv-import.php:49 +msgid "Cooked_Recipe_Meta class not found. Plugin may not be properly loaded." msgstr "" -#. Author of the plugin -#: cooked.php -msgid "Gora Tech" +#: includes/class.cooked-csv-import.php:54 +msgid "CSV file not found." msgstr "" -#. Author URI of the plugin -#: cooked.php -msgid "https://goratech.dev" +#: includes/class.cooked-csv-import.php:61 +msgid "Could not open CSV file." msgstr "" -#: includes/class.cooked-admin-enqueues.php:137 -msgid "remaining" +#: includes/class.cooked-csv-import.php:68 +msgid "CSV file is empty or invalid." msgstr "" -#: includes/class.cooked-admin-enqueues.php:138 -#: includes/class.cooked-recipe-meta.php:739 -#: includes/class.cooked-recipe-meta.php:794 -#: includes/class.cooked-recipe-meta.php:834 -msgid "Add Image" +#: includes/class.cooked-csv-import.php:79 +msgid "CSV file must contain a \"title\" column." msgstr "" -#: includes/class.cooked-admin-enqueues.php:139 -#: includes/class.cooked-recipe-meta.php:739 -msgid "Change Image" +#: includes/class.cooked-csv-import.php:106 +msgid "Unknown error" msgstr "" -#: includes/class.cooked-admin-enqueues.php:140 -msgid "Use this Image" +#: includes/class.cooked-csv-import.php:107 +#: includes/class.cooked-csv-import.php:114 +#, php-format +msgid "Row %d: %s" msgstr "" -#: includes/class.cooked-admin-enqueues.php:141 -#: includes/class.cooked-recipe-meta.php:1066 -msgid "Add to Gallery" +#: includes/class.cooked-csv-import.php:140 +msgid "Title is required" msgstr "" -#: includes/class.cooked-admin-enqueues.php:142 -msgid "Edit Gallery Item" +#: includes/class.cooked-csv-import.php:323 +#: includes/class.cooked-recipe-meta.php:157 +#: includes/class.cooked-recipe-meta.php:244 +#: includes/class.cooked-recipe-meta.php:1144 +#: includes/class.cooked-functions.php:134 includes/class.cooked-ajax.php:180 +#: includes/class.cooked-recipes.php:636 +msgid "Ingredients" msgstr "" -#: includes/class.cooked-admin-enqueues.php:143 -msgid "Update Gallery Item" +#: includes/class.cooked-csv-import.php:323 +#: includes/class.cooked-recipe-meta.php:157 +#: includes/class.cooked-recipe-meta.php:250 +#: includes/class.cooked-recipe-meta.php:1175 +#: includes/class.cooked-functions.php:135 includes/class.cooked-ajax.php:180 +#: includes/class.cooked-recipes.php:640 +msgid "Directions" msgstr "" -#: includes/class.cooked-admin-enqueues.php:144 -msgid "Saved" +#: includes/class.cooked-yoastseo.php:33 +#: includes/class.cooked-rankmathseo.php:37 +msgid "Current recipe category being viewed." msgstr "" -#: includes/class.cooked-admin-enqueues.php:145 -msgid "Applied" +#: includes/class.cooked-recipe-meta.php:98 +#: includes/class.cooked-admin-menus.php:45 +#: includes/class.cooked-admin-menus.php:65 +#: includes/class.cooked-shortcodes.php:149 +msgid "Settings" msgstr "" -#: includes/class.cooked-admin-enqueues.php:146 -msgid "Are you sure you want to apply this new template to all of your recipes?" +#: includes/class.cooked-recipe-meta.php:202 +msgid "Display Recipe" msgstr "" -#: includes/class.cooked-admin-enqueues.php:147 -msgid "Are you sure you want to reset this recipe template to the Cooked plugin default?" +#: includes/class.cooked-recipe-meta.php:203 +msgid "" +"This shortcode displays the recipe in its entirety, using the \"Recipe " +"Template\" field in the first tab." msgstr "" -#. translators: confirmation for migrating all ### recipes, where ### displays the total number for the migration. -#: includes/class.cooked-admin-enqueues.php:149 -#, php-format -msgid "Please confirm that you are ready to migrate all %s recipes." +#: includes/class.cooked-recipe-meta.php:238 +msgid "Layout" msgstr "" -#: includes/class.cooked-admin-enqueues.php:150 -msgid "Please confirm that you are ready to import all recipes." +#: includes/class.cooked-recipe-meta.php:256 +#: includes/class.cooked-functions.php:137 +msgid "Nutrition" msgstr "" -#: includes/class.cooked-admin-menus.php:36 -#: includes/class.cooked-admin-menus.php:59 -#: includes/class.cooked-post-types.php:421 -#: includes/class.cooked-post-types.php:433 -#: includes/class.cooked-users.php:154 -msgid "Recipes" +#: includes/class.cooked-recipe-meta.php:262 +#: includes/class.cooked-recipe-meta.php:1256 +msgid "Gallery" msgstr "" -#: includes/class.cooked-admin-menus.php:37 -#: includes/class.cooked-admin-menus.php:61 -#: includes/class.cooked-post-types.php:423 -msgid "Add New" +#: includes/class.cooked-recipe-meta.php:268 +msgid "Shortcodes" msgstr "" -#. translators: referring to the bottom of the Settings page. -#: includes/class.cooked-admin-menus.php:45 -#: includes/class.cooked-admin-menus.php:65 -#: includes/class.cooked-recipe-meta.php:98 -#: includes/class.cooked-shortcodes.php:149 -#: templates/admin/welcome.php:18 -msgid "Settings" +#: includes/class.cooked-recipe-meta.php:325 +msgid "Recipe Review Required" msgstr "" -#: includes/class.cooked-admin-menus.php:46 -msgid "Import" +#: includes/class.cooked-recipe-meta.php:328 +#, php-format +msgid "" +"It looks like this recipe is from a different version of %s. Please review " +"and click \"Update\" to save it." msgstr "" -#: includes/class.cooked-admin-menus.php:47 -msgid "What's New?" +#: includes/class.cooked-recipe-meta.php:336 +msgid "Recipe Shortcode" msgstr "" -#: includes/class.cooked-admin-menus.php:50 -#: templates/admin/welcome.php:35 -msgid "Upgrade to Pro" +#: includes/class.cooked-recipe-meta.php:337 +msgid "You can use the following shortcode to display your recipe anywhere:" msgstr "" -#: includes/class.cooked-admin-menus.php:60 -#: includes/class.cooked-post-types.php:428 -msgid "All Recipes" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Recipe Template" msgstr "" -#: includes/class.cooked-admin-menus.php:90 -#: includes/class.cooked-admin-menus.php:99 -#: includes/class.cooked-admin-menus.php:108 -#: includes/class.cooked-admin-menus.php:117 -msgid "You do not have sufficient permissions to access this page." +#: includes/class.cooked-recipe-meta.php:351 +msgid "Default Recipe Template" msgstr "" -#: includes/class.cooked-ajax.php:174 -#: includes/class.cooked-functions.php:134 -#: includes/class.cooked-recipe-meta.php:157 -#: includes/class.cooked-recipe-meta.php:244 -#: includes/class.cooked-recipe-meta.php:1144 -#: includes/class.cooked-recipes.php:636 -#: templates/front/recipe.php:34 -msgid "Ingredients" +#: includes/class.cooked-recipe-meta.php:351 +msgid "" +"Choose from the options below to use this layout as the default for new " +"recipes or for all recipes." msgstr "" -#: includes/class.cooked-ajax.php:174 -#: includes/class.cooked-functions.php:135 -#: includes/class.cooked-recipe-meta.php:157 -#: includes/class.cooked-recipe-meta.php:250 -#: includes/class.cooked-recipe-meta.php:1175 -#: includes/class.cooked-recipes.php:640 -#: templates/front/recipe.php:35 -msgid "Directions" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Save as Default" msgstr "" -#: includes/class.cooked-delicious-recipes.php:102 -msgid "Error importing WP Delicious recipe." +#: includes/class.cooked-recipe-meta.php:351 +msgid "Apply to All" msgstr "" -#: includes/class.cooked-enqueues.php:52 -#: includes/class.cooked-recipe-meta.php:1390 -msgid "Timer" +#: includes/class.cooked-recipe-meta.php:351 +msgid "Reset" msgstr "" -#. translators: a title for the "What's new in Cooked?" section. -#: includes/class.cooked-functions.php:103 -#, php-format -msgid "What's new in %s?" +#: includes/class.cooked-recipe-meta.php:351 +msgid "" +"Using the built-in recipe shortcodes found on the \"Shortcodes\" tab, you " +"can create the layout of your recipe below. Use the \"Save as Default\" " +"button to save your template." msgstr "" -#: includes/class.cooked-functions.php:127 -#: includes/class.cooked-shortcodes.php:655 -msgid "Print" +#: includes/class.cooked-recipe-meta.php:369 +msgid "Recipe Excerpt" msgstr "" -#: includes/class.cooked-functions.php:128 -msgid "Print Options:" +#: includes/class.cooked-recipe-meta.php:369 +msgid "" +"The excerpt is used on recipe listing templates, where the full recipe " +"should not be displayed." msgstr "" -#: includes/class.cooked-functions.php:130 -msgid "Title" +#: includes/class.cooked-recipe-meta.php:392 +msgid "SEO Description" msgstr "" -#: includes/class.cooked-functions.php:131 -msgid "Information" +#: includes/class.cooked-recipe-meta.php:392 +msgid "" +"This description is used for SEO purposes and is optional. By default, " +"Cooked will use the Recipe Excerpt above if available or the Recipe Title if " +"not." msgstr "" -#: includes/class.cooked-functions.php:132 -#: includes/class.cooked-recipe-meta.php:1335 -#: includes/class.cooked-settings.php:218 -msgid "Excerpt" +#: includes/class.cooked-recipe-meta.php:403 +#: includes/class.cooked-settings.php:217 +msgid "Difficulty Level" msgstr "" -#: includes/class.cooked-functions.php:133 -msgid "Images" +#: includes/class.cooked-recipe-meta.php:412 +#: includes/class.cooked-recipe-meta.php:1118 +#: includes/class.cooked-settings.php:220 +#: includes/class.cooked-shortcodes.php:448 +#: includes/class.cooked-shortcodes.php:670 +msgid "Prep Time" msgstr "" -#: includes/class.cooked-functions.php:136 -#: includes/class.cooked-recipe-meta.php:1359 -#: includes/class.cooked-recipes.php:643 -#: includes/class.cooked-settings.php:219 -#: includes/class.cooked-shortcodes.php:774 -msgid "Notes" +#: includes/class.cooked-recipe-meta.php:414 +#: includes/class.cooked-recipe-meta.php:419 +#: includes/class.cooked-recipe-meta.php:424 +msgid "minutes" msgstr "" -#: includes/class.cooked-functions.php:137 -#: includes/class.cooked-recipe-meta.php:256 -msgid "Nutrition" +#: includes/class.cooked-recipe-meta.php:417 +#: includes/class.cooked-recipe-meta.php:1119 +#: includes/class.cooked-settings.php:221 +#: includes/class.cooked-shortcodes.php:449 +#: includes/class.cooked-shortcodes.php:679 +msgid "Cook Time" msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-import.php:46 -#: includes/class.cooked-import.php:100 -#, php-format -msgid "There is %1$s recipe that should be imported from %2$s." -msgid_plural "There are %1$s recipes that should be imported from %2$s." -msgstr[0] "" -msgstr[1] "" - -#: includes/class.cooked-import.php:48 -#: includes/class.cooked-import.php:102 -msgid "Before you begin, please make sure you backup your database in case something goes wrong." +#: includes/class.cooked-recipe-meta.php:422 +#: includes/class.cooked-recipe-meta.php:1120 +#: includes/class.cooked-settings.php:222 +#: includes/class.cooked-shortcodes.php:450 +#: includes/class.cooked-shortcodes.php:690 +#: includes/class.cooked-shortcodes.php:697 +msgid "Total Time" msgstr "" -#: includes/class.cooked-import.php:50 -#: includes/class.cooked-import.php:104 -msgid "Click the button below to import these recipes. Here is what will happen to your recipes:" +#: includes/class.cooked-recipe-meta.php:430 +msgid "Recipe Notes" msgstr "" -#: includes/class.cooked-import.php:52 -#: includes/class.cooked-import.php:106 -msgid "Recipes will be imported with the 'Draft' status." +#: includes/class.cooked-recipe-meta.php:430 +msgid "The notes are displayed in the recipe." msgstr "" -#: includes/class.cooked-import.php:53 -#: includes/class.cooked-import.php:107 -msgid "Comments and ratings data will also be imported (ratings are available in Cooked Pro)." +#: includes/class.cooked-recipe-meta.php:455 +msgid "Amount" msgstr "" -#: includes/class.cooked-import.php:54 -#: includes/class.cooked-import.php:109 -msgid "After the import is complete, you can bulk edit the recipes and change their status to 'Published'." +#: includes/class.cooked-recipe-meta.php:456 +msgid "Measurement" msgstr "" -#: includes/class.cooked-import.php:55 -msgid "The existing WP Delicious recipes and data will not be modified or deleted." +#: includes/class.cooked-recipe-meta.php:457 +msgid "Item" msgstr "" -#: includes/class.cooked-import.php:56 -#: includes/class.cooked-import.php:111 -msgid "Certain data that is not suppoted by Cooked will not be imported (such as Cooking Temp, Estimated Cost, Recipe Keywords, etc)." +#: includes/class.cooked-recipe-meta.php:495 +#: includes/class.cooked-recipe-meta.php:587 +#: includes/class.cooked-recipe-meta.php:653 +msgid "ex. Eggs, Milk, etc." msgstr "" -#: includes/class.cooked-import.php:57 -#: includes/class.cooked-import.php:112 -msgid "You can run the import multiple times, but keep in mind that duplicate recipes will be created." +#: includes/class.cooked-recipe-meta.php:504 +#: includes/class.cooked-recipe-meta.php:596 +#: includes/class.cooked-recipe-meta.php:662 +msgid "Substitution:" msgstr "" -#: includes/class.cooked-import.php:61 -#: includes/class.cooked-import.php:116 -#: includes/class.cooked-migration.php:58 -msgid "Wow, you have a lot of recipes!" +#: includes/class.cooked-recipe-meta.php:517 +#: includes/class.cooked-recipe-meta.php:609 +#: includes/class.cooked-recipe-meta.php:675 +msgid "ex. Apple Sauce, Tofu, etc." msgstr "" -#: includes/class.cooked-import.php:61 -#: includes/class.cooked-import.php:116 -#: includes/class.cooked-migration.php:58 -msgid "It is definitely recommended that you get yourself a cup of coffee or tea after clicking this button." +#: includes/class.cooked-recipe-meta.php:528 +#: includes/class.cooked-recipe-meta.php:683 +#: includes/class.cooked-recipe-meta.php:755 +#: includes/class.cooked-recipe-meta.php:847 +msgid "Section Heading" msgstr "" -#: includes/class.cooked-import.php:63 -#: includes/class.cooked-import.php:118 -#: includes/class.cooked-migration.php:60 -msgid "Note:" +#: includes/class.cooked-recipe-meta.php:532 +#: includes/class.cooked-recipe-meta.php:687 +#: includes/class.cooked-recipe-meta.php:759 +#: includes/class.cooked-recipe-meta.php:851 +msgid "Heading Element:" msgstr "" -#: includes/class.cooked-import.php:63 -#: includes/class.cooked-import.php:118 -#: includes/class.cooked-migration.php:60 -msgid "The more recipes you have, the longer this will take." +#: includes/class.cooked-recipe-meta.php:623 +msgid "Add Ingredient" msgstr "" -#: includes/class.cooked-import.php:68 -#: includes/class.cooked-import.php:83 -msgid "WP Delicious - Import" +#: includes/class.cooked-recipe-meta.php:624 +#: includes/class.cooked-recipe-meta.php:826 +msgid "Add Section Heading" msgstr "" -#: includes/class.cooked-import.php:108 -msgid "The difficulty level will be set to Beginner since it is not supported by WP Recipe Maker." +#: includes/class.cooked-recipe-meta.php:739 +#: includes/class.cooked-admin-enqueues.php:139 +msgid "Change Image" msgstr "" -#: includes/class.cooked-import.php:110 -msgid "The existing WP Recipe Maker and data will not be modified or deleted." +#: includes/class.cooked-recipe-meta.php:739 +#: includes/class.cooked-recipe-meta.php:794 +#: includes/class.cooked-recipe-meta.php:834 +#: includes/class.cooked-admin-enqueues.php:138 +msgid "Add Image" msgstr "" -#: includes/class.cooked-import.php:123 -#: includes/class.cooked-import.php:138 -msgid "WP Recipe Maker - Import" +#: includes/class.cooked-recipe-meta.php:825 +msgid "Add Direction" msgstr "" -#: includes/class.cooked-import.php:152 -msgid "More Imports are Coming Soon..." +#: includes/class.cooked-recipe-meta.php:882 +msgid "Nutrition Information" msgstr "" -#: includes/class.cooked-import.php:173 -msgid "Begin Import" +#: includes/class.cooked-recipe-meta.php:920 +#: includes/class.cooked-shortcodes.php:1061 +msgid "Nutrition Facts" msgstr "" -#: includes/class.cooked-import.php:178 -#: includes/class.cooked-settings.php:592 -msgid "reload" +#: includes/class.cooked-recipe-meta.php:938 +#: includes/class.cooked-shortcodes.php:1029 +msgid "Amount per serving" msgstr "" -#: includes/class.cooked-measurements.php:29 -msgctxt "Grams Abbreviation (Singular)" -msgid "g" +#: includes/class.cooked-recipe-meta.php:948 +#: includes/class.cooked-shortcodes.php:1039 +msgid "% Daily Value *" msgstr "" -#: includes/class.cooked-measurements.php:30 -msgctxt "Grams Abbreviation (Plural)" -msgid "g" +#: includes/class.cooked-recipe-meta.php:967 +#: includes/class.cooked-shortcodes.php:971 +msgid "Includes" msgstr "" -#: includes/class.cooked-measurements.php:31 -msgid "gram" +#: includes/class.cooked-recipe-meta.php:999 +#: includes/class.cooked-shortcodes.php:1065 +msgid "" +"The % Daily Value (DV) tells you how much a nutrient in a serving of food " +"contributes to a daily diet. 2,000 calories a day is used for general " +"nutrition advice." msgstr "" -#: includes/class.cooked-measurements.php:32 -msgid "grams" +#: includes/class.cooked-recipe-meta.php:1015 +msgid "Recipe Gallery Type" msgstr "" -#: includes/class.cooked-measurements.php:36 -msgctxt "Kilograms Abbreviation (Singular)" -msgid "kg" +#: includes/class.cooked-recipe-meta.php:1028 +msgid "Choose one..." msgstr "" -#: includes/class.cooked-measurements.php:37 -msgctxt "Kilograms Abbreviation (Plural)" -msgid "kg" +#: includes/class.cooked-recipe-meta.php:1042 +#, php-format +msgid "%1$s or %2$s Video" msgstr "" -#: includes/class.cooked-measurements.php:38 -msgid "kilogram" +#: includes/class.cooked-recipe-meta.php:1046 +#, php-format +msgid "" +"If you would like to display a video as the first item in your gallery, you " +"can paste a valid %1$s or %2$s URL below." msgstr "" -#: includes/class.cooked-measurements.php:39 -msgid "kilograms" +#: includes/class.cooked-recipe-meta.php:1051 +msgid "Gallery Items" msgstr "" -#: includes/class.cooked-measurements.php:43 -#: includes/class.cooked-measurements.php:44 -msgid "mg" +#: includes/class.cooked-recipe-meta.php:1066 +#: includes/class.cooked-admin-enqueues.php:141 +msgid "Add to Gallery" msgstr "" -#: includes/class.cooked-measurements.php:45 -msgid "milligram" +#: includes/class.cooked-recipe-meta.php:1082 +msgid "Recipe Information" msgstr "" -#: includes/class.cooked-measurements.php:46 -msgid "milligrams" +#: includes/class.cooked-recipe-meta.php:1083 +msgid "This will display the recipe author, cooking times, etc." msgstr "" -#: includes/class.cooked-measurements.php:50 -#: includes/class.cooked-measurements.php:51 -msgid "oz" +#: includes/class.cooked-recipe-meta.php:1092 +#: includes/class.cooked-recipe-meta.php:1102 +#, php-format +msgid "\"%1$s\" and \"%2$s\"" msgstr "" -#: includes/class.cooked-measurements.php:52 -msgid "ounce" +#: includes/class.cooked-recipe-meta.php:1094 +msgid "" +"This will allow you to include or exclude content from the shortcode output." msgstr "" -#: includes/class.cooked-measurements.php:53 -msgid "ounces" +#: includes/class.cooked-recipe-meta.php:1103 +msgid "" +"Used like \"include\", but will position the content to the left or right." msgstr "" -#: includes/class.cooked-measurements.php:57 -#: includes/class.cooked-measurements.php:58 -msgid "fl oz" +#: includes/class.cooked-recipe-meta.php:1113 +#: includes/class.cooked-recipe-meta.php:1159 +#: includes/class.cooked-recipe-meta.php:1190 +#: includes/class.cooked-recipe-meta.php:1215 +#: includes/class.cooked-recipe-meta.php:1239 +#: includes/class.cooked-recipe-meta.php:1299 +#: includes/class.cooked-recipe-meta.php:1344 +#: includes/class.cooked-recipe-meta.php:1374 +#: includes/class.cooked-recipe-meta.php:1419 +msgid "Available Variables" msgstr "" -#: includes/class.cooked-measurements.php:59 -msgid "fluid ounce" +#: includes/class.cooked-recipe-meta.php:1117 +#: includes/class.cooked-settings.php:215 +#: includes/class.cooked-shortcodes.php:445 +#: includes/class.cooked-shortcodes.php:623 +msgid "Author" msgstr "" -#: includes/class.cooked-measurements.php:60 -msgid "fluid ounces" +#: includes/class.cooked-recipe-meta.php:1121 +#: includes/class.cooked-shortcodes.php:446 +#: includes/class.cooked-shortcodes.php:634 +msgid "Difficulty" msgstr "" -#: includes/class.cooked-measurements.php:64 -#: includes/class.cooked-measurements.php:66 -msgid "cup" +#: includes/class.cooked-recipe-meta.php:1122 +msgid "Servings Switcher" msgstr "" -#: includes/class.cooked-measurements.php:65 -#: includes/class.cooked-measurements.php:67 -msgid "cups" +#: includes/class.cooked-recipe-meta.php:1123 +#: includes/class.cooked-taxonomies.php:39 +#: includes/class.cooked-settings.php:216 +#: includes/class.cooked-shortcodes.php:717 +#: includes/class.cooked-shortcodes.php:720 +msgid "Category" msgstr "" -#: includes/class.cooked-measurements.php:71 -#: includes/class.cooked-measurements.php:72 -msgid "tsp" +#: includes/class.cooked-recipe-meta.php:1124 +msgid "Print Mode" msgstr "" -#: includes/class.cooked-measurements.php:73 -msgid "teaspoon" +#: includes/class.cooked-recipe-meta.php:1125 +msgid "Full-Screen Mode" msgstr "" -#: includes/class.cooked-measurements.php:74 -msgid "teaspoons" +#: includes/class.cooked-recipe-meta.php:1145 +msgid "" +"This will display the list of ingredients, added via the \"Ingredients\" tab." msgstr "" -#: includes/class.cooked-measurements.php:78 -#: includes/class.cooked-measurements.php:79 -msgid "tbsp" +#: includes/class.cooked-recipe-meta.php:1151 +msgid "This will allow you to hide or show the checkboxes:" msgstr "" -#: includes/class.cooked-measurements.php:80 -msgid "tablespoon" +#: includes/class.cooked-recipe-meta.php:1161 +msgid "Show checkboxes" msgstr "" -#: includes/class.cooked-measurements.php:81 -msgid "tablespoons" +#: includes/class.cooked-recipe-meta.php:1162 +msgid "Hide checkboxes" msgstr "" -#: includes/class.cooked-measurements.php:85 -#: includes/class.cooked-measurements.php:86 -msgid "dl" +#: includes/class.cooked-recipe-meta.php:1176 +msgid "" +"This will display the list of directions, added via the \"Directions\" tab." msgstr "" -#: includes/class.cooked-measurements.php:87 -msgid "deciliter" +#: includes/class.cooked-recipe-meta.php:1182 +msgid "This will allow you to hide or show the numbers:" msgstr "" -#: includes/class.cooked-measurements.php:88 -msgid "deciliters" +#: includes/class.cooked-recipe-meta.php:1192 +msgid "Show numbers" msgstr "" -#: includes/class.cooked-measurements.php:92 -#: includes/class.cooked-measurements.php:93 -msgid "ml" +#: includes/class.cooked-recipe-meta.php:1193 +msgid "Hide numbers" msgstr "" -#: includes/class.cooked-measurements.php:94 -msgid "milliliter" +#: includes/class.cooked-recipe-meta.php:1206 +msgid "Featured Image" msgstr "" -#: includes/class.cooked-measurements.php:95 -msgid "milliliters" +#: includes/class.cooked-recipe-meta.php:1207 +msgid "This will display the featured image, if one is set." msgstr "" -#: includes/class.cooked-measurements.php:99 -#: includes/class.cooked-measurements.php:100 -msgid "l" +#: includes/class.cooked-recipe-meta.php:1217 +#: includes/class.cooked-recipe-meta.php:1241 +#: includes/class.cooked-recipe-meta.php:1346 +msgid "None" msgstr "" -#: includes/class.cooked-measurements.php:101 -msgid "liter" +#: includes/class.cooked-recipe-meta.php:1230 +msgid "Nutrition Label" msgstr "" -#: includes/class.cooked-measurements.php:102 -msgid "liters" +#: includes/class.cooked-recipe-meta.php:1231 +msgid "This will display the Nutrition Facts label, if data is present." msgstr "" -#: includes/class.cooked-measurements.php:106 -#: includes/class.cooked-measurements.php:108 -msgid "stick" +#: includes/class.cooked-recipe-meta.php:1257 +msgid "" +"This will display the gallery, if one is set or created from the \"Gallery\" " +"tab." msgstr "" -#: includes/class.cooked-measurements.php:107 -#: includes/class.cooked-measurements.php:109 -msgid "sticks" +#: includes/class.cooked-recipe-meta.php:1265 +msgid "Set the width of the gallery." msgstr "" -#: includes/class.cooked-measurements.php:113 -msgid "lb" +#: includes/class.cooked-recipe-meta.php:1272 +msgid "Set the image size ratio." msgstr "" -#: includes/class.cooked-measurements.php:114 -msgid "lbs" +#: includes/class.cooked-recipe-meta.php:1282 +msgid "Set the navigation style." msgstr "" -#: includes/class.cooked-measurements.php:115 -msgid "pound" +#: includes/class.cooked-recipe-meta.php:1289 +msgid "Enable or disable \"Full-Screen\" mode." msgstr "" -#: includes/class.cooked-measurements.php:116 -msgid "pounds" +#: includes/class.cooked-recipe-meta.php:1304 +#, php-format +msgid "ex: \"%1$s\" or \"%2$s\"" msgstr "" -#: includes/class.cooked-measurements.php:120 -#: includes/class.cooked-measurements.php:122 -msgid "dash" +#: includes/class.cooked-recipe-meta.php:1309 +#, php-format +msgid "ex: \"%s\"" msgstr "" -#: includes/class.cooked-measurements.php:121 -#: includes/class.cooked-measurements.php:123 -msgid "dashes" +#: includes/class.cooked-recipe-meta.php:1314 +#, php-format +msgid "\"%1$s\", \"%2$s\", or \"%3$s\"" msgstr "" -#: includes/class.cooked-measurements.php:127 -#: includes/class.cooked-measurements.php:129 -msgid "drop" +#: includes/class.cooked-recipe-meta.php:1319 +#, php-format +msgid "\"%1$s\" or \"%2$s\"" msgstr "" -#: includes/class.cooked-measurements.php:128 -#: includes/class.cooked-measurements.php:130 -msgid "drops" +#: includes/class.cooked-recipe-meta.php:1335 +#: includes/class.cooked-functions.php:132 +#: includes/class.cooked-settings.php:218 +msgid "Excerpt" msgstr "" -#: includes/class.cooked-measurements.php:134 -msgid "gal" +#: includes/class.cooked-recipe-meta.php:1336 +msgid "" +"This will display the excerpt, if one is available from the \"Layout & " +"Content\" tab." msgstr "" -#: includes/class.cooked-measurements.php:135 -msgid "gals" +#: includes/class.cooked-recipe-meta.php:1359 +#: includes/class.cooked-functions.php:136 +#: includes/class.cooked-settings.php:219 +#: includes/class.cooked-shortcodes.php:774 +#: includes/class.cooked-recipes.php:643 +msgid "Notes" msgstr "" -#: includes/class.cooked-measurements.php:136 -msgid "gallon" +#: includes/class.cooked-recipe-meta.php:1360 +msgid "" +"This will display the notes, if one is available from the \"Layout & " +"Content\" tab." msgstr "" -#: includes/class.cooked-measurements.php:137 -msgid "gallons" +#: includes/class.cooked-recipe-meta.php:1366 +msgid "This will allow you to hide or show the header for the notes section:" msgstr "" -#: includes/class.cooked-measurements.php:141 -#: includes/class.cooked-measurements.php:143 -msgid "pinch" +#: includes/class.cooked-recipe-meta.php:1376 +msgid "Show header" msgstr "" -#: includes/class.cooked-measurements.php:142 -#: includes/class.cooked-measurements.php:144 -msgid "pinches" +#: includes/class.cooked-recipe-meta.php:1377 +msgid "Hide header" msgstr "" -#: includes/class.cooked-measurements.php:148 -#: includes/class.cooked-measurements.php:149 -msgid "pt" +#: includes/class.cooked-recipe-meta.php:1390 +#: includes/class.cooked-enqueues.php:52 +msgid "Timer" msgstr "" -#: includes/class.cooked-measurements.php:150 -msgid "pint" +#: includes/class.cooked-recipe-meta.php:1391 +msgid "This will display a special link to start a cooking timer." msgstr "" -#: includes/class.cooked-measurements.php:151 -msgid "pints" +#: includes/class.cooked-recipe-meta.php:1400 +#, php-format +msgid "\"%1$s\", \"%2$s\" and \"%3$s\"" msgstr "" -#: includes/class.cooked-measurements.php:155 -msgid "qt" +#: includes/class.cooked-recipe-meta.php:1402 +msgid "Use just one or a combination of all three to set the timer length" msgstr "" -#: includes/class.cooked-measurements.php:156 -msgid "qts" +#: includes/class.cooked-recipe-meta.php:1409 +msgid "Add a short description for this timer, if applicable." msgstr "" -#: includes/class.cooked-measurements.php:157 -msgid "quart" +#: includes/class.cooked-recipe-meta.php:1421 +msgid "Time in seconds" msgstr "" -#: includes/class.cooked-measurements.php:158 -msgid "quarts" +#: includes/class.cooked-recipe-meta.php:1422 +msgid "Time in minutes" msgstr "" -#: includes/class.cooked-measurements.php:162 -#: includes/class.cooked-measurements.php:163 -msgid "drizzle" +#: includes/class.cooked-recipe-meta.php:1423 +msgid "Time in hours" msgstr "" -#: includes/class.cooked-measurements.php:164 -#: includes/class.cooked-measurements.php:165 -msgid "Drizzle" +#: includes/class.cooked-recipe-meta.php:1424 +msgid "Timer Description" msgstr "" -#: includes/class.cooked-measurements.php:169 -#: includes/class.cooked-measurements.php:171 -msgid "clove" +#: includes/class.cooked-import.php:46 includes/class.cooked-import.php:100 +#, php-format +msgid "There is %1$s recipe that should be imported from %2$s." msgstr "" -#: includes/class.cooked-measurements.php:170 -#: includes/class.cooked-measurements.php:172 -msgid "cloves" +#: includes/class.cooked-import.php:48 includes/class.cooked-import.php:102 +msgid "" +"Before you begin, please make sure you backup your database in case " +"something goes wrong." msgstr "" -#: includes/class.cooked-measurements.php:176 -#: includes/class.cooked-measurements.php:178 -msgid "jar" +#: includes/class.cooked-import.php:50 includes/class.cooked-import.php:104 +msgid "" +"Click the button below to import these recipes. Here is what will happen to " +"your recipes:" msgstr "" -#: includes/class.cooked-measurements.php:177 -#: includes/class.cooked-measurements.php:179 -msgid "jars" +#: includes/class.cooked-import.php:52 includes/class.cooked-import.php:106 +msgid "Recipes will be imported with the 'Draft' status." msgstr "" -#: includes/class.cooked-measurements.php:183 -#: includes/class.cooked-measurements.php:185 -msgid "can" +#: includes/class.cooked-import.php:53 includes/class.cooked-import.php:107 +msgid "" +"Comments and ratings data will also be imported (ratings are available in " +"Cooked Pro)." msgstr "" -#: includes/class.cooked-measurements.php:184 -#: includes/class.cooked-measurements.php:186 -msgid "cans" +#: includes/class.cooked-import.php:54 includes/class.cooked-import.php:109 +msgid "" +"After the import is complete, you can bulk edit the recipes and change their " +"status to 'Published'." msgstr "" -#: includes/class.cooked-measurements.php:202 -#: includes/class.cooked-recipes.php:799 -#: includes/class.cooked-settings.php:223 -msgid "Servings" +#: includes/class.cooked-import.php:55 +msgid "" +"The existing WP Delicious recipes and data will not be modified or deleted." msgstr "" -#: includes/class.cooked-measurements.php:206 -msgid "Serving size" +#: includes/class.cooked-import.php:56 includes/class.cooked-import.php:111 +msgid "" +"Certain data that is not suppoted by Cooked will not be imported (such as " +"Cooking Temp, Estimated Cost, Recipe Keywords, etc)." msgstr "" -#: includes/class.cooked-measurements.php:213 -msgid "Calories" +#: includes/class.cooked-import.php:57 includes/class.cooked-import.php:112 +msgid "" +"You can run the import multiple times, but keep in mind that duplicate " +"recipes will be created." msgstr "" -#: includes/class.cooked-measurements.php:220 -msgid "Total Fat" +#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 +#: includes/class.cooked-migration.php:58 +msgid "Wow, you have a lot of recipes!" msgstr "" -#: includes/class.cooked-measurements.php:226 -msgid "Saturated Fat" +#: includes/class.cooked-import.php:61 includes/class.cooked-import.php:116 +#: includes/class.cooked-migration.php:58 +msgid "" +"It is definitely recommended that you get yourself a cup of coffee or tea " +"after clicking this button." msgstr "" -#: includes/class.cooked-measurements.php:232 -msgid "Trans Fat" +#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:165 includes/class.cooked-migration.php:60 +msgid "Note:" msgstr "" -#: includes/class.cooked-measurements.php:233 -msgid "Trans Fat" +#: includes/class.cooked-import.php:63 includes/class.cooked-import.php:118 +#: includes/class.cooked-migration.php:60 +msgid "The more recipes you have, the longer this will take." msgstr "" -#: includes/class.cooked-measurements.php:238 -msgid "Monounsaturated Fat" +#: includes/class.cooked-import.php:68 includes/class.cooked-import.php:83 +msgid "WP Delicious - Import" msgstr "" -#: includes/class.cooked-measurements.php:243 -msgid "Polyunsaturated Fat" +#: includes/class.cooked-import.php:108 +msgid "" +"The difficulty level will be set to Beginner since it is not " +"supported by WP Recipe Maker." msgstr "" -#: includes/class.cooked-measurements.php:250 -msgid "Cholesterol" +#: includes/class.cooked-import.php:110 +msgid "The existing WP Recipe Maker and data will not be modified or deleted." msgstr "" -#: includes/class.cooked-measurements.php:256 -msgid "Sodium" +#: includes/class.cooked-import.php:123 includes/class.cooked-import.php:138 +msgid "WP Recipe Maker - Import" msgstr "" -#: includes/class.cooked-measurements.php:262 -msgid "Total Carbohydrate" +#: includes/class.cooked-import.php:152 +msgid "" +"Import recipes from a CSV file. Your CSV file should include the following " +"columns:" msgstr "" -#: includes/class.cooked-measurements.php:262 -msgid "Net Carbohydrate" +#: includes/class.cooked-import.php:154 +msgid "Recipe title (required)" msgstr "" -#: includes/class.cooked-measurements.php:268 -msgid "Dietary Fiber" +#: includes/class.cooked-import.php:155 +msgid "Recipe excerpt/description" msgstr "" -#: includes/class.cooked-measurements.php:274 -msgid "Total Sugars" +#: includes/class.cooked-import.php:156 +msgid "Prep time in minutes" msgstr "" -#: includes/class.cooked-measurements.php:280 -msgid "Added Sugars" +#: includes/class.cooked-import.php:157 +msgid "Cook time in minutes" msgstr "" -#: includes/class.cooked-measurements.php:288 -msgid "Protein" +#: includes/class.cooked-import.php:158 +msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" msgstr "" -#: includes/class.cooked-measurements.php:297 -msgid "Vitamin A" +#: includes/class.cooked-import.php:159 +msgid "" +"Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or " +"\"name\" for simple ingredients. Add substitutions with double pipe (||): " +"\"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" msgstr "" -#: includes/class.cooked-measurements.php:303 -msgid "Vitamin C" +#: includes/class.cooked-import.php:160 +msgid "Directions/instructions separated by pipe (|)" msgstr "" -#: includes/class.cooked-measurements.php:309 -msgid "Calcium" +#: includes/class.cooked-import.php:161 +msgid "Recipe notes" msgstr "" -#: includes/class.cooked-measurements.php:315 -msgid "Iron" +#: includes/class.cooked-import.php:162 +msgid "Categories separated by comma" msgstr "" -#: includes/class.cooked-measurements.php:321 -msgid "Potassium" +#: includes/class.cooked-import.php:163 +msgid "Tags separated by comma" msgstr "" -#: includes/class.cooked-measurements.php:327 -msgid "Vitamin D" +#: includes/class.cooked-import.php:165 +msgid "" +"Recipes will be imported with the 'Draft' status. After the import is " +"complete, you can bulk edit the recipes and change their status to " +"'Published'." msgstr "" -#: includes/class.cooked-measurements.php:333 -msgid "Vitamin E" +#: includes/class.cooked-import.php:168 +msgid "CSV Import" msgstr "" -#: includes/class.cooked-measurements.php:339 -msgid "Vitamin K" +#: includes/class.cooked-import.php:172 +msgid "Import Recipes via CSV" msgstr "" -#: includes/class.cooked-measurements.php:345 -msgid "Thiamin" +#: includes/class.cooked-import.php:180 +msgid "More Imports are Coming Soon..." msgstr "" -#: includes/class.cooked-measurements.php:351 -msgid "Riboflavin" +#: includes/class.cooked-import.php:201 +msgid "Begin Import" msgstr "" -#: includes/class.cooked-measurements.php:357 -msgid "Niacin" +#: includes/class.cooked-import.php:206 includes/class.cooked-import.php:226 +#: includes/class.cooked-settings.php:592 +msgid "reload" msgstr "" -#: includes/class.cooked-measurements.php:363 -msgid "Vitamin B6" +#: includes/class.cooked-import.php:221 +msgid "Upload and Import CSV" msgstr "" -#: includes/class.cooked-measurements.php:369 -msgid "Folate" +#: includes/class.cooked-import.php:226 +msgid "Import Complete!" msgstr "" -#: includes/class.cooked-measurements.php:375 -msgid "Vitamin B12" +#: includes/class.cooked-import.php:226 +msgid "You can now" msgstr "" -#: includes/class.cooked-measurements.php:381 -msgid "Biotin" +#: includes/class.cooked-import.php:226 +msgid "the import screen or" msgstr "" -#: includes/class.cooked-measurements.php:387 -msgid "Pantothenic Acid" +#: includes/class.cooked-import.php:226 +msgid "view your recipes" msgstr "" -#: includes/class.cooked-measurements.php:393 -msgid "Phosphorus" +#: includes/class.cooked-widgets.php:38 +msgid "Edit Recipe(s)..." msgstr "" -#: includes/class.cooked-measurements.php:399 -msgid "Iodine" +#: includes/class.cooked-widgets.php:38 includes/class.cooked-widgets.php:40 +msgid "Choose recipe(s)..." msgstr "" -#: includes/class.cooked-measurements.php:405 -msgid "Magnesium" +#: includes/class.cooked-seo.php:83 includes/class.cooked-recipes.php:962 +#, php-format +msgid "Step %d" msgstr "" -#: includes/class.cooked-measurements.php:411 -msgid "Zinc" +#: includes/widgets/recipe-card.php:75 +#: includes/widgets/recipe-categories.php:40 +#: includes/widgets/recipe-list.php:48 +msgid "Widget Title (optional):" msgstr "" -#: includes/class.cooked-measurements.php:417 -msgid "Selenium" +#: includes/widgets/recipe-card.php:80 +msgid "Recipe:" msgstr "" -#: includes/class.cooked-measurements.php:423 -msgid "Copper" +#: includes/widgets/recipe-card.php:89 +msgid "Style:" msgstr "" -#: includes/class.cooked-measurements.php:429 -msgid "Manganese" +#: includes/widgets/recipe-card.php:91 +msgid "Simple" msgstr "" -#: includes/class.cooked-measurements.php:435 -msgid "Chromium" +#: includes/widgets/recipe-card.php:92 +msgid "Simple Centered" msgstr "" -#: includes/class.cooked-measurements.php:441 -msgid "Molybdenum" +#: includes/widgets/recipe-card.php:93 +msgid "Modern" msgstr "" -#: includes/class.cooked-measurements.php:447 -msgid "Chloride" +#: includes/widgets/recipe-card.php:94 +msgid "Modern Centered" +msgstr "" + +#: includes/widgets/recipe-card.php:99 includes/widgets/recipe-list.php:83 +msgid "Width:" +msgstr "" + +#: includes/widgets/recipe-card.php:105 includes/widgets/recipe-list.php:89 +msgid "Hide Image" +msgstr "" + +#: includes/widgets/recipe-card.php:110 +msgid "Hide Title" +msgstr "" + +#: includes/widgets/recipe-card.php:115 includes/widgets/recipe-list.php:94 +msgid "Hide Author" +msgstr "" + +#: includes/widgets/recipe-card.php:120 +msgid "Hide Excerpt" +msgstr "" + +#: includes/widgets/recipe-categories.php:45 +#: includes/class.cooked-taxonomies.php:42 +msgid "Parent Category" +msgstr "" + +#: includes/widgets/recipe-categories.php:48 +#: includes/class.cooked-taxonomies.php:41 +#: includes/class.cooked-recipes.php:1044 +msgid "All Categories" +msgstr "" + +#: includes/widgets/recipe-categories.php:58 +msgid "Hide Empty Categories" +msgstr "" + +#: includes/widgets/search.php:37 includes/widgets/nutrition.php:31 +msgid "Title (optional):" +msgstr "" + +#: includes/widgets/search.php:42 +msgid "Size:" msgstr "" -#. translators: singular and plural number of minutes (shorthand) -#: includes/class.cooked-measurements.php:703 -#: includes/class.cooked-measurements.php:714 -#: includes/class.cooked-measurements.php:732 -#, php-format -msgid "%d min" +#: includes/widgets/search.php:44 +msgid "Compact" msgstr "" -#. translators: singular and plural number of minutes (shorthand) -#: includes/class.cooked-measurements.php:703 -#: includes/class.cooked-measurements.php:714 -#: includes/class.cooked-measurements.php:732 -#, php-format -msgid "%d mins" +#: includes/widgets/search.php:45 +msgid "Wide" msgstr "" -#. translators: singular and plural number of hours (shorthand) -#: includes/class.cooked-measurements.php:712 -#: includes/class.cooked-measurements.php:730 -#, php-format -msgid "%d hr" +#: includes/widgets/search.php:51 +msgid "Hide \"Browse\" dropdown" msgstr "" -#. translators: singular and plural number of hours (shorthand) -#: includes/class.cooked-measurements.php:712 -#: includes/class.cooked-measurements.php:730 -#, php-format -msgid "%d hrs" +#: includes/widgets/search.php:56 +msgid "Hide \"Sorting\" dropdown" msgstr "" -#. translators: singular and plural number of days -#: includes/class.cooked-measurements.php:728 -#, php-format -msgid "%d day" +#: includes/widgets/recipe-list.php:53 +msgid "Sorted by:" msgstr "" -#. translators: singular and plural number of days -#: includes/class.cooked-measurements.php:728 -#, php-format -msgid "%d days" +#: includes/widgets/recipe-list.php:55 +msgid "Most Recent" msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-migration.php:47 -#, php-format -msgid "There is %1$s recipe that should be migrated from %2$s to take advantage of new features and reliability." -msgid_plural "There are %1$s recipes that should be migrated from %2$s to take advantage of new features and reliability." -msgstr[0] "" -msgstr[1] "" - -#: includes/class.cooked-migration.php:49 -msgid "Please click the button below to migrate these recipes. Here is what will happen to your recipes:" +#: includes/widgets/recipe-list.php:56 +msgid "Choose Recipes" msgstr "" -#: includes/class.cooked-migration.php:51 -msgid "NO DATA LOSS, all fields will be remapped." +#: includes/widgets/recipe-list.php:62 +msgid "Show:" msgstr "" -#: includes/class.cooked-migration.php:52 -msgid "Remapped fields will greatly speed up recipe loading times." +#: includes/widgets/recipe-list.php:73 +msgid "Recipes:" msgstr "" -#: includes/class.cooked-migration.php:53 -msgid "If recipe excerpt exists, the short description will be moved to the top of the recipe template." +#: includes/class.cooked-recipe-maker.php:103 +msgid "Error importing WP Recipe Maker recipe." msgstr "" -#: includes/class.cooked-migration.php:54 -msgid "If no recipe excerpt exists, the short description will be used instead." +#: includes/class.cooked-functions.php:103 +#, php-format +msgid "What's new in %s?" msgstr "" -#: includes/class.cooked-migration.php:55 -msgid "Version number will be applied to each recipe." +#: includes/class.cooked-functions.php:127 +#: includes/class.cooked-shortcodes.php:655 +msgid "Print" msgstr "" -#: includes/class.cooked-migration.php:65 -msgid "Migration" +#: includes/class.cooked-functions.php:128 +msgid "Print Options:" msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-migration.php:90 -#, php-format -msgid "There is %1$s recipe that is from an older version of Cooked. Please %2$s to migrate this recipe." -msgid_plural "There are %1$s recipes that are from an older version of Cooked. Please %2$s to migrate these recipes." -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-functions.php:130 +msgid "Title" +msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-migration.php:90 -msgid "click here" +#: includes/class.cooked-functions.php:131 +msgid "Information" msgstr "" -#: includes/class.cooked-plugin-extra.php:31 -msgid "Required by Cooked Pro" +#: includes/class.cooked-functions.php:133 +msgid "Images" msgstr "" #: includes/class.cooked-post-types.php:89 @@ -892,10 +954,25 @@ msgstr "" msgid "Recipe Archive" msgstr "" +#: includes/class.cooked-post-types.php:419 +#: includes/class.cooked-post-types.php:421 +#: includes/class.cooked-post-types.php:433 +#: includes/class.cooked-admin-menus.php:36 +#: includes/class.cooked-admin-menus.php:59 includes/class.cooked-users.php:154 +msgid "Recipes" +msgstr "" + +#: includes/class.cooked-post-types.php:420 #: includes/class.cooked-post-types.php:422 msgid "Recipe" msgstr "" +#: includes/class.cooked-post-types.php:423 +#: includes/class.cooked-admin-menus.php:37 +#: includes/class.cooked-admin-menus.php:61 +msgid "Add New" +msgstr "" + #: includes/class.cooked-post-types.php:424 msgid "Add New Recipe" msgstr "" @@ -912,6 +989,11 @@ msgstr "" msgid "View Recipe" msgstr "" +#: includes/class.cooked-post-types.php:428 +#: includes/class.cooked-admin-menus.php:60 +msgid "All Recipes" +msgstr "" + #: includes/class.cooked-post-types.php:429 msgid "Search Recipes" msgstr "" @@ -932,1306 +1014,1277 @@ msgstr "" msgid "Cooked Browse Recipes Page" msgstr "" +#: includes/class.cooked-ajax.php:346 +msgid "No default content provided." +msgstr "" + +#: includes/class.cooked-ajax.php:375 includes/class.cooked-ajax.php:411 +msgid "You do not have permission to import recipes." +msgstr "" + +#: includes/class.cooked-ajax.php:379 +#: includes/class.cooked-admin-enqueues.php:161 +msgid "File upload failed." +msgstr "" + +#: includes/class.cooked-ajax.php:385 +msgid "Invalid file type. Please upload a CSV file." +msgstr "" + +#: includes/class.cooked-ajax.php:418 +msgid "CSV file not found. Please upload again." +msgstr "" + +#: includes/class.cooked-ajax.php:436 +msgid "CSV Import class could not be loaded." +msgstr "" + +#: includes/class.cooked-ajax.php:450 +#, php-format +msgid "Successfully imported %d recipe(s)." +msgstr "" + +#: includes/class.cooked-ajax.php:459 +msgid "No recipes were imported." +msgstr "" + #: includes/class.cooked-rankmathseo.php:36 msgid "Recipe Category" msgstr "" -#: includes/class.cooked-rankmathseo.php:37 -#: includes/class.cooked-yoastseo.php:33 -msgid "Current recipe category being viewed." +#: includes/class.cooked-taxonomies.php:38 +#: includes/class.cooked-taxonomies.php:48 +#: includes/class.cooked-settings.php:191 +#: includes/class.cooked-recipes.php:1042 +msgid "Categories" msgstr "" -#: includes/class.cooked-recipe-maker.php:103 -msgid "Error importing WP Recipe Maker recipe." +#: includes/class.cooked-taxonomies.php:40 +msgid "Search Categories" msgstr "" -#: includes/class.cooked-recipe-meta.php:202 -msgid "Display Recipe" +#: includes/class.cooked-taxonomies.php:43 +msgid "Parent Category:" msgstr "" -#: includes/class.cooked-recipe-meta.php:203 -msgid "This shortcode displays the recipe in its entirety, using the \"Recipe Template\" field in the first tab." +#: includes/class.cooked-taxonomies.php:44 +msgid "Edit Category" msgstr "" -#: includes/class.cooked-recipe-meta.php:238 -msgid "Layout" +#: includes/class.cooked-taxonomies.php:45 +msgid "Update Category" msgstr "" -#: includes/class.cooked-recipe-meta.php:262 -#: includes/class.cooked-recipe-meta.php:1256 -msgid "Gallery" +#: includes/class.cooked-taxonomies.php:46 +msgid "Add New Category" msgstr "" -#: includes/class.cooked-recipe-meta.php:268 -msgid "Shortcodes" +#: includes/class.cooked-taxonomies.php:47 +msgid "New Category Name" msgstr "" -#: includes/class.cooked-recipe-meta.php:325 -msgid "Recipe Review Required" +#: includes/class.cooked-taxonomies.php:49 +msgid "No Categories" msgstr "" -#. translators: for displaying singular or plural versions depending on the number of recipes. -#: includes/class.cooked-recipe-meta.php:328 +#: includes/class.cooked-taxonomies.php:136 #, php-format -msgid "It looks like this recipe is from a different version of %s. Please review and click \"Update\" to save it." +msgid "%s Recipe" msgstr "" -#: includes/class.cooked-recipe-meta.php:336 -msgid "Recipe Shortcode" +#: includes/class.cooked-plugin-extra.php:31 +msgid "Required by Cooked Pro" msgstr "" -#: includes/class.cooked-recipe-meta.php:337 -msgid "You can use the following shortcode to display your recipe anywhere:" +#: includes/class.cooked-delicious-recipes.php:102 +msgid "Error importing WP Delicious recipe." msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Recipe Template" +#: includes/class.cooked-admin-menus.php:46 +msgid "Import" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Default Recipe Template" +#: includes/class.cooked-admin-menus.php:47 +msgid "What's New?" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Choose from the options below to use this layout as the default for new recipes or for all recipes." +#: includes/class.cooked-admin-menus.php:50 +msgid "Upgrade to Pro" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Save as Default" +#: includes/class.cooked-admin-menus.php:90 +#: includes/class.cooked-admin-menus.php:99 +#: includes/class.cooked-admin-menus.php:108 +#: includes/class.cooked-admin-menus.php:117 +msgid "You do not have sufficient permissions to access this page." msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Apply to All" +#: includes/class.cooked-settings.php:85 +msgid "Cooked settings has been updated!" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Reset" +#: includes/class.cooked-settings.php:104 +msgid "Cooked Plugin Setup" msgstr "" -#: includes/class.cooked-recipe-meta.php:351 -msgid "Using the built-in recipe shortcodes found on the \"Shortcodes\" tab, you can create the layout of your recipe below. Use the \"Save as Default\" button to save your template." +#: includes/class.cooked-settings.php:105 +#, php-format +msgid "To display your recipes properly, please set up your %s." msgstr "" -#: includes/class.cooked-recipe-meta.php:369 -msgid "Recipe Excerpt" +#: includes/class.cooked-settings.php:106 +#: includes/class.cooked-settings.php:168 +msgid "Browse/Search Recipes Page" msgstr "" -#: includes/class.cooked-recipe-meta.php:369 -msgid "The excerpt is used on recipe listing templates, where the full recipe should not be displayed." +#: includes/class.cooked-settings.php:104 +#, php-format +msgid "" msgstr "" -#: includes/class.cooked-recipe-meta.php:392 -msgid "SEO Description" +#: includes/class.cooked-settings.php:143 +msgid "Choose a page..." msgstr "" -#: includes/class.cooked-recipe-meta.php:392 -msgid "This description is used for SEO purposes and is optional. By default, Cooked will use the Recipe Excerpt above if available or the Recipe Title if not." +#: includes/class.cooked-settings.php:143 +msgid "No pages" msgstr "" -#: includes/class.cooked-recipe-meta.php:403 -#: includes/class.cooked-settings.php:217 -msgid "Difficulty Level" +#: includes/class.cooked-settings.php:144 +msgid "No default" msgstr "" -#: includes/class.cooked-recipe-meta.php:412 -#: includes/class.cooked-recipe-meta.php:1118 -#: includes/class.cooked-settings.php:220 -#: includes/class.cooked-shortcodes.php:448 -#: includes/class.cooked-shortcodes.php:670 -msgid "Prep Time" +#: includes/class.cooked-settings.php:144 +#: includes/class.cooked-recipes.php:1039 +msgid "No categories" msgstr "" -#: includes/class.cooked-recipe-meta.php:414 -#: includes/class.cooked-recipe-meta.php:419 -#: includes/class.cooked-recipe-meta.php:424 -msgid "minutes" +#: includes/class.cooked-settings.php:164 +msgid "General" msgstr "" -#: includes/class.cooked-recipe-meta.php:417 -#: includes/class.cooked-recipe-meta.php:1119 -#: includes/class.cooked-settings.php:221 -#: includes/class.cooked-shortcodes.php:449 -#: includes/class.cooked-shortcodes.php:679 -msgid "Cook Time" +#: includes/class.cooked-settings.php:170 +#, php-format +msgid "" +"Create a page with the %s shortcode on it, then choose it from this dropdown." msgstr "" -#: includes/class.cooked-recipe-meta.php:422 -#: includes/class.cooked-recipe-meta.php:1120 -#: includes/class.cooked-settings.php:222 -#: includes/class.cooked-shortcodes.php:450 -#: includes/class.cooked-shortcodes.php:690 -#: includes/class.cooked-shortcodes.php:697 -msgid "Total Time" +#: includes/class.cooked-settings.php:170 +msgid "" +"Note: This setting is required for the plugin to function properly." msgstr "" -#: includes/class.cooked-recipe-meta.php:430 -msgid "Recipe Notes" +#: includes/class.cooked-settings.php:176 +msgid "Recipes Per Page" +msgstr "" + +#: includes/class.cooked-settings.php:178 +#, php-format +msgid "" +"Choose the default (set via the %s panel) or choose a different number here." +msgstr "" + +#: includes/class.cooked-settings.php:178 +msgid "Settings > Reading" msgstr "" -#: includes/class.cooked-recipe-meta.php:430 -msgid "The notes are displayed in the recipe." +#: includes/class.cooked-settings.php:184 +msgid "Recipe Taxonomies" msgstr "" -#: includes/class.cooked-recipe-meta.php:455 -msgid "Amount" +#: includes/class.cooked-settings.php:185 +msgid "Choose which taxonomies you want to enable for your recipes." msgstr "" -#: includes/class.cooked-recipe-meta.php:456 -msgid "Measurement" +#: includes/class.cooked-settings.php:196 +msgid "Global Recipe Toggles" msgstr "" -#: includes/class.cooked-recipe-meta.php:457 -msgid "Item" +#: includes/class.cooked-settings.php:197 +msgid "" +"You can quickly hide or show different recipe elements (site-wide) with " +"these checkboxes." msgstr "" -#: includes/class.cooked-recipe-meta.php:495 -#: includes/class.cooked-recipe-meta.php:587 -#: includes/class.cooked-recipe-meta.php:653 -msgid "ex. Eggs, Milk, etc." +#: includes/class.cooked-settings.php:223 +#: includes/class.cooked-measurements.php:202 +#: includes/class.cooked-recipes.php:799 +msgid "Servings" msgstr "" -#: includes/class.cooked-recipe-meta.php:504 -#: includes/class.cooked-recipe-meta.php:596 -#: includes/class.cooked-recipe-meta.php:662 -msgid "Substitution:" +#: includes/class.cooked-settings.php:228 +msgid "Carbs Format" msgstr "" -#: includes/class.cooked-recipe-meta.php:517 -#: includes/class.cooked-recipe-meta.php:609 -#: includes/class.cooked-recipe-meta.php:675 -msgid "ex. Apple Sauce, Tofu, etc." +#: includes/class.cooked-settings.php:229 +msgid "You can display carbs as \"Total\" or \"Net\"." msgstr "" -#: includes/class.cooked-recipe-meta.php:528 -#: includes/class.cooked-recipe-meta.php:683 -#: includes/class.cooked-recipe-meta.php:755 -#: includes/class.cooked-recipe-meta.php:847 -msgid "Section Heading" +#: includes/class.cooked-settings.php:235 +msgid "Total Carbs" msgstr "" -#: includes/class.cooked-recipe-meta.php:532 -#: includes/class.cooked-recipe-meta.php:687 -#: includes/class.cooked-recipe-meta.php:759 -#: includes/class.cooked-recipe-meta.php:851 -msgid "Heading Element:" +#: includes/class.cooked-settings.php:236 +msgid "Net Carbs" msgstr "" -#: includes/class.cooked-recipe-meta.php:623 -msgid "Add Ingredient" +#: includes/class.cooked-settings.php:241 +msgid "Author Name Format" msgstr "" -#: includes/class.cooked-recipe-meta.php:624 -#: includes/class.cooked-recipe-meta.php:826 -msgid "Add Section Heading" +#: includes/class.cooked-settings.php:242 +msgid "You can show the full author's name or just a part of it." msgstr "" -#: includes/class.cooked-recipe-meta.php:825 -msgid "Add Direction" +#: includes/class.cooked-settings.php:248 +msgid "Full name" msgstr "" -#: includes/class.cooked-recipe-meta.php:882 -msgid "Nutrition Information" +#: includes/class.cooked-settings.php:249 +msgid "Full first name w/last name initial" msgstr "" -#: includes/class.cooked-recipe-meta.php:920 -#: includes/class.cooked-shortcodes.php:1061 -msgid "Nutrition Facts" +#: includes/class.cooked-settings.php:250 +msgid "First name initial w/full last name" msgstr "" -#: includes/class.cooked-recipe-meta.php:938 -#: includes/class.cooked-shortcodes.php:1029 -msgid "Amount per serving" +#: includes/class.cooked-settings.php:251 +msgid "First name only" msgstr "" -#: includes/class.cooked-recipe-meta.php:948 -#: includes/class.cooked-shortcodes.php:1039 -msgid "% Daily Value *" +#: includes/class.cooked-settings.php:256 +msgid "Author Links" msgstr "" -#: includes/class.cooked-recipe-meta.php:967 -#: includes/class.cooked-shortcodes.php:971 -msgid "Includes" +#: includes/class.cooked-settings.php:257 +msgid "" +"If you do not want the author names to link to the author recipe listings, " +"you can disable them here." msgstr "" -#: includes/class.cooked-recipe-meta.php:999 -#: includes/class.cooked-shortcodes.php:1065 -msgid "The % Daily Value (DV) tells you how much a nutrient in a serving of food contributes to a daily diet. 2,000 calories a day is used for general nutrition advice." +#: includes/class.cooked-settings.php:257 +msgid "" +"Note: Author links require the Browse/Search Recipes Page to be set " +"up correctly to function properly." msgstr "" -#: includes/class.cooked-recipe-meta.php:1015 -msgid "Recipe Gallery Type" +#: includes/class.cooked-settings.php:264 +msgid "Disable Author Links" msgstr "" -#: includes/class.cooked-recipe-meta.php:1028 -msgid "Choose one..." +#: includes/class.cooked-settings.php:269 +msgid "Default Category" msgstr "" -#. translators: a title for the video section of the recipe editor, where users can paste a YouToub or Vimeo URL into the field below. -#: includes/class.cooked-recipe-meta.php:1042 +#: includes/class.cooked-settings.php:271 #, php-format -msgid "%1$s or %2$s Video" +msgid "" +"Optionally set the default recipe category for your %s shortcode display." msgstr "" -#. translators: a message describing how to display a video from YouTube or Vimeo. -#: includes/class.cooked-recipe-meta.php:1046 +#: includes/class.cooked-settings.php:277 +msgid "Default Sort Order" +msgstr "" + +#: includes/class.cooked-settings.php:279 #, php-format -msgid "If you would like to display a video as the first item in your gallery, you can paste a valid %1$s or %2$s URL below." +msgid "Set the default sort order for your %s shortcode display." msgstr "" -#: includes/class.cooked-recipe-meta.php:1051 -msgid "Gallery Items" +#: includes/class.cooked-settings.php:285 +msgid "Newest First" msgstr "" -#: includes/class.cooked-recipe-meta.php:1082 -msgid "Recipe Information" +#: includes/class.cooked-settings.php:286 +msgid "Oldest First" msgstr "" -#: includes/class.cooked-recipe-meta.php:1083 -msgid "This will display the recipe author, cooking times, etc." +#: includes/class.cooked-settings.php:287 +msgid "Alphabetical" msgstr "" -#. translators: "include and exclude" section title -#. translators: "left and right" section title -#: includes/class.cooked-recipe-meta.php:1092 -#: includes/class.cooked-recipe-meta.php:1102 -#, php-format -msgid "\"%1$s\" and \"%2$s\"" +#: includes/class.cooked-settings.php:288 +msgid "Alphabetical (reversed)" msgstr "" -#: includes/class.cooked-recipe-meta.php:1094 -msgid "This will allow you to include or exclude content from the shortcode output." +#: includes/class.cooked-settings.php:293 +msgid "Section Heading Default HTML Tag" msgstr "" -#: includes/class.cooked-recipe-meta.php:1103 -msgid "Used like \"include\", but will position the content to the left or right." +#: includes/class.cooked-settings.php:295 +msgid "Set the default HTML tag for your section headings." msgstr "" -#: includes/class.cooked-recipe-meta.php:1113 -#: includes/class.cooked-recipe-meta.php:1159 -#: includes/class.cooked-recipe-meta.php:1190 -#: includes/class.cooked-recipe-meta.php:1215 -#: includes/class.cooked-recipe-meta.php:1239 -#: includes/class.cooked-recipe-meta.php:1299 -#: includes/class.cooked-recipe-meta.php:1344 -#: includes/class.cooked-recipe-meta.php:1374 -#: includes/class.cooked-recipe-meta.php:1419 -msgid "Available Variables" +#: includes/class.cooked-settings.php:301 +msgid "div" msgstr "" -#: includes/class.cooked-recipe-meta.php:1117 -#: includes/class.cooked-settings.php:215 -#: includes/class.cooked-shortcodes.php:445 -#: includes/class.cooked-shortcodes.php:623 -msgid "Author" +#: includes/class.cooked-settings.php:302 +msgid "h2" msgstr "" -#: includes/class.cooked-recipe-meta.php:1121 -#: includes/class.cooked-shortcodes.php:446 -#: includes/class.cooked-shortcodes.php:634 -msgid "Difficulty" +#: includes/class.cooked-settings.php:303 +msgid "h3" msgstr "" -#: includes/class.cooked-recipe-meta.php:1122 -msgid "Servings Switcher" +#: includes/class.cooked-settings.php:304 +msgid "h4" msgstr "" -#: includes/class.cooked-recipe-meta.php:1123 -#: includes/class.cooked-settings.php:216 -#: includes/class.cooked-shortcodes.php:717 -#: includes/class.cooked-shortcodes.php:720 -#: includes/class.cooked-taxonomies.php:39 -msgid "Category" +#: includes/class.cooked-settings.php:305 +msgid "h5" msgstr "" -#: includes/class.cooked-recipe-meta.php:1124 -msgid "Print Mode" +#: includes/class.cooked-settings.php:306 +msgid "h6" msgstr "" -#: includes/class.cooked-recipe-meta.php:1125 -msgid "Full-Screen Mode" +#: includes/class.cooked-settings.php:311 +msgid "WP Editor Roles" msgstr "" -#: includes/class.cooked-recipe-meta.php:1145 -msgid "This will display the list of ingredients, added via the \"Ingredients\" tab." +#: includes/class.cooked-settings.php:312 +msgid "" +"Choose which user roles can use the WP Editor for the Excerpt, Directions & " +"Notes fields." msgstr "" -#: includes/class.cooked-recipe-meta.php:1151 -msgid "This will allow you to hide or show the checkboxes:" +#: includes/class.cooked-settings.php:318 +msgid "Advanced Settings" msgstr "" -#: includes/class.cooked-recipe-meta.php:1161 -msgid "Show checkboxes" +#: includes/class.cooked-settings.php:328 +msgid "Disable Public Recipes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1162 -msgid "Hide checkboxes" +#: includes/class.cooked-settings.php:328 +#, php-format +msgid "Only show recipes using the %s shortcode." msgstr "" -#: includes/class.cooked-recipe-meta.php:1176 -msgid "This will display the list of directions, added via the \"Directions\" tab." +#: includes/class.cooked-settings.php:330 +#, php-format +msgid "Disable %s Tags" msgstr "" -#: includes/class.cooked-recipe-meta.php:1182 -msgid "This will allow you to hide or show the numbers:" +#: includes/class.cooked-settings.php:330 +msgid "Prevents duplicates when tags already exist." msgstr "" -#: includes/class.cooked-recipe-meta.php:1192 -msgid "Show numbers" +#: includes/class.cooked-settings.php:331 +msgid "Disable \"Servings Switcher\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1193 -msgid "Hide numbers" +#: includes/class.cooked-settings.php:331 +msgid "Removes the servings dropdown on recipes." msgstr "" -#: includes/class.cooked-recipe-meta.php:1206 -msgid "Featured Image" +#: includes/class.cooked-settings.php:332 +msgid "Disable Recipe Schema Output" msgstr "" -#: includes/class.cooked-recipe-meta.php:1207 -msgid "This will display the featured image, if one is set." +#: includes/class.cooked-settings.php:332 +msgid "" +"You should only do this if you're using something else to output schema " +"information." msgstr "" -#: includes/class.cooked-recipe-meta.php:1217 -#: includes/class.cooked-recipe-meta.php:1241 -#: includes/class.cooked-recipe-meta.php:1346 -msgid "None" +#: includes/class.cooked-settings.php:333 +msgid "Disable Recipe Archive Page" msgstr "" -#: includes/class.cooked-recipe-meta.php:1230 -msgid "Nutrition Label" +#: includes/class.cooked-settings.php:333 +msgid "Prevents the recipe archive from being displayed." msgstr "" -#: includes/class.cooked-recipe-meta.php:1231 -msgid "This will display the Nutrition Facts label, if data is present." +#: includes/class.cooked-settings.php:340 +msgid "Design" msgstr "" -#: includes/class.cooked-recipe-meta.php:1257 -msgid "This will display the gallery, if one is set or created from the \"Gallery\" tab." +#: includes/class.cooked-settings.php:344 +msgid "Dark Mode" msgstr "" -#: includes/class.cooked-recipe-meta.php:1265 -msgid "Set the width of the gallery." +#: includes/class.cooked-settings.php:345 +msgid "" +"If your site has a dark background, you should enable \"Dark Mode\" so that " +"Cooked can match this style." msgstr "" -#: includes/class.cooked-recipe-meta.php:1272 -msgid "Set the image size ratio." +#: includes/class.cooked-settings.php:351 +msgid "Enable \"Dark Mode\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1282 -msgid "Set the navigation style." +#: includes/class.cooked-settings.php:356 +msgid "Author Images" msgstr "" -#: includes/class.cooked-recipe-meta.php:1289 -msgid "Enable or disable \"Full-Screen\" mode." +#: includes/class.cooked-settings.php:357 +msgid "" +"If you do not want to display the author images (avatars), you can disable " +"them here." msgstr "" -#. translators: related to the width of slideshows: "80% or 300px" section title -#: includes/class.cooked-recipe-meta.php:1304 -#, php-format -msgid "ex: \"%1$s\" or \"%2$s\"" +#: includes/class.cooked-settings.php:364 +msgid "Hide Author Images" msgstr "" -#. translators: related to the image ratio for slideshows: "ex: 800/600" section title -#: includes/class.cooked-recipe-meta.php:1309 -#, php-format -msgid "ex: \"%s\"" +#: includes/class.cooked-settings.php:369 +msgid "Main Color" msgstr "" -#. translators: related to the navigation style for slideshows: "dots, thumbs or false" section title -#: includes/class.cooked-recipe-meta.php:1314 -#, php-format -msgid "\"%1$s\", \"%2$s\", or \"%3$s\"" +#: includes/class.cooked-settings.php:370 +msgid "Used on buttons, cooking timer, etc." msgstr "" -#. translators: related to allowing full screen for slideshows: "true or false" section title -#: includes/class.cooked-recipe-meta.php:1319 -#, php-format -msgid "\"%1$s\" or \"%2$s\"" +#: includes/class.cooked-settings.php:376 +msgid "Main Color (on hover)" msgstr "" -#: includes/class.cooked-recipe-meta.php:1336 -msgid "This will display the excerpt, if one is available from the \"Layout & Content\" tab." +#: includes/class.cooked-settings.php:377 +msgid "Used when hovering over buttons." msgstr "" -#: includes/class.cooked-recipe-meta.php:1360 -msgid "This will display the notes, if one is available from the \"Layout & Content\" tab." +#: includes/class.cooked-settings.php:383 +msgid "First Responsive Breakpoint" msgstr "" -#: includes/class.cooked-recipe-meta.php:1366 -msgid "This will allow you to hide or show the header for the notes section:" +#: includes/class.cooked-settings.php:384 +msgid "Set the first responsive breakpoint. Best for large tablets." msgstr "" -#: includes/class.cooked-recipe-meta.php:1376 -msgid "Show header" +#: includes/class.cooked-settings.php:390 +msgid "Second Responsive Breakpoint" msgstr "" -#: includes/class.cooked-recipe-meta.php:1377 -msgid "Hide header" +#: includes/class.cooked-settings.php:391 +msgid "Set the second responsive breakpoint. Best for small tablets." msgstr "" -#: includes/class.cooked-recipe-meta.php:1391 -msgid "This will display a special link to start a cooking timer." +#: includes/class.cooked-settings.php:397 +msgid "Third Responsive Breakpoint" msgstr "" -#. translators: "seconds, minutes and hours" section title -#: includes/class.cooked-recipe-meta.php:1400 -#, php-format -msgid "\"%1$s\", \"%2$s\" and \"%3$s\"" +#: includes/class.cooked-settings.php:398 +msgid "" +"Set the third responsive breakpoint. Best for phones and other small devices." msgstr "" -#: includes/class.cooked-recipe-meta.php:1402 -msgid "Use just one or a combination of all three to set the timer length" +#: includes/class.cooked-settings.php:406 +msgid "Permalinks" msgstr "" -#: includes/class.cooked-recipe-meta.php:1409 -msgid "Add a short description for this timer, if applicable." +#: includes/class.cooked-settings.php:410 +msgid "Recipe Permalink" msgstr "" -#: includes/class.cooked-recipe-meta.php:1421 -msgid "Time in seconds" +#: includes/class.cooked-settings.php:413 +msgid "recipe-name" msgstr "" -#: includes/class.cooked-recipe-meta.php:1422 -msgid "Time in minutes" +#: includes/class.cooked-settings.php:417 +msgid "Recipe Author Permalink" msgstr "" -#: includes/class.cooked-recipe-meta.php:1423 -msgid "Time in hours" +#: includes/class.cooked-settings.php:420 +msgid "author-name" msgstr "" -#: includes/class.cooked-recipe-meta.php:1424 -msgid "Timer Description" +#: includes/class.cooked-settings.php:424 +msgid "Recipe Category Permalink" msgstr "" -#. translators: stating the recipe author with a "By" in front of it. (ex: "By John Smith") -#. translators: referring to the author (ex: By John Smith) -#: includes/class.cooked-recipes.php:268 -#: includes/class.cooked-recipes.php:322 -#: templates/front/recipe-single.php:47 -#, php-format -msgid "By %s" +#: includes/class.cooked-settings.php:427 +msgid "recipe-category-name" msgstr "" -#. translators: For showing "All" of a taxonomy (ex: "All Burgers") -#: includes/class.cooked-recipes.php:384 +#: includes/class.cooked-settings.php:438 #, php-format -msgid "All %s" +msgid "WordPress Default %s" msgstr "" -#: includes/class.cooked-recipes.php:651 -msgid "Beginner" +#: includes/class.cooked-settings.php:443 +msgid "Show All (no pagination)" msgstr "" -#: includes/class.cooked-recipes.php:652 -msgid "Intermediate" +#: includes/class.cooked-settings.php:587 +msgid "Begin Migration" msgstr "" -#: includes/class.cooked-recipes.php:653 -msgid "Advanced" +#: includes/class.cooked-roles.php:22 +msgid "Recipe Editor" msgstr "" -#: includes/class.cooked-recipes.php:679 -msgid "Cooked Gallery" +#: includes/class.cooked-measurements.php:29 +#: includes/class.cooked-measurements.php:30 +msgid "g" msgstr "" -#: includes/class.cooked-recipes.php:683 -msgid "Envira Gallery" +#: includes/class.cooked-measurements.php:31 +msgid "gram" msgstr "" -#: includes/class.cooked-recipes.php:687 -msgid "Soliloquy Slider" +#: includes/class.cooked-measurements.php:32 +msgid "grams" msgstr "" -#: includes/class.cooked-recipes.php:691 -msgid "Slider Revolution" +#: includes/class.cooked-measurements.php:36 +#: includes/class.cooked-measurements.php:37 +msgid "kg" msgstr "" -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:766 -#, php-format -msgid "Quarter (%s Serving)" -msgid_plural "Quarter (%s Servings)" -msgstr[0] "" -msgstr[1] "" - -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:769 -#, php-format -msgid "Half (%s Serving)" -msgid_plural "Half (%s Servings)" -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-measurements.php:38 +msgid "kilogram" +msgstr "" -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:772 -#, php-format -msgid "Default (%s Serving)" -msgid_plural "Default (%s Servings)" -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-measurements.php:39 +msgid "kilograms" +msgstr "" -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:775 -#, php-format -msgid "Double (%s Servings)" +#: includes/class.cooked-measurements.php:43 +#: includes/class.cooked-measurements.php:44 +msgid "mg" msgstr "" -#. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:778 -#, php-format -msgid "Triple (%s Servings)" +#: includes/class.cooked-measurements.php:45 +msgid "milligram" msgstr "" -#: includes/class.cooked-recipes.php:792 -#: includes/class.cooked-shortcodes.php:447 -msgid "Yields" +#: includes/class.cooked-measurements.php:46 +msgid "milligrams" msgstr "" -#. translators: singular and plural "serving" sizes -#: includes/class.cooked-recipes.php:796 -#: includes/class.cooked-recipes.php:807 -#, php-format -msgid "%s Serving" -msgid_plural "%s Servings" -msgstr[0] "" -msgstr[1] "" +#: includes/class.cooked-measurements.php:50 +#: includes/class.cooked-measurements.php:51 +msgid "oz" +msgstr "" -#: includes/class.cooked-recipes.php:904 -#: includes/class.cooked-recipes.php:918 -msgid "or" +#: includes/class.cooked-measurements.php:52 +msgid "ounce" msgstr "" -#. translators: singular and plural "steps" -#: includes/class.cooked-recipes.php:962 -#: includes/class.cooked-seo.php:83 -#, php-format -msgid "Step %d" +#: includes/class.cooked-measurements.php:53 +msgid "ounces" msgstr "" -#: includes/class.cooked-recipes.php:1022 -msgid "Browse" +#: includes/class.cooked-measurements.php:57 +#: includes/class.cooked-measurements.php:58 +msgid "fl oz" msgstr "" -#: includes/class.cooked-recipes.php:1039 -#: includes/class.cooked-settings.php:144 -msgid "No categories" +#: includes/class.cooked-measurements.php:59 +msgid "fluid ounce" msgstr "" -#: includes/class.cooked-recipes.php:1042 -#: includes/class.cooked-settings.php:191 -#: includes/class.cooked-taxonomies.php:38 -#: includes/class.cooked-taxonomies.php:48 -msgid "Categories" +#: includes/class.cooked-measurements.php:60 +msgid "fluid ounces" msgstr "" -#: includes/class.cooked-recipes.php:1044 -#: includes/class.cooked-taxonomies.php:41 -#: includes/widgets/recipe-categories.php:48 -msgid "All Categories" +#: includes/class.cooked-measurements.php:64 +#: includes/class.cooked-measurements.php:66 +msgid "cup" msgstr "" -#: includes/class.cooked-recipes.php:1114 -msgid "Find a recipe..." +#: includes/class.cooked-measurements.php:65 +#: includes/class.cooked-measurements.php:67 +msgid "cups" msgstr "" -#: includes/class.cooked-recipes.php:1116 -msgid "Search" +#: includes/class.cooked-measurements.php:71 +#: includes/class.cooked-measurements.php:72 +msgid "tsp" msgstr "" -#: includes/class.cooked-recipes.php:1129 -msgid "Newest first" +#: includes/class.cooked-measurements.php:73 +msgid "teaspoon" msgstr "" -#: includes/class.cooked-recipes.php:1133 -msgid "Oldest first" +#: includes/class.cooked-measurements.php:74 +msgid "teaspoons" msgstr "" -#: includes/class.cooked-recipes.php:1137 -msgid "Alphabetical (A-Z)" +#: includes/class.cooked-measurements.php:78 +#: includes/class.cooked-measurements.php:79 +msgid "tbsp" msgstr "" -#: includes/class.cooked-recipes.php:1141 -msgid "Alphabetical (Z-A)" +#: includes/class.cooked-measurements.php:80 +msgid "tablespoon" msgstr "" -#: includes/class.cooked-roles.php:22 -msgid "Recipe Editor" +#: includes/class.cooked-measurements.php:81 +msgid "tablespoons" msgstr "" -#: includes/class.cooked-settings.php:85 -msgid "Cooked settings has been updated!" +#: includes/class.cooked-measurements.php:85 +#: includes/class.cooked-measurements.php:86 +msgid "dl" msgstr "" -#: includes/class.cooked-settings.php:104 -msgid "Cooked Plugin Setup" +#: includes/class.cooked-measurements.php:87 +msgid "deciliter" msgstr "" -#: includes/class.cooked-settings.php:105 -#, php-format -msgid "To display your recipes properly, please set up your %s." +#: includes/class.cooked-measurements.php:88 +msgid "deciliters" msgstr "" -#: includes/class.cooked-settings.php:106 -#: includes/class.cooked-settings.php:168 -msgid "Browse/Search Recipes Page" +#: includes/class.cooked-measurements.php:92 +#: includes/class.cooked-measurements.php:93 +msgid "ml" msgstr "" -#: includes/class.cooked-settings.php:143 -msgid "Choose a page..." +#: includes/class.cooked-measurements.php:94 +msgid "milliliter" msgstr "" -#: includes/class.cooked-settings.php:143 -msgid "No pages" +#: includes/class.cooked-measurements.php:95 +msgid "milliliters" msgstr "" -#: includes/class.cooked-settings.php:144 -msgid "No default" +#: includes/class.cooked-measurements.php:99 +#: includes/class.cooked-measurements.php:100 +msgid "l" msgstr "" -#: includes/class.cooked-settings.php:164 -msgid "General" +#: includes/class.cooked-measurements.php:101 +msgid "liter" msgstr "" -#. translators: a description on how to add the [cooked-browse] shortcode to a page -#: includes/class.cooked-settings.php:170 -#, php-format -msgid "Create a page with the %s shortcode on it, then choose it from this dropdown." +#: includes/class.cooked-measurements.php:102 +msgid "liters" msgstr "" -#. translators: a description on how to add the [cooked-browse] shortcode to a page -#: includes/class.cooked-settings.php:170 -msgid "Note: This setting is required for the plugin to function properly." +#: includes/class.cooked-measurements.php:106 +#: includes/class.cooked-measurements.php:108 +msgid "stick" msgstr "" -#: includes/class.cooked-settings.php:176 -msgid "Recipes Per Page" +#: includes/class.cooked-measurements.php:107 +#: includes/class.cooked-measurements.php:109 +msgid "sticks" msgstr "" -#. translators: a description on how to choose the default number of recipes per page. -#: includes/class.cooked-settings.php:178 -#, php-format -msgid "Choose the default (set via the %s panel) or choose a different number here." +#: includes/class.cooked-measurements.php:113 +msgid "lb" msgstr "" -#. translators: a description on how to choose the default number of recipes per page. -#: includes/class.cooked-settings.php:178 -msgid "Settings > Reading" +#: includes/class.cooked-measurements.php:114 +msgid "lbs" msgstr "" -#: includes/class.cooked-settings.php:184 -msgid "Recipe Taxonomies" +#: includes/class.cooked-measurements.php:115 +msgid "pound" msgstr "" -#: includes/class.cooked-settings.php:185 -msgid "Choose which taxonomies you want to enable for your recipes." +#: includes/class.cooked-measurements.php:116 +msgid "pounds" msgstr "" -#: includes/class.cooked-settings.php:196 -msgid "Global Recipe Toggles" +#: includes/class.cooked-measurements.php:120 +#: includes/class.cooked-measurements.php:122 +msgid "dash" msgstr "" -#: includes/class.cooked-settings.php:197 -msgid "You can quickly hide or show different recipe elements (site-wide) with these checkboxes." +#: includes/class.cooked-measurements.php:121 +#: includes/class.cooked-measurements.php:123 +msgid "dashes" msgstr "" -#: includes/class.cooked-settings.php:228 -msgid "Carbs Format" +#: includes/class.cooked-measurements.php:127 +#: includes/class.cooked-measurements.php:129 +msgid "drop" msgstr "" -#: includes/class.cooked-settings.php:229 -msgid "You can display carbs as \"Total\" or \"Net\"." +#: includes/class.cooked-measurements.php:128 +#: includes/class.cooked-measurements.php:130 +msgid "drops" msgstr "" -#: includes/class.cooked-settings.php:235 -msgid "Total Carbs" +#: includes/class.cooked-measurements.php:134 +msgid "gal" msgstr "" -#: includes/class.cooked-settings.php:236 -msgid "Net Carbs" +#: includes/class.cooked-measurements.php:135 +msgid "gals" msgstr "" -#: includes/class.cooked-settings.php:241 -msgid "Author Name Format" +#: includes/class.cooked-measurements.php:136 +msgid "gallon" msgstr "" -#: includes/class.cooked-settings.php:242 -msgid "You can show the full author's name or just a part of it." +#: includes/class.cooked-measurements.php:137 +msgid "gallons" msgstr "" -#: includes/class.cooked-settings.php:248 -msgid "Full name" +#: includes/class.cooked-measurements.php:141 +#: includes/class.cooked-measurements.php:143 +msgid "pinch" msgstr "" -#: includes/class.cooked-settings.php:249 -msgid "Full first name w/last name initial" +#: includes/class.cooked-measurements.php:142 +#: includes/class.cooked-measurements.php:144 +msgid "pinches" msgstr "" -#: includes/class.cooked-settings.php:250 -msgid "First name initial w/full last name" +#: includes/class.cooked-measurements.php:148 +#: includes/class.cooked-measurements.php:149 +msgid "pt" msgstr "" -#: includes/class.cooked-settings.php:251 -msgid "First name only" +#: includes/class.cooked-measurements.php:150 +msgid "pint" msgstr "" -#: includes/class.cooked-settings.php:256 -msgid "Author Links" +#: includes/class.cooked-measurements.php:151 +msgid "pints" msgstr "" -#: includes/class.cooked-settings.php:257 -msgid "If you do not want the author names to link to the author recipe listings, you can disable them here." +#: includes/class.cooked-measurements.php:155 +msgid "qt" msgstr "" -#: includes/class.cooked-settings.php:257 -msgid "Note: Author links require the Browse/Search Recipes Page to be set up correctly to function properly." +#: includes/class.cooked-measurements.php:156 +msgid "qts" msgstr "" -#: includes/class.cooked-settings.php:264 -msgid "Disable Author Links" +#: includes/class.cooked-measurements.php:157 +msgid "quart" msgstr "" -#: includes/class.cooked-settings.php:269 -msgid "Default Category" +#: includes/class.cooked-measurements.php:158 +msgid "quarts" msgstr "" -#. translators: a description on how to set the default recipe category for the [cooked-browse] shortcode. -#: includes/class.cooked-settings.php:271 -#, php-format -msgid "Optionally set the default recipe category for your %s shortcode display." +#: includes/class.cooked-measurements.php:162 +#: includes/class.cooked-measurements.php:163 +msgid "drizzle" msgstr "" -#: includes/class.cooked-settings.php:277 -msgid "Default Sort Order" +#: includes/class.cooked-measurements.php:164 +#: includes/class.cooked-measurements.php:165 +msgid "Drizzle" msgstr "" -#. translators: a description on how to set the default sort order for the [cooked-browse] shortcode. -#: includes/class.cooked-settings.php:279 -#, php-format -msgid "Set the default sort order for your %s shortcode display." +#: includes/class.cooked-measurements.php:169 +#: includes/class.cooked-measurements.php:171 +msgid "clove" msgstr "" -#: includes/class.cooked-settings.php:285 -msgid "Newest First" +#: includes/class.cooked-measurements.php:170 +#: includes/class.cooked-measurements.php:172 +msgid "cloves" msgstr "" -#: includes/class.cooked-settings.php:286 -msgid "Oldest First" +#: includes/class.cooked-measurements.php:176 +#: includes/class.cooked-measurements.php:178 +msgid "jar" msgstr "" -#: includes/class.cooked-settings.php:287 -msgid "Alphabetical" +#: includes/class.cooked-measurements.php:177 +#: includes/class.cooked-measurements.php:179 +msgid "jars" msgstr "" -#: includes/class.cooked-settings.php:288 -msgid "Alphabetical (reversed)" +#: includes/class.cooked-measurements.php:183 +#: includes/class.cooked-measurements.php:185 +msgid "can" msgstr "" -#: includes/class.cooked-settings.php:293 -msgid "Section Heading Default HTML Tag" +#: includes/class.cooked-measurements.php:184 +#: includes/class.cooked-measurements.php:186 +msgid "cans" msgstr "" -#. translators: a description on how to set the default sort order for the [cooked-browse] shortcode. -#: includes/class.cooked-settings.php:295 -msgid "Set the default HTML tag for your section headings." +#: includes/class.cooked-measurements.php:206 +msgid "Serving size" msgstr "" -#: includes/class.cooked-settings.php:301 -msgid "div" +#: includes/class.cooked-measurements.php:213 +msgid "Calories" msgstr "" -#: includes/class.cooked-settings.php:302 -msgid "h2" +#: includes/class.cooked-measurements.php:220 +msgid "Total Fat" msgstr "" -#: includes/class.cooked-settings.php:303 -msgid "h3" +#: includes/class.cooked-measurements.php:226 +msgid "Saturated Fat" msgstr "" -#: includes/class.cooked-settings.php:304 -msgid "h4" +#: includes/class.cooked-measurements.php:232 +msgid "Trans Fat" msgstr "" -#: includes/class.cooked-settings.php:305 -msgid "h5" +#: includes/class.cooked-measurements.php:233 +msgid "Trans Fat" msgstr "" -#: includes/class.cooked-settings.php:306 -msgid "h6" +#: includes/class.cooked-measurements.php:238 +msgid "Monounsaturated Fat" msgstr "" -#: includes/class.cooked-settings.php:311 -msgid "WP Editor Roles" +#: includes/class.cooked-measurements.php:243 +msgid "Polyunsaturated Fat" msgstr "" -#: includes/class.cooked-settings.php:312 -msgid "Choose which user roles can use the WP Editor for the Excerpt, Directions & Notes fields." +#: includes/class.cooked-measurements.php:250 +msgid "Cholesterol" msgstr "" -#: includes/class.cooked-settings.php:318 -msgid "Advanced Settings" +#: includes/class.cooked-measurements.php:256 +msgid "Sodium" msgstr "" -#. translators: an option to only show recipes with the [cooked-recipe] shortcode. -#: includes/class.cooked-settings.php:328 -msgid "Disable Public Recipes" +#: includes/class.cooked-measurements.php:262 +msgid "Total Carbohydrate" msgstr "" -#. translators: an option to only show recipes with the [cooked-recipe] shortcode. -#: includes/class.cooked-settings.php:328 -#, php-format -msgid "Only show recipes using the %s shortcode." +#: includes/class.cooked-measurements.php:262 +msgid "Net Carbohydrate" msgstr "" -#. translators: an option to disable "meta" tags. -#: includes/class.cooked-settings.php:330 -#, php-format -msgid "Disable %s Tags" +#: includes/class.cooked-measurements.php:268 +msgid "Dietary Fiber" msgstr "" -#. translators: an option to disable "meta" tags. -#: includes/class.cooked-settings.php:330 -msgid "Prevents duplicates when tags already exist." +#: includes/class.cooked-measurements.php:274 +msgid "Total Sugars" msgstr "" -#: includes/class.cooked-settings.php:331 -msgid "Disable \"Servings Switcher\"" +#: includes/class.cooked-measurements.php:280 +msgid "Added Sugars" msgstr "" -#: includes/class.cooked-settings.php:331 -msgid "Removes the servings dropdown on recipes." +#: includes/class.cooked-measurements.php:288 +msgid "Protein" msgstr "" -#: includes/class.cooked-settings.php:332 -msgid "Disable Recipe Schema Output" +#: includes/class.cooked-measurements.php:297 +msgid "Vitamin A" msgstr "" -#: includes/class.cooked-settings.php:332 -msgid "You should only do this if you're using something else to output schema information." +#: includes/class.cooked-measurements.php:303 +msgid "Vitamin C" msgstr "" -#: includes/class.cooked-settings.php:333 -msgid "Disable Recipe Archive Page" +#: includes/class.cooked-measurements.php:309 +msgid "Calcium" msgstr "" -#: includes/class.cooked-settings.php:333 -msgid "Prevents the recipe archive from being displayed." +#: includes/class.cooked-measurements.php:315 +msgid "Iron" msgstr "" -#: includes/class.cooked-settings.php:340 -msgid "Design" +#: includes/class.cooked-measurements.php:321 +msgid "Potassium" msgstr "" -#: includes/class.cooked-settings.php:344 -msgid "Dark Mode" +#: includes/class.cooked-measurements.php:327 +msgid "Vitamin D" msgstr "" -#: includes/class.cooked-settings.php:345 -msgid "If your site has a dark background, you should enable \"Dark Mode\" so that Cooked can match this style." +#: includes/class.cooked-measurements.php:333 +msgid "Vitamin E" msgstr "" -#: includes/class.cooked-settings.php:351 -msgid "Enable \"Dark Mode\"" +#: includes/class.cooked-measurements.php:339 +msgid "Vitamin K" msgstr "" -#: includes/class.cooked-settings.php:356 -msgid "Author Images" +#: includes/class.cooked-measurements.php:345 +msgid "Thiamin" msgstr "" -#: includes/class.cooked-settings.php:357 -msgid "If you do not want to display the author images (avatars), you can disable them here." +#: includes/class.cooked-measurements.php:351 +msgid "Riboflavin" msgstr "" -#: includes/class.cooked-settings.php:364 -msgid "Hide Author Images" +#: includes/class.cooked-measurements.php:357 +msgid "Niacin" msgstr "" -#: includes/class.cooked-settings.php:369 -msgid "Main Color" +#: includes/class.cooked-measurements.php:363 +msgid "Vitamin B6" msgstr "" -#: includes/class.cooked-settings.php:370 -msgid "Used on buttons, cooking timer, etc." +#: includes/class.cooked-measurements.php:369 +msgid "Folate" msgstr "" -#: includes/class.cooked-settings.php:376 -msgid "Main Color (on hover)" +#: includes/class.cooked-measurements.php:375 +msgid "Vitamin B12" msgstr "" -#: includes/class.cooked-settings.php:377 -msgid "Used when hovering over buttons." +#: includes/class.cooked-measurements.php:381 +msgid "Biotin" msgstr "" -#: includes/class.cooked-settings.php:383 -msgid "First Responsive Breakpoint" +#: includes/class.cooked-measurements.php:387 +msgid "Pantothenic Acid" +msgstr "" + +#: includes/class.cooked-measurements.php:393 +msgid "Phosphorus" msgstr "" -#: includes/class.cooked-settings.php:384 -msgid "Set the first responsive breakpoint. Best for large tablets." +#: includes/class.cooked-measurements.php:399 +msgid "Iodine" msgstr "" -#: includes/class.cooked-settings.php:390 -msgid "Second Responsive Breakpoint" +#: includes/class.cooked-measurements.php:405 +msgid "Magnesium" msgstr "" -#: includes/class.cooked-settings.php:391 -msgid "Set the second responsive breakpoint. Best for small tablets." +#: includes/class.cooked-measurements.php:411 +msgid "Zinc" msgstr "" -#: includes/class.cooked-settings.php:397 -msgid "Third Responsive Breakpoint" +#: includes/class.cooked-measurements.php:417 +msgid "Selenium" msgstr "" -#: includes/class.cooked-settings.php:398 -msgid "Set the third responsive breakpoint. Best for phones and other small devices." +#: includes/class.cooked-measurements.php:423 +msgid "Copper" msgstr "" -#: includes/class.cooked-settings.php:406 -msgid "Permalinks" +#: includes/class.cooked-measurements.php:429 +msgid "Manganese" msgstr "" -#: includes/class.cooked-settings.php:410 -msgid "Recipe Permalink" +#: includes/class.cooked-measurements.php:435 +msgid "Chromium" msgstr "" -#: includes/class.cooked-settings.php:413 -msgid "recipe-name" +#: includes/class.cooked-measurements.php:441 +msgid "Molybdenum" msgstr "" -#: includes/class.cooked-settings.php:417 -msgid "Recipe Author Permalink" +#: includes/class.cooked-measurements.php:447 +msgid "Chloride" msgstr "" -#: includes/class.cooked-settings.php:420 -msgid "author-name" +#: includes/class.cooked-measurements.php:703 +#: includes/class.cooked-measurements.php:714 +#: includes/class.cooked-measurements.php:732 +#, php-format +msgid "%d min" msgstr "" -#: includes/class.cooked-settings.php:424 -msgid "Recipe Category Permalink" +#: includes/class.cooked-measurements.php:703 +#: includes/class.cooked-measurements.php:714 +#: includes/class.cooked-measurements.php:732 +#, php-format +msgid "%d mins" msgstr "" -#: includes/class.cooked-settings.php:427 -msgid "recipe-category-name" +#: includes/class.cooked-measurements.php:712 +#: includes/class.cooked-measurements.php:730 +#, php-format +msgid "%d hr" msgstr "" -#. translators: posts_per_page default -#: includes/class.cooked-settings.php:438 +#: includes/class.cooked-measurements.php:712 +#: includes/class.cooked-measurements.php:730 #, php-format -msgid "WordPress Default %s" +msgid "%d hrs" msgstr "" -#: includes/class.cooked-settings.php:443 -msgid "Show All (no pagination)" +#: includes/class.cooked-measurements.php:728 +#, php-format +msgid "%d day" msgstr "" -#: includes/class.cooked-settings.php:587 -msgid "Begin Migration" +#: includes/class.cooked-measurements.php:728 +#, php-format +msgid "%d days" msgstr "" -#. translators: referring to the bottom of the Settings page. #: includes/class.cooked-shortcodes.php:149 #, php-format -msgid "Public recipes are currently disabled. You can change this at the bottom of the %s page." +msgid "" +"Public recipes are currently disabled. You can change this at the bottom of " +"the %s page." msgstr "" #: includes/class.cooked-shortcodes.php:297 msgid "(recipe not found or in draft status)" msgstr "" +#: includes/class.cooked-shortcodes.php:447 +#: includes/class.cooked-recipes.php:792 +msgid "Yields" +msgstr "" + #: includes/class.cooked-shortcodes.php:661 msgid "Fullscreen" msgstr "" -#: includes/class.cooked-taxonomies.php:40 -msgid "Search Categories" +#: includes/class.cooked-admin-enqueues.php:137 +msgid "remaining" msgstr "" -#: includes/class.cooked-taxonomies.php:42 -#: includes/widgets/recipe-categories.php:45 -msgid "Parent Category" +#: includes/class.cooked-admin-enqueues.php:140 +msgid "Use this Image" msgstr "" -#: includes/class.cooked-taxonomies.php:43 -msgid "Parent Category:" +#: includes/class.cooked-admin-enqueues.php:142 +msgid "Edit Gallery Item" msgstr "" -#: includes/class.cooked-taxonomies.php:44 -msgid "Edit Category" +#: includes/class.cooked-admin-enqueues.php:143 +msgid "Update Gallery Item" msgstr "" -#: includes/class.cooked-taxonomies.php:45 -msgid "Update Category" +#: includes/class.cooked-admin-enqueues.php:144 +msgid "Saved" msgstr "" -#: includes/class.cooked-taxonomies.php:46 -msgid "Add New Category" +#: includes/class.cooked-admin-enqueues.php:145 +msgid "Applied" msgstr "" -#: includes/class.cooked-taxonomies.php:47 -msgid "New Category Name" +#: includes/class.cooked-admin-enqueues.php:146 +msgid "" +"Are you sure you want to apply this new template to all of your recipes?" msgstr "" -#: includes/class.cooked-taxonomies.php:49 -msgid "No Categories" +#: includes/class.cooked-admin-enqueues.php:147 +msgid "" +"Are you sure you want to reset this recipe template to the Cooked plugin " +"default?" msgstr "" -#. translators: for displaying singular or plural versions depending on the number. -#: includes/class.cooked-taxonomies.php:136 +#: includes/class.cooked-admin-enqueues.php:149 #, php-format -msgid "%s Recipe" -msgid_plural "%s Recipes" -msgstr[0] "" -msgstr[1] "" - -#: includes/class.cooked-widgets.php:38 -msgid "Edit Recipe(s)..." -msgstr "" - -#: includes/class.cooked-widgets.php:38 -#: includes/class.cooked-widgets.php:40 -msgid "Choose recipe(s)..." -msgstr "" - -#: includes/widgets/nutrition.php:31 -#: includes/widgets/search.php:37 -msgid "Title (optional):" +msgid "Please confirm that you are ready to migrate all %s recipes." msgstr "" -#: includes/widgets/recipe-card.php:75 -#: includes/widgets/recipe-categories.php:40 -#: includes/widgets/recipe-list.php:48 -msgid "Widget Title (optional):" +#: includes/class.cooked-admin-enqueues.php:150 +msgid "Please confirm that you are ready to import all recipes." msgstr "" -#: includes/widgets/recipe-card.php:80 -msgid "Recipe:" +#: includes/class.cooked-admin-enqueues.php:151 +msgid "Are you sure you want to import recipes from this CSV file?" msgstr "" -#: includes/widgets/recipe-card.php:89 -msgid "Style:" +#: includes/class.cooked-admin-enqueues.php:152 +msgid "Please select a CSV file." msgstr "" -#: includes/widgets/recipe-card.php:91 -msgid "Simple" +#: includes/class.cooked-admin-enqueues.php:153 +msgid "Please select a valid CSV file." msgstr "" -#: includes/widgets/recipe-card.php:92 -msgid "Simple Centered" +#: includes/class.cooked-admin-enqueues.php:154 +msgid "Uploading..." msgstr "" -#: includes/widgets/recipe-card.php:93 -msgid "Modern" +#: includes/class.cooked-admin-enqueues.php:155 +msgid "Processing..." msgstr "" -#: includes/widgets/recipe-card.php:94 -msgid "Modern Centered" +#: includes/class.cooked-admin-enqueues.php:156 +msgid "recipes imported" msgstr "" -#: includes/widgets/recipe-card.php:99 -#: includes/widgets/recipe-list.php:83 -msgid "Width:" +#: includes/class.cooked-admin-enqueues.php:157 +msgid "Errors:" msgstr "" -#: includes/widgets/recipe-card.php:105 -#: includes/widgets/recipe-list.php:89 -msgid "Hide Image" +#: includes/class.cooked-admin-enqueues.php:158 +msgid "Import failed." msgstr "" -#: includes/widgets/recipe-card.php:110 -msgid "Hide Title" +#: includes/class.cooked-admin-enqueues.php:159 +msgid "Failed to process CSV file." msgstr "" -#: includes/widgets/recipe-card.php:115 -#: includes/widgets/recipe-list.php:94 -msgid "Hide Author" +#: includes/class.cooked-admin-enqueues.php:160 +msgid "Failed to upload CSV file." msgstr "" -#: includes/widgets/recipe-card.php:120 -msgid "Hide Excerpt" +#: includes/class.cooked-admin-enqueues.php:162 +msgid "Something went wrong" msgstr "" -#: includes/widgets/recipe-categories.php:58 -msgid "Hide Empty Categories" +#: includes/class.cooked-admin-enqueues.php:163 +msgid "hrs" msgstr "" -#: includes/widgets/recipe-list.php:53 -msgid "Sorted by:" +#: includes/class.cooked-admin-enqueues.php:164 +msgid "mins" msgstr "" -#: includes/widgets/recipe-list.php:55 -msgid "Most Recent" +#: includes/class.cooked-recipes.php:209 +#, php-format +msgid " AND ( %s OR %s ) " msgstr "" -#: includes/widgets/recipe-list.php:56 -msgid "Choose Recipes" +#: includes/class.cooked-recipes.php:268 includes/class.cooked-recipes.php:322 +#, php-format +msgid "By %s" msgstr "" -#: includes/widgets/recipe-list.php:62 -msgid "Show:" +#: includes/class.cooked-recipes.php:384 +#, php-format +msgid "All %s" msgstr "" -#: includes/widgets/recipe-list.php:73 -msgid "Recipes:" +#: includes/class.cooked-recipes.php:651 +msgid "Beginner" msgstr "" -#: includes/widgets/search.php:42 -msgid "Size:" +#: includes/class.cooked-recipes.php:652 +msgid "Intermediate" msgstr "" -#: includes/widgets/search.php:44 -msgid "Compact" +#: includes/class.cooked-recipes.php:653 +msgid "Advanced" msgstr "" -#: includes/widgets/search.php:45 -msgid "Wide" +#: includes/class.cooked-recipes.php:679 +msgid "Cooked Gallery" msgstr "" -#: includes/widgets/search.php:51 -msgid "Hide \"Browse\" dropdown" +#: includes/class.cooked-recipes.php:683 +msgid "Envira Gallery" msgstr "" -#: includes/widgets/search.php:56 -msgid "Hide \"Sorting\" dropdown" +#: includes/class.cooked-recipes.php:687 +msgid "Soliloquy Slider" msgstr "" -#: templates/admin/import.php:6 -msgid "Cooked Import" +#: includes/class.cooked-recipes.php:691 +msgid "Slider Revolution" msgstr "" -#. translators: referring to "Cooked Pro" -#: templates/admin/pro.php:10 +#: includes/class.cooked-recipes.php:766 #, php-format -msgid "Ready for %s?" +msgid "Quarter (%s Serving)" msgstr "" -#. translators: referring to "Cooked Pro" -#: templates/admin/pro.php:14 +#: includes/class.cooked-recipes.php:769 #, php-format -msgid "The %s upgrade adds loads of new features like ratings, favorites, user profiles, automatic nutrition information and more. Check out the list below for all of the details." -msgstr "" - -#: templates/admin/pro.php:23 -msgid "Premium Support" -msgstr "" - -#: templates/admin/pro.php:24 -msgid "User Profiles" -msgstr "" - -#: templates/admin/pro.php:25 -msgid "User Ratings" -msgstr "" - -#: templates/admin/pro.php:26 -msgid "User Favorites" +msgid "Half (%s Serving)" msgstr "" -#: templates/admin/pro.php:27 -msgid "Ingredient Links" +#: includes/class.cooked-recipes.php:772 +#, php-format +msgid "Default (%s Serving)" msgstr "" -#: templates/admin/pro.php:30 -msgid "Social Sharing" +#: includes/class.cooked-recipes.php:775 +#, php-format +msgid "Double (%s Servings)" msgstr "" -#: templates/admin/pro.php:31 -msgid "Recipe Submissions" +#: includes/class.cooked-recipes.php:778 +#, php-format +msgid "Triple (%s Servings)" msgstr "" -#: templates/admin/pro.php:32 -msgid "Modern Grid Layout" +#: includes/class.cooked-recipes.php:796 includes/class.cooked-recipes.php:807 +#, php-format +msgid "%s Serving" msgstr "" -#: templates/admin/pro.php:33 -msgid "Full-Width Layout" +#: includes/class.cooked-recipes.php:904 includes/class.cooked-recipes.php:918 +msgid "or" msgstr "" -#: templates/admin/pro.php:34 -msgid "Pagination Options" +#: includes/class.cooked-recipes.php:1022 +msgid "Browse" msgstr "" -#: templates/admin/pro.php:35 -msgid "Auto Nutrition Facts" +#: includes/class.cooked-recipes.php:1114 +msgid "Find a recipe..." msgstr "" -#: templates/admin/pro.php:38 -msgid "Compact List Layout" +#: includes/class.cooked-recipes.php:1116 +msgid "Search" msgstr "" -#: templates/admin/pro.php:39 -msgid "Fitness Layout" +#: includes/class.cooked-recipes.php:1129 +msgid "Newest first" msgstr "" -#: templates/admin/pro.php:40 -msgid "Cuisines" +#: includes/class.cooked-recipes.php:1133 +msgid "Oldest first" msgstr "" -#: templates/admin/pro.php:41 -msgid "Cooking Methods" +#: includes/class.cooked-recipes.php:1137 +msgid "Alphabetical (A-Z)" msgstr "" -#: templates/admin/pro.php:42 -msgid "Tags" +#: includes/class.cooked-recipes.php:1141 +msgid "Alphabetical (Z-A)" msgstr "" -#. translators: referring to "Cooked Pro" -#: templates/admin/pro.php:48 +#: includes/class.cooked-updates.php:118 #, php-format -msgid "Get %s" +msgid "Cooked: Updated from version %s to %s" msgstr "" -#. translators: referring to the "COOKED10" coupon code to get "10%" off Cooked Pro -#: templates/admin/pro.php:52 +#: includes/class.cooked-updates.php:134 #, php-format -msgid "Use coupon code %1$s for %2$s off!" +msgid "Cooked: Error running update method %s: %s" msgstr "" -#: templates/admin/settings.php:6 -msgid "Update Settings" +#: includes/class.cooked-updates.php:248 +#, php-format +msgid "" +"Cooked: Fixed line endings in %d recipes for WordPress exporter/importer " +"compatibility." msgstr "" -#: templates/admin/settings.php:10 -#: templates/admin/welcome.php:33 -msgid "Cooked Settings" +#: includes/class.cooked-migration.php:47 +#, php-format +msgid "" +"There is %1$s recipe that should be migrated from %2$s to take advantage of " +"new features and reliability." msgstr "" -#. translators: referring to "Cooked" -#: templates/admin/welcome.php:10 -#, php-format -msgid "Thanks for using %s!" +#: includes/class.cooked-migration.php:49 +msgid "" +"Please click the button below to migrate these recipes. Here is what will " +"happen to your recipes:" msgstr "" -#: templates/admin/welcome.php:16 -#, php-format -msgid "If this is your first time using %1$s, head over to the %2$s page for some initial configuration. You can also check out the %3$s if you get stuck or contact me on %4$s. If you just recently updated, you can find out what's new below." +#: includes/class.cooked-migration.php:51 +msgid "NO DATA LOSS, all fields will be remapped." msgstr "" -#: templates/admin/welcome.php:19 -msgid "documentation" +#: includes/class.cooked-migration.php:52 +msgid "Remapped fields will greatly speed up recipe loading times." msgstr "" -#: templates/admin/welcome.php:20 -#: templates/admin/welcome.php:32 -msgid "Discord" +#: includes/class.cooked-migration.php:53 +msgid "" +"If recipe excerpt exists, the short description will be moved to the top of " +"the recipe template." msgstr "" -#: templates/admin/welcome.php:29 -msgid "Quick Links" +#: includes/class.cooked-migration.php:54 +msgid "" +"If no recipe excerpt exists, the short description will be used instead." msgstr "" -#: templates/admin/welcome.php:31 -msgid "Documentation" +#: includes/class.cooked-migration.php:55 +msgid "Version number will be applied to each recipe." msgstr "" -#: templates/admin/welcome.php:34 -msgid "Create a Recipe" +#: includes/class.cooked-migration.php:65 +msgid "Migration" msgstr "" -#. translators: referring to the author (ex: Recipes by John Smith) -#: templates/front/recipe-list.php:37 +#: includes/class.cooked-migration.php:90 #, php-format -msgid "Recipes by %s" +msgid "" +"There is %1$s recipe that is from an older version of Cooked. Please %2$s to " +"migrate this recipe." msgstr "" -#: templates/front/recipe-list.php:38 -msgid "View all recipes" +#: includes/class.cooked-migration.php:90 +msgid "click here" msgstr "" From 9e92e6ef89a180cadd4dde35e64320ebfe7c4de1 Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 <79588074+mgiannopoulos24@users.noreply.github.com> Date: Fri, 9 Jan 2026 20:16:24 +0200 Subject: [PATCH 03/31] Fix pot file. --- languages/cooked.pot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/languages/cooked.pot b/languages/cooked.pot index 5734553..930fa0b 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -6,15 +6,15 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Cooked - Recipe Management 1.11.2\n" +"Project-Id-Version: Cooked - Recipe Management 1.12.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cooked\n" -"POT-Creation-Date: 2026-01-09 20:03+0200\n" +"POT-Creation-Date: 2026-01-09 20:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: includes/class.cooked-csv-import.php:39 From f93c200eb9f06bdce41cac7f16402a6ad6472190 Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 <79588074+mgiannopoulos24@users.noreply.github.com> Date: Fri, 9 Jan 2026 20:21:37 +0200 Subject: [PATCH 04/31] Revert pot header --- languages/cooked.pot | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/languages/cooked.pot b/languages/cooked.pot index 930fa0b..fb911d3 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -1,14 +1,10 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the Cooked - Recipe Management package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy +# Copyright (C) 2025 Gora Tech +# This file is distributed under the GPL2. msgid "" msgstr "" "Project-Id-Version: Cooked - Recipe Management 1.12.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cooked\n" -"POT-Creation-Date: 2026-01-09 20:16+0200\n" +"POT-Creation-Date: 2026-01-09 20:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +12,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: WP-CLI 2.12.0\n" +"X-Domain: cooked\n" #: includes/class.cooked-csv-import.php:39 msgid "Cooked_Recipes class not found. Plugin may not be properly loaded." From f1066a2a950edf3ba480ec6c8a74cffcbac98acb Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Mon, 2 Feb 2026 10:54:21 -0500 Subject: [PATCH 05/31] Created Tools Page - Moved 'Calculate Related Recipes' to Tools page. - Fixed bug where Calculate Related Recipes counter went beyond the number of recipes. --- assets/admin/js/cooked-functions.js | 2 +- includes/class.cooked-admin-enqueues.php | 1 + includes/class.cooked-admin-menus.php | 12 +++++++++- includes/class.cooked-ajax.php | 8 ++----- includes/class.cooked-related-recipes.php | 22 ------------------ includes/class.cooked-shortcodes.php | 2 +- templates/admin/tools.php | 27 +++++++++++++++++++++++ 7 files changed, 43 insertions(+), 31 deletions(-) create mode 100644 templates/admin/tools.php diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index 94ed23d..d30dcf4 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -230,7 +230,7 @@ var $_CookedConditionalTimeout = false; }); } - // Calculate Related Recipes Button (Settings > Tools) + // Calculate Related Recipes Button (Recipes > Tools) if ($_CookedCalculateRelatedButton.length) { $_CookedCalculateRelatedButton.on('click', function(e) { e.preventDefault(); diff --git a/includes/class.cooked-admin-enqueues.php b/includes/class.cooked-admin-enqueues.php index 1b13a14..4bd0619 100644 --- a/includes/class.cooked-admin-enqueues.php +++ b/includes/class.cooked-admin-enqueues.php @@ -62,6 +62,7 @@ public function admin_enqueues( $hook ) { 'post.php', 'edit.php', 'cooked_settings', + 'cooked_tools', 'cooked_import', 'cooked_welcome', 'cooked_pending', diff --git a/includes/class.cooked-admin-menus.php b/includes/class.cooked-admin-menus.php index 8d8860f..7fd27b8 100644 --- a/includes/class.cooked-admin-menus.php +++ b/includes/class.cooked-admin-menus.php @@ -43,6 +43,7 @@ public function add_menu() { } add_submenu_page('cooked_recipes_menu', __('Settings', 'cooked'), __('Settings','cooked'), 'edit_cooked_settings', 'cooked_settings', [&$this, 'cooked_settings_page'] ); + add_submenu_page('cooked_recipes_menu', __('Tools', 'cooked'), __('Tools','cooked'), 'edit_cooked_recipes', 'cooked_tools', [&$this, 'cooked_tools_page'] ); add_submenu_page('cooked_recipes_menu', __('Import', 'cooked'), __('Import','cooked'), 'edit_cooked_settings', 'cooked_import', [&$this, 'cooked_import_page'] ); add_submenu_page('cooked_recipes_menu', __('What\'s New?','cooked'), __('What\'s New?','cooked'), 'edit_cooked_settings', 'cooked_welcome', [&$this, 'cooked_welcome_content'] ); @@ -93,7 +94,16 @@ public function cooked_settings_page() { include COOKED_DIR . 'templates/admin/settings.php'; } - // Settings Panel + // Tools Page + public function cooked_tools_page() { + if ( ! current_user_can( 'edit_cooked_recipes' ) ) { + wp_die( __( 'You do not have sufficient permissions to access this page.', 'cooked' ) ); + } + + include COOKED_DIR . 'templates/admin/tools.php'; + } + + // Import Page public function cooked_import_page() { if (!current_user_can('edit_cooked_settings')) { wp_die(__('You do not have sufficient permissions to access this page.', 'cooked')); diff --git a/includes/class.cooked-ajax.php b/includes/class.cooked-ajax.php index d556d46..f578011 100644 --- a/includes/class.cooked-ajax.php +++ b/includes/class.cooked-ajax.php @@ -335,12 +335,8 @@ public function calculate_related_recipes() { } } - // If we're running low on IDs and there are more to fetch, get next batch - if ( count( $recipe_ids ) < 10 && $processed_count < $total_recipes ) { - $next_batch = $this->get_next_batch_of_recipe_ids( $processed_count ); - $recipe_ids = array_merge( $recipe_ids, $next_batch ); - } - + // Only fetch more IDs when the queue is empty; prefetching with offset processed_count + // would duplicate the same IDs we still have in the queue and inflate the progress count. if ( empty( $recipe_ids ) ) { $ts = current_time( 'timestamp' ); if ( $total_recipes > 0 ) { diff --git a/includes/class.cooked-related-recipes.php b/includes/class.cooked-related-recipes.php index 0ea6f1e..f8c371a 100644 --- a/includes/class.cooked-related-recipes.php +++ b/includes/class.cooked-related-recipes.php @@ -25,32 +25,10 @@ class Cooked_Related_Recipes { * Constructor. */ public function __construct() { - add_filter( 'cooked_settings_tabs_fields', [ $this, 'add_related_recipes_tab' ], 15, 1 ); add_action( 'save_post', [ $this, 'maybe_bump_cache_version' ], 10, 1 ); add_action( 'delete_post', [ $this, 'maybe_bump_cache_version' ], 10, 1 ); } - /** - * Add Tools tab to Settings with Calculate Related Recipes section. - * - * @param array $tabs Existing tabs. - * @return array - */ - public function add_related_recipes_tab( $tabs ) { - $tabs['tools'] = [ - 'name' => __( 'Tools', 'cooked' ), - 'icon' => 'gear', - 'fields' => [ - 'cooked_calculate_related_button' => [ - 'title' => __( 'Calculate Related Recipes', 'cooked' ), - 'desc' => __( 'Pre-calculate related recipes for every published recipe. Uses default shortcode options. Run this after importing or adding many recipes, or when the cache was cleared. One recipe is processed per step to avoid memory issues on large sites.', 'cooked' ), - 'type' => 'calculate_related_button', - ], - ], - ]; - return $tabs; - } - /** * Bump cache version when a recipe is saved or deleted. * diff --git a/includes/class.cooked-shortcodes.php b/includes/class.cooked-shortcodes.php index bf23a9d..3c16e18 100644 --- a/includes/class.cooked-shortcodes.php +++ b/includes/class.cooked-shortcodes.php @@ -1138,7 +1138,7 @@ public function cooked_related_recipes_shortcode($atts, $content = null) { return ''; } - // Find related recipes (uses transient cache; pre-calc via Settings > Related Recipes) + // Find related recipes (uses transient cache; pre-calc via Recipes > Tools) // Limit is applied inside get_related_recipes() based on $atts['limit'] $related_recipes = Cooked_Related_Recipes::get_related_recipes( $recipe_id, $atts ); diff --git a/templates/admin/tools.php b/templates/admin/tools.php new file mode 100644 index 0000000..430bac6 --- /dev/null +++ b/templates/admin/tools.php @@ -0,0 +1,27 @@ +
    +
    + +
    +    +
    +
    + +
    + +
    +
    +

    + +
    +
    + +
    + +
    + +
    +
    From 12cd3f4c3d8b84b6ac0969d57e18bdc72382fddc Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Mon, 2 Feb 2026 12:46:21 -0500 Subject: [PATCH 06/31] Built Lang Files and NPM Update --- assets/admin/css/style.min.css | 2 +- languages/cooked.mo | Bin 324 -> 314 bytes languages/cooked.po | 286 +++++++++++++++++++++++++++---- languages/cooked.pot | 304 ++++++++++++++++++++++++++++----- package-lock.json | 42 ++--- 5 files changed, 533 insertions(+), 101 deletions(-) diff --git a/assets/admin/css/style.min.css b/assets/admin/css/style.min.css index 3ccb375..8b227f5 100644 --- a/assets/admin/css/style.min.css +++ b/assets/admin/css/style.min.css @@ -1 +1 @@ -.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress,#cooked-related-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text,#cooked-related-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed,#cooked-related-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active,#cooked-related-completed.cooked-active{display:block}.cooked-related-status{margin:0 0 12px 0;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;border-left:3px solid #00a878;background:#f0f9f6;color:#2d4a42;max-width:480px}#cooked-related-last-done.cooked-related-status{border-left-color:#8c9b99;background:#f6f8f7;color:#5c6b69}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file +.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;max-width:1000px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active{display:block}#cooked-csv-import-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-csv-import-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-csv-import-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-csv-import-completed{display:none}#cooked-csv-import-completed.cooked-active{display:block}#cooked-csv-import-form{max-width:100%;box-sizing:border-box}#cooked-csv-import-form input[type=file]{max-width:100%;box-sizing:border-box;width:100%}#cooked-csv-import-errors{max-width:100%;box-sizing:border-box;word-wrap:break-word}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress,#cooked-related-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text,#cooked-related-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed,#cooked-related-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active,#cooked-related-completed.cooked-active{display:block}.cooked-related-status{margin:0 0 12px 0;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;border-left:3px solid #00a878;background:#f0f9f6;color:#2d4a42;max-width:480px}#cooked-related-last-done.cooked-related-status{border-left-color:#8c9b99;background:#f6f8f7;color:#5c6b69}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file diff --git a/languages/cooked.mo b/languages/cooked.mo index 4e4d8e414dcaed0ad8247c621ebe4edcb71d2b0f..691d98b018e3754fde1f06726916695067430cbd 100644 GIT binary patch delta 64 zcmX@Yw2Ntih$sUP=zs_y0MR^*3=FyxP4y@4R-X7WiZj4JMAx|}HL+yk43&u!^tkfU MOB2&mtrWNz0HQ9VT;P6SzOD|1KPn}p1%g6u#i@+O0 diff --git a/languages/cooked.po b/languages/cooked.po index 364774f..f6394e2 100644 --- a/languages/cooked.po +++ b/languages/cooked.po @@ -36,67 +36,67 @@ msgstr "" msgid "https://goratech.dev" msgstr "" -#: includes/class.cooked-admin-enqueues.php:137 +#: includes/class.cooked-admin-enqueues.php:138 msgid "remaining" msgstr "" -#: includes/class.cooked-admin-enqueues.php:138 +#: includes/class.cooked-admin-enqueues.php:139 #: includes/class.cooked-recipe-meta.php:758 #: includes/class.cooked-recipe-meta.php:813 #: includes/class.cooked-recipe-meta.php:853 msgid "Add Image" msgstr "" -#: includes/class.cooked-admin-enqueues.php:139 +#: includes/class.cooked-admin-enqueues.php:140 #: includes/class.cooked-recipe-meta.php:758 msgid "Change Image" msgstr "" -#: includes/class.cooked-admin-enqueues.php:140 +#: includes/class.cooked-admin-enqueues.php:141 msgid "Use this Image" msgstr "" -#: includes/class.cooked-admin-enqueues.php:141 +#: includes/class.cooked-admin-enqueues.php:142 #: includes/class.cooked-recipe-meta.php:1085 msgid "Add to Gallery" msgstr "" -#: includes/class.cooked-admin-enqueues.php:142 +#: includes/class.cooked-admin-enqueues.php:143 msgid "Edit Gallery Item" msgstr "" -#: includes/class.cooked-admin-enqueues.php:143 +#: includes/class.cooked-admin-enqueues.php:144 msgid "Update Gallery Item" msgstr "" -#: includes/class.cooked-admin-enqueues.php:144 +#: includes/class.cooked-admin-enqueues.php:145 msgid "Saved" msgstr "" -#: includes/class.cooked-admin-enqueues.php:145 +#: includes/class.cooked-admin-enqueues.php:146 msgid "Applied" msgstr "" -#: includes/class.cooked-admin-enqueues.php:146 +#: includes/class.cooked-admin-enqueues.php:147 msgid "Are you sure you want to apply this new template to all of your recipes?" msgstr "" -#: includes/class.cooked-admin-enqueues.php:147 +#: includes/class.cooked-admin-enqueues.php:148 msgid "Are you sure you want to reset this recipe template to the Cooked plugin default?" msgstr "" #. translators: confirmation for migrating all ### recipes, where ### displays the total number for the migration. -#: includes/class.cooked-admin-enqueues.php:149 +#: includes/class.cooked-admin-enqueues.php:150 #, php-format msgid "Please confirm that you are ready to migrate all %s recipes." msgstr "" -#: includes/class.cooked-admin-enqueues.php:150 +#: includes/class.cooked-admin-enqueues.php:151 msgid "Please confirm that you are ready to import all recipes." msgstr "" #: includes/class.cooked-admin-menus.php:36 -#: includes/class.cooked-admin-menus.php:59 +#: includes/class.cooked-admin-menus.php:60 #: includes/class.cooked-post-types.php:450 #: includes/class.cooked-post-types.php:462 #: includes/class.cooked-users.php:166 @@ -104,46 +104,48 @@ msgid "Recipes" msgstr "" #: includes/class.cooked-admin-menus.php:37 -#: includes/class.cooked-admin-menus.php:61 +#: includes/class.cooked-admin-menus.php:62 #: includes/class.cooked-post-types.php:452 msgid "Add New" msgstr "" #. translators: referring to the bottom of the Settings page. #: includes/class.cooked-admin-menus.php:45 -#: includes/class.cooked-admin-menus.php:65 +#: includes/class.cooked-admin-menus.php:66 #: includes/class.cooked-recipe-meta.php:117 #: includes/class.cooked-shortcodes.php:150 #: templates/admin/welcome.php:18 msgid "Settings" msgstr "" -#: includes/class.cooked-admin-menus.php:46 +#: includes/class.cooked-admin-menus.php:47 msgid "Import" msgstr "" -#: includes/class.cooked-admin-menus.php:47 +#: includes/class.cooked-admin-menus.php:48 msgid "What's New?" msgstr "" -#: includes/class.cooked-admin-menus.php:50 +#: includes/class.cooked-admin-menus.php:51 #: templates/admin/welcome.php:35 msgid "Upgrade to Pro" msgstr "" -#: includes/class.cooked-admin-menus.php:60 +#: includes/class.cooked-admin-menus.php:61 #: includes/class.cooked-post-types.php:457 msgid "All Recipes" msgstr "" -#: includes/class.cooked-admin-menus.php:90 -#: includes/class.cooked-admin-menus.php:99 -#: includes/class.cooked-admin-menus.php:108 -#: includes/class.cooked-admin-menus.php:117 +#: includes/class.cooked-admin-menus.php:91 +#: includes/class.cooked-admin-menus.php:100 +#: includes/class.cooked-admin-menus.php:109 +#: includes/class.cooked-admin-menus.php:118 +#: includes/class.cooked-admin-menus.php:127 msgid "You do not have sufficient permissions to access this page." msgstr "" -#: includes/class.cooked-ajax.php:179 +#: includes/class.cooked-ajax.php:184 +#: includes/class.cooked-csv-import.php:323 #: includes/class.cooked-functions.php:134 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:263 @@ -153,7 +155,8 @@ msgstr "" msgid "Ingredients" msgstr "" -#: includes/class.cooked-ajax.php:179 +#: includes/class.cooked-ajax.php:184 +#: includes/class.cooked-csv-import.php:323 #: includes/class.cooked-functions.php:135 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:269 @@ -276,6 +279,7 @@ msgstr "" #: includes/class.cooked-import.php:63 #: includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:165 #: includes/class.cooked-migration.php:60 msgid "Note:" msgstr "" @@ -291,15 +295,16 @@ msgstr "" msgid "WP Delicious - Import" msgstr "" -#: includes/class.cooked-import.php:152 +#: includes/class.cooked-import.php:180 msgid "More Imports are Coming Soon..." msgstr "" -#: includes/class.cooked-import.php:173 +#: includes/class.cooked-import.php:201 msgid "Begin Import" msgstr "" -#: includes/class.cooked-import.php:178 +#: includes/class.cooked-import.php:206 +#: includes/class.cooked-import.php:226 #: includes/class.cooked-settings.php:605 msgid "reload" msgstr "" @@ -2255,7 +2260,7 @@ msgid "Simply add the shortcode to your recipe template or content area. The nav msgstr "" #: includes/class.cooked-recipe-meta.php:1481 -#: includes/class.cooked-related-recipes.php:73 +#: includes/class.cooked-related-recipes.php:51 msgid "Related Recipes" msgstr "" @@ -2364,27 +2369,29 @@ msgstr "" msgid "Example" msgstr "" -#: includes/class.cooked-admin-enqueues.php:151 +#: includes/class.cooked-admin-enqueues.php:166 msgid "Pre-calculate related recipes for all published recipes? This may take a while on large sites." msgstr "" #. translators: 1: date and time, 2: number of recipes -#: includes/class.cooked-admin-enqueues.php:153 +#: includes/class.cooked-admin-enqueues.php:168 #: includes/class.cooked-settings.php:617 #, php-format msgid "Last: %1$s · %2$s recipes" msgstr "" -#: includes/class.cooked-related-recipes.php:41 +#: includes/class.cooked-admin-menus.php:46 +#: templates/admin/tools.php:13 msgid "Tools" msgstr "" -#: includes/class.cooked-related-recipes.php:45 #: includes/class.cooked-settings.php:621 +#: templates/admin/tools.php:15 +#: templates/admin/tools.php:17 msgid "Calculate Related Recipes" msgstr "" -#: includes/class.cooked-related-recipes.php:46 +#: templates/admin/tools.php:16 msgid "Pre-calculate related recipes for every published recipe. Uses default shortcode options. Run this after importing or adding many recipes, or when the cache was cleared. One recipe is processed per step to avoid memory issues on large sites." msgstr "" @@ -2421,3 +2428,212 @@ msgstr "" #: includes/class.cooked-shortcodes.php:1151 msgid "Try adjusting the matching criteria or ensure you have other published recipes with shared categories, tags, or ingredients." msgstr "" + +#: includes/class.cooked-admin-enqueues.php:152 +msgid "Are you sure you want to import recipes from this CSV file?" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:153 +msgid "Please select a CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:154 +msgid "Please select a valid CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:155 +msgid "Uploading..." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:156 +msgid "Processing..." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:157 +msgid "recipes imported" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:158 +msgid "Errors:" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:159 +msgid "Import failed." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:160 +msgid "Failed to process CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:161 +msgid "Failed to upload CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:162 +#: includes/class.cooked-ajax.php:552 +msgid "File upload failed." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:163 +msgid "Something went wrong" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:164 +msgid "hrs" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:165 +msgid "mins" +msgstr "" + +#: includes/class.cooked-ajax.php:519 +msgid "No default content provided." +msgstr "" + +#: includes/class.cooked-ajax.php:548 +#: includes/class.cooked-ajax.php:584 +msgid "You do not have permission to import recipes." +msgstr "" + +#: includes/class.cooked-ajax.php:558 +msgid "Invalid file type. Please upload a CSV file." +msgstr "" + +#: includes/class.cooked-ajax.php:591 +msgid "CSV file not found. Please upload again." +msgstr "" + +#: includes/class.cooked-ajax.php:609 +msgid "CSV Import class could not be loaded." +msgstr "" + +#: includes/class.cooked-ajax.php:623 +#, php-format +msgid "Successfully imported %d recipe(s)." +msgstr "" + +#: includes/class.cooked-ajax.php:632 +msgid "No recipes were imported." +msgstr "" + +#: includes/class.cooked-csv-import.php:39 +msgid "Cooked_Recipes class not found. Plugin may not be properly loaded." +msgstr "" + +#: includes/class.cooked-csv-import.php:44 +msgid "Cooked_Measurements class not found. Plugin may not be properly loaded." +msgstr "" + +#: includes/class.cooked-csv-import.php:49 +msgid "Cooked_Recipe_Meta class not found. Plugin may not be properly loaded." +msgstr "" + +#: includes/class.cooked-csv-import.php:54 +msgid "CSV file not found." +msgstr "" + +#: includes/class.cooked-csv-import.php:61 +msgid "Could not open CSV file." +msgstr "" + +#: includes/class.cooked-csv-import.php:68 +msgid "CSV file is empty or invalid." +msgstr "" + +#: includes/class.cooked-csv-import.php:79 +msgid "CSV file must contain a \"title\" column." +msgstr "" + +#: includes/class.cooked-csv-import.php:106 +msgid "Unknown error" +msgstr "" + +#: includes/class.cooked-csv-import.php:107 +#: includes/class.cooked-csv-import.php:114 +#, php-format +msgid "Row %d: %s" +msgstr "" + +#: includes/class.cooked-csv-import.php:140 +msgid "Title is required" +msgstr "" + +#: includes/class.cooked-import.php:152 +msgid "Import recipes from a CSV file. Your CSV file should include the following columns:" +msgstr "" + +#: includes/class.cooked-import.php:154 +msgid "Recipe title (required)" +msgstr "" + +#: includes/class.cooked-import.php:155 +msgid "Recipe excerpt/description" +msgstr "" + +#: includes/class.cooked-import.php:156 +msgid "Prep time in minutes" +msgstr "" + +#: includes/class.cooked-import.php:157 +msgid "Cook time in minutes" +msgstr "" + +#: includes/class.cooked-import.php:158 +msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" +msgstr "" + +#: includes/class.cooked-import.php:159 +msgid "Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or \"name\" for simple ingredients. Add substitutions with double pipe (||): \"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" +msgstr "" + +#: includes/class.cooked-import.php:160 +msgid "Directions/instructions separated by pipe (|)" +msgstr "" + +#: includes/class.cooked-import.php:161 +msgid "Recipe notes" +msgstr "" + +#: includes/class.cooked-import.php:162 +msgid "Categories separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:163 +msgid "Tags separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:165 +msgid "Recipes will be imported with the 'Draft' status. After the import is complete, you can bulk edit the recipes and change their status to 'Published'." +msgstr "" + +#: includes/class.cooked-import.php:168 +msgid "CSV Import" +msgstr "" + +#: includes/class.cooked-import.php:172 +msgid "Import Recipes via CSV" +msgstr "" + +#: includes/class.cooked-import.php:221 +msgid "Upload and Import CSV" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "Import Complete!" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "You can now" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "the import screen or" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "view your recipes" +msgstr "" + +#: templates/admin/tools.php:5 +msgid "Cooked Tools" +msgstr "" diff --git a/languages/cooked.pot b/languages/cooked.pot index 79380de..843d6a6 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-01-28T10:29:58-05:00\n" +"POT-Creation-Date: 2026-02-02T12:44:14-05:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: cooked\n" @@ -39,78 +39,135 @@ msgstr "" msgid "https://goratech.dev" msgstr "" -#: includes/class.cooked-admin-enqueues.php:137 +#: includes/class.cooked-admin-enqueues.php:138 msgid "remaining" msgstr "" -#: includes/class.cooked-admin-enqueues.php:138 +#: includes/class.cooked-admin-enqueues.php:139 #: includes/class.cooked-recipe-meta.php:758 #: includes/class.cooked-recipe-meta.php:813 #: includes/class.cooked-recipe-meta.php:853 msgid "Add Image" msgstr "" -#: includes/class.cooked-admin-enqueues.php:139 +#: includes/class.cooked-admin-enqueues.php:140 #: includes/class.cooked-recipe-meta.php:758 msgid "Change Image" msgstr "" -#: includes/class.cooked-admin-enqueues.php:140 +#: includes/class.cooked-admin-enqueues.php:141 msgid "Use this Image" msgstr "" -#: includes/class.cooked-admin-enqueues.php:141 +#: includes/class.cooked-admin-enqueues.php:142 #: includes/class.cooked-recipe-meta.php:1085 msgid "Add to Gallery" msgstr "" -#: includes/class.cooked-admin-enqueues.php:142 +#: includes/class.cooked-admin-enqueues.php:143 msgid "Edit Gallery Item" msgstr "" -#: includes/class.cooked-admin-enqueues.php:143 +#: includes/class.cooked-admin-enqueues.php:144 msgid "Update Gallery Item" msgstr "" -#: includes/class.cooked-admin-enqueues.php:144 +#: includes/class.cooked-admin-enqueues.php:145 msgid "Saved" msgstr "" -#: includes/class.cooked-admin-enqueues.php:145 +#: includes/class.cooked-admin-enqueues.php:146 msgid "Applied" msgstr "" -#: includes/class.cooked-admin-enqueues.php:146 +#: includes/class.cooked-admin-enqueues.php:147 msgid "Are you sure you want to apply this new template to all of your recipes?" msgstr "" -#: includes/class.cooked-admin-enqueues.php:147 +#: includes/class.cooked-admin-enqueues.php:148 msgid "Are you sure you want to reset this recipe template to the Cooked plugin default?" msgstr "" #. translators: confirmation for migrating all ### recipes, where ### displays the total number for the migration. -#: includes/class.cooked-admin-enqueues.php:149 +#: includes/class.cooked-admin-enqueues.php:150 #, php-format msgid "Please confirm that you are ready to migrate all %s recipes." msgstr "" -#: includes/class.cooked-admin-enqueues.php:150 +#: includes/class.cooked-admin-enqueues.php:151 msgid "Please confirm that you are ready to import all recipes." msgstr "" -#: includes/class.cooked-admin-enqueues.php:151 +#: includes/class.cooked-admin-enqueues.php:152 +msgid "Are you sure you want to import recipes from this CSV file?" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:153 +msgid "Please select a CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:154 +msgid "Please select a valid CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:155 +msgid "Uploading..." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:156 +msgid "Processing..." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:157 +msgid "recipes imported" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:158 +msgid "Errors:" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:159 +msgid "Import failed." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:160 +msgid "Failed to process CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:161 +msgid "Failed to upload CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:162 +#: includes/class.cooked-ajax.php:552 +msgid "File upload failed." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:163 +msgid "Something went wrong" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:164 +msgid "hrs" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:165 +msgid "mins" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:166 msgid "Pre-calculate related recipes for all published recipes? This may take a while on large sites." msgstr "" #. translators: 1: date and time, 2: number of recipes -#: includes/class.cooked-admin-enqueues.php:153 +#: includes/class.cooked-admin-enqueues.php:168 #: includes/class.cooked-settings.php:617 #, php-format msgid "Last: %1$s · %2$s recipes" msgstr "" #: includes/class.cooked-admin-menus.php:36 -#: includes/class.cooked-admin-menus.php:59 +#: includes/class.cooked-admin-menus.php:60 #: includes/class.cooked-post-types.php:450 #: includes/class.cooked-post-types.php:462 #: includes/class.cooked-users.php:166 @@ -118,14 +175,14 @@ msgid "Recipes" msgstr "" #: includes/class.cooked-admin-menus.php:37 -#: includes/class.cooked-admin-menus.php:61 +#: includes/class.cooked-admin-menus.php:62 #: includes/class.cooked-post-types.php:452 msgid "Add New" msgstr "" #. translators: referring to the bottom of the Settings page. #: includes/class.cooked-admin-menus.php:45 -#: includes/class.cooked-admin-menus.php:65 +#: includes/class.cooked-admin-menus.php:66 #: includes/class.cooked-recipe-meta.php:117 #: includes/class.cooked-shortcodes.php:150 #: templates/admin/welcome.php:18 @@ -133,31 +190,38 @@ msgid "Settings" msgstr "" #: includes/class.cooked-admin-menus.php:46 -msgid "Import" +#: templates/admin/tools.php:13 +msgid "Tools" msgstr "" #: includes/class.cooked-admin-menus.php:47 +msgid "Import" +msgstr "" + +#: includes/class.cooked-admin-menus.php:48 msgid "What's New?" msgstr "" -#: includes/class.cooked-admin-menus.php:50 +#: includes/class.cooked-admin-menus.php:51 #: templates/admin/welcome.php:35 msgid "Upgrade to Pro" msgstr "" -#: includes/class.cooked-admin-menus.php:60 +#: includes/class.cooked-admin-menus.php:61 #: includes/class.cooked-post-types.php:457 msgid "All Recipes" msgstr "" -#: includes/class.cooked-admin-menus.php:90 -#: includes/class.cooked-admin-menus.php:99 -#: includes/class.cooked-admin-menus.php:108 -#: includes/class.cooked-admin-menus.php:117 +#: includes/class.cooked-admin-menus.php:91 +#: includes/class.cooked-admin-menus.php:100 +#: includes/class.cooked-admin-menus.php:109 +#: includes/class.cooked-admin-menus.php:118 +#: includes/class.cooked-admin-menus.php:127 msgid "You do not have sufficient permissions to access this page." msgstr "" -#: includes/class.cooked-ajax.php:179 +#: includes/class.cooked-ajax.php:184 +#: includes/class.cooked-csv-import.php:323 #: includes/class.cooked-functions.php:134 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:263 @@ -167,7 +231,8 @@ msgstr "" msgid "Ingredients" msgstr "" -#: includes/class.cooked-ajax.php:179 +#: includes/class.cooked-ajax.php:184 +#: includes/class.cooked-csv-import.php:323 #: includes/class.cooked-functions.php:135 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:269 @@ -177,6 +242,78 @@ msgstr "" msgid "Directions" msgstr "" +#: includes/class.cooked-ajax.php:519 +msgid "No default content provided." +msgstr "" + +#: includes/class.cooked-ajax.php:548 +#: includes/class.cooked-ajax.php:584 +msgid "You do not have permission to import recipes." +msgstr "" + +#: includes/class.cooked-ajax.php:558 +msgid "Invalid file type. Please upload a CSV file." +msgstr "" + +#: includes/class.cooked-ajax.php:591 +msgid "CSV file not found. Please upload again." +msgstr "" + +#: includes/class.cooked-ajax.php:609 +msgid "CSV Import class could not be loaded." +msgstr "" + +#: includes/class.cooked-ajax.php:623 +#, php-format +msgid "Successfully imported %d recipe(s)." +msgstr "" + +#: includes/class.cooked-ajax.php:632 +msgid "No recipes were imported." +msgstr "" + +#: includes/class.cooked-csv-import.php:39 +msgid "Cooked_Recipes class not found. Plugin may not be properly loaded." +msgstr "" + +#: includes/class.cooked-csv-import.php:44 +msgid "Cooked_Measurements class not found. Plugin may not be properly loaded." +msgstr "" + +#: includes/class.cooked-csv-import.php:49 +msgid "Cooked_Recipe_Meta class not found. Plugin may not be properly loaded." +msgstr "" + +#: includes/class.cooked-csv-import.php:54 +msgid "CSV file not found." +msgstr "" + +#: includes/class.cooked-csv-import.php:61 +msgid "Could not open CSV file." +msgstr "" + +#: includes/class.cooked-csv-import.php:68 +msgid "CSV file is empty or invalid." +msgstr "" + +#: includes/class.cooked-csv-import.php:79 +msgid "CSV file must contain a \"title\" column." +msgstr "" + +#: includes/class.cooked-csv-import.php:106 +msgid "Unknown error" +msgstr "" + +#: includes/class.cooked-csv-import.php:107 +#: includes/class.cooked-csv-import.php:114 +#, php-format +msgid "Row %d: %s" +msgstr "" + +#: includes/class.cooked-csv-import.php:140 +msgid "Title is required" +msgstr "" + #: includes/class.cooked-delicious-recipes.php:102 msgid "Error importing WP Delicious recipe." msgstr "" @@ -294,6 +431,7 @@ msgstr "" #: includes/class.cooked-import.php:63 #: includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:165 #: includes/class.cooked-migration.php:60 msgid "Note:" msgstr "" @@ -323,18 +461,95 @@ msgid "WP Recipe Maker - Import" msgstr "" #: includes/class.cooked-import.php:152 +msgid "Import recipes from a CSV file. Your CSV file should include the following columns:" +msgstr "" + +#: includes/class.cooked-import.php:154 +msgid "Recipe title (required)" +msgstr "" + +#: includes/class.cooked-import.php:155 +msgid "Recipe excerpt/description" +msgstr "" + +#: includes/class.cooked-import.php:156 +msgid "Prep time in minutes" +msgstr "" + +#: includes/class.cooked-import.php:157 +msgid "Cook time in minutes" +msgstr "" + +#: includes/class.cooked-import.php:158 +msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" +msgstr "" + +#: includes/class.cooked-import.php:159 +msgid "Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or \"name\" for simple ingredients. Add substitutions with double pipe (||): \"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" +msgstr "" + +#: includes/class.cooked-import.php:160 +msgid "Directions/instructions separated by pipe (|)" +msgstr "" + +#: includes/class.cooked-import.php:161 +msgid "Recipe notes" +msgstr "" + +#: includes/class.cooked-import.php:162 +msgid "Categories separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:163 +msgid "Tags separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:165 +msgid "Recipes will be imported with the 'Draft' status. After the import is complete, you can bulk edit the recipes and change their status to 'Published'." +msgstr "" + +#: includes/class.cooked-import.php:168 +msgid "CSV Import" +msgstr "" + +#: includes/class.cooked-import.php:172 +msgid "Import Recipes via CSV" +msgstr "" + +#: includes/class.cooked-import.php:180 msgid "More Imports are Coming Soon..." msgstr "" -#: includes/class.cooked-import.php:173 +#: includes/class.cooked-import.php:201 msgid "Begin Import" msgstr "" -#: includes/class.cooked-import.php:178 +#: includes/class.cooked-import.php:206 +#: includes/class.cooked-import.php:226 #: includes/class.cooked-settings.php:605 msgid "reload" msgstr "" +#: includes/class.cooked-import.php:221 +msgid "Upload and Import CSV" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "Import Complete!" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "You can now" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "the import screen or" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "view your recipes" +msgstr "" + #: includes/class.cooked-measurements.php:29 msgctxt "Grams Abbreviation (Singular)" msgid "g" @@ -1450,7 +1665,7 @@ msgid "Simply add the shortcode to your recipe template or content area. The nav msgstr "" #: includes/class.cooked-recipe-meta.php:1481 -#: includes/class.cooked-related-recipes.php:73 +#: includes/class.cooked-related-recipes.php:51 msgid "Related Recipes" msgstr "" @@ -1688,19 +1903,6 @@ msgstr "" msgid "Alphabetical (Z-A)" msgstr "" -#: includes/class.cooked-related-recipes.php:41 -msgid "Tools" -msgstr "" - -#: includes/class.cooked-related-recipes.php:45 -#: includes/class.cooked-settings.php:621 -msgid "Calculate Related Recipes" -msgstr "" - -#: includes/class.cooked-related-recipes.php:46 -msgid "Pre-calculate related recipes for every published recipe. Uses default shortcode options. Run this after importing or adding many recipes, or when the cache was cleared. One recipe is processed per step to avoid memory issues on large sites." -msgstr "" - #: includes/class.cooked-roles.php:22 msgid "Recipe Editor" msgstr "" @@ -2074,6 +2276,12 @@ msgstr "" msgid "Begin Migration" msgstr "" +#: includes/class.cooked-settings.php:621 +#: templates/admin/tools.php:15 +#: templates/admin/tools.php:17 +msgid "Calculate Related Recipes" +msgstr "" + #: includes/class.cooked-settings.php:626 msgid "Done." msgstr "" @@ -2383,6 +2591,14 @@ msgstr "" msgid "Cooked Settings" msgstr "" +#: templates/admin/tools.php:5 +msgid "Cooked Tools" +msgstr "" + +#: templates/admin/tools.php:16 +msgid "Pre-calculate related recipes for every published recipe. Uses default shortcode options. Run this after importing or adding many recipes, or when the cache was cleared. One recipe is processed per step to avoid memory issues on large sites." +msgstr "" + #. translators: referring to "Cooked" #: templates/admin/welcome.php:10 #, php-format diff --git a/package-lock.json b/package-lock.json index 525134c..4eb9e8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1009,13 +1009,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.0.tgz", - "integrity": "sha512-fWza+Lpbj6SkQKCrU6si4iu+fD2dD3gxNHFhUPxsfXBPhnv3rRSQVd0NtBUT9Z/RhF/boCBcuUaMUSTRTopjZg==", + "version": "1.58.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.1.tgz", + "integrity": "sha512-6LdVIUERWxQMmUSSQi0I53GgCBYgM2RpGngCPY7hSeju+VrKjq3lvs7HpJoPbDiY5QM5EYRtRX5fvrinnMAz3w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.58.0" + "playwright": "1.58.1" }, "bin": { "playwright": "cli.js" @@ -1282,9 +1282,9 @@ } }, "node_modules/@wordpress/e2e-test-utils-playwright": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.38.0.tgz", - "integrity": "sha512-/3Qo6/N5BtCbQJJShy3pY5xr68OkMctouYcz1mvL8Q8tMO1fdiZTlJvU9bSMwdM1G1NEbE8pa/9q2F1Va/2S2A==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.39.0.tgz", + "integrity": "sha512-ok008Rd8URqNQCzx/9bClC+gk7XxVV+xm5rOJjb6A4EHR8tVlynJEcE4gN0C5qCDIeOdPLbGW8ljNm2DxlelwQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -3905,13 +3905,13 @@ } }, "node_modules/playwright": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.0.tgz", - "integrity": "sha512-2SVA0sbPktiIY/MCOPX8e86ehA/e+tDNq+e5Y8qjKYti2Z/JG7xnronT/TXTIkKbYGWlCbuucZ6dziEgkoEjQQ==", + "version": "1.58.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.1.tgz", + "integrity": "sha512-+2uTZHxSCcxjvGc5C891LrS1/NlxglGxzrC4seZiVjcYVQfUa87wBL6rTDqzGjuoWNjnBzRqKmF6zRYGMvQUaQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.58.0" + "playwright-core": "1.58.1" }, "bin": { "playwright": "cli.js" @@ -3924,9 +3924,9 @@ } }, "node_modules/playwright-core": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.0.tgz", - "integrity": "sha512-aaoB1RWrdNi3//rOeKuMiS65UCcgOVljU46At6eFcOFPFHWtd2weHRRow6z/n+Lec0Lvu0k9ZPKJSjPugikirw==", + "version": "1.58.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.1.tgz", + "integrity": "sha512-bcWzOaTxcW+VOOGBCQgnaKToLJ65d6AqfLVKEWvexyS3AS6rbXl+xdpYRMGSRBClPvyj44njOWoxjNdL/H9UNg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4705,20 +4705,20 @@ } }, "node_modules/tldts-core": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", - "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.21.tgz", + "integrity": "sha512-oVOMdHvgjqyzUZH1rOESgJP1uNe2bVrfK0jUHHmiM2rpEiRbf3j4BrsIc6JigJRbHGanQwuZv/R+LTcHsw+bLA==", "dev": true, "license": "MIT" }, "node_modules/tldts-icann": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.19.tgz", - "integrity": "sha512-PZgda8E2cXMNa7QlBbiZh3vcS8UaPTDRIBmcGPDlujSMtQLrzjvikeJxzQSqWxn3muaMJ7BsC+aL464Yl2I6cA==", + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.21.tgz", + "integrity": "sha512-cO9tYYUAz1LJ3NV22UdQSCvfVPvUDhNyvyS3UgPUuj3e//TgUOqqo7xnp2z/KI4PmfoBIITKxxL5vLSqneZndg==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.0.19" + "tldts-core": "^7.0.21" } }, "node_modules/to-regex-range": { From d665ec113825e68a10fc1506ab4d6313e0cb866b Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Wed, 4 Feb 2026 19:07:53 -0500 Subject: [PATCH 07/31] Changed the Way Related Recipes Work - Removed caching. - Now retrieving recipes based on taxonomy in random order. - Removed the tools page. - Updated docs and removed any unused code. - Deleting old cache and transient data. --- CITATION.cff | 2 +- SECURITY.md | 4 +- assets/admin/js/cooked-functions.js | 118 +------ assets/admin/js/cooked-functions.min.js | 2 +- composer.json | 2 +- composer.lock | 2 +- cooked.php | 2 + includes/class.cooked-admin-enqueues.php | 4 - includes/class.cooked-admin-menus.php | 10 - includes/class.cooked-ajax.php | 173 ---------- includes/class.cooked-recipe-meta.php | 26 +- includes/class.cooked-recipes.php | 1 - includes/class.cooked-related-recipes.php | 396 +++------------------- includes/class.cooked-settings.php | 19 -- includes/class.cooked-shortcodes.php | 14 +- includes/class.cooked-updates.php | 19 ++ languages/cooked.po | 192 ++++------- languages/cooked.pot | 164 ++++----- package-lock.json | 52 +-- package.json | 2 +- readme.txt | 9 +- templates/admin/tools.php | 27 -- vendor/composer/installed.php | 8 +- 23 files changed, 271 insertions(+), 977 deletions(-) delete mode 100644 templates/admin/tools.php diff --git a/CITATION.cff b/CITATION.cff index c265bde..2310618 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -6,7 +6,7 @@ authors: given-names: Justin - family-names: Tresova given-names: Armand -version: 1.12.0 +version: 1.13.0 doi: 10.5281/zenodo.1171250 date-released: 2017-05-08 url: "https://github.com/XjSv/cooked" \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md index d152361..6b5a7e3 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -5,8 +5,8 @@ Versions that are currently being supported with security updates. | Version | Supported | | ----------- | ------------------ | -| 1.12.0 | :white_check_mark: | -| <= 1.11.4 | :x: | +| 1.13.0 | :white_check_mark: | +| <= 1.12.0 | :x: | ## Reporting a Vulnerability diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index d30dcf4..2a588b0 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -21,8 +21,7 @@ var $_CookedConditionalTimeout = false; $_CookedRecipeGallery = $('#cooked-recipe-image-gallery'), $_CookedNutritionFactsTab = $('#cooked-recipe-tab-content-nutrition'), $_CookedSettingsPanel = $('#cooked-settings-panel'), - $_CookedSettingsTabs = $('#cooked-settings-tabs'), - $_CookedCalculateRelatedButton = $('#cooked-calculate-related-button'); + $_CookedSettingsTabs = $('#cooked-settings-tabs'); // Cooked Color Pickers if ($_CookedColorPickers.length) { @@ -230,48 +229,6 @@ var $_CookedConditionalTimeout = false; }); } - // Calculate Related Recipes Button (Recipes > Tools) - if ($_CookedCalculateRelatedButton.length) { - $_CookedCalculateRelatedButton.on('click', function(e) { - e.preventDefault(); - var thisButton = $(this), - msg = cooked_functions_js_vars.i18n_confirm_calculate_related; - - if (!confirm(msg) || thisButton.hasClass('disabled')) { return; } - - thisButton.addClass('disabled').attr('disabled', true); - thisButton.hide(); - - // Get related recipes IDs - $.post(cooked_functions_js_vars.ajax_url, { action: 'cooked_get_related_recipes_ids' }, function(data) { - var response; - try { - response = typeof data === 'string' ? JSON.parse(data) : data; - } catch (e) { - thisButton.removeClass('disabled').attr('disabled', false).show(); - return; - } - var ids = (response && response.ids) ? response.ids : []; - var total = (response && typeof response.total === 'number') ? response.total : 0; - - if (total === 0 || ids.length === 0) { - thisButton.removeClass('disabled').attr('disabled', false).show(); - return; - } - var progress = $('#cooked-related-progress'), - progress_bar = progress.find('.cooked-progress-bar'), - progress_text = $('#cooked-related-progress-text'); - progress.addClass('cooked-active'); - progress_text.addClass('cooked-active'); - progress_bar.css('width', '0%'); - progress_text.text('0 / ' + total); - cooked_calculate_related_recipes(ids, total, 0); - }).fail(function() { - thisButton.removeClass('disabled').attr('disabled', false).show(); - }); - }); - } - // Conditional Fields (Recipes and Settings Pages) if ($_CookedConditionals.length) { var conditionalFields = []; @@ -741,79 +698,6 @@ var $_CookedConditionalTimeout = false; var cooked_recipe_update_counter = 0; -function cooked_calculate_related_recipes(recipe_ids, total_recipes, processed_count) { - processed_count = processed_count || 0; - - if (total_recipes <= 0 || !recipe_ids || recipe_ids.length === 0) { - jQuery('#cooked-related-progress').hide(); - jQuery('#cooked-related-progress-text').hide(); - jQuery('.recipe-setting-block.calculate_related_button').find('h3').hide(); - jQuery('.recipe-setting-block.calculate_related_button').find('p:nth-child(2)').hide(); - jQuery('#cooked-related-completed').addClass('cooked-active').show(); - return; - } - var progress = jQuery('#cooked-related-progress'), - progress_bar = progress.find('.cooked-progress-bar'), - progress_text = jQuery('#cooked-related-progress-text'); - - if (!progress.hasClass('cooked-active')) { - progress.addClass('cooked-active'); - progress_text.addClass('cooked-active'); - } - - jQuery.post( - cooked_functions_js_vars.ajax_url, - { - action: 'cooked_calculate_related_recipes', - recipe_ids: JSON.stringify(recipe_ids), - total_recipes: total_recipes, - processed_count: processed_count - }, - function(response) { - var newProcessedCount = processed_count + 1; - var doneMeta = null; - var leftover = []; - - // Backend returns either: { complete: true, count, date_formatted } or an array of remaining IDs (possibly as JSON string). - if (response && typeof response === 'object' && response.complete === true) { - doneMeta = { count: response.count, date_formatted: response.date_formatted }; - } else { - try { - leftover = Array.isArray(response) ? response : JSON.parse(response); - } catch (e) {} - } - - var done = newProcessedCount; - var pct = total_recipes > 0 ? Math.min(100, Math.round((done / total_recipes) * 100)) : 100; - if (pct < 2) { pct = 2; } - progress_bar.css('width', pct + '%'); - progress_text.text(done + ' / ' + total_recipes); - - if (!Array.isArray(leftover) || leftover.length === 0) { - progress.hide(); - progress_text.hide(); - jQuery('.recipe-setting-block.calculate_related_button').find('h3').hide(); - jQuery('.recipe-setting-block.calculate_related_button').find('p:nth-child(2)').hide(); - $_CookedCalculateRelatedButton.hide(); - jQuery('#cooked-related-completed').addClass('cooked-active').show(); - if (doneMeta && doneMeta.date_formatted != null && doneMeta.count != null) { - var tpl = cooked_functions_js_vars.i18n_last_calculated; - var msg = tpl.replace(/%1\$s/g, doneMeta.date_formatted).replace(/%2\$s/g, String(doneMeta.count)); - jQuery('#cooked-related-last-done').text(msg).show(); - } - } else { - cooked_calculate_related_recipes(leftover, total_recipes, newProcessedCount); - } - } - ).fail(function() { - progress.removeClass('cooked-active').hide(); - progress_text.removeClass('cooked-active').hide(); - jQuery('.recipe-setting-block.calculate_related_button').find('h3').show(); - jQuery('.recipe-setting-block.calculate_related_button').find('p:nth-child(2)').show(); - $_CookedCalculateRelatedButton.removeClass('disabled').attr('disabled', false).show(); - }); -} - function cooked_set_default_template(recipe_ids, total_recipes, content, nonce, instance) { var temp_counter = 0, total_counter = 0, diff --git a/assets/admin/js/cooked-functions.min.js b/assets/admin/js/cooked-functions.min.js index 383e03b..bc6abd7 100644 --- a/assets/admin/js/cooked-functions.min.js +++ b/assets/admin/js/cooked-functions.min.js @@ -1 +1 @@ -var $_CookedConditionalTimeout=!1,cooked_recipe_update_counter=((p=>{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,l=p(".cooked-color-field"),s=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),$_CookedCalculateRelatedButton=p("#cooked-calculate-related-button"),l.length&&l.wpColorPicker(),$_CookedSortable.length&&($_CookedSortable.find(".cooked-icon-drag")?$_CookedSortable.sortable({stop:function(e,t){var t=t.item.find("textarea"),o=t.attr("name"),t=t.attr("id");wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1})}}):$_CookedSortable.sortable()),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),s.length&&s.each(function(){p(this).wrap('
    ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedCalculateRelatedButton.length&&$_CookedCalculateRelatedButton.on("click",function(e){e.preventDefault();var a=p(this),e=cooked_functions_js_vars.i18n_confirm_calculate_related;confirm(e)&&!a.hasClass("disabled")&&(a.addClass("disabled").attr("disabled",!0),a.hide(),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_get_related_recipes_ids"},function(e){try{n="string"==typeof e?JSON.parse(e):e}catch(e){return void a.removeClass("disabled").attr("disabled",!1).show()}var t,o,i,e=n&&n.ids?n.ids:[],n=n&&"number"==typeof n.total?n.total:0;0===n||0===e.length?a.removeClass("disabled").attr("disabled",!1).show():(o=(t=p("#cooked-related-progress")).find(".cooked-progress-bar"),i=p("#cooked-related-progress-text"),t.addClass("cooked-active"),i.addClass("cooked-active"),o.css("width","0%"),i.text("0 / "+n),cooked_calculate_related_recipes(e,n,0))}).fail(function(){a.removeClass("disabled").attr("disabled",!1).show()}))}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),s.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault(),p(this).parent().removeClass("cooked-has-image"),p(this).parent().find("img").remove(),p(this).parent().find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_functions_js_vars.i18n_image_title,button:{text:cooked_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_functions_js_vars.i18n_edit_image_title,button:{text:cooked_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_calculate_related_recipes(e,a,d){var c,r,l;d=d||0,a<=0||!e||0===e.length?(jQuery("#cooked-related-progress").hide(),jQuery("#cooked-related-progress-text").hide(),jQuery(".recipe-setting-block.calculate_related_button").find("h3").hide(),jQuery(".recipe-setting-block.calculate_related_button").find("p:nth-child(2)").hide(),jQuery("#cooked-related-completed").addClass("cooked-active").show()):(c=jQuery("#cooked-related-progress"),r=c.find(".cooked-progress-bar"),l=jQuery("#cooked-related-progress-text"),c.hasClass("cooked-active")||(c.addClass("cooked-active"),l.addClass("cooked-active")),jQuery.post(cooked_functions_js_vars.ajax_url,{action:"cooked_calculate_related_recipes",recipe_ids:JSON.stringify(e),total_recipes:a,processed_count:d},function(e){var t=d+1,o=null,i=[];if(e&&"object"==typeof e&&!0===e.complete)o={count:e.count,date_formatted:e.date_formatted};else try{i=Array.isArray(e)?e:JSON.parse(e)}catch(e){}var e=t,n=0{p(document).ready(function(){var r,o,t,e,i,n,a,d,c,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&($_CookedSortable.find(".cooked-icon-drag")?$_CookedSortable.sortable({stop:function(e,t){var t=t.item.find("textarea"),o=t.attr("name"),t=t.attr("id");wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1})}}):$_CookedSortable.sortable()),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(c,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),r=tinymce.get("_recipe_settings_content");o=null===r?d.val():r.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,c)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
    ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(r=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault(),p(this).parent().removeClass("cooked-has-image"),p(this).parent().find("img").remove(),p(this).parent().find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_functions_js_vars.i18n_image_title,button:{text:cooked_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),c||(c=wp.media.frames.gallery_images_frame=wp.media({title:cooked_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=c.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),c.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_functions_js_vars.i18n_edit_image_title,button:{text:cooked_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,r,c,s;0 sprintf(__('Please confirm that you are ready to migrate all %s recipes.', 'cooked'), number_format($total_old_recipes)), 'i18n_confirm_import_recipes' => __('Please confirm that you are ready to import all recipes.', 'cooked'), - 'i18n_confirm_calculate_related' => __('Pre-calculate related recipes for all published recipes? This may take a while on large sites.', 'cooked'), - /* translators: 1: date and time, 2: number of recipes */ - 'i18n_last_calculated' => __( 'Last: %1$s · %2$s recipes', 'cooked' ), 'wp_editor_roles_allowed' => esc_attr($wp_editor_roles_allowed), ]; diff --git a/includes/class.cooked-admin-menus.php b/includes/class.cooked-admin-menus.php index 7fd27b8..f0f7572 100644 --- a/includes/class.cooked-admin-menus.php +++ b/includes/class.cooked-admin-menus.php @@ -43,7 +43,6 @@ public function add_menu() { } add_submenu_page('cooked_recipes_menu', __('Settings', 'cooked'), __('Settings','cooked'), 'edit_cooked_settings', 'cooked_settings', [&$this, 'cooked_settings_page'] ); - add_submenu_page('cooked_recipes_menu', __('Tools', 'cooked'), __('Tools','cooked'), 'edit_cooked_recipes', 'cooked_tools', [&$this, 'cooked_tools_page'] ); add_submenu_page('cooked_recipes_menu', __('Import', 'cooked'), __('Import','cooked'), 'edit_cooked_settings', 'cooked_import', [&$this, 'cooked_import_page'] ); add_submenu_page('cooked_recipes_menu', __('What\'s New?','cooked'), __('What\'s New?','cooked'), 'edit_cooked_settings', 'cooked_welcome', [&$this, 'cooked_welcome_content'] ); @@ -94,15 +93,6 @@ public function cooked_settings_page() { include COOKED_DIR . 'templates/admin/settings.php'; } - // Tools Page - public function cooked_tools_page() { - if ( ! current_user_can( 'edit_cooked_recipes' ) ) { - wp_die( __( 'You do not have sufficient permissions to access this page.', 'cooked' ) ); - } - - include COOKED_DIR . 'templates/admin/tools.php'; - } - // Import Page public function cooked_import_page() { if (!current_user_can('edit_cooked_settings')) { diff --git a/includes/class.cooked-ajax.php b/includes/class.cooked-ajax.php index f578011..991269d 100644 --- a/includes/class.cooked-ajax.php +++ b/includes/class.cooked-ajax.php @@ -48,10 +48,6 @@ function __construct() { // Import Recipes add_action( 'wp_ajax_cooked_import_recipes', [&$this, 'import_recipes']); - // Related Recipes: get IDs for pre-calculation - add_action( 'wp_ajax_cooked_get_related_recipes_ids', [ &$this, 'get_related_recipes_ids' ] ); - // Related Recipes: calculate for one recipe per request - add_action( 'wp_ajax_cooked_calculate_related_recipes', [ &$this, 'calculate_related_recipes' ] ); } public function get_migrate_ids() { @@ -264,175 +260,6 @@ public function import_recipes() { wp_die(); } - /** - * Return all published recipe IDs for the Related Recipes pre-calculation tool. - * Returns count and first batch to avoid memory issues with large sites. - */ - public function get_related_recipes_ids() { - if ( ! current_user_can( 'edit_cooked_recipes' ) ) { - wp_die(); - } - - // Get total count first (lightweight query) - $count_args = [ - 'post_type' => 'cp_recipe', - 'post_status' => 'publish', - 'fields' => 'ids', - 'posts_per_page' => 1, - ]; - $count_query = new \WP_Query( $count_args ); - $total = (int) $count_query->found_posts; - wp_reset_postdata(); - - if ( $total === 0 ) { - wp_send_json( [ 'total' => 0, 'ids' => [] ] ); - return; - } - - // For very large sites, return first batch and let calculate_related_recipes fetch more server-side - // This avoids sending 100,000+ IDs in a single AJAX response - $batch_size = apply_filters( 'cooked_related_recipes_ids_batch_size', 1000 ); - - $args = [ - 'post_type' => 'cp_recipe', - 'post_status' => 'publish', - 'fields' => 'ids', - 'posts_per_page' => min( $batch_size, $total ), - 'orderby' => 'ID', - 'order' => 'ASC', - ]; - - $query = new \WP_Query( $args ); - $ids = ! empty( $query->posts ) ? $query->posts : []; - wp_reset_postdata(); - - wp_send_json( [ - 'total' => $total, - 'ids' => $ids, - 'offset' => count( $ids ), - ] ); - } - - /** - * Process one recipe for Related Recipes pre-calculation; returns remaining IDs. - * Fetches more IDs server-side when running low to avoid sending all IDs at once. - */ - public function calculate_related_recipes() { - if ( ! current_user_can( 'edit_cooked_recipes' ) ) { - wp_die(); - } - - $total_recipes = isset( $_POST['total_recipes'] ) ? (int) $_POST['total_recipes'] : 0; - $processed_count = isset( $_POST['processed_count'] ) ? (int) $_POST['processed_count'] : 0; - - if ( ! isset( $_POST['recipe_ids'] ) ) { - // No IDs provided, try to fetch first batch - $recipe_ids = $this->get_next_batch_of_recipe_ids( 0 ); - } else { - $recipe_ids = json_decode( stripslashes( (string) $_POST['recipe_ids'] ), true ); - if ( ! is_array( $recipe_ids ) ) { - $recipe_ids = []; - } - } - - // Only fetch more IDs when the queue is empty; prefetching with offset processed_count - // would duplicate the same IDs we still have in the queue and inflate the progress count. - if ( empty( $recipe_ids ) ) { - $ts = current_time( 'timestamp' ); - if ( $total_recipes > 0 ) { - update_option( 'cooked_related_calculation_last', [ - 'time' => $ts, - 'count' => $total_recipes, - ] ); - } - wp_send_json( [ - 'complete' => true, - 'count' => $total_recipes, - 'date_formatted' => date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $ts ), - ] ); - return; - } - - $sanitized = []; - foreach ( $recipe_ids as $id ) { - $id = (int) $id; - if ( $id > 0 ) { - $sanitized[] = $id; - } - } - $recipe_ids = $sanitized; - - $current = array_shift( $recipe_ids ); - if ( $current ) { - Cooked_Related_Recipes::prime_cache_for_recipe( $current ); - $processed_count++; - } - - if ( ! empty( $recipe_ids ) ) { - echo wp_json_encode( $recipe_ids ); - } else { - // No more IDs in current batch, check if there are more to fetch - if ( $processed_count < $total_recipes ) { - // Fetch next batch - $next_batch = $this->get_next_batch_of_recipe_ids( $processed_count ); - if ( ! empty( $next_batch ) ) { - echo wp_json_encode( $next_batch ); - } else { - // Truly done - $ts = current_time( 'timestamp' ); - update_option( 'cooked_related_calculation_last', [ - 'time' => $ts, - 'count' => $total_recipes, - ] ); - wp_send_json( [ - 'complete' => true, - 'count' => $total_recipes, - 'date_formatted' => date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $ts ), - ] ); - } - } else { - // All done - $ts = current_time( 'timestamp' ); - update_option( 'cooked_related_calculation_last', [ - 'time' => $ts, - 'count' => $total_recipes, - ] ); - wp_send_json( [ - 'complete' => true, - 'count' => $total_recipes, - 'date_formatted' => date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $ts ), - ] ); - } - } - wp_die(); - } - - /** - * Get next batch of recipe IDs for processing. - * - * @param int $offset Number of recipes already processed. - * @return array Array of recipe IDs. - */ - private function get_next_batch_of_recipe_ids( $offset = 0 ) { - $batch_size = apply_filters( 'cooked_related_recipes_ids_batch_size', 1000 ); - - $args = [ - 'post_type' => 'cp_recipe', - 'post_status' => 'publish', - 'fields' => 'ids', - 'posts_per_page' => $batch_size, - 'offset' => $offset, - 'orderby' => 'ID', - 'order' => 'ASC', - ]; - - $query = new \WP_Query( $args ); - $ids = ! empty( $query->posts ) ? $query->posts : []; - wp_reset_postdata(); - - return $ids; - } - public function get_recipe_ids() { if (!wp_verify_nonce($_POST['nonce'], 'cooked_save_default_bulk') || !current_user_can('edit_cooked_default_template')) { wp_die(); diff --git a/includes/class.cooked-recipe-meta.php b/includes/class.cooked-recipe-meta.php index 0cfc828..21a2d2a 100644 --- a/includes/class.cooked-recipe-meta.php +++ b/includes/class.cooked-recipe-meta.php @@ -494,7 +494,7 @@ function cooked_render_recipe_fields( $post_id ) {
    - +
    @@ -502,8 +502,8 @@ function cooked_render_recipe_fields( $post_id ) {
    @@ -511,7 +511,7 @@ function cooked_render_recipe_fields( $post_id ) {
    - +
    @@ -1479,7 +1479,7 @@ function cooked_render_recipe_fields( $post_id ) {

    -

    +

    @@ -1504,14 +1504,14 @@ function cooked_render_recipe_fields( $post_id ) {

    "limit"

    -

    +

    "columns"

    -

    +

    @@ -1545,18 +1545,15 @@ function cooked_render_recipe_fields( $post_id ) {

    "match_*"

    -

    +

    -

    -

    - -

    -

    +

    +

    @@ -1570,8 +1567,7 @@ function cooked_render_recipe_fields( $post_id ) { hide_image ()
    hide_excerpt ()
    hide_author ()
    - match_* ()
    - *_weight () + match_* ()

    diff --git a/includes/class.cooked-recipes.php b/includes/class.cooked-recipes.php index fdd098f..8df0da6 100644 --- a/includes/class.cooked-recipes.php +++ b/includes/class.cooked-recipes.php @@ -182,7 +182,6 @@ public static function get_settings( $post_id, $bc = true ) { // Include the Post ID $recipe_settings['id'] = $post_id; - // You're welcome developers! $recipe_settings = apply_filters( 'cooked_single_recipe_settings', $recipe_settings, $post_id ); return $recipe_settings; diff --git a/includes/class.cooked-related-recipes.php b/includes/class.cooked-related-recipes.php index f8c371a..b2493a8 100644 --- a/includes/class.cooked-related-recipes.php +++ b/includes/class.cooked-related-recipes.php @@ -15,31 +15,14 @@ /** * Cooked_Related_Recipes Class * - * Handles related recipes logic, transient caching, and admin pre-calculation. + * Handles related recipes via a single on-demand WP_Query: recipes sharing at least + * one term in any enabled taxonomy (categories, cuisines, cooking methods, tags, diets), + * ordered randomly. No caching or pre-calculation. * * @since 1.12.0 */ class Cooked_Related_Recipes { - /** - * Constructor. - */ - public function __construct() { - add_action( 'save_post', [ $this, 'maybe_bump_cache_version' ], 10, 1 ); - add_action( 'delete_post', [ $this, 'maybe_bump_cache_version' ], 10, 1 ); - } - - /** - * Bump cache version when a recipe is saved or deleted. - * - * @param int $post_id Post ID. - */ - public function maybe_bump_cache_version( $post_id ) { - if ( get_post_type( $post_id ) === 'cp_recipe' ) { - self::bump_related_cache_version(); - } - } - /** * Get default shortcode attributes. * @@ -59,17 +42,6 @@ public static function get_default_atts() { 'match_cooking_methods' => true, 'match_tags' => true, 'match_diets' => true, - 'match_ingredients' => true, - 'match_author' => false, - 'match_difficulty' => false, - 'category_weight' => 10, - 'cuisine_weight' => 8, - 'ingredient_weight' => 9, - 'cooking_method_weight' => 5, - 'tag_weight' => 5, - 'diet_weight' => 4, - 'author_weight' => 3, - 'difficulty_weight' => 2, ]; /** @@ -83,307 +55,94 @@ public static function get_default_atts() { } /** - * Extract only scoring-related attributes (excludes display-only attributes). - * - * @param array $atts All shortcode attributes. - * @return array Scoring-related attributes only. - */ - public static function get_scoring_atts( $atts ) { - return [ - 'match_categories' => isset( $atts['match_categories'] ) ? $atts['match_categories'] : true, - 'match_cuisines' => isset( $atts['match_cuisines'] ) ? $atts['match_cuisines'] : true, - 'match_cooking_methods' => isset( $atts['match_cooking_methods'] ) ? $atts['match_cooking_methods'] : true, - 'match_tags' => isset( $atts['match_tags'] ) ? $atts['match_tags'] : true, - 'match_diets' => isset( $atts['match_diets'] ) ? $atts['match_diets'] : true, - 'match_ingredients' => isset( $atts['match_ingredients'] ) ? $atts['match_ingredients'] : true, - 'match_author' => isset( $atts['match_author'] ) ? $atts['match_author'] : false, - 'match_difficulty' => isset( $atts['match_difficulty'] ) ? $atts['match_difficulty'] : false, - 'category_weight' => isset( $atts['category_weight'] ) ? $atts['category_weight'] : 10, - 'cuisine_weight' => isset( $atts['cuisine_weight'] ) ? $atts['cuisine_weight'] : 8, - 'cooking_method_weight' => isset( $atts['cooking_method_weight'] ) ? $atts['cooking_method_weight'] : 6, - 'tag_weight' => isset( $atts['tag_weight'] ) ? $atts['tag_weight'] : 5, - 'diet_weight' => isset( $atts['diet_weight'] ) ? $atts['diet_weight'] : 4, - 'ingredient_weight' => isset( $atts['ingredient_weight'] ) ? $atts['ingredient_weight'] : 7, - 'author_weight' => isset( $atts['author_weight'] ) ? $atts['author_weight'] : 3, - 'difficulty_weight' => isset( $atts['difficulty_weight'] ) ? $atts['difficulty_weight'] : 2, - ]; - } - - /** - * Build cache key for related recipes. - * Uses scoring-related attributes + limit + language (since they affect what we store in cache). - * - * @param int $recipe_id Recipe ID. - * @param array $atts Shortcode attributes. - * @return string - */ - public static function get_cache_key( $recipe_id, $atts ) { - $version = (int) get_option( 'cooked_related_version', 1 ); - $scoring_atts = self::get_scoring_atts( $atts ); - // Include limit in cache key since it affects what we store - $limit = isset( $atts['limit'] ) ? (int) $atts['limit'] : 0; - $cache_key_data = $scoring_atts; - $cache_key_data['limit'] = $limit; - - // Include current language in cache key for multilingual support - $current_language = false; - if ( class_exists( 'Cooked_Multilingual' ) && Cooked_Multilingual::is_multilingual_active() ) { - $current_language = Cooked_Multilingual::get_current_language(); - } - if ( $current_language ) { - $cache_key_data['lang'] = $current_language; - } - - return 'cooked_related_v' . $version . '_' . $recipe_id . '_' . md5( serialize( $cache_key_data ) ); - } - - /** - * Bump the related recipes cache version to invalidate all cached results. - */ - public static function bump_related_cache_version() { - update_option( 'cooked_related_version', (int) get_option( 'cooked_related_version', 1 ) + 1 ); - } - - /** - * Get related recipes: check cache first, compute and store on miss. - * Cache is based on scoring attributes only, so it works across different display settings. + * Get related recipes (on-demand query, no cache). + * Uses all enabled taxonomies with OR relation and orderby rand. * * @param int $recipe_id Recipe ID. * @param array $atts Shortcode attributes. - * @return array Array of [ 'id' => int, 'score' => int ]. + * @return array Array of [ 'id' => int ]. */ public static function get_related_recipes( $recipe_id, $atts ) { - $key = self::get_cache_key( $recipe_id, $atts ); - $cached = get_transient( $key ); - if ( $cached !== false && is_array( $cached ) ) { - // Cache already has the limit applied, just return it - return $cached; - } - $source_recipe = Cooked_Recipes::get( $recipe_id, true ); if ( ! $source_recipe || empty( $source_recipe ) ) { return []; } - $scores = self::find_related_recipes( $source_recipe, $atts ); - - // Apply limit when storing in cache - store only what we'll actually use - $limit = isset( $atts['limit'] ) ? (int) $atts['limit'] : 0; - if ( $limit > 0 && count( $scores ) > $limit ) { - $scores = array_slice( $scores, 0, $limit ); - } - - $ttl = (int) apply_filters( 'cooked_related_recipes_cache_ttl', 7 * DAY_IN_SECONDS ); - set_transient( $key, $scores, $ttl ); - - return $scores; - } - - /** - * Pre-fill cache for one recipe using default atts. Used by admin Calculate tool. - * - * @param int $recipe_id Recipe ID. - */ - public static function prime_cache_for_recipe( $recipe_id ) { - $source_recipe = Cooked_Recipes::get( $recipe_id, true ); - if ( ! $source_recipe || empty( $source_recipe ) ) { - return; - } - - $atts = self::get_default_atts(); - $scores = self::find_related_recipes( $source_recipe, $atts ); - - // Apply default limit when storing in cache - store only what we'll actually use - $limit = isset( $atts['limit'] ) ? (int) $atts['limit'] : 0; - if ( $limit > 0 && count( $scores ) > $limit ) { - $scores = array_slice( $scores, 0, $limit ); - } - - $key = self::get_cache_key( $recipe_id, $atts ); - $ttl = (int) apply_filters( 'cooked_related_recipes_cache_ttl', 7 * DAY_IN_SECONDS ); - set_transient( $key, $scores, $ttl ); + return self::find_related_recipes( $source_recipe, $atts ); } /** - * Find related recipes based on various factors. - * Processes recipes in batches to avoid memory issues with large sites. + * Find related recipes: one WP_Query with tax_query (all taxonomies OR) and orderby rand. * * @param array $source_recipe Source recipe data. * @param array $atts Shortcode attributes. - * @return array [ ['id' => int, 'score' => int], ... ] + * @return array [ ['id' => int], ... ] */ public static function find_related_recipes( $source_recipe, $atts ) { $recipe_id = $source_recipe['id']; - $scores = []; + $limit = isset( $atts['limit'] ) ? max( 1, (int) $atts['limit'] ) : 4; + + // Build OR clause for each taxonomy that is enabled via match_* and where the source recipe has terms. + $clauses = []; + $taxonomy_atts = [ + 'cp_recipe_category' => 'match_categories', + 'cp_recipe_cuisine' => 'match_cuisines', + 'cp_recipe_cooking_method' => 'match_cooking_methods', + 'cp_recipe_tags' => 'match_tags', + 'cp_recipe_diet' => 'match_diets', + ]; + foreach ( $taxonomy_atts as $taxonomy => $att_key ) { + if ( empty( $atts[ $att_key ] ) || $atts[ $att_key ] === 'false' ) { + continue; + } + $terms = self::get_recipe_terms( $recipe_id, $taxonomy ); + if ( ! empty( $terms ) ) { + $clauses[] = [ 'taxonomy' => $taxonomy, 'field' => 'term_id', 'terms' => $terms ]; + } + } - // Batch size for processing recipes (process 100 at a time to avoid memory issues) - $batch_size = apply_filters( 'cooked_related_recipes_batch_size', 100 ); - $paged = 1; + if ( empty( $clauses ) ) { + return []; + } - // Pre-calculate source recipe data once - $source_categories = self::get_recipe_terms( $recipe_id, 'cp_recipe_category' ); - $source_cuisines = self::get_recipe_terms( $recipe_id, 'cp_recipe_cuisine' ); - $source_cooking_methods = self::get_recipe_terms( $recipe_id, 'cp_recipe_cooking_method' ); - $source_tags = self::get_recipe_terms( $recipe_id, 'cp_recipe_tags' ); - $source_diets = self::get_recipe_terms( $recipe_id, 'cp_recipe_diet' ); - $source_ingredients = self::get_recipe_ingredients( $source_recipe ); - $source_author = isset( $source_recipe['author']['id'] ) ? $source_recipe['author']['id'] : false; - $source_difficulty = isset( $source_recipe['difficulty_level'] ) ? $source_recipe['difficulty_level'] : false; + $tax_query = array_merge( [ 'relation' => 'OR' ], $clauses ); + + $query_args = [ + 'post_type' => 'cp_recipe', + 'post_status' => 'publish', + 'post__not_in' => [ $recipe_id ], + 'posts_per_page' => $limit, + 'orderby' => 'rand', + 'fields' => 'ids', + ]; + + $query_args['tax_query'] = $tax_query; - // Get current language for multilingual support $current_language = false; if ( class_exists( 'Cooked_Multilingual' ) && Cooked_Multilingual::is_multilingual_active() ) { $current_language = Cooked_Multilingual::get_current_language(); } + $query_args = apply_filters( 'cooked_related_recipes_query_args', $query_args, $current_language ); - // Process recipes in batches using WP_Query directly - while ( true ) { - $query_args = [ - 'post_type' => 'cp_recipe', - 'post_status' => 'publish', - 'post__not_in' => [ $recipe_id ], - 'posts_per_page' => $batch_size, - 'paged' => $paged, - 'fields' => 'ids', // Only get IDs to save memory - 'no_found_rows' => false, // We need to know if there are more pages - ]; - - // Allow multilingual plugins to filter the query - $query_args = apply_filters( 'cooked_related_recipes_query_args', $query_args, $current_language ); - - $query = new \WP_Query( $query_args ); - $recipe_ids = $query->posts; - - if ( empty( $recipe_ids ) ) { - break; - } - - // Process each recipe in the current batch - foreach ( $recipe_ids as $rid ) { - $score = 0; - - // Get recipe settings only when needed (lazy loading) - $recipe_settings = null; - - if ( $atts['match_categories'] && $atts['match_categories'] !== 'false' ) { - $categories = self::get_recipe_terms( $rid, 'cp_recipe_category' ); - $score += count( array_intersect( $source_categories, $categories ) ) * (int) $atts['category_weight']; - } - - if ( $atts['match_cuisines'] && $atts['match_cuisines'] !== 'false' ) { - $cuisines = self::get_recipe_terms( $rid, 'cp_recipe_cuisine' ); - $score += count( array_intersect( $source_cuisines, $cuisines ) ) * (int) $atts['cuisine_weight']; - } + $query = new \WP_Query( $query_args ); + $ids = ! empty( $query->posts ) ? $query->posts : []; + wp_reset_postdata(); - if ( $atts['match_cooking_methods'] && $atts['match_cooking_methods'] !== 'false' ) { - $cooking_methods = self::get_recipe_terms( $rid, 'cp_recipe_cooking_method' ); - $score += count( array_intersect( $source_cooking_methods, $cooking_methods ) ) * (int) $atts['cooking_method_weight']; - } - - if ( $atts['match_tags'] && $atts['match_tags'] !== 'false' ) { - $tags = self::get_recipe_terms( $rid, 'cp_recipe_tags' ); - $score += count( array_intersect( $source_tags, $tags ) ) * (int) $atts['tag_weight']; - } - - if ( $atts['match_diets'] && $atts['match_diets'] !== 'false' ) { - $diets = self::get_recipe_terms( $rid, 'cp_recipe_diet' ); - $score += count( array_intersect( $source_diets, $diets ) ) * (int) $atts['diet_weight']; - } - - // Only load full recipe data if we need ingredients, author, or difficulty - if ( ( $atts['match_ingredients'] && $atts['match_ingredients'] !== 'false' ) || - ( $atts['match_author'] && $atts['match_author'] !== 'false' && $source_author ) || - ( $atts['match_difficulty'] && $atts['match_difficulty'] !== 'false' && $source_difficulty ) ) { - - if ( is_null( $recipe_settings ) ) { - $recipe_settings = Cooked_Recipes::get_settings( $rid ); - } - - if ( $atts['match_ingredients'] && $atts['match_ingredients'] !== 'false' ) { - $recipe_data = [ 'ingredients' => isset( $recipe_settings['ingredients'] ) ? $recipe_settings['ingredients'] : [] ]; - $ingredients = self::get_recipe_ingredients( $recipe_data ); - $score += self::compare_ingredients( $source_ingredients, $ingredients ) * (int) $atts['ingredient_weight']; - unset( $recipe_data ); // Free memory immediately - } - - if ( $atts['match_author'] && $atts['match_author'] !== 'false' && $source_author ) { - $post = get_post( $rid ); - $author = $post ? (int) $post->post_author : false; - if ( $author && $author === (int) $source_author ) { - $score += (int) $atts['author_weight']; - } - } - - if ( $atts['match_difficulty'] && $atts['match_difficulty'] !== 'false' && $source_difficulty ) { - $difficulty = isset( $recipe_settings['difficulty_level'] ) ? $recipe_settings['difficulty_level'] : false; - if ( $difficulty && $difficulty === $source_difficulty ) { - $score += (int) $atts['difficulty_weight']; - } - } - } - - if ( $score > 0 ) { - $recipe_score = [ 'id' => $rid, 'score' => $score ]; - - /** - * Filter individual recipe score before adding to results. - * - * @since 1.12.0 - * - * @param array $recipe_score Recipe score data ['id' => int, 'score' => int]. - * @param int $rid Recipe ID. - * @param array $source_recipe Source recipe data. - * @param array $atts Shortcode attributes. - */ - $recipe_score = apply_filters( 'cooked_related_recipes_recipe_score', $recipe_score, $rid, $source_recipe, $atts ); - - if ( $recipe_score && isset( $recipe_score['id'] ) && isset( $recipe_score['score'] ) && $recipe_score['score'] > 0 ) { - $scores[] = $recipe_score; - } - } - - // Clear recipe settings for next iteration - $recipe_settings = null; - } - - // Clean up query to free memory - wp_reset_postdata(); - - // Check if there are more recipes to process - if ( $paged >= $query->max_num_pages ) { - break; - } - $paged++; + $result = []; + foreach ( $ids as $id ) { + $result[] = [ 'id' => (int) $id ]; } /** - * Filter scores before sorting. - * - * @since 1.12.0 - * - * @param array $scores Array of recipe scores [ ['id' => int, 'score' => int], ... ]. - * @param array $source_recipe Source recipe data. - * @param array $atts Shortcode attributes. - */ - $scores = apply_filters( 'cooked_related_recipes_scores_before_sort', $scores, $source_recipe, $atts ); - - // Sort by score descending - usort( $scores, function ( $a, $b ) { - return $b['score'] - $a['score']; - } ); - - /** - * Filter final sorted scores. + * Filter the related recipe IDs before return. * * @since 1.12.0 * - * @param array $scores Array of sorted recipe scores [ ['id' => int, 'score' => int], ... ]. + * @param array $result Array of [ 'id' => int ]. * @param array $source_recipe Source recipe data. * @param array $atts Shortcode attributes. */ - $scores = apply_filters( 'cooked_related_recipes_scores', $scores, $source_recipe, $atts ); - - return $scores; + return apply_filters( 'cooked_related_recipes_result', $result, $source_recipe, $atts ); } /** @@ -400,51 +159,4 @@ public static function get_recipe_terms( $recipe_id, $taxonomy ) { $terms = wp_get_object_terms( $recipe_id, $taxonomy, [ 'fields' => 'ids' ] ); return is_wp_error( $terms ) ? [] : $terms; } - - /** - * Get normalized ingredient names from recipe data. - * - * @param array $recipe Recipe data. - * @return array - */ - public static function get_recipe_ingredients( $recipe ) { - $ingredients = []; - if ( ! isset( $recipe['ingredients'] ) || empty( $recipe['ingredients'] ) ) { - return $ingredients; - } - foreach ( $recipe['ingredients'] as $ing ) { - if ( isset( $ing['section_heading_name'] ) ) { - continue; - } - $name = isset( $ing['name'] ) ? trim( strtolower( $ing['name'] ) ) : ''; - if ( $name ) { - $ingredients[] = $name; - } - } - return array_unique( $ingredients ); - } - - /** - * Compare ingredient overlap between two recipes. - * - * @param array $ingredients1 First recipe ingredients. - * @param array $ingredients2 Second recipe ingredients. - * @return float - */ - public static function compare_ingredients( $ingredients1, $ingredients2 ) { - if ( empty( $ingredients1 ) || empty( $ingredients2 ) ) { - return 0; - } - $exact = count( array_intersect( $ingredients1, $ingredients2 ) ); - $partial = 0; - foreach ( $ingredients1 as $ing1 ) { - foreach ( $ingredients2 as $ing2 ) { - if ( $ing1 !== $ing2 && ( strpos( $ing1, $ing2 ) !== false || strpos( $ing2, $ing1 ) !== false ) ) { - $partial += 0.5; - break; - } - } - } - return $exact + $partial; - } } diff --git a/includes/class.cooked-settings.php b/includes/class.cooked-settings.php index a2d7c39..869024c 100644 --- a/includes/class.cooked-settings.php +++ b/includes/class.cooked-settings.php @@ -607,25 +607,6 @@ public static function field_migrate_button( $field_name, $title ) { } } - public static function field_calculate_related_button( $field_name, $title ) { - $last = get_option( 'cooked_related_calculation_last', [] ); - $last_ts = isset( $last['time'] ) ? (int) $last['time'] : 0; - $last_count = isset( $last['count'] ) ? (int) $last['count'] : -1; - $last_text = ''; - if ( $last_ts && $last_count >= 0 ) { - $date = date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $last_ts ); - $last_text = sprintf( __( 'Last: %1$s · %2$s recipes', 'cooked' ), $date, number_format_i18n( $last_count ) ); - } - echo '

    '; - echo '

    '; - echo ''; - echo '

    '; - echo '

    '; - echo '0 / 0'; - echo '

    '; - echo ''; - } - public static function field_text($field_name, $placeholder) { global $_cooked_settings; diff --git a/includes/class.cooked-shortcodes.php b/includes/class.cooked-shortcodes.php index 3c16e18..83c1ad1 100644 --- a/includes/class.cooked-shortcodes.php +++ b/includes/class.cooked-shortcodes.php @@ -1086,7 +1086,8 @@ public function cooked_nutrition_shortcode($atts, $content = null) { /** * Related Recipes Shortcode * - * Displays related recipes based on keywords, cuisines, ingredients, categories, and other factors. + * Displays related recipes based on shared terms in any recipe taxonomy (categories, + * cuisines, cooking methods, tags, diets), random order. No scoring, ingredients, or cache. * * @param array $atts Shortcode attributes * @param string $content Shortcode content @@ -1110,7 +1111,7 @@ public function cooked_related_recipes_shortcode($atts, $content = null) { $recipe_id = (int) $atts['id']; } else { // Invalid ID provided (e.g., "asdas", "", "0", "-5") - return ''; + return ''; } } else { // No ID provided, try to get from current post @@ -1120,7 +1121,7 @@ public function cooked_related_recipes_shortcode($atts, $content = null) { } if (!$recipe_id) { - return ''; + return ''; } // Get the source recipe (allow any status to support drafts/pending) @@ -1138,8 +1139,7 @@ public function cooked_related_recipes_shortcode($atts, $content = null) { return ''; } - // Find related recipes (uses transient cache; pre-calc via Recipes > Tools) - // Limit is applied inside get_related_recipes() based on $atts['limit'] + // Find related recipes (on-demand query: taxonomies OR + orderby rand, no cache) $related_recipes = Cooked_Related_Recipes::get_related_recipes( $recipe_id, $atts ); if (empty($related_recipes)) { @@ -1150,7 +1150,7 @@ public function cooked_related_recipes_shortcode($atts, $content = null) { } else { $empty_msg .= ' ' . __('Try adjusting the matching criteria or ensure you have other published recipes with shared categories, tags, or ingredients.', 'cooked'); } - return ''; + return ''; } // Get recipe IDs for display and filter out deleted/invalid recipes @@ -1163,7 +1163,7 @@ public function cooked_related_recipes_shortcode($atts, $content = null) { * @since 1.12.0 * * @param array $recipe_ids Array of recipe IDs to display. - * @param array $related_recipes Full related recipes array with scores. + * @param array $related_recipes Full related recipes array (each item has 'id'). * @param int $recipe_id Source recipe ID. * @param array $atts Shortcode attributes. */ diff --git a/includes/class.cooked-updates.php b/includes/class.cooked-updates.php index c3262e2..8dc02f9 100644 --- a/includes/class.cooked-updates.php +++ b/includes/class.cooked-updates.php @@ -165,6 +165,9 @@ private static function get_version_updates() { 'fix_recipe_line_endings', 'update_rewrite_rules' ], + '1.13.0' => [ + 'purge_legacy_related_recipes_cache', + ], ]); } @@ -249,6 +252,22 @@ private static function fix_recipe_line_endings() { } } + /** + * Purge legacy related-recipes transients and options (cache and pre-calculation data). + * One-time cleanup when moving to on-demand related recipes with no cache. + * + * @since 1.12.0 + */ + private static function purge_legacy_related_recipes_cache() { + global $wpdb; + + $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_cooked_related_%' OR option_name LIKE '_transient_timeout_cooked_related_%'" ); + delete_option( 'cooked_related_version' ); + delete_option( 'cooked_related_calculation_last' ); + + error_log( 'Cooked: Purged legacy related-recipes cache and options.' ); + } + /** * Update rewrite rules if needed * diff --git a/languages/cooked.po b/languages/cooked.po index 364774f..3f398e9 100644 --- a/languages/cooked.po +++ b/languages/cooked.po @@ -143,22 +143,22 @@ msgstr "" msgid "You do not have sufficient permissions to access this page." msgstr "" -#: includes/class.cooked-ajax.php:179 +#: includes/class.cooked-ajax.php:175 #: includes/class.cooked-functions.php:134 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:263 #: includes/class.cooked-recipe-meta.php:1163 -#: includes/class.cooked-recipes.php:636 +#: includes/class.cooked-recipes.php:635 #: templates/front/recipe.php:34 msgid "Ingredients" msgstr "" -#: includes/class.cooked-ajax.php:179 +#: includes/class.cooked-ajax.php:175 #: includes/class.cooked-functions.php:135 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:269 #: includes/class.cooked-recipe-meta.php:1194 -#: includes/class.cooked-recipes.php:640 +#: includes/class.cooked-recipes.php:639 #: templates/front/recipe.php:35 msgid "Directions" msgstr "" @@ -203,7 +203,7 @@ msgstr "" #: includes/class.cooked-functions.php:136 #: includes/class.cooked-recipe-meta.php:1378 -#: includes/class.cooked-recipes.php:643 +#: includes/class.cooked-recipes.php:642 #: includes/class.cooked-settings.php:232 #: includes/class.cooked-shortcodes.php:775 msgid "Notes" @@ -583,7 +583,7 @@ msgid "cans" msgstr "" #: includes/class.cooked-measurements.php:202 -#: includes/class.cooked-recipes.php:799 +#: includes/class.cooked-recipes.php:798 #: includes/class.cooked-settings.php:236 msgid "Servings" msgstr "" @@ -1159,7 +1159,7 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:1363 #: includes/class.cooked-recipe-meta.php:1393 #: includes/class.cooked-recipe-meta.php:1438 -#: includes/class.cooked-recipe-meta.php:1564 +#: includes/class.cooked-recipe-meta.php:1561 msgid "Available Variables" msgstr "" @@ -1350,49 +1350,49 @@ msgstr "" #. translators: stating the recipe author with a "By" in front of it. (ex: "By John Smith") #. translators: referring to the author (ex: By John Smith) -#: includes/class.cooked-recipes.php:268 -#: includes/class.cooked-recipes.php:322 +#: includes/class.cooked-recipes.php:267 +#: includes/class.cooked-recipes.php:321 #: templates/front/recipe-single.php:47 #, php-format msgid "By %s" msgstr "" #. translators: For showing "All" of a taxonomy (ex: "All Burgers") -#: includes/class.cooked-recipes.php:384 +#: includes/class.cooked-recipes.php:383 #, php-format msgid "All %s" msgstr "" -#: includes/class.cooked-recipes.php:651 +#: includes/class.cooked-recipes.php:650 msgid "Beginner" msgstr "" -#: includes/class.cooked-recipes.php:652 +#: includes/class.cooked-recipes.php:651 msgid "Intermediate" msgstr "" -#: includes/class.cooked-recipes.php:653 +#: includes/class.cooked-recipes.php:652 msgid "Advanced" msgstr "" -#: includes/class.cooked-recipes.php:679 +#: includes/class.cooked-recipes.php:678 msgid "Cooked Gallery" msgstr "" -#: includes/class.cooked-recipes.php:683 +#: includes/class.cooked-recipes.php:682 msgid "Envira Gallery" msgstr "" -#: includes/class.cooked-recipes.php:687 +#: includes/class.cooked-recipes.php:686 msgid "Soliloquy Slider" msgstr "" -#: includes/class.cooked-recipes.php:691 +#: includes/class.cooked-recipes.php:690 msgid "Slider Revolution" msgstr "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:766 +#: includes/class.cooked-recipes.php:765 #, php-format msgid "Quarter (%s Serving)" msgid_plural "Quarter (%s Servings)" @@ -1400,7 +1400,7 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:769 +#: includes/class.cooked-recipes.php:768 #, php-format msgid "Half (%s Serving)" msgid_plural "Half (%s Servings)" @@ -1408,7 +1408,7 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:772 +#: includes/class.cooked-recipes.php:771 #, php-format msgid "Default (%s Serving)" msgid_plural "Default (%s Servings)" @@ -1416,25 +1416,25 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:775 +#: includes/class.cooked-recipes.php:774 #, php-format msgid "Double (%s Servings)" msgstr "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:778 +#: includes/class.cooked-recipes.php:777 #, php-format msgid "Triple (%s Servings)" msgstr "" -#: includes/class.cooked-recipes.php:792 +#: includes/class.cooked-recipes.php:791 #: includes/class.cooked-shortcodes.php:448 msgid "Yields" msgstr "" #. translators: singular and plural "serving" sizes -#: includes/class.cooked-recipes.php:796 -#: includes/class.cooked-recipes.php:807 +#: includes/class.cooked-recipes.php:795 +#: includes/class.cooked-recipes.php:806 #, php-format msgid "%s Serving" msgid_plural "%s Servings" @@ -1442,51 +1442,51 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural "steps" -#: includes/class.cooked-recipes.php:962 +#: includes/class.cooked-recipes.php:961 #: includes/class.cooked-seo.php:83 #, php-format msgid "Step %d" msgstr "" -#: includes/class.cooked-recipes.php:1022 +#: includes/class.cooked-recipes.php:1021 msgid "Browse" msgstr "" -#: includes/class.cooked-recipes.php:1040 +#: includes/class.cooked-recipes.php:1039 #: includes/class.cooked-settings.php:157 msgid "No categories" msgstr "" -#: includes/class.cooked-recipes.php:1043 +#: includes/class.cooked-recipes.php:1042 #: includes/class.cooked-settings.php:204 #: includes/class.cooked-taxonomies.php:38 #: includes/class.cooked-taxonomies.php:48 msgid "Categories" msgstr "" -#: includes/class.cooked-recipes.php:1045 +#: includes/class.cooked-recipes.php:1044 #: includes/class.cooked-taxonomies.php:41 #: includes/widgets/recipe-categories.php:48 msgid "All Categories" msgstr "" -#: includes/class.cooked-recipes.php:1116 +#: includes/class.cooked-recipes.php:1115 msgid "Find a recipe..." msgstr "" -#: includes/class.cooked-recipes.php:1131 +#: includes/class.cooked-recipes.php:1130 msgid "Newest first" msgstr "" -#: includes/class.cooked-recipes.php:1135 +#: includes/class.cooked-recipes.php:1134 msgid "Oldest first" msgstr "" -#: includes/class.cooked-recipes.php:1139 +#: includes/class.cooked-recipes.php:1138 msgid "Alphabetical (A-Z)" msgstr "" -#: includes/class.cooked-recipes.php:1143 +#: includes/class.cooked-recipes.php:1142 msgid "Alphabetical (Z-A)" msgstr "" @@ -2162,7 +2162,7 @@ msgstr "" msgid "h6" msgstr "" -#: includes/class.cooked-recipes.php:1118 +#: includes/class.cooked-recipes.php:1117 msgid "Search" msgstr "" @@ -2229,8 +2229,8 @@ msgstr "" msgid "ex. Apple Sauce, Tofu, etc." msgstr "" -#: includes/class.cooked-recipes.php:904 -#: includes/class.cooked-recipes.php:918 +#: includes/class.cooked-recipes.php:903 +#: includes/class.cooked-recipes.php:917 msgid "or" msgstr "" @@ -2255,11 +2255,11 @@ msgid "Simply add the shortcode to your recipe template or content area. The nav msgstr "" #: includes/class.cooked-recipe-meta.php:1481 -#: includes/class.cooked-related-recipes.php:73 +#: includes/class.cooked-related-recipes.php:34 msgid "Related Recipes" msgstr "" -#: includes/class.cooked-shortcodes.php:1130 +#: includes/class.cooked-shortcodes.php:1131 msgid "Recipe not found." msgstr "" @@ -2281,10 +2281,6 @@ msgstr "" msgid "Create translations of your browse page in %s for full multilingual support." msgstr "" -#: includes/class.cooked-recipe-meta.php:1482 -msgid "This will display a grid of related recipes based on categories, cuisines, ingredients, and other factors." -msgstr "" - #: includes/class.cooked-recipe-meta.php:1490 msgid "Specify a recipe ID. If not provided, uses the current recipe." msgstr "" @@ -2293,14 +2289,6 @@ msgstr "" msgid "Set the heading text for the related recipes section." msgstr "" -#: includes/class.cooked-recipe-meta.php:1507 -msgid "Number of recipes to display (default: 6)." -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1514 -msgid "Number of columns in the grid (default: 3)." -msgstr "" - #: includes/class.cooked-recipe-meta.php:1524 msgid "Hide recipe card images." msgstr "" @@ -2313,111 +2301,79 @@ msgstr "" msgid "Hide recipe card authors." msgstr "" -#: includes/class.cooked-recipe-meta.php:1548 -msgid "Enable/disable matching by categories, cuisines, ingredients, etc. (default: true for most)." -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1555 -msgid "Matching Options:" -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1556 -msgid "Control which factors are used to find related recipes: match_categories, match_cuisines, match_cooking_methods, match_tags, match_diets, match_ingredients, match_author, match_difficulty." -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1558 -msgid "Weight Options:" -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1559 -msgid "Adjust the importance of each matching factor: category_weight, cuisine_weight, cooking_method_weight, tag_weight, diet_weight, ingredient_weight, author_weight, difficulty_weight." -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1566 +#: includes/class.cooked-recipe-meta.php:1563 msgid "Recipe ID" msgstr "" -#: includes/class.cooked-recipe-meta.php:1567 +#: includes/class.cooked-recipe-meta.php:1564 msgid "Section heading" msgstr "" -#: includes/class.cooked-recipe-meta.php:1568 +#: includes/class.cooked-recipe-meta.php:1565 msgid "Number of recipes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1569 +#: includes/class.cooked-recipe-meta.php:1566 msgid "Grid columns" msgstr "" +#: includes/class.cooked-recipe-meta.php:1567 +#: includes/class.cooked-recipe-meta.php:1568 +#: includes/class.cooked-recipe-meta.php:1569 #: includes/class.cooked-recipe-meta.php:1570 -#: includes/class.cooked-recipe-meta.php:1571 -#: includes/class.cooked-recipe-meta.php:1572 -#: includes/class.cooked-recipe-meta.php:1573 msgid "true/false" msgstr "" -#: includes/class.cooked-recipe-meta.php:1574 -msgid "Numeric value" -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1576 +#: includes/class.cooked-recipe-meta.php:1572 msgid "Example" msgstr "" -#: includes/class.cooked-admin-enqueues.php:151 -msgid "Pre-calculate related recipes for all published recipes? This may take a while on large sites." -msgstr "" - -#. translators: 1: date and time, 2: number of recipes -#: includes/class.cooked-admin-enqueues.php:153 -#: includes/class.cooked-settings.php:617 -#, php-format -msgid "Last: %1$s · %2$s recipes" +#: includes/class.cooked-shortcodes.php:1114 +msgid "Invalid recipe ID specified. Please provide a valid numeric recipe ID." msgstr "" -#: includes/class.cooked-related-recipes.php:41 -msgid "Tools" +#: includes/class.cooked-shortcodes.php:1124 +msgid "No recipe found. Please specify a recipe ID using the id attribute, or use this shortcode on a recipe page." msgstr "" -#: includes/class.cooked-related-recipes.php:45 -#: includes/class.cooked-settings.php:621 -msgid "Calculate Related Recipes" +#: includes/class.cooked-shortcodes.php:1135 +#, php-format +msgid "The specified ID (%d) is not a recipe." msgstr "" -#: includes/class.cooked-related-recipes.php:46 -msgid "Pre-calculate related recipes for every published recipe. Uses default shortcode options. Run this after importing or adding many recipes, or when the cache was cleared. One recipe is processed per step to avoid memory issues on large sites." +#: includes/class.cooked-shortcodes.php:1137 +#, php-format +msgid "No post found with ID %d." msgstr "" -#: includes/class.cooked-settings.php:626 -msgid "Done." +#: includes/class.cooked-shortcodes.php:1149 +msgid "This may be because there are no other recipes in the current language with matching attributes." msgstr "" -#: includes/class.cooked-settings.php:626 -msgid "Related recipes cached." +#: includes/class.cooked-shortcodes.php:1151 +msgid "Try adjusting the matching criteria or ensure you have other published recipes with shared categories, tags, or ingredients." msgstr "" -#: includes/class.cooked-shortcodes.php:1113 -msgid "Invalid recipe ID specified. Please provide a valid numeric recipe ID." +#: includes/class.cooked-recipe-meta.php:1482 +msgid "Displays a grid of related recipes based on shared terms in any of the recipe taxonomies (categories, cuisines, cooking methods, tags, diets), shown in random order. No cache or pre-calculation." msgstr "" -#: includes/class.cooked-shortcodes.php:1123 -msgid "No recipe found. Please specify a recipe ID using the id attribute, or use this shortcode on a recipe page." +#: includes/class.cooked-recipe-meta.php:1507 +msgid "Number of recipes to display (default: 4)." msgstr "" -#: includes/class.cooked-shortcodes.php:1134 -#, php-format -msgid "The specified ID (%d) is not a recipe." +#: includes/class.cooked-recipe-meta.php:1514 +msgid "Number of columns in the grid (default: 2)." msgstr "" -#: includes/class.cooked-shortcodes.php:1136 -#, php-format -msgid "No post found with ID %d." +#: includes/class.cooked-recipe-meta.php:1548 +msgid "Toggle which taxonomies are used: match_categories, match_cuisines, match_cooking_methods, match_tags, match_diets (default: true)." msgstr "" -#: includes/class.cooked-shortcodes.php:1149 -msgid "This may be because there are no other recipes in the current language with matching attributes." +#: includes/class.cooked-recipe-meta.php:1555 +msgid "Matching options:" msgstr "" -#: includes/class.cooked-shortcodes.php:1151 -msgid "Try adjusting the matching criteria or ensure you have other published recipes with shared categories, tags, or ingredients." +#: includes/class.cooked-recipe-meta.php:1556 +msgid "Set to false to exclude a taxonomy from related recipes, e.g. match_cuisines=\"false\" to ignore cuisines." msgstr "" diff --git a/languages/cooked.pot b/languages/cooked.pot index 79380de..429a9e3 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -2,14 +2,14 @@ # This file is distributed under the GPL2. msgid "" msgstr "" -"Project-Id-Version: Cooked - Recipe Management 1.12.0\n" +"Project-Id-Version: Cooked - Recipe Management 1.13.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cooked\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-01-28T10:29:58-05:00\n" +"POT-Creation-Date: 2026-02-04T18:57:24-05:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: cooked\n" @@ -98,17 +98,6 @@ msgstr "" msgid "Please confirm that you are ready to import all recipes." msgstr "" -#: includes/class.cooked-admin-enqueues.php:151 -msgid "Pre-calculate related recipes for all published recipes? This may take a while on large sites." -msgstr "" - -#. translators: 1: date and time, 2: number of recipes -#: includes/class.cooked-admin-enqueues.php:153 -#: includes/class.cooked-settings.php:617 -#, php-format -msgid "Last: %1$s · %2$s recipes" -msgstr "" - #: includes/class.cooked-admin-menus.php:36 #: includes/class.cooked-admin-menus.php:59 #: includes/class.cooked-post-types.php:450 @@ -157,22 +146,22 @@ msgstr "" msgid "You do not have sufficient permissions to access this page." msgstr "" -#: includes/class.cooked-ajax.php:179 +#: includes/class.cooked-ajax.php:175 #: includes/class.cooked-functions.php:134 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:263 #: includes/class.cooked-recipe-meta.php:1163 -#: includes/class.cooked-recipes.php:636 +#: includes/class.cooked-recipes.php:635 #: templates/front/recipe.php:34 msgid "Ingredients" msgstr "" -#: includes/class.cooked-ajax.php:179 +#: includes/class.cooked-ajax.php:175 #: includes/class.cooked-functions.php:135 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:269 #: includes/class.cooked-recipe-meta.php:1194 -#: includes/class.cooked-recipes.php:640 +#: includes/class.cooked-recipes.php:639 #: templates/front/recipe.php:35 msgid "Directions" msgstr "" @@ -221,7 +210,7 @@ msgstr "" #: includes/class.cooked-functions.php:136 #: includes/class.cooked-recipe-meta.php:1378 -#: includes/class.cooked-recipes.php:643 +#: includes/class.cooked-recipes.php:642 #: includes/class.cooked-settings.php:232 #: includes/class.cooked-shortcodes.php:775 msgid "Notes" @@ -627,7 +616,7 @@ msgid "cans" msgstr "" #: includes/class.cooked-measurements.php:202 -#: includes/class.cooked-recipes.php:799 +#: includes/class.cooked-recipes.php:798 #: includes/class.cooked-settings.php:236 msgid "Servings" msgstr "" @@ -1240,7 +1229,7 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:1363 #: includes/class.cooked-recipe-meta.php:1393 #: includes/class.cooked-recipe-meta.php:1438 -#: includes/class.cooked-recipe-meta.php:1564 +#: includes/class.cooked-recipe-meta.php:1561 msgid "Available Variables" msgstr "" @@ -1450,12 +1439,12 @@ msgid "Simply add the shortcode to your recipe template or content area. The nav msgstr "" #: includes/class.cooked-recipe-meta.php:1481 -#: includes/class.cooked-related-recipes.php:73 +#: includes/class.cooked-related-recipes.php:34 msgid "Related Recipes" msgstr "" #: includes/class.cooked-recipe-meta.php:1482 -msgid "This will display a grid of related recipes based on categories, cuisines, ingredients, and other factors." +msgid "Displays a grid of related recipes based on shared terms in any of the recipe taxonomies (categories, cuisines, cooking methods, tags, diets), shown in random order. No cache or pre-calculation." msgstr "" #: includes/class.cooked-recipe-meta.php:1490 @@ -1467,11 +1456,11 @@ msgid "Set the heading text for the related recipes section." msgstr "" #: includes/class.cooked-recipe-meta.php:1507 -msgid "Number of recipes to display (default: 6)." +msgid "Number of recipes to display (default: 4)." msgstr "" #: includes/class.cooked-recipe-meta.php:1514 -msgid "Number of columns in the grid (default: 3)." +msgid "Number of columns in the grid (default: 2)." msgstr "" #: includes/class.cooked-recipe-meta.php:1524 @@ -1487,101 +1476,89 @@ msgid "Hide recipe card authors." msgstr "" #: includes/class.cooked-recipe-meta.php:1548 -msgid "Enable/disable matching by categories, cuisines, ingredients, etc. (default: true for most)." +msgid "Toggle which taxonomies are used: match_categories, match_cuisines, match_cooking_methods, match_tags, match_diets (default: true)." msgstr "" #: includes/class.cooked-recipe-meta.php:1555 -msgid "Matching Options:" +msgid "Matching options:" msgstr "" #: includes/class.cooked-recipe-meta.php:1556 -msgid "Control which factors are used to find related recipes: match_categories, match_cuisines, match_cooking_methods, match_tags, match_diets, match_ingredients, match_author, match_difficulty." -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1558 -msgid "Weight Options:" -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1559 -msgid "Adjust the importance of each matching factor: category_weight, cuisine_weight, cooking_method_weight, tag_weight, diet_weight, ingredient_weight, author_weight, difficulty_weight." +msgid "Set to false to exclude a taxonomy from related recipes, e.g. match_cuisines=\"false\" to ignore cuisines." msgstr "" -#: includes/class.cooked-recipe-meta.php:1566 +#: includes/class.cooked-recipe-meta.php:1563 msgid "Recipe ID" msgstr "" -#: includes/class.cooked-recipe-meta.php:1567 +#: includes/class.cooked-recipe-meta.php:1564 msgid "Section heading" msgstr "" -#: includes/class.cooked-recipe-meta.php:1568 +#: includes/class.cooked-recipe-meta.php:1565 msgid "Number of recipes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1569 +#: includes/class.cooked-recipe-meta.php:1566 msgid "Grid columns" msgstr "" +#: includes/class.cooked-recipe-meta.php:1567 +#: includes/class.cooked-recipe-meta.php:1568 +#: includes/class.cooked-recipe-meta.php:1569 #: includes/class.cooked-recipe-meta.php:1570 -#: includes/class.cooked-recipe-meta.php:1571 -#: includes/class.cooked-recipe-meta.php:1572 -#: includes/class.cooked-recipe-meta.php:1573 msgid "true/false" msgstr "" -#: includes/class.cooked-recipe-meta.php:1574 -msgid "Numeric value" -msgstr "" - -#: includes/class.cooked-recipe-meta.php:1576 +#: includes/class.cooked-recipe-meta.php:1572 msgid "Example" msgstr "" #. translators: stating the recipe author with a "By" in front of it. (ex: "By John Smith") #. translators: referring to the author (ex: By John Smith) -#: includes/class.cooked-recipes.php:268 -#: includes/class.cooked-recipes.php:322 +#: includes/class.cooked-recipes.php:267 +#: includes/class.cooked-recipes.php:321 #: templates/front/recipe-single.php:47 #, php-format msgid "By %s" msgstr "" #. translators: For showing "All" of a taxonomy (ex: "All Burgers") -#: includes/class.cooked-recipes.php:384 +#: includes/class.cooked-recipes.php:383 #, php-format msgid "All %s" msgstr "" -#: includes/class.cooked-recipes.php:651 +#: includes/class.cooked-recipes.php:650 msgid "Beginner" msgstr "" -#: includes/class.cooked-recipes.php:652 +#: includes/class.cooked-recipes.php:651 msgid "Intermediate" msgstr "" -#: includes/class.cooked-recipes.php:653 +#: includes/class.cooked-recipes.php:652 msgid "Advanced" msgstr "" -#: includes/class.cooked-recipes.php:679 +#: includes/class.cooked-recipes.php:678 msgid "Cooked Gallery" msgstr "" -#: includes/class.cooked-recipes.php:683 +#: includes/class.cooked-recipes.php:682 msgid "Envira Gallery" msgstr "" -#: includes/class.cooked-recipes.php:687 +#: includes/class.cooked-recipes.php:686 msgid "Soliloquy Slider" msgstr "" -#: includes/class.cooked-recipes.php:691 +#: includes/class.cooked-recipes.php:690 msgid "Slider Revolution" msgstr "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:766 +#: includes/class.cooked-recipes.php:765 #, php-format msgid "Quarter (%s Serving)" msgid_plural "Quarter (%s Servings)" @@ -1589,7 +1566,7 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:769 +#: includes/class.cooked-recipes.php:768 #, php-format msgid "Half (%s Serving)" msgid_plural "Half (%s Servings)" @@ -1597,7 +1574,7 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:772 +#: includes/class.cooked-recipes.php:771 #, php-format msgid "Default (%s Serving)" msgid_plural "Default (%s Servings)" @@ -1605,102 +1582,89 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:775 +#: includes/class.cooked-recipes.php:774 #, php-format msgid "Double (%s Servings)" msgstr "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:778 +#: includes/class.cooked-recipes.php:777 #, php-format msgid "Triple (%s Servings)" msgstr "" -#: includes/class.cooked-recipes.php:792 +#: includes/class.cooked-recipes.php:791 #: includes/class.cooked-shortcodes.php:448 msgid "Yields" msgstr "" #. translators: singular and plural "serving" sizes -#: includes/class.cooked-recipes.php:796 -#: includes/class.cooked-recipes.php:807 +#: includes/class.cooked-recipes.php:795 +#: includes/class.cooked-recipes.php:806 #, php-format msgid "%s Serving" msgid_plural "%s Servings" msgstr[0] "" msgstr[1] "" -#: includes/class.cooked-recipes.php:904 -#: includes/class.cooked-recipes.php:918 +#: includes/class.cooked-recipes.php:903 +#: includes/class.cooked-recipes.php:917 msgid "or" msgstr "" #. translators: singular and plural "steps" -#: includes/class.cooked-recipes.php:962 +#: includes/class.cooked-recipes.php:961 #: includes/class.cooked-seo.php:83 #, php-format msgid "Step %d" msgstr "" -#: includes/class.cooked-recipes.php:1022 +#: includes/class.cooked-recipes.php:1021 msgid "Browse" msgstr "" -#: includes/class.cooked-recipes.php:1040 +#: includes/class.cooked-recipes.php:1039 #: includes/class.cooked-settings.php:157 msgid "No categories" msgstr "" -#: includes/class.cooked-recipes.php:1043 +#: includes/class.cooked-recipes.php:1042 #: includes/class.cooked-settings.php:204 #: includes/class.cooked-taxonomies.php:38 #: includes/class.cooked-taxonomies.php:48 msgid "Categories" msgstr "" -#: includes/class.cooked-recipes.php:1045 +#: includes/class.cooked-recipes.php:1044 #: includes/class.cooked-taxonomies.php:41 #: includes/widgets/recipe-categories.php:48 msgid "All Categories" msgstr "" -#: includes/class.cooked-recipes.php:1116 +#: includes/class.cooked-recipes.php:1115 msgid "Find a recipe..." msgstr "" -#: includes/class.cooked-recipes.php:1118 +#: includes/class.cooked-recipes.php:1117 msgid "Search" msgstr "" -#: includes/class.cooked-recipes.php:1131 +#: includes/class.cooked-recipes.php:1130 msgid "Newest first" msgstr "" -#: includes/class.cooked-recipes.php:1135 +#: includes/class.cooked-recipes.php:1134 msgid "Oldest first" msgstr "" -#: includes/class.cooked-recipes.php:1139 +#: includes/class.cooked-recipes.php:1138 msgid "Alphabetical (A-Z)" msgstr "" -#: includes/class.cooked-recipes.php:1143 +#: includes/class.cooked-recipes.php:1142 msgid "Alphabetical (Z-A)" msgstr "" -#: includes/class.cooked-related-recipes.php:41 -msgid "Tools" -msgstr "" - -#: includes/class.cooked-related-recipes.php:45 -#: includes/class.cooked-settings.php:621 -msgid "Calculate Related Recipes" -msgstr "" - -#: includes/class.cooked-related-recipes.php:46 -msgid "Pre-calculate related recipes for every published recipe. Uses default shortcode options. Run this after importing or adding many recipes, or when the cache was cleared. One recipe is processed per step to avoid memory issues on large sites." -msgstr "" - #: includes/class.cooked-roles.php:22 msgid "Recipe Editor" msgstr "" @@ -2074,14 +2038,6 @@ msgstr "" msgid "Begin Migration" msgstr "" -#: includes/class.cooked-settings.php:626 -msgid "Done." -msgstr "" - -#: includes/class.cooked-settings.php:626 -msgid "Related recipes cached." -msgstr "" - #. translators: referring to the bottom of the Settings page. #: includes/class.cooked-shortcodes.php:150 #, php-format @@ -2096,24 +2052,24 @@ msgstr "" msgid "Fullscreen" msgstr "" -#: includes/class.cooked-shortcodes.php:1113 +#: includes/class.cooked-shortcodes.php:1114 msgid "Invalid recipe ID specified. Please provide a valid numeric recipe ID." msgstr "" -#: includes/class.cooked-shortcodes.php:1123 +#: includes/class.cooked-shortcodes.php:1124 msgid "No recipe found. Please specify a recipe ID using the id attribute, or use this shortcode on a recipe page." msgstr "" -#: includes/class.cooked-shortcodes.php:1130 +#: includes/class.cooked-shortcodes.php:1131 msgid "Recipe not found." msgstr "" -#: includes/class.cooked-shortcodes.php:1134 +#: includes/class.cooked-shortcodes.php:1135 #, php-format msgid "The specified ID (%d) is not a recipe." msgstr "" -#: includes/class.cooked-shortcodes.php:1136 +#: includes/class.cooked-shortcodes.php:1137 #, php-format msgid "No post found with ID %d." msgstr "" diff --git a/package-lock.json b/package-lock.json index 525134c..56348fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cooked", - "version": "1.12.0", + "version": "1.13.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cooked", - "version": "1.12.0", + "version": "1.13.0", "license": "ISC", "devDependencies": { "@playwright/test": "^1.48.2", @@ -1009,13 +1009,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.0.tgz", - "integrity": "sha512-fWza+Lpbj6SkQKCrU6si4iu+fD2dD3gxNHFhUPxsfXBPhnv3rRSQVd0NtBUT9Z/RhF/boCBcuUaMUSTRTopjZg==", + "version": "1.58.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.1.tgz", + "integrity": "sha512-6LdVIUERWxQMmUSSQi0I53GgCBYgM2RpGngCPY7hSeju+VrKjq3lvs7HpJoPbDiY5QM5EYRtRX5fvrinnMAz3w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.58.0" + "playwright": "1.58.1" }, "bin": { "playwright": "cli.js" @@ -1222,9 +1222,9 @@ } }, "node_modules/@types/node": { - "version": "20.19.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.30.tgz", - "integrity": "sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==", + "version": "20.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.31.tgz", + "integrity": "sha512-5jsi0wpncvTD33Sh1UCgacK37FFwDn+EG7wCmEvs62fCvBL+n8/76cAYDok21NF6+jaVWIqKwCZyX7Vbu8eB3A==", "dev": true, "license": "MIT", "dependencies": { @@ -1282,9 +1282,9 @@ } }, "node_modules/@wordpress/e2e-test-utils-playwright": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.38.0.tgz", - "integrity": "sha512-/3Qo6/N5BtCbQJJShy3pY5xr68OkMctouYcz1mvL8Q8tMO1fdiZTlJvU9bSMwdM1G1NEbE8pa/9q2F1Va/2S2A==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.39.0.tgz", + "integrity": "sha512-ok008Rd8URqNQCzx/9bClC+gk7XxVV+xm5rOJjb6A4EHR8tVlynJEcE4gN0C5qCDIeOdPLbGW8ljNm2DxlelwQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -3905,13 +3905,13 @@ } }, "node_modules/playwright": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.0.tgz", - "integrity": "sha512-2SVA0sbPktiIY/MCOPX8e86ehA/e+tDNq+e5Y8qjKYti2Z/JG7xnronT/TXTIkKbYGWlCbuucZ6dziEgkoEjQQ==", + "version": "1.58.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.1.tgz", + "integrity": "sha512-+2uTZHxSCcxjvGc5C891LrS1/NlxglGxzrC4seZiVjcYVQfUa87wBL6rTDqzGjuoWNjnBzRqKmF6zRYGMvQUaQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.58.0" + "playwright-core": "1.58.1" }, "bin": { "playwright": "cli.js" @@ -3924,9 +3924,9 @@ } }, "node_modules/playwright-core": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.0.tgz", - "integrity": "sha512-aaoB1RWrdNi3//rOeKuMiS65UCcgOVljU46At6eFcOFPFHWtd2weHRRow6z/n+Lec0Lvu0k9ZPKJSjPugikirw==", + "version": "1.58.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.1.tgz", + "integrity": "sha512-bcWzOaTxcW+VOOGBCQgnaKToLJ65d6AqfLVKEWvexyS3AS6rbXl+xdpYRMGSRBClPvyj44njOWoxjNdL/H9UNg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4705,20 +4705,20 @@ } }, "node_modules/tldts-core": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", - "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", + "version": "7.0.22", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.22.tgz", + "integrity": "sha512-KgbTDC5wzlL6j/x6np6wCnDSMUq4kucHNm00KXPbfNzmllCmtmvtykJHfmgdHntwIeupW04y8s1N/43S1PkQDw==", "dev": true, "license": "MIT" }, "node_modules/tldts-icann": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.19.tgz", - "integrity": "sha512-PZgda8E2cXMNa7QlBbiZh3vcS8UaPTDRIBmcGPDlujSMtQLrzjvikeJxzQSqWxn3muaMJ7BsC+aL464Yl2I6cA==", + "version": "7.0.22", + "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.22.tgz", + "integrity": "sha512-Wb5HEhrSy+zJtdJ6gop7ZNQ/Iacz/0c8t+6Kp1QoT84VRfc0TfPJLrb8f6YuRvCUOVjU889KJlPcG+5glVX8GQ==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.0.19" + "tldts-core": "^7.0.22" } }, "node_modules/to-regex-range": { diff --git a/package.json b/package.json index 99d191b..c8bd75c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cooked", - "version": "1.12.0", + "version": "1.13.0", "description": "Cooked is the absolute best way to create & display recipes with WordPress. SEO optimized (rich snippets), galleries, cooking timers, printable recipes and much more.", "main": "index.js", "scripts": { diff --git a/readme.txt b/readme.txt index cbc37a0..6f0bc65 100644 --- a/readme.txt +++ b/readme.txt @@ -2,8 +2,8 @@ Contributors: xjsv, boxystudio Tags: recipe, recipes, food, cooking, nutrition Requires at least: 4.7 -Tested up to: 6.9 -Stable tag: 1.12.0 +Tested up to: 6.9.1 +Stable tag: 1.13.0 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -78,10 +78,13 @@ Please report security bugs found in the source code of the Cooked plugin throug == Upgrade Notice == -Version 1.12.0 includes the ability to add ingredients substitutions. +Version 1.13.0 includes changes to the [cooked-related-recipes] shortcode. == Changelog == += 1.13.0 = +* **TWEAK:** Simplified the way the [cooked-related-recipes] shortcode works. + = 1.12.0 = * **NEW:** Added the ability to add ingredients substitutions thanks to @mgiannopoulos24. * **NEW:** Added new [cooked-related-recipes] shortcode to display related recipes based on categories, cuisines, ingredients, and other factors. diff --git a/templates/admin/tools.php b/templates/admin/tools.php deleted file mode 100644 index 430bac6..0000000 --- a/templates/admin/tools.php +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    - -
    -    -
    -
    - -
    - -
    -
    -

    - -
    -
    - -
    - -
    - -
    -
    diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 06f5a91..90e264a 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -1,8 +1,8 @@ array( 'name' => 'xjsv/cooked', - 'pretty_version' => '1.12.0', - 'version' => '1.12.0.0', + 'pretty_version' => '1.13.0', + 'version' => '1.13.0.0', 'reference' => null, 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', @@ -20,8 +20,8 @@ 'dev_requirement' => false, ), 'xjsv/cooked' => array( - 'pretty_version' => '1.12.0', - 'version' => '1.12.0.0', + 'pretty_version' => '1.13.0', + 'version' => '1.13.0.0', 'reference' => null, 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', From 1ddca97ebfa8dd453c14c465c64d8376367c619d Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Wed, 4 Feb 2026 19:14:10 -0500 Subject: [PATCH 08/31] Removed duplicated version --- cooked.php | 1 - 1 file changed, 1 deletion(-) diff --git a/cooked.php b/cooked.php index a755964..d1e8590 100644 --- a/cooked.php +++ b/cooked.php @@ -6,7 +6,6 @@ Description: A recipe plugin for WordPress. Author: Gora Tech Author URI: https://goratech.dev -Version: 1.12.0 Version: 1.13.0 Text Domain: cooked Domain Path: languages From a2a050d4b9837b17ca5f8c39b8c3009161bc7598 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Wed, 4 Feb 2026 19:16:45 -0500 Subject: [PATCH 09/31] Removed duplicated version --- cooked.php | 1 - 1 file changed, 1 deletion(-) diff --git a/cooked.php b/cooked.php index d1e8590..1da9cb4 100644 --- a/cooked.php +++ b/cooked.php @@ -30,7 +30,6 @@ require_once __DIR__ . '/vendor/autoload.php'; -define( 'COOKED_VERSION', '1.12.0' ); define( 'COOKED_DEV', false ); define( 'COOKED_VERSION', '1.13.0' ); From cfba81d4df6a493348076436d320e6407acfe1ae Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Wed, 4 Feb 2026 19:32:55 -0500 Subject: [PATCH 10/31] Minor tweak Removed the class check since it does not seem necessary, at this point if those classes are not there, there is a bigger problem. --- includes/class.cooked-csv-import.php | 54 ++++++++++------------------ 1 file changed, 19 insertions(+), 35 deletions(-) diff --git a/includes/class.cooked-csv-import.php b/includes/class.cooked-csv-import.php index ddd960d..c373eea 100644 --- a/includes/class.cooked-csv-import.php +++ b/includes/class.cooked-csv-import.php @@ -4,7 +4,7 @@ * * @package Cooked * @subpackage CSV Import - * @since 1.0.0 + * @since 1.13.0 */ // Exit if accessed directly @@ -15,7 +15,7 @@ * * This class handles the import of recipes from CSV files. * - * @since 1.0.0 + * @since 1.13.0 */ class Cooked_CSV_Import { @@ -34,22 +34,6 @@ public static function import_from_file( $file_path ) { 'total' => 0 ]; - // Ensure required classes are loaded - if ( ! class_exists( 'Cooked_Recipes' ) ) { - $results['errors'][] = __( 'Cooked_Recipes class not found. Plugin may not be properly loaded.', 'cooked' ); - return $results; - } - - if ( ! class_exists( 'Cooked_Measurements' ) ) { - $results['errors'][] = __( 'Cooked_Measurements class not found. Plugin may not be properly loaded.', 'cooked' ); - return $results; - } - - if ( ! class_exists( 'Cooked_Recipe_Meta' ) ) { - $results['errors'][] = __( 'Cooked_Recipe_Meta class not found. Plugin may not be properly loaded.', 'cooked' ); - return $results; - } - if ( ! file_exists( $file_path ) ) { $results['errors'][] = __( 'CSV file not found.', 'cooked' ); return $results; @@ -198,16 +182,16 @@ public static function import_recipe( $data, $row_number = 0 ) { // When we see ||, it becomes two consecutive empty strings in the array $all_parts = array_map( 'trim', explode( '|', $data['ingredients'] ) ); $i = 0; - + while ( $i < count( $all_parts ) ) { // Skip empty parts (they come from || separator) if ( empty( $all_parts[ $i ] ) ) { $i++; continue; } - + $part = $all_parts[ $i ]; - + // Check if it's a section heading (starts with #) if ( strpos( $part, '#' ) === 0 ) { $recipe_meta['ingredients'][] = [ @@ -216,7 +200,7 @@ public static function import_recipe( $data, $row_number = 0 ) { $i++; continue; } - + // Collect next 3 non-empty parts for an ingredient (amount|measurement|name) $ingredient_parts = []; $j = $i; @@ -227,11 +211,11 @@ public static function import_recipe( $data, $row_number = 0 ) { } $j++; } - + if ( count( $ingredient_parts ) >= 3 ) { $ingredient = self::parse_ingredient_parts( $ingredient_parts, $measurements ); $i = $j; // Move past the collected parts - + // Check if next parts are empty (indicating || separator for substitution) // Look ahead to see if we have empty parts followed by non-empty parts $next_empty_count = 0; @@ -240,7 +224,7 @@ public static function import_recipe( $data, $row_number = 0 ) { $next_empty_count++; $k++; } - + // If we have empty parts (from ||) and then more parts, it's a substitution if ( $next_empty_count > 0 && $k < count( $all_parts ) ) { // Collect substitution parts (next 3 non-empty parts) @@ -253,7 +237,7 @@ public static function import_recipe( $data, $row_number = 0 ) { } $sub_i++; } - + // Parse substitution if ( count( $sub_parts ) >= 3 ) { $ingredient['sub_amount'] = sanitize_text_field( $sub_parts[0] ); @@ -269,10 +253,10 @@ public static function import_recipe( $data, $row_number = 0 ) { } elseif ( count( $sub_parts ) == 1 ) { $ingredient['sub_name'] = sanitize_text_field( $sub_parts[0] ); } - + $i = $sub_i; // Move past substitution } - + $recipe_meta['ingredients'][] = $ingredient; } else { // Not enough parts for a complete ingredient, skip @@ -396,12 +380,12 @@ public static function import_recipe( $data, $row_number = 0 ) { */ private static function match_measurement( $measurement_string, $measurements ) { $measurement_string = strtolower( trim( $measurement_string ) ); - + // First, check for exact key match if ( isset( $measurements[ $measurement_string ] ) ) { return $measurement_string; } - + // Check variations, singular, and plural for each measurement foreach ( $measurements as $key => $measurement_data ) { // Check variations @@ -412,28 +396,28 @@ private static function match_measurement( $measurement_string, $measurements ) } } } - + // Check singular if ( isset( $measurement_data['singular'] ) && strtolower( $measurement_data['singular'] ) === $measurement_string ) { return $key; } - + // Check plural if ( isset( $measurement_data['plural'] ) && strtolower( $measurement_data['plural'] ) === $measurement_string ) { return $key; } - + // Check singular abbreviation if ( isset( $measurement_data['singular_abbr'] ) && strtolower( $measurement_data['singular_abbr'] ) === $measurement_string ) { return $key; } - + // Check plural abbreviation if ( isset( $measurement_data['plural_abbr'] ) && strtolower( $measurement_data['plural_abbr'] ) === $measurement_string ) { return $key; } } - + return false; } From 525dc84f1844a6f6fec9692339902fc8e297be9c Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 Date: Sun, 8 Feb 2026 00:26:44 +0200 Subject: [PATCH 11/31] Add conditional fields for Cooked Pro --- includes/class.cooked-import.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/includes/class.cooked-import.php b/includes/class.cooked-import.php index 09363dd..3012035 100644 --- a/includes/class.cooked-import.php +++ b/includes/class.cooked-import.php @@ -159,9 +159,15 @@ public static function tabs_fields() { $html_desc .= '
  • ingredients - ' . __( 'Ingredients separated by pipe (|). Format: "amount|measurement|name" or "name" for simple ingredients. Add substitutions with double pipe (||): "amount|measurement|name||sub_amount|sub_measurement|sub_name"', 'cooked' ) . '
  • '; $html_desc .= '
  • directions - ' . __( 'Directions/instructions separated by pipe (|)', 'cooked' ) . '
  • '; $html_desc .= '
  • notes - ' . __( 'Recipe notes', 'cooked' ) . '
  • '; - $html_desc .= '
  • categories - ' . __( 'Categories separated by comma', 'cooked' ) . '
  • '; - $html_desc .= '
  • tags - ' . __( 'Tags separated by comma', 'cooked' ) . '
  • '; - $html_desc .= ''; + $html_desc .= '
  • categories - ' . __( 'Categories separated by comma', 'cooked' ) . '
  • '; + $html_desc .= '
  • tags - ' . __( 'Tags separated by comma', 'cooked' ) . '
  • '; + if ( defined('COOKED_PRO_VERSION') ) { + $html_desc .= '
  • cuisine - ' . __( 'Recipe cuisine', 'cooked' ) . '
  • '; + $html_desc .= '
  • cooking_method - ' . __( 'Cooking method', 'cooked' ) . '
  • '; + $html_desc .= '
  • recipe_tags - ' . __( 'Recipe tags, separated by comma', 'cooked' ) . '
  • '; + $html_desc .= '
  • diet - ' . __( 'Diet type', 'cooked' ) . '
  • '; + } + $html_desc .= ''; $html_desc .= '

    ' . __( 'Note:', 'cooked' ) . ' ' . __( 'Recipes will be imported with the \'Draft\' status. After the import is complete, you can bulk edit the recipes and change their status to \'Published\'.', 'cooked' ) . '

    '; $import_tabs['csv_import'] = [ From a35fb717eea0ee664ad856ef00b5e37a98f73167 Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 Date: Sun, 8 Feb 2026 20:34:00 +0200 Subject: [PATCH 12/31] Fix taxonomy slugs --- includes/class.cooked-ajax.php | 13 +++---------- includes/class.cooked-import.php | 9 ++++----- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/includes/class.cooked-ajax.php b/includes/class.cooked-ajax.php index d81dd64..df4d020 100644 --- a/includes/class.cooked-ajax.php +++ b/includes/class.cooked-ajax.php @@ -418,16 +418,9 @@ public function process_csv() { wp_send_json_error(['message' => __('CSV file not found. Please upload again.', 'cooked')]); } - // Ensure required classes are loaded - if (!class_exists('Cooked_Recipes')) { - require_once COOKED_DIR . 'includes/class.cooked-recipes.php'; - } - if (!class_exists('Cooked_Measurements')) { - require_once COOKED_DIR . 'includes/class.cooked-measurements.php'; - } - if (!class_exists('Cooked_Recipe_Meta')) { - require_once COOKED_DIR . 'includes/class.cooked-recipe-meta.php'; - } + require_once COOKED_DIR . 'includes/class.cooked-recipes.php'; + require_once COOKED_DIR . 'includes/class.cooked-measurements.php'; + require_once COOKED_DIR . 'includes/class.cooked-recipe-meta.php'; require_once COOKED_DIR . 'includes/class.cooked-csv-import.php'; diff --git a/includes/class.cooked-import.php b/includes/class.cooked-import.php index 3012035..4c686a9 100644 --- a/includes/class.cooked-import.php +++ b/includes/class.cooked-import.php @@ -159,13 +159,12 @@ public static function tabs_fields() { $html_desc .= '
  • ingredients - ' . __( 'Ingredients separated by pipe (|). Format: "amount|measurement|name" or "name" for simple ingredients. Add substitutions with double pipe (||): "amount|measurement|name||sub_amount|sub_measurement|sub_name"', 'cooked' ) . '
  • '; $html_desc .= '
  • directions - ' . __( 'Directions/instructions separated by pipe (|)', 'cooked' ) . '
  • '; $html_desc .= '
  • notes - ' . __( 'Recipe notes', 'cooked' ) . '
  • '; - $html_desc .= '
  • categories - ' . __( 'Categories separated by comma', 'cooked' ) . '
  • '; - $html_desc .= '
  • tags - ' . __( 'Tags separated by comma', 'cooked' ) . '
  • '; + $html_desc .= '
  • recipe_course - ' . __( 'Recipe course (category), separated by comma', 'cooked' ) . '
  • '; if ( defined('COOKED_PRO_VERSION') ) { - $html_desc .= '
  • cuisine - ' . __( 'Recipe cuisine', 'cooked' ) . '
  • '; - $html_desc .= '
  • cooking_method - ' . __( 'Cooking method', 'cooked' ) . '
  • '; + $html_desc .= '
  • recipe_cuisine - ' . __( 'Recipe cuisine, separated by comma', 'cooked' ) . '
  • '; + $html_desc .= '
  • recipe_cooking_method - ' . __( 'Cooking method, separated by comma', 'cooked' ) . '
  • '; $html_desc .= '
  • recipe_tags - ' . __( 'Recipe tags, separated by comma', 'cooked' ) . '
  • '; - $html_desc .= '
  • diet - ' . __( 'Diet type', 'cooked' ) . '
  • '; + $html_desc .= '
  • recipe_dietary - ' . __( 'Diet type, separated by comma', 'cooked' ) . '
  • '; } $html_desc .= ''; $html_desc .= '

    ' . __( 'Note:', 'cooked' ) . ' ' . __( 'Recipes will be imported with the \'Draft\' status. After the import is complete, you can bulk edit the recipes and change their status to \'Published\'.', 'cooked' ) . '

    '; From 0a46b070c5f4817f50dff5247d30ed9f79e21661 Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 Date: Sun, 8 Feb 2026 22:02:08 +0200 Subject: [PATCH 13/31] Removed extra imports --- includes/class.cooked-ajax.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/includes/class.cooked-ajax.php b/includes/class.cooked-ajax.php index df4d020..312cc74 100644 --- a/includes/class.cooked-ajax.php +++ b/includes/class.cooked-ajax.php @@ -418,12 +418,6 @@ public function process_csv() { wp_send_json_error(['message' => __('CSV file not found. Please upload again.', 'cooked')]); } - require_once COOKED_DIR . 'includes/class.cooked-recipes.php'; - require_once COOKED_DIR . 'includes/class.cooked-measurements.php'; - require_once COOKED_DIR . 'includes/class.cooked-recipe-meta.php'; - - require_once COOKED_DIR . 'includes/class.cooked-csv-import.php'; - // Process the CSV file if (!class_exists('Cooked_CSV_Import')) { wp_send_json_error(['message' => __('CSV Import class could not be loaded.', 'cooked')]); From 87ddc530e096e1ac63b1c7b3b059768245d02599 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Mon, 9 Feb 2026 10:22:43 -0500 Subject: [PATCH 14/31] Fixed jQuery UI Sortable don't work on mobile #124 --- assets/admin/css/style.css | 4 +- assets/admin/css/style.min.css | 2 +- assets/admin/js/cooked-functions.js | 147 +++++++++++++++-------- assets/admin/js/cooked-functions.min.js | 2 +- includes/class.cooked-admin-enqueues.php | 6 +- languages/cooked.po | 58 +++++++++ languages/cooked.pot | 60 ++++++++- package-lock.json | 98 ++++++++------- vendor/composer/autoload_static.php | 4 +- 9 files changed, 277 insertions(+), 104 deletions(-) diff --git a/assets/admin/css/style.css b/assets/admin/css/style.css index 6c46942..5053e28 100644 --- a/assets/admin/css/style.css +++ b/assets/admin/css/style.css @@ -294,7 +294,7 @@ body .button.button-cooked-reset:hover { color:#555; } #cooked-ingredients-builder .cooked-ingredient-block > .cooked-heading-name { width:100%; } #cooked-ingredients-builder .cooked-ingredient-block > div small.cooked-input-ex { display:block; padding:5px 0 0 2px; } #cooked-ingredients-builder .cooked-ingredient-block { margin:0; } -#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag { cursor:move; color:#ccc; font-size:32px; position:absolute; top:5px; left:1px; } +#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag { cursor:move; color:#ccc; font-size:32px; position:absolute; top:5px; left:1px; touch-action:none; } #cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag { color:#888; } #cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper { background:#f5f5f5; box-shadow:0 10px 20px rgba(0,0,0,0.15); -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; } #cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder { visibility:visible !important; background:#eee; display:block; width:100%; height:43px; border-top:6px solid #fff; border-bottom:6px solid #fff; } @@ -329,7 +329,7 @@ body .button.button-cooked-reset:hover { color:#555; } #cooked-directions-builder .cooked-direction-block > .cooked-direction-content { width:100%; padding-left:120px; } #cooked-directions-builder .cooked-direction-block > .cooked-heading-name { width:100%; } #cooked-directions-builder .cooked-direction-block { margin:0; } -#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag { cursor:move; color:#ccc; font-size:32px; position:absolute; top:13px; left:1px; } +#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag { cursor:move; color:#ccc; font-size:32px; position:absolute; top:13px; left:1px; touch-action:none; } #cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag { top:5px; } #cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag { color:#888; } #cooked-directions-builder .cooked-direction-block.ui-sortable-helper { background:#f5f5f5; box-shadow:0 10px 20px rgba(0,0,0,0.15); -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; } diff --git a/assets/admin/css/style.min.css b/assets/admin/css/style.min.css index 3ccb375..adf1d0e 100644 --- a/assets/admin/css/style.min.css +++ b/assets/admin/css/style.min.css @@ -1 +1 @@ -.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress,#cooked-related-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text,#cooked-related-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed,#cooked-related-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active,#cooked-related-completed.cooked-active{display:block}.cooked-related-status{margin:0 0 12px 0;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;border-left:3px solid #00a878;background:#f0f9f6;color:#2d4a42;max-width:480px}#cooked-related-last-done.cooked-related-status{border-left-color:#8c9b99;background:#f6f8f7;color:#5c6b69}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file +.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress,#cooked-related-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text,#cooked-related-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed,#cooked-related-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active,#cooked-related-completed.cooked-active{display:block}.cooked-related-status{margin:0 0 12px 0;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;border-left:3px solid #00a878;background:#f0f9f6;color:#2d4a42;max-width:480px}#cooked-related-last-done.cooked-related-status{border-left-color:#8c9b99;background:#f6f8f7;color:#5c6b69}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px;touch-action:none}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px;touch-action:none}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index 2a588b0..f8e3835 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -1,9 +1,47 @@ var $_CookedConditionalTimeout = false; +// Touch event support for sortable drag handles on mobile devices +var cookedSortableTouchHandler = function(event) { + var target = event.target; + + // Only handle touches on drag handles within cooked sortable containers + var dragHandle = target.closest('.cooked-icon-drag'); + if (!dragHandle || !dragHandle.closest('.cooked-sortable')) { + return; // Let the event proceed normally (allows scrolling) + } + + var touch = event.changedTouches[0]; + var types = { + touchstart: "mousedown", + touchmove: "mousemove", + touchend: "mouseup" + }; + + // Prevent default to stop page scrolling when dragging + event.preventDefault(); + + var simulatedEvent = new MouseEvent(types[event.type], { + bubbles: true, + cancelable: true, + view: window, + detail: 1, + screenX: touch.screenX, + screenY: touch.screenY, + clientX: touch.clientX, + clientY: touch.clientY, + ctrlKey: false, + altKey: false, + shiftKey: false, + metaKey: false, + button: 0, + relatedTarget: null + }); + touch.target.dispatchEvent(simulatedEvent); +}; + (function( $ ) { $(document).ready(function() { - var $_CookedColorPickers = $('.cooked-color-field'), $_CookedSelectFields = $('#cooked_recipe_settings').find('select'), $_CookedRecipeTabs = $('#cooked-recipe-tabs'), @@ -30,40 +68,47 @@ var $_CookedConditionalTimeout = false; // Cooked Sortables if ($_CookedSortable.length) { - if ($_CookedSortable.find('.cooked-icon-drag')) { + document.addEventListener("touchstart", cookedSortableTouchHandler, { passive: false }); + document.addEventListener("touchmove", cookedSortableTouchHandler, { passive: false }); + document.addEventListener("touchend", cookedSortableTouchHandler, { passive: false }); + + if ($_CookedSortable.find('.cooked-icon-drag').length) { $_CookedSortable.sortable({ + handle: '.cooked-icon-drag', stop: function(event, ui) { let textarea = ui.item.find('textarea'); - let textareaName = textarea.attr('name'); - let fieldID = textarea.attr('id'); - - wp.editor.remove(fieldID); - wp.editor.initialize(fieldID, { - tinymce: { - wpautop: false, - toolbar1: 'bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen', - toolbar2: '', - toolbar3: '', - toolbar4: '', - height: 100, - textarea_name: textareaName, - plugins: 'link lists fullscreen wordpress wplink', - setup: function(editor) { - // @TODO: Inline Link editor does not work. - // editor.on('init', function() { - // if (typeof wpLink !== 'undefined') { - // editor.addCommand('WP_Link', function() { - // window.wpActiveEditor = editor.id; - // wpLink.open(editor.id); - // return false; - // }); - // } - // }); - } - }, - quicktags: true, - mediaButtons: false - }); + if (textarea.length) { + let textareaName = textarea.attr('name'); + let fieldID = textarea.attr('id'); + + wp.editor.remove(fieldID); + wp.editor.initialize(fieldID, { + tinymce: { + wpautop: false, + toolbar1: 'bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen', + toolbar2: '', + toolbar3: '', + toolbar4: '', + height: 100, + textarea_name: textareaName, + plugins: 'link lists fullscreen wordpress wplink', + setup: function(editor) { + // @TODO: Inline Link editor does not work. + // editor.on('init', function() { + // if (typeof wpLink !== 'undefined') { + // editor.addCommand('WP_Link', function() { + // window.wpActiveEditor = editor.id; + // wpLink.open(editor.id); + // return false; + // }); + // } + // }); + } + }, + quicktags: true, + mediaButtons: false + }); + } } }); } else { @@ -90,7 +135,7 @@ var $_CookedConditionalTimeout = false; cooked_save_default_nonce = thisButton.data('nonce'), cooked_save_default_bulk_nonce = thisButton.data('bulk-nonce'), thisContainer = thisButton.parent(), - confirm_save = confirm(cooked_functions_js_vars.i18n_confirm_save_default_all), + confirm_save = confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all), recipe_editor_textarea = $( "#_recipe_settings_content" ), recipe_editor = tinymce.get('_recipe_settings_content'); @@ -104,7 +149,7 @@ var $_CookedConditionalTimeout = false; thisContainer.find('.button, .button-primary').addClass('disabled'); var ajax__save_default_new = $.post( - cooked_functions_js_vars.ajax_url, + cooked_admin_functions_js_vars.ajax_url, { action: 'cooked_save_default', 'default_content': recipe_editor_content, @@ -112,7 +157,7 @@ var $_CookedConditionalTimeout = false; }, function(result) { var ajax__save_default_all = $.post( - cooked_functions_js_vars.ajax_url, + cooked_admin_functions_js_vars.ajax_url, { action: 'cooked_get_recipe_ids', nonce: cooked_save_default_bulk_nonce @@ -152,14 +197,14 @@ var $_CookedConditionalTimeout = false; if (!thisButton.hasClass('disabled')) { thisContainer.find('.button, .button-primary').addClass('disabled'); var ajax__save_default_new = $.post( - cooked_functions_js_vars.ajax_url, + cooked_admin_functions_js_vars.ajax_url, { action: 'cooked_save_default', 'default_content': recipe_editor_content, nonce: nonce }, function(result) { - thisButton.text( cooked_functions_js_vars.i18n_saved ); + thisButton.text( cooked_admin_functions_js_vars.i18n_saved ); thisContainer.find('.button-primary').removeClass('disabled'); } ).fail(function(result) { @@ -175,14 +220,14 @@ var $_CookedConditionalTimeout = false; var thisButton = $(this), thisContainer = thisButton.parent(), - confirm_load = confirm( cooked_functions_js_vars.i18n_confirm_load_default ), + confirm_load = confirm( cooked_admin_functions_js_vars.i18n_confirm_load_default ), recipe_editor_textarea = $( "#_recipe_settings_content" ), recipe_editor = tinymce.get('_recipe_settings_content'); if (confirm_load && !thisButton.hasClass('disabled')) { thisContainer.find('.button, .button-primary').addClass('disabled'); var ajax__save_default_all = $.post( - cooked_functions_js_vars.ajax_url, + cooked_admin_functions_js_vars.ajax_url, { action: 'cooked_load_default' }, @@ -548,8 +593,8 @@ var $_CookedConditionalTimeout = false; // Sets up the media library frame direction_image_frame = wp.media.frames.direction_image_frame = wp.media({ - title: cooked_functions_js_vars.i18n_image_title, - button: { text: cooked_functions_js_vars.i18n_image_button }, + title: cooked_admin_functions_js_vars.i18n_image_title, + button: { text: cooked_admin_functions_js_vars.i18n_image_button }, library: { type: 'image' } }); @@ -561,7 +606,7 @@ var $_CookedConditionalTimeout = false; // Sends the attachment URL to our custom image input field. $('#direction-'+directionID+'-image-src').attr('src',media_attachment.sizes.thumbnail.url).parent().addClass('cooked-has-image'); $('input[name="_recipe_settings[directions]['+directionID+'][image]"]').val( media_attachment.id ); - $('.direction-image-button[data-id="'+directionID+'"]').prop( 'value', cooked_functions_js_vars.i18n_image_change ); + $('.direction-image-button[data-id="'+directionID+'"]').prop( 'value', cooked_admin_functions_js_vars.i18n_image_change ); }); // Opens the media library frame. @@ -587,8 +632,8 @@ var $_CookedConditionalTimeout = false; // Sets up the media library frame gallery_images_frame = wp.media.frames.gallery_images_frame = wp.media({ - title: cooked_functions_js_vars.i18n_gallery_image_title, - button: { text: cooked_functions_js_vars.i18n_gallery_image_title }, + title: cooked_admin_functions_js_vars.i18n_gallery_image_title, + button: { text: cooked_admin_functions_js_vars.i18n_gallery_image_title }, library: { type: 'image' }, multiple: true }); @@ -627,8 +672,8 @@ var $_CookedConditionalTimeout = false; // Sets up the media library frame var image_edit_frame = wp.media.frames.gallery_images_frame = wp.media({ - title: cooked_functions_js_vars.i18n_edit_image_title, - button: { text: cooked_functions_js_vars.i18n_edit_image_button }, + title: cooked_admin_functions_js_vars.i18n_edit_image_title, + button: { text: cooked_admin_functions_js_vars.i18n_edit_image_button }, library: { type: 'image' }, multiple: false }); @@ -668,7 +713,7 @@ var $_CookedConditionalTimeout = false; if ( directionID ) { $('#direction-'+directionID+'-image-src').parent().removeClass('cooked-has-image').prop('src',false); $('input[name="_recipe_settings[directions]['+directionID+'][image]"]').val(''); - $('.direction-image-button[data-id="'+directionID+'"]').prop( 'value',cooked_functions_js_vars.i18n_image_title ); + $('.direction-image-button[data-id="'+directionID+'"]').prop( 'value',cooked_admin_functions_js_vars.i18n_image_title ); } else { thisButton.parent().remove(); } @@ -716,7 +761,7 @@ function cooked_set_default_template(recipe_ids, total_recipes, content, nonce, } var ajax__bulk_save_default_template = jQuery.post( - cooked_functions_js_vars.ajax_url, + cooked_admin_functions_js_vars.ajax_url, { action: 'cooked_save_default_bulk', recipe_ids: recipe_ids, @@ -735,7 +780,7 @@ function cooked_set_default_template(recipe_ids, total_recipes, content, nonce, progress_text.text(cooked_recipe_update_counter + " / " + total_recipes); cooked_set_default_template(new_recipe_ids, total_recipes, content, nonce, instance); } else { - jQuery('.cooked-save-default-all').text(cooked_functions_js_vars.i18n_applied); + jQuery('.cooked-save-default-all').text(cooked_admin_functions_js_vars.i18n_applied); progress_bar.css({ "width" : "100%" }); progress.removeClass('cooked-active'); progress_text.removeClass('cooked-active').text(""); @@ -880,7 +925,7 @@ function cooked_reset_direction_builder() { var fieldID = 'direction-' + randomKeyForInterval + '-' + directionPartName; thisField.attr('id', fieldID); - if (directionPartName === 'content' && thisField.is('textarea') && cooked_functions_js_vars.wp_editor_roles_allowed) { + if (directionPartName === 'content' && thisField.is('textarea') && cooked_admin_functions_js_vars.wp_editor_roles_allowed) { // Init the WordPress Editor. wp.editor.initialize(fieldID, { tinymce: { @@ -989,4 +1034,4 @@ function cooked_init_conditional_field(thisID) { }, 25); }); -} \ No newline at end of file +} diff --git a/assets/admin/js/cooked-functions.min.js b/assets/admin/js/cooked-functions.min.js index bc6abd7..a689b49 100644 --- a/assets/admin/js/cooked-functions.min.js +++ b/assets/admin/js/cooked-functions.min.js @@ -1 +1 @@ -var $_CookedConditionalTimeout=!1,cooked_recipe_update_counter=((p=>{p(document).ready(function(){var r,o,t,e,i,n,a,d,c,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&($_CookedSortable.find(".cooked-icon-drag")?$_CookedSortable.sortable({stop:function(e,t){var t=t.item.find("textarea"),o=t.attr("name"),t=t.attr("id");wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1})}}):$_CookedSortable.sortable()),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(c,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),r=tinymce.get("_recipe_settings_content");o=null===r?d.val():r.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,c)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
    ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(r=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault(),p(this).parent().removeClass("cooked-has-image"),p(this).parent().find("img").remove(),p(this).parent().find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_functions_js_vars.i18n_image_title,button:{text:cooked_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),c||(c=wp.media.frames.gallery_images_frame=wp.media({title:cooked_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=c.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),c.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_functions_js_vars.i18n_edit_image_title,button:{text:cooked_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,r,c,s;0{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable()),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
    ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault(),p(this).parent().removeClass("cooked-has-image"),p(this).parent().find("img").remove(),p(this).parent().find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0=8.0.0" } @@ -129,6 +130,7 @@ "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=14" }, @@ -142,6 +144,7 @@ "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@opentelemetry/semantic-conventions": "1.28.0" }, @@ -168,6 +171,7 @@ "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", @@ -598,6 +602,7 @@ "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/semantic-conventions": "1.28.0" @@ -625,6 +630,7 @@ "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@opentelemetry/core": "1.30.1", "@opentelemetry/resources": "1.30.1", @@ -653,6 +659,7 @@ "integrity": "sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=14" } @@ -1009,13 +1016,14 @@ } }, "node_modules/@playwright/test": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.1.tgz", - "integrity": "sha512-6LdVIUERWxQMmUSSQi0I53GgCBYgM2RpGngCPY7hSeju+VrKjq3lvs7HpJoPbDiY5QM5EYRtRX5fvrinnMAz3w==", + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz", + "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { - "playwright": "1.58.1" + "playwright": "1.58.2" }, "bin": { "playwright": "cli.js" @@ -1038,9 +1046,9 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.2.tgz", - "integrity": "sha512-GBY0+2lI9fDrjgb5dFL9+enKXqyOPok9PXg/69NVkjW3bikbK9RQrNrI3qccQXmDNN7ln4j/yL89Qgvj/tfqrw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.12.0.tgz", + "integrity": "sha512-Xuq42yxcQJ54ti8ZHNzF5snFvtpgXzNToJ1bXUGQRaiO8t+B6UM8sTUJfvV+AJnqtkJU/7hdy6nbKyA12aHtRw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1222,11 +1230,12 @@ } }, "node_modules/@types/node": { - "version": "20.19.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.31.tgz", - "integrity": "sha512-5jsi0wpncvTD33Sh1UCgacK37FFwDn+EG7wCmEvs62fCvBL+n8/76cAYDok21NF6+jaVWIqKwCZyX7Vbu8eB3A==", + "version": "20.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz", + "integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -1309,6 +1318,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1488,9 +1498,9 @@ } }, "node_modules/atomically": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.0.tgz", - "integrity": "sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.1.tgz", + "integrity": "sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1551,6 +1561,7 @@ "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "peerDependencies": { "bare-abort-controller": "*" }, @@ -1862,9 +1873,9 @@ } }, "node_modules/chromium-bidi": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-13.0.1.tgz", - "integrity": "sha512-c+RLxH0Vg2x2syS9wPw378oJgiJNXtYXUvnVAldUlt5uaHekn0CCU7gPksNgHjrH1qFhmjVXQj4esvuthuC7OQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-13.1.1.tgz", + "integrity": "sha512-zB9MpoPd7VJwjowQqiW3FKOvQwffFMjQ8Iejp5ZW+sJaKLRhZX1sTxzl3Zt22TDB4zP0OOqs8lRoY7eAW5geyQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2089,7 +2100,8 @@ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz", "integrity": "sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==", "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/dot-case": { "version": "3.0.4", @@ -3905,13 +3917,13 @@ } }, "node_modules/playwright": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.1.tgz", - "integrity": "sha512-+2uTZHxSCcxjvGc5C891LrS1/NlxglGxzrC4seZiVjcYVQfUa87wBL6rTDqzGjuoWNjnBzRqKmF6zRYGMvQUaQ==", + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz", + "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.58.1" + "playwright-core": "1.58.2" }, "bin": { "playwright": "cli.js" @@ -3924,9 +3936,9 @@ } }, "node_modules/playwright-core": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.1.tgz", - "integrity": "sha512-bcWzOaTxcW+VOOGBCQgnaKToLJ65d6AqfLVKEWvexyS3AS6rbXl+xdpYRMGSRBClPvyj44njOWoxjNdL/H9UNg==", + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", + "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4079,16 +4091,16 @@ } }, "node_modules/puppeteer-core": { - "version": "24.36.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.36.1.tgz", - "integrity": "sha512-L7ykMWc3lQf3HS7ME3PSjp7wMIjJeW6+bKfH/RSTz5l6VUDGubnrC2BKj3UvM28Y5PMDFW0xniJOZHBZPpW1dQ==", + "version": "24.37.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.2.tgz", + "integrity": "sha512-nN8qwE3TGF2vA/+xemPxbesntTuqD9vCGOiZL2uh8HES3pPzLX20MyQjB42dH2rhQ3W3TljZ4ZaKZ0yX/abQuw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.11.2", - "chromium-bidi": "13.0.1", + "@puppeteer/browsers": "2.12.0", + "chromium-bidi": "13.1.1", "debug": "^4.4.3", - "devtools-protocol": "0.0.1551306", + "devtools-protocol": "0.0.1566079", "typed-query-selector": "^2.12.0", "webdriver-bidi-protocol": "0.4.0", "ws": "^8.19.0" @@ -4098,9 +4110,9 @@ } }, "node_modules/puppeteer-core/node_modules/devtools-protocol": { - "version": "0.0.1551306", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1551306.tgz", - "integrity": "sha512-CFx8QdSim8iIv+2ZcEOclBKTQY6BI1IEDa7Tm9YkwAXzEWFndTEzpTo5jAUhSnq24IC7xaDw0wvGcm96+Y3PEg==", + "version": "0.0.1566079", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1566079.tgz", + "integrity": "sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ==", "dev": true, "license": "BSD-3-Clause" }, @@ -4368,9 +4380,9 @@ } }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -4705,20 +4717,20 @@ } }, "node_modules/tldts-core": { - "version": "7.0.22", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.22.tgz", - "integrity": "sha512-KgbTDC5wzlL6j/x6np6wCnDSMUq4kucHNm00KXPbfNzmllCmtmvtykJHfmgdHntwIeupW04y8s1N/43S1PkQDw==", + "version": "7.0.23", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.23.tgz", + "integrity": "sha512-0g9vrtDQLrNIiCj22HSe9d4mLVG3g5ph5DZ8zCKBr4OtrspmNB6ss7hVyzArAeE88ceZocIEGkyW1Ime7fxPtQ==", "dev": true, "license": "MIT" }, "node_modules/tldts-icann": { - "version": "7.0.22", - "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.22.tgz", - "integrity": "sha512-Wb5HEhrSy+zJtdJ6gop7ZNQ/Iacz/0c8t+6Kp1QoT84VRfc0TfPJLrb8f6YuRvCUOVjU889KJlPcG+5glVX8GQ==", + "version": "7.0.23", + "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.23.tgz", + "integrity": "sha512-LMc6V1KOHFjKDU8wyDsIEJdV8o2bpc2OaYw2NxncJB2oZxJMPpiNVAbiu1HnqsUy81fkK1QWwFztVqY81hUFEg==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.0.22" + "tldts-core": "^7.0.23" } }, "node_modules/to-regex-range": { diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 1c93e2b..eabea43 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -7,14 +7,14 @@ class ComposerStaticInit67a35766b07094746ef209d583ffb1f5 { public static $prefixLengthsPsr4 = array ( - 'N' => + 'N' => array ( 'NXP\\' => 4, ), ); public static $prefixDirsPsr4 = array ( - 'NXP\\' => + 'NXP\\' => array ( 0 => __DIR__ . '/..' . '/nxp/math-executor/src/NXP', ), From eb2619a29f8ccb85bd26161e64f49a07dfd52c58 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Mon, 9 Feb 2026 10:48:38 -0500 Subject: [PATCH 15/31] Added Cooked CLI Commands for Tools --- composer.lock | 2 +- cooked.php | 4 +- includes/class.cooked-cli.php | 85 ++++++++++++++++++++++ includes/class.cooked-updates.php | 117 +++++++++++++++++++++++++++++- 4 files changed, 203 insertions(+), 5 deletions(-) create mode 100644 includes/class.cooked-cli.php diff --git a/composer.lock b/composer.lock index db100fe..734c712 100644 --- a/composer.lock +++ b/composer.lock @@ -76,5 +76,5 @@ "platform-dev": { "php": "^7 || ^8" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/cooked.php b/cooked.php index a755964..dda414a 100644 --- a/cooked.php +++ b/cooked.php @@ -6,7 +6,6 @@ Description: A recipe plugin for WordPress. Author: Gora Tech Author URI: https://goratech.dev -Version: 1.12.0 Version: 1.13.0 Text Domain: cooked Domain Path: languages @@ -31,8 +30,6 @@ require_once __DIR__ . '/vendor/autoload.php'; -define( 'COOKED_VERSION', '1.12.0' ); -define( 'COOKED_DEV', false ); define( 'COOKED_VERSION', '1.13.0' ); if ( ! class_exists( 'Cooked_Plugin' ) ) : @@ -486,6 +483,7 @@ private function includes() { require_once COOKED_DIR . 'includes/class.cooked-elementor.php'; require_once COOKED_DIR . 'includes/class.cooked-plugin-extra.php'; require_once COOKED_DIR . 'includes/class.cooked-multilingual.php'; + } /** diff --git a/includes/class.cooked-cli.php b/includes/class.cooked-cli.php new file mode 100644 index 0000000..26b3bf2 --- /dev/null +++ b/includes/class.cooked-cli.php @@ -0,0 +1,85 @@ + + * : The tool to run. Use `wp cooked tools list` to see available tools. + * + * ## EXAMPLES + * + * wp cooked tools run remove_recipes_from_cooked_user_meta + * wp cooked tools run update_rewrite_rules + * + * @param array $args Positional args. 0 = tool name. + * @param array $assoc_args Associative args. + */ + public function run( $args, $assoc_args ) { + if ( empty( $args[0] ) ) { + \WP_CLI::error( __( 'Please provide a tool name. Use `wp cooked tools list` to see available tools.', 'cooked' ) ); + } + + $tool_name = $args[0]; + $result = Cooked_Updates::run_tool( $tool_name ); + + if ( is_wp_error( $result ) ) { + \WP_CLI::error( $result->get_error_message() ); + } + + \WP_CLI::success( __( 'Tool completed successfully.', 'cooked' ) ); + } + + /** + * List available Cooked tools that can be run on demand. + * + * ## EXAMPLES + * + * wp cooked tools list + * + * @param array $args Positional args. + * @param array $assoc_args Associative args. + */ + public function list_tools( $args, $assoc_args ) { + $tools = Cooked_Updates::get_runnable_tools(); + + if ( empty( $tools ) ) { + \WP_CLI::log( __( 'No tools available.', 'cooked' ) ); + return; + } + + $rows = []; + foreach ( $tools as $tool ) { + $rows[] = [ + 'id' => $tool['id'], + 'name' => $tool['name'], + 'description' => $tool['description'], + ]; + } + + \WP_CLI\Utils\format_items( 'table', $rows, [ 'id', 'name', 'description' ] ); + } +} + +\WP_CLI::add_command( 'cooked tools', 'Cooked_CLI_Tools_Command' ); diff --git a/includes/class.cooked-updates.php b/includes/class.cooked-updates.php index 8dc02f9..5bd9ae4 100644 --- a/includes/class.cooked-updates.php +++ b/includes/class.cooked-updates.php @@ -139,6 +139,85 @@ private static function run_version_updates() { } } + /** + * Get list of tools that can be run on demand (for Tools page and WP-CLI). + * + * @return array[] List of tools: [ 'id' => method_name, 'name' => label, 'description' => desc ] + */ + public static function get_runnable_tools() { + $labels = [ + 'update_rewrite_rules' => [ + 'name' => __( 'Flush rewrite rules', 'cooked' ), + 'description' => __( 'Refreshes permalink rules for recipe and profile URLs.', 'cooked' ), + ], + 'fix_recipe_line_endings' => [ + 'name' => __( 'Fix recipe line endings', 'cooked' ), + 'description' => __( 'Normalizes line endings in recipe content for exporter/importer compatibility.', 'cooked' ), + ], + 'purge_legacy_related_recipes_cache' => [ + 'name' => __( 'Purge legacy related recipes cache', 'cooked' ), + 'description' => __( 'Removes old transients and options from the previous related-recipes cache.', 'cooked' ), + ], + 'remove_recipes_from_cooked_user_meta' => [ + 'name' => __( 'Remove recipes from user meta', 'cooked' ), + 'description' => __( 'Removes the legacy "recipes" key from all users\' cooked_user_meta.', 'cooked' ), + ], + ]; + + $updates = self::get_version_updates(); + $method_names = []; + foreach ( $updates as $methods ) { + foreach ( $methods as $method ) { + $method_names[ $method ] = true; + } + } + $method_names = array_keys( $method_names ); + + $tools = []; + foreach ( $method_names as $method ) { + $tools[] = [ + 'id' => $method, + 'name' => isset( $labels[ $method ]['name'] ) ? $labels[ $method ]['name'] : $method, + 'description' => isset( $labels[ $method ]['description'] ) ? $labels[ $method ]['description'] : '', + ]; + } + return $tools; + } + + /** + * Run a single migration/tool by name (on demand). Used by Tools page and WP-CLI. + * + * @param string $tool_name Method name (must exist in get_version_updates). + * @return true|WP_Error True on success, WP_Error on failure. + */ + public static function run_tool( $tool_name ) { + $tool_name = is_string( $tool_name ) ? trim( $tool_name ) : ''; + if ( $tool_name === '' ) { + return new \WP_Error( 'cooked_tool_empty', __( 'Tool name is required.', 'cooked' ) ); + } + + $updates = self::get_version_updates(); + $allowed = []; + foreach ( $updates as $methods ) { + foreach ( $methods as $method ) { + $allowed[ $method ] = true; + } + } + if ( ! isset( $allowed[ $tool_name ] ) ) { + return new \WP_Error( 'cooked_tool_invalid', sprintf( __( 'Unknown tool: %s.', 'cooked' ), $tool_name ) ); + } + if ( ! method_exists( __CLASS__, $tool_name ) ) { + return new \WP_Error( 'cooked_tool_missing', sprintf( __( 'Tool method %s does not exist.', 'cooked' ), $tool_name ) ); + } + + try { + call_user_func( [ __CLASS__, $tool_name ] ); + return true; + } catch ( \Exception $e ) { + return new \WP_Error( 'cooked_tool_error', $e->getMessage() ); + } + } + /** * Define version-specific updates * @@ -167,6 +246,7 @@ private static function get_version_updates() { ], '1.13.0' => [ 'purge_legacy_related_recipes_cache', + 'remove_recipes_from_cooked_user_meta', ], ]); } @@ -256,7 +336,7 @@ private static function fix_recipe_line_endings() { * Purge legacy related-recipes transients and options (cache and pre-calculation data). * One-time cleanup when moving to on-demand related recipes with no cache. * - * @since 1.12.0 + * @since 1.13.0 */ private static function purge_legacy_related_recipes_cache() { global $wpdb; @@ -268,6 +348,41 @@ private static function purge_legacy_related_recipes_cache() { error_log( 'Cooked: Purged legacy related-recipes cache and options.' ); } + /** + * Remove legacy 'recipes' key from cooked_user_meta for all users. + * Recipes are computed on demand in Cooked_Users::get(); they must not be stored in user meta. + * + * @since 1.13.0 + */ + private static function remove_recipes_from_cooked_user_meta() { + $user_ids = get_users( [ + 'meta_key' => 'cooked_user_meta', + 'fields' => 'ID', + ] ); + + if ( empty( $user_ids ) ) { + return; + } + + $updated_count = 0; + + foreach ( $user_ids as $user_id ) { + $meta = get_user_meta( $user_id, 'cooked_user_meta', true ); + + if ( ! is_array( $meta ) || ! isset( $meta['recipes'] ) ) { + continue; + } + + unset( $meta['recipes'] ); + update_user_meta( $user_id, 'cooked_user_meta', $meta ); + $updated_count++; + } + + if ( $updated_count > 0 ) { + error_log( sprintf( 'Cooked: Removed legacy recipes key from %d user(s) cooked_user_meta.', $updated_count ) ); + } + } + /** * Update rewrite rules if needed * From 4961e61fe825e122fd1384e6057ddf84c4713601 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Wed, 11 Feb 2026 11:47:55 -0500 Subject: [PATCH 16/31] General CSS Improvements / Bugs #118 - Fixed when toggling full screen view in recipe instructions, sidebar is floating above content window and therefore causing unable to edit the content. - Fixed bug when changing image under recipe instructions steps and the image thumbnail is not updated with the replaced photo after clicking "Use this image". - Fixed CSS in numbering with recipes with 10+ instructions steps. - Added recipe instruction steps counter in the editing view. --- assets/admin/css/style.css | 9 + assets/admin/css/style.min.css | 2 +- assets/admin/js/cooked-functions.js | 40 +++- assets/admin/js/cooked-functions.min.js | 2 +- cooked.php | 3 + includes/class.cooked-recipe-meta.php | 11 +- languages/cooked.po | 230 +++++++++++------------ languages/cooked.pot | 232 ++++++++++++------------ 8 files changed, 284 insertions(+), 245 deletions(-) diff --git a/assets/admin/css/style.css b/assets/admin/css/style.css index 5053e28..f96e3e6 100644 --- a/assets/admin/css/style.css +++ b/assets/admin/css/style.css @@ -30,6 +30,11 @@ td.column-featured_image { width:50px; text-align:center; } body.post-type-cp_recipe #titlediv #title { box-shadow:none; -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; padding:0 12px; font-weight:400; font-size:19px; letter-spacing:0; height:44px; } body.post-type-cp_recipe #titlediv #title-prompt-text { font-size:15px; color:#888; font-weight:400; letter-spacing:0; padding:12px 15px; } +/* TinyMCE fullscreen above admin menu and Cooked sticky UI */ +body.post-type-cp_recipe .mce-fullscreen { + z-index: 100100 !important; +} + #cooked-settings-prewrap { display:flex; justify-content:center; } #cooked-settings-wrap { position: relative; @@ -327,6 +332,10 @@ body .button.button-cooked-reset:hover { color:#555; } #cooked-directions-builder .cooked-direction-block > .cooked-direction-image.cooked-has-image img { width:100%; height:auto; display:block; margin:15px 0 0; } #cooked-directions-builder .cooked-direction-block > .cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder { display:none; } #cooked-directions-builder .cooked-direction-block > .cooked-direction-content { width:100%; padding-left:120px; } +#cooked-directions-builder .cooked-direction-block .cooked-direction-number { opacity:0.4; position:absolute; display:inline-block; font-weight:800; top:17px; left:35px; font-size:1.25rem; line-height:1; } +#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number > .cooked-direction-image { left: 65px; } +#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number > .cooked-direction-content { padding-left:175px; } +#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number-wide > .cooked-direction-content { padding-left:185px; } #cooked-directions-builder .cooked-direction-block > .cooked-heading-name { width:100%; } #cooked-directions-builder .cooked-direction-block { margin:0; } #cooked-directions-builder .cooked-direction-block i.cooked-icon-drag { cursor:move; color:#ccc; font-size:32px; position:absolute; top:13px; left:1px; touch-action:none; } diff --git a/assets/admin/css/style.min.css b/assets/admin/css/style.min.css index adf1d0e..e0f4693 100644 --- a/assets/admin/css/style.min.css +++ b/assets/admin/css/style.min.css @@ -1 +1 @@ -.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress,#cooked-related-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text,#cooked-related-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed,#cooked-related-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active,#cooked-related-completed.cooked-active{display:block}.cooked-related-status{margin:0 0 12px 0;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;border-left:3px solid #00a878;background:#f0f9f6;color:#2d4a42;max-width:480px}#cooked-related-last-done.cooked-related-status{border-left-color:#8c9b99;background:#f6f8f7;color:#5c6b69}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px;touch-action:none}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px;touch-action:none}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file +.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}body.post-type-cp_recipe .mce-fullscreen{z-index:100100!important}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress,#cooked-related-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text,#cooked-related-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed,#cooked-related-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active,#cooked-related-completed.cooked-active{display:block}.cooked-related-status{margin:0 0 12px 0;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;border-left:3px solid #00a878;background:#f0f9f6;color:#2d4a42;max-width:480px}#cooked-related-last-done.cooked-related-status{border-left-color:#8c9b99;background:#f6f8f7;color:#5c6b69}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px;touch-action:none}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block .cooked-direction-number{opacity:.4;position:absolute;display:inline-block;font-weight:800;top:17px;left:35px;font-size:1.25rem;line-height:1}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number>.cooked-direction-image{left:65px}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number>.cooked-direction-content{padding-left:175px}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number-wide>.cooked-direction-content{padding-left:185px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px;touch-action:none}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index f8e3835..a9e3fdd 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -76,6 +76,11 @@ var cookedSortableTouchHandler = function(event) { $_CookedSortable.sortable({ handle: '.cooked-icon-drag', stop: function(event, ui) { + // Update direction step numbers when reordering directions + if (ui.item.closest('#cooked-directions-builder').length) { + cooked_reset_direction_builder(); + } + let textarea = ui.item.find('textarea'); if (textarea.length) { let textareaName = textarea.attr('name'); @@ -562,9 +567,10 @@ var cookedSortableTouchHandler = function(event) { $_CookedDirectionBuilder.parent().on('click', '.remove-image-button', function(e) { e.preventDefault(); - $(this).parent().removeClass('cooked-has-image'); - $(this).parent().find('img').remove(); - $(this).parent().find('input[data-direction-part="image"]').val(''); + var $parent = $(this).parent(); + $parent.removeClass('cooked-has-image'); + $parent.find('img').attr('src', '').removeAttr('srcset').removeAttr('sizes'); + $parent.find('input[data-direction-part="image"]').val(''); cooked_reset_direction_builder(); }); @@ -578,8 +584,7 @@ var cookedSortableTouchHandler = function(event) { }); // Runs when the image button is clicked. - $('body').on('click', '.direction-image-button',function(e) { - + $('body').on('click', '.direction-image-button', function(e) { var thisButton = $(this); directionID = thisButton.data('id'); @@ -604,9 +609,14 @@ var cookedSortableTouchHandler = function(event) { var media_attachment = direction_image_frame.state().get('selection').first().toJSON(); // Sends the attachment URL to our custom image input field. - $('#direction-'+directionID+'-image-src').attr('src',media_attachment.sizes.thumbnail.url).parent().addClass('cooked-has-image'); - $('input[name="_recipe_settings[directions]['+directionID+'][image]"]').val( media_attachment.id ); - $('.direction-image-button[data-id="'+directionID+'"]').prop( 'value', cooked_admin_functions_js_vars.i18n_image_change ); + // Remove srcset/sizes so the UI updates when an image was previously loaded (WP outputs srcset on edit). + var $directionImg = $('#direction-' + directionID + '-image-src'); + $directionImg.attr('src', media_attachment.sizes.thumbnail.url) + .removeAttr('srcset') + .removeAttr('sizes') + .parent().addClass('cooked-has-image'); + $('input[name="_recipe_settings[directions][' + directionID + '][image]"]').val( media_attachment.id ); + $('.direction-image-button[data-id="' + directionID + '"]').prop( 'value', cooked_admin_functions_js_vars.i18n_image_change ); }); // Opens the media library frame. @@ -958,6 +968,20 @@ function cooked_reset_direction_builder() { }); }); + // Update step numbers for direction blocks (skip section headings). + var stepNum = 0; + jQuery('#cooked-directions-builder').find('.cooked-direction-block').each(function() { + var $_block = jQuery(this); + if ( !$_block.hasClass('cooked-direction-heading') ) { + stepNum++; + $_block.find('.cooked-direction-number').text(stepNum); + $_block.toggleClass('cooked-direction-has-number-wide', stepNum > 9); + $_block.addClass('cooked-direction-has-number'); + } else { + $_block.removeClass('cooked-direction-has-number cooked-direction-has-number-wide'); + } + }); + if ( total_blocks ) { jQuery('#cooked-directions-builder').css( { 'margin-bottom': '20px' } ); } else { diff --git a/assets/admin/js/cooked-functions.min.js b/assets/admin/js/cooked-functions.min.js index a689b49..eff05b2 100644 --- a/assets/admin/js/cooked-functions.min.js +++ b/assets/admin/js/cooked-functions.min.js @@ -1 +1 @@ -var $_CookedConditionalTimeout=!1,cookedSortableTouchHandler=function(e){var t=e.target.closest(".cooked-icon-drag");t&&t.closest(".cooked-sortable")&&(t=e.changedTouches[0],e.preventDefault(),e=new MouseEvent({touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"}[e.type],{bubbles:!0,cancelable:!0,view:window,detail:1,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null}),t.target.dispatchEvent(e))},cooked_recipe_update_counter=((p=>{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable()),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
    ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault(),p(this).parent().removeClass("cooked-has-image"),p(this).parent().find("img").remove(),p(this).parent().find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable()),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
    ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0 - $value): ?> + $value): ?> - 'cooked-direction-img', 'data-id' => esc_attr($dir_key), @@ -751,8 +751,9 @@ function cooked_render_recipe_fields( $post_id ) { $image_thumb = false; } ?> -
    +
    +
    @@ -806,8 +807,9 @@ function cooked_render_recipe_fields( $post_id ) { $random_key = wp_rand( 1000000, 9999999 ); ?> -
    +
    + 1
    @@ -848,6 +850,7 @@ function cooked_render_recipe_fields( $post_id ) {
    +
    diff --git a/languages/cooked.po b/languages/cooked.po index d44739c..dc4a1c7 100644 --- a/languages/cooked.po +++ b/languages/cooked.po @@ -41,14 +41,14 @@ msgid "remaining" msgstr "" #: includes/class.cooked-admin-enqueues.php:138 -#: includes/class.cooked-recipe-meta.php:758 -#: includes/class.cooked-recipe-meta.php:813 -#: includes/class.cooked-recipe-meta.php:853 +#: includes/class.cooked-recipe-meta.php:759 +#: includes/class.cooked-recipe-meta.php:815 +#: includes/class.cooked-recipe-meta.php:856 msgid "Add Image" msgstr "" #: includes/class.cooked-admin-enqueues.php:139 -#: includes/class.cooked-recipe-meta.php:758 +#: includes/class.cooked-recipe-meta.php:759 msgid "Change Image" msgstr "" @@ -57,7 +57,7 @@ msgid "Use this Image" msgstr "" #: includes/class.cooked-admin-enqueues.php:141 -#: includes/class.cooked-recipe-meta.php:1085 +#: includes/class.cooked-recipe-meta.php:1088 msgid "Add to Gallery" msgstr "" @@ -147,7 +147,7 @@ msgstr "" #: includes/class.cooked-functions.php:134 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:263 -#: includes/class.cooked-recipe-meta.php:1163 +#: includes/class.cooked-recipe-meta.php:1166 #: includes/class.cooked-recipes.php:635 #: templates/front/recipe.php:34 msgid "Ingredients" @@ -157,14 +157,14 @@ msgstr "" #: includes/class.cooked-functions.php:135 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:269 -#: includes/class.cooked-recipe-meta.php:1194 +#: includes/class.cooked-recipe-meta.php:1197 #: includes/class.cooked-recipes.php:639 #: templates/front/recipe.php:35 msgid "Directions" msgstr "" #: includes/class.cooked-enqueues.php:56 -#: includes/class.cooked-recipe-meta.php:1409 +#: includes/class.cooked-recipe-meta.php:1412 msgid "Timer" msgstr "" @@ -192,7 +192,7 @@ msgid "Information" msgstr "" #: includes/class.cooked-functions.php:132 -#: includes/class.cooked-recipe-meta.php:1354 +#: includes/class.cooked-recipe-meta.php:1357 #: includes/class.cooked-settings.php:231 msgid "Excerpt" msgstr "" @@ -202,7 +202,7 @@ msgid "Images" msgstr "" #: includes/class.cooked-functions.php:136 -#: includes/class.cooked-recipe-meta.php:1378 +#: includes/class.cooked-recipe-meta.php:1381 #: includes/class.cooked-recipes.php:642 #: includes/class.cooked-settings.php:232 #: includes/class.cooked-shortcodes.php:775 @@ -921,7 +921,7 @@ msgid "Layout" msgstr "" #: includes/class.cooked-recipe-meta.php:281 -#: includes/class.cooked-recipe-meta.php:1275 +#: includes/class.cooked-recipe-meta.php:1278 msgid "Gallery" msgstr "" @@ -997,7 +997,7 @@ msgid "Difficulty Level" msgstr "" #: includes/class.cooked-recipe-meta.php:431 -#: includes/class.cooked-recipe-meta.php:1137 +#: includes/class.cooked-recipe-meta.php:1140 #: includes/class.cooked-settings.php:233 #: includes/class.cooked-shortcodes.php:449 #: includes/class.cooked-shortcodes.php:671 @@ -1011,7 +1011,7 @@ msgid "minutes" msgstr "" #: includes/class.cooked-recipe-meta.php:436 -#: includes/class.cooked-recipe-meta.php:1138 +#: includes/class.cooked-recipe-meta.php:1141 #: includes/class.cooked-settings.php:234 #: includes/class.cooked-shortcodes.php:450 #: includes/class.cooked-shortcodes.php:680 @@ -1019,7 +1019,7 @@ msgid "Cook Time" msgstr "" #: includes/class.cooked-recipe-meta.php:441 -#: includes/class.cooked-recipe-meta.php:1139 +#: includes/class.cooked-recipe-meta.php:1142 #: includes/class.cooked-settings.php:235 #: includes/class.cooked-shortcodes.php:451 #: includes/class.cooked-shortcodes.php:691 @@ -1055,8 +1055,8 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:547 #: includes/class.cooked-recipe-meta.php:702 -#: includes/class.cooked-recipe-meta.php:774 -#: includes/class.cooked-recipe-meta.php:866 +#: includes/class.cooked-recipe-meta.php:775 +#: includes/class.cooked-recipe-meta.php:869 msgid "Section Heading" msgstr "" @@ -1065,122 +1065,122 @@ msgid "Add Ingredient" msgstr "" #: includes/class.cooked-recipe-meta.php:643 -#: includes/class.cooked-recipe-meta.php:845 +#: includes/class.cooked-recipe-meta.php:847 msgid "Add Section Heading" msgstr "" -#: includes/class.cooked-recipe-meta.php:844 +#: includes/class.cooked-recipe-meta.php:846 msgid "Add Direction" msgstr "" -#: includes/class.cooked-recipe-meta.php:901 +#: includes/class.cooked-recipe-meta.php:904 msgid "Nutrition Information" msgstr "" -#: includes/class.cooked-recipe-meta.php:939 +#: includes/class.cooked-recipe-meta.php:942 #: includes/class.cooked-shortcodes.php:1062 msgid "Nutrition Facts" msgstr "" -#: includes/class.cooked-recipe-meta.php:957 +#: includes/class.cooked-recipe-meta.php:960 #: includes/class.cooked-shortcodes.php:1030 msgid "Amount per serving" msgstr "" -#: includes/class.cooked-recipe-meta.php:967 +#: includes/class.cooked-recipe-meta.php:970 #: includes/class.cooked-shortcodes.php:1040 msgid "% Daily Value *" msgstr "" -#: includes/class.cooked-recipe-meta.php:986 +#: includes/class.cooked-recipe-meta.php:989 #: includes/class.cooked-shortcodes.php:972 msgid "Includes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1018 +#: includes/class.cooked-recipe-meta.php:1021 #: includes/class.cooked-shortcodes.php:1066 msgid "The % Daily Value (DV) tells you how much a nutrient in a serving of food contributes to a daily diet. 2,000 calories a day is used for general nutrition advice." msgstr "" -#: includes/class.cooked-recipe-meta.php:1034 +#: includes/class.cooked-recipe-meta.php:1037 msgid "Recipe Gallery Type" msgstr "" -#: includes/class.cooked-recipe-meta.php:1047 +#: includes/class.cooked-recipe-meta.php:1050 msgid "Choose one..." msgstr "" #. translators: a title for the video section of the recipe editor, where users can paste a YouToub or Vimeo URL into the field below. -#: includes/class.cooked-recipe-meta.php:1061 +#: includes/class.cooked-recipe-meta.php:1064 #, php-format msgid "%1$s or %2$s Video" msgstr "" #. translators: a message describing how to display a video from YouTube or Vimeo. -#: includes/class.cooked-recipe-meta.php:1065 +#: includes/class.cooked-recipe-meta.php:1068 #, php-format msgid "If you would like to display a video as the first item in your gallery, you can paste a valid %1$s or %2$s URL below." msgstr "" -#: includes/class.cooked-recipe-meta.php:1070 +#: includes/class.cooked-recipe-meta.php:1073 msgid "Gallery Items" msgstr "" -#: includes/class.cooked-recipe-meta.php:1101 +#: includes/class.cooked-recipe-meta.php:1104 msgid "Recipe Information" msgstr "" -#: includes/class.cooked-recipe-meta.php:1102 +#: includes/class.cooked-recipe-meta.php:1105 msgid "This will display the recipe author, cooking times, etc." msgstr "" #. translators: "include and exclude" section title #. translators: "left and right" section title -#: includes/class.cooked-recipe-meta.php:1111 -#: includes/class.cooked-recipe-meta.php:1121 +#: includes/class.cooked-recipe-meta.php:1114 +#: includes/class.cooked-recipe-meta.php:1124 #, php-format msgid "\"%1$s\" and \"%2$s\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1113 +#: includes/class.cooked-recipe-meta.php:1116 msgid "This will allow you to include or exclude content from the shortcode output." msgstr "" -#: includes/class.cooked-recipe-meta.php:1122 +#: includes/class.cooked-recipe-meta.php:1125 msgid "Used like \"include\", but will position the content to the left or right." msgstr "" -#: includes/class.cooked-recipe-meta.php:1132 -#: includes/class.cooked-recipe-meta.php:1178 -#: includes/class.cooked-recipe-meta.php:1209 -#: includes/class.cooked-recipe-meta.php:1234 -#: includes/class.cooked-recipe-meta.php:1258 -#: includes/class.cooked-recipe-meta.php:1318 -#: includes/class.cooked-recipe-meta.php:1363 -#: includes/class.cooked-recipe-meta.php:1393 -#: includes/class.cooked-recipe-meta.php:1438 -#: includes/class.cooked-recipe-meta.php:1561 +#: includes/class.cooked-recipe-meta.php:1135 +#: includes/class.cooked-recipe-meta.php:1181 +#: includes/class.cooked-recipe-meta.php:1212 +#: includes/class.cooked-recipe-meta.php:1237 +#: includes/class.cooked-recipe-meta.php:1261 +#: includes/class.cooked-recipe-meta.php:1321 +#: includes/class.cooked-recipe-meta.php:1366 +#: includes/class.cooked-recipe-meta.php:1396 +#: includes/class.cooked-recipe-meta.php:1441 +#: includes/class.cooked-recipe-meta.php:1564 msgid "Available Variables" msgstr "" -#: includes/class.cooked-recipe-meta.php:1136 +#: includes/class.cooked-recipe-meta.php:1139 #: includes/class.cooked-settings.php:228 #: includes/class.cooked-shortcodes.php:446 #: includes/class.cooked-shortcodes.php:624 msgid "Author" msgstr "" -#: includes/class.cooked-recipe-meta.php:1140 +#: includes/class.cooked-recipe-meta.php:1143 #: includes/class.cooked-shortcodes.php:447 #: includes/class.cooked-shortcodes.php:635 msgid "Difficulty" msgstr "" -#: includes/class.cooked-recipe-meta.php:1141 +#: includes/class.cooked-recipe-meta.php:1144 msgid "Servings Switcher" msgstr "" -#: includes/class.cooked-recipe-meta.php:1142 +#: includes/class.cooked-recipe-meta.php:1145 #: includes/class.cooked-settings.php:229 #: includes/class.cooked-shortcodes.php:718 #: includes/class.cooked-shortcodes.php:721 @@ -1188,163 +1188,163 @@ msgstr "" msgid "Category" msgstr "" -#: includes/class.cooked-recipe-meta.php:1143 +#: includes/class.cooked-recipe-meta.php:1146 msgid "Print Mode" msgstr "" -#: includes/class.cooked-recipe-meta.php:1144 +#: includes/class.cooked-recipe-meta.php:1147 msgid "Full-Screen Mode" msgstr "" -#: includes/class.cooked-recipe-meta.php:1164 +#: includes/class.cooked-recipe-meta.php:1167 msgid "This will display the list of ingredients, added via the \"Ingredients\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1170 +#: includes/class.cooked-recipe-meta.php:1173 msgid "This will allow you to hide or show the checkboxes:" msgstr "" -#: includes/class.cooked-recipe-meta.php:1180 +#: includes/class.cooked-recipe-meta.php:1183 msgid "Show checkboxes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1181 +#: includes/class.cooked-recipe-meta.php:1184 msgid "Hide checkboxes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1195 +#: includes/class.cooked-recipe-meta.php:1198 msgid "This will display the list of directions, added via the \"Directions\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1201 +#: includes/class.cooked-recipe-meta.php:1204 msgid "This will allow you to hide or show the numbers:" msgstr "" -#: includes/class.cooked-recipe-meta.php:1211 +#: includes/class.cooked-recipe-meta.php:1214 msgid "Show numbers" msgstr "" -#: includes/class.cooked-recipe-meta.php:1212 +#: includes/class.cooked-recipe-meta.php:1215 msgid "Hide numbers" msgstr "" -#: includes/class.cooked-recipe-meta.php:1225 +#: includes/class.cooked-recipe-meta.php:1228 msgid "Featured Image" msgstr "" -#: includes/class.cooked-recipe-meta.php:1226 +#: includes/class.cooked-recipe-meta.php:1229 msgid "This will display the featured image, if one is set." msgstr "" -#: includes/class.cooked-recipe-meta.php:1236 -#: includes/class.cooked-recipe-meta.php:1260 -#: includes/class.cooked-recipe-meta.php:1365 +#: includes/class.cooked-recipe-meta.php:1239 +#: includes/class.cooked-recipe-meta.php:1263 +#: includes/class.cooked-recipe-meta.php:1368 msgid "None" msgstr "" -#: includes/class.cooked-recipe-meta.php:1249 +#: includes/class.cooked-recipe-meta.php:1252 msgid "Nutrition Label" msgstr "" -#: includes/class.cooked-recipe-meta.php:1250 +#: includes/class.cooked-recipe-meta.php:1253 msgid "This will display the Nutrition Facts label, if data is present." msgstr "" -#: includes/class.cooked-recipe-meta.php:1276 +#: includes/class.cooked-recipe-meta.php:1279 msgid "This will display the gallery, if one is set or created from the \"Gallery\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1284 +#: includes/class.cooked-recipe-meta.php:1287 msgid "Set the width of the gallery." msgstr "" -#: includes/class.cooked-recipe-meta.php:1291 +#: includes/class.cooked-recipe-meta.php:1294 msgid "Set the image size ratio." msgstr "" -#: includes/class.cooked-recipe-meta.php:1301 +#: includes/class.cooked-recipe-meta.php:1304 msgid "Set the navigation style." msgstr "" -#: includes/class.cooked-recipe-meta.php:1308 +#: includes/class.cooked-recipe-meta.php:1311 msgid "Enable or disable \"Full-Screen\" mode." msgstr "" #. translators: related to the width of slideshows: "80% or 300px" section title -#: includes/class.cooked-recipe-meta.php:1323 +#: includes/class.cooked-recipe-meta.php:1326 #, php-format msgid "ex: \"%1$s\" or \"%2$s\"" msgstr "" #. translators: related to the image ratio for slideshows: "ex: 800/600" section title -#: includes/class.cooked-recipe-meta.php:1328 +#: includes/class.cooked-recipe-meta.php:1331 #, php-format msgid "ex: \"%s\"" msgstr "" #. translators: related to the navigation style for slideshows: "dots, thumbs or false" section title -#: includes/class.cooked-recipe-meta.php:1333 +#: includes/class.cooked-recipe-meta.php:1336 #, php-format msgid "\"%1$s\", \"%2$s\", or \"%3$s\"" msgstr "" #. translators: related to allowing full screen for slideshows: "true or false" section title -#: includes/class.cooked-recipe-meta.php:1338 +#: includes/class.cooked-recipe-meta.php:1341 #, php-format msgid "\"%1$s\" or \"%2$s\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1355 +#: includes/class.cooked-recipe-meta.php:1358 msgid "This will display the excerpt, if one is available from the \"Layout & Content\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1379 +#: includes/class.cooked-recipe-meta.php:1382 msgid "This will display the notes, if one is available from the \"Layout & Content\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1385 +#: includes/class.cooked-recipe-meta.php:1388 msgid "This will allow you to hide or show the header for the notes section:" msgstr "" -#: includes/class.cooked-recipe-meta.php:1395 +#: includes/class.cooked-recipe-meta.php:1398 msgid "Show header" msgstr "" -#: includes/class.cooked-recipe-meta.php:1396 +#: includes/class.cooked-recipe-meta.php:1399 msgid "Hide header" msgstr "" -#: includes/class.cooked-recipe-meta.php:1410 +#: includes/class.cooked-recipe-meta.php:1413 msgid "This will display a special link to start a cooking timer." msgstr "" #. translators: "seconds, minutes and hours" section title -#: includes/class.cooked-recipe-meta.php:1419 +#: includes/class.cooked-recipe-meta.php:1422 #, php-format msgid "\"%1$s\", \"%2$s\" and \"%3$s\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1421 +#: includes/class.cooked-recipe-meta.php:1424 msgid "Use just one or a combination of all three to set the timer length" msgstr "" -#: includes/class.cooked-recipe-meta.php:1428 +#: includes/class.cooked-recipe-meta.php:1431 msgid "Add a short description for this timer, if applicable." msgstr "" -#: includes/class.cooked-recipe-meta.php:1440 +#: includes/class.cooked-recipe-meta.php:1443 msgid "Time in seconds" msgstr "" -#: includes/class.cooked-recipe-meta.php:1441 +#: includes/class.cooked-recipe-meta.php:1444 msgid "Time in minutes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1442 +#: includes/class.cooked-recipe-meta.php:1445 msgid "Time in hours" msgstr "" -#: includes/class.cooked-recipe-meta.php:1443 +#: includes/class.cooked-recipe-meta.php:1446 msgid "Timer Description" msgstr "" @@ -2111,8 +2111,8 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:551 #: includes/class.cooked-recipe-meta.php:706 -#: includes/class.cooked-recipe-meta.php:778 -#: includes/class.cooked-recipe-meta.php:870 +#: includes/class.cooked-recipe-meta.php:779 +#: includes/class.cooked-recipe-meta.php:873 msgid "Heading Element:" msgstr "" @@ -2234,27 +2234,27 @@ msgstr "" msgid "or" msgstr "" -#: includes/class.cooked-recipe-meta.php:1456 +#: includes/class.cooked-recipe-meta.php:1459 msgid "Next & Previous Recipe Navigation" msgstr "" -#: includes/class.cooked-recipe-meta.php:1457 +#: includes/class.cooked-recipe-meta.php:1460 msgid "This will display navigation links to the next and previous recipes." msgstr "" -#: includes/class.cooked-recipe-meta.php:1461 +#: includes/class.cooked-recipe-meta.php:1464 msgid "This shortcode automatically displays the previous and next recipe links based on the current recipe page. No parameters are required." msgstr "" -#: includes/class.cooked-recipe-meta.php:1466 +#: includes/class.cooked-recipe-meta.php:1469 msgid "Usage" msgstr "" -#: includes/class.cooked-recipe-meta.php:1468 +#: includes/class.cooked-recipe-meta.php:1471 msgid "Simply add the shortcode to your recipe template or content area. The navigation will automatically show the previous and next recipes based on recipe ID order." msgstr "" -#: includes/class.cooked-recipe-meta.php:1481 +#: includes/class.cooked-recipe-meta.php:1484 #: includes/class.cooked-related-recipes.php:34 msgid "Related Recipes" msgstr "" @@ -2281,50 +2281,50 @@ msgstr "" msgid "Create translations of your browse page in %s for full multilingual support." msgstr "" -#: includes/class.cooked-recipe-meta.php:1490 +#: includes/class.cooked-recipe-meta.php:1493 msgid "Specify a recipe ID. If not provided, uses the current recipe." msgstr "" -#: includes/class.cooked-recipe-meta.php:1497 +#: includes/class.cooked-recipe-meta.php:1500 msgid "Set the heading text for the related recipes section." msgstr "" -#: includes/class.cooked-recipe-meta.php:1524 +#: includes/class.cooked-recipe-meta.php:1527 msgid "Hide recipe card images." msgstr "" -#: includes/class.cooked-recipe-meta.php:1531 +#: includes/class.cooked-recipe-meta.php:1534 msgid "Hide recipe card excerpts." msgstr "" -#: includes/class.cooked-recipe-meta.php:1541 +#: includes/class.cooked-recipe-meta.php:1544 msgid "Hide recipe card authors." msgstr "" -#: includes/class.cooked-recipe-meta.php:1563 +#: includes/class.cooked-recipe-meta.php:1566 msgid "Recipe ID" msgstr "" -#: includes/class.cooked-recipe-meta.php:1564 +#: includes/class.cooked-recipe-meta.php:1567 msgid "Section heading" msgstr "" -#: includes/class.cooked-recipe-meta.php:1565 +#: includes/class.cooked-recipe-meta.php:1568 msgid "Number of recipes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1566 +#: includes/class.cooked-recipe-meta.php:1569 msgid "Grid columns" msgstr "" -#: includes/class.cooked-recipe-meta.php:1567 -#: includes/class.cooked-recipe-meta.php:1568 -#: includes/class.cooked-recipe-meta.php:1569 #: includes/class.cooked-recipe-meta.php:1570 +#: includes/class.cooked-recipe-meta.php:1571 +#: includes/class.cooked-recipe-meta.php:1572 +#: includes/class.cooked-recipe-meta.php:1573 msgid "true/false" msgstr "" -#: includes/class.cooked-recipe-meta.php:1572 +#: includes/class.cooked-recipe-meta.php:1575 msgid "Example" msgstr "" @@ -2354,27 +2354,27 @@ msgstr "" msgid "Try adjusting the matching criteria or ensure you have other published recipes with shared categories, tags, or ingredients." msgstr "" -#: includes/class.cooked-recipe-meta.php:1482 +#: includes/class.cooked-recipe-meta.php:1485 msgid "Displays a grid of related recipes based on shared terms in any of the recipe taxonomies (categories, cuisines, cooking methods, tags, diets), shown in random order. No cache or pre-calculation." msgstr "" -#: includes/class.cooked-recipe-meta.php:1507 +#: includes/class.cooked-recipe-meta.php:1510 msgid "Number of recipes to display (default: 4)." msgstr "" -#: includes/class.cooked-recipe-meta.php:1514 +#: includes/class.cooked-recipe-meta.php:1517 msgid "Number of columns in the grid (default: 2)." msgstr "" -#: includes/class.cooked-recipe-meta.php:1548 +#: includes/class.cooked-recipe-meta.php:1551 msgid "Toggle which taxonomies are used: match_categories, match_cuisines, match_cooking_methods, match_tags, match_diets (default: true)." msgstr "" -#: includes/class.cooked-recipe-meta.php:1555 +#: includes/class.cooked-recipe-meta.php:1558 msgid "Matching options:" msgstr "" -#: includes/class.cooked-recipe-meta.php:1556 +#: includes/class.cooked-recipe-meta.php:1559 msgid "Set to false to exclude a taxonomy from related recipes, e.g. match_cuisines=\"false\" to ignore cuisines." msgstr "" diff --git a/languages/cooked.pot b/languages/cooked.pot index d42149b..e2dbb5e 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-02-09T10:21:45-05:00\n" +"POT-Creation-Date: 2026-02-11T11:42:26-05:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: cooked\n" @@ -44,14 +44,14 @@ msgid "remaining" msgstr "" #: includes/class.cooked-admin-enqueues.php:138 -#: includes/class.cooked-recipe-meta.php:758 -#: includes/class.cooked-recipe-meta.php:813 -#: includes/class.cooked-recipe-meta.php:853 +#: includes/class.cooked-recipe-meta.php:759 +#: includes/class.cooked-recipe-meta.php:815 +#: includes/class.cooked-recipe-meta.php:856 msgid "Add Image" msgstr "" #: includes/class.cooked-admin-enqueues.php:139 -#: includes/class.cooked-recipe-meta.php:758 +#: includes/class.cooked-recipe-meta.php:759 msgid "Change Image" msgstr "" @@ -60,7 +60,7 @@ msgid "Use this Image" msgstr "" #: includes/class.cooked-admin-enqueues.php:141 -#: includes/class.cooked-recipe-meta.php:1085 +#: includes/class.cooked-recipe-meta.php:1088 msgid "Add to Gallery" msgstr "" @@ -150,7 +150,7 @@ msgstr "" #: includes/class.cooked-functions.php:134 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:263 -#: includes/class.cooked-recipe-meta.php:1163 +#: includes/class.cooked-recipe-meta.php:1166 #: includes/class.cooked-recipes.php:635 #: templates/front/recipe.php:34 msgid "Ingredients" @@ -160,7 +160,7 @@ msgstr "" #: includes/class.cooked-functions.php:135 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:269 -#: includes/class.cooked-recipe-meta.php:1194 +#: includes/class.cooked-recipe-meta.php:1197 #: includes/class.cooked-recipes.php:639 #: templates/front/recipe.php:35 msgid "Directions" @@ -183,7 +183,7 @@ msgid "Error importing WP Delicious recipe." msgstr "" #: includes/class.cooked-enqueues.php:56 -#: includes/class.cooked-recipe-meta.php:1409 +#: includes/class.cooked-recipe-meta.php:1412 msgid "Timer" msgstr "" @@ -211,7 +211,7 @@ msgid "Information" msgstr "" #: includes/class.cooked-functions.php:132 -#: includes/class.cooked-recipe-meta.php:1354 +#: includes/class.cooked-recipe-meta.php:1357 #: includes/class.cooked-settings.php:231 msgid "Excerpt" msgstr "" @@ -221,7 +221,7 @@ msgid "Images" msgstr "" #: includes/class.cooked-functions.php:136 -#: includes/class.cooked-recipe-meta.php:1378 +#: includes/class.cooked-recipe-meta.php:1381 #: includes/class.cooked-recipes.php:642 #: includes/class.cooked-settings.php:232 #: includes/class.cooked-shortcodes.php:775 @@ -984,7 +984,7 @@ msgid "Layout" msgstr "" #: includes/class.cooked-recipe-meta.php:281 -#: includes/class.cooked-recipe-meta.php:1275 +#: includes/class.cooked-recipe-meta.php:1278 msgid "Gallery" msgstr "" @@ -1060,7 +1060,7 @@ msgid "Difficulty Level" msgstr "" #: includes/class.cooked-recipe-meta.php:431 -#: includes/class.cooked-recipe-meta.php:1137 +#: includes/class.cooked-recipe-meta.php:1140 #: includes/class.cooked-settings.php:233 #: includes/class.cooked-shortcodes.php:449 #: includes/class.cooked-shortcodes.php:671 @@ -1074,7 +1074,7 @@ msgid "minutes" msgstr "" #: includes/class.cooked-recipe-meta.php:436 -#: includes/class.cooked-recipe-meta.php:1138 +#: includes/class.cooked-recipe-meta.php:1141 #: includes/class.cooked-settings.php:234 #: includes/class.cooked-shortcodes.php:450 #: includes/class.cooked-shortcodes.php:680 @@ -1082,7 +1082,7 @@ msgid "Cook Time" msgstr "" #: includes/class.cooked-recipe-meta.php:441 -#: includes/class.cooked-recipe-meta.php:1139 +#: includes/class.cooked-recipe-meta.php:1142 #: includes/class.cooked-settings.php:235 #: includes/class.cooked-shortcodes.php:451 #: includes/class.cooked-shortcodes.php:691 @@ -1130,15 +1130,15 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:547 #: includes/class.cooked-recipe-meta.php:702 -#: includes/class.cooked-recipe-meta.php:774 -#: includes/class.cooked-recipe-meta.php:866 +#: includes/class.cooked-recipe-meta.php:775 +#: includes/class.cooked-recipe-meta.php:869 msgid "Section Heading" msgstr "" #: includes/class.cooked-recipe-meta.php:551 #: includes/class.cooked-recipe-meta.php:706 -#: includes/class.cooked-recipe-meta.php:778 -#: includes/class.cooked-recipe-meta.php:870 +#: includes/class.cooked-recipe-meta.php:779 +#: includes/class.cooked-recipe-meta.php:873 msgid "Heading Element:" msgstr "" @@ -1147,122 +1147,122 @@ msgid "Add Ingredient" msgstr "" #: includes/class.cooked-recipe-meta.php:643 -#: includes/class.cooked-recipe-meta.php:845 +#: includes/class.cooked-recipe-meta.php:847 msgid "Add Section Heading" msgstr "" -#: includes/class.cooked-recipe-meta.php:844 +#: includes/class.cooked-recipe-meta.php:846 msgid "Add Direction" msgstr "" -#: includes/class.cooked-recipe-meta.php:901 +#: includes/class.cooked-recipe-meta.php:904 msgid "Nutrition Information" msgstr "" -#: includes/class.cooked-recipe-meta.php:939 +#: includes/class.cooked-recipe-meta.php:942 #: includes/class.cooked-shortcodes.php:1062 msgid "Nutrition Facts" msgstr "" -#: includes/class.cooked-recipe-meta.php:957 +#: includes/class.cooked-recipe-meta.php:960 #: includes/class.cooked-shortcodes.php:1030 msgid "Amount per serving" msgstr "" -#: includes/class.cooked-recipe-meta.php:967 +#: includes/class.cooked-recipe-meta.php:970 #: includes/class.cooked-shortcodes.php:1040 msgid "% Daily Value *" msgstr "" -#: includes/class.cooked-recipe-meta.php:986 +#: includes/class.cooked-recipe-meta.php:989 #: includes/class.cooked-shortcodes.php:972 msgid "Includes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1018 +#: includes/class.cooked-recipe-meta.php:1021 #: includes/class.cooked-shortcodes.php:1066 msgid "The % Daily Value (DV) tells you how much a nutrient in a serving of food contributes to a daily diet. 2,000 calories a day is used for general nutrition advice." msgstr "" -#: includes/class.cooked-recipe-meta.php:1034 +#: includes/class.cooked-recipe-meta.php:1037 msgid "Recipe Gallery Type" msgstr "" -#: includes/class.cooked-recipe-meta.php:1047 +#: includes/class.cooked-recipe-meta.php:1050 msgid "Choose one..." msgstr "" #. translators: a title for the video section of the recipe editor, where users can paste a YouToub or Vimeo URL into the field below. -#: includes/class.cooked-recipe-meta.php:1061 +#: includes/class.cooked-recipe-meta.php:1064 #, php-format msgid "%1$s or %2$s Video" msgstr "" #. translators: a message describing how to display a video from YouTube or Vimeo. -#: includes/class.cooked-recipe-meta.php:1065 +#: includes/class.cooked-recipe-meta.php:1068 #, php-format msgid "If you would like to display a video as the first item in your gallery, you can paste a valid %1$s or %2$s URL below." msgstr "" -#: includes/class.cooked-recipe-meta.php:1070 +#: includes/class.cooked-recipe-meta.php:1073 msgid "Gallery Items" msgstr "" -#: includes/class.cooked-recipe-meta.php:1101 +#: includes/class.cooked-recipe-meta.php:1104 msgid "Recipe Information" msgstr "" -#: includes/class.cooked-recipe-meta.php:1102 +#: includes/class.cooked-recipe-meta.php:1105 msgid "This will display the recipe author, cooking times, etc." msgstr "" #. translators: "include and exclude" section title #. translators: "left and right" section title -#: includes/class.cooked-recipe-meta.php:1111 -#: includes/class.cooked-recipe-meta.php:1121 +#: includes/class.cooked-recipe-meta.php:1114 +#: includes/class.cooked-recipe-meta.php:1124 #, php-format msgid "\"%1$s\" and \"%2$s\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1113 +#: includes/class.cooked-recipe-meta.php:1116 msgid "This will allow you to include or exclude content from the shortcode output." msgstr "" -#: includes/class.cooked-recipe-meta.php:1122 +#: includes/class.cooked-recipe-meta.php:1125 msgid "Used like \"include\", but will position the content to the left or right." msgstr "" -#: includes/class.cooked-recipe-meta.php:1132 -#: includes/class.cooked-recipe-meta.php:1178 -#: includes/class.cooked-recipe-meta.php:1209 -#: includes/class.cooked-recipe-meta.php:1234 -#: includes/class.cooked-recipe-meta.php:1258 -#: includes/class.cooked-recipe-meta.php:1318 -#: includes/class.cooked-recipe-meta.php:1363 -#: includes/class.cooked-recipe-meta.php:1393 -#: includes/class.cooked-recipe-meta.php:1438 -#: includes/class.cooked-recipe-meta.php:1561 +#: includes/class.cooked-recipe-meta.php:1135 +#: includes/class.cooked-recipe-meta.php:1181 +#: includes/class.cooked-recipe-meta.php:1212 +#: includes/class.cooked-recipe-meta.php:1237 +#: includes/class.cooked-recipe-meta.php:1261 +#: includes/class.cooked-recipe-meta.php:1321 +#: includes/class.cooked-recipe-meta.php:1366 +#: includes/class.cooked-recipe-meta.php:1396 +#: includes/class.cooked-recipe-meta.php:1441 +#: includes/class.cooked-recipe-meta.php:1564 msgid "Available Variables" msgstr "" -#: includes/class.cooked-recipe-meta.php:1136 +#: includes/class.cooked-recipe-meta.php:1139 #: includes/class.cooked-settings.php:228 #: includes/class.cooked-shortcodes.php:446 #: includes/class.cooked-shortcodes.php:624 msgid "Author" msgstr "" -#: includes/class.cooked-recipe-meta.php:1140 +#: includes/class.cooked-recipe-meta.php:1143 #: includes/class.cooked-shortcodes.php:447 #: includes/class.cooked-shortcodes.php:635 msgid "Difficulty" msgstr "" -#: includes/class.cooked-recipe-meta.php:1141 +#: includes/class.cooked-recipe-meta.php:1144 msgid "Servings Switcher" msgstr "" -#: includes/class.cooked-recipe-meta.php:1142 +#: includes/class.cooked-recipe-meta.php:1145 #: includes/class.cooked-settings.php:229 #: includes/class.cooked-shortcodes.php:718 #: includes/class.cooked-shortcodes.php:721 @@ -1270,259 +1270,259 @@ msgstr "" msgid "Category" msgstr "" -#: includes/class.cooked-recipe-meta.php:1143 +#: includes/class.cooked-recipe-meta.php:1146 msgid "Print Mode" msgstr "" -#: includes/class.cooked-recipe-meta.php:1144 +#: includes/class.cooked-recipe-meta.php:1147 msgid "Full-Screen Mode" msgstr "" -#: includes/class.cooked-recipe-meta.php:1164 +#: includes/class.cooked-recipe-meta.php:1167 msgid "This will display the list of ingredients, added via the \"Ingredients\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1170 +#: includes/class.cooked-recipe-meta.php:1173 msgid "This will allow you to hide or show the checkboxes:" msgstr "" -#: includes/class.cooked-recipe-meta.php:1180 +#: includes/class.cooked-recipe-meta.php:1183 msgid "Show checkboxes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1181 +#: includes/class.cooked-recipe-meta.php:1184 msgid "Hide checkboxes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1195 +#: includes/class.cooked-recipe-meta.php:1198 msgid "This will display the list of directions, added via the \"Directions\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1201 +#: includes/class.cooked-recipe-meta.php:1204 msgid "This will allow you to hide or show the numbers:" msgstr "" -#: includes/class.cooked-recipe-meta.php:1211 +#: includes/class.cooked-recipe-meta.php:1214 msgid "Show numbers" msgstr "" -#: includes/class.cooked-recipe-meta.php:1212 +#: includes/class.cooked-recipe-meta.php:1215 msgid "Hide numbers" msgstr "" -#: includes/class.cooked-recipe-meta.php:1225 +#: includes/class.cooked-recipe-meta.php:1228 msgid "Featured Image" msgstr "" -#: includes/class.cooked-recipe-meta.php:1226 +#: includes/class.cooked-recipe-meta.php:1229 msgid "This will display the featured image, if one is set." msgstr "" -#: includes/class.cooked-recipe-meta.php:1236 -#: includes/class.cooked-recipe-meta.php:1260 -#: includes/class.cooked-recipe-meta.php:1365 +#: includes/class.cooked-recipe-meta.php:1239 +#: includes/class.cooked-recipe-meta.php:1263 +#: includes/class.cooked-recipe-meta.php:1368 msgid "None" msgstr "" -#: includes/class.cooked-recipe-meta.php:1249 +#: includes/class.cooked-recipe-meta.php:1252 msgid "Nutrition Label" msgstr "" -#: includes/class.cooked-recipe-meta.php:1250 +#: includes/class.cooked-recipe-meta.php:1253 msgid "This will display the Nutrition Facts label, if data is present." msgstr "" -#: includes/class.cooked-recipe-meta.php:1276 +#: includes/class.cooked-recipe-meta.php:1279 msgid "This will display the gallery, if one is set or created from the \"Gallery\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1284 +#: includes/class.cooked-recipe-meta.php:1287 msgid "Set the width of the gallery." msgstr "" -#: includes/class.cooked-recipe-meta.php:1291 +#: includes/class.cooked-recipe-meta.php:1294 msgid "Set the image size ratio." msgstr "" -#: includes/class.cooked-recipe-meta.php:1301 +#: includes/class.cooked-recipe-meta.php:1304 msgid "Set the navigation style." msgstr "" -#: includes/class.cooked-recipe-meta.php:1308 +#: includes/class.cooked-recipe-meta.php:1311 msgid "Enable or disable \"Full-Screen\" mode." msgstr "" #. translators: related to the width of slideshows: "80% or 300px" section title -#: includes/class.cooked-recipe-meta.php:1323 +#: includes/class.cooked-recipe-meta.php:1326 #, php-format msgid "ex: \"%1$s\" or \"%2$s\"" msgstr "" #. translators: related to the image ratio for slideshows: "ex: 800/600" section title -#: includes/class.cooked-recipe-meta.php:1328 +#: includes/class.cooked-recipe-meta.php:1331 #, php-format msgid "ex: \"%s\"" msgstr "" #. translators: related to the navigation style for slideshows: "dots, thumbs or false" section title -#: includes/class.cooked-recipe-meta.php:1333 +#: includes/class.cooked-recipe-meta.php:1336 #, php-format msgid "\"%1$s\", \"%2$s\", or \"%3$s\"" msgstr "" #. translators: related to allowing full screen for slideshows: "true or false" section title -#: includes/class.cooked-recipe-meta.php:1338 +#: includes/class.cooked-recipe-meta.php:1341 #, php-format msgid "\"%1$s\" or \"%2$s\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1355 +#: includes/class.cooked-recipe-meta.php:1358 msgid "This will display the excerpt, if one is available from the \"Layout & Content\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1379 +#: includes/class.cooked-recipe-meta.php:1382 msgid "This will display the notes, if one is available from the \"Layout & Content\" tab." msgstr "" -#: includes/class.cooked-recipe-meta.php:1385 +#: includes/class.cooked-recipe-meta.php:1388 msgid "This will allow you to hide or show the header for the notes section:" msgstr "" -#: includes/class.cooked-recipe-meta.php:1395 +#: includes/class.cooked-recipe-meta.php:1398 msgid "Show header" msgstr "" -#: includes/class.cooked-recipe-meta.php:1396 +#: includes/class.cooked-recipe-meta.php:1399 msgid "Hide header" msgstr "" -#: includes/class.cooked-recipe-meta.php:1410 +#: includes/class.cooked-recipe-meta.php:1413 msgid "This will display a special link to start a cooking timer." msgstr "" #. translators: "seconds, minutes and hours" section title -#: includes/class.cooked-recipe-meta.php:1419 +#: includes/class.cooked-recipe-meta.php:1422 #, php-format msgid "\"%1$s\", \"%2$s\" and \"%3$s\"" msgstr "" -#: includes/class.cooked-recipe-meta.php:1421 +#: includes/class.cooked-recipe-meta.php:1424 msgid "Use just one or a combination of all three to set the timer length" msgstr "" -#: includes/class.cooked-recipe-meta.php:1428 +#: includes/class.cooked-recipe-meta.php:1431 msgid "Add a short description for this timer, if applicable." msgstr "" -#: includes/class.cooked-recipe-meta.php:1440 +#: includes/class.cooked-recipe-meta.php:1443 msgid "Time in seconds" msgstr "" -#: includes/class.cooked-recipe-meta.php:1441 +#: includes/class.cooked-recipe-meta.php:1444 msgid "Time in minutes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1442 +#: includes/class.cooked-recipe-meta.php:1445 msgid "Time in hours" msgstr "" -#: includes/class.cooked-recipe-meta.php:1443 +#: includes/class.cooked-recipe-meta.php:1446 msgid "Timer Description" msgstr "" -#: includes/class.cooked-recipe-meta.php:1456 +#: includes/class.cooked-recipe-meta.php:1459 msgid "Next & Previous Recipe Navigation" msgstr "" -#: includes/class.cooked-recipe-meta.php:1457 +#: includes/class.cooked-recipe-meta.php:1460 msgid "This will display navigation links to the next and previous recipes." msgstr "" -#: includes/class.cooked-recipe-meta.php:1461 +#: includes/class.cooked-recipe-meta.php:1464 msgid "This shortcode automatically displays the previous and next recipe links based on the current recipe page. No parameters are required." msgstr "" -#: includes/class.cooked-recipe-meta.php:1466 +#: includes/class.cooked-recipe-meta.php:1469 msgid "Usage" msgstr "" -#: includes/class.cooked-recipe-meta.php:1468 +#: includes/class.cooked-recipe-meta.php:1471 msgid "Simply add the shortcode to your recipe template or content area. The navigation will automatically show the previous and next recipes based on recipe ID order." msgstr "" -#: includes/class.cooked-recipe-meta.php:1481 +#: includes/class.cooked-recipe-meta.php:1484 #: includes/class.cooked-related-recipes.php:34 msgid "Related Recipes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1482 +#: includes/class.cooked-recipe-meta.php:1485 msgid "Displays a grid of related recipes based on shared terms in any of the recipe taxonomies (categories, cuisines, cooking methods, tags, diets), shown in random order. No cache or pre-calculation." msgstr "" -#: includes/class.cooked-recipe-meta.php:1490 +#: includes/class.cooked-recipe-meta.php:1493 msgid "Specify a recipe ID. If not provided, uses the current recipe." msgstr "" -#: includes/class.cooked-recipe-meta.php:1497 +#: includes/class.cooked-recipe-meta.php:1500 msgid "Set the heading text for the related recipes section." msgstr "" -#: includes/class.cooked-recipe-meta.php:1507 +#: includes/class.cooked-recipe-meta.php:1510 msgid "Number of recipes to display (default: 4)." msgstr "" -#: includes/class.cooked-recipe-meta.php:1514 +#: includes/class.cooked-recipe-meta.php:1517 msgid "Number of columns in the grid (default: 2)." msgstr "" -#: includes/class.cooked-recipe-meta.php:1524 +#: includes/class.cooked-recipe-meta.php:1527 msgid "Hide recipe card images." msgstr "" -#: includes/class.cooked-recipe-meta.php:1531 +#: includes/class.cooked-recipe-meta.php:1534 msgid "Hide recipe card excerpts." msgstr "" -#: includes/class.cooked-recipe-meta.php:1541 +#: includes/class.cooked-recipe-meta.php:1544 msgid "Hide recipe card authors." msgstr "" -#: includes/class.cooked-recipe-meta.php:1548 +#: includes/class.cooked-recipe-meta.php:1551 msgid "Toggle which taxonomies are used: match_categories, match_cuisines, match_cooking_methods, match_tags, match_diets (default: true)." msgstr "" -#: includes/class.cooked-recipe-meta.php:1555 +#: includes/class.cooked-recipe-meta.php:1558 msgid "Matching options:" msgstr "" -#: includes/class.cooked-recipe-meta.php:1556 +#: includes/class.cooked-recipe-meta.php:1559 msgid "Set to false to exclude a taxonomy from related recipes, e.g. match_cuisines=\"false\" to ignore cuisines." msgstr "" -#: includes/class.cooked-recipe-meta.php:1563 +#: includes/class.cooked-recipe-meta.php:1566 msgid "Recipe ID" msgstr "" -#: includes/class.cooked-recipe-meta.php:1564 +#: includes/class.cooked-recipe-meta.php:1567 msgid "Section heading" msgstr "" -#: includes/class.cooked-recipe-meta.php:1565 +#: includes/class.cooked-recipe-meta.php:1568 msgid "Number of recipes" msgstr "" -#: includes/class.cooked-recipe-meta.php:1566 +#: includes/class.cooked-recipe-meta.php:1569 msgid "Grid columns" msgstr "" -#: includes/class.cooked-recipe-meta.php:1567 -#: includes/class.cooked-recipe-meta.php:1568 -#: includes/class.cooked-recipe-meta.php:1569 #: includes/class.cooked-recipe-meta.php:1570 +#: includes/class.cooked-recipe-meta.php:1571 +#: includes/class.cooked-recipe-meta.php:1572 +#: includes/class.cooked-recipe-meta.php:1573 msgid "true/false" msgstr "" -#: includes/class.cooked-recipe-meta.php:1572 +#: includes/class.cooked-recipe-meta.php:1575 msgid "Example" msgstr "" From b25c4cd53a7a5fd074559323699d14d440aa33c5 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Wed, 11 Feb 2026 12:45:50 -0500 Subject: [PATCH 17/31] General CSS Improvements / Bugs --- assets/admin/js/cooked-functions.js | 10 +++++++++- assets/admin/js/cooked-functions.min.js | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index a9e3fdd..bd5ca1d 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -117,7 +117,15 @@ var cookedSortableTouchHandler = function(event) { } }); } else { - $_CookedSortable.sortable(); + $_CookedSortable.sortable({ + handle: '.cooked-icon-drag', + stop: function(event, ui) { + // Update direction step numbers when reordering directions + if (ui.item.closest('#cooked-directions-builder').length) { + cooked_reset_direction_builder(); + } + } + }); } } diff --git a/assets/admin/js/cooked-functions.min.js b/assets/admin/js/cooked-functions.min.js index eff05b2..32cc0a9 100644 --- a/assets/admin/js/cooked-functions.min.js +++ b/assets/admin/js/cooked-functions.min.js @@ -1 +1 @@ -var $_CookedConditionalTimeout=!1,cookedSortableTouchHandler=function(e){var t=e.target.closest(".cooked-icon-drag");t&&t.closest(".cooked-sortable")&&(t=e.changedTouches[0],e.preventDefault(),e=new MouseEvent({touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"}[e.type],{bubbles:!0,cancelable:!0,view:window,detail:1,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null}),t.target.dispatchEvent(e))},cooked_recipe_update_counter=((p=>{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable()),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
    ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
    ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0 Date: Thu, 12 Feb 2026 19:17:03 -0500 Subject: [PATCH 18/31] Minor bug fix with loading class Also upped the max-width because it makes the settings page look thinner. --- assets/admin/css/style.css | 2 +- assets/admin/css/style.min.css | 2 +- includes/class.cooked-ajax.php | 7 +- languages/cooked.po | 225 ++++++++++++++++++++++++++++++++- languages/cooked.pot | 225 ++++++++++++++++++++++++++++++++- 5 files changed, 444 insertions(+), 17 deletions(-) diff --git a/assets/admin/css/style.css b/assets/admin/css/style.css index 48ed51f..fdb546e 100644 --- a/assets/admin/css/style.css +++ b/assets/admin/css/style.css @@ -40,7 +40,7 @@ body.post-type-cp_recipe .mce-fullscreen { position: relative; border-radius: 10px; margin: 40px 40px 40px 20px; - max-width: 1000px; + max-width: 1200px; min-width: 1000px; background: #fff; box-shadow: diff --git a/assets/admin/css/style.min.css b/assets/admin/css/style.min.css index e0f4693..55b25f5 100644 --- a/assets/admin/css/style.min.css +++ b/assets/admin/css/style.min.css @@ -1 +1 @@ -.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}body.post-type-cp_recipe .mce-fullscreen{z-index:100100!important}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress,#cooked-related-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text,#cooked-related-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed,#cooked-related-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active,#cooked-related-completed.cooked-active{display:block}.cooked-related-status{margin:0 0 12px 0;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;border-left:3px solid #00a878;background:#f0f9f6;color:#2d4a42;max-width:480px}#cooked-related-last-done.cooked-related-status{border-left-color:#8c9b99;background:#f6f8f7;color:#5c6b69}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px;touch-action:none}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block .cooked-direction-number{opacity:.4;position:absolute;display:inline-block;font-weight:800;top:17px;left:35px;font-size:1.25rem;line-height:1}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number>.cooked-direction-image{left:65px}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number>.cooked-direction-content{padding-left:175px}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number-wide>.cooked-direction-content{padding-left:185px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px;touch-action:none}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file +.cooked-clearfix:after{content:"";display:table;clear:both}#post-body-content #postdivrich{display:none}body.post-type-cp_recipe .wp-list-table tfoot th.check-column,body.post-type-cp_recipe .wp-list-table thead th.check-column{padding:15px 0 0 7px}body.post-type-cp_recipe .wp-list-table tfoot td,body.post-type-cp_recipe .wp-list-table tfoot th,body.post-type-cp_recipe .wp-list-table thead td,body.post-type-cp_recipe .wp-list-table thead th{padding:10px 10px}body.post-type-cp_recipe .wp-list-table tfoot th.sortable a,body.post-type-cp_recipe .wp-list-table tfoot th.sorted a,body.post-type-cp_recipe .wp-list-table thead th.sortable a,body.post-type-cp_recipe .wp-list-table thead th.sorted a{padding-left:0;padding-right:0}body.post-type-cp_recipe .wp-list-table tbody th.check-column{padding:15px 0 0 10px}body.post-type-cp_recipe .wp-list-table tbody td,body.post-type-cp_recipe .wp-list-table tbody th{padding:12px 10px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong{margin-top:6px}body.post-type-cp_recipe .wp-list-table tbody td.column-title strong .row-title{padding-top:10px;font-size:1rem!important}th.column-featured_image{width:50px;text-align:center}td.column-featured_image{width:50px;text-align:center}.cooked-admin-recipes-list-image img{width:49px;height:auto;border-radius:3px;position:relative;top:3px}body.post-type-cp_recipe #titlediv #title{box-shadow:none;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:0 12px;font-weight:400;font-size:19px;letter-spacing:0;height:44px}body.post-type-cp_recipe #titlediv #title-prompt-text{font-size:15px;color:#888;font-weight:400;letter-spacing:0;padding:12px 15px}body.post-type-cp_recipe .mce-fullscreen{z-index:100100!important}#cooked-settings-prewrap{display:flex;justify-content:center}#cooked-settings-wrap{position:relative;border-radius:10px;margin:40px 40px 40px 20px;max-width:1200px;min-width:1000px;background:#fff;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-settings-wrap.is-stuck{position:static!important}#cooked-settings-wrap .cooked-settings-update-button{position:absolute;top:30px;right:30px}#cooked-settings-wrap .cooked-settings-update-button>.button-primary{box-shadow:none;border:none}#cooked-settings-wrap.is-stuck .cooked-settings-update-button{position:fixed;top:40px;right:11px;z-index:100001}#cooked_recipe_settings .hndle,#cooked_recipe_settings button.handlediv{display:none}#cooked_recipe_settings .inside{padding:0;margin:0}#cooked-recipe-tabs{list-style:none;padding:0;margin:0;position:absolute;top:0;left:0;width:100%}#cooked-recipe-tabs li{font-size:.9rem;line-height:3rem;height:3rem;font-weight:500;display:inline-block;padding:0 1.25rem;margin:0;color:#fff}#cooked-recipe-tabs li:hover{cursor:pointer}#cooked-recipe-tabs li.active,#cooked-recipe-tabs li.active:hover{cursor:default}#cooked-recipe-tabs li:last-child{border-right:none!important}#cooked-recipe-tabs li.cooked-loading{opacity:0;background:0 0;color:#fff;position:absolute;top:0;right:0;cursor:default;font-size:14px;width:40px;height:40px;text-align:center;display:block;line-height:40px;padding:0}#cooked-recipe-tabs li.cooked-loading:hover{background:0 0;color:#fff}#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading{opacity:1}#cooked_recipe_settings .inside{padding-top:41px}#cooked_recipe_settings.stuck #cooked-recipe-tabs{position:fixed;width:auto;top:32px;left:23px;z-index:100000;margin-left:160px;box-shadow:0 3px 50px rgba(0,0,0,.25)}#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading{right:160px}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content{display:none}.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}#cooked_field--cooked_pro_license_key{font-family:monospace}#cooked_recipe_settings .cooked-bm-5{margin-bottom:5px!important}#cooked_recipe_settings .cooked-bm-10{margin-bottom:10px!important}#cooked_recipe_settings .cooked-tm-10{margin-top:10px!important}#cooked_recipe_settings .cooked-bm-15{margin-bottom:15px!important}#cooked_recipe_settings .cooked-bm-20{margin-bottom:20px!important}#cooked_recipe_settings .cooked-bm-30{margin-bottom:30px!important}#cooked_recipe_settings .cooked-bm-5-up{margin-bottom:-5px!important}#cooked_recipe_settings .cooked-bm-10-up{margin-bottom:-10px!important}#cooked_recipe_settings .cooked-bm-15-up{margin-bottom:-15px!important}#cooked_recipe_settings .cooked-bm-20-up{margin-bottom:-20px!important}#cooked_recipe_settings .cooked-bm-30-up{margin-bottom:-30px!important}#cooked_recipe_settings .cooked-hr{border:none;border-top:2px solid #ddd;margin:10px 0 0 0;padding:15px 0 0 0}#cooked_recipe_settings .cooked-conditional-hidden{display:none}#cooked_recipe_settings .cooked-recipe-tab-content{padding:23px 30px 15px 30px}#cooked_recipe_settings .recipe-setting-block{margin:0 0 20px;width:100%}#cooked_recipe_settings .recipe-setting-block p{font-size:.9rem;line-height:1.5rem;margin:0 0 1rem;padding:0}#cooked_recipe_settings .recipe-setting-block p.cooked-padded{line-height:1.75rem;font-size:.85rem}#cooked_recipe_settings .recipe-setting-block .cooked-conditional-hidden{padding:0}#cooked_recipe_settings textarea{width:100%;height:75px;padding:15px;box-sizing:border-box;position:relative;top:5px}#cooked_recipe_settings .recipe-setting-block>label.cooked-select-label{top:5px}#cooked_recipe_settings select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border-radius:3px;padding:0 45px 0 9px;line-height:31px;height:33px;box-sizing:border-box;background:#fff}#cooked_recipe_settings .cooked-select-wrapper{background:#fff;position:relative;width:auto;display:inline-block;border-radius:3px;margin:0 5px 0 0}#cooked_recipe_settings .cooked-select-wrapper select{margin:0;background:0 0;position:relative}#cooked_recipe_settings .cooked-select-wrapper:before{font-family:CookedIcons;display:block;width:15px;height:15px;line-height:14px;color:#000;font-size:14px;content:"\f00b";position:absolute;right:12px;top:11px;color:rgba(0,0,0,.3)}#cooked_recipe_settings .cooked-select-wrapper:hover:before{color:#000}#cooked_recipe_settings .cooked-select-wrapper:hover select{border-color:#ccc}#cooked_recipe_settings .cooked-checkbox-radio-label{position:relative;left:1px}#cooked_recipe_settings .recipe-setting-block input[type=checkbox],#cooked_recipe_settings .recipe-setting-block input[type=radio]{margin-top:0}#cooked_recipe_settings .recipe-setting-block input[type=number]{width:65px}#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{width:75%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password],#cooked_recipe_settings .recipe-setting-block input[type=text]{margin:0 6px 5px 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;height:33px;box-shadow:none;position:relative;top:2px;padding:0 10px}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-measurement-column{width:43%;margin-right:3%;display:inline-block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs input,#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs label{width:100%;display:block}#cooked_recipe_settings .recipe-setting-block p.cooked-measurement-inputs .cooked-select-wrapper select{width:100%}#cooked_recipe_settings .recipe-setting-block input[type=number],#cooked_recipe_settings .recipe-setting-block input[type=password].cooked-small-textfield,#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-small-textfield{width:150px}#cooked_recipe_settings small{display:block;line-height:1.5;font-size:12px;color:#888;padding:10px 0 0}#cooked_recipe_settings .recipe-setting-block em{color:#aaa}#cooked_recipe_settings .recipe-setting-block,#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{display:block;position:relative;box-sizing:border-box;line-height:1}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned{padding-left:157px}#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{width:70%;position:relative;z-index:2;padding:.5rem 0 .5rem;margin:0;font-size:1rem;line-height:1.5rem;font-weight:600}#cooked_recipe_settings .recipe-setting-block strong.cooked-heading{font-size:14px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{position:absolute;top:1px;left:0;width:147px;cursor:default;font-weight:600}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon{color:#aaa;cursor:help;display:inline-block;margin-left:10px}#cooked_recipe_settings .recipe-setting-block .cooked-tooltip-icon:hover{color:#eee}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>.cooked-checkbox-radio-label{top:7px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned>label{top:auto;height:33px;line-height:30px;padding:0;width:130px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned:first-child label:first-child{padding-top:12px;margin-top:-12px}#cooked_recipe_settings .recipe-setting-block .cooked-repositioned span.cooked-padded{padding:0 0 15px;display:block;line-height:1.9}#cooked_recipe_settings .recipe-setting-block .wp-picker-container .cooked-color-field.wp-color-picker{padding:5px;height:25px;top:0;margin:0;width:74px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #ccc}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{font-family:monospace;background:#f5f5f5;font-size:12px}#cooked_recipe_settings .cooked-banner-block{margin:30px -30px -17px;display:block;box-sizing:content-box;padding:10px 30px 15px;background:#f9f9f9;width:100%;border-top:1px solid #e5e5e5}#cooked_recipe_settings .cooked-advanced-options-hr{border:none;border-bottom:1px solid #ddd;height:1px;padding:10px 0 0 0;margin:0 0 20px}#cooked_recipe_settings .recipe-setting-block input.cooked-time-picker{top:0;width:100%;padding-right:70%;margin:0 0 3px}#cooked_recipe_settings .recipe-setting-block .cooked-time-picker-text{position:absolute;bottom:13px;right:40px;color:#888}#cooked_recipe_settings .cooked-alert-block{background:#fffbdc;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;margin:10px 0 15px;padding:10px 22px 2px;border:2px solid #ece8c4}#cooked_recipe_settings .recipe-setting-block.cooked-template{display:none}#cooked_recipe_settings ul.cooked-admin-ul{font-size:.9rem;margin:0 0 1rem 2rem;list-style:disc}#cooked_recipe_settings ul.cooked-admin-ul li{font-size:.9rem;padding:0;margin:0 0 .5rem}#cooked_recipe_settings .cooked-html-block{background:#fff;width:auto;min-width:300px;display:inline-block;padding:.5rem 1.3rem .25rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title{width:100%;color:#333}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid{background:#fff;border:2px solid #0aa780;box-shadow:none;border-radius:5px}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid>.cooked-settings-title{color:#0aa780}#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired{border:2px solid #ca4a20}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element>.cooked-heading-name,#cooked-directions-builder .cooked-direction-block:hover>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element>.cooked-heading-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-heading-name{padding-right:32px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:14px;right:35px}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-directions-builder .cooked-direction-block:hover .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-heading-element{opacity:1}#cooked-directions-builder .cooked-direction-block .cooked-show-heading-element .cooked-icon:hover,#cooked-directions-builder .cooked-direction-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-directions-builder .cooked-direction-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-heading-element .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-heading-element .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-heading-element .cooked-show-heading-element .cooked-icon{color:#0685ba}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element{display:none;width:65%;float:right;margin-top:4px;padding-right:32px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element select,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element select{color:#0685ba;width:100%}#cooked-directions-builder .cooked-direction-block>.cooked-heading-element label,#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-element label{font-weight:600}#cooked-directions-builder .cooked-direction-block.cooked-expanded>.cooked-heading-element,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-heading-element{display:block}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution{opacity:0;cursor:pointer;font-size:14px;position:absolute;top:15px;right:58px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution,#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-show-substitution{opacity:1;right:50px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-show-substitution .cooked-icon:hover,#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded .cooked-show-substitution .cooked-icon,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution .cooked-show-substitution .cooked-icon{color:#0685ba}#cooked-ingredients-builder .cooked-ingredient-block.cooked-expanded>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block.cooked-has-substitution>.cooked-ingredient-name,#cooked-ingredients-builder .cooked-ingredient-block:hover>.cooked-ingredient-name{padding-right:32px}#cooked_recipe_settings .switchery-small,body.post-type-cp_recipe .switchery-small{height:1rem;width:1.75rem;border-radius:1rem;margin-right:.4rem}#cooked_recipe_settings .switchery-small>small,body.post-type-cp_recipe .switchery-small>small{width:1rem;height:1rem;padding:0}.cooked-tooltip-buttons .cooked-icon-spin{margin-top:10px;font-size:15px}.cooked-tooltip-buttons .cooked-saved-default{height:28px;line-height:28px;font-weight:700;font-size:15px;color:#888}.cooked-progress{display:none;position:relative;background:#eee;width:100%;height:6px;padding:0;border-radius:3px;margin:10px 0 0 0}.cooked-progress-text{display:none;font-size:10px;color:#aaa;padding:2px 0 5px}.cooked-progress-text.cooked-active,.cooked-progress.cooked-active{display:block}.cooked-progress .cooked-progress-bar{display:block;position:absolute;background:#0085ba;width:0%;height:6px;top:0;left:0;border-radius:3px}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active{display:block}#cooked-csv-import-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-csv-import-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-csv-import-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-csv-import-completed{display:none}#cooked-csv-import-completed.cooked-active{display:block}#cooked-csv-import-form{max-width:100%;box-sizing:border-box}#cooked-csv-import-form input[type=file]{max-width:100%;box-sizing:border-box;width:100%}#cooked-csv-import-errors{max-width:100%;box-sizing:border-box;word-wrap:break-word}#cooked-import-progress.cooked-progress,#cooked-migration-progress.cooked-progress,#cooked-related-progress.cooked-progress{background:#ccc;margin:25px 0 0 0;border-radius:6px;height:12px;max-width:600px}#cooked-import-progress.cooked-progress .cooked-progress-bar,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar{border-radius:6px;height:12px}#cooked-import-progress-text.cooked-progress-text,#cooked-migration-progress-text.cooked-progress-text,#cooked-related-progress-text.cooked-progress-text{font-size:11px;color:#888;max-width:600px}#cooked-import-completed,#cooked-migration-completed,#cooked-related-completed{display:none}#cooked-import-completed.cooked-active,#cooked-migration-completed.cooked-active,#cooked-related-completed.cooked-active{display:block}.cooked-related-status{margin:0 0 12px 0;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;border-left:3px solid #00a878;background:#f0f9f6;color:#2d4a42;max-width:480px}#cooked-related-last-done.cooked-related-status{border-left-color:#8c9b99;background:#f6f8f7;color:#5c6b69}#cooked_recipe_settings .cooked-layout-save-default{position:relative;top:-2px;z-index:10;margin:0 0 0 15px;padding:0 8px 1px}#cooked_recipe_settings .cooked-layout-load-default{position:relative;top:-2px;z-index:10;margin:0 0 0 10px;padding:0 8px 1px}body .button.button-cooked-reset{color:#999}body .button.button-cooked-reset:hover{color:#555}#cooked_recipe_settings .cooked-ingredient-headers{display:block;padding:5px 25px 0 35px}#cooked_recipe_settings .cooked-ingredient-headers span{font-size:.7rem;font-weight:700;letter-spacing:.03rem;text-transform:uppercase;color:#0085ba;box-sizing:border-box;display:inline-block;float:left}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-amount{width:15%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-measurement{width:20%}#cooked_recipe_settings .cooked-ingredient-headers span.cooked-ingredient-header-item{width:65%}#cooked-ingredients-builder{margin:0 0 20px}#cooked-ingredients-builder .cooked-ingredient-block{display:block;padding:5px 45px 5px 35px}#cooked-ingredients-builder .cooked-ingredient-block:hover{background:#eee}#cooked-ingredients-builder .cooked-ingredient-block input[type=number],#cooked-ingredients-builder .cooked-ingredient-block input[type=text],#cooked-ingredients-builder .cooked-ingredient-block select{margin:0;display:block;top:0}#cooked-ingredients-builder .cooked-ingredient-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px}#cooked-ingredients-builder .cooked-ingredient-block>div input[type=text]{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper{width:100%}#cooked-ingredients-builder .cooked-ingredient-block .cooked-substitution-fields>.cooked-ingredient-measurement .cooked-select-wrapper select{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-heading-name{width:100%}#cooked-ingredients-builder .cooked-ingredient-block>div small.cooked-input-ex{display:block;padding:5px 0 0 2px}#cooked-ingredients-builder .cooked-ingredient-block{margin:0}#cooked-ingredients-builder .cooked-ingredient-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:5px;left:1px;touch-action:none}#cooked-ingredients-builder .cooked-ingredient-block:hover i.cooked-icon-drag{color:#888}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-ingredients-builder .cooked-ingredient-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:43px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient{cursor:pointer;font-size:14px;position:absolute;top:14px;right:11px}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon{color:#fff}#cooked-ingredients-builder .cooked-ingredient-block:hover .cooked-delete-ingredient .cooked-icon{color:#888}#cooked-ingredients-builder .cooked-ingredient-block .cooked-delete-ingredient .cooked-icon:hover{color:#de2020}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading{margin:10px 0}#cooked-ingredients-builder .cooked-ingredient-block.cooked-ingredient-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600}#cooked-directions-builder{margin:0 0 20px}#cooked-directions-builder .cooked-direction-block{display:block;padding:15px 25px 15px 35px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{padding:5px 25px 5px 35px}#cooked-directions-builder .cooked-direction-block:hover{background:#f5f5f5}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading:hover{background:#eee}#cooked-directions-builder .cooked-direction-block textarea{margin:0;display:block;height:191px;top:0}#cooked-directions-builder .cooked-direction-block>div{display:inline-block;float:left;box-sizing:border-box;padding-right:15px}#cooked-directions-builder .cooked-direction-block>div:last-child{padding:0}#cooked-directions-builder .cooked-direction-block>div input[type=text]{width:100%}#cooked-directions-builder .cooked-direction-block .mce-statusbar{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image{width:120px;position:absolute;top:15px;left:35px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image img{cursor:pointer;display:none;border-radius:3px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder{box-sizing:border-box;cursor:pointer;border-radius:3px;width:100%;padding-bottom:100%;background:0 0;border:2px dashed #ddd;border-radius:3px;margin-top:15px}#cooked-directions-builder .cooked-direction-block:hover>.cooked-direction-image .cooked-direction-img-placeholder{background:0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder:hover{background:#ddd;border:2px solid #ddd}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .direction-image-button{width:100%;text-align:center}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .remove-image-button{display:none;position:absolute;top:43px;right:15px}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button{display:inline-block;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .remove-image-button:hover{background:#ff0100}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image img{width:100%;height:auto;display:block;margin:15px 0 0}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image.cooked-has-image .cooked-direction-img-placeholder{display:none}#cooked-directions-builder .cooked-direction-block>.cooked-direction-content{width:100%;padding-left:120px}#cooked-directions-builder .cooked-direction-block .cooked-direction-number{opacity:.4;position:absolute;display:inline-block;font-weight:800;top:17px;left:35px;font-size:1.25rem;line-height:1}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number>.cooked-direction-image{left:65px}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number>.cooked-direction-content{padding-left:175px}#cooked-directions-builder .cooked-direction-block.cooked-direction-has-number-wide>.cooked-direction-content{padding-left:185px}#cooked-directions-builder .cooked-direction-block>.cooked-heading-name{width:100%}#cooked-directions-builder .cooked-direction-block{margin:0}#cooked-directions-builder .cooked-direction-block i.cooked-icon-drag{cursor:move;color:#ccc;font-size:32px;position:absolute;top:13px;left:1px;touch-action:none}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading i.cooked-icon-drag{top:5px}#cooked-directions-builder .cooked-direction-block:hover i.cooked-icon-drag{color:#888}#cooked-directions-builder .cooked-direction-block.ui-sortable-helper{background:#f5f5f5;box-shadow:0 10px 20px rgba(0,0,0,.15);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#cooked-directions-builder .cooked-direction-block.ui-sortable-placeholder{visibility:visible!important;background:#eee;display:block;width:100%;height:221px;border-top:6px solid #fff;border-bottom:6px solid #fff}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading.ui-sortable-placeholder{height:43px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{cursor:pointer;font-size:14px;position:absolute;right:14px}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon{color:#fff}#cooked-directions-builder .cooked-direction-block:hover .cooked-delete-direction .cooked-icon{color:#888}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction .cooked-icon:hover{color:#de2020}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading{margin:10px 0}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading>div input[type=text]{padding:0 7px;font-size:16px;background:#f9f9f9;font-weight:600;top:0;margin:0}#cooked-directions-builder .cooked-direction-block .cooked-delete-direction{top:16px}#cooked-directions-builder .cooked-direction-block.cooked-direction-heading .cooked-delete-direction{top:14px}#cooked-recipe-image-gallery{margin:0 -1% 0}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{position:relative;overflow:hidden;cursor:move;box-sizing:border-box;display:inline-block;width:18%;height:auto;padding:0;margin:0 1% 2% 1%}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover{opacity:.9}#cooked-recipe-image-gallery .cooked-recipe-gallery-item img{width:100%;height:auto;border-radius:3px;display:block;margin:0;padding:0;border:none}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper,#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper:hover{opacity:.75;box-shadow:0 10px 20px rgba(0,0,0,.15)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-placeholder{width:18%;height:auto;visibility:visible!important;border-radius:3px;background:#ddd;display:inline-block}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button{border-radius:0 3px 0 0;display:inline-block;position:absolute;top:0;right:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .remove-image-button:hover{background:#ff0100}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button{border-radius:3px 0 0 0;display:inline-block;position:absolute;top:0;left:0;padding:10px;background:rgba(0,0,0,.25);color:#fff}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-edit-button:hover{background:#0084bc}#cooked-recipe-image-gallery .cooked-recipe-gallery-item .cooked-gallery-item-title{position:absolute;left:0;bottom:0;box-sizing:border-box;width:100%;border-radius:0 0 3px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding:10px 10px 11px;text-align:center;background:#000;background:rgba(0,0,0,.3);color:#fff;font-size:12px}#cooked-recipe-image-gallery .cooked-recipe-gallery-item:hover .cooked-gallery-item-title{background:#000;background:rgba(0,0,0,.75)}#cooked-recipe-image-gallery .cooked-recipe-gallery-item.ui-sortable-helper{-webkit-animation:cooked-wiggle .4s infinite;-moz-animation:cooked-wiggle .4s infinite;-o-animation:cooked-wiggle .4s infinite;animation:cooked-wiggle .4s infinite}#cooked_recipe_settings label.cooked-nutrition-label{display:block;font-size:.7rem;letter-spacing:.03rem;font-weight:700;text-transform:uppercase;line-height:1;margin:0 0 7px}#cooked_recipe_settings #cooked-nutrition-label{line-height:1.6;font-size:1.1rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:5%;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}#cooked_recipe_settings #cooked-nutrition-label h2{font-size:2.5rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0 0 .4rem;color:#333;border-bottom:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0;margin:0;font-size:.9rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings p{font-size:1.5rem}#cooked_recipe_settings #cooked-nutrition-label ul{list-style:none;margin:0;padding:0}#cooked_recipe_settings #cooked-nutrition-label li{position:relative;margin:0;padding:0 0 3px 0;border-top:1px solid #aaa}#cooked_recipe_settings #cooked-nutrition-label li li{padding:3px 0 0;margin:3px 0 0}#cooked_recipe_settings #cooked-nutrition-label li:after{content:"";display:table;clear:both}#cooked_recipe_settings #cooked-nutrition-label li.no-after:after{content:none}#cooked_recipe_settings #cooked-nutrition-label li.cooked-nut-spacer{border:none;height:.6rem;padding:0;background:#333}#cooked_recipe_settings #cooked-nutrition-label ul li.cooked-nut-no-border,#cooked_recipe_settings #cooked-nutrition-label>ul>li:first-child{border:none}#cooked_recipe_settings #cooked-nutrition-label li ul{padding:0;margin:0 0 0 20px}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right{margin:0}#cooked_recipe_settings #cooked-nutrition-label li ul.cooked-right li{border:none;padding:0;margin:0}#cooked_recipe_settings #cooked-nutrition-label li.cooked-calories ul.cooked-right li strong.cooked-nut-label{font-size:2.5rem;line-height:1}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-calories strong.cooked-nut-label{font-size:2rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings li{border:none}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-servings{margin:0}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1.3rem solid #333;margin:.1rem 0 0;padding:0}#cooked_recipe_settings #cooked-nutrition-label strong{font-weight:800}#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong,#cooked_recipe_settings #cooked-nutrition-label .cooked-serving-size strong.cooked-nut-label{font-size:1.5rem;font-weight:800}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}#cooked_recipe_settings #cooked-nutrition-label strong.cooked-nut-label{font-weight:400}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-right{float:right}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom{margin:0 0 .75rem}#cooked_recipe_settings #cooked-nutrition-label ul.cooked-nut-bottom li{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}#cooked_recipe_settings .cooked-measurement-inputs .cooked-select-wrapper:before{top:8px}.cooked-auto-nutrition{display:flex;justify-content:end;margin:0 0 1rem}#cooked-tooltip-auto-nutrition-notice{margin:0}.cooked-settings-header{border-radius:10px 10px 0 0;width:auto;height:90px;line-height:85px;padding:0 30px;font-weight:600;box-sizing:border-box;background:#33373c;color:#fff;font-size:29px;letter-spacing:-.03rem}.cooked-settings-header .cooked-icon{color:#00e0a9}.cooked-settings-submit-wrap{padding:0 0 35px 35px;margin:-20px 0 0}#cooked_recipe_settings .recipe-setting-block .cooked-permalink-field-wrapper span{font-size:14px;display:inline-block;line-height:32px;padding:5px 0 0 0}#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-permalink-field{position:relative;top:0;display:inline-block;width:150px;margin:0 10px}#cooked-settings-panel{position:relative;margin:0;padding:0}#cooked-settings-tabs{display:flex;width:auto;padding:0 20px 0 0;margin:0;list-style:none}#cooked-settings-tabs li{font-size:13px;line-height:1;font-weight:400;display:block;padding:0;margin:0;color:#fff}#cooked-settings-tabs li .cooked-icon{font-size:14px}#cooked-settings-tabs li .cooked-icon.cooked-icon-recipe-icon{font-size:20px;top:2px;position:relative}#cooked-settings-tabs li:hover{cursor:pointer}#cooked-settings-tabs li.active,#cooked-settings-tabs li.active:hover{cursor:default}#cooked-settings-tabs a{line-height:41px;font-size:.9rem;letter-spacing:.03rem;padding:2px 15px 4px;display:block;outline:0;box-shadow:none;border:none;white-space:nowrap}#cooked-settings-panel.stuck{padding-top:41px}#cooked-settings-panel.stuck #cooked-settings-tabs{position:fixed;width:calc(100% - 180px);top:32px;left:0;z-index:100000;margin-left:160px}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content{display:none}#cooked-settings-panel .cooked-settings-tab-content-wrapper .cooked-settings-tab-content:first-child{display:block}#cooked-settings-panel .cooked-settings-tab-content{padding:25px 35px;margin-right:0}#cooked-settings-panel #cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{padding-bottom:.2rem}#cooked_recipe_settings .cooked-setting-column-14{position:relative;width:25%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-13{position:relative;width:33%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-23{position:relative;width:66%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12{position:relative;width:50%;float:left;padding-right:20px;box-sizing:border-box}#cooked_recipe_settings .cooked-setting-column-12 input[type=text],#cooked_recipe_settings .cooked-setting-column-13 input[type=text],#cooked_recipe_settings .cooked-setting-column-14 input[type=text],#cooked_recipe_settings .cooked-setting-column-23 input[type=text],#cooked_recipe_settings .recipe-setting-block input[type=text].cooked-shortcode-field{width:95%}#cooked_recipe_settings .cooked-setting-column-12 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-12 select,#cooked_recipe_settings .cooked-setting-column-13 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-13 select,#cooked_recipe_settings .cooked-setting-column-14 .cooked-select-wrapper,#cooked_recipe_settings .cooked-setting-column-14 select,#cooked_recipe_settings .cooked-setting-column-23 select{width:100%}#cooked_recipe_settings .cooked-setting-column-14.cooked-tb-col{padding:0}#cooked-welcome-screen{padding:15px 50px 0 30px;position:relative}#cooked-welcome-screen .cooked-badge{position:absolute;top:0;right:0}#cooked-welcome-screen .cooked-badge img{border:none;width:150px;height:150px;display:block;margin:0}#cooked-welcome-screen .about-text{margin-bottom:40px;line-height:1.8;font-size:17px;margin-right:260px}#cooked-welcome-screen .about-wrap{margin:25px auto 0;max-width:1000px}#cooked-welcome-screen .about-wrap h1{font-size:2.25rem}#cooked-welcome-screen .about-wrap p{font-size:1rem;margin:0 0 2rem;line-height:1.7rem}#cooked-welcome-screen #cooked-welcome-panel{background:#fff;padding:30px 30px 15px 30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;border:none;box-shadow:0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{border:none;display:block;padding:0;margin:0 0 30px;box-sizing:border-box;border-radius:5px 5px 0 0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro{text-align:center;margin:0 50px 2rem;padding:15px 0;border-bottom:1px solid #e5e5e5}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro h1{font-size:1.75rem;margin:0 0 1rem;padding:0}#cooked-welcome-screen #cooked-welcome-panel .cooked-welcome-panel-intro p{max-width:600px;font-size:1.1rem;line-height:1.8rem;margin:0 auto 2rem;padding:0}#cooked-welcome-screen .cooked-welcome-panel a{text-decoration:none}#cooked-welcome-screen .cooked-welcome-panel-column{display:block!important}#cooked-welcome-screen .cooked-welcome-panel-column>strong{font-size:1rem}#cooked-welcome-screen .cooked-welcome-panel-column h3{font-size:1.75rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h3 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column h4{font-size:1.25rem;margin:0 0 1rem;position:relative}#cooked-welcome-screen .cooked-welcome-panel-column h4 a{position:absolute;top:0;right:0;font-size:12px;font-weight:400}#cooked-welcome-screen .cooked-welcome-panel-column h4 a i.fa{position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-full{width:100%;padding-right:0;float:none}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:70%;padding-right:0;float:right}#cooked-welcome-screen .cooked-welcome-panel-column .fa-external-link{color:#888}#cooked-welcome-screen .cooked-welcome-panel-content{min-height:1px;padding:10px 50px 20px;margin:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column-container{display:flex;justify-content:between!important;padding:0!important;flex-wrap:wrap}#cooked-welcome-screen .cooked-welcome-panel-column{box-sizing:border-box;padding-right:2rem;width:30%}#cooked-welcome-screen .cooked-pro-features{width:85%;margin:0 auto;padding:0 0 10px;display:flex;flex-wrap:wrap}#cooked-welcome-screen ul.cooked-whatsnew-list{margin-right:0}#cooked-welcome-screen ul.cooked-whatsnew-list li{line-height:1.7;position:relative;margin-right:0;border-top:1px solid #e5e5e5;padding:8px 0 4px 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child{border:none;padding-top:0}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{position:absolute;font-style:normal;display:inline-block;background:#aaa;text-transform:uppercase;top:11px;left:0;color:#fff;font-weight:600;-moz-border-radius:3px;-webkit-border-radius:3px;text-align:center;width:38px;border-radius:3px;font-size:10px;line-height:19px;height:19px;padding:0 6px;margin:0 6px 0 0}#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child em.fix,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.new,#cooked-welcome-screen ul.cooked-whatsnew-list li:first-child strong.tweak{top:3px}#cooked-welcome-screen ul.cooked-whatsnew-list strong.new{background:#56c477}#cooked-welcome-screen ul.cooked-whatsnew-list strong.tweak{background:#0073aa}#cooked-welcome-screen ul.cooked-whatsnew-list em.fix{background:#ffad10}#cooked-welcome-screen ul li.cooked-pro i.cooked-icon{color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a{font-weight:600;color:#ffad10}#cooked-welcome-screen ul li.cooked-pro a:hover{color:#d3910f}#cooked-welcome-screen ul.cooked-whatsnew-pro{margin-bottom:0;flex:1 0 auto;width:33.333%}#cooked-welcome-screen ul.cooked-whatsnew-pro li{padding-left:0;font-size:1.15rem;font-weight:400}#cooked-welcome-screen ul.cooked-whatsnew-pro li i.cooked-icon-star{color:#ffad10;margin:0 7px 0 0;font-size:19px;position:relative;top:1px}#cooked-welcome-screen .cooked-welcome-bottom{text-align:center;background:#f9f9f9;margin:30px -80px -15px;border-top:1px solid #f1f1f1}#cooked-welcome-screen .cooked-pro-button{display:inline-block;clear:both;text-align:center;width:auto;margin:30px auto;padding:20px 25px 21px;font-size:1.25rem;line-height:1rem;font-weight:600;color:#fff;background:#ffad10;border-radius:50px}#cooked-welcome-screen .cooked-pro-button:hover{background:#e08704}#cooked-welcome-screen .cooked-coupon-code{color:#4c5e65;display:inline-block;font-size:17px;padding:0 0 0 1.5rem}@media screen and (max-width:1050px){#cooked-welcome-screen ul.cooked-whatsnew-pro{width:100%;margin-top:0}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child{margin-top:10px}#cooked-welcome-screen ul.cooked-whatsnew-pro li:first-child{border-top:1px solid #e5e5e5;padding-top:8px}#cooked-welcome-screen ul.cooked-whatsnew-pro:first-child li:first-child{border:none;padding-top:0}}@media screen and (max-width:870px){#cooked-welcome-screen .cooked-pro-features{width:90%}#cooked-welcome-screen .cooked-welcome-panel-column{padding-right:0}#cooked-welcome-screen .cooked-welcome-panel-column.cooked-welcome-panel-last{width:100%;padding-top:20px}#cooked-welcome-screen .about-wrap{margin-top:0}#cooked-welcome-screen .cooked-welcome-panel .cooked-welcome-panel-column li{display:block}}@media screen and (max-width:782px){#cooked-welcome-screen .cooked-pro-features{width:100%}#cooked-welcome-screen{padding:15px 40px 0 30px}#cooked-welcome-screen .cooked-badge{display:none}#cooked-welcome-screen .about-text,#cooked-welcome-screen .about-wrap h1{margin-right:0}#cooked-welcome-screen .cooked-welcome-panel-column h3 a{display:block;position:relative}}@media screen and (max-width:500px){#cooked-welcome-screen #cooked-welcome-panel img.cooked-welcome-banner{display:none}#cooked-welcome-screen .about-wrap h1{font-size:1.8rem}#cooked-welcome-screen .about-text{font-size:15px}}#cooked_recipe_settings #cooked-nutrition-label .cooked-nut-label,#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title{color:#0173aa}#cooked_recipe_settings .recipe-setting-block.cooked-danger h3.cooked-settings-title{color:#d44d1f}#cooked_recipe_settings .cooked-alert-block h3.cooked-settings-title{color:#c02a2a}#cooked-recipe-tabs{background:#fff}#cooked-recipe-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75);border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li:hover{background:#535a62;color:#fff;border-right:1px solid rgba(0,0,0,.15)}#cooked-recipe-tabs li.active{background:#fff;color:#333;border-right:1px solid #fff}#cooked-settings-tabs{background:#454b52}#cooked-settings-tabs a{color:#fff;text-decoration:none}#cooked-settings-tabs li{background:#454b52;color:#fff;color:rgba(255,255,255,.75)}#cooked-settings-tabs li:hover{background:#535a62;color:#fff}#cooked-settings-tabs li.active{background:#fff}#cooked-settings-tabs li.active a{color:#000}#cooked-directions-builder .cooked-direction-block>.cooked-direction-image .cooked-direction-img-placeholder,#cooked-migration-progress.cooked-progress .cooked-progress-bar,#cooked-related-progress.cooked-progress .cooked-progress-bar,#cooked_recipe_settings .cooked-select-wrapper:before,#cooked_recipe_settings .cooked-tooltip-icon,#cooked_recipe_settings select{-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}#cooked-recipe-image-gallery .cooked-recipe-gallery-item{-webkit-transition:transform .15s ease-out;-moz-transition:all .15s ease-out;transition:transform .15s ease-out}#cooked-recipe-tabs li.cooked-loading{-webkit-transition:opacity .15s ease-out;-moz-transition:all .15s ease-out;transition:opacity .15s ease-out}@-webkit-keyframes cooked-wiggle{0%{-webkit-transform:scale(1)}50%{-webkit-transform:scale(1.03)}100%{-webkit-transform:scale(1)}}@-moz-keyframes cooked-wiggle{0%{-moz-transform:scale(1)}50%{-moz-transform:scale(1.03)}100%{-moz-transform:scale(1)}}@-o-keyframes cooked-wiggle{0%{-o-transform:scale(1)}50%{-o-transform:scale(1.03)}100%{-o-transform:scale(1)}}@keyframes cooked-wiggle{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@media screen and (max-width:1150px){#cooked-recipe-tabs li{font-size:.8rem;padding:0 1.2rem 0 .7rem}#cooked-recipe-tabs li .cooked-icon{display:none}}@media screen and (max-width:960px){#cooked_recipe_settings.stuck #cooked-recipe-tabs{margin-left:36px}}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields{width:100%;float:left;clear:both;margin-top:10px;padding-top:10px;padding-right:0;padding-left:0;margin-left:0;box-sizing:border-box;padding-bottom:5px;position:relative}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-amount{width:15%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-measurement{width:20%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-ingredient-name{width:65%}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields .cooked-sub-label{color:#7c7c7c;font-size:14px;font-weight:300}#cooked-ingredients-builder .cooked-ingredient-block>.cooked-substitution-fields>div{display:inline-block;float:left;box-sizing:border-box;padding-right:10px} \ No newline at end of file diff --git a/includes/class.cooked-ajax.php b/includes/class.cooked-ajax.php index 312cc74..1c45384 100644 --- a/includes/class.cooked-ajax.php +++ b/includes/class.cooked-ajax.php @@ -386,7 +386,7 @@ public function upload_csv() { } // Use WordPress upload handler - require_once(ABSPATH . 'wp-admin/includes/file.php'); + require_once ABSPATH . 'wp-admin/includes/file.php'; $upload = wp_handle_upload($_FILES['csv_file'], ['test_form' => false]); if (isset($upload['error'])) { @@ -419,10 +419,7 @@ public function process_csv() { } // Process the CSV file - if (!class_exists('Cooked_CSV_Import')) { - wp_send_json_error(['message' => __('CSV Import class could not be loaded.', 'cooked')]); - } - + require_once COOKED_DIR . 'includes/class.cooked-csv-import.php'; $results = Cooked_CSV_Import::import_from_file($file_path); // Clean up diff --git a/languages/cooked.po b/languages/cooked.po index dc4a1c7..ebb1884 100644 --- a/languages/cooked.po +++ b/languages/cooked.po @@ -143,7 +143,8 @@ msgstr "" msgid "You do not have sufficient permissions to access this page." msgstr "" -#: includes/class.cooked-ajax.php:175 +#: includes/class.cooked-ajax.php:180 +#: includes/class.cooked-csv-import.php:307 #: includes/class.cooked-functions.php:134 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:263 @@ -153,7 +154,8 @@ msgstr "" msgid "Ingredients" msgstr "" -#: includes/class.cooked-ajax.php:175 +#: includes/class.cooked-ajax.php:180 +#: includes/class.cooked-csv-import.php:307 #: includes/class.cooked-functions.php:135 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:269 @@ -276,6 +278,7 @@ msgstr "" #: includes/class.cooked-import.php:63 #: includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:170 #: includes/class.cooked-migration.php:60 msgid "Note:" msgstr "" @@ -291,15 +294,16 @@ msgstr "" msgid "WP Delicious - Import" msgstr "" -#: includes/class.cooked-import.php:152 +#: includes/class.cooked-import.php:185 msgid "More Imports are Coming Soon..." msgstr "" -#: includes/class.cooked-import.php:173 +#: includes/class.cooked-import.php:206 msgid "Begin Import" msgstr "" -#: includes/class.cooked-import.php:178 +#: includes/class.cooked-import.php:211 +#: includes/class.cooked-import.php:231 #: includes/class.cooked-settings.php:605 msgid "reload" msgstr "" @@ -2435,3 +2439,214 @@ msgstr "" #, php-format msgid "Tool method %s does not exist." msgstr "" + +#: includes/class.cooked-admin-enqueues.php:151 +msgid "Are you sure you want to import recipes from this CSV file?" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:152 +msgid "Please select a CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:153 +msgid "Please select a valid CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:154 +msgid "Uploading..." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:155 +msgid "Processing..." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:156 +msgid "recipes imported" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:157 +msgid "Errors:" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:158 +msgid "Import failed." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:159 +msgid "Failed to process CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:160 +msgid "Failed to upload CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:161 +#: includes/class.cooked-ajax.php:379 +msgid "File upload failed." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:162 +msgid "Something went wrong" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:163 +msgid "hrs" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:164 +msgid "mins" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:165 +msgid "Pre-calculate related recipes for all published recipes? This may take a while on large sites." +msgstr "" + +#. translators: 1: date and time, 2: number of recipes +#: includes/class.cooked-admin-enqueues.php:167 +#, php-format +msgid "Last: %1$s · %2$s recipes" +msgstr "" + +#: includes/class.cooked-ajax.php:346 +msgid "No default content provided." +msgstr "" + +#: includes/class.cooked-ajax.php:375 +#: includes/class.cooked-ajax.php:411 +msgid "You do not have permission to import recipes." +msgstr "" + +#: includes/class.cooked-ajax.php:385 +msgid "Invalid file type. Please upload a CSV file." +msgstr "" + +#: includes/class.cooked-ajax.php:418 +msgid "CSV file not found. Please upload again." +msgstr "" + +#: includes/class.cooked-ajax.php:434 +#, php-format +msgid "Successfully imported %d recipe(s)." +msgstr "" + +#: includes/class.cooked-ajax.php:443 +msgid "No recipes were imported." +msgstr "" + +#: includes/class.cooked-csv-import.php:38 +msgid "CSV file not found." +msgstr "" + +#: includes/class.cooked-csv-import.php:45 +msgid "Could not open CSV file." +msgstr "" + +#: includes/class.cooked-csv-import.php:52 +msgid "CSV file is empty or invalid." +msgstr "" + +#: includes/class.cooked-csv-import.php:63 +msgid "CSV file must contain a \"title\" column." +msgstr "" + +#: includes/class.cooked-csv-import.php:90 +msgid "Unknown error" +msgstr "" + +#: includes/class.cooked-csv-import.php:91 +#: includes/class.cooked-csv-import.php:98 +#, php-format +msgid "Row %d: %s" +msgstr "" + +#: includes/class.cooked-csv-import.php:124 +msgid "Title is required" +msgstr "" + +#: includes/class.cooked-import.php:152 +msgid "Import recipes from a CSV file. Your CSV file should include the following columns:" +msgstr "" + +#: includes/class.cooked-import.php:154 +msgid "Recipe title (required)" +msgstr "" + +#: includes/class.cooked-import.php:155 +msgid "Recipe excerpt/description" +msgstr "" + +#: includes/class.cooked-import.php:156 +msgid "Prep time in minutes" +msgstr "" + +#: includes/class.cooked-import.php:157 +msgid "Cook time in minutes" +msgstr "" + +#: includes/class.cooked-import.php:158 +msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" +msgstr "" + +#: includes/class.cooked-import.php:159 +msgid "Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or \"name\" for simple ingredients. Add substitutions with double pipe (||): \"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" +msgstr "" + +#: includes/class.cooked-import.php:160 +msgid "Directions/instructions separated by pipe (|)" +msgstr "" + +#: includes/class.cooked-import.php:161 +msgid "Recipe notes" +msgstr "" + +#: includes/class.cooked-import.php:162 +msgid "Recipe course (category), separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:164 +msgid "Recipe cuisine, separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:165 +msgid "Cooking method, separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:166 +msgid "Recipe tags, separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:167 +msgid "Diet type, separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:170 +msgid "Recipes will be imported with the 'Draft' status. After the import is complete, you can bulk edit the recipes and change their status to 'Published'." +msgstr "" + +#: includes/class.cooked-import.php:173 +msgid "CSV Import" +msgstr "" + +#: includes/class.cooked-import.php:177 +msgid "Import Recipes via CSV" +msgstr "" + +#: includes/class.cooked-import.php:226 +msgid "Upload and Import CSV" +msgstr "" + +#: includes/class.cooked-import.php:231 +msgid "Import Complete!" +msgstr "" + +#: includes/class.cooked-import.php:231 +msgid "You can now" +msgstr "" + +#: includes/class.cooked-import.php:231 +msgid "the import screen or" +msgstr "" + +#: includes/class.cooked-import.php:231 +msgid "view your recipes" +msgstr "" diff --git a/languages/cooked.pot b/languages/cooked.pot index e2dbb5e..522d6fb 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-02-11T11:42:26-05:00\n" +"POT-Creation-Date: 2026-02-12T19:16:46-05:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: cooked\n" @@ -98,6 +98,73 @@ msgstr "" msgid "Please confirm that you are ready to import all recipes." msgstr "" +#: includes/class.cooked-admin-enqueues.php:151 +msgid "Are you sure you want to import recipes from this CSV file?" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:152 +msgid "Please select a CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:153 +msgid "Please select a valid CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:154 +msgid "Uploading..." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:155 +msgid "Processing..." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:156 +msgid "recipes imported" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:157 +msgid "Errors:" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:158 +msgid "Import failed." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:159 +msgid "Failed to process CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:160 +msgid "Failed to upload CSV file." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:161 +#: includes/class.cooked-ajax.php:379 +msgid "File upload failed." +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:162 +msgid "Something went wrong" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:163 +msgid "hrs" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:164 +msgid "mins" +msgstr "" + +#: includes/class.cooked-admin-enqueues.php:165 +msgid "Pre-calculate related recipes for all published recipes? This may take a while on large sites." +msgstr "" + +#. translators: 1: date and time, 2: number of recipes +#: includes/class.cooked-admin-enqueues.php:167 +#, php-format +msgid "Last: %1$s · %2$s recipes" +msgstr "" + #: includes/class.cooked-admin-menus.php:36 #: includes/class.cooked-admin-menus.php:59 #: includes/class.cooked-post-types.php:450 @@ -146,7 +213,8 @@ msgstr "" msgid "You do not have sufficient permissions to access this page." msgstr "" -#: includes/class.cooked-ajax.php:175 +#: includes/class.cooked-ajax.php:180 +#: includes/class.cooked-csv-import.php:307 #: includes/class.cooked-functions.php:134 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:263 @@ -156,7 +224,8 @@ msgstr "" msgid "Ingredients" msgstr "" -#: includes/class.cooked-ajax.php:175 +#: includes/class.cooked-ajax.php:180 +#: includes/class.cooked-csv-import.php:307 #: includes/class.cooked-functions.php:135 #: includes/class.cooked-recipe-meta.php:176 #: includes/class.cooked-recipe-meta.php:269 @@ -166,6 +235,32 @@ msgstr "" msgid "Directions" msgstr "" +#: includes/class.cooked-ajax.php:346 +msgid "No default content provided." +msgstr "" + +#: includes/class.cooked-ajax.php:375 +#: includes/class.cooked-ajax.php:411 +msgid "You do not have permission to import recipes." +msgstr "" + +#: includes/class.cooked-ajax.php:385 +msgid "Invalid file type. Please upload a CSV file." +msgstr "" + +#: includes/class.cooked-ajax.php:418 +msgid "CSV file not found. Please upload again." +msgstr "" + +#: includes/class.cooked-ajax.php:434 +#, php-format +msgid "Successfully imported %d recipe(s)." +msgstr "" + +#: includes/class.cooked-ajax.php:443 +msgid "No recipes were imported." +msgstr "" + #: includes/class.cooked-cli.php:41 msgid "Please provide a tool name. Use `wp cooked tools list` to see available tools." msgstr "" @@ -178,6 +273,36 @@ msgstr "" msgid "No tools available." msgstr "" +#: includes/class.cooked-csv-import.php:38 +msgid "CSV file not found." +msgstr "" + +#: includes/class.cooked-csv-import.php:45 +msgid "Could not open CSV file." +msgstr "" + +#: includes/class.cooked-csv-import.php:52 +msgid "CSV file is empty or invalid." +msgstr "" + +#: includes/class.cooked-csv-import.php:63 +msgid "CSV file must contain a \"title\" column." +msgstr "" + +#: includes/class.cooked-csv-import.php:90 +msgid "Unknown error" +msgstr "" + +#: includes/class.cooked-csv-import.php:91 +#: includes/class.cooked-csv-import.php:98 +#, php-format +msgid "Row %d: %s" +msgstr "" + +#: includes/class.cooked-csv-import.php:124 +msgid "Title is required" +msgstr "" + #: includes/class.cooked-delicious-recipes.php:102 msgid "Error importing WP Delicious recipe." msgstr "" @@ -295,6 +420,7 @@ msgstr "" #: includes/class.cooked-import.php:63 #: includes/class.cooked-import.php:118 +#: includes/class.cooked-import.php:170 #: includes/class.cooked-migration.php:60 msgid "Note:" msgstr "" @@ -324,18 +450,107 @@ msgid "WP Recipe Maker - Import" msgstr "" #: includes/class.cooked-import.php:152 -msgid "More Imports are Coming Soon..." +msgid "Import recipes from a CSV file. Your CSV file should include the following columns:" +msgstr "" + +#: includes/class.cooked-import.php:154 +msgid "Recipe title (required)" +msgstr "" + +#: includes/class.cooked-import.php:155 +msgid "Recipe excerpt/description" +msgstr "" + +#: includes/class.cooked-import.php:156 +msgid "Prep time in minutes" +msgstr "" + +#: includes/class.cooked-import.php:157 +msgid "Cook time in minutes" +msgstr "" + +#: includes/class.cooked-import.php:158 +msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" +msgstr "" + +#: includes/class.cooked-import.php:159 +msgid "Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or \"name\" for simple ingredients. Add substitutions with double pipe (||): \"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" +msgstr "" + +#: includes/class.cooked-import.php:160 +msgid "Directions/instructions separated by pipe (|)" +msgstr "" + +#: includes/class.cooked-import.php:161 +msgid "Recipe notes" +msgstr "" + +#: includes/class.cooked-import.php:162 +msgid "Recipe course (category), separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:164 +msgid "Recipe cuisine, separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:165 +msgid "Cooking method, separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:166 +msgid "Recipe tags, separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:167 +msgid "Diet type, separated by comma" +msgstr "" + +#: includes/class.cooked-import.php:170 +msgid "Recipes will be imported with the 'Draft' status. After the import is complete, you can bulk edit the recipes and change their status to 'Published'." msgstr "" #: includes/class.cooked-import.php:173 +msgid "CSV Import" +msgstr "" + +#: includes/class.cooked-import.php:177 +msgid "Import Recipes via CSV" +msgstr "" + +#: includes/class.cooked-import.php:185 +msgid "More Imports are Coming Soon..." +msgstr "" + +#: includes/class.cooked-import.php:206 msgid "Begin Import" msgstr "" -#: includes/class.cooked-import.php:178 +#: includes/class.cooked-import.php:211 +#: includes/class.cooked-import.php:231 #: includes/class.cooked-settings.php:605 msgid "reload" msgstr "" +#: includes/class.cooked-import.php:226 +msgid "Upload and Import CSV" +msgstr "" + +#: includes/class.cooked-import.php:231 +msgid "Import Complete!" +msgstr "" + +#: includes/class.cooked-import.php:231 +msgid "You can now" +msgstr "" + +#: includes/class.cooked-import.php:231 +msgid "the import screen or" +msgstr "" + +#: includes/class.cooked-import.php:231 +msgid "view your recipes" +msgstr "" + #: includes/class.cooked-measurements.php:29 msgctxt "Grams Abbreviation (Singular)" msgid "g" From 3999eeff644e3cf7767c6955320772ee3f2a25c9 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Thu, 12 Feb 2026 20:24:00 -0500 Subject: [PATCH 19/31] CSV import: add Pro taxonomies and i18n fixes - Fixed support for Pro taxonomies during CSV import (cuisine, cooking_method, diet, tags) with taxonomy_exists guards in case users have disabled it in settings and sanitize_text_field added since get_term_by's $value is not escaped for 'name' $field. You must do it yourself, if required. - Restrict diet assignments to existing terms only (https://schema.org/RestrictedDiet). - Updated admin import UI and JS to rely on localized i18n variables (remove hardcoded fallback strings) and adjust the import form markup (use __() for button label, remove explicit jQuery enqueue). - Update test CSV files to include the new columns and sample values. --- assets/admin/js/cooked-migration.js | 38 +++------- assets/admin/js/cooked-migration.min.js | 2 +- includes/class.cooked-csv-import.php | 97 +++++++++++++++++++++---- includes/class.cooked-import.php | 21 +++--- tests/test_data/recipes-large.csv | 22 +++--- tests/test_data/recipes-medium.csv | 8 +- tests/test_data/recipes-small.csv | 4 +- 7 files changed, 121 insertions(+), 71 deletions(-) diff --git a/assets/admin/js/cooked-migration.js b/assets/admin/js/cooked-migration.js index a039c2a..85a11a3 100644 --- a/assets/admin/js/cooked-migration.js +++ b/assets/admin/js/cooked-migration.js @@ -94,14 +94,12 @@ errorsDiv.hide().empty(); if (!file) { - var errorMsg = (cooked_migration_js_vars.i18n_csv_no_file || 'Please select a CSV file.'); - errorsDiv.html('

    ' + errorMsg + '

    ').show(); + errorsDiv.html('

    ' + cooked_migration_js_vars.i18n_csv_no_file + '

    ').show(); return; } if (file.type !== 'text/csv' && !file.name.endsWith('.csv')) { - var invalidFileMsg = (cooked_migration_js_vars.i18n_csv_invalid_file || 'Please select a valid CSV file.'); - errorsDiv.html('

    ' + invalidFileMsg + '

    ').show(); + errorsDiv.html('

    ' + cooked_migration_js_vars.i18n_csv_invalid_file + '

    ').show(); return; } @@ -109,7 +107,7 @@ return; } - var confirm_import = confirm(cooked_migration_js_vars.i18n_confirm_csv_import || cooked_migration_js_vars.i18n_confirm_import_recipes || 'Are you sure you want to import recipes from this CSV file?'); + var confirm_import = confirm(cooked_migration_js_vars.i18n_confirm_csv_import); if (!confirm_import) { return; } @@ -126,7 +124,7 @@ $_CookedCSVImportProgress.addClass('cooked-active'); $_CookedCSVImportProgressText.addClass('cooked-active'); $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "0%" }); - $_CookedCSVImportProgressText.text(cooked_migration_js_vars.i18n_uploading || 'Uploading...'); + $_CookedCSVImportProgressText.text(cooked_migration_js_vars.i18n_uploading); } // Upload file @@ -138,7 +136,7 @@ contentType: false, success: function(response) { if (response.success) { - $_CookedCSVImportProgressText.text(cooked_migration_js_vars.i18n_processing || 'Processing...'); + $_CookedCSVImportProgressText.text(cooked_migration_js_vars.i18n_processing); $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "50%" }); // Process CSV @@ -151,13 +149,11 @@ function(processResponse) { if (processResponse.success) { $_CookedCSVImportProgress.find('.cooked-progress-bar').css({ "width" : "100%" }); - var recipesImportedText = cooked_migration_js_vars.i18n_recipes_imported || 'recipes imported'; - $_CookedCSVImportProgressText.text(processResponse.data.success + ' / ' + processResponse.data.total + ' ' + recipesImportedText); + $_CookedCSVImportProgressText.text(processResponse.data.success + ' / ' + processResponse.data.total + ' ' + cooked_migration_js_vars.i18n_recipes_imported); // Show errors if any if (processResponse.data.errors && processResponse.data.errors.length > 0) { - var errorsLabel = cooked_migration_js_vars.i18n_errors || 'Errors:'; - var errorHtml = '

    ' + errorsLabel + '

      '; + var errorHtml = '

      ' + cooked_migration_js_vars.i18n_errors + '

        '; processResponse.data.errors.forEach(function(error) { errorHtml += '
      • ' + error + '
      • '; }); @@ -174,16 +170,7 @@ fileInput.hide(); }, 2000); } else { - var importFailedText = cooked_migration_js_vars.i18n_import_failed || 'Import failed.'; - errorsDiv.html('

        ' + (processResponse.data.message || importFailedText) + '

        ').show(); - if (processResponse.data.errors && processResponse.data.errors.length > 0) { - var errorHtml = '
          '; - processResponse.data.errors.forEach(function(error) { - errorHtml += '
        • ' + error + '
        • '; - }); - errorHtml += '
        '; - errorsDiv.append(errorHtml); - } + errorsDiv.html('

        ' + (processResponse.data.message || cooked_migration_js_vars.i18n_import_failed) + '

        ').show(); thisButton.removeClass('disabled').attr('disabled', false); fileInput.attr('disabled', false); $_CookedCSVImportProgress.removeClass('cooked-active'); @@ -192,16 +179,14 @@ }, 'json' ).fail(function() { - var failedProcessText = cooked_migration_js_vars.i18n_failed_process_csv || 'Failed to process CSV file.'; - errorsDiv.html('

        ' + failedProcessText + '

        ').show(); + errorsDiv.html('

        ' + cooked_migration_js_vars.i18n_failed_process_csv + '

        ').show(); thisButton.removeClass('disabled').attr('disabled', false); fileInput.attr('disabled', false); $_CookedCSVImportProgress.removeClass('cooked-active'); $_CookedCSVImportProgressText.removeClass('cooked-active'); }); } else { - var fileUploadFailedText = cooked_migration_js_vars.i18n_file_upload_failed || 'File upload failed.'; - errorsDiv.html('

        ' + (response.data.message || fileUploadFailedText) + '

        ').show(); + errorsDiv.html('

        ' + (response.data.message || cooked_migration_js_vars.i18n_file_upload_failed) + '

        ').show(); thisButton.removeClass('disabled').attr('disabled', false); fileInput.attr('disabled', false); $_CookedCSVImportProgress.removeClass('cooked-active'); @@ -209,8 +194,7 @@ } }, error: function() { - var failedUploadText = cooked_migration_js_vars.i18n_failed_upload_csv || 'Failed to upload CSV file.'; - errorsDiv.html('

        ' + failedUploadText + '

        ').show(); + errorsDiv.html('

        ' + cooked_migration_js_vars.i18n_failed_upload_csv + '

        ').show(); thisButton.removeClass('disabled').attr('disabled', false); fileInput.attr('disabled', false); $_CookedCSVImportProgress.removeClass('cooked-active'); diff --git a/assets/admin/js/cooked-migration.min.js b/assets/admin/js/cooked-migration.min.js index 846468d..4e2024e 100644 --- a/assets/admin/js/cooked-migration.min.js +++ b/assets/admin/js/cooked-migration.min.js @@ -1 +1 @@ -(c=>{c(document).ready(function(){var e=c("#cooked-migration-button"),o=c("#cooked-import-button"),i=c("#cooked-csv-import-button"),a=(c("#cooked-csv-import-form"),c("#cooked-migration-progress"),c("#cooked-migration-progress-text"),c("#cooked-csv-import-progress")),d=c("#cooked-csv-import-progress-text");e.length&&e.on("click",function(e){e.preventDefault();e=c(this);confirm(cooked_migration_js_vars.i18n_confirm_migrate_recipe)&&!e.hasClass("disabled")&&(e.addClass("disabled").attr("disabled",!0),e.hide(),c.post(cooked_migration_js_vars.ajax_url,{action:"cooked_get_migrate_ids"},function(e){var o;e&&(o=JSON.parse(e),0

          ",e.data.errors.forEach(function(e){i+="
        • "+e+"
        • "}),i+="
        ",s.html(i).show()),setTimeout(function(){a.hide(),d.hide(),c("#cooked-csv-import-completed").show(),t.hide(),r.hide()},2e3)):(o=cooked_migration_js_vars.i18n_import_failed||"Import failed.",s.html("

        "+(e.data.message||o)+"

        ").show(),e.data.errors&&0",e.data.errors.forEach(function(e){i+="
      • "+e+"
      • "}),i+="
      ",s.append(i)),t.removeClass("disabled").attr("disabled",!1),r.attr("disabled",!1),a.removeClass("cooked-active"),d.removeClass("cooked-active"))},"json").fail(function(){var e=cooked_migration_js_vars.i18n_failed_process_csv||"Failed to process CSV file.";s.html("

      "+e+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),r.attr("disabled",!1),a.removeClass("cooked-active"),d.removeClass("cooked-active")})):(o=cooked_migration_js_vars.i18n_file_upload_failed||"File upload failed.",s.html("

      "+(e.data.message||o)+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),r.attr("disabled",!1),a.removeClass("cooked-active"),d.removeClass("cooked-active"))},error:function(){var e=cooked_migration_js_vars.i18n_failed_upload_csv||"Failed to upload CSV file.";s.html("

      "+e+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),r.attr("disabled",!1),a.removeClass("cooked-active"),d.removeClass("cooked-active")}})):(e=cooked_migration_js_vars.i18n_csv_invalid_file||"Please select a valid CSV file.",s.html("

      "+e+"

      ").show()):(o=cooked_migration_js_vars.i18n_csv_no_file||"Please select a CSV file.",s.html("

      "+o+"

      ").show())})})})(jQuery);{function cookedDecimalAdjust(e,o,i){return void 0===i||0==+i?Math[e](o):(i=+i,null===(o=+o)||isNaN(o)||"number"!=typeof i||i%1!=0?NaN:o<0?-cookedDecimalAdjust(e,-o,i):(o=o.toString().split("e"),+((o=(o=Math[e](+(o[0]+"e"+(o[1]?+o[1]-i:-i)))).toString().split("e"))[0]+"e"+(o[1]?+o[1]+i:i))))}}Math.round10||(Math.round10=function(e,o){return cookedDecimalAdjust("round",e,o)});var cooked_recipe_migrate_counter=0,progressIterations=0;function cooked_migrate_recipes(e,d){var c,n,_,o,l=0;0"+t+" "+s+", "+r+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):1<=r?_.html(i+" / "+o+""+r+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):_.text(i+" / "+o)):_.text(i+" / "+o),cooked_migrate_recipes(e,d)):(c.hide(),_.hide(),jQuery(".recipe-setting-block.migrate_button").find("h3").hide(),jQuery(".recipe-setting-block.migrate_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.migrate_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-migration-button").hide(),jQuery("#cooked-migration-completed").addClass("cooked-active"))}))}function cooked_import_recipes(e,d,c){var n,_,l,o,p=0;0"+t+" "+s+", "+r+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):1<=r?l.html(i+" / "+o+""+r+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):l.text(i+" / "+o)):l.text(i+" / "+o),cooked_import_recipes(e,d,c)):(n.hide(),l.hide(),jQuery(".recipe-setting-block.import_button").find("h3").hide(),jQuery(".recipe-setting-block.import_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.import_button").find(".cooked-import-note").hide(),jQuery(".recipe-setting-block.import_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-import-button").hide(),jQuery("#cooked-import-completed").addClass("cooked-active"))}))} \ No newline at end of file +(d=>{d(document).ready(function(){var e=d("#cooked-migration-button"),o=d("#cooked-import-button"),t=d("#cooked-csv-import-button"),r=(d("#cooked-csv-import-form"),d("#cooked-migration-progress"),d("#cooked-migration-progress-text"),d("#cooked-csv-import-progress")),a=d("#cooked-csv-import-progress-text");e.length&&e.on("click",function(e){e.preventDefault();e=d(this);confirm(cooked_migration_js_vars.i18n_confirm_migrate_recipe)&&!e.hasClass("disabled")&&(e.addClass("disabled").attr("disabled",!0),e.hide(),d.post(cooked_migration_js_vars.ajax_url,{action:"cooked_get_migrate_ids"},function(e){var o;e&&(o=JSON.parse(e),0

        ",e.data.errors.forEach(function(e){o+="
      • "+e+"
      • "}),o+="
      ",s.html(o).show()),setTimeout(function(){r.hide(),a.hide(),d("#cooked-csv-import-completed").show(),t.hide(),i.hide()},2e3)):(s.html("

      "+(e.data.message||cooked_migration_js_vars.i18n_import_failed)+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active"))},"json").fail(function(){s.html("

      "+cooked_migration_js_vars.i18n_failed_process_csv+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active")})):(s.html("

      "+(e.data.message||cooked_migration_js_vars.i18n_file_upload_failed)+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active"))},error:function(){s.html("

      "+cooked_migration_js_vars.i18n_failed_upload_csv+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active")}})):s.html("

      "+cooked_migration_js_vars.i18n_csv_invalid_file+"

      ").show():s.html("

      "+cooked_migration_js_vars.i18n_csv_no_file+"

      ").show()})})})(jQuery);{function cookedDecimalAdjust(e,o,t){return void 0===t||0==+t?Math[e](o):(t=+t,null===(o=+o)||isNaN(o)||"number"!=typeof t||t%1!=0?NaN:o<0?-cookedDecimalAdjust(e,-o,t):(o=o.toString().split("e"),+((o=(o=Math[e](+(o[0]+"e"+(o[1]?+o[1]-t:-t)))).toString().split("e"))[0]+"e"+(o[1]?+o[1]+t:t))))}}Math.round10||(Math.round10=function(e,o){return cookedDecimalAdjust("round",e,o)});var cooked_recipe_migrate_counter=0,progressIterations=0;function cooked_migrate_recipes(e,d){var c,n,_,o,l=0;0"+i+" "+r+", "+s+" "+a+" "+cooked_migration_js_vars.i18n_remaining+"
      "):1<=s?_.html(t+" / "+o+""+s+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):_.text(t+" / "+o)):_.text(t+" / "+o),cooked_migrate_recipes(e,d)):(c.hide(),_.hide(),jQuery(".recipe-setting-block.migrate_button").find("h3").hide(),jQuery(".recipe-setting-block.migrate_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.migrate_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-migration-button").hide(),jQuery("#cooked-migration-completed").addClass("cooked-active"))}))}function cooked_import_recipes(e,d,c){var n,_,l,o,m=0;0"+i+" "+r+", "+s+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):1<=s?l.html(t+" / "+o+""+s+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):l.text(t+" / "+o)):l.text(t+" / "+o),cooked_import_recipes(e,d,c)):(n.hide(),l.hide(),jQuery(".recipe-setting-block.import_button").find("h3").hide(),jQuery(".recipe-setting-block.import_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.import_button").find(".cooked-import-note").hide(),jQuery(".recipe-setting-block.import_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-import-button").hide(),jQuery("#cooked-import-completed").addClass("cooked-active"))}))} \ No newline at end of file diff --git a/includes/class.cooked-csv-import.php b/includes/class.cooked-csv-import.php index c373eea..ec1b72d 100644 --- a/includes/class.cooked-csv-import.php +++ b/includes/class.cooked-csv-import.php @@ -322,10 +322,11 @@ public static function import_recipe( $data, $row_number = 0 ) { } // Handle taxonomies - if ( ! empty( $data['categories'] ) ) { + if ( ! empty( $data['categories'] ) && taxonomy_exists( 'cp_recipe_category' ) ) { $categories = array_map( 'trim', explode( ',', $data['categories'] ) ); $category_ids = []; foreach ( $categories as $category_name ) { + $category_name = sanitize_text_field( $category_name ); if ( ! empty( $category_name ) ) { $term = get_term_by( 'name', $category_name, 'cp_recipe_category' ); if ( ! $term ) { @@ -343,24 +344,90 @@ public static function import_recipe( $data, $row_number = 0 ) { } } - if ( ! empty( $data['tags'] ) ) { - $tags = array_map( 'trim', explode( ',', $data['tags'] ) ); - $tag_ids = []; - foreach ( $tags as $tag_name ) { - if ( ! empty( $tag_name ) ) { - $term = get_term_by( 'name', $tag_name, 'cp_recipe_tags' ); - if ( ! $term ) { - $term = wp_insert_term( $tag_name, 'cp_recipe_tags' ); - if ( ! is_wp_error( $term ) ) { - $tag_ids[] = $term['term_id']; + if ( defined('COOKED_PRO_VERSION') ) { + if ( ! empty( $data['cuisine'] ) && taxonomy_exists( 'cp_recipe_cuisine' ) ) { + $cuisines = array_map( 'trim', explode( ',', $data['cuisine'] ) ); + $cuisine_ids = []; + foreach ( $cuisines as $cuisine_name ) { + $cuisine_name = sanitize_text_field( $cuisine_name ); + if ( ! empty( $cuisine_name ) ) { + $term = get_term_by( 'name', $cuisine_name, 'cp_recipe_cuisine' ); + if ( ! $term ) { + $term = wp_insert_term( $cuisine_name, 'cp_recipe_cuisine' ); + if ( ! is_wp_error( $term ) ) { + $cuisine_ids[] = $term['term_id']; + } + } else { + $cuisine_ids[] = $term->term_id; } - } else { - $tag_ids[] = $term->term_id; } } + if ( ! empty( $cuisine_ids ) ) { + wp_set_object_terms( $recipe_id, $cuisine_ids, 'cp_recipe_cuisine' ); + } } - if ( ! empty( $tag_ids ) ) { - wp_set_object_terms( $recipe_id, $tag_ids, 'cp_recipe_tags' ); + + if ( ! empty( $data['cooking_method'] ) && taxonomy_exists( 'cp_recipe_cooking_method' ) ) { + $cooking_methods = array_map( 'trim', explode( ',', $data['cooking_method'] ) ); + $cooking_method_ids = []; + foreach ( $cooking_methods as $cooking_method_name ) { + $cooking_method_name = sanitize_text_field( $cooking_method_name ); + if ( ! empty( $cooking_method_name ) ) { + $term = get_term_by( 'name', $cooking_method_name, 'cp_recipe_cooking_method' ); + if ( ! $term ) { + $term = wp_insert_term( $cooking_method_name, 'cp_recipe_cooking_method' ); + if ( ! is_wp_error( $term ) ) { + $cooking_method_ids[] = $term['term_id']; + } + } else { + $cooking_method_ids[] = $term->term_id; + } + } + } + if ( ! empty( $cooking_method_ids ) ) { + wp_set_object_terms( $recipe_id, $cooking_method_ids, 'cp_recipe_cooking_method' ); + } + } + + if ( ! empty( $data['diet'] ) && taxonomy_exists( 'cp_recipe_diet' ) ) { + $diets = array_map( 'trim', explode( ',', $data['diet'] ) ); + $diet_ids = []; + foreach ( $diets as $diet_name ) { + $diet_name = sanitize_text_field( $diet_name ); + if ( empty( $diet_name ) ) { + continue; + } + // cp_recipe_diet is restricted to Schema.org RestrictedDiet values - only assign existing terms + $term = get_term_by( 'name', $diet_name, 'cp_recipe_diet' ); + + if ( $term ) { + $diet_ids[] = $term->term_id; + } + } + if ( ! empty( $diet_ids ) ) { + wp_set_object_terms( $recipe_id, $diet_ids, 'cp_recipe_diet' ); + } + } + + if ( ! empty( $data['tags'] ) && taxonomy_exists( 'cp_recipe_tags' ) ) { + $tags = array_map( 'trim', explode( ',', $data['tags'] ) ); + $tag_ids = []; + foreach ( $tags as $tag_name ) { + if ( ! empty( $tag_name ) ) { + $term = get_term_by( 'name', $tag_name, 'cp_recipe_tags' ); + if ( ! $term ) { + $term = wp_insert_term( $tag_name, 'cp_recipe_tags' ); + if ( ! is_wp_error( $term ) ) { + $tag_ids[] = $term['term_id']; + } + } else { + $tag_ids[] = $term->term_id; + } + } + } + if ( ! empty( $tag_ids ) ) { + wp_set_object_terms( $recipe_id, $tag_ids, 'cp_recipe_tags' ); + } } } diff --git a/includes/class.cooked-import.php b/includes/class.cooked-import.php index 4c686a9..9229c6d 100644 --- a/includes/class.cooked-import.php +++ b/includes/class.cooked-import.php @@ -152,19 +152,19 @@ public static function tabs_fields() { $html_desc = __( 'Import recipes from a CSV file. Your CSV file should include the following columns:', 'cooked' ); $html_desc .= '
        '; $html_desc .= '
      • title - ' . __( 'Recipe title (required)', 'cooked' ) . '
      • '; - $html_desc .= '
      • excerpt - ' . __( 'Recipe excerpt/description', 'cooked' ) . '
      • '; + $html_desc .= '
      • excerpt - ' . __( 'Excerpt/description', 'cooked' ) . '
      • '; $html_desc .= '
      • prep_time - ' . __( 'Prep time in minutes', 'cooked' ) . '
      • '; $html_desc .= '
      • cook_time - ' . __( 'Cook time in minutes', 'cooked' ) . '
      • '; $html_desc .= '
      • difficulty_level - ' . __( 'Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)', 'cooked' ) . '
      • '; - $html_desc .= '
      • ingredients - ' . __( 'Ingredients separated by pipe (|). Format: "amount|measurement|name" or "name" for simple ingredients. Add substitutions with double pipe (||): "amount|measurement|name||sub_amount|sub_measurement|sub_name"', 'cooked' ) . '
      • '; - $html_desc .= '
      • directions - ' . __( 'Directions/instructions separated by pipe (|)', 'cooked' ) . '
      • '; - $html_desc .= '
      • notes - ' . __( 'Recipe notes', 'cooked' ) . '
      • '; - $html_desc .= '
      • recipe_course - ' . __( 'Recipe course (category), separated by comma', 'cooked' ) . '
      • '; + $html_desc .= '
      • ingredients - ' . __( 'Ingredients, separated by pipe (|). Format: "amount|measurement|name" or "name" for simple ingredients. Add substitutions with double pipe (||): "amount|measurement|name||sub_amount|sub_measurement|sub_name"', 'cooked' ) . '
      • '; + $html_desc .= '
      • directions - ' . __( 'Directions/instructions, separated by pipe (|)', 'cooked' ) . '
      • '; + $html_desc .= '
      • notes - ' . __( 'Notes', 'cooked' ) . '
      • '; + $html_desc .= '
      • category - ' . __( 'Category, separated by comma', 'cooked' ) . '
      • '; if ( defined('COOKED_PRO_VERSION') ) { - $html_desc .= '
      • recipe_cuisine - ' . __( 'Recipe cuisine, separated by comma', 'cooked' ) . '
      • '; - $html_desc .= '
      • recipe_cooking_method - ' . __( 'Cooking method, separated by comma', 'cooked' ) . '
      • '; - $html_desc .= '
      • recipe_tags - ' . __( 'Recipe tags, separated by comma', 'cooked' ) . '
      • '; - $html_desc .= '
      • recipe_dietary - ' . __( 'Diet type, separated by comma', 'cooked' ) . '
      • '; + $html_desc .= '
      • cuisine - ' . __( 'Cuisine, separated by comma', 'cooked' ) . '
      • '; + $html_desc .= '
      • cooking_method - ' . __( 'Cooking method, separated by comma', 'cooked' ) . '
      • '; + $html_desc .= '
      • tags - ' . __( 'Tags, separated by comma', 'cooked' ) . '
      • '; + $html_desc .= '
      • diet - ' . __( 'Restricted diet type (Schema.org RestrictedDiet), separated by comma', 'cooked' ) . '
      • '; } $html_desc .= '
      '; $html_desc .= '

      ' . __( 'Note:', 'cooked' ) . ' ' . __( 'Recipes will be imported with the \'Draft\' status. After the import is complete, you can bulk edit the recipes and change their status to \'Published\'.', 'cooked' ) . '

      '; @@ -217,13 +217,12 @@ public static function field_message( $name, $field_options, $color, $field ) { } public static function field_csv_upload( $name, $field_options, $color, $field ) { - wp_enqueue_script('jquery'); echo '
      '; echo '

      '; echo ''; echo '

      '; echo '

      '; - echo ''; + echo ''; echo '

      '; echo '

      '; echo ''; diff --git a/tests/test_data/recipes-large.csv b/tests/test_data/recipes-large.csv index 05447b1..218322d 100644 --- a/tests/test_data/recipes-large.csv +++ b/tests/test_data/recipes-large.csv @@ -1,11 +1,11 @@ -title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,tags -"Simple Scrambled Eggs","Perfect fluffy scrambled eggs for breakfast",5,5,1,"4|large|Eggs||4|large|Egg Replacer|2|tbsp|Milk||2|tbsp|Almond Milk|1|tbsp|Butter|Salt and Pepper|Fresh Chives","Crack eggs into a bowl|Add milk and whisk until combined|Heat butter in a non-stick pan over medium-low heat|Pour in egg mixture|Gently stir with a spatula until cooked|Season with salt and pepper|Garnish with fresh chives","Cook low and slow for best results","Breakfast","eggs,breakfast,simple" -"Classic Caesar Salad","Crisp romaine lettuce with homemade Caesar dressing",15,0,1,"#Salad|1|head|Romaine Lettuce|1/2|cup|Parmesan Cheese|1/4|cup|Croutons|#Dressing|2|anchovy|Anchovy Fillets||2|tbsp|Miso Paste|2|cloves|Garlic|1|tbsp|Dijon Mustard|2|tbsp|Lemon Juice|1/4|cup|Olive Oil|1/4|cup|Parmesan Cheese|Black Pepper","Wash and chop romaine lettuce|In a bowl, mash anchovies with garlic|Whisk in mustard, lemon juice, and olive oil|Stir in parmesan cheese|Toss lettuce with dressing|Top with croutons and additional parmesan|Season with black pepper","Anchovies can be omitted for a vegetarian version","Salads","caesar,salad,romaine" -"Beef Stroganoff","Tender beef in a creamy mushroom sauce served over egg noodles",20,45,2,"1|lb|Beef Sirloin||1|lb|Mushrooms (for vegetarian)|2|tbsp|Butter|1|medium|Onion|8|oz|Mushrooms|2|tbsp|All-Purpose Flour|1|cup|Beef Broth||1|cup|Vegetable Broth|1|tbsp|Worcestershire Sauce|1/2|cup|Sour Cream||1/2|cup|Coconut Cream|Salt and Pepper|Egg Noodles|Fresh Parsley","Cut beef into thin strips|Season with salt and pepper|Heat butter in a large skillet|Brown beef on all sides, remove and set aside|Add onion and mushrooms, cook until softened|Sprinkle with flour and stir|Add broth and Worcestershire sauce|Return beef to pan, simmer 15 minutes|Stir in sour cream|Serve over egg noodles|Garnish with fresh parsley","Don't boil after adding sour cream or it will curdle","Main Dishes","beef,stroganoff,comfort food" -"Banana Bread","Moist and flavorful banana bread perfect for breakfast or snack",15,60,1,"3|ripe|Bananas|1/3|cup|Butter||1/3|cup|Coconut Oil|3/4|cup|Granulated Sugar|1|large|Egg||1|tbsp|Flaxseed Meal + 3 tbsp Water|1|tsp|Vanilla Extract|1|tsp|Baking Soda|Pinch of Salt|1 1/2|cups|All-Purpose Flour","Preheat oven to 350°F (175°C)|Grease a 9x5 inch loaf pan|Mash bananas in a large bowl|Mix in melted butter and sugar|Beat in egg and vanilla|Stir in baking soda and salt|Fold in flour until just combined|Pour into prepared pan|Bake for 60 minutes until toothpick comes out clean|Cool in pan 10 minutes, then transfer to wire rack","Best with very ripe bananas","Breakfast,Desserts","banana,bread,baking" -"Chicken Tikka Masala","Creamy Indian curry with tender chicken in a spiced tomato sauce",30,40,2,"#Marinade|1|lb|Chicken Breast||1|lb|Tofu|1|cup|Plain Yogurt||1|cup|Coconut Yogurt|2|tbsp|Lemon Juice|2|tsp|Garam Masala|1|tsp|Turmeric|1|tsp|Cumin|#Sauce|1|tbsp|Butter||1|tbsp|Coconut Oil|1|medium|Onion|3|cloves|Garlic|1|tbsp|Ginger|1|tbsp|Garam Masala|1|tsp|Paprika|1|can|Tomato Sauce|1|cup|Heavy Cream||1|cup|Coconut Cream|Fresh Cilantro|Basmati Rice","Cut chicken into bite-sized pieces|Mix yogurt, lemon juice, and spices for marinade|Marinate chicken for at least 30 minutes|Heat butter in a large pan|Cook chicken until browned, remove|Add onion, garlic, and ginger, cook until soft|Stir in spices and cook 1 minute|Add tomato sauce and simmer|Return chicken to pan|Stir in cream and simmer 10 minutes|Garnish with cilantro|Serve over basmati rice","Marinating overnight yields best results","Main Dishes,Indian","chicken,curry,indian,spicy" -"Caprese Salad","Fresh Italian salad with tomatoes, mozzarella, and basil",10,0,1,"4|large|Tomatoes|8|oz|Fresh Mozzarella|1/4|cup|Fresh Basil|2|tbsp|Olive Oil|1|tbsp|Balsamic Vinegar|Salt and Pepper","Slice tomatoes and mozzarella|Arrange on a platter alternating tomato and mozzarella|Tear basil leaves and scatter over top|Drizzle with olive oil and balsamic|Season with salt and pepper|Serve immediately","Use the best quality ingredients you can find","Salads,Italian","caprese,tomato,mozzarella,fresh" -"Beef and Broccoli Stir Fry","Quick and easy Chinese-inspired stir fry",15,15,1,"1|lb|Beef Sirloin||1|lb|Tempeh|1|head|Broccoli|2|cloves|Garlic|1|tbsp|Ginger|1/4|cup|Soy Sauce||1/4|cup|Tamari|2|tbsp|Honey||2|tbsp|Maple Syrup|1|tbsp|Cornstarch|2|tbsp|Vegetable Oil|Sesame Seeds|White Rice","Cut beef into thin strips|Cut broccoli into florets|Mix soy sauce, honey, and cornstarch|Heat oil in a wok or large pan|Stir-fry beef until browned, remove|Add broccoli, garlic, and ginger|Cook until broccoli is tender-crisp|Return beef to pan|Pour in sauce and stir until thickened|Garnish with sesame seeds|Serve over white rice","Cook over high heat for best results","Main Dishes,Asian","beef,broccoli,stir fry,quick" -"Apple Pie","Classic American apple pie with flaky crust",45,60,2,"#Crust|2|cups|All-Purpose Flour|1|tsp|Salt|2/3|cup|Butter||2/3|cup|Shortening|4-6|tbsp|Ice Water|#Filling|6|cups|Apples|3/4|cup|Granulated Sugar|2|tbsp|All-Purpose Flour|1|tsp|Cinnamon|1/4|tsp|Nutmeg|1|tbsp|Lemon Juice|2|tbsp|Butter","Make pie crust: mix flour and salt|Cut in butter until crumbly|Add water gradually until dough forms|Divide in half, wrap and chill 30 minutes|Peel and slice apples|Mix apples with sugar, flour, and spices|Add lemon juice|Roll out bottom crust, place in pie pan|Fill with apple mixture|Dot with butter|Cover with top crust, seal edges|Cut vents in top|Bake at 425°F for 45-50 minutes until golden","Serve warm with vanilla ice cream","Desserts","apple,pie,classic,baking" -"Greek Salad","Fresh Mediterranean salad with feta and olives",15,0,1,"2|large|Tomatoes|1|cucumber|Cucumber|1|red|Onion|1|green|Bell Pepper|4|oz|Feta Cheese|1/2|cup|Kalamata Olives|2|tbsp|Olive Oil|1|tbsp|Red Wine Vinegar|1|tsp|Dried Oregano|Salt and Pepper","Cut tomatoes into wedges|Slice cucumber|Thinly slice onion and bell pepper|Cut feta into cubes|Mix all vegetables in a bowl|Add olives and feta|Whisk together olive oil, vinegar, and oregano|Drizzle over salad|Season with salt and pepper|Toss gently and serve","Best served immediately","Salads,Mediterranean","greek,salad,feta,olives" -"Chicken Noodle Soup","Comforting homemade chicken soup with vegetables and noodles",20,30,1,"1|lb|Chicken Breast||1|lb|Chickpeas|8|cups|Chicken Broth||8|cups|Vegetable Broth|2|cups|Egg Noodles|2|carrots|Carrots|2|stalks|Celery|1|medium|Onion|2|cloves|Garlic|1|tsp|Dried Thyme|Salt and Pepper|Fresh Parsley","Cut chicken into bite-sized pieces|Dice carrots, celery, and onion|Heat broth in a large pot|Add vegetables and cook until tender|Add chicken and cook until done|Stir in noodles and cook until al dente|Season with thyme, salt, and pepper|Garnish with fresh parsley|Serve hot","Perfect for cold weather","Soups,Comfort Food","chicken,soup,noodles,comfort" +title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,cuisine,cooking_method,tags,diet +"Simple Scrambled Eggs","Perfect fluffy scrambled eggs for breakfast",5,5,1,"4|large|Eggs||4|large|Egg Replacer|2|tbsp|Milk||2|tbsp|Almond Milk|1|tbsp|Butter|Salt and Pepper|Fresh Chives","Crack eggs into a bowl|Add milk and whisk until combined|Heat butter in a non-stick pan over medium-low heat|Pour in egg mixture|Gently stir with a spatula until cooked|Season with salt and pepper|Garnish with fresh chives","Cook low and slow for best results","Breakfast","","stovetop","eggs,breakfast,simple","halal" +"Classic Caesar Salad","Crisp romaine lettuce with homemade Caesar dressing",15,0,1,"#Salad|1|head|Romaine Lettuce|1/2|cup|Parmesan Cheese|1/4|cup|Croutons|#Dressing|2|anchovy|Anchovy Fillets||2|tbsp|Miso Paste|2|cloves|Garlic|1|tbsp|Dijon Mustard|2|tbsp|Lemon Juice|1/4|cup|Olive Oil|1/4|cup|Parmesan Cheese|Black Pepper","Wash and chop romaine lettuce|In a bowl, mash anchovies with garlic|Whisk in mustard, lemon juice, and olive oil|Stir in parmesan cheese|Toss lettuce with dressing|Top with croutons and additional parmesan|Season with black pepper","Anchovies can be omitted for a vegetarian version","Salads","Italian","no-cook","caesar,salad,romaine","" +"Beef Stroganoff","Tender beef in a creamy mushroom sauce served over egg noodles",20,45,2,"1|lb|Beef Sirloin||1|lb|Mushrooms (for vegetarian)|2|tbsp|Butter|1|medium|Onion|8|oz|Mushrooms|2|tbsp|All-Purpose Flour|1|cup|Beef Broth||1|cup|Vegetable Broth|1|tbsp|Worcestershire Sauce|1/2|cup|Sour Cream||1/2|cup|Coconut Cream|Salt and Pepper|Egg Noodles|Fresh Parsley","Cut beef into thin strips|Season with salt and pepper|Heat butter in a large skillet|Brown beef on all sides, remove and set aside|Add onion and mushrooms, cook until softened|Sprinkle with flour and stir|Add broth and Worcestershire sauce|Return beef to pan, simmer 15 minutes|Stir in sour cream|Serve over egg noodles|Garnish with fresh parsley","Don't boil after adding sour cream or it will curdle","Main Dishes","Russian","stovetop","beef,stroganoff,comfort food","" +"Banana Bread","Moist and flavorful banana bread perfect for breakfast or snack",15,60,1,"3|ripe|Bananas|1/3|cup|Butter||1/3|cup|Coconut Oil|3/4|cup|Granulated Sugar|1|large|Egg||1|tbsp|Flaxseed Meal + 3 tbsp Water|1|tsp|Vanilla Extract|1|tsp|Baking Soda|Pinch of Salt|1 1/2|cups|All-Purpose Flour","Preheat oven to 350°F (175°C)|Grease a 9x5 inch loaf pan|Mash bananas in a large bowl|Mix in melted butter and sugar|Beat in egg and vanilla|Stir in baking soda and salt|Fold in flour until just combined|Pour into prepared pan|Bake for 60 minutes until toothpick comes out clean|Cool in pan 10 minutes, then transfer to wire rack","Best with very ripe bananas","Breakfast,Desserts","","baking","banana,bread,baking","" +"Chicken Tikka Masala","Creamy Indian curry with tender chicken in a spiced tomato sauce",30,40,2,"#Marinade|1|lb|Chicken Breast||1|lb|Tofu|1|cup|Plain Yogurt||1|cup|Coconut Yogurt|2|tbsp|Lemon Juice|2|tsp|Garam Masala|1|tsp|Turmeric|1|tsp|Cumin|#Sauce|1|tbsp|Butter||1|tbsp|Coconut Oil|1|medium|Onion|3|cloves|Garlic|1|tbsp|Ginger|1|tbsp|Garam Masala|1|tsp|Paprika|1|can|Tomato Sauce|1|cup|Heavy Cream||1|cup|Coconut Cream|Fresh Cilantro|Basmati Rice","Cut chicken into bite-sized pieces|Mix yogurt, lemon juice, and spices for marinade|Marinate chicken for at least 30 minutes|Heat butter in a large pan|Cook chicken until browned, remove|Add onion, garlic, and ginger, cook until soft|Stir in spices and cook 1 minute|Add tomato sauce and simmer|Return chicken to pan|Stir in cream and simmer 10 minutes|Garnish with cilantro|Serve over basmati rice","Marinating overnight yields best results","Main Dishes","Indian","stovetop","chicken,curry,indian,spicy","" +"Caprese Salad","Fresh Italian salad with tomatoes, mozzarella, and basil",10,0,1,"4|large|Tomatoes|8|oz|Fresh Mozzarella|1/4|cup|Fresh Basil|2|tbsp|Olive Oil|1|tbsp|Balsamic Vinegar|Salt and Pepper","Slice tomatoes and mozzarella|Arrange on a platter alternating tomato and mozzarella|Tear basil leaves and scatter over top|Drizzle with olive oil and balsamic|Season with salt and pepper|Serve immediately","Use the best quality ingredients you can find","Salads","Italian","no-cook","caprese,tomato,mozzarella,fresh","" +"Beef and Broccoli Stir Fry","Quick and easy Chinese-inspired stir fry",15,15,1,"1|lb|Beef Sirloin||1|lb|Tempeh|1|head|Broccoli|2|cloves|Garlic|1|tbsp|Ginger|1/4|cup|Soy Sauce||1/4|cup|Tamari|2|tbsp|Honey||2|tbsp|Maple Syrup|1|tbsp|Cornstarch|2|tbsp|Vegetable Oil|Sesame Seeds|White Rice","Cut beef into thin strips|Cut broccoli into florets|Mix soy sauce, honey, and cornstarch|Heat oil in a wok or large pan|Stir-fry beef until browned, remove|Add broccoli, garlic, and ginger|Cook until broccoli is tender-crisp|Return beef to pan|Pour in sauce and stir until thickened|Garnish with sesame seeds|Serve over white rice","Cook over high heat for best results","Main Dishes","Asian","stir-frying","beef,broccoli,stir fry,quick","" +"Apple Pie","Classic American apple pie with flaky crust",45,60,2,"#Crust|2|cups|All-Purpose Flour|1|tsp|Salt|2/3|cup|Butter||2/3|cup|Shortening|4-6|tbsp|Ice Water|#Filling|6|cups|Apples|3/4|cup|Granulated Sugar|2|tbsp|All-Purpose Flour|1|tsp|Cinnamon|1/4|tsp|Nutmeg|1|tbsp|Lemon Juice|2|tbsp|Butter","Make pie crust: mix flour and salt|Cut in butter until crumbly|Add water gradually until dough forms|Divide in half, wrap and chill 30 minutes|Peel and slice apples|Mix apples with sugar, flour, and spices|Add lemon juice|Roll out bottom crust, place in pie pan|Fill with apple mixture|Dot with butter|Cover with top crust, seal edges|Cut vents in top|Bake at 425°F for 45-50 minutes until golden","Serve warm with vanilla ice cream","Desserts","American","baking","apple,pie,classic,baking","" +"Greek Salad","Fresh Mediterranean salad with feta and olives",15,0,1,"2|large|Tomatoes|1|cucumber|Cucumber|1|red|Onion|1|green|Bell Pepper|4|oz|Feta Cheese|1/2|cup|Kalamata Olives|2|tbsp|Olive Oil|1|tbsp|Red Wine Vinegar|1|tsp|Dried Oregano|Salt and Pepper","Cut tomatoes into wedges|Slice cucumber|Thinly slice onion and bell pepper|Cut feta into cubes|Mix all vegetables in a bowl|Add olives and feta|Whisk together olive oil, vinegar, and oregano|Drizzle over salad|Season with salt and pepper|Toss gently and serve","Best served immediately","Salads","Mediterranean","no-cook","greek,salad,feta,olives","diabetic" +"Chicken Noodle Soup","Comforting homemade chicken soup with vegetables and noodles",20,30,1,"1|lb|Chicken Breast||1|lb|Chickpeas|8|cups|Chicken Broth||8|cups|Vegetable Broth|2|cups|Egg Noodles|2|carrots|Carrots|2|stalks|Celery|1|medium|Onion|2|cloves|Garlic|1|tsp|Dried Thyme|Salt and Pepper|Fresh Parsley","Cut chicken into bite-sized pieces|Dice carrots, celery, and onion|Heat broth in a large pot|Add vegetables and cook until tender|Add chicken and cook until done|Stir in noodles and cook until al dente|Season with thyme, salt, and pepper|Garnish with fresh parsley|Serve hot","Perfect for cold weather","Soups","","stovetop","chicken,soup,noodles,comfort","" diff --git a/tests/test_data/recipes-medium.csv b/tests/test_data/recipes-medium.csv index 03c1d67..9ec6f8a 100644 --- a/tests/test_data/recipes-medium.csv +++ b/tests/test_data/recipes-medium.csv @@ -1,4 +1,4 @@ -title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,tags -"Classic Beef Lasagna","A hearty Italian lasagna with layers of pasta, meat sauce, and cheese",30,60,2,"#Meat Sauce|1|lb|Ground Beef||1|lb|Ground Turkey|1|medium|Onion|3|cloves|Garlic|1|can|Crushed Tomatoes|2|tbsp|Tomato Paste|1|tsp|Dried Oregano|1|tsp|Dried Basil|Salt and Pepper to taste|#Cheese Mixture|2|cups|Ricotta Cheese|1|cup|Mozzarella Cheese|1/2|cup|Parmesan Cheese|2|large|Eggs|1/4|cup|Fresh Parsley|#Other|12|sheets|Lasagna Noodles|2|cups|Mozzarella Cheese (for topping)","Preheat oven to 375°F (190°C)|Cook lasagna noodles according to package directions|In a large skillet, brown ground beef over medium heat|Add onion and garlic, cook until softened|Stir in crushed tomatoes, tomato paste, and seasonings|Simmer for 20 minutes|In a bowl, mix ricotta, mozzarella, parmesan, eggs, and parsley|Layer: sauce, noodles, cheese mixture, repeat|Top with remaining mozzarella|Cover with foil and bake for 45 minutes|Remove foil and bake 15 more minutes until bubbly|Let stand 10 minutes before serving","Can be frozen for up to 3 months","Main Dishes,Italian","lasagna,pasta,beef,cheese" -"Vegetarian Buddha Bowl","A colorful and nutritious bowl with quinoa, roasted vegetables, and tahini dressing",20,30,1,"#Base|1|cup|Quinoa|2|cups|Vegetable Broth|#Vegetables|1|medium|Sweet Potato|1|head|Broccoli|1|red|Bell Pepper|1|cup|Chickpeas|2|tbsp|Olive Oil|Salt and Pepper|#Dressing|1/4|cup|Tahini|2|tbsp|Lemon Juice|2|tbsp|Water|1|clove|Garlic|1|tsp|Maple Syrup||1|tsp|Honey|#Toppings|1|avocado|Avocado|2|tbsp|Pumpkin Seeds|Fresh Cilantro","Preheat oven to 400°F (200°C)|Cook quinoa in vegetable broth according to package directions|Cut sweet potato into cubes, toss with olive oil|Roast sweet potato for 20 minutes|Add broccoli and bell pepper, roast 10 more minutes|Drain and rinse chickpeas, season with salt|Whisk together tahini, lemon juice, water, garlic, and sweetener|Divide quinoa among bowls|Top with roasted vegetables and chickpeas|Drizzle with tahini dressing|Garnish with avocado, pumpkin seeds, and cilantro","Great for meal prep - keeps well for 3-4 days","Main Dishes,Vegetarian","buddha bowl,vegetarian,healthy,quinoa" -"Chocolate Lava Cake","Decadent individual chocolate cakes with a molten center",15,12,2,"4|oz|Dark Chocolate|4|tbsp|Butter||4|tbsp|Coconut Oil|2|large|Eggs|2|tbsp|Granulated Sugar|2|tbsp|All-Purpose Flour|1|tsp|Vanilla Extract|Pinch of Salt|Powdered Sugar for dusting","Preheat oven to 425°F (220°C)|Butter 4 ramekins and dust with cocoa powder|Melt chocolate and butter in a double boiler|In a separate bowl, beat eggs and sugar until pale|Fold in flour, vanilla, and salt|Stir in melted chocolate mixture|Divide batter among ramekins|Bake for 12-14 minutes until edges are set but center is soft|Let cool 1 minute, then invert onto plates|Dust with powdered sugar and serve immediately","Must be served immediately while still warm","Desserts","chocolate,cake,decadent" +title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,cuisine,cooking_method,tags,diet +"Classic Beef Lasagna","A hearty Italian lasagna with layers of pasta, meat sauce, and cheese",30,60,2,"#Meat Sauce|1|lb|Ground Beef||1|lb|Ground Turkey|1|medium|Onion|3|cloves|Garlic|1|can|Crushed Tomatoes|2|tbsp|Tomato Paste|1|tsp|Dried Oregano|1|tsp|Dried Basil|Salt and Pepper to taste|#Cheese Mixture|2|cups|Ricotta Cheese|1|cup|Mozzarella Cheese|1/2|cup|Parmesan Cheese|2|large|Eggs|1/4|cup|Fresh Parsley|#Other|12|sheets|Lasagna Noodles|2|cups|Mozzarella Cheese (for topping)","Preheat oven to 375°F (190°C)|Cook lasagna noodles according to package directions|In a large skillet, brown ground beef over medium heat|Add onion and garlic, cook until softened|Stir in crushed tomatoes, tomato paste, and seasonings|Simmer for 20 minutes|In a bowl, mix ricotta, mozzarella, parmesan, eggs, and parsley|Layer: sauce, noodles, cheese mixture, repeat|Top with remaining mozzarella|Cover with foil and bake for 45 minutes|Remove foil and bake 15 more minutes until bubbly|Let stand 10 minutes before serving","Can be frozen for up to 3 months","Main Dishes","Italian","baking","lasagna,pasta,beef,cheese","" +"Vegetarian Buddha Bowl","A colorful and nutritious bowl with quinoa, roasted vegetables, and tahini dressing",20,30,1,"#Base|1|cup|Quinoa|2|cups|Vegetable Broth|#Vegetables|1|medium|Sweet Potato|1|head|Broccoli|1|red|Bell Pepper|1|cup|Chickpeas|2|tbsp|Olive Oil|Salt and Pepper|#Dressing|1/4|cup|Tahini|2|tbsp|Lemon Juice|2|tbsp|Water|1|clove|Garlic|1|tsp|Maple Syrup||1|tsp|Honey|#Toppings|1|avocado|Avocado|2|tbsp|Pumpkin Seeds|Fresh Cilantro","Preheat oven to 400°F (200°C)|Cook quinoa in vegetable broth according to package directions|Cut sweet potato into cubes, toss with olive oil|Roast sweet potato for 20 minutes|Add broccoli and bell pepper, roast 10 more minutes|Drain and rinse chickpeas, season with salt|Whisk together tahini, lemon juice, water, garlic, and sweetener|Divide quinoa among bowls|Top with roasted vegetables and chickpeas|Drizzle with tahini dressing|Garnish with avocado, pumpkin seeds, and cilantro","Great for meal prep - keeps well for 3-4 days","Main Dishes","","roasting","buddha bowl,vegetarian,healthy,quinoa","vegetarian" +"Chocolate Lava Cake","Decadent individual chocolate cakes with a molten center",15,12,2,"4|oz|Dark Chocolate|4|tbsp|Butter||4|tbsp|Coconut Oil|2|large|Eggs|2|tbsp|Granulated Sugar|2|tbsp|All-Purpose Flour|1|tsp|Vanilla Extract|Pinch of Salt|Powdered Sugar for dusting","Preheat oven to 425°F (220°C)|Butter 4 ramekins and dust with cocoa powder|Melt chocolate and butter in a double boiler|In a separate bowl, beat eggs and sugar until pale|Fold in flour, vanilla, and salt|Stir in melted chocolate mixture|Divide batter among ramekins|Bake for 12-14 minutes until edges are set but center is soft|Let cool 1 minute, then invert onto plates|Dust with powdered sugar and serve immediately","Must be served immediately while still warm","Desserts","French","baking","chocolate,cake,decadent","" diff --git a/tests/test_data/recipes-small.csv b/tests/test_data/recipes-small.csv index 7c81c7a..bf26429 100644 --- a/tests/test_data/recipes-small.csv +++ b/tests/test_data/recipes-small.csv @@ -1,2 +1,2 @@ -title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,tags -"Chocolate Chip Cookies","Classic homemade chocolate chip cookies that are soft and chewy",15,12,1,"2|cups|All-Purpose Flour|1|cup|Butter||1|cup|Margarine|1|tsp|Baking Soda|1|tsp|Salt|3/4|cup|Granulated Sugar|3/4|cup|Brown Sugar|2|large|Eggs|2|tsp|Vanilla Extract|2|cups|Chocolate Chips","Preheat oven to 375°F (190°C)|In a large bowl, cream together the butter and sugars until smooth|Beat in eggs and vanilla|In a separate bowl, combine flour, baking soda, and salt|Gradually blend into the creamed mixture|Stir in chocolate chips|Drop rounded tablespoons of dough onto ungreased cookie sheets|Bake for 9 to 11 minutes or until golden brown|Cool on baking sheet for 2 minutes before removing to wire rack","Store in an airtight container for up to 1 week","Desserts","cookies,chocolate,baking" +title,excerpt,prep_time,cook_time,difficulty_level,ingredients,directions,notes,categories,cuisine,cooking_method,tags,diet +"Chocolate Chip Cookies","Classic homemade chocolate chip cookies that are soft and chewy",15,12,1,"2|cups|All-Purpose Flour|1|cup|Butter||1|cup|Margarine|1|tsp|Baking Soda|1|tsp|Salt|3/4|cup|Granulated Sugar|3/4|cup|Brown Sugar|2|large|Eggs|2|tsp|Vanilla Extract|2|cups|Chocolate Chips","Preheat oven to 375°F (190°C)|In a large bowl, cream together the butter and sugars until smooth|Beat in eggs and vanilla|In a separate bowl, combine flour, baking soda, and salt|Gradually blend into the creamed mixture|Stir in chocolate chips|Drop rounded tablespoons of dough onto ungreased cookie sheets|Bake for 9 to 11 minutes or until golden brown|Cool on baking sheet for 2 minutes before removing to wire rack","Store in an airtight container for up to 1 week","Desserts","Italian,American","baking","cookies,chocolate","low-calorie" From 91344cd0701fb837e795c0d544a7bfe0a0ba374f Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Sun, 22 Feb 2026 16:05:56 -0500 Subject: [PATCH 20/31] Removed strings & unused variables. --- assets/admin/js/cooked-migration.js | 26 ++++++++++--------------- assets/admin/js/cooked-migration.min.js | 2 +- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/assets/admin/js/cooked-migration.js b/assets/admin/js/cooked-migration.js index 85a11a3..e3c26b4 100644 --- a/assets/admin/js/cooked-migration.js +++ b/assets/admin/js/cooked-migration.js @@ -71,7 +71,7 @@ cooked_import_recipes(json_recipe_ids, total_recipes, import_type); } } else { - console.log(cooked_migration_js_vars.i18n_something_wrong || 'Something went wrong'); + console.log(cooked_migration_js_vars.i18n_something_wrong); thisButton.addClass('disabled').attr('disabled', false); thisButton.show(); } @@ -283,7 +283,7 @@ function cooked_migrate_recipes(recipe_ids, total_recipes ) { formattedComplete.toLocaleString(); progress_percent = Math.round10( ( cooked_recipe_migrate_counter / total_recipes ) * 100, -1 ); - if ( progress_percent < 2 ){ progress_percent = 2; } + if ( progress_percent < 2 ) { progress_percent = 2; } progress_bar.css( { "width" : progress_percent + "%" } ); var remainingProgress = 100 - progress_percent; @@ -291,15 +291,13 @@ function cooked_migrate_recipes(recipe_ids, total_recipes ) { var estimatedHours, estimatedMinutes; progressIterations += 1; - if ( progress_percent < 100 && progress_percent > 3 && isFinite( estimatedCompletionTime ) ){ + if ( progress_percent < 100 && progress_percent > 3 && isFinite( estimatedCompletionTime ) ) { estimatedHours = Math.floor(estimatedCompletionTime / 3600); estimatedMinutes = Math.floor((estimatedCompletionTime / 60) % 60); - var hrsText = cooked_migration_js_vars.i18n_hrs || 'hrs'; - var minsText = cooked_migration_js_vars.i18n_mins || 'mins'; if ( estimatedHours >= 1 ){ - progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedHours + " " + hrsText + ", " + estimatedMinutes + " " + minsText + " " + cooked_migration_js_vars.i18n_remaining + "" ); + progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedHours + " " + cooked_migration_js_vars.i18n_hrs + ", " + estimatedMinutes + " " + cooked_migration_js_vars.i18n_mins + " " + cooked_migration_js_vars.i18n_remaining + "" ); } else if ( estimatedMinutes >= 1 ){ - progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedMinutes + " " + minsText + " " + cooked_migration_js_vars.i18n_remaining + "" ); + progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedMinutes + " " + cooked_migration_js_vars.i18n_mins + " " + cooked_migration_js_vars.i18n_remaining + "" ); } else { progress_text.text( formattedComplete + " / " + formattedTotal ); } @@ -326,9 +324,7 @@ function cooked_migrate_recipes(recipe_ids, total_recipes ) { function cooked_import_recipes(recipe_ids, total_recipes, import_type) { - var temp_counter = 0, - total_counter = 0, - progress_percent = 0; + var progress_percent = 0; if (total_recipes > 0) { var progress = jQuery( '#cooked-import-progress' ); @@ -379,12 +375,10 @@ function cooked_import_recipes(recipe_ids, total_recipes, import_type) { if ( progress_percent < 100 && progress_percent > 3 && isFinite( estimatedCompletionTime ) ) { estimatedHours = Math.floor(estimatedCompletionTime / 3600); estimatedMinutes = Math.floor((estimatedCompletionTime / 60) % 60); - var hrsText = cooked_migration_js_vars.i18n_hrs || 'hrs'; - var minsText = cooked_migration_js_vars.i18n_mins || 'mins'; - if ( estimatedHours >= 1 ){ - progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedHours + " " + hrsText + ", " + estimatedMinutes + " " + minsText + " " + cooked_migration_js_vars.i18n_remaining + "" ); - } else if ( estimatedMinutes >= 1 ){ - progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedMinutes + " " + minsText + " " + cooked_migration_js_vars.i18n_remaining + "" ); + if ( estimatedHours >= 1 ) { + progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedHours + " " + cooked_migration_js_vars.i18n_hrs + ", " + estimatedMinutes + " " + cooked_migration_js_vars.i18n_mins + " " + cooked_migration_js_vars.i18n_remaining + "" ); + } else if ( estimatedMinutes >= 1 ) { + progress_text.html( formattedComplete + " / " + formattedTotal + "" + estimatedMinutes + " " + cooked_migration_js_vars.i18n_mins + " " + cooked_migration_js_vars.i18n_remaining + "" ); } else { progress_text.text( formattedComplete + " / " + formattedTotal ); } diff --git a/assets/admin/js/cooked-migration.min.js b/assets/admin/js/cooked-migration.min.js index 4e2024e..26c3f10 100644 --- a/assets/admin/js/cooked-migration.min.js +++ b/assets/admin/js/cooked-migration.min.js @@ -1 +1 @@ -(d=>{d(document).ready(function(){var e=d("#cooked-migration-button"),o=d("#cooked-import-button"),t=d("#cooked-csv-import-button"),r=(d("#cooked-csv-import-form"),d("#cooked-migration-progress"),d("#cooked-migration-progress-text"),d("#cooked-csv-import-progress")),a=d("#cooked-csv-import-progress-text");e.length&&e.on("click",function(e){e.preventDefault();e=d(this);confirm(cooked_migration_js_vars.i18n_confirm_migrate_recipe)&&!e.hasClass("disabled")&&(e.addClass("disabled").attr("disabled",!0),e.hide(),d.post(cooked_migration_js_vars.ajax_url,{action:"cooked_get_migrate_ids"},function(e){var o;e&&(o=JSON.parse(e),0

        ",e.data.errors.forEach(function(e){o+="
      • "+e+"
      • "}),o+="
      ",s.html(o).show()),setTimeout(function(){r.hide(),a.hide(),d("#cooked-csv-import-completed").show(),t.hide(),i.hide()},2e3)):(s.html("

      "+(e.data.message||cooked_migration_js_vars.i18n_import_failed)+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active"))},"json").fail(function(){s.html("

      "+cooked_migration_js_vars.i18n_failed_process_csv+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active")})):(s.html("

      "+(e.data.message||cooked_migration_js_vars.i18n_file_upload_failed)+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active"))},error:function(){s.html("

      "+cooked_migration_js_vars.i18n_failed_upload_csv+"

      ").show(),t.removeClass("disabled").attr("disabled",!1),i.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active")}})):s.html("

      "+cooked_migration_js_vars.i18n_csv_invalid_file+"

      ").show():s.html("

      "+cooked_migration_js_vars.i18n_csv_no_file+"

      ").show()})})})(jQuery);{function cookedDecimalAdjust(e,o,t){return void 0===t||0==+t?Math[e](o):(t=+t,null===(o=+o)||isNaN(o)||"number"!=typeof t||t%1!=0?NaN:o<0?-cookedDecimalAdjust(e,-o,t):(o=o.toString().split("e"),+((o=(o=Math[e](+(o[0]+"e"+(o[1]?+o[1]-t:-t)))).toString().split("e"))[0]+"e"+(o[1]?+o[1]+t:t))))}}Math.round10||(Math.round10=function(e,o){return cookedDecimalAdjust("round",e,o)});var cooked_recipe_migrate_counter=0,progressIterations=0;function cooked_migrate_recipes(e,d){var c,n,_,o,l=0;0"+i+" "+r+", "+s+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):1<=s?_.html(t+" / "+o+""+s+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):_.text(t+" / "+o)):_.text(t+" / "+o),cooked_migrate_recipes(e,d)):(c.hide(),_.hide(),jQuery(".recipe-setting-block.migrate_button").find("h3").hide(),jQuery(".recipe-setting-block.migrate_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.migrate_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-migration-button").hide(),jQuery("#cooked-migration-completed").addClass("cooked-active"))}))}function cooked_import_recipes(e,d,c){var n,_,l,o,m=0;0"+i+" "+r+", "+s+" "+a+" "+cooked_migration_js_vars.i18n_remaining+"
      "):1<=s?l.html(t+" / "+o+""+s+" "+a+" "+cooked_migration_js_vars.i18n_remaining+""):l.text(t+" / "+o)):l.text(t+" / "+o),cooked_import_recipes(e,d,c)):(n.hide(),l.hide(),jQuery(".recipe-setting-block.import_button").find("h3").hide(),jQuery(".recipe-setting-block.import_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.import_button").find(".cooked-import-note").hide(),jQuery(".recipe-setting-block.import_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-import-button").hide(),jQuery("#cooked-import-completed").addClass("cooked-active"))}))} \ No newline at end of file +(d=>{d(document).ready(function(){var e=d("#cooked-migration-button"),o=d("#cooked-import-button"),i=d("#cooked-csv-import-button"),r=(d("#cooked-csv-import-form"),d("#cooked-migration-progress"),d("#cooked-migration-progress-text"),d("#cooked-csv-import-progress")),a=d("#cooked-csv-import-progress-text");e.length&&e.on("click",function(e){e.preventDefault();e=d(this);confirm(cooked_migration_js_vars.i18n_confirm_migrate_recipe)&&!e.hasClass("disabled")&&(e.addClass("disabled").attr("disabled",!0),e.hide(),d.post(cooked_migration_js_vars.ajax_url,{action:"cooked_get_migrate_ids"},function(e){var o;e&&(o=JSON.parse(e),0

        ",e.data.errors.forEach(function(e){o+="
      • "+e+"
      • "}),o+="
      ",s.html(o).show()),setTimeout(function(){r.hide(),a.hide(),d("#cooked-csv-import-completed").show(),i.hide(),t.hide()},2e3)):(s.html("

      "+(e.data.message||cooked_migration_js_vars.i18n_import_failed)+"

      ").show(),i.removeClass("disabled").attr("disabled",!1),t.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active"))},"json").fail(function(){s.html("

      "+cooked_migration_js_vars.i18n_failed_process_csv+"

      ").show(),i.removeClass("disabled").attr("disabled",!1),t.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active")})):(s.html("

      "+(e.data.message||cooked_migration_js_vars.i18n_file_upload_failed)+"

      ").show(),i.removeClass("disabled").attr("disabled",!1),t.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active"))},error:function(){s.html("

      "+cooked_migration_js_vars.i18n_failed_upload_csv+"

      ").show(),i.removeClass("disabled").attr("disabled",!1),t.attr("disabled",!1),r.removeClass("cooked-active"),a.removeClass("cooked-active")}})):s.html("

      "+cooked_migration_js_vars.i18n_csv_invalid_file+"

      ").show():s.html("

      "+cooked_migration_js_vars.i18n_csv_no_file+"

      ").show()})})})(jQuery);{function cookedDecimalAdjust(e,o,i){return void 0===i||0==+i?Math[e](o):(i=+i,null===(o=+o)||isNaN(o)||"number"!=typeof i||i%1!=0?NaN:o<0?-cookedDecimalAdjust(e,-o,i):(o=o.toString().split("e"),+((o=(o=Math[e](+(o[0]+"e"+(o[1]?+o[1]-i:-i)))).toString().split("e"))[0]+"e"+(o[1]?+o[1]+i:i))))}}Math.round10||(Math.round10=function(e,o){return cookedDecimalAdjust("round",e,o)});var cooked_recipe_migrate_counter=0,progressIterations=0;function cooked_migrate_recipes(e,r){var a,d,c,o,n=0;0"+t+" "+cooked_migration_js_vars.i18n_hrs+", "+s+" "+cooked_migration_js_vars.i18n_mins+" "+cooked_migration_js_vars.i18n_remaining+""):1<=s?c.html(i+" / "+o+""+s+" "+cooked_migration_js_vars.i18n_mins+" "+cooked_migration_js_vars.i18n_remaining+""):c.text(i+" / "+o)):c.text(i+" / "+o),cooked_migrate_recipes(e,r)):(a.hide(),c.hide(),jQuery(".recipe-setting-block.migrate_button").find("h3").hide(),jQuery(".recipe-setting-block.migrate_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.migrate_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-migration-button").hide(),jQuery("#cooked-migration-completed").addClass("cooked-active"))}))}function cooked_import_recipes(e,r,a){var d,c,n,o,_=0;0"+t+" "+cooked_migration_js_vars.i18n_hrs+", "+s+" "+cooked_migration_js_vars.i18n_mins+" "+cooked_migration_js_vars.i18n_remaining+""):1<=s?n.html(i+" / "+o+""+s+" "+cooked_migration_js_vars.i18n_mins+" "+cooked_migration_js_vars.i18n_remaining+""):n.text(i+" / "+o)):n.text(i+" / "+o),cooked_import_recipes(e,r,a)):(d.hide(),n.hide(),jQuery(".recipe-setting-block.import_button").find("h3").hide(),jQuery(".recipe-setting-block.import_button").find("p:nth-child(2)").hide(),jQuery(".recipe-setting-block.import_button").find(".cooked-import-note").hide(),jQuery(".recipe-setting-block.import_button").find("ul.cooked-admin-ul").hide(),jQuery("#cooked-import-button").hide(),jQuery("#cooked-import-completed").addClass("cooked-active"))}))} \ No newline at end of file From effabb3678bacd415e0566d39bff66942d8ae412 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Sun, 22 Feb 2026 16:11:39 -0500 Subject: [PATCH 21/31] Minor fix --- includes/class.cooked-ajax.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/class.cooked-ajax.php b/includes/class.cooked-ajax.php index 1c45384..115d540 100644 --- a/includes/class.cooked-ajax.php +++ b/includes/class.cooked-ajax.php @@ -343,7 +343,7 @@ public function save_default() { $_cooked_settings['default_content'] = wp_kses_post( $_POST['default_content'] ); update_option('cooked_settings', $_cooked_settings); } else { - echo esc_html__( 'No default content provided.', 'cooked' ); + echo __( 'No default content provided.', 'cooked' ); } wp_die(); From d9881b7f39004fce8aa9bc308af369d6bf959b43 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Sun, 22 Feb 2026 16:12:02 -0500 Subject: [PATCH 22/31] Language files --- languages/cooked.po | 133 +++++++++++++++++++++---------------------- languages/cooked.pot | 95 +++++++++++++++---------------- 2 files changed, 111 insertions(+), 117 deletions(-) diff --git a/languages/cooked.po b/languages/cooked.po index ebb1884..2f423ee 100644 --- a/languages/cooked.po +++ b/languages/cooked.po @@ -150,7 +150,7 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:263 #: includes/class.cooked-recipe-meta.php:1166 #: includes/class.cooked-recipes.php:635 -#: templates/front/recipe.php:34 +#: includes/class.cooked-recipes.php:667 msgid "Ingredients" msgstr "" @@ -161,7 +161,7 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:269 #: includes/class.cooked-recipe-meta.php:1197 #: includes/class.cooked-recipes.php:639 -#: templates/front/recipe.php:35 +#: includes/class.cooked-recipes.php:668 msgid "Directions" msgstr "" @@ -204,6 +204,7 @@ msgid "Images" msgstr "" #: includes/class.cooked-functions.php:136 +#: includes/class.cooked-import.php:161 #: includes/class.cooked-recipe-meta.php:1381 #: includes/class.cooked-recipes.php:642 #: includes/class.cooked-settings.php:232 @@ -303,7 +304,7 @@ msgid "Begin Import" msgstr "" #: includes/class.cooked-import.php:211 -#: includes/class.cooked-import.php:231 +#: includes/class.cooked-import.php:230 #: includes/class.cooked-settings.php:605 msgid "reload" msgstr "" @@ -587,7 +588,7 @@ msgid "cans" msgstr "" #: includes/class.cooked-measurements.php:202 -#: includes/class.cooked-recipes.php:798 +#: includes/class.cooked-recipes.php:872 #: includes/class.cooked-settings.php:236 msgid "Servings" msgstr "" @@ -1367,36 +1368,36 @@ msgstr "" msgid "All %s" msgstr "" -#: includes/class.cooked-recipes.php:650 +#: includes/class.cooked-recipes.php:724 msgid "Beginner" msgstr "" -#: includes/class.cooked-recipes.php:651 +#: includes/class.cooked-recipes.php:725 msgid "Intermediate" msgstr "" -#: includes/class.cooked-recipes.php:652 +#: includes/class.cooked-recipes.php:726 msgid "Advanced" msgstr "" -#: includes/class.cooked-recipes.php:678 +#: includes/class.cooked-recipes.php:752 msgid "Cooked Gallery" msgstr "" -#: includes/class.cooked-recipes.php:682 +#: includes/class.cooked-recipes.php:756 msgid "Envira Gallery" msgstr "" -#: includes/class.cooked-recipes.php:686 +#: includes/class.cooked-recipes.php:760 msgid "Soliloquy Slider" msgstr "" -#: includes/class.cooked-recipes.php:690 +#: includes/class.cooked-recipes.php:764 msgid "Slider Revolution" msgstr "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:765 +#: includes/class.cooked-recipes.php:839 #, php-format msgid "Quarter (%s Serving)" msgid_plural "Quarter (%s Servings)" @@ -1404,7 +1405,7 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:768 +#: includes/class.cooked-recipes.php:842 #, php-format msgid "Half (%s Serving)" msgid_plural "Half (%s Servings)" @@ -1412,7 +1413,7 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:771 +#: includes/class.cooked-recipes.php:845 #, php-format msgid "Default (%s Serving)" msgid_plural "Default (%s Servings)" @@ -1420,25 +1421,25 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:774 +#: includes/class.cooked-recipes.php:848 #, php-format msgid "Double (%s Servings)" msgstr "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:777 +#: includes/class.cooked-recipes.php:851 #, php-format msgid "Triple (%s Servings)" msgstr "" -#: includes/class.cooked-recipes.php:791 +#: includes/class.cooked-recipes.php:865 #: includes/class.cooked-shortcodes.php:448 msgid "Yields" msgstr "" #. translators: singular and plural "serving" sizes -#: includes/class.cooked-recipes.php:795 -#: includes/class.cooked-recipes.php:806 +#: includes/class.cooked-recipes.php:869 +#: includes/class.cooked-recipes.php:880 #, php-format msgid "%s Serving" msgid_plural "%s Servings" @@ -1446,51 +1447,51 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural "steps" -#: includes/class.cooked-recipes.php:961 +#: includes/class.cooked-recipes.php:1035 #: includes/class.cooked-seo.php:83 #, php-format msgid "Step %d" msgstr "" -#: includes/class.cooked-recipes.php:1021 +#: includes/class.cooked-recipes.php:1095 msgid "Browse" msgstr "" -#: includes/class.cooked-recipes.php:1039 +#: includes/class.cooked-recipes.php:1113 #: includes/class.cooked-settings.php:157 msgid "No categories" msgstr "" -#: includes/class.cooked-recipes.php:1042 +#: includes/class.cooked-recipes.php:1116 #: includes/class.cooked-settings.php:204 #: includes/class.cooked-taxonomies.php:38 #: includes/class.cooked-taxonomies.php:48 msgid "Categories" msgstr "" -#: includes/class.cooked-recipes.php:1044 +#: includes/class.cooked-recipes.php:1118 #: includes/class.cooked-taxonomies.php:41 #: includes/widgets/recipe-categories.php:48 msgid "All Categories" msgstr "" -#: includes/class.cooked-recipes.php:1115 +#: includes/class.cooked-recipes.php:1189 msgid "Find a recipe..." msgstr "" -#: includes/class.cooked-recipes.php:1130 +#: includes/class.cooked-recipes.php:1204 msgid "Newest first" msgstr "" -#: includes/class.cooked-recipes.php:1134 +#: includes/class.cooked-recipes.php:1208 msgid "Oldest first" msgstr "" -#: includes/class.cooked-recipes.php:1138 +#: includes/class.cooked-recipes.php:1212 msgid "Alphabetical (A-Z)" msgstr "" -#: includes/class.cooked-recipes.php:1142 +#: includes/class.cooked-recipes.php:1216 msgid "Alphabetical (Z-A)" msgstr "" @@ -2166,7 +2167,7 @@ msgstr "" msgid "h6" msgstr "" -#: includes/class.cooked-recipes.php:1117 +#: includes/class.cooked-recipes.php:1191 msgid "Search" msgstr "" @@ -2233,8 +2234,8 @@ msgstr "" msgid "ex. Apple Sauce, Tofu, etc." msgstr "" -#: includes/class.cooked-recipes.php:903 -#: includes/class.cooked-recipes.php:917 +#: includes/class.cooked-recipes.php:977 +#: includes/class.cooked-recipes.php:991 msgid "or" msgstr "" @@ -2571,10 +2572,6 @@ msgstr "" msgid "Recipe title (required)" msgstr "" -#: includes/class.cooked-import.php:155 -msgid "Recipe excerpt/description" -msgstr "" - #: includes/class.cooked-import.php:156 msgid "Prep time in minutes" msgstr "" @@ -2587,66 +2584,66 @@ msgstr "" msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" msgstr "" -#: includes/class.cooked-import.php:159 -msgid "Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or \"name\" for simple ingredients. Add substitutions with double pipe (||): \"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" +#: includes/class.cooked-import.php:165 +msgid "Cooking method, separated by comma" msgstr "" -#: includes/class.cooked-import.php:160 -msgid "Directions/instructions separated by pipe (|)" +#: includes/class.cooked-import.php:170 +msgid "Recipes will be imported with the 'Draft' status. After the import is complete, you can bulk edit the recipes and change their status to 'Published'." msgstr "" -#: includes/class.cooked-import.php:161 -msgid "Recipe notes" +#: includes/class.cooked-import.php:173 +msgid "CSV Import" msgstr "" -#: includes/class.cooked-import.php:162 -msgid "Recipe course (category), separated by comma" +#: includes/class.cooked-import.php:177 +msgid "Import Recipes via CSV" msgstr "" -#: includes/class.cooked-import.php:164 -msgid "Recipe cuisine, separated by comma" +#: includes/class.cooked-import.php:225 +msgid "Upload and Import CSV" msgstr "" -#: includes/class.cooked-import.php:165 -msgid "Cooking method, separated by comma" +#: includes/class.cooked-import.php:230 +msgid "Import Complete!" msgstr "" -#: includes/class.cooked-import.php:166 -msgid "Recipe tags, separated by comma" +#: includes/class.cooked-import.php:230 +msgid "You can now" msgstr "" -#: includes/class.cooked-import.php:167 -msgid "Diet type, separated by comma" +#: includes/class.cooked-import.php:230 +msgid "the import screen or" msgstr "" -#: includes/class.cooked-import.php:170 -msgid "Recipes will be imported with the 'Draft' status. After the import is complete, you can bulk edit the recipes and change their status to 'Published'." +#: includes/class.cooked-import.php:230 +msgid "view your recipes" msgstr "" -#: includes/class.cooked-import.php:173 -msgid "CSV Import" +#: includes/class.cooked-import.php:155 +msgid "Excerpt/description" msgstr "" -#: includes/class.cooked-import.php:177 -msgid "Import Recipes via CSV" +#: includes/class.cooked-import.php:159 +msgid "Ingredients, separated by pipe (|). Format: \"amount|measurement|name\" or \"name\" for simple ingredients. Add substitutions with double pipe (||): \"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" msgstr "" -#: includes/class.cooked-import.php:226 -msgid "Upload and Import CSV" +#: includes/class.cooked-import.php:160 +msgid "Directions/instructions, separated by pipe (|)" msgstr "" -#: includes/class.cooked-import.php:231 -msgid "Import Complete!" +#: includes/class.cooked-import.php:162 +msgid "Category, separated by comma" msgstr "" -#: includes/class.cooked-import.php:231 -msgid "You can now" +#: includes/class.cooked-import.php:164 +msgid "Cuisine, separated by comma" msgstr "" -#: includes/class.cooked-import.php:231 -msgid "the import screen or" +#: includes/class.cooked-import.php:166 +msgid "Tags, separated by comma" msgstr "" -#: includes/class.cooked-import.php:231 -msgid "view your recipes" +#: includes/class.cooked-import.php:167 +msgid "Restricted diet type (Schema.org RestrictedDiet), separated by comma" msgstr "" diff --git a/languages/cooked.pot b/languages/cooked.pot index 522d6fb..ae3b0b4 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-02-12T19:16:46-05:00\n" +"POT-Creation-Date: 2026-02-22T16:11:23-05:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: cooked\n" @@ -220,7 +220,7 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:263 #: includes/class.cooked-recipe-meta.php:1166 #: includes/class.cooked-recipes.php:635 -#: templates/front/recipe.php:34 +#: includes/class.cooked-recipes.php:667 msgid "Ingredients" msgstr "" @@ -231,7 +231,7 @@ msgstr "" #: includes/class.cooked-recipe-meta.php:269 #: includes/class.cooked-recipe-meta.php:1197 #: includes/class.cooked-recipes.php:639 -#: templates/front/recipe.php:35 +#: includes/class.cooked-recipes.php:668 msgid "Directions" msgstr "" @@ -346,6 +346,7 @@ msgid "Images" msgstr "" #: includes/class.cooked-functions.php:136 +#: includes/class.cooked-import.php:161 #: includes/class.cooked-recipe-meta.php:1381 #: includes/class.cooked-recipes.php:642 #: includes/class.cooked-settings.php:232 @@ -458,7 +459,7 @@ msgid "Recipe title (required)" msgstr "" #: includes/class.cooked-import.php:155 -msgid "Recipe excerpt/description" +msgid "Excerpt/description" msgstr "" #: includes/class.cooked-import.php:156 @@ -474,23 +475,19 @@ msgid "Difficulty level (1=Beginner, 2=Intermediate, 3=Advanced)" msgstr "" #: includes/class.cooked-import.php:159 -msgid "Ingredients separated by pipe (|). Format: \"amount|measurement|name\" or \"name\" for simple ingredients. Add substitutions with double pipe (||): \"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" +msgid "Ingredients, separated by pipe (|). Format: \"amount|measurement|name\" or \"name\" for simple ingredients. Add substitutions with double pipe (||): \"amount|measurement|name||sub_amount|sub_measurement|sub_name\"" msgstr "" #: includes/class.cooked-import.php:160 -msgid "Directions/instructions separated by pipe (|)" -msgstr "" - -#: includes/class.cooked-import.php:161 -msgid "Recipe notes" +msgid "Directions/instructions, separated by pipe (|)" msgstr "" #: includes/class.cooked-import.php:162 -msgid "Recipe course (category), separated by comma" +msgid "Category, separated by comma" msgstr "" #: includes/class.cooked-import.php:164 -msgid "Recipe cuisine, separated by comma" +msgid "Cuisine, separated by comma" msgstr "" #: includes/class.cooked-import.php:165 @@ -498,11 +495,11 @@ msgid "Cooking method, separated by comma" msgstr "" #: includes/class.cooked-import.php:166 -msgid "Recipe tags, separated by comma" +msgid "Tags, separated by comma" msgstr "" #: includes/class.cooked-import.php:167 -msgid "Diet type, separated by comma" +msgid "Restricted diet type (Schema.org RestrictedDiet), separated by comma" msgstr "" #: includes/class.cooked-import.php:170 @@ -526,28 +523,28 @@ msgid "Begin Import" msgstr "" #: includes/class.cooked-import.php:211 -#: includes/class.cooked-import.php:231 +#: includes/class.cooked-import.php:230 #: includes/class.cooked-settings.php:605 msgid "reload" msgstr "" -#: includes/class.cooked-import.php:226 +#: includes/class.cooked-import.php:225 msgid "Upload and Import CSV" msgstr "" -#: includes/class.cooked-import.php:231 +#: includes/class.cooked-import.php:230 msgid "Import Complete!" msgstr "" -#: includes/class.cooked-import.php:231 +#: includes/class.cooked-import.php:230 msgid "You can now" msgstr "" -#: includes/class.cooked-import.php:231 +#: includes/class.cooked-import.php:230 msgid "the import screen or" msgstr "" -#: includes/class.cooked-import.php:231 +#: includes/class.cooked-import.php:230 msgid "view your recipes" msgstr "" @@ -843,7 +840,7 @@ msgid "cans" msgstr "" #: includes/class.cooked-measurements.php:202 -#: includes/class.cooked-recipes.php:798 +#: includes/class.cooked-recipes.php:872 #: includes/class.cooked-settings.php:236 msgid "Servings" msgstr "" @@ -1756,36 +1753,36 @@ msgstr "" msgid "All %s" msgstr "" -#: includes/class.cooked-recipes.php:650 +#: includes/class.cooked-recipes.php:724 msgid "Beginner" msgstr "" -#: includes/class.cooked-recipes.php:651 +#: includes/class.cooked-recipes.php:725 msgid "Intermediate" msgstr "" -#: includes/class.cooked-recipes.php:652 +#: includes/class.cooked-recipes.php:726 msgid "Advanced" msgstr "" -#: includes/class.cooked-recipes.php:678 +#: includes/class.cooked-recipes.php:752 msgid "Cooked Gallery" msgstr "" -#: includes/class.cooked-recipes.php:682 +#: includes/class.cooked-recipes.php:756 msgid "Envira Gallery" msgstr "" -#: includes/class.cooked-recipes.php:686 +#: includes/class.cooked-recipes.php:760 msgid "Soliloquy Slider" msgstr "" -#: includes/class.cooked-recipes.php:690 +#: includes/class.cooked-recipes.php:764 msgid "Slider Revolution" msgstr "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:765 +#: includes/class.cooked-recipes.php:839 #, php-format msgid "Quarter (%s Serving)" msgid_plural "Quarter (%s Servings)" @@ -1793,7 +1790,7 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:768 +#: includes/class.cooked-recipes.php:842 #, php-format msgid "Half (%s Serving)" msgid_plural "Half (%s Servings)" @@ -1801,7 +1798,7 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:771 +#: includes/class.cooked-recipes.php:845 #, php-format msgid "Default (%s Serving)" msgid_plural "Default (%s Servings)" @@ -1809,86 +1806,86 @@ msgstr[0] "" msgstr[1] "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:774 +#: includes/class.cooked-recipes.php:848 #, php-format msgid "Double (%s Servings)" msgstr "" #. translators: singular and plural quarter "serving" size -#: includes/class.cooked-recipes.php:777 +#: includes/class.cooked-recipes.php:851 #, php-format msgid "Triple (%s Servings)" msgstr "" -#: includes/class.cooked-recipes.php:791 +#: includes/class.cooked-recipes.php:865 #: includes/class.cooked-shortcodes.php:448 msgid "Yields" msgstr "" #. translators: singular and plural "serving" sizes -#: includes/class.cooked-recipes.php:795 -#: includes/class.cooked-recipes.php:806 +#: includes/class.cooked-recipes.php:869 +#: includes/class.cooked-recipes.php:880 #, php-format msgid "%s Serving" msgid_plural "%s Servings" msgstr[0] "" msgstr[1] "" -#: includes/class.cooked-recipes.php:903 -#: includes/class.cooked-recipes.php:917 +#: includes/class.cooked-recipes.php:977 +#: includes/class.cooked-recipes.php:991 msgid "or" msgstr "" #. translators: singular and plural "steps" -#: includes/class.cooked-recipes.php:961 +#: includes/class.cooked-recipes.php:1035 #: includes/class.cooked-seo.php:83 #, php-format msgid "Step %d" msgstr "" -#: includes/class.cooked-recipes.php:1021 +#: includes/class.cooked-recipes.php:1095 msgid "Browse" msgstr "" -#: includes/class.cooked-recipes.php:1039 +#: includes/class.cooked-recipes.php:1113 #: includes/class.cooked-settings.php:157 msgid "No categories" msgstr "" -#: includes/class.cooked-recipes.php:1042 +#: includes/class.cooked-recipes.php:1116 #: includes/class.cooked-settings.php:204 #: includes/class.cooked-taxonomies.php:38 #: includes/class.cooked-taxonomies.php:48 msgid "Categories" msgstr "" -#: includes/class.cooked-recipes.php:1044 +#: includes/class.cooked-recipes.php:1118 #: includes/class.cooked-taxonomies.php:41 #: includes/widgets/recipe-categories.php:48 msgid "All Categories" msgstr "" -#: includes/class.cooked-recipes.php:1115 +#: includes/class.cooked-recipes.php:1189 msgid "Find a recipe..." msgstr "" -#: includes/class.cooked-recipes.php:1117 +#: includes/class.cooked-recipes.php:1191 msgid "Search" msgstr "" -#: includes/class.cooked-recipes.php:1130 +#: includes/class.cooked-recipes.php:1204 msgid "Newest first" msgstr "" -#: includes/class.cooked-recipes.php:1134 +#: includes/class.cooked-recipes.php:1208 msgid "Oldest first" msgstr "" -#: includes/class.cooked-recipes.php:1138 +#: includes/class.cooked-recipes.php:1212 msgid "Alphabetical (A-Z)" msgstr "" -#: includes/class.cooked-recipes.php:1142 +#: includes/class.cooked-recipes.php:1216 msgid "Alphabetical (Z-A)" msgstr "" From f1d43e253386134746e9ac97b2f45a3c27ae52c6 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Mon, 23 Feb 2026 15:32:27 -0500 Subject: [PATCH 23/31] Fix for #126 Fullscreen not working inside Elementor --- assets/js/cooked-functions.js | 25 +++++---- assets/js/cooked-functions.min.js | 2 +- includes/class.cooked-elementor.php | 9 +++- includes/class.cooked-recipes.php | 78 ++++++++++++++++++++++++++++- languages/cooked.pot | 2 +- templates/front/recipe.php | 16 ++---- 6 files changed, 102 insertions(+), 30 deletions(-) diff --git a/assets/js/cooked-functions.js b/assets/js/cooked-functions.js index 0045676..ea8981c 100644 --- a/assets/js/cooked-functions.js +++ b/assets/js/cooked-functions.js @@ -47,20 +47,19 @@ var cooked_loading = false; if ( $_Cooked_Ingredient_Boxes.length ) { init_cooked_ingredients($_Cooked_Ingredient_Boxes); + } - function init_cooked_ingredients( Cooked_Ingredient_Boxes ){ - Cooked_Ingredient_Boxes.on( 'click',function(e){ - var thisCheckbox = $(this); - if ( thisCheckbox.hasClass( 'cooked-checked' ) ){ - thisCheckbox.parent().removeClass( 'cooked-checked' ); - thisCheckbox.removeClass( 'cooked-checked' ); - } else { - thisCheckbox.parent().addClass( 'cooked-checked' ); - thisCheckbox.addClass( 'cooked-checked' ); - } - }); - } - + function init_cooked_ingredients( Cooked_Ingredient_Boxes ){ + Cooked_Ingredient_Boxes.on( 'click',function(e){ + var thisCheckbox = $(this); + if ( thisCheckbox.hasClass( 'cooked-checked' ) ){ + thisCheckbox.parent().removeClass( 'cooked-checked' ); + thisCheckbox.removeClass( 'cooked-checked' ); + } else { + thisCheckbox.parent().addClass( 'cooked-checked' ); + thisCheckbox.addClass( 'cooked-checked' ); + } + }); } /**** 4. Servings Switcher ****/ diff --git a/assets/js/cooked-functions.min.js b/assets/js/cooked-functions.min.js index f61a9f6..e31d7e2 100644 --- a/assets/js/cooked-functions.min.js +++ b/assets/js/cooked-functions.min.js @@ -1 +1 @@ -var cooked_loading=!1;(l=>{$_Cooked_Ingredient_Boxes=l(".cooked-ingredient-checkbox"),$_Cooked_Fotorama=l(".cooked-recipe-gallery"),$_Cooked_Ajax_List=l(".cooked-recipe-loader"),$_Cooked_Recipe_Search=l(".cooked-recipe-search"),$_Cooked_Timers=l(".cooked-timer > a"),$_Cooked_FSM_Button=l(".cooked-fsm-button"),$_Cooked_Fotorama.length&&$_Cooked_Fotorama.on("fotorama:ready",function(e,o){setTimeout(function(){$_Cooked_Fotorama.addClass("cooked-gallery-loaded")},100)}),l(document).ready(function(){$_Cooked_Fotorama.length&&$_Cooked_Fotorama.fotorama();{function i(e){e.on("click",function(e){var o=l(this);o.hasClass("cooked-checked")?(o.parent().removeClass("cooked-checked"),o.removeClass("cooked-checked")):(o.parent().addClass("cooked-checked"),o.addClass("cooked-checked"))})}$_Cooked_Ingredient_Boxes.length&&i($_Cooked_Ingredient_Boxes)}var a,c;function d(e){e.on("click",function(e){e.preventDefault();var o,s,e=l(this),i="cookedTimer-"+e.data("timer-id"),c=l("#cooked-timers-wrap").find(".cooked-timer-block").length;l("div#"+i).length?(l("div#"+i).css({background:"#eeeeee"}),setTimeout(function(){l("div#"+i).css({background:""})},200)):4==c?(l("#cooked-timers-wrap").css({transform:"translate3d(0,0.5em,0)"}),setTimeout(function(){l("#cooked-timers-wrap").css({transform:""})},200)):(o=7.5*(c+=1),s=e.parents(".cooked-single-direction").length?e.parents(".cooked-single-direction").data("step"):cooked_functions_i18n_js_vars.i18n_timer,s={id:i,seconds:e.data("seconds"),step:s,desc:e.data("desc")},l("#cooked-timers-wrap").length?(e=1==c?" cooked-visible":"",a",{id:"cooked-timers-wrap"}),c=t(s),e.append(c),l("body").append(e),n(l("#"+s.id).find(".cooked-timer-obj"),!1),setTimeout(function(){l("#cooked-timers-wrap").addClass("cooked-visible")},50)))})}function t(e,o="cooked-visible"){o=l("
      ",{id:e.id,class:"cooked-timer-block "+o}),l("",{class:"cooked-timer-step",text:e.step}).appendTo(o),l("",{class:"cooked-timer-desc",text:e.desc}).appendTo(o),l("
      ",{class:"cooked-timer-obj","data-seconds-left":e.seconds}).appendTo(o),l("",{class:"cooked-icon cooked-icon-times"}).appendTo(o),e=l("
      ",{class:"cooked-progress"});return l("").appendTo(e),e.appendTo(o),o}function n(o,e){var s=cooked_functions_js_vars.timer_sound,i=new Audio(s),c=o.parents(".cooked-timer-block").attr("id"),d=o.data("seconds-left"),t=o.parents(".cooked-timer-block");o.startTimer({classNames:{hours:"cooked-timer-hours",minutes:"cooked-timer-minutes",seconds:"cooked-timer-seconds",clearDiv:"cooked-timer-clearDiv",timeout:"cooked-timer-timeout"},onComplete:function(){i.play(),o.addClass("cooked-timer-complete")}}),o.prepend(''),e&&(o.trigger("pause"),t.addClass("cooked-paused"),t.find("i.cooked-icon-pause").hide(),t.find("i.cooked-icon-play").css({display:"inline-block"}),t.addClass("cooked-paused"),l(this).parent().find("i.cooked-icon-play").css({display:"inline-block"})),r(t,10,10),o.on("update",function(e,o){r(t,o,d)}),o.on("complete",function(e,o){i.play(),t.find("i.cooked-icon-pause").hide(),t.find("i.cooked-icon-play").hide(),t.find(".cooked-timer-seconds").html("00")}),o.on("click","i.cooked-icon-pause",function(e){e.preventDefault(),l(this).hide(),t.addClass("cooked-paused"),l(this).parent().find("i.cooked-icon-play").css({display:"inline-block"}),o.trigger("pause")}),o.on("click","i.cooked-icon-play",function(e){e.preventDefault(),l(this).hide(),t.removeClass("cooked-paused cooked-complete"),l(this).parent().find("i.cooked-icon-pause").css({display:"inline-block"}),o.trigger("resume")}),o.on("click","i.cooked-icon-reverse",function(e){e.preventDefault(),t.removeClass("cooked-paused cooked-complete"),l(this).parent().find("i.cooked-icon-play").css({display:"inline-block"}),l(this).parent().find("i.cooked-icon-pause").hide(),o.remove(),l("#"+c).append('
      '),n(l("#"+c).find(".cooked-timer-obj"),!0)}),t.on("click","i.cooked-icon-times",function(e){var o;e.preventDefault(),1==l("#cooked-timers-wrap").find(".cooked-timer-block").length?l("#cooked-timers-wrap").removeClass("cooked-visible"):(o=7.5*(e=l("#cooked-timers-wrap").find(".cooked-timer-block").length-1),l("#cooked-timers-wrap").css({height:o+"em"}),t.removeClass("cooked-visible"),e==a&&l("#cooked-timers-wrap").removeClass("cooked-multiples")),setTimeout(function(){t.remove()},200)})}function r(e,o,s){o=100-o/s*100;e.find(".cooked-progress > span").css({width:o+"%"}),100<=o&&e.addClass("cooked-complete")}l(".cooked-servings").length&&l(".cooked-servings").find("select").on("change",function(e){e.preventDefault();var e=l(this).children("option:selected").val(),o=new URL(window.location.href);o.searchParams.set("servings",e),window.location.href=o.toString()}),$_Cooked_Recipe_Search.length&&(l("body").on("click",function(e){var o=!1;0{var o;e.value&&(o=encodeURIComponent(e.prefix),e=encodeURIComponent(e.value),s.push(o+"/"+e))}),e.search&&s.push("search/"+encodeURIComponent(e.search)),s.push("sort/"+encodeURIComponent(e.sort));e=s.filter(Boolean).join("/"),e=((cooked_functions_js_vars.browse_page_url||cooked_functions_js_vars.site_url)+"/"+e).replace(/\/+/g,"/").replace(":/","://");window.location.href=e}),$_Cooked_Timers.length&&(a=1,d($_Cooked_Timers)),$_Cooked_FSM_Button.length&&(c=new NoSleep,$_Cooked_FSM_Button.on("click",function(e){e.preventDefault();var e=l(this).data("recipe-id"),e=l('.cooked-fsm[data-recipe-id="'+e+'"]'),o=(l("body").addClass("cooked-noscroll cooked-fsm-active"),e.clone().appendTo("body")),e=(setTimeout(function(){o.addClass("cooked-visible")},10),setTimeout(function(){o.addClass("cooked-active")},50),o.find(".cooked-timer > a")),s=o.find(".cooked-ingredient-checkbox");d(e),i(s),c.enable(),o.on("click",".cooked-close-fsm",function(e){e.preventDefault(),o.removeClass("cooked-active"),l("body").removeClass("cooked-noscroll cooked-fsm-active"),c.disable(),setTimeout(function(){o.remove()},350)})}),l("body").on("click",".cooked-fsm-mobile-nav > a",function(e){e.preventDefault();var e=l(this),o=e.data("nav-id"),s=e.parents(".cooked-fsm");s.find(".cooked-fsm-mobile-nav > a").removeClass("cooked-active"),s.find(".cooked-fsm-content").removeClass("cooked-active"),e.addClass("cooked-active"),("ingredients"==o?s.find(".cooked-fsm-content.cooked-fsm-ingredients"):(s.find(".cooked-fsm-content.cooked-fsm-directions-wrap").addClass("cooked-active"),s.find(".cooked-fsm-content.cooked-fsm-directions").addClass("cooked-active"),s.find(".cooked-fsm-content.cooked-fsm-notes"))).addClass("cooked-active")}))})})(jQuery); \ No newline at end of file +var cooked_loading=!1;(l=>{$_Cooked_Ingredient_Boxes=l(".cooked-ingredient-checkbox"),$_Cooked_Fotorama=l(".cooked-recipe-gallery"),$_Cooked_Ajax_List=l(".cooked-recipe-loader"),$_Cooked_Recipe_Search=l(".cooked-recipe-search"),$_Cooked_Timers=l(".cooked-timer > a"),$_Cooked_FSM_Button=l(".cooked-fsm-button"),$_Cooked_Fotorama.length&&$_Cooked_Fotorama.on("fotorama:ready",function(e,o){setTimeout(function(){$_Cooked_Fotorama.addClass("cooked-gallery-loaded")},100)}),l(document).ready(function(){function i(e){e.on("click",function(e){var o=l(this);o.hasClass("cooked-checked")?(o.parent().removeClass("cooked-checked"),o.removeClass("cooked-checked")):(o.parent().addClass("cooked-checked"),o.addClass("cooked-checked"))})}var a,c;function d(e){e.on("click",function(e){e.preventDefault();var o,s,e=l(this),i="cookedTimer-"+e.data("timer-id"),c=l("#cooked-timers-wrap").find(".cooked-timer-block").length;l("div#"+i).length?(l("div#"+i).css({background:"#eeeeee"}),setTimeout(function(){l("div#"+i).css({background:""})},200)):4==c?(l("#cooked-timers-wrap").css({transform:"translate3d(0,0.5em,0)"}),setTimeout(function(){l("#cooked-timers-wrap").css({transform:""})},200)):(o=7.5*(c+=1),s=e.parents(".cooked-single-direction").length?e.parents(".cooked-single-direction").data("step"):cooked_functions_i18n_js_vars.i18n_timer,s={id:i,seconds:e.data("seconds"),step:s,desc:e.data("desc")},l("#cooked-timers-wrap").length?(e=1==c?" cooked-visible":"",a",{id:"cooked-timers-wrap"}),c=t(s),e.append(c),l("body").append(e),n(l("#"+s.id).find(".cooked-timer-obj"),!1),setTimeout(function(){l("#cooked-timers-wrap").addClass("cooked-visible")},50)))})}function t(e,o="cooked-visible"){o=l("
      ",{id:e.id,class:"cooked-timer-block "+o}),l("",{class:"cooked-timer-step",text:e.step}).appendTo(o),l("",{class:"cooked-timer-desc",text:e.desc}).appendTo(o),l("
      ",{class:"cooked-timer-obj","data-seconds-left":e.seconds}).appendTo(o),l("",{class:"cooked-icon cooked-icon-times"}).appendTo(o),e=l("
      ",{class:"cooked-progress"});return l("").appendTo(e),e.appendTo(o),o}function n(o,e){var s=cooked_functions_js_vars.timer_sound,i=new Audio(s),c=o.parents(".cooked-timer-block").attr("id"),d=o.data("seconds-left"),t=o.parents(".cooked-timer-block");o.startTimer({classNames:{hours:"cooked-timer-hours",minutes:"cooked-timer-minutes",seconds:"cooked-timer-seconds",clearDiv:"cooked-timer-clearDiv",timeout:"cooked-timer-timeout"},onComplete:function(){i.play(),o.addClass("cooked-timer-complete")}}),o.prepend(''),e&&(o.trigger("pause"),t.addClass("cooked-paused"),t.find("i.cooked-icon-pause").hide(),t.find("i.cooked-icon-play").css({display:"inline-block"}),t.addClass("cooked-paused"),l(this).parent().find("i.cooked-icon-play").css({display:"inline-block"})),r(t,10,10),o.on("update",function(e,o){r(t,o,d)}),o.on("complete",function(e,o){i.play(),t.find("i.cooked-icon-pause").hide(),t.find("i.cooked-icon-play").hide(),t.find(".cooked-timer-seconds").html("00")}),o.on("click","i.cooked-icon-pause",function(e){e.preventDefault(),l(this).hide(),t.addClass("cooked-paused"),l(this).parent().find("i.cooked-icon-play").css({display:"inline-block"}),o.trigger("pause")}),o.on("click","i.cooked-icon-play",function(e){e.preventDefault(),l(this).hide(),t.removeClass("cooked-paused cooked-complete"),l(this).parent().find("i.cooked-icon-pause").css({display:"inline-block"}),o.trigger("resume")}),o.on("click","i.cooked-icon-reverse",function(e){e.preventDefault(),t.removeClass("cooked-paused cooked-complete"),l(this).parent().find("i.cooked-icon-play").css({display:"inline-block"}),l(this).parent().find("i.cooked-icon-pause").hide(),o.remove(),l("#"+c).append('
      '),n(l("#"+c).find(".cooked-timer-obj"),!0)}),t.on("click","i.cooked-icon-times",function(e){var o;e.preventDefault(),1==l("#cooked-timers-wrap").find(".cooked-timer-block").length?l("#cooked-timers-wrap").removeClass("cooked-visible"):(o=7.5*(e=l("#cooked-timers-wrap").find(".cooked-timer-block").length-1),l("#cooked-timers-wrap").css({height:o+"em"}),t.removeClass("cooked-visible"),e==a&&l("#cooked-timers-wrap").removeClass("cooked-multiples")),setTimeout(function(){t.remove()},200)})}function r(e,o,s){o=100-o/s*100;e.find(".cooked-progress > span").css({width:o+"%"}),100<=o&&e.addClass("cooked-complete")}$_Cooked_Fotorama.length&&$_Cooked_Fotorama.fotorama(),$_Cooked_Ingredient_Boxes.length&&i($_Cooked_Ingredient_Boxes),l(".cooked-servings").length&&l(".cooked-servings").find("select").on("change",function(e){e.preventDefault();var e=l(this).children("option:selected").val(),o=new URL(window.location.href);o.searchParams.set("servings",e),window.location.href=o.toString()}),$_Cooked_Recipe_Search.length&&(l("body").on("click",function(e){var o=!1;0{var o;e.value&&(o=encodeURIComponent(e.prefix),e=encodeURIComponent(e.value),s.push(o+"/"+e))}),e.search&&s.push("search/"+encodeURIComponent(e.search)),s.push("sort/"+encodeURIComponent(e.sort));e=s.filter(Boolean).join("/"),e=((cooked_functions_js_vars.browse_page_url||cooked_functions_js_vars.site_url)+"/"+e).replace(/\/+/g,"/").replace(":/","://");window.location.href=e}),$_Cooked_Timers.length&&(a=1,d($_Cooked_Timers)),$_Cooked_FSM_Button.length&&(c=new NoSleep,$_Cooked_FSM_Button.on("click",function(e){e.preventDefault();var e=l(this).data("recipe-id"),e=l('.cooked-fsm[data-recipe-id="'+e+'"]'),o=(l("body").addClass("cooked-noscroll cooked-fsm-active"),e.clone().appendTo("body")),e=(setTimeout(function(){o.addClass("cooked-visible")},10),setTimeout(function(){o.addClass("cooked-active")},50),o.find(".cooked-timer > a")),s=o.find(".cooked-ingredient-checkbox");d(e),i(s),c.enable(),o.on("click",".cooked-close-fsm",function(e){e.preventDefault(),o.removeClass("cooked-active"),l("body").removeClass("cooked-noscroll cooked-fsm-active"),c.disable(),setTimeout(function(){o.remove()},350)})}),l("body").on("click",".cooked-fsm-mobile-nav > a",function(e){e.preventDefault();var e=l(this),o=e.data("nav-id"),s=e.parents(".cooked-fsm");s.find(".cooked-fsm-mobile-nav > a").removeClass("cooked-active"),s.find(".cooked-fsm-content").removeClass("cooked-active"),e.addClass("cooked-active"),("ingredients"==o?s.find(".cooked-fsm-content.cooked-fsm-ingredients"):(s.find(".cooked-fsm-content.cooked-fsm-directions-wrap").addClass("cooked-active"),s.find(".cooked-fsm-content.cooked-fsm-directions").addClass("cooked-active"),s.find(".cooked-fsm-content.cooked-fsm-notes"))).addClass("cooked-active")}))})})(jQuery); \ No newline at end of file diff --git a/includes/class.cooked-elementor.php b/includes/class.cooked-elementor.php index 9418158..6a13f25 100644 --- a/includes/class.cooked-elementor.php +++ b/includes/class.cooked-elementor.php @@ -26,7 +26,7 @@ public function __construct() { public function init() { // Check if Elementor installed and activated if ( did_action( 'elementor/loaded' ) ) { - add_filter( 'cooked_recipe_content_filter', [&$this, 'elementor_filter'], 15, 3 ); + add_filter( 'cooked_recipe_content_filter', [&$this, 'elementor_filter'], 15, 4 ); add_filter( 'cooked_should_update_post_content', [&$this, 'should_update_content'], 10, 2 ); // Deprecated. Now handled in pre_do_shortcode_tag filter in class.cooked-shortcodes.php. // add_action( 'elementor/element/before_section_start', [&$this, 'elementor_is_editing'], 10, 3 ); @@ -49,10 +49,15 @@ public function init() { } } */ - public function elementor_filter( $recipe_content, $og_content, $recipe_id ) { + public function elementor_filter( $recipe_content, $og_content, $recipe_id, $layout_content = null ) { $elementor_page = get_post_meta( $recipe_id, '_elementor_edit_mode', true ); if ( $elementor_page ) { + $og_content = (string) $og_content; + if ( Cooked_Recipes::recipe_has_fullscreen( $recipe_id, $layout_content ) ) { + global $recipe_settings; + $og_content .= Cooked_Recipes::get_fsm_markup( $recipe_id, $recipe_settings ); + } return $og_content; } diff --git a/includes/class.cooked-recipes.php b/includes/class.cooked-recipes.php index 8df0da6..ea8d778 100644 --- a/includes/class.cooked-recipes.php +++ b/includes/class.cooked-recipes.php @@ -645,6 +645,80 @@ public static function fsm_content() { ' ); } + /** + * Returns the fullscreen modal (FSM) markup for a recipe. + * Used by the recipe template and by the Elementor filter when appending FSM. + * + * @param int $recipe_id Recipe post ID. + * @param array $settings Recipe settings (from get_settings() or global $recipe_settings). + * @return string FSM HTML block. + */ + public static function get_fsm_markup( $recipe_id, array $settings ) { + $recipe_id = intval( $recipe_id ); + if ( ! $recipe_id || empty( $settings['title'] ) ) { + return ''; + } + global $recipe_settings; + $recipe_settings = $settings; + $markup = '
      '; + $markup .= do_shortcode( self::fsm_content() ); + $markup .= '
      ' . esc_html( $settings['title'] ) . '
      '; + $markup .= '
      '; + $markup .= '' . __( 'Ingredients', 'cooked' ) . ''; + $markup .= '' . __( 'Directions', 'cooked' ) . ''; + $markup .= '
      '; + $markup .= '
      '; + return $markup; + } + + /** + * Checks whether the recipe content includes the fullscreen option in a [cooked-info] shortcode. + * Looks at left, right, and include attributes. + * + * @param int $recipe_id Recipe post ID. + * @param string $content Raw recipe layout content (shortcodes). + * @return bool True if fullscreen is present in at least one [cooked-info] shortcode. + */ + public static function recipe_has_fullscreen( $recipe_id, $content ) { + $recipe_id = intval( $recipe_id ); + if ( ! $recipe_id ) { + return false; + } + if ( empty( $content ) || strpos( $content, 'cooked-info' ) === false ) { + return false; + } + $regex = get_shortcode_regex( [ 'cooked-info' ] ); + if ( ! preg_match_all( '/' . $regex . '/s', $content, $matches, PREG_SET_ORDER ) ) { + return false; + } + $check_values = function ( $attr_string ) { + if ( empty( $attr_string ) ) { + return false; + } + $atts = shortcode_parse_atts( $attr_string ); + if ( ! is_array( $atts ) ) { + return false; + } + foreach ( [ 'left', 'right', 'include' ] as $key ) { + if ( empty( $atts[ $key ] ) ) { + continue; + } + $parts = array_map( 'trim', explode( ',', $atts[ $key ] ) ); + if ( in_array( 'fullscreen', $parts, true ) ) { + return true; + } + } + return false; + }; + foreach ( $matches as $m ) { + $attr_string = isset( $m[3] ) ? $m[3] : ''; + if ( $check_values( $attr_string ) ) { + return true; + } + } + return false; + } + public static function difficulty_levels() { return apply_filters( 'cooked_difficulty_levels', [ 1 => __('Beginner', 'cooked'), @@ -1180,7 +1254,9 @@ public function recipe_template( $content ) { // load_template( COOKED_DIR . 'templates/front/recipe.php', false ); $recipe_content = ob_get_clean(); - return shortcode_unautop( apply_filters( 'cooked_recipe_content_filter', $recipe_content, $content, $post->ID ) ); + global $cooked_recipe_layout_content; + $layout_content = isset( $cooked_recipe_layout_content ) ? $cooked_recipe_layout_content : null; + return shortcode_unautop( apply_filters( 'cooked_recipe_content_filter', $recipe_content, $content, $post->ID, $layout_content ) ); endif; diff --git a/languages/cooked.pot b/languages/cooked.pot index ae3b0b4..6ef6326 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-02-22T16:11:23-05:00\n" +"POT-Creation-Date: 2026-02-22T16:15:48-05:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: cooked\n" diff --git a/templates/front/recipe.php b/templates/front/recipe.php index 0c42156..8f0bb1d 100644 --- a/templates/front/recipe.php +++ b/templates/front/recipe.php @@ -15,8 +15,10 @@ $recipe_content = ( isset($recipe_settings['content']) ? $recipe_settings['content'] : Cooked_Recipes::default_content() ); $recipe_content = apply_filters( 'cooked_pre_recipe_content', $recipe_content, $recipe_id ); -if ( is_feed() && !is_admin() || is_singular() && !is_admin() ): +global $cooked_recipe_layout_content; +$cooked_recipe_layout_content = $recipe_content; +if ( is_feed() && !is_admin() || is_singular() && !is_admin() ): $schema_array = Cooked_SEO::schema_values( $recipe_settings ); if ( !empty($schema_array) && is_array($schema_array) ): @@ -27,21 +29,11 @@ global $wp_embed; $recipe_content = $wp_embed->autoembed( $recipe_content ); - $recipe_content .= '
      '; - $recipe_content .= do_shortcode( Cooked_Recipes::fsm_content() ); - $recipe_content .= '
      ' . esc_html( $recipe_settings['title'] ) . '
      '; - $recipe_content .= '
      '; - $recipe_content .= '' . __( 'Ingredients', 'cooked' ) . ''; - $recipe_content .= '' . __( 'Directions', 'cooked' ) . ''; - $recipe_content .= '
      '; - $recipe_content .= '
      '; + $recipe_content .= Cooked_Recipes::get_fsm_markup( $recipe_id, $recipe_settings ); $recipe_content .= isset($recipe_seo_content) ? $recipe_seo_content : ''; - else: - $recipe_content = strip_shortcodes( $recipe_content ); - endif; echo apply_filters( 'cooked_recipe_content', $recipe_content, $recipe_id ); \ No newline at end of file From 01a5339879be964621347f26a9fcd2905868c3be Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Mon, 23 Feb 2026 15:51:07 -0500 Subject: [PATCH 24/31] Build Prep --- languages/cooked.pot | 2 +- package-lock.json | 107 +++++++++++++++++++++++-------------------- 2 files changed, 58 insertions(+), 51 deletions(-) diff --git a/languages/cooked.pot b/languages/cooked.pot index 6ef6326..1f282ee 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-02-22T16:15:48-05:00\n" +"POT-Creation-Date: 2026-02-23T15:40:08-05:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: cooked\n" diff --git a/package-lock.json b/package-lock.json index 39fddae..f3e3eda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1046,9 +1046,9 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.12.0.tgz", - "integrity": "sha512-Xuq42yxcQJ54ti8ZHNzF5snFvtpgXzNToJ1bXUGQRaiO8t+B6UM8sTUJfvV+AJnqtkJU/7hdy6nbKyA12aHtRw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz", + "integrity": "sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1056,7 +1056,7 @@ "extract-zip": "^2.0.1", "progress": "^2.0.3", "proxy-agent": "^6.5.0", - "semver": "^7.7.3", + "semver": "^7.7.4", "tar-fs": "^3.1.1", "yargs": "^17.7.2" }, @@ -1291,9 +1291,9 @@ } }, "node_modules/@wordpress/e2e-test-utils-playwright": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.39.0.tgz", - "integrity": "sha512-ok008Rd8URqNQCzx/9bClC+gk7XxVV+xm5rOJjb6A4EHR8tVlynJEcE4gN0C5qCDIeOdPLbGW8ljNm2DxlelwQ==", + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.40.0.tgz", + "integrity": "sha512-7EMx/5R0l9mlR4s01I06x8bw7qq30VlU98T/tvYJa+ycFQK3oetkoPyiNfki2Y2SILQGjI3Mu4MSV1NPCa/mEw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -1313,9 +1313,9 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", "peer": true, @@ -1519,9 +1519,9 @@ } }, "node_modules/b4a": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", - "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", + "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", "dev": true, "license": "Apache-2.0", "peerDependencies": { @@ -1549,11 +1549,14 @@ } }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/bare-events": { "version": "2.8.2", @@ -1572,9 +1575,9 @@ } }, "node_modules/bare-fs": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.3.tgz", - "integrity": "sha512-9+kwVx8QYvt3hPWnmb19tPnh38c6Nihz8Lx3t0g9+4GoIf3/fTgYwM4Z6NxgI+B9elLQA7mLE9PpqcWtOMRDiQ==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.4.tgz", + "integrity": "sha512-POK4oplfA7P7gqvetNmCs4CNtm9fNsx+IAh7jH7GgU0OJdge2rso0R20TNWVq6VoWcCvsTdlNDaleLHGaKx8CA==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -1620,14 +1623,15 @@ } }, "node_modules/bare-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", - "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.8.0.tgz", + "integrity": "sha512-reUN0M2sHRqCdG4lUK3Fw8w98eeUIZHL5c3H7Mbhk2yVBL+oofgaIp0ieLfD5QXwPCypBpmEEKU2WZKzbAk8GA==", "dev": true, "license": "Apache-2.0", "optional": true, "dependencies": { - "streamx": "^2.21.0" + "streamx": "^2.21.0", + "teex": "^1.0.1" }, "peerDependencies": { "bare-buffer": "*", @@ -1675,9 +1679,9 @@ "license": "MIT" }, "node_modules/basic-ftp": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.1.0.tgz", - "integrity": "sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz", + "integrity": "sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==", "dev": true, "license": "MIT", "engines": { @@ -1710,13 +1714,16 @@ } }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", + "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/braces": { @@ -1873,9 +1880,9 @@ } }, "node_modules/chromium-bidi": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-13.1.1.tgz", - "integrity": "sha512-zB9MpoPd7VJwjowQqiW3FKOvQwffFMjQ8Iejp5ZW+sJaKLRhZX1sTxzl3Zt22TDB4zP0OOqs8lRoY7eAW5geyQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", + "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3572,13 +3579,13 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.6.tgz", + "integrity": "sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -4091,18 +4098,18 @@ } }, "node_modules/puppeteer-core": { - "version": "24.37.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.2.tgz", - "integrity": "sha512-nN8qwE3TGF2vA/+xemPxbesntTuqD9vCGOiZL2uh8HES3pPzLX20MyQjB42dH2rhQ3W3TljZ4ZaKZ0yX/abQuw==", + "version": "24.37.5", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.5.tgz", + "integrity": "sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.12.0", - "chromium-bidi": "13.1.1", + "@puppeteer/browsers": "2.13.0", + "chromium-bidi": "14.0.0", "debug": "^4.4.3", "devtools-protocol": "0.0.1566079", "typed-query-selector": "^2.12.0", - "webdriver-bidi-protocol": "0.4.0", + "webdriver-bidi-protocol": "0.4.1", "ws": "^8.19.0" }, "engines": { @@ -4690,9 +4697,9 @@ } }, "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", + "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -4991,9 +4998,9 @@ "license": "Apache-2.0" }, "node_modules/webdriver-bidi-protocol": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.0.tgz", - "integrity": "sha512-U9VIlNRrq94d1xxR9JrCEAx5Gv/2W7ERSv8oWRoNe/QYbfccS0V3h/H6qeNeCRJxXGMhhnkqvwNrvPAYeuP9VA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", + "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", "dev": true, "license": "Apache-2.0" }, From 17ee77ba02b1ea15035380f0606acdb21e4c6722 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Tue, 24 Feb 2026 18:59:41 -0500 Subject: [PATCH 25/31] Bug Fix --- assets/admin/js/cooked-functions.js | 1 - assets/admin/js/cooked-functions.min.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index bd5ca1d..7a7b3aa 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -118,7 +118,6 @@ var cookedSortableTouchHandler = function(event) { }); } else { $_CookedSortable.sortable({ - handle: '.cooked-icon-drag', stop: function(event, ui) { // Update direction step numbers when reordering directions if (ui.item.closest('#cooked-directions-builder').length) { diff --git a/assets/admin/js/cooked-functions.min.js b/assets/admin/js/cooked-functions.min.js index 32cc0a9..5dd1f8b 100644 --- a/assets/admin/js/cooked-functions.min.js +++ b/assets/admin/js/cooked-functions.min.js @@ -1 +1 @@ -var $_CookedConditionalTimeout=!1,cookedSortableTouchHandler=function(e){var t=e.target.closest(".cooked-icon-drag");t&&t.closest(".cooked-sortable")&&(t=e.changedTouches[0],e.preventDefault(),e=new MouseEvent({touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"}[e.type],{bubbles:!0,cancelable:!0,view:window,detail:1,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null}),t.target.dispatchEvent(e))},cooked_recipe_update_counter=((p=>{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
      ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
      ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0 Date: Tue, 24 Feb 2026 19:24:16 -0500 Subject: [PATCH 26/31] Release Notes --- languages/cooked.pot | 2 +- readme.txt | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/languages/cooked.pot b/languages/cooked.pot index 1f282ee..4459be8 100644 --- a/languages/cooked.pot +++ b/languages/cooked.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-02-23T15:40:08-05:00\n" +"POT-Creation-Date: 2026-02-24T19:15:02-05:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: cooked\n" diff --git a/readme.txt b/readme.txt index 5a044f3..e958fc9 100644 --- a/readme.txt +++ b/readme.txt @@ -91,6 +91,13 @@ Version 1.13.0 includes CSV import functionality and changes to the [cooked-rela = 1.13.0 = * **NEW:** Added CSV import functionality for bulk importing recipes from CSV files. Supports all recipe fields including ingredients with substitutions, directions, nutrition data, categories, and tags. * **TWEAK:** Simplified the way the [cooked-related-recipes] shortcode works. +* **FIX:** Fixed a bug with the recipe directions and ingredients not being sortable in mobile devices. +* **FIX:** Fixed a bug when toggling full screen view in recipe fields that use the WP Editor. +* **FIX:** Fixed bug when changing image under recipe instructions steps where the image thumbnail was not updated with the replaced photo after clicking "Use this image". +* **FIX:** Fixed styling issue in numbering with recipes with 10+ instructions steps. +* **NEW:** Added recipe instruction steps counter in the editing view. +* **FIX:** Fixed a bug with full screen mode not working inside Elementor. +* **TWEAK:** Other minor improvements and bug fixes. = 1.12.0 = * **NEW:** Added the ability to add ingredients substitutions thanks to @mgiannopoulos24. From 93fb23ecc781dd28627ef82ac1b404334fee7369 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Wed, 25 Feb 2026 20:29:35 -0500 Subject: [PATCH 27/31] CSS fix for recipe directions --- assets/css/print.css | 3 ++- assets/css/print.min.css | 2 +- assets/css/style.css | 11 +++++++++-- assets/css/style.min.css | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/assets/css/print.css b/assets/css/print.css index 270a8d7..5bf986a 100644 --- a/assets/css/print.css +++ b/assets/css/print.css @@ -25,8 +25,9 @@ body p { font-size:1rem; line-height:1.6; margin:0 0 1rem; padding:0; } .cooked-recipe-directions .cooked-heading { margin:0 0 1rem; display:block; font-weight:600; font-size:1.25rem; line-height:1.5; } .cooked-recipe-directions .cooked-direction { position:relative; padding:0; margin:0; font-size:inherit; } .cooked-recipe-directions .cooked-direction img { max-width:100%; height:auto; display:block; margin:0 0 2rem; padding:0; border:none; } -.cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content { padding-left:2rem; } +.cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content { padding-left:2.75rem; } .cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-dir-content { padding-left:2.75rem; } +.cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-direction-number { width:2ch; text-align:right; font-variant-numeric: tabular-nums; } .cooked-recipe-directions .cooked-direction-number { opacity:0.35; position:absolute; display:inline-block; width:auto; height:1rem; line-height:1rem; font-weight:800; top:0; left:0; font-size:1.5rem; } .cooked-recipe-notes { display:block; padding:0; margin:0 0 2rem; diff --git a/assets/css/print.min.css b/assets/css/print.min.css index 9aceb98..f03fbb8 100644 --- a/assets/css/print.min.css +++ b/assets/css/print.min.css @@ -1 +1 @@ -body,html{color:#000;box-sizing:border-box;padding:0;margin:0;width:100%;height:100%;font-family:sans-serif;font-size:1rem;line-height:1.6rem}body *{box-sizing:border-box}body img{max-width:100%;height:auto}body{padding:0 30px;max-width:800px;margin:0 auto}body a{color:inherit;text-decoration:none}body h1{font-size:1.75rem;line-height:1.5;margin:0 0 1rem;padding:0}body p{font-size:1rem;line-height:1.6;margin:0 0 1rem;padding:0}.cooked-clearfix:after{content:"";display:table;clear:both}.cooked-button,button.cooked-button{cursor:pointer;border:none;display:inline-block;padding:8px 10px;line-height:1;font-size:13px;font-weight:600;color:#fff;background:#666;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cooked-button:hover,button.cooked-button:hover{background:#333}.cooked-servings-switcher{display:block}.cooked-servings-switcher .cooked-button:first-child{margin-right:1rem}.cooked-servings-switcher .cooked-button:last-child{margin-left:1rem}.cooked-post-featured-image{width:100%;max-width:100%;height:auto;border:none;display:block;margin:0 0 2rem;padding:0}.cooked-post-featured-image img{width:100%;max-width:100%}.cooked-recipe-ingredients{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-ingredients .cooked-heading{margin:1rem 0 .3rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-ingredients .cooked-heading:first-child{margin:0}.cooked-recipe-ingredients .cooked-ingredient{position:relative;padding:.5rem 0 0 2rem;margin:0;font-size:inherit}.cooked-recipe-ingredients .cooked-ingredient .cooked-ing-name{line-height:1.4rem;padding:1px 0}.cooked-recipe-ingredients .cooked-ingredient-checkbox{transform:scale(1);position:absolute;top:.5rem;left:0;display:inline-block;width:1rem;height:1rem;line-height:1rem;border:1px solid #ddd;border-color:rgba(0,0,0,.2);margin:.2rem .8rem 0 0}.cooked-recipe-ingredients .cooked-ingredient-checkbox.cooked-checked:after{font-family:CookedIcons;content:'\f01d';position:absolute;top:0;left:0;font-size:.6rem;line-height:1.8rem;width:100%;height:100%;text-align:center}.cooked-recipe-ingredients .cooked-ingredient.cooked-checked{text-decoration:line-through;opacity:.5}.cooked-recipe-directions{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-directions .cooked-heading{margin:0 0 1rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-directions .cooked-direction{position:relative;padding:0;margin:0;font-size:inherit}.cooked-recipe-directions .cooked-direction img{max-width:100%;height:auto;display:block;margin:0 0 2rem;padding:0;border:none}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content{padding-left:2rem}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-dir-content{padding-left:2.75rem}.cooked-recipe-directions .cooked-direction-number{opacity:.35;position:absolute;display:inline-block;width:auto;height:1rem;line-height:1rem;font-weight:800;top:0;left:0;font-size:1.5rem}.cooked-recipe-notes{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-notes ol,.cooked-recipe-notes ul{padding-left:1.5rem}.cooked-recipe-notes .cooked-heading{margin:0 0 1rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-excerpt{display:block;padding:0;margin:0 0 1rem}.cooked-recipe-info{display:block;padding:0;margin:0 0 1rem;line-height:2.25rem}.cooked-recipe-info>section.cooked-left>span,.cooked-recipe-info>span{line-height:1.3rem;position:relative;box-sizing:border-box;vertical-align:top;margin:0 2rem 1rem 0;font-size:.85rem;display:inline-block;width:auto}.cooked-recipe-info>section.cooked-right>span{line-height:1.4rem;position:relative;box-sizing:border-box;vertical-align:top;margin:0 0 1rem 2rem;font-size:.85rem;display:inline-block;width:auto}.cooked-recipe-info>section.cooked-left>span:last-child,.cooked-recipe-info>span:last-child{margin-right:0}.cooked-recipe-info>section.cooked-right>span:first-child{margin-left:0}.cooked-recipe-info strong{font-size:.75rem;font-weight:800;text-transform:uppercase;display:block}.cooked-recipe-info span.cooked-time{padding-left:3rem}.cooked-recipe-info span.cooked-time-icon{opacity:.5;width:1rem;height:1rem;font-size:2.2rem;display:block;position:absolute;top:50%;left:0;margin:-1.1rem 0 0 0}.cooked-recipe-info span.cooked-time-icon i.cooked-icon{display:block}.cooked-recipe-info span.cooked-servings{padding-left:3rem}.cooked-recipe-info span.cooked-servings select.cooked-servings-changer{opacity:0;position:absolute;bottom:3px;left:0;-webkit-appearance:none;cursor:pointer;border:none;background:0 0;width:100%;padding:0;margin:0}.cooked-recipe-info span.cooked-servings-icon{opacity:.5;width:1rem;height:1rem;font-size:2.2rem;display:block;position:absolute;top:50%;left:0;margin:-1.1rem 0 0 0}.cooked-recipe-info span.cooked-servings-icon i.cooked-icon{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}.cooked-nutrition-label{width:100%;max-width:400px;margin:0 auto 2rem;background:#fff;font-size:.9rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:15px}.cooked-nutrition-label .cooked-nutrition-title{font-size:2rem;line-height:1;letter-spacing:0;font-weight:800;padding:0;margin:0 0 .4rem;color:#333}.cooked-nutrition-label.cooked-float-right{max-width:45%;margin:0 0 3rem 3rem;float:right}.cooked-nutrition-label.cooked-float-left{max-width:45%;margin:0 3rem 3rem 0;float:left}body .cooked-nutrition-label p{margin:0!important;padding:0!important}body .cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0!important;margin:0!important;font-size:.9rem}body .cooked-nutrition-label dl{margin:0!important;padding:0!important}body .cooked-nutrition-label dt{position:relative;margin:0;padding:2px 0;border-top:1px solid #aaa}body .cooked-nutrition-label dt dt{padding:2px 0 0;margin:2px 0 0}body .cooked-nutrition-label dt:after{content:"";display:table;clear:both}body .cooked-nutrition-label div.cooked-nut-spacer,body .cooked-nutrition-label dt.cooked-nut-spacer{border:none;height:.5rem;padding:0;background:#333}body .cooked-nutrition-label dl dt.cooked-nut-no-border,body .cooked-nutrition-label>dl>dt:first-child{border:none}body .cooked-nutrition-label dt dl{padding:0;margin:0 0 0 1.5rem}body .cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1rem solid #333;margin:1rem 0 0;padding:0}body .cooked-nutrition-label strong{font-weight:800}body .cooked-nutrition-label strong.cooked-nut-heading{font-size:.75rem}body .cooked-nutrition-label span.cooked-calories-fat,body .cooked-nutrition-label strong.cooked-nut-label{font-weight:400}body .cooked-nutrition-label .cooked-nut-right{float:right}body .cooked-nutrition-label dl.cooked-nut-bottom dt{border-top:none;border-bottom:1px solid #aaa;float:left;width:50%;box-sizing:border-box}body .cooked-nutrition-label dl.cooked-nut-bottom dt strong{font-weight:400}body .cooked-nutrition-label dl.cooked-nut-bottom dt:last-child,body .cooked-nutrition-label dl.cooked-nut-bottom dt:nth-last-child(2){border:none}body .cooked-nutrition-label dl.cooked-nut-bottom dt:nth-last-child(2):nth-child(even){border-bottom:1px solid #aaa}#cooked-print-options{margin:0 0 2rem;background:0 0;padding:2.2rem 0 2.5rem;border-bottom:1px dashed rgba(0,0,0,.25)}#cooked-print-options h3{margin:0 0 .25rem;font-size:.75rem;text-transform:uppercase;font-weight:800}#cooked-print-options label{font-size:.9rem;cursor:pointer;position:relative;display:inline-block;top:1px;margin-right:1rem}#cooked-print-options .cooked-button{float:right;margin-top:1.45rem}.cooked-button{-webkit-transition:all .2s cubic-bezier(.42,0,.15,1);-moz-transition:all .2s cubic-bezier(.42,0,.15,1);-o-transition:all .2s cubic-bezier(.42,0,.15,1);transition:all .2s cubic-bezier(.42,0,.15,1);-webkit-transition-timing-function:cubic-bezier(.42,0,.15,1);-moz-transition-timing-function:cubic-bezier(.42,0,.15,1);-o-transition-timing-function:cubic-bezier(.42,0,.15,1);transition-timing-function:cubic-bezier(.42,0,.15,1)}@media print{body{padding:20px 30px;font-size:.9rem}#cooked-print-options{display:none}} \ No newline at end of file +body,html{color:#000;box-sizing:border-box;padding:0;margin:0;width:100%;height:100%;font-family:sans-serif;font-size:1rem;line-height:1.6rem}body *{box-sizing:border-box}body img{max-width:100%;height:auto}body{padding:0 30px;max-width:800px;margin:0 auto}body a{color:inherit;text-decoration:none}body h1{font-size:1.75rem;line-height:1.5;margin:0 0 1rem;padding:0}body p{font-size:1rem;line-height:1.6;margin:0 0 1rem;padding:0}.cooked-clearfix:after{content:"";display:table;clear:both}.cooked-button,button.cooked-button{cursor:pointer;border:none;display:inline-block;padding:8px 10px;line-height:1;font-size:13px;font-weight:600;color:#fff;background:#666;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cooked-button:hover,button.cooked-button:hover{background:#333}.cooked-servings-switcher{display:block}.cooked-servings-switcher .cooked-button:first-child{margin-right:1rem}.cooked-servings-switcher .cooked-button:last-child{margin-left:1rem}.cooked-post-featured-image{width:100%;max-width:100%;height:auto;border:none;display:block;margin:0 0 2rem;padding:0}.cooked-post-featured-image img{width:100%;max-width:100%}.cooked-recipe-ingredients{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-ingredients .cooked-heading{margin:1rem 0 .3rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-ingredients .cooked-heading:first-child{margin:0}.cooked-recipe-ingredients .cooked-ingredient{position:relative;padding:.5rem 0 0 2rem;margin:0;font-size:inherit}.cooked-recipe-ingredients .cooked-ingredient .cooked-ing-name{line-height:1.4rem;padding:1px 0}.cooked-recipe-ingredients .cooked-ingredient-checkbox{transform:scale(1);position:absolute;top:.5rem;left:0;display:inline-block;width:1rem;height:1rem;line-height:1rem;border:1px solid #ddd;border-color:rgba(0,0,0,.2);margin:.2rem .8rem 0 0}.cooked-recipe-ingredients .cooked-ingredient-checkbox.cooked-checked:after{font-family:CookedIcons;content:'\f01d';position:absolute;top:0;left:0;font-size:.6rem;line-height:1.8rem;width:100%;height:100%;text-align:center}.cooked-recipe-ingredients .cooked-ingredient.cooked-checked{text-decoration:line-through;opacity:.5}.cooked-recipe-directions{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-directions .cooked-heading{margin:0 0 1rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-directions .cooked-direction{position:relative;padding:0;margin:0;font-size:inherit}.cooked-recipe-directions .cooked-direction img{max-width:100%;height:auto;display:block;margin:0 0 2rem;padding:0;border:none}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content{padding-left:2.75rem}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-dir-content{padding-left:2.75rem}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-direction-number{width:2ch;text-align:right;font-variant-numeric:tabular-nums}.cooked-recipe-directions .cooked-direction-number{opacity:.35;position:absolute;display:inline-block;width:auto;height:1rem;line-height:1rem;font-weight:800;top:0;left:0;font-size:1.5rem}.cooked-recipe-notes{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-notes ol,.cooked-recipe-notes ul{padding-left:1.5rem}.cooked-recipe-notes .cooked-heading{margin:0 0 1rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-excerpt{display:block;padding:0;margin:0 0 1rem}.cooked-recipe-info{display:block;padding:0;margin:0 0 1rem;line-height:2.25rem}.cooked-recipe-info>section.cooked-left>span,.cooked-recipe-info>span{line-height:1.3rem;position:relative;box-sizing:border-box;vertical-align:top;margin:0 2rem 1rem 0;font-size:.85rem;display:inline-block;width:auto}.cooked-recipe-info>section.cooked-right>span{line-height:1.4rem;position:relative;box-sizing:border-box;vertical-align:top;margin:0 0 1rem 2rem;font-size:.85rem;display:inline-block;width:auto}.cooked-recipe-info>section.cooked-left>span:last-child,.cooked-recipe-info>span:last-child{margin-right:0}.cooked-recipe-info>section.cooked-right>span:first-child{margin-left:0}.cooked-recipe-info strong{font-size:.75rem;font-weight:800;text-transform:uppercase;display:block}.cooked-recipe-info span.cooked-time{padding-left:3rem}.cooked-recipe-info span.cooked-time-icon{opacity:.5;width:1rem;height:1rem;font-size:2.2rem;display:block;position:absolute;top:50%;left:0;margin:-1.1rem 0 0 0}.cooked-recipe-info span.cooked-time-icon i.cooked-icon{display:block}.cooked-recipe-info span.cooked-servings{padding-left:3rem}.cooked-recipe-info span.cooked-servings select.cooked-servings-changer{opacity:0;position:absolute;bottom:3px;left:0;-webkit-appearance:none;cursor:pointer;border:none;background:0 0;width:100%;padding:0;margin:0}.cooked-recipe-info span.cooked-servings-icon{opacity:.5;width:1rem;height:1rem;font-size:2.2rem;display:block;position:absolute;top:50%;left:0;margin:-1.1rem 0 0 0}.cooked-recipe-info span.cooked-servings-icon i.cooked-icon{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}.cooked-nutrition-label{width:100%;max-width:400px;margin:0 auto 2rem;background:#fff;font-size:.9rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:15px}.cooked-nutrition-label .cooked-nutrition-title{font-size:2rem;line-height:1;letter-spacing:0;font-weight:800;padding:0;margin:0 0 .4rem;color:#333}.cooked-nutrition-label.cooked-float-right{max-width:45%;margin:0 0 3rem 3rem;float:right}.cooked-nutrition-label.cooked-float-left{max-width:45%;margin:0 3rem 3rem 0;float:left}body .cooked-nutrition-label p{margin:0!important;padding:0!important}body .cooked-nutrition-label p.cooked-daily-value-text{padding:.5rem 0 0 0!important;margin:0!important;font-size:.9rem}body .cooked-nutrition-label dl{margin:0!important;padding:0!important}body .cooked-nutrition-label dt{position:relative;margin:0;padding:2px 0;border-top:1px solid #aaa}body .cooked-nutrition-label dt dt{padding:2px 0 0;margin:2px 0 0}body .cooked-nutrition-label dt:after{content:"";display:table;clear:both}body .cooked-nutrition-label div.cooked-nut-spacer,body .cooked-nutrition-label dt.cooked-nut-spacer{border:none;height:.5rem;padding:0;background:#333}body .cooked-nutrition-label dl dt.cooked-nut-no-border,body .cooked-nutrition-label>dl>dt:first-child{border:none}body .cooked-nutrition-label dt dl{padding:0;margin:0 0 0 1.5rem}body .cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1rem solid #333;margin:1rem 0 0;padding:0}body .cooked-nutrition-label strong{font-weight:800}body .cooked-nutrition-label strong.cooked-nut-heading{font-size:.75rem}body .cooked-nutrition-label span.cooked-calories-fat,body .cooked-nutrition-label strong.cooked-nut-label{font-weight:400}body .cooked-nutrition-label .cooked-nut-right{float:right}body .cooked-nutrition-label dl.cooked-nut-bottom dt{border-top:none;border-bottom:1px solid #aaa;float:left;width:50%;box-sizing:border-box}body .cooked-nutrition-label dl.cooked-nut-bottom dt strong{font-weight:400}body .cooked-nutrition-label dl.cooked-nut-bottom dt:last-child,body .cooked-nutrition-label dl.cooked-nut-bottom dt:nth-last-child(2){border:none}body .cooked-nutrition-label dl.cooked-nut-bottom dt:nth-last-child(2):nth-child(even){border-bottom:1px solid #aaa}#cooked-print-options{margin:0 0 2rem;background:0 0;padding:2.2rem 0 2.5rem;border-bottom:1px dashed rgba(0,0,0,.25)}#cooked-print-options h3{margin:0 0 .25rem;font-size:.75rem;text-transform:uppercase;font-weight:800}#cooked-print-options label{font-size:.9rem;cursor:pointer;position:relative;display:inline-block;top:1px;margin-right:1rem}#cooked-print-options .cooked-button{float:right;margin-top:1.45rem}.cooked-button{-webkit-transition:all .2s cubic-bezier(.42,0,.15,1);-moz-transition:all .2s cubic-bezier(.42,0,.15,1);-o-transition:all .2s cubic-bezier(.42,0,.15,1);transition:all .2s cubic-bezier(.42,0,.15,1);-webkit-transition-timing-function:cubic-bezier(.42,0,.15,1);-moz-transition-timing-function:cubic-bezier(.42,0,.15,1);-o-transition-timing-function:cubic-bezier(.42,0,.15,1);transition-timing-function:cubic-bezier(.42,0,.15,1)}@media print{body{padding:20px 30px;font-size:.9rem}#cooked-print-options{display:none}} \ No newline at end of file diff --git a/assets/css/style.css b/assets/css/style.css index 709a36d..4c25ce9 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -213,13 +213,20 @@ body .cooked-post-featured-image img { .cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content { - padding-left: 2rem; + padding-left: 2.75rem; } .cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-dir-content { padding-left: 2.75rem; } +.cooked-recipe-directions + .cooked-direction.cooked-direction-has-number-wide + .cooked-direction-number { + width: 2ch; + text-align: right; + font-variant-numeric: tabular-nums; +} .cooked-recipe-directions .cooked-direction-number { opacity: 0.35; position: absolute; @@ -1717,7 +1724,7 @@ body .cooked-pagination-numbered > a:hover { .cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content { - padding-left: 2.3rem; + padding-left: 3.05rem; } .cooked-fsm .cooked-recipe-directions diff --git a/assets/css/style.min.css b/assets/css/style.min.css index 02042a6..c07e47a 100644 --- a/assets/css/style.min.css +++ b/assets/css/style.min.css @@ -1 +1 @@ -#wp-admin-bar-cooked-ab .ab-icon:before{font-family:CookedIcons;content:"\f035";font-size:17px;top:-2px}.cooked-clearfix:after{content:"";display:table;clear:both}.cooked-noscroll{overflow:hidden;width:100%;height:100%}.cooked-hidden-schema{display:none}.cooked-fsm .cooked-fsm-mobile-nav{display:none}.cooked-browse-search-button,.cooked-button,.cooked-fsm .cooked-fsm-top,.cooked-icon-loading,.cooked-profile-tabs,.cooked-progress span{color:#fff!important;text-decoration:none!important}.cooked-recipe-search .cooked-taxonomy-selected .cooked-field-title,.cooked-recipe-search .cooked-taxonomy-selected:before{color:#fff}.cooked-button,button.cooked-button,input[type=button].cooked-button,input[type=submit].cooked-button{box-sizing:border-box;cursor:pointer;display:inline-block;padding:.4rem .65rem;height:2.1rem;line-height:1.25rem;font-size:.9rem;font-weight:500;letter-spacing:.03rem;color:#fff;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cooked-button i.cooked-icon{color:#fff;font-size:1rem;font-weight:400}.cooked-button.cooked-square-button{padding:0;width:2.25rem;height:2.25rem;line-height:2.25rem;text-align:center}.cooked-button.cooked-square-button i.cooked-icon{font-size:1rem}.cooked-servings-switcher{display:block}.cooked-servings-switcher .cooked-button:first-child{margin-right:1rem}.cooked-servings-switcher .cooked-button:last-child{margin-left:1rem}.cooked-post-featured-image{max-width:100%;height:auto;border:none;display:block;margin:0 0 2rem;padding:0}body .cooked-post-featured-image img{display:block;width:100%;height:auto}.cooked-recipe-ingredients{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-ingredients .cooked-heading{margin:1rem 0 .3rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-ingredients .cooked-heading:first-child{margin-top:0}.cooked-recipe-ingredients .cooked-ingredient{position:relative;padding:.5rem 0 0 2rem;margin:0;font-size:inherit}.cooked-recipe-ingredients .cooked-ingredient.cooked-ing-no-checkbox{padding-left:0}.cooked-recipe-ingredients .cooked-ingredient .cooked-ing-name{line-height:1.4rem;padding:1px 0}.cooked-recipe-ingredients .cooked-ingredient-checkbox{transform:scale(1);position:absolute;top:.9rem;left:0;cursor:pointer;display:inline-block;width:1rem;height:1rem;line-height:1rem;border:1px solid #ddd;border-color:rgba(0,0,0,.2);margin:0 .8rem 0 0}.cooked-recipe-ingredients .cooked-ingredient-checkbox:active{transform:scale(.9)}.cooked-recipe-ingredients .cooked-ingredient-checkbox:hover{border-color:#bbb;border-color:rgba(0,0,0,.5)}.cooked-recipe-ingredients .cooked-ingredient-checkbox.cooked-checked:after{font-family:CookedIcons;content:"\f01d";position:absolute;top:0;left:0;font-size:.6rem;line-height:1rem;width:100%;height:100%;text-align:center}.cooked-recipe-ingredients .cooked-ingredient.cooked-checked{text-decoration:line-through;opacity:.5}.cooked-ingredient-substitution{font-style:italic;color:#777;margin-left:5px;display:inline-block}.cooked-ing-sub-label{font-style:normal;font-weight:600;font-size:.85em;color:#999;margin-right:2px}.cooked-recipe-directions{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-directions .cooked-heading{margin:0 0 1rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-directions .cooked-direction{position:relative;padding:0;margin:0;font-size:inherit}.cooked-recipe-directions .cooked-direction img{max-width:100%;height:auto;display:block;margin:0 0 2rem;padding:0;border:none}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content{padding-left:2rem}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-dir-content{padding-left:2.75rem}.cooked-recipe-directions .cooked-direction-number{opacity:.35;position:absolute;display:inline-block;width:auto;height:1.5rem;line-height:1.5rem;font-weight:800;top:0;left:0;font-size:1.5rem}.cooked-recipe-excerpt{display:block;padding:0;margin:0 0 1rem}.cooked-recipe-info{display:block;padding:0;margin:0 0 1rem}.cooked-recipe-info>section.cooked-left>span,.cooked-recipe-info>span{line-height:1.25rem;position:relative;box-sizing:border-box;vertical-align:top;margin:0 2rem 1rem 0;display:inline-block;width:auto}.cooked-recipe-info>section.cooked-right>span{line-height:1.3rem;position:relative;box-sizing:border-box;vertical-align:top;margin:0 0 1rem 2rem;display:inline-block;width:auto}.cooked-recipe-info>section.cooked-left>span:last-child,.cooked-recipe-info>span:last-child{margin-right:0}.cooked-recipe-info>section.cooked-right>span:first-child{margin-left:0}.cooked-recipe-info strong{font-size:.75rem;letter-spacing:.03rem;font-weight:800;text-transform:uppercase;display:block}.cooked-recipe-notes{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-notes .cooked-heading{margin:0 0 1rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-info span.cooked-print,.cooked-recipe-info span.cooked-print>a{height:2rem;display:inline-block}.cooked-recipe-info span.cooked-print>a{color:rgba(0,0,0,.4)}.cooked-recipe-info span.cooked-print>a:hover{color:rgba(0,0,0,.6)}.cooked-recipe-info span.cooked-print .cooked-icon{font-size:2.25rem;line-height:2.5rem}.cooked-recipe-info span.cooked-fsm-button{cursor:pointer;color:rgba(0,0,0,.4);height:2rem;display:inline-block}.cooked-recipe-info span.cooked-fsm-button:hover{color:rgba(0,0,0,.6)}.cooked-recipe-info span.cooked-fsm-button .cooked-icon{font-size:2.25rem;line-height:2.5rem}.cooked-recipe span.cooked-author,.cooked-recipe-info span.cooked-author{padding-left:3.25rem}.cooked-recipe span.cooked-author.cooked-no-avatar,.cooked-recipe-info span.cooked-author.cooked-no-avatar{padding-left:0}.cooked-recipe span.cooked-author-avatar,.cooked-recipe-info span.cooked-author-avatar{width:2.5rem;height:2.5rem;display:block;position:absolute;top:50%;left:0;margin:-1.25rem 0 0 0}.cooked-recipe span.cooked-author-avatar img,.cooked-recipe-info span.cooked-author-avatar img{margin:0;padding:0;display:block;height:auto;width:100%;max-width:100%;max-height:100%;border-radius:100px}.cooked-author-avatar,.cooked-author-avatar img{border-radius:5rem}.cooked-recipe-info span.cooked-time{padding-left:3rem}.cooked-recipe-info span.cooked-time-icon{opacity:.5;width:1rem;height:1rem;font-size:2.2rem;display:block;position:absolute;top:50%;left:0;margin:-1.1rem 0 0 0}.cooked-recipe-info span.cooked-time-icon i.cooked-icon{display:block}.cooked-timer{padding-left:2px}.cooked-timer i.cooked-icon{opacity:.6}body .cooked-timer a{font-weight:600;cursor:pointer;text-decoration:none}body .cooked-timer a:hover{text-decoration:none}#cooked-timers-wrap{z-index:99999;white-space:nowrap;overflow:hidden;border-radius:10px 10px 0 0;background:#fff;box-shadow:0 -5px 30px rgba(0,0,0,.15);line-height:1.6rem;font-size:1rem;width:50%;max-width:100%;height:7.5rem;position:fixed;transform:translate3d(0,7.2em,0);opacity:0;bottom:0;right:50%;margin:0 -25% 0 0;box-sizing:border-box}#cooked-timers-wrap.cooked-visible{transform:translate3d(0,0,0);opacity:1}#cooked-timers-wrap .cooked-timer-block{overflow:hidden;position:relative;display:block;height:0;padding:0;width:100%;opacity:0;padding:0 1.5rem 0 6rem;box-sizing:border-box}#cooked-timers-wrap .cooked-timer-block.cooked-visible{opacity:1;height:7.5rem;padding:1.9rem 1.5rem 1.55rem 6rem}#cooked-timers-wrap .cooked-timer-block>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:auto}#cooked-timers-wrap .cooked-timer-block i.cooked-icon-times{line-height:2rem;color:rgba(0,0,0,.25);position:absolute;font-size:2rem;top:2.5rem;left:2rem;cursor:pointer}#cooked-timers-wrap .cooked-timer-block i.cooked-icon-times:hover{color:inherit}#cooked-timers-wrap .cooked-timer-block .cooked-timer-step{font-size:1.1rem;font-weight:800;text-transform:uppercase}#cooked-timers-wrap .cooked-timer-block .cooked-timer-desc{font-size:1.2rem;width:100%;padding-right:14rem;box-sizing:border-box;font-weight:400;color:rgba(0,0,0,.65)}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj{font-weight:600;position:absolute;top:2.5rem;right:2rem;width:13.5rem;font-size:2rem;line-height:2rem}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>div,#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon{display:inline-block}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon-pause,#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon-play,#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon-reverse{cursor:pointer;opacity:.5;width:2rem;text-align:center;margin-right:.5rem;position:relative;font-size:2rem;transform:scale(.75)}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon-play{display:none}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon:hover{opacity:1}#cooked-timers-wrap.cooked-multiples{margin:0;right:0;border-radius:10px 0 0 0;width:20rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block{padding-left:3.25rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block.cooked-visible{padding-top:1rem;line-height:1.5rem;padding-left:3.25rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block .cooked-timer-step{font-size:.9rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block .cooked-timer-desc{font-size:1rem;padding:0}#cooked-timers-wrap.cooked-multiples .cooked-timer-block .cooked-timer-obj{top:auto;right:auto;width:auto;font-size:1.5rem;line-height:2rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block .cooked-timer-obj>i.cooked-icon{font-size:1.5rem;width:1.3rem;margin-right:.5rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block i.cooked-icon-times{line-height:1rem;font-size:1rem;top:1.4rem;left:1.2rem}#cooked-timers-wrap .cooked-timer-block .cooked-progress{display:block;position:absolute;left:0;bottom:0;height:.5rem;width:100%;background:rgba(0,0,0,.15)}#cooked-timers-wrap .cooked-timer-block .cooked-progress span{width:0;display:block;position:absolute;left:0;top:0;height:.5rem}#cooked-timers-wrap .cooked-timer-block.cooked-paused{background:#f9f9f9}#cooked-timers-wrap .cooked-timer-block.cooked-paused .cooked-timer-obj{color:rgba(0,0,0,.5)}#cooked-timers-wrap .cooked-timer-block.cooked-complete{background:rgba(255,0,0,.05)}#cooked-timers-wrap .cooked-timer-block.cooked-complete .cooked-progress span{background:red}#cooked-timers-wrap .cooked-timer-block.cooked-complete .cooked-timer-obj{color:red}.cooked-recipe-info span.cooked-servings{padding-left:3rem}.cooked-recipe-info span.cooked-servings select.cooked-servings-changer{opacity:0;position:absolute;bottom:0;left:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:none;background:0 0;width:100%;padding:0;margin:0}.cooked-recipe-info span.cooked-servings-icon{opacity:.5;width:1rem;height:1rem;font-size:2.2rem;display:block;position:absolute;top:50%;left:0;margin:-1.1rem 0 0 0}.cooked-recipe-info span.cooked-servings-icon i.cooked-icon{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}.cooked-recipe-gallery{height:1px;overflow:hidden;opacity:0;transform:translate3d(0,10px,0);padding:0;margin:0}.cooked-recipe-gallery .fotorama__thumb-border{border-color:#333}.cooked-recipe-gallery .fotorama__caption__wrap{background:#333;color:#fff}.cooked-recipe-gallery .fotorama__stage__frame.fotorama__active{background:#333}.cooked-recipe-gallery.cooked-gallery-loaded{height:auto;overflow:inherit;opacity:1;transform:translate3d(0,0,0);margin:0 0 2rem}.cooked-nutrition-label{background:#fff;font-size:.9rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:10px;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}.cooked-nutrition-label .cooked-nutrition-title{font-size:2.3rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0;color:#333;border-bottom:1px solid #aaa}.cooked-nutrition-label.cooked-float-left{max-width:45%;margin:0 3rem 3rem 0;float:left}body .cooked-nutrition-label p{margin:0!important;padding:0!important}body .cooked-nutrition-label p.cooked-daily-value-text{padding:.75rem 0 .15rem 0!important;margin:0!important;font-size:.9rem;line-height:1.3rem!important}body .cooked-nutrition-label p.cooked-daily-value-text strong{font-weight:400}body .cooked-nutrition-label dl{margin:0!important;padding:0!important}body .cooked-nutrition-label dt{position:relative;margin:0;padding:2px 0;border-top:1px solid #aaa}body .cooked-nutrition-label dt.cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px}body .cooked-nutrition-label dt.cooked-calories strong{font-size:2rem;font-weight:800}body .cooked-nutrition-label dt.cooked-calories strong.cooked-nut-label{font-size:2.5rem}body .cooked-nutrition-label dt.cooked-nut-servings{border-top:none;padding-bottom:0}body .cooked-nutrition-label dt.cooked-serving-size{border-top:none;padding-top:0}body .cooked-nutrition-label div.cooked-serving-size strong,body .cooked-nutrition-label dt.cooked-serving-size strong,body .cooked-nutrition-label dt.cooked-serving-size strong.cooked-nut-label{font-size:1.3rem;font-weight:800}body .cooked-nutrition-label div.cooked-nut-servings p,body .cooked-nutrition-label dt.cooked-nut-servings p{font-size:1.2rem}body .cooked-nutrition-label dt dt{padding:2px 0 0;margin:2px 0 0}body .cooked-nutrition-label dt:after{content:"";display:table;clear:both}body .cooked-nutrition-label dt.no-after:after{content:none}body .cooked-nutrition-label div.cooked-nut-spacer,body .cooked-nutrition-label dt.cooked-nut-spacer{border:none;height:.5rem;padding:0;background:#333;margin-top:.3rem}body .cooked-nutrition-label dl dt.cooked-nut-no-border,body .cooked-nutrition-label>dl>dt:first-child{border:none}body .cooked-nutrition-label dt dl{margin:0 0 0 1.5rem!important}body .cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1rem solid #333;margin:.1rem 0 0;padding:0}body .cooked-nutrition-label strong{font-weight:800}body .cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}body .cooked-nutrition-label strong.cooked-nut-label{font-weight:400}body .cooked-nutrition-label dl dl strong.cooked-nut-right{font-weight:800}body .cooked-nutrition-label .cooked-nut-right{float:right}body .cooked-nutrition-label dl.cooked-nut-bottom dt{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}body .cooked-nutrition-label dl.cooked-nut-bottom dt strong{font-weight:400}body .cooked-nutrition-label dl.cooked-nut-bottom dt:last-child{border:none}body .cooked-nutrition-label dl.cooked-nut-bottom dt:nth-last-child(2):nth-child(even){border-bottom:1px solid #aaa}.widget .cooked-nutrition-label{margin:0}body .cooked-nutrition-label .cooked-nutrition-facts-powered-by-edamam img{float:right;height:2rem}.cooked-recipe-search{box-sizing:border-box;padding:0;margin:0;width:100%;display:block;border:1px solid transparent;position:relative}.cooked-recipe-search .cooked-field-wrap,.cooked-recipe-search .cooked-fields-wrap{display:inline-block;box-sizing:border-box;width:100%;margin:0 1% 0 0}.cooked-recipe-search .cooked-fields-wrap{margin:0}.cooked-recipe-search .cooked-browse-select{display:block;cursor:pointer;position:relative;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;background:rgba(0,0,0,.075);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);width:100%;font-size:1rem;line-height:3rem;height:auto;padding:0 1rem}.cooked-recipe-search .cooked-browse-select:hover{background:rgba(0,0,0,.1)}.cooked-recipe-search .cooked-browse-select .cooked-field-title{font-size:.9rem;vertical-align:top}.cooked-recipe-search .cooked-taxonomy-selected{border-radius:3px}.cooked-recipe-search .cooked-sortby-wrap{background:#f5f5f5;position:absolute;top:0;height:3rem;width:12rem;display:inline-block;margin:0 1px 0 0;right:3.5rem}.cooked-recipe-search .cooked-sortby-wrap>select{margin:0;box-shadow:none;position:relative;width:100%;background:0 0;cursor:pointer;font-size:.9rem;border:none;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:100%;border-radius:0;display:inline-block;padding:0 1.25rem}.cooked-recipe-search .cooked-sortby-wrap:hover{background:#eee}.cooked-recipe-search input[type=text]{margin:0;vertical-align:initial;box-shadow:none;display:inline-block;box-sizing:border-box;background:#fff;width:100%;height:3rem;padding:0 1rem;font-size:1rem;border:1px solid rgba(0,0,0,.15);border-right:none}.cooked-recipe-search .cooked-3-search-fields>*,.cooked-recipe-search .cooked-4-search-fields>*{float:left}.cooked-recipe-search .cooked-field-wrap-select{position:relative}.cooked-recipe-search .cooked-field-wrap-select:before,.cooked-recipe-search .cooked-sortby-wrap:before{content:"\f00b";opacity:.25;font-family:CookedIcons;font-size:.75rem;position:absolute;top:50%;right:1.5rem;line-height:1.25rem;height:1.25rem;margin-top:-.5rem}.cooked-recipe-search .cooked-field-wrap-select:hover:before,.cooked-recipe-search .cooked-sortby-wrap:hover:before{opacity:.75;margin-top:-.5rem}.cooked-recipe-search .cooked-fields-wrap{padding-right:3.5rem;position:relative}.cooked-recipe-search .cooked-fields-wrap>.cooked-field-wrap-select{width:14%}.cooked-recipe-search .cooked-fields-wrap>.cooked-browse-search{width:85%;max-width:85%;margin:0}.cooked-recipe-search.cooked-search-no-sorting.cooked-search-no-browse .cooked-fields-wrap>.cooked-browse-search{width:100%}.cooked-recipe-search .cooked-browse-search-button{position:absolute;top:0;right:1px;width:3.5rem;text-decoration:none;font-size:1rem;text-align:center;color:#fff;line-height:3rem;height:3rem}.cooked-recipe-search .cooked-browse-search-button:hover{color:#fff;text-decoration:none}.cooked-recipe-search .cooked-browse-select-block{display:flex;color:inherit;cursor:default;visibility:hidden;opacity:0;transform:translate3d(0,-6px,0);box-sizing:border-box;z-index:99;position:absolute;width:auto;background:#fff;top:4rem;left:-10px;margin:0;line-height:1.5rem;border-radius:6px}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column{display:block;width:25%;min-width:25%;box-sizing:border-box;padding:0 .75rem}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div{max-height:16rem;overflow:auto}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div>span{display:block}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div>a,.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>span{display:block;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>span.cooked-tax-column-title{font-size:.9rem;font-weight:800;text-transform:uppercase;margin:0 0 .6rem;padding:0 10px .6rem 0;border-bottom:1px solid rgba(0,0,0,.15)}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div>a{line-height:1.6rem}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div>span.cooked-tax-sub-item{margin-left:.75rem}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column i.cooked-icon{font-size:.9rem;color:rgba(0,0,0,.5)}.cooked-recipe-search .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block{width:170%;padding:1.5rem}.cooked-recipe-search .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%;padding:0}.cooked-recipe-search .cooked-browse-select.cooked-active .cooked-browse-select-block{visibility:visible;opacity:1;transform:translate3d(0,-1px,0)}.cooked-recipe-search .cooked-browse-select-block{box-shadow:0 2px 2px rgba(0,0,0,.05),0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 16px 16px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}.cooked-browse-select-inline-block{display:flex;color:inherit;cursor:default;visibility:visible;opacity:1;box-sizing:border-box;z-index:99;position:relative;width:auto;background:#fff;margin:10px 2px 3rem;line-height:1.5rem;border-radius:6px;padding:1.5rem}.cooked-browse-select-inline-block .cooked-tax-column{display:block;width:100%;box-sizing:border-box;padding:0 .75rem}.cooked-browse-select-inline-block .cooked-tax-column>div{max-height:16rem;overflow:auto}.cooked-browse-select-inline-block .cooked-tax-column>div>span{display:block}.cooked-browse-select-inline-block .cooked-tax-column>div>a,.cooked-browse-select-inline-block .cooked-tax-column>span{display:block;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.cooked-browse-select-inline-block .cooked-tax-column>span.cooked-tax-column-title{font-size:.9rem;font-weight:800;text-transform:uppercase;margin:0 0 .6rem;padding:0 10px .6rem 0;border-bottom:1px solid rgba(0,0,0,.15)}.cooked-browse-select-inline-block .cooked-tax-column>div>a{line-height:1.6rem}.cooked-browse-select-inline-block .cooked-tax-column>div>span.cooked-tax-sub-item{margin-left:.75rem}.cooked-browse-select-inline-block .cooked-tax-column i.cooked-icon{font-size:.9rem;color:rgba(0,0,0,.5)}.cooked-browse-select-inline-block{box-shadow:0 2px 2px -1px rgba(0,0,0,.15)}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap{padding:0;display:block}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap>.cooked-browse-search{width:100%;max-width:100%;border-right:1px solid rgba(0,0,0,.15);margin:3% 0}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block{width:100%;left:0}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap>.cooked-field-wrap-select{display:block;width:100%}.cooked-recipe-search.cooked-search-compact .cooked-sortby-wrap{display:block;position:relative;width:67%;right:auto;top:auto;float:left;margin:0}.cooked-recipe-search.cooked-search-compact .cooked-sortby-wrap>select{position:absolute;width:100%;border:1px solid rgba(0,0,0,.15);margin:0}.cooked-recipe-search.cooked-search-compact .cooked-browse-search-button{width:30%;right:auto;position:relative;display:block;float:right}.cooked-recipe-search.cooked-search-compact .cooked-browse-select-block{top:3rem;left:0;max-height:16rem;overflow:auto;transform:translate3d(0,-1px,0)}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block{width:100%;padding:1.5rem}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-2-search-fields .cooked-browse-select-block{width:100%;padding:1.5rem}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-3-search-fields .cooked-browse-select-block{width:100%;padding:1.5rem}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-4-search-fields .cooked-browse-select-block{width:100%;padding:1.5rem}.cooked-recipe-search.cooked-search-compact .cooked-browse-select-block .cooked-tax-column{float:none;padding:0 0 1.5rem 0}.cooked-recipe-search.cooked-search-compact .cooked-browse-select-block .cooked-tax-column:last-child{padding:0}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-2-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-3-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-4-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%}.cooked-recipe-search.cooked-search-compact.cooked-search-no-sorting .cooked-fields-wrap>.cooked-browse-search{width:80%;margin:3% 0}.cooked-recipe-search.cooked-search-compact.cooked-search-no-sorting .cooked-browse-search-button{width:20%;margin:3% 0}.cooked-recipe-search.cooked-search-compact.cooked-search-no-browse .cooked-browse-search-button,.cooked-recipe-search.cooked-search-compact.cooked-search-no-browse .cooked-fields-wrap>.cooked-browse-search{margin:0 0 3%}.cooked-recipe-search.cooked-search-compact.cooked-search-no-sorting.cooked-search-no-browse .cooked-browse-search-button,.cooked-recipe-search.cooked-search-compact.cooked-search-no-sorting.cooked-search-no-browse .cooked-fields-wrap>.cooked-browse-search{margin:0}.cooked-author-list-heading{display:block;margin:0 0 2rem}.cooked-author-list-heading .cooked-author-avatar{float:left;width:3rem;height:auto;display:block;margin:0 1rem 0 0}.cooked-author-list-heading .cooked-author-avatar img{display:block;margin:0}.cooked-author-list-heading .cooked-meta-title{font-size:1.25rem;line-height:1.2rem;margin:0}.cooked-author-list-heading a{font-size:.9rem}body p.cooked-none-found{display:block;margin:0;padding:1rem 0 2rem;color:#888;text-align:center;font-style:italic}.cooked-recipe-grid{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);position:relative;box-sizing:border-box;padding:0;margin:3% -1.5%;width:103%;display:flex;flex-wrap:wrap}.cooked-recipe-grid .cooked-recipe{width:30.333%;min-width:30.333%;display:block;box-sizing:border-box;margin:0 1.5% 3%;padding:0}.cooked-recipe-grid .cooked-recipe .cooked-recipe-card-title{cursor:pointer;color:inherit;text-decoration:none}.cooked-recipe-grid .cooked-recipe .cooked-recipe-card-title:hover{text-decoration:none!important}.cooked-recipe-grid.cooked-columns-1 .cooked-recipe{width:97%;min-width:97%}.cooked-recipe-grid.cooked-columns-2 .cooked-recipe{width:47%;min-width:47%}.cooked-recipe-grid.cooked-columns-3 .cooked-recipe{width:30.333%;min-width:30.333%}.cooked-recipe-grid.cooked-columns-4 .cooked-recipe{width:22%;min-width:22%}.cooked-recipe-grid.cooked-columns-5 .cooked-recipe{width:17%;min-width:17%}.cooked-recipe-grid.cooked-columns-6 .cooked-recipe{width:13.666%;min-width:13.666%}.cooked-recipe a,.cooked-recipe a:hover,.cooked-recipe-info a,.cooked-recipe-info a:hover,.cooked-recipe-search a,.cooked-recipe-search:hover{box-shadow:none!important}.cooked-recipe-card{text-align:left;background:#fff;text-decoration:none!important;border:none!important;color:inherit!important;display:block;overflow:hidden;border-radius:3px;margin:0 auto 1rem;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.cooked-recipe-card-content>span,.cooked-recipe-card>span{display:block!important}.cooked-recipe-card:hover{text-decoration:none!important;border:none!important;color:inherit!important}.cooked-recipe-card-image{background-size:cover;background-position:center;display:block;margin:0;padding:0;height:250px;width:100%;position:relative}.cooked-recipe-card .cooked-recipe-image-empty{display:block;margin:0;padding:0;height:250px;width:100%;position:relative}.cooked-recipe-card .cooked-recipe-card-sep{display:none}.cooked-recipe-card-content{padding:1rem 1.5rem;margin:0}.cooked-recipe-card-title{display:block;font-weight:600;margin:.5rem 0;font-size:1.25rem;line-height:1.65rem}.cooked-recipe-card-author{margin:.5rem 0;font-size:.9rem}.cooked-recipe-card-excerpt{display:block;margin:.5rem 0;font-size:1rem}.cooked-recipe-card-centered,.cooked-recipe-card-modern-centered{text-align:center}.cooked-recipe-card-modern,.cooked-recipe-card-modern-centered{transform:translate3d(0,0,0);border-radius:10px;box-shadow:0 2px 3px rgba(0,0,0,.04),inset 0 0 0 1px rgba(0,0,0,.1)}.cooked-recipe-card-modern .cooked-recipe-card-author,.cooked-recipe-card-modern .cooked-recipe-card-excerpt,.cooked-recipe-card-modern .cooked-recipe-card-title,.cooked-recipe-card-modern-centered .cooked-recipe-card-author,.cooked-recipe-card-modern-centered .cooked-recipe-card-excerpt,.cooked-recipe-card-modern-centered .cooked-recipe-card-title{margin:.25rem 0}.cooked-recipe-card-modern .cooked-recipe-card-content,.cooked-recipe-card-modern-centered .cooked-recipe-card-content{padding:1.25rem 1.5rem}.cooked-recipe-card-modern .cooked-recipe-card-author,.cooked-recipe-card-modern-centered .cooked-recipe-card-author{opacity:.75}.cooked-recipe-card-modern .cooked-recipe-card-sep,.cooked-recipe-card-modern-centered .cooked-recipe-card-sep{margin:1rem 0;display:block;width:15%;height:6px;border-radius:3px;background:#ddd}.cooked-recipe-card-modern-centered .cooked-recipe-card-sep{margin:1rem auto}.cooked-recipe-card-modern-centered:hover,.cooked-recipe-card-modern:hover{transform:translate3d(0,-2px,0)!important;box-shadow:0 5px 5px rgba(0,0,0,.05),inset 0 0 0 1px rgba(0,0,0,.1)}.cooked-recipe-card-modern-centered:hover .cooked-recipe-card-sep,.cooked-recipe-card-modern:hover .cooked-recipe-card-sep{width:25%}.widget .cooked-recipe-card{margin:0 auto}.cooked-recipe-term-list .cooked-term-item a{display:block;padding:5px 0;border-top:1px solid rgba(0,0,0,.1)}.cooked-shortcode-recipe-list{margin:0 auto 1rem}.cooked-shortcode-recipe-list .cooked-srl-single{box-sizing:border-box;border:none;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.15);position:relative;display:block;padding:.6rem 0 0 0;margin:0 0 1rem}.cooked-shortcode-recipe-list .cooked-srl-single:hover{border:none;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.15)}.cooked-shortcode-recipe-list .cooked-srl-single.cooked-srl-has-image{padding-left:4rem;min-height:3.75rem}.cooked-shortcode-recipe-list .cooked-srl-image{margin:0;padding:0}.cooked-shortcode-recipe-list .cooked-srl-image img{width:3rem;height:3rem;border-radius:3px;position:absolute;top:.9rem;left:0;display:block;margin:0;padding:0}.cooked-shortcode-recipe-list .cooked-srl-sep{display:none}.cooked-shortcode-recipe-list .cooked-srl-content{line-height:1.4rem;padding:0;margin:0}.cooked-shortcode-recipe-list .cooked-srl-title{line-height:1.4rem;display:block;font-weight:600;margin:.25rem 0;font-size:1rem}.cooked-shortcode-recipe-list .cooked-srl-author{line-height:1.4rem;margin:.25rem 0;font-size:.9rem;opacity:.75}.cooked-shortcode-recipe-list .cooked-srl-single:first-child{border:none;padding-top:0}.cooked-shortcode-recipe-list .cooked-srl-single:first-child .cooked-srl-image img{top:0}.cooked-shortcode-recipe-list .cooked-srl-single.cooked-srl-has-image:first-child{min-height:3rem}.cooked-pagination-numbered{text-align:center;display:block;margin:0 0 2rem}.cooked-pagination-numbered>a,.cooked-pagination-numbered>span{font-size:1.2rem;font-weight:600;display:inline-block;padding:0 5px;background:0 0}.cooked-pagination-numbered>span{color:rgba(0,0,0,.25)}body .cooked-pagination-numbered>a{text-decoration:none;border:none}body .cooked-pagination-numbered>a:hover{text-decoration:none;border:none}.cooked-fsm{box-sizing:border-box;display:none;opacity:0;transform:scale(.95);position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;z-index:99998}.cooked-fsm.cooked-visible{display:block}.cooked-fsm.cooked-active{opacity:1;transform:scale(1)}.cooked-fsm .cooked-fsm-top{font-size:1.2rem;font-weight:300;text-align:center;box-sizing:border-box;position:absolute;top:0;left:0;width:100%;color:#fff;padding:0 4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:3.5rem;height:3.5rem}.cooked-fsm .cooked-fsm-ingredients{box-sizing:border-box;padding:5.5rem 2rem 1rem;font-size:1rem;line-height:1.6rem;width:30%;height:100%;background:#f9f9f9;overflow-y:scroll;-webkit-overflow-scrolling:touch;position:absolute;top:0;left:0}.cooked-fsm .cooked-recipe-ingredients{margin-top:-.75rem}.cooked-fsm .cooked-recipe-ingredients .cooked-ingredient{padding:.75rem 0 0 2rem}.cooked-fsm .cooked-recipe-ingredients .cooked-heading{font-size:1.25rem}.cooked-fsm .cooked-recipe-ingredients .cooked-heading:first-child{padding-top:.75rem}.cooked-fsm .cooked-recipe-ingredients .cooked-ingredient-checkbox{top:.75rem}.cooked-fsm .cooked-fsm-directions-wrap{box-sizing:border-box;padding:5.5rem 2rem 1rem;font-size:1rem;line-height:1.6rem;width:70%;height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch;position:absolute;top:0;left:30%}.cooked-fsm .cooked-fsm-directions p{margin:0 0 1.5rem;font-size:1.2rem;line-height:1.6rem}.cooked-fsm .cooked-recipe-directions .cooked-heading{font-size:1.5rem}.cooked-fsm .cooked-recipe-directions .cooked-direction-number{font-size:1.8rem}.cooked-fsm .cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content{padding-left:2.3rem}.cooked-fsm .cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-dir-content{padding-left:3.05rem}.cooked-fsm .cooked-close-fsm{color:#fff;position:absolute;top:0;right:1.25rem}.cooked-fsm h2{margin:0 0 2rem;padding:0;font-size:1rem;text-transform:uppercase;letter-spacing:.05rem;font-weight:800}.cooked-fsm-directions .cooked-panel,.cooked-fsm-ingredients .cooked-panel,.cooked-fsm-notes .cooked-panel{padding-left:1%;padding-right:2%}.cooked-fsm-notes .cooked-panel .cooked-recipe-notes{font-size:1.2rem;line-height:1.6rem}.cooked-fsm-notes .cooked-panel .cooked-recipe-notes{margin:0 0 1rem}.cooked-fsm-notes .cooked-panel .cooked-recipe-notes ol,.cooked-fsm-notes .cooked-panel .cooked-recipe-notes ul{padding-left:1.5rem}.cooked-fsm-notes .cooked-panel .cooked-recipe-notes ul li{margin:0 0 1rem 1rem}.cooked-fsm .cooked-fsm-mobile-nav{box-sizing:border-box;position:absolute;top:3.5rem;left:0;margin:-1px 0 0 0;width:100%;padding:0;line-height:3.5rem;z-index:9999999}.cooked-fsm .cooked-fsm-mobile-nav a{text-transform:uppercase;font-size:.9rem;font-weight:700;letter-spacing:.03rem;display:block;float:left;width:50%;text-align:center;color:#fff;color:rgba(255,255,255,.6);background:rgba(25,25,25,.3);box-shadow:inset -1px 0 0 0 rgba(0,0,0,.15)}.cooked-fsm .cooked-fsm-mobile-nav a.cooked-active{color:#fff}.cooked-fsm .cooked-fsm-mobile-nav a.cooked-active{box-shadow:none}.cooked-fsm .cooked-fsm-mobile-nav a:last-child{box-shadow:inset 1px 0 0 0 rgba(0,0,0,.15)}body.cooked-fsm-active #wpadminbar{display:none}.cooked-recipe-term-grid{margin:3% -1%;position:relative}.cooked-term-block{box-sizing:border-box;display:block;background:0 0;position:relative;float:left}.cooked-term-block .cooked-recipe-card{margin:0}.cooked-term-block .cooked-recipe-card .cooked-recipe-card-sep{margin:.65rem auto;height:3px}.cooked-term-block.cooked-col-33{width:31.333%;margin:1%}.cooked-term-block.cooked-col-25{width:23%;margin:1%}.cooked-recipe-gallery{-webkit-transition:all .5s cubic-bezier(.42,0,.15,1);-moz-transition:all .5s cubic-bezier(.42,0,.15,1);-o-transition:all .5s cubic-bezier(.42,0,.15,1);transition:all .5s cubic-bezier(.42,0,.15,1)}#cooked-timers-wrap,#cooked-timers-wrap .cooked-timer-block,#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj,.cooked-fsm,.cooked-icon-loading-wrap,.cooked-progress>span,.cooked-recipe,.cooked-recipe-card-modern,.cooked-recipe-card-modern-centered,.cooked-recipe-card-sep,.cooked-recipe-info span.cooked-fsm-button,.cooked-recipe-info span.cooked-print>a,.cooked-recipe-search .cooked-browse-search-button,.cooked-recipe-search .cooked-browse-select,.cooked-recipe-search .cooked-field-wrap-select:before,.cooked-recipe-search .cooked-sortby-wrap,.cooked-recipe-search .cooked-sortby-wrap:before,.cooked-recipe-search .cooked-taxonomy-selected,.cooked-recipe-search>form>div:last-child .cooked-browse-search-button{-webkit-transition:all .2s cubic-bezier(.42,0,.15,1);-moz-transition:all .2s cubic-bezier(.42,0,.15,1);-o-transition:all .2s cubic-bezier(.42,0,.15,1);transition:all .2s cubic-bezier(.42,0,.15,1)}.cooked-term-block{-webkit-transition:all .1s cubic-bezier(.25,.25,.75,.75);-moz-transition:all .1s cubic-bezier(.25,.25,.75,.75);-o-transition:all .1s cubic-bezier(.25,.25,.75,.75);transition:all .1s cubic-bezier(.25,.25,.75,.75)}.cooked-term-block .cooked-term-name,.cooked-term-block .cooked-term-thumbnail img{-webkit-transition:all .3s cubic-bezier(.47,0,0,1);-moz-transition:all .3s cubic-bezier(.47,0,0,1);-o-transition:all .3s cubic-bezier(.47,0,0,1);transition:all .3s cubic-bezier(.47,0,0,1)}.cooked-button,.cooked-button i.cooked-icon{-webkit-transition:border .2s cubic-bezier(.42,0,.15,1),background .2s cubic-bezier(.42,0,.15,1),color .2s cubic-bezier(.42,0,.15,1);-moz-transition:border .2s cubic-bezier(.42,0,.15,1),background .2s cubic-bezier(.42,0,.15,1),color .2s cubic-bezier(.42,0,.15,1);-o-transition:border .2s cubic-bezier(.42,0,.15,1),background .2s cubic-bezier(.42,0,.15,1),color .2s cubic-bezier(.42,0,.15,1);transition:border .2s cubic-bezier(.42,0,.15,1),background .2s cubic-bezier(.42,0,.15,1),color .2s cubic-bezier(.42,0,.15,1)}.cooked-recipe-ingredients .cooked-ingredient-checkbox,.cooked-recipe-search .cooked-browse-select.cooked-active .cooked-browse-select-block{-webkit-transition:all .1s cubic-bezier(.42,0,.15,1);-moz-transition:all .1s cubic-bezier(.42,0,.15,1);-o-transition:all .1s cubic-bezier(.42,0,.15,1);transition:all .1s cubic-bezier(.42,0,.15,1)}.cooked-related-recipes-title{margin:0 0 20px 0;font-size:1.5em;font-weight:600;color:#333}.cooked-related-recipes-grid{margin:20px 0}.cooked-related-recipes-empty,.cooked-related-recipes-error{padding:15px;margin:20px 0;background:#f9f9f9;border-left:4px solid #d63638;color:#666;font-style:italic}.cooked-related-recipes-empty{border-left-color:#0073aa;text-align:center}.cooked-related-recipes-grid .cooked-recipe-card{margin-bottom:20px}@media (max-width:768px){.cooked-related-recipes-grid.cooked-columns-3,.cooked-related-recipes-grid.cooked-columns-4{margin-left:-1.5%;width:103%}.cooked-related-recipes-grid.cooked-columns-3 .cooked-recipe,.cooked-related-recipes-grid.cooked-columns-4 .cooked-recipe{width:47%;min-width:47%}}@media (max-width:480px){.cooked-related-recipes-grid.cooked-columns-2 .cooked-recipe,.cooked-related-recipes-grid.cooked-columns-3 .cooked-recipe,.cooked-related-recipes-grid.cooked-columns-4 .cooked-recipe{width:97%;min-width:97%}} \ No newline at end of file +#wp-admin-bar-cooked-ab .ab-icon:before{font-family:CookedIcons;content:"\f035";font-size:17px;top:-2px}.cooked-clearfix:after{content:"";display:table;clear:both}.cooked-noscroll{overflow:hidden;width:100%;height:100%}.cooked-hidden-schema{display:none}.cooked-fsm .cooked-fsm-mobile-nav{display:none}.cooked-browse-search-button,.cooked-button,.cooked-fsm .cooked-fsm-top,.cooked-icon-loading,.cooked-profile-tabs,.cooked-progress span{color:#fff!important;text-decoration:none!important}.cooked-recipe-search .cooked-taxonomy-selected .cooked-field-title,.cooked-recipe-search .cooked-taxonomy-selected:before{color:#fff}.cooked-button,button.cooked-button,input[type=button].cooked-button,input[type=submit].cooked-button{box-sizing:border-box;cursor:pointer;display:inline-block;padding:.4rem .65rem;height:2.1rem;line-height:1.25rem;font-size:.9rem;font-weight:500;letter-spacing:.03rem;color:#fff;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cooked-button i.cooked-icon{color:#fff;font-size:1rem;font-weight:400}.cooked-button.cooked-square-button{padding:0;width:2.25rem;height:2.25rem;line-height:2.25rem;text-align:center}.cooked-button.cooked-square-button i.cooked-icon{font-size:1rem}.cooked-servings-switcher{display:block}.cooked-servings-switcher .cooked-button:first-child{margin-right:1rem}.cooked-servings-switcher .cooked-button:last-child{margin-left:1rem}.cooked-post-featured-image{max-width:100%;height:auto;border:none;display:block;margin:0 0 2rem;padding:0}body .cooked-post-featured-image img{display:block;width:100%;height:auto}.cooked-recipe-ingredients{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-ingredients .cooked-heading{margin:1rem 0 .3rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-ingredients .cooked-heading:first-child{margin-top:0}.cooked-recipe-ingredients .cooked-ingredient{position:relative;padding:.5rem 0 0 2rem;margin:0;font-size:inherit}.cooked-recipe-ingredients .cooked-ingredient.cooked-ing-no-checkbox{padding-left:0}.cooked-recipe-ingredients .cooked-ingredient .cooked-ing-name{line-height:1.4rem;padding:1px 0}.cooked-recipe-ingredients .cooked-ingredient-checkbox{transform:scale(1);position:absolute;top:.9rem;left:0;cursor:pointer;display:inline-block;width:1rem;height:1rem;line-height:1rem;border:1px solid #ddd;border-color:rgba(0,0,0,.2);margin:0 .8rem 0 0}.cooked-recipe-ingredients .cooked-ingredient-checkbox:active{transform:scale(.9)}.cooked-recipe-ingredients .cooked-ingredient-checkbox:hover{border-color:#bbb;border-color:rgba(0,0,0,.5)}.cooked-recipe-ingredients .cooked-ingredient-checkbox.cooked-checked:after{font-family:CookedIcons;content:"\f01d";position:absolute;top:0;left:0;font-size:.6rem;line-height:1rem;width:100%;height:100%;text-align:center}.cooked-recipe-ingredients .cooked-ingredient.cooked-checked{text-decoration:line-through;opacity:.5}.cooked-ingredient-substitution{font-style:italic;color:#777;margin-left:5px;display:inline-block}.cooked-ing-sub-label{font-style:normal;font-weight:600;font-size:.85em;color:#999;margin-right:2px}.cooked-recipe-directions{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-directions .cooked-heading{margin:0 0 1rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-directions .cooked-direction{position:relative;padding:0;margin:0;font-size:inherit}.cooked-recipe-directions .cooked-direction img{max-width:100%;height:auto;display:block;margin:0 0 2rem;padding:0;border:none}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content{padding-left:2.75rem}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-dir-content{padding-left:2.75rem}.cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-direction-number{width:2ch;text-align:right;font-variant-numeric:tabular-nums}.cooked-recipe-directions .cooked-direction-number{opacity:.35;position:absolute;display:inline-block;width:auto;height:1.5rem;line-height:1.5rem;font-weight:800;top:0;left:0;font-size:1.5rem}.cooked-recipe-excerpt{display:block;padding:0;margin:0 0 1rem}.cooked-recipe-info{display:block;padding:0;margin:0 0 1rem}.cooked-recipe-info>section.cooked-left>span,.cooked-recipe-info>span{line-height:1.25rem;position:relative;box-sizing:border-box;vertical-align:top;margin:0 2rem 1rem 0;display:inline-block;width:auto}.cooked-recipe-info>section.cooked-right>span{line-height:1.3rem;position:relative;box-sizing:border-box;vertical-align:top;margin:0 0 1rem 2rem;display:inline-block;width:auto}.cooked-recipe-info>section.cooked-left>span:last-child,.cooked-recipe-info>span:last-child{margin-right:0}.cooked-recipe-info>section.cooked-right>span:first-child{margin-left:0}.cooked-recipe-info strong{font-size:.75rem;letter-spacing:.03rem;font-weight:800;text-transform:uppercase;display:block}.cooked-recipe-notes{display:block;padding:0;margin:0 0 2rem}.cooked-recipe-notes .cooked-heading{margin:0 0 1rem;display:block;font-weight:600;font-size:1.25rem;line-height:1.5}.cooked-recipe-info span.cooked-print,.cooked-recipe-info span.cooked-print>a{height:2rem;display:inline-block}.cooked-recipe-info span.cooked-print>a{color:rgba(0,0,0,.4)}.cooked-recipe-info span.cooked-print>a:hover{color:rgba(0,0,0,.6)}.cooked-recipe-info span.cooked-print .cooked-icon{font-size:2.25rem;line-height:2.5rem}.cooked-recipe-info span.cooked-fsm-button{cursor:pointer;color:rgba(0,0,0,.4);height:2rem;display:inline-block}.cooked-recipe-info span.cooked-fsm-button:hover{color:rgba(0,0,0,.6)}.cooked-recipe-info span.cooked-fsm-button .cooked-icon{font-size:2.25rem;line-height:2.5rem}.cooked-recipe span.cooked-author,.cooked-recipe-info span.cooked-author{padding-left:3.25rem}.cooked-recipe span.cooked-author.cooked-no-avatar,.cooked-recipe-info span.cooked-author.cooked-no-avatar{padding-left:0}.cooked-recipe span.cooked-author-avatar,.cooked-recipe-info span.cooked-author-avatar{width:2.5rem;height:2.5rem;display:block;position:absolute;top:50%;left:0;margin:-1.25rem 0 0 0}.cooked-recipe span.cooked-author-avatar img,.cooked-recipe-info span.cooked-author-avatar img{margin:0;padding:0;display:block;height:auto;width:100%;max-width:100%;max-height:100%;border-radius:100px}.cooked-author-avatar,.cooked-author-avatar img{border-radius:5rem}.cooked-recipe-info span.cooked-time{padding-left:3rem}.cooked-recipe-info span.cooked-time-icon{opacity:.5;width:1rem;height:1rem;font-size:2.2rem;display:block;position:absolute;top:50%;left:0;margin:-1.1rem 0 0 0}.cooked-recipe-info span.cooked-time-icon i.cooked-icon{display:block}.cooked-timer{padding-left:2px}.cooked-timer i.cooked-icon{opacity:.6}body .cooked-timer a{font-weight:600;cursor:pointer;text-decoration:none}body .cooked-timer a:hover{text-decoration:none}#cooked-timers-wrap{z-index:99999;white-space:nowrap;overflow:hidden;border-radius:10px 10px 0 0;background:#fff;box-shadow:0 -5px 30px rgba(0,0,0,.15);line-height:1.6rem;font-size:1rem;width:50%;max-width:100%;height:7.5rem;position:fixed;transform:translate3d(0,7.2em,0);opacity:0;bottom:0;right:50%;margin:0 -25% 0 0;box-sizing:border-box}#cooked-timers-wrap.cooked-visible{transform:translate3d(0,0,0);opacity:1}#cooked-timers-wrap .cooked-timer-block{overflow:hidden;position:relative;display:block;height:0;padding:0;width:100%;opacity:0;padding:0 1.5rem 0 6rem;box-sizing:border-box}#cooked-timers-wrap .cooked-timer-block.cooked-visible{opacity:1;height:7.5rem;padding:1.9rem 1.5rem 1.55rem 6rem}#cooked-timers-wrap .cooked-timer-block>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:auto}#cooked-timers-wrap .cooked-timer-block i.cooked-icon-times{line-height:2rem;color:rgba(0,0,0,.25);position:absolute;font-size:2rem;top:2.5rem;left:2rem;cursor:pointer}#cooked-timers-wrap .cooked-timer-block i.cooked-icon-times:hover{color:inherit}#cooked-timers-wrap .cooked-timer-block .cooked-timer-step{font-size:1.1rem;font-weight:800;text-transform:uppercase}#cooked-timers-wrap .cooked-timer-block .cooked-timer-desc{font-size:1.2rem;width:100%;padding-right:14rem;box-sizing:border-box;font-weight:400;color:rgba(0,0,0,.65)}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj{font-weight:600;position:absolute;top:2.5rem;right:2rem;width:13.5rem;font-size:2rem;line-height:2rem}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>div,#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon{display:inline-block}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon-pause,#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon-play,#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon-reverse{cursor:pointer;opacity:.5;width:2rem;text-align:center;margin-right:.5rem;position:relative;font-size:2rem;transform:scale(.75)}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon-play{display:none}#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj>i.cooked-icon:hover{opacity:1}#cooked-timers-wrap.cooked-multiples{margin:0;right:0;border-radius:10px 0 0 0;width:20rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block{padding-left:3.25rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block.cooked-visible{padding-top:1rem;line-height:1.5rem;padding-left:3.25rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block .cooked-timer-step{font-size:.9rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block .cooked-timer-desc{font-size:1rem;padding:0}#cooked-timers-wrap.cooked-multiples .cooked-timer-block .cooked-timer-obj{top:auto;right:auto;width:auto;font-size:1.5rem;line-height:2rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block .cooked-timer-obj>i.cooked-icon{font-size:1.5rem;width:1.3rem;margin-right:.5rem}#cooked-timers-wrap.cooked-multiples .cooked-timer-block i.cooked-icon-times{line-height:1rem;font-size:1rem;top:1.4rem;left:1.2rem}#cooked-timers-wrap .cooked-timer-block .cooked-progress{display:block;position:absolute;left:0;bottom:0;height:.5rem;width:100%;background:rgba(0,0,0,.15)}#cooked-timers-wrap .cooked-timer-block .cooked-progress span{width:0;display:block;position:absolute;left:0;top:0;height:.5rem}#cooked-timers-wrap .cooked-timer-block.cooked-paused{background:#f9f9f9}#cooked-timers-wrap .cooked-timer-block.cooked-paused .cooked-timer-obj{color:rgba(0,0,0,.5)}#cooked-timers-wrap .cooked-timer-block.cooked-complete{background:rgba(255,0,0,.05)}#cooked-timers-wrap .cooked-timer-block.cooked-complete .cooked-progress span{background:red}#cooked-timers-wrap .cooked-timer-block.cooked-complete .cooked-timer-obj{color:red}.cooked-recipe-info span.cooked-servings{padding-left:3rem}.cooked-recipe-info span.cooked-servings select.cooked-servings-changer{opacity:0;position:absolute;bottom:0;left:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:none;background:0 0;width:100%;padding:0;margin:0}.cooked-recipe-info span.cooked-servings-icon{opacity:.5;width:1rem;height:1rem;font-size:2.2rem;display:block;position:absolute;top:50%;left:0;margin:-1.1rem 0 0 0}.cooked-recipe-info span.cooked-servings-icon i.cooked-icon{display:block}.cooked-left{float:left;display:inline-block;width:auto}.cooked-right{float:right;display:inline-block;width:auto}.cooked-recipe-gallery{height:1px;overflow:hidden;opacity:0;transform:translate3d(0,10px,0);padding:0;margin:0}.cooked-recipe-gallery .fotorama__thumb-border{border-color:#333}.cooked-recipe-gallery .fotorama__caption__wrap{background:#333;color:#fff}.cooked-recipe-gallery .fotorama__stage__frame.fotorama__active{background:#333}.cooked-recipe-gallery.cooked-gallery-loaded{height:auto;overflow:inherit;opacity:1;transform:translate3d(0,0,0);margin:0 0 2rem}.cooked-nutrition-label{background:#fff;font-size:.9rem;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:10px;margin:0 0 2rem;font-family:Helvetica,Arial,sans-serif;container-name:nutrition-label;container-type:inline-size}.cooked-nutrition-label .cooked-nutrition-title{font-size:2.3rem;line-height:1;letter-spacing:0;font-weight:800;padding:0 0 .5rem 0;margin:0;color:#333;border-bottom:1px solid #aaa}.cooked-nutrition-label.cooked-float-left{max-width:45%;margin:0 3rem 3rem 0;float:left}body .cooked-nutrition-label p{margin:0!important;padding:0!important}body .cooked-nutrition-label p.cooked-daily-value-text{padding:.75rem 0 .15rem 0!important;margin:0!important;font-size:.9rem;line-height:1.3rem!important}body .cooked-nutrition-label p.cooked-daily-value-text strong{font-weight:400}body .cooked-nutrition-label dl{margin:0!important;padding:0!important}body .cooked-nutrition-label dt{position:relative;margin:0;padding:2px 0;border-top:1px solid #aaa}body .cooked-nutrition-label dt.cooked-calories{border-top:none;display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px}body .cooked-nutrition-label dt.cooked-calories strong{font-size:2rem;font-weight:800}body .cooked-nutrition-label dt.cooked-calories strong.cooked-nut-label{font-size:2.5rem}body .cooked-nutrition-label dt.cooked-nut-servings{border-top:none;padding-bottom:0}body .cooked-nutrition-label dt.cooked-serving-size{border-top:none;padding-top:0}body .cooked-nutrition-label div.cooked-serving-size strong,body .cooked-nutrition-label dt.cooked-serving-size strong,body .cooked-nutrition-label dt.cooked-serving-size strong.cooked-nut-label{font-size:1.3rem;font-weight:800}body .cooked-nutrition-label div.cooked-nut-servings p,body .cooked-nutrition-label dt.cooked-nut-servings p{font-size:1.2rem}body .cooked-nutrition-label dt dt{padding:2px 0 0;margin:2px 0 0}body .cooked-nutrition-label dt:after{content:"";display:table;clear:both}body .cooked-nutrition-label dt.no-after:after{content:none}body .cooked-nutrition-label div.cooked-nut-spacer,body .cooked-nutrition-label dt.cooked-nut-spacer{border:none;height:.5rem;padding:0;background:#333;margin-top:.3rem}body .cooked-nutrition-label dl dt.cooked-nut-no-border,body .cooked-nutrition-label>dl>dt:first-child{border:none}body .cooked-nutrition-label dt dl{margin:0 0 0 1.5rem!important}body .cooked-nutrition-label .cooked-nut-hr{border:none;border-top:1rem solid #333;margin:.1rem 0 0;padding:0}body .cooked-nutrition-label strong{font-weight:800}body .cooked-nutrition-label strong.cooked-nut-heading{font-size:1rem}body .cooked-nutrition-label strong.cooked-nut-label{font-weight:400}body .cooked-nutrition-label dl dl strong.cooked-nut-right{font-weight:800}body .cooked-nutrition-label .cooked-nut-right{float:right}body .cooked-nutrition-label dl.cooked-nut-bottom dt{border-top:none;border-bottom:1px solid #aaa;float:left;width:100%;box-sizing:border-box}body .cooked-nutrition-label dl.cooked-nut-bottom dt strong{font-weight:400}body .cooked-nutrition-label dl.cooked-nut-bottom dt:last-child{border:none}body .cooked-nutrition-label dl.cooked-nut-bottom dt:nth-last-child(2):nth-child(even){border-bottom:1px solid #aaa}.widget .cooked-nutrition-label{margin:0}body .cooked-nutrition-label .cooked-nutrition-facts-powered-by-edamam img{float:right;height:2rem}.cooked-recipe-search{box-sizing:border-box;padding:0;margin:0;width:100%;display:block;border:1px solid transparent;position:relative}.cooked-recipe-search .cooked-field-wrap,.cooked-recipe-search .cooked-fields-wrap{display:inline-block;box-sizing:border-box;width:100%;margin:0 1% 0 0}.cooked-recipe-search .cooked-fields-wrap{margin:0}.cooked-recipe-search .cooked-browse-select{display:block;cursor:pointer;position:relative;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;background:rgba(0,0,0,.075);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);width:100%;font-size:1rem;line-height:3rem;height:auto;padding:0 1rem}.cooked-recipe-search .cooked-browse-select:hover{background:rgba(0,0,0,.1)}.cooked-recipe-search .cooked-browse-select .cooked-field-title{font-size:.9rem;vertical-align:top}.cooked-recipe-search .cooked-taxonomy-selected{border-radius:3px}.cooked-recipe-search .cooked-sortby-wrap{background:#f5f5f5;position:absolute;top:0;height:3rem;width:12rem;display:inline-block;margin:0 1px 0 0;right:3.5rem}.cooked-recipe-search .cooked-sortby-wrap>select{margin:0;box-shadow:none;position:relative;width:100%;background:0 0;cursor:pointer;font-size:.9rem;border:none;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:100%;border-radius:0;display:inline-block;padding:0 1.25rem}.cooked-recipe-search .cooked-sortby-wrap:hover{background:#eee}.cooked-recipe-search input[type=text]{margin:0;vertical-align:initial;box-shadow:none;display:inline-block;box-sizing:border-box;background:#fff;width:100%;height:3rem;padding:0 1rem;font-size:1rem;border:1px solid rgba(0,0,0,.15);border-right:none}.cooked-recipe-search .cooked-3-search-fields>*,.cooked-recipe-search .cooked-4-search-fields>*{float:left}.cooked-recipe-search .cooked-field-wrap-select{position:relative}.cooked-recipe-search .cooked-field-wrap-select:before,.cooked-recipe-search .cooked-sortby-wrap:before{content:"\f00b";opacity:.25;font-family:CookedIcons;font-size:.75rem;position:absolute;top:50%;right:1.5rem;line-height:1.25rem;height:1.25rem;margin-top:-.5rem}.cooked-recipe-search .cooked-field-wrap-select:hover:before,.cooked-recipe-search .cooked-sortby-wrap:hover:before{opacity:.75;margin-top:-.5rem}.cooked-recipe-search .cooked-fields-wrap{padding-right:3.5rem;position:relative}.cooked-recipe-search .cooked-fields-wrap>.cooked-field-wrap-select{width:14%}.cooked-recipe-search .cooked-fields-wrap>.cooked-browse-search{width:85%;max-width:85%;margin:0}.cooked-recipe-search.cooked-search-no-sorting.cooked-search-no-browse .cooked-fields-wrap>.cooked-browse-search{width:100%}.cooked-recipe-search .cooked-browse-search-button{position:absolute;top:0;right:1px;width:3.5rem;text-decoration:none;font-size:1rem;text-align:center;color:#fff;line-height:3rem;height:3rem}.cooked-recipe-search .cooked-browse-search-button:hover{color:#fff;text-decoration:none}.cooked-recipe-search .cooked-browse-select-block{display:flex;color:inherit;cursor:default;visibility:hidden;opacity:0;transform:translate3d(0,-6px,0);box-sizing:border-box;z-index:99;position:absolute;width:auto;background:#fff;top:4rem;left:-10px;margin:0;line-height:1.5rem;border-radius:6px}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column{display:block;width:25%;min-width:25%;box-sizing:border-box;padding:0 .75rem}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div{max-height:16rem;overflow:auto}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div>span{display:block}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div>a,.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>span{display:block;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>span.cooked-tax-column-title{font-size:.9rem;font-weight:800;text-transform:uppercase;margin:0 0 .6rem;padding:0 10px .6rem 0;border-bottom:1px solid rgba(0,0,0,.15)}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div>a{line-height:1.6rem}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column>div>span.cooked-tax-sub-item{margin-left:.75rem}.cooked-recipe-search .cooked-browse-select-block .cooked-tax-column i.cooked-icon{font-size:.9rem;color:rgba(0,0,0,.5)}.cooked-recipe-search .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block{width:170%;padding:1.5rem}.cooked-recipe-search .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%;padding:0}.cooked-recipe-search .cooked-browse-select.cooked-active .cooked-browse-select-block{visibility:visible;opacity:1;transform:translate3d(0,-1px,0)}.cooked-recipe-search .cooked-browse-select-block{box-shadow:0 2px 2px rgba(0,0,0,.05),0 4px 4px rgba(0,0,0,.05),0 8px 8px rgba(0,0,0,.05),0 16px 16px rgba(0,0,0,.05),0 32px 32px rgba(0,0,0,.05),0 64px 64px rgba(0,0,0,.05)}.cooked-browse-select-inline-block{display:flex;color:inherit;cursor:default;visibility:visible;opacity:1;box-sizing:border-box;z-index:99;position:relative;width:auto;background:#fff;margin:10px 2px 3rem;line-height:1.5rem;border-radius:6px;padding:1.5rem}.cooked-browse-select-inline-block .cooked-tax-column{display:block;width:100%;box-sizing:border-box;padding:0 .75rem}.cooked-browse-select-inline-block .cooked-tax-column>div{max-height:16rem;overflow:auto}.cooked-browse-select-inline-block .cooked-tax-column>div>span{display:block}.cooked-browse-select-inline-block .cooked-tax-column>div>a,.cooked-browse-select-inline-block .cooked-tax-column>span{display:block;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.cooked-browse-select-inline-block .cooked-tax-column>span.cooked-tax-column-title{font-size:.9rem;font-weight:800;text-transform:uppercase;margin:0 0 .6rem;padding:0 10px .6rem 0;border-bottom:1px solid rgba(0,0,0,.15)}.cooked-browse-select-inline-block .cooked-tax-column>div>a{line-height:1.6rem}.cooked-browse-select-inline-block .cooked-tax-column>div>span.cooked-tax-sub-item{margin-left:.75rem}.cooked-browse-select-inline-block .cooked-tax-column i.cooked-icon{font-size:.9rem;color:rgba(0,0,0,.5)}.cooked-browse-select-inline-block{box-shadow:0 2px 2px -1px rgba(0,0,0,.15)}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap{padding:0;display:block}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap>.cooked-browse-search{width:100%;max-width:100%;border-right:1px solid rgba(0,0,0,.15);margin:3% 0}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block{width:100%;left:0}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap>.cooked-field-wrap-select{display:block;width:100%}.cooked-recipe-search.cooked-search-compact .cooked-sortby-wrap{display:block;position:relative;width:67%;right:auto;top:auto;float:left;margin:0}.cooked-recipe-search.cooked-search-compact .cooked-sortby-wrap>select{position:absolute;width:100%;border:1px solid rgba(0,0,0,.15);margin:0}.cooked-recipe-search.cooked-search-compact .cooked-browse-search-button{width:30%;right:auto;position:relative;display:block;float:right}.cooked-recipe-search.cooked-search-compact .cooked-browse-select-block{top:3rem;left:0;max-height:16rem;overflow:auto;transform:translate3d(0,-1px,0)}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block{width:100%;padding:1.5rem}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-2-search-fields .cooked-browse-select-block{width:100%;padding:1.5rem}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-3-search-fields .cooked-browse-select-block{width:100%;padding:1.5rem}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-4-search-fields .cooked-browse-select-block{width:100%;padding:1.5rem}.cooked-recipe-search.cooked-search-compact .cooked-browse-select-block .cooked-tax-column{float:none;padding:0 0 1.5rem 0}.cooked-recipe-search.cooked-search-compact .cooked-browse-select-block .cooked-tax-column:last-child{padding:0}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-1-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-2-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-3-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%}.cooked-recipe-search.cooked-search-compact .cooked-fields-wrap.cooked-4-search-fields .cooked-browse-select-block .cooked-tax-column{width:100%}.cooked-recipe-search.cooked-search-compact.cooked-search-no-sorting .cooked-fields-wrap>.cooked-browse-search{width:80%;margin:3% 0}.cooked-recipe-search.cooked-search-compact.cooked-search-no-sorting .cooked-browse-search-button{width:20%;margin:3% 0}.cooked-recipe-search.cooked-search-compact.cooked-search-no-browse .cooked-browse-search-button,.cooked-recipe-search.cooked-search-compact.cooked-search-no-browse .cooked-fields-wrap>.cooked-browse-search{margin:0 0 3%}.cooked-recipe-search.cooked-search-compact.cooked-search-no-sorting.cooked-search-no-browse .cooked-browse-search-button,.cooked-recipe-search.cooked-search-compact.cooked-search-no-sorting.cooked-search-no-browse .cooked-fields-wrap>.cooked-browse-search{margin:0}.cooked-author-list-heading{display:block;margin:0 0 2rem}.cooked-author-list-heading .cooked-author-avatar{float:left;width:3rem;height:auto;display:block;margin:0 1rem 0 0}.cooked-author-list-heading .cooked-author-avatar img{display:block;margin:0}.cooked-author-list-heading .cooked-meta-title{font-size:1.25rem;line-height:1.2rem;margin:0}.cooked-author-list-heading a{font-size:.9rem}body p.cooked-none-found{display:block;margin:0;padding:1rem 0 2rem;color:#888;text-align:center;font-style:italic}.cooked-recipe-grid{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);position:relative;box-sizing:border-box;padding:0;margin:3% -1.5%;width:103%;display:flex;flex-wrap:wrap}.cooked-recipe-grid .cooked-recipe{width:30.333%;min-width:30.333%;display:block;box-sizing:border-box;margin:0 1.5% 3%;padding:0}.cooked-recipe-grid .cooked-recipe .cooked-recipe-card-title{cursor:pointer;color:inherit;text-decoration:none}.cooked-recipe-grid .cooked-recipe .cooked-recipe-card-title:hover{text-decoration:none!important}.cooked-recipe-grid.cooked-columns-1 .cooked-recipe{width:97%;min-width:97%}.cooked-recipe-grid.cooked-columns-2 .cooked-recipe{width:47%;min-width:47%}.cooked-recipe-grid.cooked-columns-3 .cooked-recipe{width:30.333%;min-width:30.333%}.cooked-recipe-grid.cooked-columns-4 .cooked-recipe{width:22%;min-width:22%}.cooked-recipe-grid.cooked-columns-5 .cooked-recipe{width:17%;min-width:17%}.cooked-recipe-grid.cooked-columns-6 .cooked-recipe{width:13.666%;min-width:13.666%}.cooked-recipe a,.cooked-recipe a:hover,.cooked-recipe-info a,.cooked-recipe-info a:hover,.cooked-recipe-search a,.cooked-recipe-search:hover{box-shadow:none!important}.cooked-recipe-card{text-align:left;background:#fff;text-decoration:none!important;border:none!important;color:inherit!important;display:block;overflow:hidden;border-radius:3px;margin:0 auto 1rem;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.cooked-recipe-card-content>span,.cooked-recipe-card>span{display:block!important}.cooked-recipe-card:hover{text-decoration:none!important;border:none!important;color:inherit!important}.cooked-recipe-card-image{background-size:cover;background-position:center;display:block;margin:0;padding:0;height:250px;width:100%;position:relative}.cooked-recipe-card .cooked-recipe-image-empty{display:block;margin:0;padding:0;height:250px;width:100%;position:relative}.cooked-recipe-card .cooked-recipe-card-sep{display:none}.cooked-recipe-card-content{padding:1rem 1.5rem;margin:0}.cooked-recipe-card-title{display:block;font-weight:600;margin:.5rem 0;font-size:1.25rem;line-height:1.65rem}.cooked-recipe-card-author{margin:.5rem 0;font-size:.9rem}.cooked-recipe-card-excerpt{display:block;margin:.5rem 0;font-size:1rem}.cooked-recipe-card-centered,.cooked-recipe-card-modern-centered{text-align:center}.cooked-recipe-card-modern,.cooked-recipe-card-modern-centered{transform:translate3d(0,0,0);border-radius:10px;box-shadow:0 2px 3px rgba(0,0,0,.04),inset 0 0 0 1px rgba(0,0,0,.1)}.cooked-recipe-card-modern .cooked-recipe-card-author,.cooked-recipe-card-modern .cooked-recipe-card-excerpt,.cooked-recipe-card-modern .cooked-recipe-card-title,.cooked-recipe-card-modern-centered .cooked-recipe-card-author,.cooked-recipe-card-modern-centered .cooked-recipe-card-excerpt,.cooked-recipe-card-modern-centered .cooked-recipe-card-title{margin:.25rem 0}.cooked-recipe-card-modern .cooked-recipe-card-content,.cooked-recipe-card-modern-centered .cooked-recipe-card-content{padding:1.25rem 1.5rem}.cooked-recipe-card-modern .cooked-recipe-card-author,.cooked-recipe-card-modern-centered .cooked-recipe-card-author{opacity:.75}.cooked-recipe-card-modern .cooked-recipe-card-sep,.cooked-recipe-card-modern-centered .cooked-recipe-card-sep{margin:1rem 0;display:block;width:15%;height:6px;border-radius:3px;background:#ddd}.cooked-recipe-card-modern-centered .cooked-recipe-card-sep{margin:1rem auto}.cooked-recipe-card-modern-centered:hover,.cooked-recipe-card-modern:hover{transform:translate3d(0,-2px,0)!important;box-shadow:0 5px 5px rgba(0,0,0,.05),inset 0 0 0 1px rgba(0,0,0,.1)}.cooked-recipe-card-modern-centered:hover .cooked-recipe-card-sep,.cooked-recipe-card-modern:hover .cooked-recipe-card-sep{width:25%}.widget .cooked-recipe-card{margin:0 auto}.cooked-recipe-term-list .cooked-term-item a{display:block;padding:5px 0;border-top:1px solid rgba(0,0,0,.1)}.cooked-shortcode-recipe-list{margin:0 auto 1rem}.cooked-shortcode-recipe-list .cooked-srl-single{box-sizing:border-box;border:none;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.15);position:relative;display:block;padding:.6rem 0 0 0;margin:0 0 1rem}.cooked-shortcode-recipe-list .cooked-srl-single:hover{border:none;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.15)}.cooked-shortcode-recipe-list .cooked-srl-single.cooked-srl-has-image{padding-left:4rem;min-height:3.75rem}.cooked-shortcode-recipe-list .cooked-srl-image{margin:0;padding:0}.cooked-shortcode-recipe-list .cooked-srl-image img{width:3rem;height:3rem;border-radius:3px;position:absolute;top:.9rem;left:0;display:block;margin:0;padding:0}.cooked-shortcode-recipe-list .cooked-srl-sep{display:none}.cooked-shortcode-recipe-list .cooked-srl-content{line-height:1.4rem;padding:0;margin:0}.cooked-shortcode-recipe-list .cooked-srl-title{line-height:1.4rem;display:block;font-weight:600;margin:.25rem 0;font-size:1rem}.cooked-shortcode-recipe-list .cooked-srl-author{line-height:1.4rem;margin:.25rem 0;font-size:.9rem;opacity:.75}.cooked-shortcode-recipe-list .cooked-srl-single:first-child{border:none;padding-top:0}.cooked-shortcode-recipe-list .cooked-srl-single:first-child .cooked-srl-image img{top:0}.cooked-shortcode-recipe-list .cooked-srl-single.cooked-srl-has-image:first-child{min-height:3rem}.cooked-pagination-numbered{text-align:center;display:block;margin:0 0 2rem}.cooked-pagination-numbered>a,.cooked-pagination-numbered>span{font-size:1.2rem;font-weight:600;display:inline-block;padding:0 5px;background:0 0}.cooked-pagination-numbered>span{color:rgba(0,0,0,.25)}body .cooked-pagination-numbered>a{text-decoration:none;border:none}body .cooked-pagination-numbered>a:hover{text-decoration:none;border:none}.cooked-fsm{box-sizing:border-box;display:none;opacity:0;transform:scale(.95);position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;z-index:99998}.cooked-fsm.cooked-visible{display:block}.cooked-fsm.cooked-active{opacity:1;transform:scale(1)}.cooked-fsm .cooked-fsm-top{font-size:1.2rem;font-weight:300;text-align:center;box-sizing:border-box;position:absolute;top:0;left:0;width:100%;color:#fff;padding:0 4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:3.5rem;height:3.5rem}.cooked-fsm .cooked-fsm-ingredients{box-sizing:border-box;padding:5.5rem 2rem 1rem;font-size:1rem;line-height:1.6rem;width:30%;height:100%;background:#f9f9f9;overflow-y:scroll;-webkit-overflow-scrolling:touch;position:absolute;top:0;left:0}.cooked-fsm .cooked-recipe-ingredients{margin-top:-.75rem}.cooked-fsm .cooked-recipe-ingredients .cooked-ingredient{padding:.75rem 0 0 2rem}.cooked-fsm .cooked-recipe-ingredients .cooked-heading{font-size:1.25rem}.cooked-fsm .cooked-recipe-ingredients .cooked-heading:first-child{padding-top:.75rem}.cooked-fsm .cooked-recipe-ingredients .cooked-ingredient-checkbox{top:.75rem}.cooked-fsm .cooked-fsm-directions-wrap{box-sizing:border-box;padding:5.5rem 2rem 1rem;font-size:1rem;line-height:1.6rem;width:70%;height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch;position:absolute;top:0;left:30%}.cooked-fsm .cooked-fsm-directions p{margin:0 0 1.5rem;font-size:1.2rem;line-height:1.6rem}.cooked-fsm .cooked-recipe-directions .cooked-heading{font-size:1.5rem}.cooked-fsm .cooked-recipe-directions .cooked-direction-number{font-size:1.8rem}.cooked-fsm .cooked-recipe-directions .cooked-direction.cooked-direction-has-number .cooked-dir-content{padding-left:3.05rem}.cooked-fsm .cooked-recipe-directions .cooked-direction.cooked-direction-has-number-wide .cooked-dir-content{padding-left:3.05rem}.cooked-fsm .cooked-close-fsm{color:#fff;position:absolute;top:0;right:1.25rem}.cooked-fsm h2{margin:0 0 2rem;padding:0;font-size:1rem;text-transform:uppercase;letter-spacing:.05rem;font-weight:800}.cooked-fsm-directions .cooked-panel,.cooked-fsm-ingredients .cooked-panel,.cooked-fsm-notes .cooked-panel{padding-left:1%;padding-right:2%}.cooked-fsm-notes .cooked-panel .cooked-recipe-notes{font-size:1.2rem;line-height:1.6rem}.cooked-fsm-notes .cooked-panel .cooked-recipe-notes{margin:0 0 1rem}.cooked-fsm-notes .cooked-panel .cooked-recipe-notes ol,.cooked-fsm-notes .cooked-panel .cooked-recipe-notes ul{padding-left:1.5rem}.cooked-fsm-notes .cooked-panel .cooked-recipe-notes ul li{margin:0 0 1rem 1rem}.cooked-fsm .cooked-fsm-mobile-nav{box-sizing:border-box;position:absolute;top:3.5rem;left:0;margin:-1px 0 0 0;width:100%;padding:0;line-height:3.5rem;z-index:9999999}.cooked-fsm .cooked-fsm-mobile-nav a{text-transform:uppercase;font-size:.9rem;font-weight:700;letter-spacing:.03rem;display:block;float:left;width:50%;text-align:center;color:#fff;color:rgba(255,255,255,.6);background:rgba(25,25,25,.3);box-shadow:inset -1px 0 0 0 rgba(0,0,0,.15)}.cooked-fsm .cooked-fsm-mobile-nav a.cooked-active{color:#fff}.cooked-fsm .cooked-fsm-mobile-nav a.cooked-active{box-shadow:none}.cooked-fsm .cooked-fsm-mobile-nav a:last-child{box-shadow:inset 1px 0 0 0 rgba(0,0,0,.15)}body.cooked-fsm-active #wpadminbar{display:none}.cooked-recipe-term-grid{margin:3% -1%;position:relative}.cooked-term-block{box-sizing:border-box;display:block;background:0 0;position:relative;float:left}.cooked-term-block .cooked-recipe-card{margin:0}.cooked-term-block .cooked-recipe-card .cooked-recipe-card-sep{margin:.65rem auto;height:3px}.cooked-term-block.cooked-col-33{width:31.333%;margin:1%}.cooked-term-block.cooked-col-25{width:23%;margin:1%}.cooked-recipe-gallery{-webkit-transition:all .5s cubic-bezier(.42,0,.15,1);-moz-transition:all .5s cubic-bezier(.42,0,.15,1);-o-transition:all .5s cubic-bezier(.42,0,.15,1);transition:all .5s cubic-bezier(.42,0,.15,1)}#cooked-timers-wrap,#cooked-timers-wrap .cooked-timer-block,#cooked-timers-wrap .cooked-timer-block .cooked-timer-obj,.cooked-fsm,.cooked-icon-loading-wrap,.cooked-progress>span,.cooked-recipe,.cooked-recipe-card-modern,.cooked-recipe-card-modern-centered,.cooked-recipe-card-sep,.cooked-recipe-info span.cooked-fsm-button,.cooked-recipe-info span.cooked-print>a,.cooked-recipe-search .cooked-browse-search-button,.cooked-recipe-search .cooked-browse-select,.cooked-recipe-search .cooked-field-wrap-select:before,.cooked-recipe-search .cooked-sortby-wrap,.cooked-recipe-search .cooked-sortby-wrap:before,.cooked-recipe-search .cooked-taxonomy-selected,.cooked-recipe-search>form>div:last-child .cooked-browse-search-button{-webkit-transition:all .2s cubic-bezier(.42,0,.15,1);-moz-transition:all .2s cubic-bezier(.42,0,.15,1);-o-transition:all .2s cubic-bezier(.42,0,.15,1);transition:all .2s cubic-bezier(.42,0,.15,1)}.cooked-term-block{-webkit-transition:all .1s cubic-bezier(.25,.25,.75,.75);-moz-transition:all .1s cubic-bezier(.25,.25,.75,.75);-o-transition:all .1s cubic-bezier(.25,.25,.75,.75);transition:all .1s cubic-bezier(.25,.25,.75,.75)}.cooked-term-block .cooked-term-name,.cooked-term-block .cooked-term-thumbnail img{-webkit-transition:all .3s cubic-bezier(.47,0,0,1);-moz-transition:all .3s cubic-bezier(.47,0,0,1);-o-transition:all .3s cubic-bezier(.47,0,0,1);transition:all .3s cubic-bezier(.47,0,0,1)}.cooked-button,.cooked-button i.cooked-icon{-webkit-transition:border .2s cubic-bezier(.42,0,.15,1),background .2s cubic-bezier(.42,0,.15,1),color .2s cubic-bezier(.42,0,.15,1);-moz-transition:border .2s cubic-bezier(.42,0,.15,1),background .2s cubic-bezier(.42,0,.15,1),color .2s cubic-bezier(.42,0,.15,1);-o-transition:border .2s cubic-bezier(.42,0,.15,1),background .2s cubic-bezier(.42,0,.15,1),color .2s cubic-bezier(.42,0,.15,1);transition:border .2s cubic-bezier(.42,0,.15,1),background .2s cubic-bezier(.42,0,.15,1),color .2s cubic-bezier(.42,0,.15,1)}.cooked-recipe-ingredients .cooked-ingredient-checkbox,.cooked-recipe-search .cooked-browse-select.cooked-active .cooked-browse-select-block{-webkit-transition:all .1s cubic-bezier(.42,0,.15,1);-moz-transition:all .1s cubic-bezier(.42,0,.15,1);-o-transition:all .1s cubic-bezier(.42,0,.15,1);transition:all .1s cubic-bezier(.42,0,.15,1)}.cooked-related-recipes-title{margin:0 0 20px 0;font-size:1.5em;font-weight:600;color:#333}.cooked-related-recipes-grid{margin:20px 0}.cooked-related-recipes-empty,.cooked-related-recipes-error{padding:15px;margin:20px 0;background:#f9f9f9;border-left:4px solid #d63638;color:#666;font-style:italic}.cooked-related-recipes-empty{border-left-color:#0073aa;text-align:center}.cooked-related-recipes-grid .cooked-recipe-card{margin-bottom:20px}@media (max-width:768px){.cooked-related-recipes-grid.cooked-columns-3,.cooked-related-recipes-grid.cooked-columns-4{margin-left:-1.5%;width:103%}.cooked-related-recipes-grid.cooked-columns-3 .cooked-recipe,.cooked-related-recipes-grid.cooked-columns-4 .cooked-recipe{width:47%;min-width:47%}}@media (max-width:480px){.cooked-related-recipes-grid.cooked-columns-2 .cooked-recipe,.cooked-related-recipes-grid.cooked-columns-3 .cooked-recipe,.cooked-related-recipes-grid.cooked-columns-4 .cooked-recipe{width:97%;min-width:97%}} \ No newline at end of file From 73df11b69b9fa8494cabeb9b867d58f4fa0a9129 Mon Sep 17 00:00:00 2001 From: Armand Tresova Date: Thu, 26 Feb 2026 09:14:47 -0500 Subject: [PATCH 28/31] Bug fix with cookedSortableTouchHandler --- assets/admin/js/cooked-functions.js | 20 +++++++++++++++----- assets/admin/js/cooked-functions.min.js | 2 +- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index 7a7b3aa..0e44b89 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -3,6 +3,11 @@ var $_CookedConditionalTimeout = false; // Touch event support for sortable drag handles on mobile devices var cookedSortableTouchHandler = function(event) { var target = event.target; + var types = { + touchstart: "mousedown", + touchmove: "mousemove", + touchend: "mouseup" + }; // Only handle touches on drag handles within cooked sortable containers var dragHandle = target.closest('.cooked-icon-drag'); @@ -10,12 +15,11 @@ var cookedSortableTouchHandler = function(event) { return; // Let the event proceed normally (allows scrolling) } + if (!event.changedTouches || !event.changedTouches.length || !types[event.type]) { + return; + } + var touch = event.changedTouches[0]; - var types = { - touchstart: "mousedown", - touchmove: "mousemove", - touchend: "mouseup" - }; // Prevent default to stop page scrolling when dragging event.preventDefault(); @@ -75,6 +79,9 @@ var cookedSortableTouchHandler = function(event) { if ($_CookedSortable.find('.cooked-icon-drag').length) { $_CookedSortable.sortable({ handle: '.cooked-icon-drag', + // scroll: true, + // scrollSensitivity: 80, + // scrollSpeed: 30, stop: function(event, ui) { // Update direction step numbers when reordering directions if (ui.item.closest('#cooked-directions-builder').length) { @@ -118,6 +125,9 @@ var cookedSortableTouchHandler = function(event) { }); } else { $_CookedSortable.sortable({ + // scroll: true, + // scrollSensitivity: 80, + // scrollSpeed: 30, stop: function(event, ui) { // Update direction step numbers when reordering directions if (ui.item.closest('#cooked-directions-builder').length) { diff --git a/assets/admin/js/cooked-functions.min.js b/assets/admin/js/cooked-functions.min.js index 5dd1f8b..c7a3de8 100644 --- a/assets/admin/js/cooked-functions.min.js +++ b/assets/admin/js/cooked-functions.min.js @@ -1 +1 @@ -var $_CookedConditionalTimeout=!1,cookedSortableTouchHandler=function(e){var t=e.target.closest(".cooked-icon-drag");t&&t.closest(".cooked-sortable")&&(t=e.changedTouches[0],e.preventDefault(),e=new MouseEvent({touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"}[e.type],{bubbles:!0,cancelable:!0,view:window,detail:1,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null}),t.target.dispatchEvent(e))},cooked_recipe_update_counter=((p=>{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
      ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
      ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0 Date: Thu, 26 Feb 2026 12:23:40 -0500 Subject: [PATCH 29/31] wp editor bug fix --- assets/admin/js/cooked-functions.js | 19 +++++++++++++++++-- assets/admin/js/cooked-functions.min.js | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index 0e44b89..cf8d98f 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -89,7 +89,15 @@ var cookedSortableTouchHandler = function(event) { } let textarea = ui.item.find('textarea'); - if (textarea.length) { + var canUseWpEditor = !!( + cooked_admin_functions_js_vars.wp_editor_roles_allowed && + typeof wp !== 'undefined' && + wp.editor && + typeof wp.editor.remove === 'function' && + typeof wp.editor.initialize === 'function' + ); + + if (textarea.length && canUseWpEditor) { let textareaName = textarea.attr('name'); let fieldID = textarea.attr('id'); @@ -952,7 +960,14 @@ function cooked_reset_direction_builder() { var fieldID = 'direction-' + randomKeyForInterval + '-' + directionPartName; thisField.attr('id', fieldID); - if (directionPartName === 'content' && thisField.is('textarea') && cooked_admin_functions_js_vars.wp_editor_roles_allowed) { + var canInitializeWpEditor = !!( + cooked_admin_functions_js_vars.wp_editor_roles_allowed && + typeof wp !== 'undefined' && + wp.editor && + typeof wp.editor.initialize === 'function' + ); + + if (directionPartName === 'content' && thisField.is('textarea') && canInitializeWpEditor) { // Init the WordPress Editor. wp.editor.initialize(fieldID, { tinymce: { diff --git a/assets/admin/js/cooked-functions.min.js b/assets/admin/js/cooked-functions.min.js index c7a3de8..a30b483 100644 --- a/assets/admin/js/cooked-functions.min.js +++ b/assets/admin/js/cooked-functions.min.js @@ -1 +1 @@ -var $_CookedConditionalTimeout=!1,cookedSortableTouchHandler=function(e){var t={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"},o=e.target.closest(".cooked-icon-drag");o&&o.closest(".cooked-sortable")&&e.changedTouches&&e.changedTouches.length&&t[e.type]&&(o=e.changedTouches[0],e.preventDefault(),t=new MouseEvent(t[e.type],{bubbles:!0,cancelable:!0,view:window,detail:1,screenX:o.screenX,screenY:o.screenY,clientX:o.clientX,clientY:o.clientY,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null}),o.target.dispatchEvent(t))},cooked_recipe_update_counter=((p=>{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var o,t=t.item.find("textarea");t.length&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
      ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var t=t.item.find("textarea"),o=!(!cooked_admin_functions_js_vars.wp_editor_roles_allowed||"undefined"==typeof wp||!wp.editor||"function"!=typeof wp.editor.remove||"function"!=typeof wp.editor.initialize);t.length&&o&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
      ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0 Date: Thu, 26 Feb 2026 15:17:11 -0500 Subject: [PATCH 30/31] Cleaned up WP Editor when field is removed --- assets/admin/js/cooked-functions.js | 19 ++++++++++++++++++- assets/admin/js/cooked-functions.min.js | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/assets/admin/js/cooked-functions.js b/assets/admin/js/cooked-functions.js index cf8d98f..638fbe1 100644 --- a/assets/admin/js/cooked-functions.js +++ b/assets/admin/js/cooked-functions.js @@ -586,7 +586,24 @@ var cookedSortableTouchHandler = function(event) { $_CookedDirectionBuilder.parent().on('click', '.cooked-delete-direction', function(e) { e.preventDefault(); - $(this).parent().remove(); + var directionBlock = $(this).parent(); + var canRemoveWpEditor = !!( + cooked_admin_functions_js_vars.wp_editor_roles_allowed && + typeof wp !== 'undefined' && + wp.editor && + typeof wp.editor.remove === 'function' + ); + + if (canRemoveWpEditor) { + var directionTextarea = directionBlock.find('textarea[data-direction-part="content"]'); + var fieldID = directionTextarea.attr('id'); + + if (fieldID) { + wp.editor.remove(fieldID); + } + } + + directionBlock.remove(); cooked_reset_direction_builder(); }); diff --git a/assets/admin/js/cooked-functions.min.js b/assets/admin/js/cooked-functions.min.js index a30b483..2d9cc3e 100644 --- a/assets/admin/js/cooked-functions.min.js +++ b/assets/admin/js/cooked-functions.min.js @@ -1 +1 @@ -var $_CookedConditionalTimeout=!1,cookedSortableTouchHandler=function(e){var t={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"},o=e.target.closest(".cooked-icon-drag");o&&o.closest(".cooked-sortable")&&e.changedTouches&&e.changedTouches.length&&t[e.type]&&(o=e.changedTouches[0],e.preventDefault(),t=new MouseEvent(t[e.type],{bubbles:!0,cancelable:!0,view:window,detail:1,screenX:o.screenX,screenY:o.screenY,clientX:o.clientX,clientY:o.clientY,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null}),o.target.dispatchEvent(t))},cooked_recipe_update_counter=((p=>{p(document).ready(function(){var c,o,t,e,i,n,a,d,r,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var t=t.item.find("textarea"),o=!(!cooked_admin_functions_js_vars.wp_editor_roles_allowed||"undefined"==typeof wp||!wp.editor||"function"!=typeof wp.editor.remove||"function"!=typeof wp.editor.initialize);t.length&&o&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(r,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),c=tinymce.get("_recipe_settings_content");o=null===c?d.val():c.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,r)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
      ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(c=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),r||(r=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=r.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),r.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,c,r,s;0{p(document).ready(function(){var r,o,t,e,i,n,a,d,c,s=p(".cooked-color-field"),l=p("#cooked_recipe_settings").find("select"),u=p("#cooked-recipe-tabs"),k=(p("#cooked-settings-wrap"),p("#cooked_recipe_settings")),_=k.find("input#submit");$_CookedTooltips=p(".cooked-tooltip"),$_CookedConditionals=p(".cooked-conditional-hidden"),$_CookedSortable=p(".cooked-sortable"),$_CookedRecipeSaveDefault=p(".cooked-layout-save-default"),$_CookedShortcodeField=p(".cooked-shortcode-field"),$_CookedIngredientBuilder=p("#cooked-ingredients-builder"),$_CookedAutoNutritionButton=p(".cooked-auto-nutrition-button"),$_CookedDirectionBuilder=p("#cooked-directions-builder"),$_CookedRecipeGallery=p("#cooked-recipe-image-gallery"),$_CookedNutritionFactsTab=p("#cooked-recipe-tab-content-nutrition"),$_CookedSettingsPanel=p("#cooked-settings-panel"),$_CookedSettingsTabs=p("#cooked-settings-tabs"),s.length&&s.wpColorPicker(),$_CookedSortable.length&&(document.addEventListener("touchstart",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchmove",cookedSortableTouchHandler,{passive:!1}),document.addEventListener("touchend",cookedSortableTouchHandler,{passive:!1}),$_CookedSortable.find(".cooked-icon-drag").length?$_CookedSortable.sortable({handle:".cooked-icon-drag",stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder();var t=t.item.find("textarea"),o=!(!cooked_admin_functions_js_vars.wp_editor_roles_allowed||"undefined"==typeof wp||!wp.editor||"function"!=typeof wp.editor.remove||"function"!=typeof wp.editor.initialize);t.length&&o&&(o=t.attr("name"),t=t.attr("id"),wp.editor.remove(t),wp.editor.initialize(t,{tinymce:{wpautop:!1,toolbar1:"bold,italic,underline,blockquote,strikethrough,bullist,numlist,alignleft,aligncenter,alignright,undo,redo,wp_link_advanced,unlink,fullscreen",toolbar2:"",toolbar3:"",toolbar4:"",height:100,textarea_name:o,plugins:"link lists fullscreen wordpress wplink",setup:function(e){}},quicktags:!0,mediaButtons:!1}))}}):$_CookedSortable.sortable({stop:function(e,t){t.item.closest("#cooked-directions-builder").length&&cooked_reset_direction_builder()}})),$_CookedRecipeSaveDefault.length&&($_CookedRecipeSaveDefault.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],trigger:"click",animation:"grow",delay:0,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0,functionReady:function(c,e){p(".cooked-save-default-all").on("click",function(e){e.preventDefault();var o,i=p(this),e=i.data("nonce"),n=i.data("bulk-nonce"),t=i.parent(),a=confirm(cooked_admin_functions_js_vars.i18n_confirm_save_default_all),d=p("#_recipe_settings_content"),r=tinymce.get("_recipe_settings_content");o=null===r?d.val():r.getContent(),a&&!i.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:o,nonce:e},function(e){p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_get_recipe_ids",nonce:n},function(e){var t;i.removeClass("button-primary").addClass("button"),e&&(t=JSON.parse(e),0<(t=Object.keys(t).length))&&cooked_set_default_template(e,t,o,n,c)})}))}),p(".cooked-save-default-new").on("click",function(e){e.preventDefault();var t=p(this),e=t.data("nonce"),o=t.parent(),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");i=null===n?i.val():n.getContent(),t.hasClass("disabled")||(o.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_save_default",default_content:i,nonce:e},function(e){t.text(cooked_admin_functions_js_vars.i18n_saved),o.find(".button-primary").removeClass("disabled")}).fail(function(e){}))})}}),p(".cooked-layout-load-default").on("click",function(e){e.preventDefault();var e=p(this),t=e.parent(),o=confirm(cooked_admin_functions_js_vars.i18n_confirm_load_default),i=p("#_recipe_settings_content"),n=tinymce.get("_recipe_settings_content");o&&!e.hasClass("disabled")&&(t.find(".button, .button-primary").addClass("disabled"),p.post(cooked_admin_functions_js_vars.ajax_url,{action:"cooked_load_default"},function(e){null===n?i.val(e):(i.val(e),n.setContent(e)),t.find(".button, .button-primary").removeClass("disabled")}).fail(function(e){t.find(".button, .button-primary").removeClass("disabled")}))})),l.length&&l.each(function(){p(this).wrap('
      ')}),$_CookedTooltips.length&&$_CookedTooltips.tooltipster({theme:["tooltipster-light","tooltipster-sideTip-cooked"],animation:"grow",delay:100,speed:200,maxWidth:275,contentAsHTML:!0,interactive:!0}),$_CookedShortcodeField.length&&$_CookedShortcodeField.on("click",function(e){p(this).select()}),$_CookedConditionals.length&&(r=[],$_CookedConditionals.each(function(){var e=p(this),t=p(this).data("condition"),o=p(this).data("value"),i=p("#"+t),o=!!o&&o.split(" "),n=e.is("li")||e.is("span")?"inline-block":"block";i.is(":checkbox")&&i.is(":checked")||i.is(":radio")&&i.is(":checked")||!(i.is(":checkbox")&&!i.is(":checked")||i.is(":radio")&&!i.is(":checked"))&&(!i.is(":checkbox")&&!o&&i.val()||!i.is(":checkbox")&&o&&-1 a").attr("href")).split("#"))[1],p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+n).show(),l.on("click",function(e){p(".tab-content").hide();var t=p(this).find("a"),t=($_CookedSettingsTabs.find("li").removeClass("active"),p(this).addClass("active"),t.attr("href"));"migration"==(t=(t=t.split("#"))[1])?_.hide():_.show(),p(".cooked-settings-tab-content").hide(),p("#cooked-settings-tab-content-"+t).show(),p("#cooked-settings-panel").hasClass("stuck")?window.scrollTo(0,130):window.scrollTo(0,0)})),$_CookedIngredientBuilder.length&&(cooked_reset_ingredient_builder(),$_CookedIngredientBuilder.on("keydown",'input[data-ingredient-part="name"]',function(e){9!==e.keyCode&&13!==e.keyCode||p(this).parents(".cooked-ingredient-block").is(":last-child")&&(e.preventDefault(),p("#cooked-recipe-tab-content-ingredients").find(".cooked-add-ingredient-button").trigger("click"),$_CookedIngredientBuilder.find('.cooked-ingredient-block:last-child input[data-ingredient-part="amount"]').focus())}),$_CookedIngredientBuilder.parent().on("click",".cooked-show-substitution",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-ingredient-part="sub_amount"]').focus())}),$_CookedIngredientBuilder.on("keyup change",'input[data-ingredient-part="sub_amount"], input[data-ingredient-part="sub_name"], select[data-ingredient-part="sub_measurement"]',function(e){var t=p(this).parents(".recipe-setting-block"),o=t.find('input[data-ingredient-part="sub_name"]').val();o&&o.trim()?t.addClass("cooked-has-substitution"):t.removeClass("cooked-has-substitution")}),$_CookedAutoNutritionButton.length&&$_CookedIngredientBuilder.on("change",'input[data-ingredient-part="name"]',function(e){var t=!1;$_CookedIngredientBuilder.find('input[data-ingredient-part="name"]').each(function(){if(""!=p(this).val())return!(t=!0)}),t?$_CookedAutoNutritionButton.prop("disabled",!1):$_CookedAutoNutritionButton.prop("disabled",!0)}),$_CookedIngredientBuilder.on("keyup",'input[data-ingredient-part="url"]',function(e){var t=p(this).val(),o=p(this).parents(".recipe-setting-block");t?o.addClass("cooked-has-url"):o.removeClass("cooked-has-url")}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-ingredient-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-ingredient-template").clone().removeClass("cooked-template cooked-ingredient-template").addClass("cooked-ingredient-block");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedIngredientBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-ingredient-block cooked-ingredient-heading");$_CookedIngredientBuilder.append(e),cooked_reset_ingredient_builder()}),$_CookedIngredientBuilder.parent().on("click",".cooked-delete-ingredient",function(e){e.preventDefault(),p(this).parent().remove(),cooked_reset_ingredient_builder()})),$_CookedDirectionBuilder.length&&(cooked_reset_direction_builder(),$_CookedDirectionBuilder.parent().on("click",".cooked-show-heading-element",function(e){e.preventDefault();e=p(this).parent();e.hasClass("cooked-expanded")?e.removeClass("cooked-expanded"):(e.addClass("cooked-expanded"),e.find('input[data-direction-part="section_heading_element"]').focus())}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-direction-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-direction-template").clone().removeClass("cooked-template cooked-direction-template").addClass("cooked-direction-block");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-add-heading-button",function(e){e.preventDefault();e=$_CookedDirectionBuilder.parent().find(".cooked-heading-template").clone().removeClass("cooked-template cooked-heading-template").addClass("cooked-direction-block cooked-direction-heading");$_CookedDirectionBuilder.append(e),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".cooked-delete-direction",function(e){e.preventDefault();var t,e=p(this).parent();cooked_admin_functions_js_vars.wp_editor_roles_allowed&&"undefined"!=typeof wp&&wp.editor&&"function"==typeof wp.editor.remove&&(t=e.find('textarea[data-direction-part="content"]').attr("id"))&&wp.editor.remove(t),e.remove(),cooked_reset_direction_builder()}),$_CookedDirectionBuilder.parent().on("click",".remove-image-button",function(e){e.preventDefault();e=p(this).parent();e.removeClass("cooked-has-image"),e.find("img").attr("src","").removeAttr("srcset").removeAttr("sizes"),e.find('input[data-direction-part="image"]').val(""),cooked_reset_direction_builder()}),p("body").on("click",".cooked-direction-img-placeholder, .cooked-direction-img",function(e){e.preventDefault(),p(this).parent().find(".direction-image-button").trigger("click")}),p("body").on("click",".direction-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),a||(a=wp.media.frames.direction_image_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_image_title,button:{text:cooked_admin_functions_js_vars.i18n_image_button},library:{type:"image"}})).on("select",function(){var e=a.state().get("selection").first().toJSON();p("#direction-"+d+"-image-src").attr("src",e.sizes.thumbnail.url).removeAttr("srcset").removeAttr("sizes").parent().addClass("cooked-has-image"),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(e.id),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_change)}),a.open()})),$_CookedRecipeGallery.length&&(cooked_init_gallery_sorting(),p("body").on("click",".cooked-gallery-add-button",function(e){p(this);e.preventDefault(),c||(c=wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_gallery_image_title,button:{text:cooked_admin_functions_js_vars.i18n_gallery_image_title},library:{type:"image"},multiple:!0})).on("select",function(){var e,t,o,i=c.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,p("#cooked-recipe-image-gallery").append(''));cooked_init_gallery_sorting()}),c.open()}),p("body").on("click",".cooked-recipe-gallery-item img",function(e){e.preventDefault(),p(this).parent().find(".cooked-gallery-edit-button").trigger("click")}),p("body").on("click",".cooked-gallery-edit-button",function(e){var n=p(this),t=n.data("attachment-id"),a=(e.preventDefault(),wp.media.frames.gallery_images_frame=wp.media({title:cooked_admin_functions_js_vars.i18n_edit_image_title,button:{text:cooked_admin_functions_js_vars.i18n_edit_image_button},library:{type:"image"},multiple:!1}));a.on("open",function(){var e=a.state().get("selection");(attachment=wp.media.attachment(t)).fetch(),e.add(attachment?[attachment]:[])}),a.open(),a.on("select",function(){var e,t,o,i=a.state().get("selection").toJSON();for(e in i)i.hasOwnProperty(e)&&(o=(t=i[e]).sizes.thumbnail.url,n.parent().replaceWith(''));cooked_init_gallery_sorting()})}),$_CookedRecipeGallery.on("click",".remove-image-button",function(e){var t=p(this);d=t.data("id"),e.preventDefault(),d?(p("#direction-"+d+"-image-src").parent().removeClass("cooked-has-image").prop("src",!1),p('input[name="_recipe_settings[directions]['+d+'][image]"]').val(""),p('.direction-image-button[data-id="'+d+'"]').prop("value",cooked_admin_functions_js_vars.i18n_image_title)):t.parent().remove()})),$_CookedNutritionFactsTab.length&&(init_nutrition_facts($_CookedNutritionFactsTab),$_CookedNutritionFactsTab.on("keyup","input",function(e){init_nutrition_facts($_CookedNutritionFactsTab)})),p("#cooked-prep-time").length&&p("#cooked-prep-time,#cooked-cook-time").on("change",function(){cooked_updateTotalTimeValue(parseInt(p("#cooked-prep-time").val()),parseInt(p("#cooked-cook-time").val()))})})})(jQuery),0);function cooked_set_default_template(e,o,i,n,a){var d,r,c,s;0 Date: Fri, 27 Feb 2026 12:30:38 -0500 Subject: [PATCH 31/31] Updated release notes --- readme.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/readme.txt b/readme.txt index e958fc9..8ddc143 100644 --- a/readme.txt +++ b/readme.txt @@ -80,11 +80,7 @@ Please report security bugs found in the source code of the Cooked plugin throug == Upgrade Notice == -Version 1.13.0 includes changes to the [cooked-related-recipes] shortcode. - -== Changelog == - -Version 1.13.0 includes CSV import functionality and changes to the [cooked-related-recipes] shortcode. +Version 1.13.0 includes CSV import functionality, changes to the [cooked-related-recipes] shortcode, and other minor improvements and bug fixes. == Changelog ==