@ozgurgunes/sketch-plugin-ui

0.5.0 • Public • Published

Sketch Plugin UI

Simple UI functions for Sketch plugins. Provides preset status messages and dialog windows with accessories and scroll views.

Installation

npm i @ozgurgunes/sketch-plugin-ui

Usage

Show a Simple Message with the Command Name

My Plugin Command: Hello Wold!

import { showMessage } from '@ozgurgunes/sketch-plugin-ui'

showMessage('Hello Wold!')

Show a Message with Check Mark Button Emoji

  My Plugin Command: It works!

import { successMessage } from '@ozgurgunes/sketch-plugin-ui'

successMessage('It works!')

Show a Message with Warning Emoji

⚠️   My Plugin Command: Something gone bad!

import { errorMessage } from '@ozgurgunes/sketch-plugin-ui'

errorMessage('Something gone bad!')

Show a Dialog

Plugin icon, command name as title and an "OK" button.

import { alert } from '@ozgurgunes/sketch-plugin-ui'

alert('Click OK to close this dialog.').runModal()

Show a Sheet

Attach alert as a sheet to given document.

import { alert } from '@ozgurgunes/sketch-plugin-ui'

alert('Click OK to close this dialog.').runSheet(context.document)

Get User Input

An autocomplete combo box, which user can pick an option or type new one.

import {
  comboBox,
  alert,
  errorMessage,
  successMessage,
} from "@ozgurgunes/sketch-plugin-ui"

var buttons = ["OK", "Cancel"]
var info = "Please type or pick something in the combo box."
var options = ["An option", "Another option"]
var accessory = comboBox(options)
var response = alert(info, buttons, accessory).runModal()
var result = accessory.stringValue()
if (response === 1000) {
  if (!result.length() > 0) {
    // User clicked "OK" without entering anything.
    errorMessage("You didn't enter anything.")
  } else {
    successMessage('You entered "' + result + '"')
  }
}

Get User Selection:

A scrollable checkbox list with an additional Select All button.

import {
  optionList,
  scrollView,
  alert,
  errorMessage,
  successMessage
} from '@ozgurgunes/sketch-plugin-ui'

var buttons = ['Select', 'Cancel', 'Select All']
var info = 'Please select options.'
var options = ['An option', 'Another option']
var list = optionList(options)
var accessory = scrollView(list.view)
var response = alert(info, buttons, accessory).runModal()

if (response === 1002) {
  // User clicked to "Select All".
  // Get a confirmation before selecting all.
  var message = 'Are you sure?'
  info = 'All options will be deleted!'
  buttons = ['Select All', 'Cancel']
  var confirmed = alert(info, buttons, null, message).runModal()
  if (confirmed === 1000) {
    // User is sure to select all.
    list.options.map(option => option.setState(true))
    successMessage('All ' + options.length + ' option selected.')
  }
}

if (response === 1000) {
  if (list.getSelection().length == 0) {
    // User clicked to "Select" button, without selecting any option.
    errorMessage('Nothing selected.')
  } else {
    successMessage(list.getSelection().length + ' options selected.')
  }
}

Functions

Typedefs

showMessage(text, [status], [document])

Shows a temporary message at the bottom of the document. Message starts with the running command name.

Kind: global function

Param Type Description
text string The message to show.
[status] 'error' | 'success' Puts an emoji before the command name (⚠️ or ).
[document] Document The document which the message will be shown in. Default is context.document

errorMessage(text, [document])

Shows a message with error status.

Kind: global function

Param Type Description
text string The message to show.
[document] Document The document which the message will be shown in. Default is context.document

successMessage(text, [document])

Shows a message with success status.

Kind: global function

Param Type Description
text string The message to show.
[document] Document The document which the message will be shown in. Default is context.document

alert(info, [accessory], [buttons], [message], [type]) ⇒ NSAlert

An alert with a combination of message, information text, buttons, and accessories.

Kind: global function
Returns: NSAlert - A preset NSAlert with a runSheet method attached.

Param Type Description
info string The message to show in dialog.
[accessory] object An AppKit view or control to place in dialog for user inputs.
[buttons] Array.<string> Buttons to display in dialog for user actions. Default is ['OK']
[message] string Title of dialog message. Default is context.command.name()
[type] number Indicates the alert’s severity level. Default is 0

alert.runSheet([document])

Runs the alert modally as a sheet attached to the specified window.

Kind: static method of alert

Param Type Description
[document] Document The document which to display the sheet on window. Default is context.document

inputLabel(text, [frame], [size], [bold]) ⇒ NSTextField

Simple text label for input fields.

Kind: global function
Returns: NSTextField - Uneditable text field to display.

Param Type Description
text string The label text to display.
[frame] NSRect The rectangle of the text field, specified in points in the coordinate space of the enclosing view. Default is NSMakeRect(0, 0, 240, 18)
[size] number The font size of the text. Default is NSFont.systemFontSize()
[bold] boolean Specifies whether display the text bold. Default is false

textField([initial], [frame]) ⇒ NSTextField

Returns a text input accessory.

Kind: global function
Returns: NSTextField - Text input with initial value.

Param Type Description
[initial] string Default input text.
[frame] NSRect The rectangle of the control, specified in points in the coordinate space of the enclosing view. Default is NSMakeRect(0, 0, 240, 25)

comboBox(items, [frame]) ⇒ NSComboBox

Returns an editable, autocomplete combo box accessory.

Kind: global function
Returns: NSComboBox - Combo box with options.

Param Type Description
items Array.<string> Options to be listed in combo box.
[frame] NSRect The rectangle of the control, specified in points in the coordinate space of the enclosing view. Default is NSMakeRect(0, 0, 240, 25)

popUpButton(items, [frame]) ⇒ NSPopUpButton

Returns a pop up button accessory.

Kind: global function
Returns: NSPopUpButton - Pop up button with options.

Param Type Description
items Array.<string> Options to be listed in pop up button.
[frame] NSRect The rectangle of the control, specified in points in the coordinate space of the enclosing view. Default is NSMakeRect(0, 0, 240, 25)

slider(options, [frame]) ⇒ NSSlider

Returns a slider accessory with tick marks for given range.

Kind: global function
Returns: NSSlider - Slider with given range.

Param Type Description
options Object Properties of the slider.
[frame] NSRect The rectangle of the control, specified in points in the coordinate space of the enclosing view. Default is NSMakeRect(0, 0, 240, 25)

Properties

Name Type Description
[options.minValue] number Minimum selectable value of slider. Default is 1
[options.maxValue] number Maximum selectable value of slider. Default is 10
[options.initialValue] number Initial selected value of slider. Default is 1

scrollView(documentView, [frame], [horizontal], [vertical]) ⇒ NSView

Returns a vertically scrollable accessory with given view.

Kind: global function
Returns: NSView - View with scrollable content.

Param Type Description
documentView NSView The view the scroll view scrolls within its content view.
[frame] NSRect The rectangle of the scroll view. Default is NSMakeRect(0, 0, 320, 120)
[horizontal] boolean A Boolean that indicates whether the scroll view has a horizontal scroller. Default is false
[vertical] boolean A Boolean that indicates whether the scroll view has a vertical scroller. Default is true

optionList(items, [width]) ⇒ CheckboxList

Returns a checkbox list accessory of options.

Kind: global function
Returns: CheckboxList - List of options.

Param Type Description
items Array.<string> Options to be listed with checkboxes.
[width] number Width of the options. Default is 320

textList(items, [width]) ⇒ NSView

Returns a text list accesory.

Kind: global function
Returns: NSView - List of items.

Param Type Description
items Array.<string> Options to be listed in scroll view.
[width] number Width of the list items. Default is 320

CheckboxList : Object

A dictionary of required components to get user selection.

Kind: global typedef
Properties

Name Type Description
options Array.<NSButton> List of checkboxes.
view NSView View of options.
getSelection function Returns indexes of selected options.

Package Sidebar

Install

npm i @ozgurgunes/sketch-plugin-ui

Weekly Downloads

0

Version

0.5.0

License

MIT

Unpacked Size

24.3 kB

Total Files

6

Last publish

Collaborators

  • ozgurgunes