Changeset 2763965
- Timestamp:
- 07/31/2022 04:00:35 AM (4 years ago)
- Location:
- terminal-block/trunk
- Files:
-
- 14 edited
-
build/block.json (modified) (3 diffs)
-
build/index.asset.php (modified) (1 diff)
-
build/index.css (modified) (1 diff)
-
build/index.js (modified) (1 diff)
-
build/style-index.css (modified) (1 diff)
-
package-lock.json (modified) (1 diff)
-
package.json (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
src/block.json (modified) (3 diffs)
-
src/edit.js (modified) (3 diffs)
-
src/editor.scss (modified) (1 diff)
-
src/save.js (modified) (1 diff)
-
src/style.scss (modified) (3 diffs)
-
terminal-block.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
terminal-block/trunk/build/block.json
r2763919 r2763965 3 3 "apiVersion": 2, 4 4 "name": "codesue/terminal-block", 5 "version": "0.1. 1",5 "version": "0.1.2", 6 6 "title": "Terminal Block", 7 7 "category": "widgets", … … 14 14 ], 15 15 "supports": { 16 "color": {17 "text": true,18 "background": true,19 "link": true20 },21 16 "spacing": { 22 17 "margin": true, … … 37 32 "type": "string", 38 33 "default": "bash" 34 }, 35 "backgroundColor": { 36 "type": "string", 37 "default": "#252a33" 38 }, 39 "textColor": { 40 "type": "string", 41 "default": "#eee" 42 }, 43 "accentColor": { 44 "type": "string", 45 "default": "#a2a2a2" 39 46 } 40 47 }, -
terminal-block/trunk/build/index.asset.php
r2763919 r2763965 1 <?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => ' b27a2b7ea3393655834c');1 <?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '335c321e0920cbfbf4c5'); -
terminal-block/trunk/build/index.css
r2762884 r2763965 1 /*!****************************************************************************************************************************************************************************************************************************************!*\ 2 !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[3]!./src/editor.scss ***! 3 \****************************************************************************************************************************************************************************************************************************************/ 4 .wp-block-codesue-terminal-block .prompt { 5 -webkit-user-select: text; 6 -moz-user-select: text; 7 user-select: text; 8 } 9 10 /*# sourceMappingURL=index.css.map*/ 1 .wp-block-codesue-terminal-block .block-editor-rich-text__editable{background:var(--wp--default--terminal--block--color--background)!important;box-sizing:border-box!important;color:var(--wp--default--terminal--block--color--text)!important;font-family:Fira Mono,Consolas,Menlo,Monaco,Courier New,Courier,monospace!important;font-size:18px!important;max-width:100%!important;width:750px!important}.wp-block-codesue-terminal-block p.block-editor-rich-text__editable{display:block!important;line-height:1!important} -
terminal-block/trunk/build/index.js
r2763919 r2763965 1 /******/ (() => { // webpackBootstrap 2 /******/ "use strict"; 3 /******/ var __webpack_modules__ = ({ 4 5 /***/ "./src/edit.js": 6 /*!*********************!*\ 7 !*** ./src/edit.js ***! 8 \*********************/ 9 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 10 11 __webpack_require__.r(__webpack_exports__); 12 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 13 /* harmony export */ "default": () => (/* binding */ edit) 14 /* harmony export */ }); 15 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js"); 16 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 17 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 18 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 19 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__); 20 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 21 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__); 22 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 23 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__); 24 /* harmony import */ var _inner_blocks_command__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./inner-blocks/command */ "./src/inner-blocks/command.js"); 25 /* harmony import */ var _inner_blocks_output__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./inner-blocks/output */ "./src/inner-blocks/output.js"); 26 /* harmony import */ var _inner_blocks_progress_bar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./inner-blocks/progress-bar */ "./src/inner-blocks/progress-bar.js"); 27 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./block.json */ "./src/block.json"); 28 29 30 31 32 33 34 35 36 37 function edit(_ref) { 38 let { 39 attributes, 40 setAttributes 41 } = _ref; 42 const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.useBlockProps)(); 43 44 const onChangeTitle = title => { 45 setAttributes({ 46 title 47 }); 48 }; 49 50 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, { 51 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Terminal Settings", _block_json__WEBPACK_IMPORTED_MODULE_8__.textdomain), 52 initialOpen: true 53 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelRow, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.TextControl, { 54 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Title", _block_json__WEBPACK_IMPORTED_MODULE_8__.textdomain), 55 value: attributes.title, 56 onChange: onChangeTitle, 57 help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Change the title. Defaults to bash", _block_json__WEBPACK_IMPORTED_MODULE_8__.textdomain) 58 })))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, blockProps, { 59 title: attributes.title 60 }), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InnerBlocks, { 61 allowedBlocks: ["core/spacer", "codesue/terminal-command-block", "codesue/terminal-output-block", "codesue/terminal-progress-bar-block"] 62 }))); 63 } 64 65 /***/ }), 66 67 /***/ "./src/index.js": 68 /*!**********************!*\ 69 !*** ./src/index.js ***! 70 \**********************/ 71 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 72 73 __webpack_require__.r(__webpack_exports__); 74 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); 75 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__); 76 /* harmony import */ var _edit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./edit */ "./src/edit.js"); 77 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./block.json */ "./src/block.json"); 78 /* harmony import */ var _save__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./save */ "./src/save.js"); 79 /* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style.scss */ "./src/style.scss"); 80 81 82 83 84 85 (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__.registerBlockType)(_block_json__WEBPACK_IMPORTED_MODULE_2__.name, { 86 edit: _edit__WEBPACK_IMPORTED_MODULE_1__["default"], 87 save: _save__WEBPACK_IMPORTED_MODULE_3__["default"] 88 }); 89 90 /***/ }), 91 92 /***/ "./src/inner-blocks/command.js": 93 /*!*************************************!*\ 94 !*** ./src/inner-blocks/command.js ***! 95 \*************************************/ 96 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 97 98 __webpack_require__.r(__webpack_exports__); 99 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js"); 100 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 101 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 102 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); 103 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); 104 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 105 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); 106 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 107 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__); 108 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 109 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 110 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../block.json */ "./src/block.json"); 111 112 113 114 115 116 117 118 (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)("codesue/terminal-command-block", { 119 title: "Command", 120 parent: [_block_json__WEBPACK_IMPORTED_MODULE_6__.name], 121 icon: "arrow-right-alt2", 122 description: "Add a command to a terminal window.", 123 category: "text", 124 attributes: { 125 content: { 126 type: "string", 127 source: "html", 128 selector: "p" 129 }, 130 prompt: { 131 type: "string", 132 default: "$" 133 } 134 }, 135 example: { 136 attributes: { 137 content: "pip install spacy" 138 } 139 }, 140 141 edit(_ref) { 142 let { 143 attributes, 144 setAttributes 145 } = _ref; 146 const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)(); 147 148 const onChangeContent = content => { 149 setAttributes({ 150 content 151 }); 152 }; 153 154 const onChangePrompt = prompt => { 155 setAttributes({ 156 prompt 157 }); 158 }; 159 160 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelBody, { 161 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Prompt Settings", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain), 162 initialOpen: true 163 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelRow, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.TextControl, { 164 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Prompt", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain), 165 value: attributes.prompt, 166 onChange: onChangePrompt, 167 help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Change the prompt. Defaults to $", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain) 168 })))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.RichText, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, blockProps, { 169 tagName: "p", 170 value: attributes.content, 171 prompt: attributes.prompt, 172 className: "display-prompt", 173 onChange: onChangeContent, 174 placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Enter your command...", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain), 175 allowedFormats: ["core/bold", "core/italic", "core/link", "core/text-color", "core/underline"] 176 }))); 177 }, 178 179 save(_ref2) { 180 let { 181 attributes 182 } = _ref2; 183 const blockProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps.save(); 184 const { 185 content, 186 prompt 187 } = attributes; 188 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.RichText.Content, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, blockProps, { 189 tagName: "p", 190 value: content, 191 prompt: prompt, 192 className: "display-prompt" 193 })); 194 }, 195 196 transforms: { 197 to: [{ 198 type: "block", 199 blocks: ["codesue/terminal-output-block"], 200 transform: _ref3 => { 201 let { 202 content 203 } = _ref3; 204 return (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.createBlock)("codesue/terminal-output-block", { 205 content: content 206 }); 207 } 208 }], 209 from: [{ 210 type: "block", 211 blocks: ["codesue/terminal-output-block"], 212 transform: _ref4 => { 213 let { 214 content 215 } = _ref4; 216 return (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.createBlock)("codesue/terminal-command-block", { 217 content: content 218 }); 219 } 220 }] 221 } 222 }); 223 224 /***/ }), 225 226 /***/ "./src/inner-blocks/output.js": 227 /*!************************************!*\ 228 !*** ./src/inner-blocks/output.js ***! 229 \************************************/ 230 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 231 232 __webpack_require__.r(__webpack_exports__); 233 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js"); 234 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 235 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 236 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); 237 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); 238 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 239 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); 240 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 241 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__); 242 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../block.json */ "./src/block.json"); 243 244 245 246 247 248 249 (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)("codesue/terminal-output-block", { 250 title: "Output", 251 parent: [_block_json__WEBPACK_IMPORTED_MODULE_5__.name], 252 icon: "editor-paragraph", 253 description: "Add output text to a terminal window.", 254 category: "text", 255 attributes: { 256 content: { 257 type: "string", 258 source: "html", 259 selector: "p" 260 } 261 }, 262 example: { 263 attributes: { 264 content: "Successfully installed spacy" 265 } 266 }, 267 268 edit(_ref) { 269 let { 270 attributes, 271 setAttributes 272 } = _ref; 273 const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)(); 274 275 const onChangeContent = content => { 276 setAttributes({ 277 content 278 }); 279 }; 280 281 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.RichText, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, blockProps, { 282 tagName: "p", 283 value: attributes.content, 284 onChange: onChangeContent, 285 placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)("Write your output...", _block_json__WEBPACK_IMPORTED_MODULE_5__.textdomain), 286 allowedFormats: ["core/bold", "core/italic", "core/link", "core/text-color", "core/underline"] 287 })); 288 }, 289 290 save(_ref2) { 291 let { 292 attributes 293 } = _ref2; 294 const blockProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps.save(); 295 const { 296 content 297 } = attributes; 298 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.RichText.Content, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, blockProps, { 299 tagName: "p", 300 value: content 301 })); 302 }, 303 304 transforms: { 305 to: [{ 306 type: "block", 307 blocks: ["codesue/terminal-command-block"], 308 transform: _ref3 => { 309 let { 310 content 311 } = _ref3; 312 return (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.createBlock)("codesue/terminal-command-block", { 313 content: content 314 }); 315 } 316 }], 317 from: [{ 318 type: "block", 319 blocks: ["codesue/terminal-command-block"], 320 transform: _ref4 => { 321 let { 322 content 323 } = _ref4; 324 return (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.createBlock)("codesue/terminal-output-block", { 325 content: content 326 }); 327 } 328 }] 329 } 330 }); 331 332 /***/ }), 333 334 /***/ "./src/inner-blocks/progress-bar.js": 335 /*!******************************************!*\ 336 !*** ./src/inner-blocks/progress-bar.js ***! 337 \******************************************/ 338 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 339 340 __webpack_require__.r(__webpack_exports__); 341 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js"); 342 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 343 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 344 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); 345 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__); 346 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 347 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); 348 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 349 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__); 350 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 351 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 352 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../block.json */ "./src/block.json"); 353 354 355 356 357 358 359 360 (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_2__.registerBlockType)("codesue/terminal-progress-bar-block", { 361 title: "Progress Bar", 362 parent: [_block_json__WEBPACK_IMPORTED_MODULE_6__.name], 363 icon: "chart-bar", 364 description: "Add a progress bar to a terminal window.", 365 category: "design", 366 supports: { 367 color: { 368 text: true, 369 background: false 370 } 371 }, 372 attributes: { 373 content: { 374 type: "string", 375 source: "html", 376 selector: "p" 377 }, 378 character: { 379 type: "string", 380 default: "█" 381 }, 382 percent: { 383 type: "number", 384 default: "100" 385 } 386 }, 387 example: { 388 attributes: { 389 content: "███████████████████ 100%" 390 } 391 }, 392 393 edit(_ref) { 394 let { 395 attributes, 396 setAttributes 397 } = _ref; 398 const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)(); 399 400 const createProgressBar = (character, percent) => { 401 if (!character) return ""; 402 return `${character.repeat(percent / 2.5)} ${attributes.percent}%`; 403 }; 404 405 const onChangeContent = content => { 406 setAttributes({ 407 content: content 408 }); 409 }; 410 411 const onChangeCharacter = character => { 412 setAttributes({ 413 character 414 }); 415 createProgressBar(character, attributes.percent); 416 }; 417 418 const onChangePercent = percent => { 419 setAttributes({ 420 percent: parseInt(percent) 421 }); 422 createProgressBar(attributes.character, parseInt(percent)); 423 }; 424 425 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelBody, { 426 title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Progress Bar Settings", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain), 427 initialOpen: true 428 }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelRow, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.TextControl, { 429 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Character", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain), 430 value: attributes.character, 431 onChange: onChangeCharacter, 432 help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Change the character. Defaults to █", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain) 433 })), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelRow, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.__experimentalNumberControl, { 434 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Percent", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain), 435 labelPosition: "edge", 436 value: attributes.percent, 437 onChange: onChangePercent, 438 isDragEnabled: true, 439 min: 0, 440 max: 100, 441 step: 10, 442 help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Change the percent. Defaults to 100", _block_json__WEBPACK_IMPORTED_MODULE_6__.textdomain) 443 })))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.RichText, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, blockProps, { 444 tagName: "p", 445 value: createProgressBar(attributes.character, attributes.percent), 446 character: attributes.character, 447 percent: attributes.percent, 448 onChange: onChangeContent, 449 allowedFormats: [] 450 }))); 451 }, 452 453 save(_ref2) { 454 let { 455 attributes 456 } = _ref2; 457 const blockProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps.save(); 458 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.RichText.Content, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, blockProps, { 459 tagName: "p", 460 value: attributes.content, 461 character: attributes.character, 462 percent: attributes.percent 463 })); 464 } 465 466 }); 467 468 /***/ }), 469 470 /***/ "./src/save.js": 471 /*!*********************!*\ 472 !*** ./src/save.js ***! 473 \*********************/ 474 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 475 476 __webpack_require__.r(__webpack_exports__); 477 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 478 /* harmony export */ "default": () => (/* binding */ save) 479 /* harmony export */ }); 480 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js"); 481 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 482 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 483 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 484 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); 485 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 486 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); 487 488 489 490 491 function save(_ref) { 492 let { 493 attributes 494 } = _ref; 495 const blockProps = _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps.save(); 496 return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, blockProps, { 497 title: attributes.title 498 }), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.InnerBlocks.Content, null)); 499 } 500 501 /***/ }), 502 503 /***/ "./src/style.scss": 504 /*!************************!*\ 505 !*** ./src/style.scss ***! 506 \************************/ 507 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 508 509 __webpack_require__.r(__webpack_exports__); 510 // extracted by mini-css-extract-plugin 511 512 513 /***/ }), 514 515 /***/ "@wordpress/block-editor": 516 /*!*************************************!*\ 517 !*** external ["wp","blockEditor"] ***! 518 \*************************************/ 519 /***/ ((module) => { 520 521 module.exports = window["wp"]["blockEditor"]; 522 523 /***/ }), 524 525 /***/ "@wordpress/blocks": 526 /*!********************************!*\ 527 !*** external ["wp","blocks"] ***! 528 \********************************/ 529 /***/ ((module) => { 530 531 module.exports = window["wp"]["blocks"]; 532 533 /***/ }), 534 535 /***/ "@wordpress/components": 536 /*!************************************!*\ 537 !*** external ["wp","components"] ***! 538 \************************************/ 539 /***/ ((module) => { 540 541 module.exports = window["wp"]["components"]; 542 543 /***/ }), 544 545 /***/ "@wordpress/element": 546 /*!*********************************!*\ 547 !*** external ["wp","element"] ***! 548 \*********************************/ 549 /***/ ((module) => { 550 551 module.exports = window["wp"]["element"]; 552 553 /***/ }), 554 555 /***/ "@wordpress/i18n": 556 /*!******************************!*\ 557 !*** external ["wp","i18n"] ***! 558 \******************************/ 559 /***/ ((module) => { 560 561 module.exports = window["wp"]["i18n"]; 562 563 /***/ }), 564 565 /***/ "./node_modules/@babel/runtime/helpers/esm/extends.js": 566 /*!************************************************************!*\ 567 !*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***! 568 \************************************************************/ 569 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { 570 571 __webpack_require__.r(__webpack_exports__); 572 /* harmony export */ __webpack_require__.d(__webpack_exports__, { 573 /* harmony export */ "default": () => (/* binding */ _extends) 574 /* harmony export */ }); 575 function _extends() { 576 _extends = Object.assign ? Object.assign.bind() : function (target) { 577 for (var i = 1; i < arguments.length; i++) { 578 var source = arguments[i]; 579 580 for (var key in source) { 581 if (Object.prototype.hasOwnProperty.call(source, key)) { 582 target[key] = source[key]; 583 } 584 } 585 } 586 587 return target; 588 }; 589 return _extends.apply(this, arguments); 590 } 591 592 /***/ }), 593 594 /***/ "./src/block.json": 595 /*!************************!*\ 596 !*** ./src/block.json ***! 597 \************************/ 598 /***/ ((module) => { 599 600 module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"codesue/terminal-block","version":"0.1.1","title":"Terminal Block","category":"widgets","icon":"editor-code","description":"Display rich text in a terminal window.","keywords":["code","terminal","documentation"],"supports":{"color":{"text":true,"background":true,"link":true},"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true,"lineHeight":true}},"attributes":{"content":{"type":"string","source":"html","selector":"div"},"title":{"type":"string","default":"bash"}},"textdomain":"terminal-block","editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css"}'); 601 602 /***/ }) 603 604 /******/ }); 605 /************************************************************************/ 606 /******/ // The module cache 607 /******/ var __webpack_module_cache__ = {}; 608 /******/ 609 /******/ // The require function 610 /******/ function __webpack_require__(moduleId) { 611 /******/ // Check if module is in cache 612 /******/ var cachedModule = __webpack_module_cache__[moduleId]; 613 /******/ if (cachedModule !== undefined) { 614 /******/ return cachedModule.exports; 615 /******/ } 616 /******/ // Create a new module (and put it into the cache) 617 /******/ var module = __webpack_module_cache__[moduleId] = { 618 /******/ // no module.id needed 619 /******/ // no module.loaded needed 620 /******/ exports: {} 621 /******/ }; 622 /******/ 623 /******/ // Execute the module function 624 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 625 /******/ 626 /******/ // Return the exports of the module 627 /******/ return module.exports; 628 /******/ } 629 /******/ 630 /******/ // expose the modules object (__webpack_modules__) 631 /******/ __webpack_require__.m = __webpack_modules__; 632 /******/ 633 /************************************************************************/ 634 /******/ /* webpack/runtime/chunk loaded */ 635 /******/ (() => { 636 /******/ var deferred = []; 637 /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { 638 /******/ if(chunkIds) { 639 /******/ priority = priority || 0; 640 /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; 641 /******/ deferred[i] = [chunkIds, fn, priority]; 642 /******/ return; 643 /******/ } 644 /******/ var notFulfilled = Infinity; 645 /******/ for (var i = 0; i < deferred.length; i++) { 646 /******/ var [chunkIds, fn, priority] = deferred[i]; 647 /******/ var fulfilled = true; 648 /******/ for (var j = 0; j < chunkIds.length; j++) { 649 /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { 650 /******/ chunkIds.splice(j--, 1); 651 /******/ } else { 652 /******/ fulfilled = false; 653 /******/ if(priority < notFulfilled) notFulfilled = priority; 654 /******/ } 655 /******/ } 656 /******/ if(fulfilled) { 657 /******/ deferred.splice(i--, 1) 658 /******/ var r = fn(); 659 /******/ if (r !== undefined) result = r; 660 /******/ } 661 /******/ } 662 /******/ return result; 663 /******/ }; 664 /******/ })(); 665 /******/ 666 /******/ /* webpack/runtime/compat get default export */ 667 /******/ (() => { 668 /******/ // getDefaultExport function for compatibility with non-harmony modules 669 /******/ __webpack_require__.n = (module) => { 670 /******/ var getter = module && module.__esModule ? 671 /******/ () => (module['default']) : 672 /******/ () => (module); 673 /******/ __webpack_require__.d(getter, { a: getter }); 674 /******/ return getter; 675 /******/ }; 676 /******/ })(); 677 /******/ 678 /******/ /* webpack/runtime/define property getters */ 679 /******/ (() => { 680 /******/ // define getter functions for harmony exports 681 /******/ __webpack_require__.d = (exports, definition) => { 682 /******/ for(var key in definition) { 683 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 684 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 685 /******/ } 686 /******/ } 687 /******/ }; 688 /******/ })(); 689 /******/ 690 /******/ /* webpack/runtime/hasOwnProperty shorthand */ 691 /******/ (() => { 692 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 693 /******/ })(); 694 /******/ 695 /******/ /* webpack/runtime/make namespace object */ 696 /******/ (() => { 697 /******/ // define __esModule on exports 698 /******/ __webpack_require__.r = (exports) => { 699 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 700 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 701 /******/ } 702 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 703 /******/ }; 704 /******/ })(); 705 /******/ 706 /******/ /* webpack/runtime/jsonp chunk loading */ 707 /******/ (() => { 708 /******/ // no baseURI 709 /******/ 710 /******/ // object to store loaded and loading chunks 711 /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched 712 /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded 713 /******/ var installedChunks = { 714 /******/ "index": 0, 715 /******/ "./style-index": 0 716 /******/ }; 717 /******/ 718 /******/ // no chunk on demand loading 719 /******/ 720 /******/ // no prefetching 721 /******/ 722 /******/ // no preloaded 723 /******/ 724 /******/ // no HMR 725 /******/ 726 /******/ // no HMR manifest 727 /******/ 728 /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); 729 /******/ 730 /******/ // install a JSONP callback for chunk loading 731 /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { 732 /******/ var [chunkIds, moreModules, runtime] = data; 733 /******/ // add "moreModules" to the modules object, 734 /******/ // then flag all "chunkIds" as loaded and fire callback 735 /******/ var moduleId, chunkId, i = 0; 736 /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { 737 /******/ for(moduleId in moreModules) { 738 /******/ if(__webpack_require__.o(moreModules, moduleId)) { 739 /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; 740 /******/ } 741 /******/ } 742 /******/ if(runtime) var result = runtime(__webpack_require__); 743 /******/ } 744 /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); 745 /******/ for(;i < chunkIds.length; i++) { 746 /******/ chunkId = chunkIds[i]; 747 /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { 748 /******/ installedChunks[chunkId][0](); 749 /******/ } 750 /******/ installedChunks[chunkId] = 0; 751 /******/ } 752 /******/ return __webpack_require__.O(result); 753 /******/ } 754 /******/ 755 /******/ var chunkLoadingGlobal = globalThis["webpackChunkterminal_block"] = globalThis["webpackChunkterminal_block"] || []; 756 /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); 757 /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); 758 /******/ })(); 759 /******/ 760 /************************************************************************/ 761 /******/ 762 /******/ // startup 763 /******/ // Load entry module and return exports 764 /******/ // This entry module depends on other loaded chunks and execution need to be delayed 765 /******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["./style-index"], () => (__webpack_require__("./src/index.js"))) 766 /******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); 767 /******/ 768 /******/ })() 769 ; 770 //# sourceMappingURL=index.js.map 1 (()=>{"use strict";var e,t={717:()=>{const e=window.wp.blocks;function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},t.apply(this,arguments)}const r=window.wp.element,o=window.wp.blockEditor,n=window.wp.components,l=window.wp.i18n,a=JSON.parse('{"u2":"codesue/terminal-block","kG":"terminal-block"}');(0,e.registerBlockType)("codesue/terminal-command-block",{title:"Command",parent:[a.u2],icon:"arrow-right-alt2",description:"Add a command to a terminal window.",category:"text",attributes:{content:{type:"string",source:"html",selector:"p"},prompt:{type:"string",default:"$"}},example:{attributes:{content:"pip install spacy"}},edit(e){let{attributes:c,setAttributes:s}=e;const i=(0,o.useBlockProps)();return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(n.PanelBody,{title:(0,l.__)("Prompt Settings",a.kG),initialOpen:!0},(0,r.createElement)(n.PanelRow,null,(0,r.createElement)(n.TextControl,{label:(0,l.__)("Prompt",a.kG),value:c.prompt,onChange:e=>{s({prompt:e})},help:(0,l.__)("Change the prompt. Defaults to $",a.kG)})))),(0,r.createElement)(o.RichText,t({},i,{tagName:"p",value:c.content,prompt:c.prompt,className:"display-prompt",onChange:e=>{s({content:e})},placeholder:(0,l.__)("Enter your command...",a.kG),allowedFormats:["core/bold","core/italic","core/link","core/text-color","core/underline"]})))},save(e){let{attributes:n}=e;const l=o.useBlockProps.save(),{content:a,prompt:c}=n;return(0,r.createElement)(o.RichText.Content,t({},l,{tagName:"p",value:a,prompt:c,className:"display-prompt"}))},transforms:{to:[{type:"block",blocks:["codesue/terminal-output-block"],transform:t=>{let{content:r}=t;return(0,e.createBlock)("codesue/terminal-output-block",{content:r})}}],from:[{type:"block",blocks:["codesue/terminal-output-block"],transform:t=>{let{content:r}=t;return(0,e.createBlock)("codesue/terminal-command-block",{content:r})}}]}}),(0,e.registerBlockType)("codesue/terminal-output-block",{title:"Output",parent:[a.u2],icon:"editor-paragraph",description:"Add output text to a terminal window.",category:"text",attributes:{content:{type:"string",source:"html",selector:"p"}},example:{attributes:{content:"Successfully installed spacy"}},edit(e){let{attributes:n,setAttributes:c}=e;const s=(0,o.useBlockProps)();return(0,r.createElement)(o.RichText,t({},s,{tagName:"p",value:n.content,onChange:e=>{c({content:e})},placeholder:(0,l.__)("Write your output...",a.kG),allowedFormats:["core/bold","core/italic","core/link","core/text-color","core/underline"]}))},save(e){let{attributes:n}=e;const l=o.useBlockProps.save(),{content:a}=n;return(0,r.createElement)(o.RichText.Content,t({},l,{tagName:"p",value:a}))},transforms:{to:[{type:"block",blocks:["codesue/terminal-command-block"],transform:t=>{let{content:r}=t;return(0,e.createBlock)("codesue/terminal-command-block",{content:r})}}],from:[{type:"block",blocks:["codesue/terminal-command-block"],transform:t=>{let{content:r}=t;return(0,e.createBlock)("codesue/terminal-output-block",{content:r})}}]}}),(0,e.registerBlockType)("codesue/terminal-progress-bar-block",{title:"Progress Bar",parent:[a.u2],icon:"chart-bar",description:"Add a progress bar to a terminal window.",category:"design",supports:{color:{text:!0,background:!1}},attributes:{content:{type:"string",source:"html",selector:"p"},character:{type:"string",default:"█"},percent:{type:"number",default:"100"}},example:{attributes:{content:"███████████████████ 100%"}},edit(e){let{attributes:c,setAttributes:s}=e;const i=(0,o.useBlockProps)(),u=(e,t)=>e?`${e.repeat(t/2.5)} ${c.percent}%`:"";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(n.PanelBody,{title:(0,l.__)("Progress Bar Settings",a.kG),initialOpen:!0},(0,r.createElement)(n.PanelRow,null,(0,r.createElement)(n.TextControl,{label:(0,l.__)("Character",a.kG),value:c.character,onChange:e=>{s({character:e}),u(e,c.percent)},help:(0,l.__)("Change the character. Defaults to █",a.kG)})),(0,r.createElement)(n.PanelRow,null,(0,r.createElement)(n.__experimentalNumberControl,{label:(0,l.__)("Percent",a.kG),labelPosition:"edge",value:c.percent,onChange:e=>{s({percent:parseInt(e)}),u(c.character,parseInt(e))},isDragEnabled:!0,min:0,max:100,step:10,help:(0,l.__)("Change the percent. Defaults to 100",a.kG)})))),(0,r.createElement)(o.RichText,t({},i,{tagName:"p",value:u(c.character,c.percent),character:c.character,percent:c.percent,onChange:e=>{s({content:e})},allowedFormats:[]})))},save(e){let{attributes:n}=e;const l=o.useBlockProps.save();return(0,r.createElement)(o.RichText.Content,t({},l,{tagName:"p",value:n.content,character:n.character,percent:n.percent}))}}),(0,e.registerBlockType)(a.u2,{edit:function(e){let{attributes:c,setAttributes:s}=e;const i=(0,o.useBlockProps)();return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(n.PanelBody,{title:(0,l.__)("Terminal Settings",a.kG),initialOpen:!0},(0,r.createElement)(n.PanelRow,null,(0,r.createElement)(n.TextControl,{label:(0,l.__)("Title",a.kG),value:c.title,onChange:e=>{s({title:e})},help:(0,l.__)("Change the title. Defaults to bash",a.kG)}))),(0,r.createElement)(o.PanelColorSettings,{title:(0,l.__)("Color Settings",a.kG),initialOpen:!0,colorSettings:[{value:c.backgroundColor,onChange:e=>{s({backgroundColor:e})},label:(0,l.__)("Background color",a.kG)},{value:c.textColor,onChange:e=>{s({textColor:e})},label:(0,l.__)("Text color",a.kG)},{value:c.accentColor,onChange:e=>{s({accentColor:e})},label:(0,l.__)("Accent color",a.kG)}]})),(0,r.createElement)("div",t({},i,{title:c.title,style:{"--wp--default--terminal--block--color--background":c.backgroundColor,"--wp--default--terminal--block--color--text":c.textColor,"--wp--default--terminal--block--color--accent":c.accentColor}}),(0,r.createElement)(o.InnerBlocks,{allowedBlocks:["core/spacer","codesue/terminal-command-block","codesue/terminal-output-block","codesue/terminal-progress-bar-block"]})))},save:function(e){let{attributes:n}=e;const l=o.useBlockProps.save(),{title:a,backgroundColor:c,textColor:s,accentColor:i}=n;return(0,r.createElement)("div",t({},l,{title:a,style:{"--wp--default--terminal--block--color--background":c,"--wp--default--terminal--block--color--text":s,"--wp--default--terminal--block--color--accent":i}}),(0,r.createElement)(o.InnerBlocks.Content,null))}})}},r={};function o(e){var n=r[e];if(void 0!==n)return n.exports;var l=r[e]={exports:{}};return t[e](l,l.exports,o),l.exports}o.m=t,e=[],o.O=(t,r,n,l)=>{if(!r){var a=1/0;for(u=0;u<e.length;u++){for(var[r,n,l]=e[u],c=!0,s=0;s<r.length;s++)(!1&l||a>=l)&&Object.keys(o.O).every((e=>o.O[e](r[s])))?r.splice(s--,1):(c=!1,l<a&&(a=l));if(c){e.splice(u--,1);var i=n();void 0!==i&&(t=i)}}return t}l=l||0;for(var u=e.length;u>0&&e[u-1][2]>l;u--)e[u]=e[u-1];e[u]=[r,n,l]},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={826:0,431:0};o.O.j=t=>0===e[t];var t=(t,r)=>{var n,l,[a,c,s]=r,i=0;if(a.some((t=>0!==e[t]))){for(n in c)o.o(c,n)&&(o.m[n]=c[n]);if(s)var u=s(o)}for(t&&t(r);i<a.length;i++)l=a[i],o.o(e,l)&&e[l]&&e[l][0](),e[l]=0;return o.O(u)},r=globalThis.webpackChunkterminal_block=globalThis.webpackChunkterminal_block||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var n=o.O(void 0,[431],(()=>o(717)));n=o.O(n)})(); -
terminal-block/trunk/build/style-index.css
r2763919 r2763965 1 /*!***************************************************************************************************************************************************************************************************************************************!*\ 2 !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[3]!./src/style.scss ***! 3 \***************************************************************************************************************************************************************************************************************************************/ 4 @charset "UTF-8"; 5 /** 6 * Adapted from termynal.js CSS version 0.0.1 by Ines Montani <[email protected]>, licensed under MIT license. 7 */ 8 @font-face { 9 font-family: "Fira Mono"; 10 src: url(fonts/FiraMono-Regular.85c5f914.otf); 11 } 12 .wp-block-codesue-terminal-block { 13 --wp--default--terminal--block--color--background: #252a33; 14 --wp--default--terminal--block--color--text: #eee; 15 --wp--default--terminal--block--opacity--subtle: 0.5; 16 width: 750px; 17 max-width: 100%; 18 background: var(--wp--default--terminal--block--color--background); 19 color: var(--wp--default--terminal--block--color--text); 20 font-size: 18px; 21 font-family: "Fira Mono", Consolas, Menlo, Monaco, "Courier New", Courier, monospace; 22 border-radius: 4px; 23 padding: 75px 45px 35px; 24 position: relative; 25 box-sizing: border-box; 26 } 27 28 .wp-block-codesue-terminal-block::before { 29 content: ""; 30 position: absolute; 31 top: 15px; 32 left: 15px; 33 display: inline-block; 34 width: 15px; 35 height: 15px; 36 border-radius: 50%; 37 /* A little hack to display the window buttons in one pseudo element. */ 38 background: #d9515d; 39 box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930; 40 } 41 42 .wp-block-codesue-terminal-block::after { 43 content: attr(title); 44 position: absolute; 45 opacity: var(--wp--default--terminal--block--opacity--subtle); 46 top: 5px; 47 left: 0; 48 width: 100%; 49 text-align: center; 50 } 51 52 .wp-block-codesue-terminal-block p { 53 display: block; 54 line-height: 1; 55 } 56 57 .wp-block-codesue-terminal-block p::before { 58 /* Set up defaults and ensure empty lines are displayed. */ 59 content: ""; 60 display: inline-block; 61 vertical-align: middle; 62 } 63 64 .wp-block-codesue-terminal-block p.display-prompt::before { 65 content: attr(prompt); 66 margin-right: 0.75em; 67 opacity: var(--wp--default--terminal--block--opacity--subtle); 68 } 69 70 .wp-block-codesue-terminal-command-block.display-cursor::after { 71 content: "▋"; 72 font-family: monospace; 73 margin-left: 0.5em; 74 -webkit-animation: blink 1s infinite; 75 animation: blink 1s infinite; 76 } 77 78 /* Cursor animation */ 79 @-webkit-keyframes blink { 80 50% { 81 opacity: 0; 82 } 83 } 84 @keyframes blink { 85 50% { 86 opacity: 0; 87 } 88 } 89 90 /*# sourceMappingURL=style-index.css.map*/ 1 @font-face{font-family:Fira Mono;src:url(fonts/FiraMono-Regular.85c5f914.otf)}.wp-block-codesue-terminal-block{--wp--default--terminal--block--color--background:#252a33;--wp--default--terminal--block--color--text:#eee;--wp--default--terminal--block--color--accent:#a2a2a2;background:var(--wp--default--terminal--block--color--background);border-radius:4px;box-sizing:border-box;color:var(--wp--default--terminal--block--color--text);font-family:Fira Mono,Consolas,Menlo,Monaco,Courier New,Courier,monospace;font-size:18px;max-width:100%;padding:75px 45px 35px;position:relative;width:750px}.wp-block-codesue-terminal-block:before{background:#d9515d;border-radius:50%;box-shadow:25px 0 0 #f4c025,50px 0 0 #3ec930;content:"";display:inline-block;height:15px;left:15px;position:absolute;top:15px;width:15px}.wp-block-codesue-terminal-block:after{color:var(--wp--default--terminal--block--color--accent);content:attr(title);left:0;position:absolute;text-align:center;top:5px;width:100%}.wp-block-codesue-terminal-block p{display:block;line-height:1}.wp-block-codesue-terminal-block p:before{content:"";display:inline-block;vertical-align:middle}.wp-block-codesue-terminal-block p.display-prompt:before{color:var(--wp--default--terminal--block--color--accent);content:attr(prompt);margin-right:.75em}.wp-block-codesue-terminal-command-block.display-cursor:after{-webkit-animation:blink 1s infinite;animation:blink 1s infinite;content:"▋";font-family:monospace;margin-left:.5em}@-webkit-keyframes blink{50%{opacity:0}}@keyframes blink{50%{opacity:0}} -
terminal-block/trunk/package-lock.json
r2763919 r2763965 1 1 { 2 2 "name": "terminal-block", 3 "version": "0.1. 0",3 "version": "0.1.2", 4 4 "lockfileVersion": 1, 5 5 "requires": true, -
terminal-block/trunk/package.json
r2763919 r2763965 1 1 { 2 2 "name": "terminal-block", 3 "version": "0.1. 1",3 "version": "0.1.2", 4 4 "description": "Display rich text in a terminal window.", 5 5 "author": "Suzen Fylke", -
terminal-block/trunk/readme.txt
r2763919 r2763965 3 3 Tags: gutenberg, block, blocks, terminal, code, documentation 4 4 Tested up to: 6.0 5 Stable tag: 0.1. 15 Stable tag: 0.1.2 6 6 License: GPL-2.0-or-later 7 7 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 37 37 == Changelog == 38 38 39 = 0.1.2 = 40 * Fix theme style bleeding into editor view 41 * Add support for user defined accent color for prompt and title 42 39 43 = 0.1.1 = 40 44 * Use inner blocks for terminal inputs, outputs, and progress bars -
terminal-block/trunk/src/block.json
r2763919 r2763965 3 3 "apiVersion": 2, 4 4 "name": "codesue/terminal-block", 5 "version": "0.1. 1",5 "version": "0.1.2", 6 6 "title": "Terminal Block", 7 7 "category": "widgets", … … 10 10 "keywords": [ "code", "terminal", "documentation"], 11 11 "supports": { 12 "color": {13 "text": true,14 "background": true,15 "link": true16 },17 12 "spacing": { 18 13 "margin": true, … … 33 28 "type":"string", 34 29 "default": "bash" 30 }, 31 "backgroundColor": { 32 "type": "string", 33 "default": "#252a33" 34 }, 35 "textColor": { 36 "type": "string", 37 "default": "#eee" 38 }, 39 "accentColor": { 40 "type": "string", 41 "default": "#a2a2a2" 35 42 } 36 43 }, -
terminal-block/trunk/src/edit.js
r2763919 r2763965 3 3 InnerBlocks, 4 4 InspectorControls, 5 PanelColorSettings, 5 6 } from "@wordpress/block-editor"; 6 7 import { TextControl, PanelBody, PanelRow } from "@wordpress/components"; … … 13 14 import metadata from "./block.json"; 14 15 16 import "./editor.scss"; 17 15 18 export default function edit({ attributes, setAttributes }) { 16 19 const blockProps = useBlockProps(); 17 20 const onChangeTitle = (title) => { 18 21 setAttributes({ title }); 22 }; 23 const onChangeBackgroundColor = (backgroundColor) => { 24 setAttributes({ backgroundColor }); 25 }; 26 const onChangetextColor = (textColor) => { 27 setAttributes({ textColor }); 28 }; 29 const onChangeAccentColor = (accentColor) => { 30 setAttributes({ accentColor }); 19 31 }; 20 32 return ( … … 37 49 </PanelRow> 38 50 </PanelBody> 51 <PanelColorSettings 52 title={__("Color Settings", metadata.textdomain)} 53 initialOpen={true} 54 colorSettings={[ 55 { 56 value: attributes.backgroundColor, 57 onChange: onChangeBackgroundColor, 58 label: __("Background color", metadata.textdomain), 59 }, 60 { 61 value: attributes.textColor, 62 onChange: onChangetextColor, 63 label: __("Text color", metadata.textdomain), 64 }, 65 { 66 value: attributes.accentColor, 67 onChange: onChangeAccentColor, 68 label: __("Accent color", metadata.textdomain), 69 }, 70 ]} 71 /> 39 72 </InspectorControls> 40 <div {...blockProps} title={attributes.title}> 73 <div 74 {...blockProps} 75 title={attributes.title} 76 style={{ 77 "--wp--default--terminal--block--color--background": 78 attributes.backgroundColor, 79 "--wp--default--terminal--block--color--text": attributes.textColor, 80 "--wp--default--terminal--block--color--accent": 81 attributes.accentColor, 82 }} 83 > 41 84 <InnerBlocks 42 85 allowedBlocks={[ -
terminal-block/trunk/src/editor.scss
r2762884 r2763965 1 .wp-block-codesue-terminal-block .prompt { 2 -webkit-user-select: text; 3 user-select: text; 1 .wp-block-codesue-terminal-block { 2 // Increase specificity to avoid theme styles bleeding in. 3 .block-editor-rich-text__editable { 4 width: 750px !important; 5 max-width: 100% !important; 6 background: var(--wp--default--terminal--block--color--background) !important; 7 color: var(--wp--default--terminal--block--color--text) !important; 8 font-size: 18px !important; 9 font-family: 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier, monospace !important; 10 -webkit-box-sizing: border-box !important; 11 box-sizing: border-box !important; 12 } 13 14 p.block-editor-rich-text__editable { 15 display: block !important; 16 line-height: 1 !important; 17 } 4 18 } -
terminal-block/trunk/src/save.js
r2763919 r2763965 4 4 export default function save({ attributes }) { 5 5 const blockProps = useBlockProps.save(); 6 const { title, backgroundColor, textColor, accentColor } = attributes; 6 7 return ( 7 <div {...blockProps} title={attributes.title}> 8 <div 9 {...blockProps} 10 title={title} 11 style={{ 12 "--wp--default--terminal--block--color--background": backgroundColor, 13 "--wp--default--terminal--block--color--text": textColor, 14 "--wp--default--terminal--block--color--accent": accentColor, 15 }} 16 > 8 17 <InnerBlocks.Content /> 9 18 </div> -
terminal-block/trunk/src/style.scss
r2763919 r2763965 11 11 --wp--default--terminal--block--color--background: #252a33; 12 12 --wp--default--terminal--block--color--text: #eee; 13 --wp--default--terminal--block-- opacity--subtle: 0.5;13 --wp--default--terminal--block--color--accent: #a2a2a2; 14 14 15 15 width: 750px; … … 44 44 content: attr(title); 45 45 position: absolute; 46 opacity: var(--wp--default--terminal--block--opacity--subtle);46 color: var(--wp--default--terminal--block--color--accent); 47 47 top: 5px; 48 48 left: 0; … … 66 66 content: attr(prompt); 67 67 margin-right: 0.75em; 68 opacity: var(--wp--default--terminal--block--opacity--subtle);68 color: var(--wp--default--terminal--block--color--accent); 69 69 } 70 70 -
terminal-block/trunk/terminal-block.php
r2763919 r2763965 5 5 * Requires at least: 5.9 6 6 * Requires PHP: 7.0 7 * Version: 0.1. 17 * Version: 0.1.2 8 8 * Author: Suzen Fylke 9 9 * Author URI: codesue.com … … 20 20 add_action( 'init', 'codesue_terminal_block_init' ); 21 21 22 function codesue_terminal_block_enqueue _scripts() {22 function codesue_terminal_block_enqueue() { 23 23 wp_enqueue_script( 24 24 'codesue-terminal-block-script', … … 29 29 ); 30 30 } 31 add_action( 'wp_enqueue_scripts', 'codesue_terminal_block_enqueue _scripts' );31 add_action( 'wp_enqueue_scripts', 'codesue_terminal_block_enqueue' );
Note: See TracChangeset
for help on using the changeset viewer.