diff --git a/core/language/en-GB/Buttons.multids b/core/language/en-GB/Buttons.multids
index db809317a..edcff716b 100644
--- a/core/language/en-GB/Buttons.multids
+++ b/core/language/en-GB/Buttons.multids
@@ -18,8 +18,12 @@ Edit/Caption: edit
Edit/Hint: Edit this tiddler
Info/Caption: info
Info/Hint: Show information for this tiddler
+Home/Caption: home
+Home/Hint: Open home tiddlers
NewTiddler/Caption: new tiddler
NewTiddler/Hint: Create a new tiddler
+More/Caption: more
+More/Hint: More actions
Permalink/Caption: permalink
Permalink/Hint: Set browser address bar to a direct link to this tiddler
Permaview/Caption: permaview
diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids
index e7c0c2aec..6df4fb76d 100644
--- a/core/language/en-GB/ControlPanel.multids
+++ b/core/language/en-GB/ControlPanel.multids
@@ -40,6 +40,14 @@ Appearance/StoryView/Caption: Story View
Appearance/StoryView/Prompt: Current view:
Appearance/Theme/Caption: Theme
Appearance/Theme/Prompt: Current theme:
+Appearance/Toolbars/Caption: Toolbars
+Appearance/Toolbars/Hint: Select which toolbar buttons are displayed
+Appearance/Toolbars/EditToolbar/Caption: Edit Toolbar
+Appearance/Toolbars/EditToolbar/Hint: Choose which buttons are displayed for tiddlers in edit mode
+Appearance/Toolbars/ViewToolbar/Caption: View Toolbar
+Appearance/Toolbars/ViewToolbar/Hint: Choose which buttons are displayed for tiddlers in view mode
+Appearance/Toolbars/PageControls/Caption: Page Toolbar
+Appearance/Toolbars/PageControls/Hint: Choose which buttons are displayed on the main page toolbar
Basics/AnimDuration/Prompt: Animation duration:
Basics/Caption: Basics
Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">retain story ordering$button>
diff --git a/core/language/en-GB/TiddlerInfo.multids b/core/language/en-GB/TiddlerInfo.multids
index 341cd9ffc..a395ce19b 100644
--- a/core/language/en-GB/TiddlerInfo.multids
+++ b/core/language/en-GB/TiddlerInfo.multids
@@ -18,3 +18,4 @@ References/Caption: References
References/Empty: No tiddlers link to this one
Tagging/Caption: Tagging
Tagging/Empty: No tiddlers are tagged with this one
+Tools/Caption: Tools
diff --git a/core/modules/filters.js b/core/modules/filters.js
index bc1138990..c9fae0b70 100644
--- a/core/modules/filters.js
+++ b/core/modules/filters.js
@@ -198,7 +198,7 @@ exports.compileFilter = function(filterString) {
operand = self.getTextReference(operator.operand,"",currTiddlerTitle);
}
if(operator.variable) {
- operand = widget.getVariable(operator.operand,"");
+ operand = widget.getVariable(operator.operand,{defaultValue: ""});
}
results = operatorFunction(accumulator,{
operator: operator.operator,
diff --git a/core/modules/utils/dom/dom.js b/core/modules/utils/dom/dom.js
index e896049ed..35f556262 100644
--- a/core/modules/utils/dom/dom.js
+++ b/core/modules/utils/dom/dom.js
@@ -29,7 +29,7 @@ exports.removeChildren = function(node) {
};
exports.hasClass = function(el,className) {
- return el && el.className && el.className.split(" ").indexOf(className) !== -1;
+ return el && el.className && el.className.toString().split(" ").indexOf(className) !== -1;
};
exports.addClass = function(el,className) {
diff --git a/core/modules/widgets/navigator.js b/core/modules/widgets/navigator.js
index 498fd1fa3..71a49ff2f 100755
--- a/core/modules/widgets/navigator.js
+++ b/core/modules/widgets/navigator.js
@@ -487,6 +487,8 @@ NavigatorWidget.prototype.handlePerformImportEvent = function(event) {
}));
// Navigate to the $:/Import tiddler
this.addToHistory([IMPORT_TITLE]);
+ // Send a notification event
+ this.dispatchEvent({type: "tw-auto-save-wiki"});
};
exports.navigator = NavigatorWidget;
diff --git a/core/ui/ControlPanel/Appearance/Toolbars.tid b/core/ui/ControlPanel/Appearance/Toolbars.tid
new file mode 100644
index 000000000..bcb0aa843
--- /dev/null
+++ b/core/ui/ControlPanel/Appearance/Toolbars.tid
@@ -0,0 +1,9 @@
+title: $:/core/ui/ControlPanel/Appearance/Toolbars
+tags: $:/tags/ControlPanel/Appearance
+caption: {{$:/language/ControlPanel/Appearance/Toolbars/Caption}}
+
+{{$:/language/ControlPanel/Appearance/Toolbars/Hint}}
+
+
+<>
+
diff --git a/core/ui/ControlPanel/Appearance/Toolbars/EditToolbar.tid b/core/ui/ControlPanel/Appearance/Toolbars/EditToolbar.tid
new file mode 100644
index 000000000..2425f83c3
--- /dev/null
+++ b/core/ui/ControlPanel/Appearance/Toolbars/EditToolbar.tid
@@ -0,0 +1,24 @@
+title: $:/core/ui/ControlPanel/Appearance/Toolbars/EditToolbar
+tags: $:/tags/ControlPanel/Appearance/Toolbars
+caption: {{$:/language/ControlPanel/Appearance/Toolbars/EditToolbar/Caption}}
+
+\define lingo-base() $:/language/TiddlerInfo/
+\define config-title()
+$:/config/EditToolbarButtons/Visibility/$(listItem)$
+\end
+
+{{$:/language/ControlPanel/Appearance/Toolbars/EditToolbar/Hint}}
+
+<$set name="tw-config-toolbar-icons" value="yes">
+
+<$set name="tw-config-toolbar-text" value="yes">
+
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]" variable="listItem">
+
+<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<> field="caption"/>$checkbox>
+
+$list>
+
+$set>
+
+$set>
diff --git a/core/ui/ControlPanel/Appearance/Toolbars/PageControls.tid b/core/ui/ControlPanel/Appearance/Toolbars/PageControls.tid
new file mode 100644
index 000000000..34c45e571
--- /dev/null
+++ b/core/ui/ControlPanel/Appearance/Toolbars/PageControls.tid
@@ -0,0 +1,24 @@
+title: $:/core/ui/ControlPanel/Appearance/Toolbars/PageControls
+tags: $:/tags/ControlPanel/Appearance/Toolbars
+caption: {{$:/language/ControlPanel/Appearance/Toolbars/PageControls/Caption}}
+
+\define lingo-base() $:/language/TiddlerInfo/
+\define config-title()
+$:/config/PageControlButtons/Visibility/$(listItem)$
+\end
+
+{{$:/language/ControlPanel/Appearance/Toolbars/PageControls/Hint}}
+
+<$set name="tw-config-toolbar-icons" value="yes">
+
+<$set name="tw-config-toolbar-text" value="yes">
+
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
+
+<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<> field="caption"/>$checkbox>
+
+$list>
+
+$set>
+
+$set>
diff --git a/core/ui/ControlPanel/Appearance/Toolbars/ViewToolbar.tid b/core/ui/ControlPanel/Appearance/Toolbars/ViewToolbar.tid
new file mode 100644
index 000000000..390d1eec7
--- /dev/null
+++ b/core/ui/ControlPanel/Appearance/Toolbars/ViewToolbar.tid
@@ -0,0 +1,24 @@
+title: $:/core/ui/ControlPanel/Appearance/Toolbars/ViewToolbar
+tags: $:/tags/ControlPanel/Appearance/Toolbars
+caption: {{$:/language/ControlPanel/Appearance/Toolbars/ViewToolbar/Caption}}
+
+\define lingo-base() $:/language/TiddlerInfo/
+\define config-title()
+$:/config/ViewToolbarButtons/Visibility/$(listItem)$
+\end
+
+{{$:/language/ControlPanel/Appearance/Toolbars/ViewToolbar/Hint}}
+
+<$set name="tw-config-toolbar-icons" value="yes">
+
+<$set name="tw-config-toolbar-text" value="yes">
+
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem">
+
+<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<> field="caption"/>$checkbox>
+
+$list>
+
+$set>
+
+$set>
diff --git a/core/ui/EditTemplate/controls.tid b/core/ui/EditTemplate/controls.tid
index 93277362c..e4a574317 100644
--- a/core/ui/EditTemplate/controls.tid
+++ b/core/ui/EditTemplate/controls.tid
@@ -1,4 +1,7 @@
title: $:/core/ui/EditTemplate/controls
tags: $:/tags/EditTemplate
- <$list filter="[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]" variable="listItem"><$transclude tiddler=<>/>$list>
+\define config-title()
+$:/config/EditToolbarButtons/Visibility/$(listItem)$
+\end
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<> text="hide"><$transclude tiddler=<>/>$reveal>$list>
diff --git a/core/ui/EditToolbar/cancel.tid b/core/ui/EditToolbar/cancel.tid
index b271f158e..0f85fe724 100644
--- a/core/ui/EditToolbar/cancel.tid
+++ b/core/ui/EditToolbar/cancel.tid
@@ -1,4 +1,12 @@
-title: $:/core/ui/EditToolbar/cancel
+title: $:/core/ui/Buttons/cancel
tags: $:/tags/EditToolbar
+caption: {{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}
-<$button message="tw-cancel-tiddler" title={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class="btn-invisible">{{$:/core/images/cancel-button}}$button>
\ No newline at end of file
+<$button message="tw-cancel-tiddler" title={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<>>
+<$list filter="[prefix[yes]]">
+{{$:/core/images/cancel-button}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/Cancel/Caption}}/>
+$list>
+$button>
diff --git a/core/ui/EditToolbar/delete.tid b/core/ui/EditToolbar/delete.tid
index a8f5881d4..fd35491a9 100644
--- a/core/ui/EditToolbar/delete.tid
+++ b/core/ui/EditToolbar/delete.tid
@@ -1,4 +1,12 @@
-title: $:/core/ui/EditToolbar/delete
+title: $:/core/ui/Buttons/delete
tags: $:/tags/EditToolbar
+caption: {{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}
-<$button message="tw-delete-tiddler" title={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class="btn-invisible">{{$:/core/images/delete-button}}$button>
\ No newline at end of file
+<$button message="tw-delete-tiddler" title={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<>>
+<$list filter="[prefix[yes]]">
+{{$:/core/images/delete-button}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/Delete/Caption}}/>
+$list>
+$button>
\ No newline at end of file
diff --git a/core/ui/EditToolbar/save.tid b/core/ui/EditToolbar/save.tid
index fcd40d461..a9a889b72 100644
--- a/core/ui/EditToolbar/save.tid
+++ b/core/ui/EditToolbar/save.tid
@@ -1,4 +1,12 @@
-title: $:/core/ui/EditToolbar/save
+title: $:/core/ui/Buttons/save
tags: $:/tags/EditToolbar
+caption: {{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}
-<$button message="tw-save-tiddler" title={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class="btn-invisible">{{$:/core/images/done-button}}$button>
\ No newline at end of file
+<$button message="tw-save-tiddler" title={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<>>
+<$list filter="[prefix[yes]]">
+{{$:/core/images/done-button}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/Save/Caption}}/>
+$list>
+$button>
\ No newline at end of file
diff --git a/core/ui/PageControls/controlpanel.tid b/core/ui/PageControls/controlpanel.tid
index b0ca856e4..77783e0c8 100644
--- a/core/ui/PageControls/controlpanel.tid
+++ b/core/ui/PageControls/controlpanel.tid
@@ -1,4 +1,12 @@
-title: $:/core/ui/PageControls/control-panel
+title: $:/core/ui/Buttons/control-panel
tags: $:/tags/PageControls
+caption: {{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}
-<$button to="$:/ControlPanel" title={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class="btn-invisible">{{$:/core/images/options-button}}$button>
\ No newline at end of file
+<$button to="$:/ControlPanel" title={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=<>>
+<$list filter="[prefix[yes]]">
+{{$:/core/images/options-button}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/ControlPanel/Caption}}/>
+$list>
+$button>
diff --git a/core/ui/PageControls/home.tid b/core/ui/PageControls/home.tid
new file mode 100644
index 000000000..8e19896c9
--- /dev/null
+++ b/core/ui/PageControls/home.tid
@@ -0,0 +1,12 @@
+title: $:/core/ui/Buttons/home
+tags: $:/tags/PageControls
+caption: {{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}
+
+<$button message="tw-home" title={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<>>
+<$list filter="[prefix[yes]]">
+{{$:/core/images/home-button}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/Home/Caption}}/>
+$list>
+$button>
diff --git a/core/ui/PageControls/newtiddler.tid b/core/ui/PageControls/newtiddler.tid
index 576bdc7ad..360dd78ad 100644
--- a/core/ui/PageControls/newtiddler.tid
+++ b/core/ui/PageControls/newtiddler.tid
@@ -1,4 +1,12 @@
-title: $:/core/ui/PageControls/new-tiddler
+title: $:/core/ui/Buttons/new-tiddler
tags: $:/tags/PageControls
+caption: {{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}
-<$button message="tw-new-tiddler" title={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class="btn-invisible">{{$:/core/images/new-button}}$button>
\ No newline at end of file
+<$button message="tw-new-tiddler" title={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<>>
+<$list filter="[prefix[yes]]">
+{{$:/core/images/new-button}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/NewTiddler/Caption}}/>
+$list>
+$button>
diff --git a/core/ui/PageControls/savewiki.tid b/core/ui/PageControls/savewiki.tid
index 5e1285c54..83a4abab2 100644
--- a/core/ui/PageControls/savewiki.tid
+++ b/core/ui/PageControls/savewiki.tid
@@ -1,4 +1,12 @@
-title: $:/core/ui/PageControls/save-wiki
+title: $:/core/ui/Buttons/save-wiki
tags: $:/tags/PageControls
+caption: {{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}
-<$button message="tw-save-wiki" title={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class="btn-invisible">{{$:/core/images/save-button}}$button>
\ No newline at end of file
+<$button message="tw-save-wiki" title={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<>>
+<$list filter="[prefix[yes]]">
+{{$:/core/images/save-button}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/SaveWiki/Caption}}/>
+$list>
+$button>
\ No newline at end of file
diff --git a/core/ui/PageTemplate.tid b/core/ui/PageTemplate.tid
index 2746db82a..3ce5cad36 100644
--- a/core/ui/PageTemplate.tid
+++ b/core/ui/PageTemplate.tid
@@ -10,6 +10,8 @@ tw-page-container tw-page-view-$(themeTitle)$ tw-language-$(languageTitle)$
<$set name="tw-config-toolbar-text" value={{$:/config/Toolbar/Text}}>
+<$set name="tw-config-toolbar-class" value="btn-invisible">
+
<$set name="themeTitle" value={{$:/view}}>
<$set name="currentTiddler" value={{$:/language}}>
@@ -48,4 +50,6 @@ tw-page-container tw-page-view-$(themeTitle)$ tw-language-$(languageTitle)$
$set>
+$set>
+
$importvariables>
diff --git a/core/ui/PageTemplate/sidebar.tid b/core/ui/PageTemplate/sidebar.tid
index 6e7351728..d202db60e 100644
--- a/core/ui/PageTemplate/sidebar.tid
+++ b/core/ui/PageTemplate/sidebar.tid
@@ -1,6 +1,9 @@
title: $:/core/ui/PageTemplate/sidebar
tags: $:/tags/PageTemplate
+\define config-title()
+$:/config/PageControlButtons/Visibility/$(listItem)$
+\end
<$scrollable fallthrough="no" class="tw-sidebar-scrollable">
-
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
-
+<$reveal type="nomatch" state=<> text="hide">
<$transclude tiddler=<> mode="inline"/>
-
+$reveal>
$list>
-
<$transclude tiddler="$:/core/ui/SideBarLists" mode="inline"/>
diff --git a/core/ui/TiddlerInfo.tid b/core/ui/TiddlerInfo.tid
index eb820593b..1156b7d07 100644
--- a/core/ui/TiddlerInfo.tid
+++ b/core/ui/TiddlerInfo.tid
@@ -1,21 +1,3 @@
title: $:/core/ui/TiddlerInfo
-\define config-title()
-$:/config/Buttons/Hide/$(listItem)$
-\end
-
-<$set name="tw-config-toolbar-icons" value="yes">
-
-<$set name="tw-config-toolbar-text" value="yes">
-
-<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem">
-
-<$transclude tiddler=<>/> (<$checkbox tiddler=<> field="text" checked="no" unchecked="yes" default="no"> Show in toolbar$checkbox>)
-
-$list>
-
-$set>
-
-$set>
-
-<>
+<>
diff --git a/core/ui/TiddlerInfo/Tools.tid b/core/ui/TiddlerInfo/Tools.tid
new file mode 100644
index 000000000..7fb69bdde
--- /dev/null
+++ b/core/ui/TiddlerInfo/Tools.tid
@@ -0,0 +1,26 @@
+title: $:/core/ui/TiddlerInfo/Tools
+tags: $:/tags/TiddlerInfo
+caption: {{$:/language/TiddlerInfo/Tools/Caption}}
+
+\define lingo-base() $:/language/TiddlerInfo/
+\define config-title()
+$:/config/ViewToolbarButtons/Visibility/$(listItem)$
+\end
+
+<$set name="tw-config-toolbar-icons" value="yes">
+
+<$set name="tw-config-toolbar-text" value="yes">
+
+<$set name="tw-config-toolbar-class" value="">
+
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem">
+
+<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<>/> $checkbox>
+
+$list>
+
+$set>
+
+$set>
+
+$set>
diff --git a/core/ui/ViewTemplate/title.tid b/core/ui/ViewTemplate/title.tid
index d24c9f11f..492eb248c 100644
--- a/core/ui/ViewTemplate/title.tid
+++ b/core/ui/ViewTemplate/title.tid
@@ -5,12 +5,12 @@ tags: $:/tags/ViewTemplate
fill:$(foregroundColor)$;
\end
\define config-title()
-$:/config/Buttons/Hide/$(listItem)$
+$:/config/ViewToolbarButtons/Visibility/$(listItem)$
\end
-<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<> text="yes"><$transclude tiddler=<>/>$reveal>$list>
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<> text="hide"><$transclude tiddler=<>/>$reveal>$list>
<$set name="foregroundColor" value={{!!color}}>
>>
diff --git a/core/ui/ViewToolbar/clone.tid b/core/ui/ViewToolbar/clone.tid
index 7e4899e1a..2dbfcf37e 100644
--- a/core/ui/ViewToolbar/clone.tid
+++ b/core/ui/ViewToolbar/clone.tid
@@ -1,7 +1,8 @@
-title: $:/core/ui/ViewToolbar/clone
+title: $:/core/ui/Buttons/clone
tags: $:/tags/ViewToolbar
+caption: {{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}
-<$button message="tw-new-tiddler" param=<> title={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class="btn-invisible">
+<$button message="tw-new-tiddler" param=<> title={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<>>
<$list filter="[prefix[yes]]">
{{$:/core/images/clone-button}}
$list>
diff --git a/core/ui/ViewToolbar/close-others.tid b/core/ui/ViewToolbar/close-others.tid
index 2cd3789a4..a0196c242 100644
--- a/core/ui/ViewToolbar/close-others.tid
+++ b/core/ui/ViewToolbar/close-others.tid
@@ -1,7 +1,8 @@
-title: $:/core/ui/ViewToolbar/close-others
+title: $:/core/ui/Buttons/close-others
tags: $:/tags/ViewToolbar
+caption: {{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}
-<$button message="tw-close-other-tiddlers" param=<> title={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class="btn-invisible">
+<$button message="tw-close-other-tiddlers" param=<> title={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<>>
<$list filter="[prefix[yes]]">
{{$:/core/images/close-others-button}}
$list>
diff --git a/core/ui/ViewToolbar/close.tid b/core/ui/ViewToolbar/close.tid
index ac2468baa..957be1f11 100644
--- a/core/ui/ViewToolbar/close.tid
+++ b/core/ui/ViewToolbar/close.tid
@@ -1,7 +1,8 @@
-title: $:/core/ui/ViewToolbar/close
+title: $:/core/ui/Buttons/close
tags: $:/tags/ViewToolbar
+caption: {{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}
-<$button message="tw-close-tiddler" title={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class="btn-invisible">
+<$button message="tw-close-tiddler" title={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<>>
<$list filter="[prefix[yes]]">
{{$:/core/images/close-button}}
$list>
diff --git a/core/ui/ViewToolbar/edit.tid b/core/ui/ViewToolbar/edit.tid
index 38cfa3220..aa21e6675 100644
--- a/core/ui/ViewToolbar/edit.tid
+++ b/core/ui/ViewToolbar/edit.tid
@@ -1,7 +1,8 @@
-title: $:/core/ui/ViewToolbar/edit
+title: $:/core/ui/Buttons/edit
tags: $:/tags/ViewToolbar
+caption: {{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}
-<$button message="tw-edit-tiddler" title={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class="btn-invisible">
+<$button message="tw-edit-tiddler" title={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<>>
<$list filter="[prefix[yes]]">
{{$:/core/images/edit-button}}
$list>
diff --git a/core/ui/ViewToolbar/info.tid b/core/ui/ViewToolbar/info.tid
index faa4189a1..8d000023c 100644
--- a/core/ui/ViewToolbar/info.tid
+++ b/core/ui/ViewToolbar/info.tid
@@ -1,7 +1,8 @@
-title: $:/core/ui/ViewToolbar/info
+title: $:/core/ui/Buttons/info
tags: $:/tags/ViewToolbar
+caption: {{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}
-<$button popup=<> title={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class="btn-invisible" selectedClass="tw-selected">
+<$button popup=<> title={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<> selectedClass="tw-selected">
<$list filter="[prefix[yes]]">
{{$:/core/images/info-button}}
$list>
diff --git a/core/ui/ViewToolbar/more.tid b/core/ui/ViewToolbar/more.tid
new file mode 100644
index 000000000..1ea0c95f2
--- /dev/null
+++ b/core/ui/ViewToolbar/more.tid
@@ -0,0 +1,29 @@
+title: $:/core/ui/Buttons/more
+tags: $:/tags/ViewToolbar
+caption: {{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}
+
+\define config-title()
+$:/config/ViewToolbarButtons/Visibility/$(listItem)$
+\end
+<$button popup=<> title={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<> selectedClass="tw-selected">
+<$list filter="[prefix[yes]]">
+{{$:/core/images/down-arrow}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/More/Caption}}/>
+$list>
+$button>
+<$reveal state=<> type="popup" position="below" animate="yes">
+
+<$set name="tw-config-toolbar-icons" value="yes">
+<$set name="tw-config-toolbar-text" value="yes">
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more]]" variable="listItem">
+<$reveal type="match" state=<> text="hide">
+<$transclude tiddler=<>/>
+$reveal>
+$list>
+$set>
+$set>
+
+$reveal>
+
diff --git a/core/ui/ViewToolbar/permalink.tid b/core/ui/ViewToolbar/permalink.tid
index 6ef6810b1..aa5a0d959 100644
--- a/core/ui/ViewToolbar/permalink.tid
+++ b/core/ui/ViewToolbar/permalink.tid
@@ -1,7 +1,8 @@
-title: $:/core/ui/ViewToolbar/permalink
+title: $:/core/ui/Buttons/permalink
tags: $:/tags/ViewToolbar
+caption: {{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}
-<$button message="tw-permalink" title={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class="btn-invisible">
+<$button message="tw-permalink" title={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<>>
<$list filter="[prefix[yes]]">
{{$:/core/images/permalink-button}}
$list>
diff --git a/core/ui/ViewToolbar/permaview.tid b/core/ui/ViewToolbar/permaview.tid
index 137d4e8c5..83a6246d0 100644
--- a/core/ui/ViewToolbar/permaview.tid
+++ b/core/ui/ViewToolbar/permaview.tid
@@ -1,7 +1,8 @@
-title: $:/core/ui/ViewToolbar/permaview
-tags: $:/tags/ViewToolbar
+title: $:/core/ui/Buttons/permaview
+tags: $:/tags/ViewToolbar $:/tags/PageControls
+caption: {{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}
-<$button message="tw-permaview" title={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class="btn-invisible">
+<$button message="tw-permaview" title={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<>>
<$list filter="[prefix[yes]]">
{{$:/core/images/permaview-button}}
$list>
diff --git a/core/wiki/config/ButtonsHide.multids b/core/wiki/config/ButtonsHide.multids
deleted file mode 100644
index a0d09f8c9..000000000
--- a/core/wiki/config/ButtonsHide.multids
+++ /dev/null
@@ -1,6 +0,0 @@
-title: $:/config/Buttons/Hide/$:/
-
-core/ui/ViewToolbar/permalink: yes
-core/ui/ViewToolbar/permaview: yes
-core/ui/ViewToolbar/close-others: yes
-core/ui/ViewToolbar/clone: yes
diff --git a/core/wiki/config/PageControlButtons.multids b/core/wiki/config/PageControlButtons.multids
new file mode 100644
index 000000000..c3a4a8e6b
--- /dev/null
+++ b/core/wiki/config/PageControlButtons.multids
@@ -0,0 +1,4 @@
+title: $:/config/PageControlButtons/Visibility/$:/
+
+core/ui/Buttons/home: hide
+core/ui/Buttons/permaview: hide
diff --git a/core/wiki/config/ViewToolbarButtons.multids b/core/wiki/config/ViewToolbarButtons.multids
new file mode 100644
index 000000000..0b3cc743d
--- /dev/null
+++ b/core/wiki/config/ViewToolbarButtons.multids
@@ -0,0 +1,7 @@
+title: $:/config/ViewToolbarButtons/Visibility/$:/
+
+core/ui/Buttons/clone: hide
+core/ui/Buttons/close-others: hide
+core/ui/Buttons/more: hide
+core/ui/Buttons/permalink: hide
+core/ui/Buttons/permaview: hide
diff --git a/core/wiki/tags/EditToolbar.tid b/core/wiki/tags/EditToolbar.tid
index 96d595b9b..29001a8de 100644
--- a/core/wiki/tags/EditToolbar.tid
+++ b/core/wiki/tags/EditToolbar.tid
@@ -1,2 +1,2 @@
title: $:/tags/EditToolbar
-list: [[$:/core/ui/EditToolbar/delete]] [[$:/core/ui/EditToolbar/cancel]] [[$:/core/ui/EditToolbar/save]]
+list: [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]
diff --git a/core/wiki/tags/PageControls.tid b/core/wiki/tags/PageControls.tid
index 94f4fee0c..e1bca558f 100644
--- a/core/wiki/tags/PageControls.tid
+++ b/core/wiki/tags/PageControls.tid
@@ -1,2 +1,2 @@
title: $:/tags/PageControls
-list: [[$:/core/ui/PageControls/new-tiddler]] [[$:/core/ui/PageControls/control-panel]] [[$:/core/ui/PageControls/save-wiki]]
+list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/save-wiki]]
diff --git a/core/wiki/tags/TiddlerInfo.tid b/core/wiki/tags/TiddlerInfo.tid
index 910fc96a4..dc8ff2e49 100644
--- a/core/wiki/tags/TiddlerInfo.tid
+++ b/core/wiki/tags/TiddlerInfo.tid
@@ -1,3 +1,3 @@
title: $:/tags/TiddlerInfo
-list: [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]
+list: [[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]
diff --git a/core/wiki/tags/ViewToolbar.tid b/core/wiki/tags/ViewToolbar.tid
index e64d0c90f..75850e27a 100644
--- a/core/wiki/tags/ViewToolbar.tid
+++ b/core/wiki/tags/ViewToolbar.tid
@@ -1,2 +1,2 @@
title: $:/tags/ViewToolbar
-list: [[$:/core/ui/ViewToolbar/info]] [[$:/core/ui/ViewToolbar/edit]] [[$:/core/ui/ViewToolbar/close]]
+list: [[$:/core/ui/Buttons/more]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]]
diff --git a/editions/tw5.com/tiddlers/system/github-fork-ribbon.tid b/editions/tw5.com/tiddlers/system/github-fork-ribbon.tid
index 027994b53..5d9c7e385 100644
--- a/editions/tw5.com/tiddlers/system/github-fork-ribbon.tid
+++ b/editions/tw5.com/tiddlers/system/github-fork-ribbon.tid
@@ -1,5 +1,6 @@
title: $:/editions/tw5.com/github-fork-ribbon
-tags: $:/tags/PageTemplate
+tags: $:/tags/PageControls
+caption: ~GitHub ribbon
\ No newline at end of file
diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid
index 508bbfca7..86d434828 100644
--- a/themes/tiddlywiki/vanilla/base.tid
+++ b/themes/tiddlywiki/vanilla/base.tid
@@ -234,6 +234,10 @@ a.tw-tiddlylink-external:hover {
** Buttons
*/
+button svg {
+ vertical-align: middle;
+}
+
.btn-invisible {
padding: 0;
margin: 0;
@@ -276,6 +280,7 @@ a.tw-tiddlylink-external:hover {
.tw-image-button {
height: 1em;
+ width: 1em;
}
/*
@@ -378,10 +383,6 @@ a.tw-tiddlylink-external:hover {
width: 60%;
}
-.tw-search {
- padding-top: 14px;
-}
-
.tw-search a svg {
height: 0.75em;
}
@@ -392,6 +393,11 @@ a.tw-tiddlylink-external:hover {
.tw-page-controls {
margin-top: 14px;
+ font-size: 1.5em;
+}
+
+.tw-page-controls button {
+ margin-right: 0.5em;
}
.tw-page-controls a.tw-tiddlylink:hover {
@@ -399,9 +405,6 @@ a.tw-tiddlylink-external:hover {
}
.tw-page-controls svg {
- height: 1.75em;
- min-width: 1px;
- padding-right: 0.5em;
fill: <>;
}
@@ -603,8 +606,11 @@ a.tw-tiddlylink-external:hover {
float: right;
}
+.tw-tiddler-controls .tw-drop-down {
+ font-size: 0.6em;
+}
+
.tw-tiddler-controls button {
- margin: 0 0 0 5px;
vertical-align: baseline;
}
@@ -844,16 +850,26 @@ canvas.tw-edit-bitmapeditor {
white-space: nowrap;
}
+.tw-drop-down button svg {
+ fill: <>;
+}
+
+.tw-drop-down button.btn-invisible:hover svg {
+ fill: <>;
+}
+
.tw-drop-down p {
padding: 0 14px 0 14px;
}
-.tw-drop-down a {
+.tw-drop-down a, .tw-drop-down button {
display: block;
padding: 0 14px 0 14px;
+ width: 100%;
+ text-align: left;
}
-.tw-drop-down a:hover {
+.tw-drop-down a:hover, .tw-drop-down button:hover {
color: <>;
background-color: <>;
text-decoration: none;