title: $:/core/macros/tag-picker tags: $:/tags/Macro first-search-filter: [tags[]!is[system]search:titlesort[]] second-search-filter: [tags[]is[system]search:titlesort[]] \define get-tagpicker-focus-selector() [data-tiddler-title="$(currentTiddlerCSSEscaped)$"] .tc-add-tag-name input \define delete-tag-state-tiddlers() <$action-deletetiddler $filter="[] [] []"/> \define add-tag-actions(actions,tagField:"tags") \whitespace trim <$set name="tag" value={{{ [<__tiddler__>get[text]] }}}> <$list filter="[!contains:$tagField$!match[]]" variable="ignore" emptyMessage="<$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter='-[]'/>" > <$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter="[trim[]]"/> <$transclude $variable="__actions__"/> <> <$action-setfield $tiddler=<> text="yes"/> \end \define clear-tags-actions-inner() \whitespace trim <$list filter="[has[text]] [has[text]]" variable="ignore" emptyMessage="<>" > <> \end \define clear-tags-actions() \whitespace trim <$set name="userInput" value={{{ [get[text]] }}}> <$list filter="[get[text]!match]" emptyMessage="<>"> <$action-setfield $tiddler=<> text=<>/><$action-setfield $tiddler=<> text="yes"/> \end \define tag-picker-inner(actions,tagField:"tags") \whitespace trim <$vars newTagNameInputTiddlerQualified=<> newTagNameSelectionTiddlerQualified=<> fallbackTarget={{$(palette)$##tag-background}} colourA={{$(palette)$##foreground}} colourB={{$(palette)$##background}} > <$vars storeTitle={{{ [!match[]] ~[] }}} tagSelectionState={{{ [!match[]] ~[] }}} > <$vars refreshTitle=<> nonSystemTagsFilter="[tags[]!is[system]search:titlesort[]]" systemTagsFilter="[tags[]is[system]search:titlesort[]]" >
<$macrocall $name="keyboard-driven-input" tiddler=<> storeTitle=<> refreshTitle=<> selectionStateTitle=<> inputAcceptActions="<$macrocall $name='add-tag-actions' actions=<<__actions__>> tagField=<<__tagField__>>/>" inputCancelActions=<> tag="input" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<> class="tc-edit-texteditor tc-popup-handle" tabindex=<> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} filterMinLength={{$:/config/Tags/MinLength}} cancelPopups=<> configTiddlerFilter="[[$:/core/macros/tag-picker]]" /> <$button popup=<> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}} > {{$:/core/images/down-arrow}} <$reveal state=<> type="nomatch" text=""> <$button class="tc-btn-invisible tc-small-gap tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}} > {{$:/core/images/close-button}}<> <$set name="tag" value={{{ [get[text]] }}}> <$button set=<> setTo="" class=""> <$action-listops $tiddler=<> $field=<<__tagField__>> $subfilter="[trim[]]"/> <$transclude $variable="__actions__"/> <$set name="currentTiddlerCSSEscaped" value={{{ [escapecss[]] }}}> <><$action-sendmessage $message="tm-focus-selector" $param=<>/> {{$:/language/EditTemplate/Tags/Add/Button}}
<$reveal state=<> type="nomatch" text="" default="">
<$set name="userInput" value={{{ [get[text]] }}}> <$list filter="[minlength{$:/config/Tags/MinLength}limit[1]]" emptyMessage="
{{$:/language/Search/Search/TooShort}}
" variable="listItem"> <$list filter=<> variable="tag"> <$list filter="[addsuffix[-primaryList]] -[get[text]]" emptyMessage="<$vars button-classes='tc-btn-invisible tc-tag-button-selected' actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<>>{{||$:/core/ui/TagPickerTagTemplate}}" > <$vars button-classes="tc-btn-invisible" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<> > {{||$:/core/ui/TagPickerTagTemplate}}
<$list filter="[minlength{$:/config/Tags/MinLength}limit[1]]" emptyMessage="
{{$:/language/Search/Search/TooShort}}
" variable="listItem"> <$list filter=<> variable="tag"> <$list filter="[addsuffix[-secondaryList]] -[get[text]]" emptyMessage="<$vars button-classes='tc-btn-invisible tc-tag-button-selected' actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<>>{{||$:/core/ui/TagPickerTagTemplate}}" > <$vars button-classes="tc-btn-invisible" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<> > {{||$:/core/ui/TagPickerTagTemplate}}
\end \define tag-picker(actions,tagField:"tags") \whitespace trim <$vars saveTiddler=<> palette={{$:/palette}}> <$list filter="[match[]]" emptyMessage="<$macrocall $name='tag-picker-inner' actions=<<__actions__>> tagField=<<__tagField__>>/>" > <$set name="newTagNameTiddler" value=<>> <$macrocall $name="tag-picker-inner" actions=<<__actions__>> tagField=<<__tagField__>>/> \end