gitextract_lyr50gqo/ ├── .cursor/ │ ├── commands/ │ │ └── np-plugin-commands.md │ └── rules/ │ ├── html-react-rules.mdc │ └── np-programming-general.mdc ├── .cursorignore ├── .eslintrc ├── .flowconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ └── node.js.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .watchmanconfig ├── CHANGELOG.md ├── Flow_Guide.md ├── GithubFlow.md ├── KimMachineGun.Raindrop/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ └── src/ │ ├── NPPluginMain.js │ ├── Raindrop.js │ └── index.js ├── LICENSE ├── README.md ├── TasksModule_docs.md ├── __mocks__/ │ ├── Backlink.mock.js │ ├── Calendar.mock.js │ ├── CalendarItem.mock.js │ ├── Clipboard.mock.js │ ├── CommandBar.mock.js │ ├── DataStore.mock.js │ ├── Editor.mock.js │ ├── Fetch.mock.js │ ├── NP_THEME.mock.js │ ├── Note.mock.js │ ├── NotePlan.mock.js │ ├── Paragraph.mock.js │ ├── PluginCommandObject.mock.js │ ├── PluginObject.mock.js │ ├── Range.mock.js │ ├── _README-Mocks.md │ ├── __tests__/ │ │ └── fetch.mock.test.js │ ├── index.js │ ├── jestHelpers.js │ └── support/ │ └── pluginSample.json ├── aaronpoweruser.ReadwiseUnofficial/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ └── src/ │ ├── NPReadwise.js │ ├── NPReadwiseHelpers.js │ ├── NPReadwiseNotes.js │ ├── NPReadwiseSyncLog.js │ ├── NPTriggers-Hooks.js │ └── index.js ├── babel.config.js ├── buildDashboard.sh ├── buildShared.sh ├── codedungeon.Toolbox/ │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── __tests__/ │ │ ├── convertSelectionToHtml.test.js │ │ ├── convertToHtml.test.js │ │ └── reorderList.test.js │ ├── plugin.json │ └── src/ │ ├── convertSelectionToHtml.js │ ├── convertToHtml.js │ ├── convertToRtf.js │ ├── index.js │ ├── reorderList.js │ └── support/ │ └── CodedungeonToolbox.js ├── community-plugins.json ├── dbludeau.TodoistNoteplanSync/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── NPPluginMain.NOTACTIVE.js │ ├── plugin.json │ ├── requiredFiles/ │ │ └── html-plugin-comms.js │ └── src/ │ ├── NPPluginMain.js │ ├── NPTriggers-Hooks.js │ ├── index.js │ └── support/ │ ├── fetchOverrides.js │ ├── fetchResponses/ │ │ └── google.search-for-something.json │ └── helpers.js ├── deleteme.testPluginDownload/ │ ├── README.md │ ├── plugin.json │ └── src/ │ └── index.js ├── docs/ │ ├── custom_theme/ │ │ ├── README.md │ │ ├── assets/ │ │ │ ├── anchor.js │ │ │ ├── bass-addons.css │ │ │ ├── bass.css │ │ │ ├── fonts/ │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── OTF/ │ │ │ │ │ ├── SourceCodePro-Bold.otf │ │ │ │ │ └── SourceCodePro-Regular.otf │ │ │ │ └── source-code-pro.css │ │ │ ├── github.css │ │ │ ├── site.js │ │ │ ├── split.css │ │ │ ├── split.js │ │ │ └── style.css │ │ ├── index._ │ │ ├── index.js │ │ ├── note._ │ │ ├── paramProperty._ │ │ ├── section._ │ │ └── section_list._ │ └── documentation.cfg.json ├── dwertheimer.DateAutomations/ │ ├── README.md │ ├── changelog.md │ ├── plugin.json │ └── src/ │ ├── dateFunctions.js │ └── index.js ├── dwertheimer.EventAutomations/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── NPEventBlocks.test.js │ │ ├── NPTimeblocking.Integration.test.js │ │ ├── NPTimeblocking.test.js │ │ ├── by_timeblock_tag.test.js │ │ ├── config.test.js │ │ ├── presets.test.js │ │ ├── timeblocking-helpers.test.js │ │ ├── timeblocking-shared.test.js │ │ └── timeblocking-taskSorting.test.js │ ├── plugin.json │ └── src/ │ ├── NPEventBlocks.js │ ├── NPTimeblocking.js │ ├── byTagMode.js │ ├── config.js │ ├── events.js │ ├── index.js │ ├── presets.js │ ├── timeblocking-flow-types.js │ ├── timeblocking-helpers.js │ ├── timeblocking-shared.js │ └── triggers.js ├── dwertheimer.Favorites/ │ ├── CHANGELOG.md │ ├── DEBUGGING_REQUEST_TIMEOUTS.md │ ├── IMPLEMENTATION_PLAN.md │ ├── README.md │ ├── __tests__/ │ │ ├── NPFavorites.test.js │ │ └── favorites.test.js │ ├── plugin.json │ └── src/ │ ├── NPFavoritePresets.js │ ├── NPFavorites.js │ ├── components/ │ │ ├── AppContext.jsx │ │ ├── FavoritesView.css │ │ └── FavoritesView.jsx │ ├── favorites.js │ ├── favoritesRouter.js │ ├── index.js │ ├── requestHandlers.js │ ├── shared/ │ │ └── types.js │ ├── support/ │ │ ├── performRollup.node.js │ │ └── rollup.FavoritesView.entry.js │ └── windowManagement.js ├── dwertheimer.Forms/ │ ├── CHANGELOG.md │ ├── DEBUGGING_PLAN_TEMPLATEJS_HANG.md │ ├── README.md │ ├── TEMPLATEJS_FREEZE_DIAG_THROWS.md │ ├── plugin.json │ └── src/ │ ├── FormFieldRenderTest.js │ ├── NPTemplateForm.js │ ├── NPTriggers-Hooks.js │ ├── ProcessingTemplate.js │ ├── components/ │ │ ├── AppContext.jsx │ │ ├── ConditionsEditor.jsx │ │ ├── FieldEditor.jsx │ │ ├── FieldTypeSelector.jsx │ │ ├── FormBrowserView.css │ │ ├── FormBrowserView.jsx │ │ ├── FormBuilder.css │ │ ├── FormBuilder.jsx │ │ ├── FormBuilderView.jsx │ │ ├── FormErrorBanner.jsx │ │ ├── FormFieldsList.jsx │ │ ├── FormPreview.jsx │ │ ├── FormSettings.jsx │ │ ├── FormView.css │ │ ├── FormView.jsx │ │ ├── OptionsEditor.jsx │ │ ├── PositionInput.jsx │ │ ├── ProcessingMethodSection.jsx │ │ ├── TemplateTagEditor.css │ │ ├── TemplateTagEditor.jsx │ │ ├── TemplateTagInserter.css │ │ ├── TemplateTagInserter.jsx │ │ ├── ValueInsertButtons.jsx │ │ └── fieldTypes.js │ ├── dataHandlers.js │ ├── formBrowserHandlers.js │ ├── formBrowserRouter.js │ ├── formBuilderHandlers.js │ ├── formBuilderRouter.js │ ├── formSubmission.js │ ├── formSubmitHandlers.js │ ├── formSubmitRouter.js │ ├── index.js │ ├── noteHelpers.js │ ├── requestHandlers.js │ ├── shared/ │ │ ├── constants.js │ │ └── types.js │ ├── support/ │ │ ├── fetchOverrides.js │ │ ├── fetchResponses/ │ │ │ └── google.search-for-something.json │ │ ├── performRollup.node.js │ │ ├── rollup.FormBrowserView.entry.js │ │ ├── rollup.FormBuilderView.entry.js │ │ └── rollup.FormView.entry.js │ ├── templateIO.js │ ├── utils/ │ │ └── encodingFix.js │ └── windowManagement.js ├── dwertheimer.JestHelpers/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── NPMocks.test.js │ ├── plugin.json │ └── src/ │ ├── NPPluginMain.js │ ├── index.js │ └── support/ │ └── helpers.js ├── dwertheimer.MathSolver/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── NPMathBlocks.test.js │ │ ├── date-time-math.test.js │ │ └── solver.test.js │ ├── plugin.json │ └── src/ │ ├── NPMathBlocks.js │ ├── index.js │ └── support/ │ ├── date-time-math.js │ ├── helpers.js │ └── solver.js ├── dwertheimer.ReactSkeleton/ │ ├── REACT_COMMUNICATION_PATTERNS.md │ ├── REACT_UTILITIES.md │ ├── REQUEST_COMMUNICATIONS_AND_ROUTING.md │ ├── changelog.md │ ├── plugin.json │ ├── readme.md │ ├── requiredFiles/ │ │ └── css.plugin.css │ └── src/ │ ├── index.js │ ├── react/ │ │ ├── components/ │ │ │ ├── AppContext.jsx │ │ │ ├── Button.jsx │ │ │ ├── Checkbox.jsx │ │ │ ├── CompositeLineExample.jsx │ │ │ └── WebView.jsx │ │ └── support/ │ │ ├── performRollup.node.js │ │ └── rollup.WebView.entry.js │ ├── reactMain.js │ ├── requestHandlers.js │ └── router.js ├── dwertheimer.TaskAutomations/ │ ├── __tests__/ │ │ ├── NPOverdueReact.test.js │ │ ├── NPTaskScanAndProcess.test.js │ │ └── lastUsedChoices.test.js │ ├── changelog.md │ ├── plugin.json │ ├── readme.md │ ├── requiredFiles/ │ │ ├── css.plugin.css │ │ └── css.w3.css │ └── src/ │ ├── NPFollowUp.js │ ├── NPOverdue.js │ ├── NPOverdueReact.js │ ├── NPTaskScanAndProcess.js │ ├── index.js │ ├── lastUsedChoices.js │ ├── react/ │ │ ├── Button.jsx │ │ ├── EditableElement.jsx │ │ ├── MultiActionBar.jsx │ │ ├── StatusButton.jsx │ │ ├── ThemedSelect.jsx │ │ ├── TypeFilter.jsx │ │ ├── WebView.jsx │ │ ├── dataTableFormatting.jsx │ │ └── support/ │ │ ├── performRollup.node.js │ │ └── rollup.WebView.entry.js │ └── taskSync.js ├── dwertheimer.TaskSorting/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── factories/ │ │ │ ├── taskDocument.json │ │ │ ├── taskDocument.notes.txt │ │ │ └── taskDocumentAfterSortByTitle.json │ │ ├── sortTasks.test.js │ │ └── tagTasks.test.js │ ├── plugin.json │ ├── requiredFiles/ │ │ └── html-plugin-comms.js │ └── src/ │ ├── NPTriggers-Hooks.js │ ├── index.js │ ├── markTasks.js │ ├── sortTasks.js │ ├── support/ │ │ ├── fetchOverrides.js │ │ ├── fetchResponses/ │ │ │ └── google.search-for-something.json │ │ └── helpers.js │ └── tagTasks.js ├── emetzger.Calendar/ │ └── plugin.json ├── emetzger.LinearCalendar/ │ └── plugin.json ├── flow-typed/ │ ├── Noteplan.js │ └── npm/ │ ├── @babel/ │ │ ├── cli_vx.x.x.js │ │ ├── core_vx.x.x.js │ │ ├── eslint-parser_vx.x.x.js │ │ ├── generator_vx.x.x.js │ │ ├── parser_vx.x.x.js │ │ ├── preset-env_vx.x.x.js │ │ ├── preset-flow_vx.x.x.js │ │ └── preset-react_vx.x.x.js │ ├── @codedungeon/ │ │ └── gunner_vx.x.x.js │ ├── @rollup/ │ │ ├── plugin-alias_vx.x.x.js │ │ ├── plugin-babel_vx.x.x.js │ │ ├── plugin-commonjs_vx.x.x.js │ │ ├── plugin-json_vx.x.x.js │ │ └── plugin-node-resolve_vx.x.x.js │ ├── @samverschueren/ │ │ └── stream-to-observable_vx.x.x.js │ ├── axios_v0.21.x.js │ ├── babel-cli_vx.x.x.js │ ├── babel_vx.x.x.js │ ├── babelify_vx.x.x.js │ ├── bcrypt_v5.x.x.js │ ├── bqpjs_vx.x.x.js │ ├── browserify_vx.x.x.js │ ├── bump-regex_vx.x.x.js │ ├── chroma-js_v2.x.x.js │ ├── chrono-node_vx.x.x.js │ ├── clipboardy_vx.x.x.js │ ├── columnify_vx.x.x.js │ ├── commander_vx.x.x.js │ ├── concurrently_vx.x.x.js │ ├── contentful-html-rich-text-converter_vx.x.x.js │ ├── dayjs_v1.x.x.js │ ├── documentation_vx.x.x.js │ ├── enquirer_vx.x.x.js │ ├── eslint-config-prettier_vx.x.x.js │ ├── eslint-import-resolver-alias_vx.x.x.js │ ├── eslint-plugin-flowtype_vx.x.x.js │ ├── eslint-plugin-import_vx.x.x.js │ ├── eslint-plugin-no-floating-promise_vx.x.x.js │ ├── eslint-plugin-react_vx.x.x.js │ ├── eslint-plugin-unused-imports_vx.x.x.js │ ├── eslint_vx.x.x.js │ ├── fast-glob_vx.x.x.js │ ├── findup-sync_vx.x.x.js │ ├── flow-bin_v0.x.x.js │ ├── front-matter_vx.x.x.js │ ├── fsevents_vx.x.x.js │ ├── fuse.js_v6.x.x.js │ ├── fuse.js_vx.x.x.js │ ├── git-state_vx.x.x.js │ ├── html-minifier_vx.x.x.js │ ├── inquirer_vx.x.x.js │ ├── jest-silent-reporter_vx.x.x.js │ ├── jest-spec-reporter_vx.x.x.js │ ├── jest_v27.x.x.js │ ├── js-yaml_v4.x.x.js │ ├── js-yaml_vx.x.x.js │ ├── json5_vx.x.x.js │ ├── listr_vx.x.x.js │ ├── lodash-es_v4.x.x.js │ ├── luxon-business-days_vx.x.x.js │ ├── luxon_vx.x.x.js │ ├── mathjs_vx.x.x.js │ ├── mermaid_vx.x.x.js │ ├── mkdirp_v1.x.x.js │ ├── moment-business-days_vx.x.x.js │ ├── moment_v2.x.x.js │ ├── node-fetch_v1.x.x.js │ ├── node-gyp_vx.x.x.js │ ├── node-libcurl_vx.x.x.js │ ├── node-notifier_vx.x.x.js │ ├── prettier_vx.x.x.js │ ├── progress_vx.x.x.js │ ├── react-data-table-component_vx.x.x.js │ ├── react-dom_v18.x.x.js │ ├── react-error-boundary_vx.x.x.js │ ├── react-loader-spinner_vx.x.x.js │ ├── react-select_vx.x.x.js │ ├── rimraf_v2.x.x.js │ ├── rollup-plugin-replace_vx.x.x.js │ ├── rollup-plugin-terser_vx.x.x.js │ ├── rollup-plugin-visualizer_vx.x.x.js │ ├── rollup_vx.x.x.js │ ├── rxjs_v6.x.x.js │ ├── showdown_vx.x.x.js │ ├── simple-input_vx.x.x.js │ ├── sinon_v7.x.x.js │ ├── split_vx.x.x.js │ ├── sprintf-js_vx.x.x.js │ ├── strftime_vx.x.x.js │ ├── toml_vx.x.x.js │ └── webpack_v4.x.x.js ├── github-actions-reporter.js ├── grdn.TagTracker/ │ ├── .claude/ │ │ └── settings.local.json │ └── plugin.json ├── helpers/ │ ├── HTMLView.js │ ├── NPAddItems.js │ ├── NPCalendar.js │ ├── NPConfiguration.js │ ├── NPEditor.js │ ├── NPEditorBasics.js │ ├── NPExtendedRepeat.js │ ├── NPFrontMatter.js │ ├── NPMoveItems.js │ ├── NPParagraph.js │ ├── NPPresets.js │ ├── NPRequiredFiles.js │ ├── NPScheduleItems.js │ ├── NPSettings.js │ ├── NPSyncedCopies.js │ ├── NPTeamspace.js │ ├── NPThemeToCSS.js │ ├── NPVersions.js │ ├── NPWindows.js │ ├── NPdateTime.js │ ├── NPdev.js │ ├── NPnote.js │ ├── README.md │ ├── __tests__/ │ │ ├── HTMLView.test.js │ │ ├── NPConfiguration.test.js │ │ ├── NPConfiguration.updateSettingData.test.js │ │ ├── NPDateTime.test.js │ │ ├── NPExtendedRepeat.doneMarker.test.js │ │ ├── NPExtendedRepeat.generateRepeatForPara.test.js │ │ ├── NPFrontMatter/ │ │ │ ├── NPFrontMatter.analyzeTemplateStructure.test.js │ │ │ ├── NPFrontMatterAttributes.test.js │ │ │ ├── NPFrontMatterDetection.test.js │ │ │ ├── NPFrontMatterFormatting.test.js │ │ │ ├── NPFrontMatterManipulation.test.js │ │ │ ├── NPFrontMatterMisc.test.js │ │ │ ├── NPFrontMatterNotes.test.js │ │ │ └── NPFrontMatterTriggers.test.js │ │ ├── NPFrontMatter.detectInlineTitleRobust.test.js │ │ ├── NPNote.test.js │ │ ├── NPParagraph.test.js │ │ ├── NPPresets.test.js │ │ ├── NPSettings.test.js │ │ ├── NPSyncedCopies.test.js │ │ ├── NPThemeToCSS.test.js │ │ ├── blocks.test.js │ │ ├── calendar.test.js │ │ ├── config.test.js │ │ ├── dataManipulation.test.js │ │ ├── dateTime.test.js │ │ ├── dev.test.js │ │ ├── folders.test.js │ │ ├── general.test.js │ │ ├── headings.test.js │ │ ├── note.test.js │ │ ├── notePlanWeekFormatter.test.js │ │ ├── paragraph.test.js │ │ ├── parentsAndChildren.test.js │ │ ├── regex.test.js │ │ ├── regexEscape.test.js │ │ ├── search.test.js │ │ ├── sorting.test.js │ │ ├── stringTransforms.test.js │ │ ├── syncedCopies.test.js │ │ ├── teamspace.test.js │ │ ├── timeblocks.test.js │ │ ├── urls.test.js │ │ └── utils.test.js │ ├── blocks.js │ ├── calendar.js │ ├── checkType.js │ ├── codeBlocks.js │ ├── colors.js │ ├── config.js │ ├── content.js │ ├── dataManipulation.js │ ├── dateTime.js │ ├── dev.js │ ├── folders.js │ ├── general.js │ ├── headings.js │ ├── markdown-regex.js │ ├── note.js │ ├── noteChooserFilenameResolve.js │ ├── notePlanWeekFormatter.js │ ├── openAI.js │ ├── paragraph.js │ ├── parentsAndChildren.js │ ├── promisePolyfill.js │ ├── react/ │ │ ├── CollapsibleObjectViewer.css │ │ ├── CollapsibleObjectViewer.jsx │ │ ├── ConsoleLogView.css │ │ ├── ConsoleLogView.jsx │ │ ├── DebugPanel.css │ │ ├── DebugPanel.jsx │ │ ├── DynamicDialog/ │ │ │ ├── AutosaveField.jsx │ │ │ ├── ButtonComponents.jsx │ │ │ ├── CREATING_NEW_DYNAMICDIALOG_FIELD_TYPES.md │ │ │ ├── CalendarPicker.css │ │ │ ├── CalendarPicker.jsx │ │ │ ├── ColorChooser.css │ │ │ ├── ColorChooser.jsx │ │ │ ├── ConditionalValues.css │ │ │ ├── ConditionalValues.jsx │ │ │ ├── ContainedMultiSelectChooser.css │ │ │ ├── ContainedMultiSelectChooser.jsx │ │ │ ├── DD_NEW_FEATURE_CHECKLIST.md │ │ │ ├── DropdownSelect.css │ │ │ ├── DropdownSelect.jsx │ │ │ ├── DropdownSelectChooser.css │ │ │ ├── DropdownSelectChooser.jsx │ │ │ ├── DynamicDialog.css │ │ │ ├── DynamicDialog.jsx │ │ │ ├── EventChooser.css │ │ │ ├── EventChooser.jsx │ │ │ ├── ExpandableTextarea.css │ │ │ ├── ExpandableTextarea.jsx │ │ │ ├── FolderChooser.css │ │ │ ├── FolderChooser.jsx │ │ │ ├── FrontmatterKeyChooser.css │ │ │ ├── FrontmatterKeyChooser.jsx │ │ │ ├── GenericDatePicker.css │ │ │ ├── GenericDatePicker.jsx │ │ │ ├── HeadingChooser.css │ │ │ ├── HeadingChooser.jsx │ │ │ ├── IconChooser.jsx │ │ │ ├── IconStyleChooser.jsx │ │ │ ├── InputBox.jsx │ │ │ ├── MarkdownPreview.css │ │ │ ├── MarkdownPreview.jsx │ │ │ ├── MentionChooser.css │ │ │ ├── MentionChooser.jsx │ │ │ ├── MultiSelectChooser.css │ │ │ ├── MultiSelectChooser.jsx │ │ │ ├── NoteChooser.css │ │ │ ├── NoteChooser.jsx │ │ │ ├── OrderingPanel.css │ │ │ ├── OrderingPanel.jsx │ │ │ ├── PatternChooser.jsx │ │ │ ├── SearchableChooser.css │ │ │ ├── SearchableChooser.jsx │ │ │ ├── SpaceChooser.css │ │ │ ├── SpaceChooser.jsx │ │ │ ├── Switch.jsx │ │ │ ├── TableOfContents.css │ │ │ ├── TableOfContents.jsx │ │ │ ├── TagChooser.css │ │ │ ├── TagChooser.jsx │ │ │ ├── TemplateJSBlock.css │ │ │ ├── TemplateJSBlock.jsx │ │ │ ├── TextComponent.jsx │ │ │ ├── ThemedSelect.jsx │ │ │ ├── _README.md │ │ │ ├── __tests__/ │ │ │ │ └── DropdownSelect.test.jsx │ │ │ ├── dateFormatOptions.js │ │ │ ├── dialogElementRenderer.js │ │ │ ├── index.js │ │ │ ├── useRequestWithRetry.js │ │ │ └── valueInsertData.js │ │ ├── EditableInput.jsx │ │ ├── FilterableList.css │ │ ├── FilterableList.jsx │ │ ├── IdleTimer.jsx │ │ ├── InfoIcon.css │ │ ├── InfoIcon.jsx │ │ ├── List.css │ │ ├── List.jsx │ │ ├── Modal/ │ │ │ ├── Modal.css │ │ │ ├── Modal.jsx │ │ │ ├── ModalWithTooltip.jsx │ │ │ └── index.js │ │ ├── ModalSpinner.jsx │ │ ├── ModifierHints.css │ │ ├── ModifierHints.jsx │ │ ├── NonModalSpinner.jsx │ │ ├── SearchBox.jsx │ │ ├── SimpleDialog.css │ │ ├── SimpleDialog.jsx │ │ ├── TestingPane.css │ │ ├── TestingPane.jsx │ │ ├── ThemedSelect.jsx │ │ ├── dateStrings.js │ │ ├── pluginRequestEnvelope.js │ │ ├── reactDev.js │ │ ├── reactMouseKeyboard.js │ │ ├── reactUtils.js │ │ ├── routerUtils.js │ │ ├── testSimpleDialog.js │ │ ├── useEffectGuard.js │ │ └── userInput.jsx │ ├── regex.js │ ├── regexEscape.js │ ├── search.js │ ├── sorting.js │ ├── stringTransforms.js │ ├── syncedCopies.js │ ├── teamspace.js │ ├── testing/ │ │ ├── CustomError.js │ │ ├── expect.js │ │ └── testingUtils.js │ ├── timeblocks.js │ ├── urls.js │ ├── userInput.js │ └── utils.js ├── index.js ├── jest.config.js ├── jest.customSummaryReporter.js ├── jest.noteplan-globals.js ├── jgclark.DailyJournal/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ └── src/ │ ├── index.js │ ├── journal.js │ ├── journalHelpers.js │ └── templatesStartEnd.js ├── jgclark.Dashboard/ │ ├── ADDING_A_DASHBOARD_SETTING.md │ ├── ARCHITECTURE-How_Stuff_Works.md │ ├── CHANGELOG.md │ ├── DASHBOARD_HELPERS_REVIEW.md │ ├── README.md │ ├── plugin.json │ ├── plugin.json.orig │ ├── readme-react.md │ ├── requiredFiles/ │ │ └── css.plugin.css │ └── src/ │ ├── NPHooks.js │ ├── __tests__/ │ │ ├── dashboardHelpers.test.js │ │ └── dashboardLineToNPDisplayHTML.test.js │ ├── bannerClickHandlers.js │ ├── clickHandlers.js │ ├── constants.js │ ├── countDoneTasks.js │ ├── dashboardHelpers.js │ ├── dashboardHooks.js │ ├── dashboardSettings.js │ ├── dataGeneration.js │ ├── dataGenerationDays.js │ ├── dataGenerationOverdue.js │ ├── dataGenerationPriority.js │ ├── dataGenerationProjects.js │ ├── dataGenerationSearch.js │ ├── dataGenerationTags.js │ ├── dataGenerationWeeks.js │ ├── demoData.js │ ├── diagnosticGenerator.js │ ├── index.js │ ├── moveClickHandlers.js │ ├── moveDayClickHandlers.js │ ├── moveWeekClickHandlers.js │ ├── perspectiveClickHandlers.js │ ├── perspectiveHelpers.js │ ├── perspectivesShared.js │ ├── pluginToHTMLBridge.js │ ├── projectClickHandlers.js │ ├── react/ │ │ ├── components/ │ │ │ ├── AddButtons.jsx │ │ │ ├── AppContext.jsx │ │ │ ├── Button.jsx │ │ │ ├── CalendarPicker.jsx │ │ │ ├── CircularProgressBar.jsx │ │ │ ├── ComboBox.jsx │ │ │ ├── CommandButton.jsx │ │ │ ├── Dashboard.jsx │ │ │ ├── Dialog.jsx │ │ │ ├── DialogForProjectItems.jsx │ │ │ ├── DialogForTaskItems.jsx │ │ │ ├── DropdownMenu.jsx │ │ │ ├── Header/ │ │ │ │ ├── AddToAnyNote.css │ │ │ │ ├── AddToAnyNote.jsx │ │ │ │ ├── DoneCounts.jsx │ │ │ │ ├── Header.css │ │ │ │ ├── Header.jsx │ │ │ │ ├── PerspectiveSelector.jsx │ │ │ │ ├── SearchBar.css │ │ │ │ ├── SearchBar.jsx │ │ │ │ ├── SearchPanel.css │ │ │ │ ├── SearchPanel.jsx │ │ │ │ ├── __tests__/ │ │ │ │ │ └── PerspectiveSelector.test.jsx │ │ │ │ ├── featureFlagItems.js │ │ │ │ ├── filterDropdownItems.js │ │ │ │ ├── headerDropdownHandlers.js │ │ │ │ ├── index.js │ │ │ │ └── useLastFullRefresh.js │ │ │ ├── IdleTimer.jsx │ │ │ ├── InputBox.jsx │ │ │ ├── ItemContent.jsx │ │ │ ├── ItemGrid.jsx │ │ │ ├── ItemNoteLink.jsx │ │ │ ├── ItemRow.css │ │ │ ├── ItemRow.jsx │ │ │ ├── MessageOnlyItem.jsx │ │ │ ├── Modal/ │ │ │ │ ├── Modal.css │ │ │ │ ├── Modal.jsx │ │ │ │ └── index.js │ │ │ ├── MultiSelectSpaces.jsx │ │ │ ├── NoTasks.jsx │ │ │ ├── NoteTitleLink.jsx │ │ │ ├── PerspectiveSettings.jsx │ │ │ ├── PerspectivesTable.jsx │ │ │ ├── ProjectItem.jsx │ │ │ ├── RefreshControl.jsx │ │ │ ├── Section/ │ │ │ │ ├── Section.css │ │ │ │ ├── Section.jsx │ │ │ │ ├── index.js │ │ │ │ ├── sectionHelpers.js │ │ │ │ └── useSectionSortAndFilter.jsx │ │ │ ├── SettingsDialog.jsx │ │ │ ├── SmallCircularProgressIndicator.jsx │ │ │ ├── StatusIcon.jsx │ │ │ ├── Switch.jsx │ │ │ ├── TaskItem.css │ │ │ ├── TaskItem.jsx │ │ │ ├── TasksFiltered.css │ │ │ ├── TasksFiltered.jsx │ │ │ ├── TextComponent.jsx │ │ │ ├── ThemedComboBox.jsx │ │ │ ├── ToolTipOnModifierPress.jsx │ │ │ ├── Tooltip.jsx │ │ │ ├── WebView.jsx │ │ │ ├── __tests__/ │ │ │ │ └── DropdownMenu.test.jsx │ │ │ └── testing/ │ │ │ ├── dashboardSettings.tests.js │ │ │ ├── general.tests.js │ │ │ ├── perspectives.tests.js │ │ │ ├── sectionHelpers.test.js │ │ │ ├── testingHelpers.js │ │ │ ├── tests.js │ │ │ └── useSectionSortAndFilter.test.js │ │ ├── css/ │ │ │ ├── CalendarPicker.css │ │ │ ├── Dashboard.css │ │ │ ├── DashboardDialog.css │ │ │ ├── DropdownMenu.css │ │ │ ├── MultiSelectSpaces.css │ │ │ ├── PerspectiveSettings.css │ │ │ ├── PerspectivesTable.css │ │ │ ├── ProgressBar.css │ │ │ ├── SettingsDialog.css │ │ │ ├── Tooltip.css │ │ │ └── animation.css │ │ ├── customHooks/ │ │ │ ├── useMidnightRollover.jsx │ │ │ ├── useRefreshTimer.jsx │ │ │ ├── useSettingsDialogHandler.jsx │ │ │ ├── useSyncDashboardSettingsWithPlugin.js │ │ │ ├── useSyncPerspectivesWithPlugin.js │ │ │ └── useWatchForResizes.jsx │ │ ├── dashboardLineToNPDisplayHTML.js │ │ ├── reducers/ │ │ │ ├── actionTypes.js │ │ │ ├── dashboardSettingsReducer.js │ │ │ └── perspectiveSettingsReducer.js │ │ └── support/ │ │ ├── performRollup.node.js │ │ ├── rollup.WebView.entry.js │ │ ├── settingsHelpers.js │ │ └── uiElementRenderHelpers.js │ ├── reactMain.js │ ├── refreshClickHandlers.js │ ├── requestHandlers/ │ │ └── addTaskToNote.js │ ├── routeRequestsFromReact.js │ ├── shared.js │ ├── tagMentionCache.js │ └── types.js ├── jgclark.EventHelpers/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── eventsToNotes.test.js │ ├── plugin.json │ └── src/ │ ├── eventsHelpers.js │ ├── eventsToNotes.js │ ├── index.js │ ├── offsets.js │ └── timeblocks.js ├── jgclark.Filer/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── moveCompletedToDone.test.js │ ├── plugin.json │ └── src/ │ ├── IDs.js │ ├── archive.js │ ├── filerHelpers.js │ ├── index.js │ ├── moveCompletedToDone.js │ ├── moveItems.js │ └── noteLinks.js ├── jgclark.Journalling/ │ └── CHANGELOG.md ├── jgclark.MOCs/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ └── src/ │ ├── MOCs.js │ └── index.js ├── jgclark.NoteHelpers/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── duplicateNote.test.js │ │ ├── newNote.test.js │ │ └── unLinkedNoteFinder.test.js │ ├── plugin.json │ └── src/ │ ├── countDays.js │ ├── duplicateNote.js │ ├── helpers/ │ │ ├── findInconsistentNames.js │ │ ├── makeNoteTitleMatchFilename.js │ │ └── renameNotes.js │ ├── index.js │ ├── indexFolders.js │ ├── lib/ │ │ └── commands/ │ │ ├── filenameToTitle.js │ │ ├── listInconsistentNames.js │ │ ├── renameInconsistentNames.js │ │ └── titleToFilename.js │ ├── listPublishedNotes.js │ ├── newNote.js │ ├── noteHelpers.js │ ├── noteNavigation.js │ ├── unlinkedNoteFinder.js │ └── writeModified.js ├── jgclark.PeriodicReviews/ │ └── src/ │ └── reviewHTMLViewGenerator.js ├── jgclark.QuickCapture/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ └── src/ │ ├── inbox.js │ ├── index.js │ ├── quickCapture.js │ └── quickCaptureHelpers.js ├── jgclark.RepeatExtensions/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── repeatHelpers.test.js │ │ └── repeatTrigger.test.js │ ├── plugin.json │ └── src/ │ ├── index.js │ ├── repeatHelpers.js │ ├── repeatMain.js │ ├── repeatPara.js │ └── repeatTrigger.js ├── jgclark.Reviews/ │ ├── CHANGELOG.md │ ├── README.md │ ├── css/ │ │ ├── fontawesome.css │ │ ├── regular.css │ │ └── solid.css │ ├── experiments/ │ │ ├── CSS-circle-test.html │ │ ├── SVG-circle-test-attempt1.html │ │ ├── SVG-circle-test-attempt2.html │ │ ├── SVG-circle-test-attempt3.html │ │ ├── chart-experiments.js │ │ ├── font-tests.html │ │ └── fontTests.js │ ├── plugin.json │ ├── remove_combined_fm_metadata_8323fd97.plan.md │ ├── requiredFiles/ │ │ ├── HTMLWinCommsSwitchboard.js │ │ ├── projectList.css │ │ ├── projectListDialog.css │ │ ├── projectListEvents.js │ │ ├── shortcut.js │ │ └── showTimeAgo.js │ └── src/ │ ├── __tests__/ │ │ ├── allProjectsListHelpers.sorting.test.js │ │ ├── filterProjectNotesByFolders.test.js │ │ ├── getMetadataLineIndexFromBody.test.js │ │ ├── noteChangeCache.test.js │ │ ├── projectClass.defaultReviewInterval.test.js │ │ ├── projectClass.embeddedCombinedMentions.test.js │ │ ├── projectClass.frontmatterParsing.test.js │ │ └── reviewHelpers.clearNextReviewFrontmatterField.test.js │ ├── allProjectsListHelpers.js │ ├── convertNote.js │ ├── index.js │ ├── migration.js │ ├── migrationLog.js │ ├── pluginToHTMLBridge.js │ ├── projectClass.js │ ├── projectClassCalculations.js │ ├── projectClassHelpers.js │ ├── projects.js │ ├── projectsHTMLGenerator.js │ ├── projectsHTMLTemplates.js │ ├── projectsWeeklyProgress.js │ ├── reviewHelpers.js │ └── reviews.js ├── jgclark.SearchExtensions/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── searchHelpers.test.js │ ├── plugin.json │ ├── requiredFiles/ │ │ └── flexiSearch.css │ └── src/ │ ├── externalSearch.js │ ├── flexiSearch.js │ ├── index.js │ ├── replace.js │ ├── saveSearch.js │ ├── searchHelpers.js │ └── searchTriggers.js ├── jgclark.Summaries/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ ├── requiredFiles/ │ │ ├── README-chart.md │ │ ├── chartStats.css │ │ └── chartStatsScripts.js │ └── src/ │ ├── TMOccurrences.js │ ├── __tests__/ │ │ └── chartStatsDisplayStats.test.js │ ├── chartStats.js │ ├── configHelpers.js │ ├── dateHelpers.js │ ├── forCharts.js │ ├── forHeatmaps.js │ ├── gatherOccurrencesHelpers.js │ ├── index.js │ ├── progress.js │ ├── stats.js │ ├── summaryHelpers.js │ ├── summarySettings.js │ ├── testCharting.js │ └── todayProgress.js ├── jgclark.WindowTools/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ └── src/ │ ├── WTHelpers.js │ ├── index.js │ ├── openers.js │ ├── otherWindowTools.js │ └── windowSets.js ├── jgclark.tests/ │ ├── plugin.json │ └── src/ │ └── index.js ├── m1well.Expenses/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── expensesChecks.test.js │ │ └── expensesHelper.test.js │ ├── plugin.json │ └── src/ │ ├── expenses.js │ ├── expensesChecks.js │ ├── expensesHelper.js │ ├── expensesModels.js │ └── index.js ├── nmn.DataQuery/ │ ├── plugin.json │ ├── readme.md │ └── src/ │ └── index.js ├── nmn.TimeTracking/ │ ├── plugin.json │ ├── readme.md │ └── src/ │ └── index.js ├── np.CallbackURLs/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── NPXCallbackWizard.test.js │ │ └── utils.test.js │ ├── plugin.json │ └── src/ │ ├── NPOpenFolders.js │ ├── NPOpenLinks.js │ ├── NPTemplateRunner.js │ ├── NPXCallbackWizard.js │ ├── index.js │ └── support/ │ └── utils.js ├── np.Globals/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── globals.test.js │ ├── lib/ │ │ └── NPGlobals.js │ ├── plugin.json │ └── src/ │ ├── Globals.js │ └── index.js ├── np.MeetingNotes/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── hello-world.test.js │ ├── plugin.json │ └── src/ │ ├── NPMeetingNotes.js │ ├── index.js │ └── support/ │ └── hello-world.js ├── np.Preview/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ ├── requiredFiles/ │ │ ├── mermaid@10.1.0.min.mjs │ │ └── tex-chtml.js │ └── src/ │ ├── bundling/ │ │ └── performMermaidRollup.node.js │ ├── index.js │ ├── mathTests.js │ ├── mermaidTests.js │ ├── previewMain.js │ ├── previewTriggers.js │ └── testCheckboxes.js ├── np.Shared/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ ├── requiredFiles/ │ │ ├── css.w3.css │ │ ├── duotone.min.flat4NP.css │ │ ├── encodeDecode.js │ │ ├── fontawesome.css │ │ ├── light.min.flat4NP.css │ │ ├── noteplanstate-edited.otf │ │ ├── pluginToHTMLCommsBridge.js │ │ ├── pluginToHTMLErrorBridge.js │ │ ├── regular.min.flat4NP.css │ │ ├── shortcut.js │ │ └── solid.min.flat4NP.css │ └── src/ │ ├── NPReactLocal.js │ ├── chooserHandlers.js │ ├── index.js │ ├── react/ │ │ ├── ErrorFallback.jsx │ │ ├── MessageBanner.css │ │ ├── MessageBanner.jsx │ │ ├── Root.css │ │ ├── Root.jsx │ │ ├── Toast.css │ │ ├── Toast.jsx │ │ └── support/ │ │ ├── performRollup.node.js │ │ ├── rollup.react.entry.js │ │ └── rollup.root.entry.js │ ├── requestHandlers/ │ │ ├── getAvailableCalendars.js │ │ ├── getAvailableReminderLists.js │ │ ├── getEvents.js │ │ ├── getFolders.js │ │ ├── getFrontmatterKeyValues.js │ │ ├── getHashtags.js │ │ ├── getHeadings.js │ │ ├── getMentions.js │ │ ├── getNotes.js │ │ ├── getTeamspaces.js │ │ └── noteHelpers.js │ └── sharedRequestRouter.js ├── np.TOC/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ └── src/ │ ├── NPTriggers-Hooks.js │ ├── index.js │ ├── insertTOC.js │ └── support/ │ ├── TOC-Heading.md │ ├── TOC-Template.md │ └── helpers.js ├── np.Templating/ │ ├── CHANGELOG.md │ ├── README.md │ ├── TEMP_DOCS_TemplateRunner_getNoteTitled_calendar_targets.md │ ├── __tests__/ │ │ ├── BasePromptHandler.test.js │ │ ├── NPTemplateNoteHelpers.test.js │ │ ├── NPTemplateRunner.test.js │ │ ├── ai-error-analysis.test.js │ │ ├── ai-override.test.js │ │ ├── awaitVariableAssignment.test.js │ │ ├── date-module-now-fix.test.js │ │ ├── date-module-timezone-debug.test.js │ │ ├── date-module-timezone-simple.test.js │ │ ├── date-module-timezone-working.test.js │ │ ├── date-module.test.js │ │ ├── ejs-error-handling.test.js │ │ ├── error-handling.test.js │ │ ├── factories/ │ │ │ ├── async.ejs │ │ │ ├── complex-json-template.ejs │ │ │ ├── custom-tags.ejs │ │ │ ├── date-reference.ejs │ │ │ ├── dates-various.ejs │ │ │ ├── dates.ejs │ │ │ ├── day-header-template.ejs │ │ │ ├── double-dashes-in-body.ejs │ │ │ ├── error-sample.ejs │ │ │ ├── extended.ejs │ │ │ ├── frontmatter-convert-project-note.md │ │ │ ├── frontmatter-convert-success.md │ │ │ ├── frontmatter-extended.ejs │ │ │ ├── frontmatter-illegal-attribute.ejs │ │ │ ├── frontmatter-indented.ejs │ │ │ ├── frontmatter-minimal.ejs │ │ │ ├── frontmatter-practical.ejs │ │ │ ├── frontmatter-quick-note.ejs │ │ │ ├── frontmatter-with-asterick-separators.ejs │ │ │ ├── frontmatter-with-double-dashes.ejs │ │ │ ├── frontmatter-with-multiple-fm-like-lines1.ejs │ │ │ ├── frontmatter-with-multiple-fm-like-lines2.ejs │ │ │ ├── frontmatter-with-separators.ejs │ │ │ ├── frontmatter-yml.ejs │ │ │ ├── invalid-json-test.ejs │ │ │ ├── invalid-line-error.ejs │ │ │ ├── invalid-syntax.ejs │ │ │ ├── missing-object.ejs │ │ │ ├── multiple-imports-one-line-return.ejs │ │ │ ├── multiple-imports.ejs │ │ │ ├── nested-templates.ejs │ │ │ ├── simple-function.ejs │ │ │ ├── simple.ejs │ │ │ ├── simulate-tasks.ejs │ │ │ ├── single-quoted-json-template.ejs │ │ │ ├── stop-on-json-error.ejs │ │ │ ├── syntax-error-template.ejs │ │ │ ├── tags-extended.ejs │ │ │ ├── tags-function.ejs │ │ │ ├── tags.ejs │ │ │ ├── template-logic.ejs │ │ │ ├── ternary.ejs │ │ │ ├── times.ejs │ │ │ └── web-await-tests.ejs │ │ ├── frontmatter-error-handling.test.js │ │ ├── frontmatter-module.test.js │ │ ├── full-pipeline-integration.test.js │ │ ├── getRenderContext.test.js │ │ ├── getTemplate.test.js │ │ ├── import-tag-processor.test.js │ │ ├── include-tag-processor.test.js │ │ ├── isCode.test.js │ │ ├── merge-statements.test.js │ │ ├── preprocess-functions.test.js │ │ ├── prompt-cancellation.test.js │ │ ├── promptAwaitIssue.test.js │ │ ├── promptDate.test.js │ │ ├── promptDateInterval.test.js │ │ ├── promptEdgeCases.test.js │ │ ├── promptFormBatch.test.js │ │ ├── promptFormTag.test.js │ │ ├── promptIntegration.test.js │ │ ├── promptKey.test.js │ │ ├── promptRegistry.test.js │ │ ├── promptSafetyChecks.test.js │ │ ├── promptTagAndMention.test.js │ │ ├── promptTagOutputBehavior.test.js │ │ ├── promptTagSingleParameter.test.js │ │ ├── promptVariableAssignment.test.js │ │ ├── render-pipeline.test.js │ │ ├── renderTemplate.test.js │ │ ├── setup.js │ │ ├── sharedPromptFunctions.test.js │ │ ├── smart-quotes.test.js │ │ ├── standardPrompt.test.js │ │ ├── stringUtils.test.js │ │ ├── tagUtils.test.js │ │ ├── template-error-handling.test.js │ │ ├── template-preprocessing.test.js │ │ ├── template-preprocessor-regression.test.js │ │ ├── template-preprocessor.test.js │ │ ├── template-render-preprocessor.test.js │ │ ├── templateManager.test.js │ │ ├── templateRenderer.test.js │ │ ├── templateUtils.test.js │ │ ├── templateVariableAssignment.test.js │ │ ├── templateVariableValidation.test.js │ │ ├── templating.test.js │ │ ├── testUtils.js │ │ ├── time-module.test.js │ │ ├── unquotedParameterTest.test.js │ │ ├── variableAssignmentQuotesBug.test.js │ │ ├── web-api-tests.test.js │ │ ├── web-await-tests.test.js │ │ └── web-module.test.js │ ├── docs/ │ │ ├── AddingNewPromptCommands.md │ │ ├── PromptCommandBarForms.md │ │ ├── PromptCommands.md │ │ ├── PromptTagsList.md │ │ └── PromptTestingSummary.md │ ├── lib/ │ │ ├── NPTemplateNoteHelpers.js │ │ ├── NPTemplating.js │ │ ├── REFACTORING_PLAN.md │ │ ├── REFACTORING_SUMMARY.md │ │ ├── TemplatingEngine.js │ │ ├── config/ │ │ │ ├── configManager.js │ │ │ └── index.js │ │ ├── core/ │ │ │ ├── index.js │ │ │ ├── tagUtils.js │ │ │ └── templateManager.js │ │ ├── engine/ │ │ │ ├── aiAnalyzer.js │ │ │ ├── errorProcessor.js │ │ │ ├── frontmatterProcessor.js │ │ │ ├── pluginIntegrator.js │ │ │ ├── renderOrchestrator.js │ │ │ └── templateRenderer.js │ │ ├── globals.js │ │ ├── handlers/ │ │ │ └── index.js │ │ ├── helpers.js │ │ ├── rendering/ │ │ │ ├── __tests__/ │ │ │ │ └── templateProcessor.test.js │ │ │ ├── errorHandler.js │ │ │ ├── index.js │ │ │ ├── templateProcessor.js │ │ │ └── templateValidator.js │ │ ├── shared/ │ │ │ └── templateUtils.js │ │ ├── support/ │ │ │ ├── ejs.js │ │ │ └── modules/ │ │ │ ├── DateModule.js │ │ │ ├── FrontmatterModule.js │ │ │ ├── NoteModule.js │ │ │ ├── SystemModule.js │ │ │ ├── TasksModule.js │ │ │ ├── TimeModule.js │ │ │ ├── UtilityModule.js │ │ │ ├── WebModule.js │ │ │ ├── advice.js │ │ │ ├── affirmation.js │ │ │ ├── data/ │ │ │ │ ├── adviceData.js │ │ │ │ ├── affirmations.js │ │ │ │ ├── service.js │ │ │ │ └── stoicQuotes.js │ │ │ ├── helpers-example.md │ │ │ ├── helpersModule.js │ │ │ ├── journal.js │ │ │ ├── notePlanWeather.js │ │ │ ├── prompts/ │ │ │ │ ├── AddingNewPromptCommands.md │ │ │ │ ├── BasePromptHandler.js │ │ │ │ ├── PromptDateHandler.js │ │ │ │ ├── PromptDateIntervalHandler.js │ │ │ │ ├── PromptFormHandler.js │ │ │ │ ├── PromptKeyHandler.js │ │ │ │ ├── PromptManager.js │ │ │ │ ├── PromptMentionHandler.js │ │ │ │ ├── PromptRegistry.js │ │ │ │ ├── PromptTagHandler.js │ │ │ │ ├── README.md │ │ │ │ ├── StandardPromptHandler.js │ │ │ │ ├── handlers/ │ │ │ │ │ └── index.js │ │ │ │ ├── index.js │ │ │ │ ├── promptFormBatch.js │ │ │ │ ├── promptTagParse.js │ │ │ │ ├── promptTypesRegistry.js │ │ │ │ └── sharedPromptFunctions.js │ │ │ ├── quote.js │ │ │ ├── stoicQuotes.js │ │ │ ├── verse.js │ │ │ ├── weather.js │ │ │ ├── weatherSummary.js │ │ │ └── wotd.js │ │ ├── toolbox_old.js │ │ └── utils/ │ │ ├── codeProcessing.js │ │ ├── dateHelpers.js │ │ ├── errorHandling.js │ │ ├── index.js │ │ ├── pluginIntegration.js │ │ └── stringUtils.js │ ├── plugin.json │ ├── plugins/ │ │ ├── BiblePlugin.js │ │ └── WeatherPlugin.js │ ├── samples/ │ │ ├── Sample Template.md │ │ ├── Test (Execute Quick).md │ │ ├── Test (Execute).md │ │ ├── Test (Include).md │ │ ├── Test (Snippets).md │ │ ├── Test Note Included.md │ │ ├── miscellaneous/ │ │ │ └── Restaurants.md │ │ ├── prompt-edge-cases/ │ │ │ └── README.md │ │ ├── section1.md │ │ └── snippets/ │ │ ├── README.md │ │ ├── strings-obj.md │ │ └── strings.md │ └── src/ │ ├── NPTemplateRunner.js │ ├── Templating.js │ ├── commands.js │ └── index.js ├── np.ThemeChooser/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── themeHelpers.test.js │ ├── plugin.json │ └── src/ │ ├── NPThemeChooser.js │ ├── NPThemeCustomizer.js │ ├── NPThemeHTML.js │ ├── NPThemeHooks.js │ ├── NPThemePresets.js │ ├── NPThemeShared.js │ ├── chooseColor.js │ ├── index.js │ └── support/ │ ├── masterTheme.json │ └── themeHelpers.js ├── np.Tidy/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── cancelIncompleteTasks.test.js │ │ ├── emptyBlocks.test.js │ │ └── topLevelTasks.test.js │ ├── plugin.json │ └── src/ │ ├── cancelIncompleteTasks.js │ ├── cleanFilenames.js │ ├── conflicts.js │ ├── doubledNotes.js │ ├── duplicates.js │ ├── emptyElements.js │ ├── fileRoot.js │ ├── index.js │ ├── lineLinks.js │ ├── missingDailyNotes.js │ ├── tidyHelpers.js │ ├── tidyMain.js │ ├── tidyRemoveSections.js │ ├── tidyRepeats.js │ ├── tidyStubs.js │ ├── topLevelTasks.js │ └── triggersHooks.js ├── np.WeatherLookup/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ └── utils.test.js │ ├── plugin.json │ └── src/ │ ├── NPWeatherLookup.js │ ├── index.js │ └── support/ │ ├── old-weather-for-reference.txt │ └── weather-utils.js ├── np.installer/ │ └── plugin.json ├── np.plugin-test/ │ ├── README.md │ ├── changelog.md │ ├── plugin.json │ ├── requiredFiles/ │ │ └── css.plugin.css │ └── src/ │ ├── commandListGenerator.js │ ├── index.js │ ├── pluginCommandsPopup.js │ ├── pluginTester.js │ └── react/ │ ├── Button.jsx │ ├── Checkbox.jsx │ ├── CompositeLineExample.jsx │ ├── PluginListingPage.jsx │ ├── WebView.jsx │ ├── __test__/ │ │ └── filterFunctions.test.js │ └── support/ │ ├── filterFunctions.jsx │ ├── performRollup.node.js │ └── rollup.WebView.entry.js ├── np.statistics/ │ ├── CHANGELOG.md │ ├── README.md │ ├── plugin.json │ └── src/ │ ├── index.js │ ├── showNoteCount.js │ ├── showWordCount.js │ └── taskNoteStats.js ├── package.json ├── plugins.config.js ├── scripts/ │ ├── __tests__/ │ │ ├── releases.test.js │ │ └── rollup.generic.tes.js │ ├── generateDocs.js │ ├── releases.js │ ├── rollup.generic.js │ ├── rollup.js │ └── shared.js ├── shared.AI/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── NPBulletsAI-Main.test.js │ │ ├── externalFileInteractions.test.js │ │ └── helpers.test.js │ ├── non-implemented_functions.js │ ├── plugin.json │ └── src/ │ ├── BulletsAI-Main.js │ ├── NPAI.js │ ├── chat.js │ ├── imageAI.js │ ├── index.js │ ├── summarize.js │ └── support/ │ ├── .readme_text/ │ │ ├── commands.md │ │ ├── gettingstarted.md │ │ └── preferences.md │ ├── AIFlowTypes.js │ ├── externalFileInteractions.js │ ├── fetchOverrides.js │ ├── fetchResponses/ │ │ ├── completions.heatTransfer.json │ │ ├── completions.heatTransferKeyTopics.json │ │ ├── completions.mercury.json │ │ ├── completions.mercuryKeyTopics.json │ │ ├── completions.thermalProtection.json │ │ ├── completions.thermalProtectionKeyTopics.json │ │ └── summarize_3 Little Pigs.1.json │ ├── formatters.js │ ├── helpers.js │ ├── introwizard.js │ ├── networking.js │ ├── onboarding.js │ ├── onboardingText.js │ ├── prompts.js │ └── settingsAdjustments.js ├── src/ │ ├── __tests__/ │ │ └── README.md │ ├── commands/ │ │ ├── PluginCreate.js │ │ ├── PluginDevelop.js │ │ ├── PluginPullRequest.js │ │ ├── PluginRelease.js │ │ ├── PluginTest.js │ │ └── support/ │ │ ├── github.js │ │ ├── plugin-create.js │ │ ├── plugin-info.js │ │ ├── plugin-pull-request.js │ │ ├── plugin-release/ │ │ │ ├── git-tasks.js │ │ │ ├── prerequisite-tasks.js │ │ │ ├── release-prompts.js │ │ │ ├── release-tasks.js │ │ │ ├── script-grep.js │ │ │ └── update-version-tasks.js │ │ ├── plugin-release.js │ │ ├── plugin-test.js │ │ ├── plugin-utils.js │ │ └── release-management.js │ ├── templates/ │ │ └── np.plugin.starter/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── NPPluginMain.NOTACTIVE.js │ │ ├── plugin.json │ │ ├── requiredFiles/ │ │ │ └── html-plugin-comms.js │ │ └── src/ │ │ ├── NPMessagesFromHTMLWindow.js │ │ ├── NPPluginMain.js │ │ ├── NPTriggers-Hooks.js │ │ ├── index.js │ │ └── support/ │ │ ├── fetchOverrides.js │ │ ├── fetchResponses/ │ │ │ └── google.search-for-something.json │ │ └── helpers.js │ └── utils/ │ ├── app.js │ ├── general.js │ └── security.lib.js └── tasks/ ├── bumpBuild.js ├── init.js └── start.js