Releases: swiftDialog/swiftDialog
swiftDialog 2.3.0 Markdown validation release
This is a release for Mac admins and developers of tools that use swiftDialog as the user interaction layer to validate markdown and message formatting due to updates in the MarkdownUI package. The intent is to gather information and test the upcoming changes with how markdown is rendered and either fix issues or document behavioural changes so management scripts and tools can accomodate the updated formatting.
🚨This is not a beta release and does not represent the complete list of changes that will be present in the final v2.3.0 release🚨
Changes in this release so far:
- Minimum requirements macOS 12+
- 💥 Breaking change 💥 Markdown UI updated to v2.1.0
- This is a biggie. The way message text is rendered is all new. As a consequence
--messagefont
currently does not support changing the font family/name and support for changing font colour will not affect all markdown blocks, e.g. code blocks and some heading styles.
- This is a biggie. The way message text is rendered is all new. As a consequence
--message
can accept a local or remote (http) markdown file for describing the message- How it does this is fairly simple in that it looks for
.md
as the last three characters of the message string and then acts accordingly. If a regular message ends in.md
for some reason it will be interpreted as a file.
- How it does this is fairly simple in that it looks for
- Using
--icon none
with--infobox
present will no longer hide the info box - Processing of images (local, http) is now performed asynchronously which should result in better performance now that we aren't waiting on image resources on the main thread
🚨**Known issues:**🚨
- Text within a message will not allow you to select the entire message. This is because behind the scenes each element, even if it's just moving from one paragraph to the next, is rendered as a seperate view and SwiftUI does not currently allow text selections across multiple views.
- using
--centreicon
with--infobox
may result in odd looking dialogs. Beauty is in the eye of the beholder. --bannerimage
may result in not filling the entire frame if the banner image height to width ratio is low (i.e. a long skinny image)--background
image no longer re-sizes the dialog window to fit the image and will always use either fit or fill
swiftDialog v2.2.1
- Fixes an issue with overlay icons and how they are displayed when a SF Symbol is used as the main icon
- Fixes an issue where built in
caution
,warning
andinfo
icon names would result in a[?]
icon when used as an overlay #264 - Updates checkbox display to only display as scrollable when using
--checkboxstyle switch
swiftDialog 2.2
What's New
-
Select lists (aka drop down lists) can now be tagged as required via a property on
--selecttitle
#240--selecttitle "This one is required",required --selecttitle "This one is not"
-
New option
--checkboxstyle
option, arguments arecheckbox
orswitch
. Sets the checkbox style to use switch style or checkbox styleswitch
style has additional options, large, regular, small, mini.switch
style also allows for display of icons- All options are available via command line arguments or json
--checkboxstyle "<style>"
-
Select lists can now be displayed as radio buttons using the
radio
modifier on--selecttitle
- e.g.
--selecttitle "Test list",radio --selectvalues "Item One, Item Two, Item Three"
- e.g.
-
Select lists can have dividers within the list by adding
---
as a value wherever one is required -
Labels on input fields such as textfields, select lists and checkboxes are no longer bold. All user input areas have a subtle background
More New Stuff
- New
helpmessage
command to update help message text from the command file #248echo "helpmessage: Updated message to be displayed in the help sheet" >> /var/tmp/dialog.log
- New
activate
command to bring swiftDialog to the front #221echo "activate:" >> /var/tmp/dialog.log
- New option
--iconalpha
can set an alpha value for--icon
. Values are from 0.0 (transparent) to 1.0 (opaque)--iconalpha 0.5
echo "iconalpha: 0.5" >> /var/tmp/dialog.log
- Progress bar can be shown while displaying a video or image or pretty much any time
Other Changes
- Label and input font size will change proportionally with
--messagefont
- Simplified overlay icon view. It now uses the same view as icon with the only addition of the background layer for SF symbols
- Fixed an issue when resetting required field alert state
- Fixed an issue where multiple required fields were not represented in the error sheet
- Added some additional logic to notification authorisation detection to print more useful authorisation state
- Updated - Added ability to specify multiple files for on textfields #260
- Updated log function (more logging will be added over time)
- Cleaned up a bunch of old commented out code and other boring code stuff
- Fixed - fallback error image for banners #239 #217
- Fixed -
--quitkey
not functioning in --mini mode is fixed #253 - Updated
--help
. With no arguments help lists all options and a brief note.--help <option>
will give detailed information on that option--help checkboxstyle
- Updated -
--messageposition
now works for top centre and bottom to position the message elements vertically. - Updated -
--blurscreen
blurs all spaces as well as all screens on multi monitor setups - Updated - Main dialog window is movable (when enabled) by clicking anywhere on the window instead of clicking the non-visible title bar
The pkg for this release is now distribution style ( #250 ) so can be deployed as a pre-stage package without modification. This makes it easier to deploy and run at the setup assistant - how to do that reliably at the time you want it to run is an exercise left to the reader
swiftDialog 2.2 Preview 3
- Added ability to specify multiple files for on textfields #260
- Updated help for
--textfield
to mentionfileselect
andfiletype
modifiers - Removed third party package "ScrollViewIfNeeded" in favour of a simpler extension.
- everything from Preview 1 and Preview 2
swiftDialog 2.2 Preview 2
Preview releases are intended for process and workflow validation
Please report any issues with function, UI, UX, spelling, behaviour etc as well as any feature suggestions by creating a new issue using one of the templates provided.
swiftDialog 2.2 Preview 2
Visible changes
- Checkboxes using the
switch
style will appear in a scrollview - Labels on input fields such as textfields, select lists and checkboxes are no longer bold. All user input areas have a subtle background
- Label and input font size will change proportionally with
--messagefont
- Select lists can now be displayed as radio buttons using the
radio
modifier on--selecttitle
- Select lists can have dividers within the list by adding
---
as a value wherever one is required
Other changes
- Simplified overlay icon view. It now uses the same view as icon with the only addition of the background layer for SF symbols
- Fixed an issue when resetting required field alert state
- Fixed an issue where multiple required fields were not represented in the error sheet
- Added some additional logic to notification authorisation detection to print more useful authorisation state
- Updated log function (more logging will be added over time)
- Cleaned up a bunch of old commented out code and other boring code stuff
Plus all the things in swiftDialog 2.2 Preview 1
swiftDialog 2.2 Preview 1
This is a Preview release intended for process and workflow validation
Please report any issues with function, UI, UX, spelling, behaviour etc as well as any feature suggestions by creating a new issue
Changes in this release:
-
New
helpmessage
command to update help message text from the command fileecho "helpmessage: Updated message to be displayed in the help sheet" >> /var/tmp/dialog.log
-
New
activate
command to bring swiftDialog to the frontecho "activate:" >> /var/tmp/dialog.log
-
New option
--iconalpha
can set an alpha value for--icon
. Values are from 0.0 (transparent) to 1.0 (opaque)--iconalpha 0.5
echo "iconalpha: 0.5" >> /var/tmp/dialog.log
-
New - Progress bar can be shown while displaying a video or image or pretty much any time
-
New option
--checkboxstyle
option, arguments arecheckbox
orswitch
. Sets the checkbox style to use switch style or checkbox styleswitch
style has additional options, large, regular, small, mini.switch
style also allows for display of icons- All options are available via command line arguments or json
--checkboxstyle "<style>"
-
Updated - checkbox area now has a background shade and multiple checkboxes are delineated with a line
-
Updated - select lists (aka drop down lists) can now be tagged as required via a property on
--selecttitle
--selecttitle "This one is required",required --selecttitle "This one is not"
-
Fixed - fallback error image for banners
-
Fixed -
--quitkey
not functioning in --mini mode is fixed -
Updated
--help
. With no arguments help lists all options and a brief note.--help <option>
will give detailed information on that option--help checkboxstyle
-
Updated -
--messageposition
now works for top centre and bottom to position the message elements vertically. -
Updated -
--blurscreen
blurs all spaces as well as all screens on multi monitor setups -
Updated - Main dialog window is movable (when enabled) by clicking anywhere on the window instead of clicking the non-visible title bar
The pkg for this release is now distribution style so can be deployed as a pre-stage package without modification. This makes it easier to deploy and run at the setup assistant - how to do that reliably at the time you want it to run is an exercise left to the reader
swiftDialog 2.1
What's New
Info Box
The info box is the area underneath where --icon is displayed using a secondary shade and is useful for displaying any incidental information like system information. wiki
Help Messages
Help messages can be a way to provide extra detail if needed without taking up additional dialog space wiki
Title text within the banner area
Using this command you can opt to display title text within the banner wiki
Fixes:
- updated /usr/local/bin/dialog launcher. This will determine the current user and run as the user, if launched as root. This fixes a number of issues around running UI apps as a non-user account such as respecting language, accent colour preferences and viewing of some web content (particularly videos). If you are referencing /Library/Application Support/Dialog/Dialog.app directly in your scripts this change will have no effect and you will need to manage the launch environment yourself. this addresses issues #206 and #203.
- Fixes an issue where textfields were not handling quotation marks in the output (issue #207)
- Fixes an issue in v2.0+ where images could not be changed in a running dialog (issue #205)
- Fixes an issue when a message is being displayed that causes the default button to not initially respond to a press of the {Enter} key.
- Fixes a condition that would cause a crash if a http image resource failed to download. issue #208 (should be noted that when using http sources for image assets, redirects are not followed)
Other New Stuff:
--button2disable
- Allow for disabling of button2 (and subsequent control via command file commands) #193- textfields can be specified to have default text using the
value=
modifier, e.g.--textfield "Test",value="Some text"
(seperate fromprompt
, this text will pre-populate the field with user editable content) #212 - additional languages Spanish and Finnish (help requested for verifying the results of google translate for these additions)
- some changes to
--builder
mode including processing to generate text colour and multi language support. This feature is still alpha release state (help requested for verifying the results of google translate for UI labels for all languages) - updated license from the BSD/MIT like variant to an MIT license in accordance with my employers recommendation for these types of open source projects
Full Changelog: v2.0.1...v2.1.0
swiftDialog 2.1 RC 3
Fix up some issues with how progress bars are interacted with
progress: increment
should now properly increment by 1. optionallyprogress: increment NN
will increment by some valueNN
from the current position (e.g. if progress is at 25,progress: increment 10
will move the progress indicator to 35)- Fix issues with progress text and progress bar behaviour #220
- Bonus feature -
progress: 0
,progress: indeterminate
orprogress: reset
will re-enable an indeterminate linear progress bar. - Some additional keywords for showing and hiding a progress bar via
progress: ...
commands.create
orshow
make the progress bar visible,delete
,remove
orhide
make it go away.
v2.1.0RC2
swiftDialog 2.1 RC 2
Changes since RC1
- Fix issue where progresstext was not being updated correctly #218
--infobox
can be updated from the command file #211- when specifying SF Symbols, case of the command is ignored (so
SF=
orsf=
are both valid) - add frame buffer when using an SF symbol as an icon to remain visually consistent with other icon assets (e.g. png or app bundles)
- fix issue when reading in position via json
- fix issue where a null listitem array specified via json would display an empty listitem. listitems now only show in this scenario if the listitem array is not empty.
Full Changelog: v2.1.0RC1...v2.1.0RC2
swiftDialog 2.1.0 RC 1
Fixes:
- updated /usr/local/bin/dialog launcher. This will determine the current user and run as the user, if launched as root. This fixes a number of issues around running UI apps as a non-user account such as respecting language, accent colour preferences and viewing of some web content (particularly videos). If you are referencing /Library/Application Support/Dialog/Dialog.app directly in your scripts this change will have no effect and you will need to manage the launch environment yourself. this addresses issues #206 and #203.
- Fixes an issue where textfields were not handling quotation marks in the output (issue #207)
- Fixes an issue in v2.0+ where images could not be changed in a running dialog (issue #205)
- Fixes an issue when a message is being displayed that causes the default button to not initially respond to a press of the {Enter} key.
- Fixes a condition that would cause a crash if a http image resource failed to download. issue #208 (should be noted that when using http sources for image assets, redirects are not followed)
New Stuff:
--button2disable
- Allow for disabling of button2 (and subsequent control via command file commands) #193--bannertext
- Allow for title text to be displayed on top of banner images. Optional modifier--titlefont shadow=1
to add a drop shadow to the text. #192--helpmessage
- Adds a help button next to the default button. The contents of (markdown supported) will appear in a popover sheet when clicked. #190 (kinda - not exactly what was being asked for but I'm open to discussion on the implementation)- textfields can be specified to have default text using the
value=
modifier, e.g.--textfield "Test",value="Some text"
(seperate fromprompt
, this text will pre-populate the field with user editable content) #212 --infobox
- Adds an area above the info text (or below the icon when displayed) - #211- additional languages Spanish and Finnish (help requested for verifying the results of google translate for these additions)
- some changes to
--builder
mode including processing to generate text colour and multi language support. This feature is still alpha release state (help requested for verifying the results of google translate for UI labels for all languages)