@leaflink/stash 42.8.1 β†’ 43.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +1 -1
  2. package/dist/AddressSelect.js +9 -10
  3. package/dist/AddressSelect.js.map +1 -1
  4. package/dist/Alert.js +9 -9
  5. package/dist/Alert.js.map +1 -1
  6. package/dist/AppSidebar.js +11 -11
  7. package/dist/AppSidebar.js.map +1 -1
  8. package/dist/Avatar.js +33 -32
  9. package/dist/Avatar.js.map +1 -1
  10. package/dist/Avatar.vue.d.ts +16 -95
  11. package/dist/Badge.js +2 -2
  12. package/dist/Badge.js.map +1 -1
  13. package/dist/Checkbox.js +4 -4
  14. package/dist/Checkbox.js.map +1 -1
  15. package/dist/{Checkbox.vue_vue_type_style_index_0_scoped_0cd31c8f_lang-4ed993c7.js β†’ Checkbox.vue_vue_type_style_index_0_scoped_0d7e7fd0_lang-4ed993c7.js} +1 -1
  16. package/dist/Checkbox.vue_vue_type_style_index_0_scoped_0d7e7fd0_lang-4ed993c7.js.map +1 -0
  17. package/dist/Chip.js +32 -30
  18. package/dist/Chip.js.map +1 -1
  19. package/dist/Chip.vue.d.ts +16 -95
  20. package/dist/ConfirmationCodeInput.js +23 -23
  21. package/dist/ConfirmationCodeInput.js.map +1 -1
  22. package/dist/ContextSwitcher.js +2 -2
  23. package/dist/ContextSwitcher.js.map +1 -1
  24. package/dist/Copy.js +1 -1
  25. package/dist/Copy.js.map +1 -1
  26. package/dist/DataView.js +1 -1
  27. package/dist/DataViewFilters.js +23 -24
  28. package/dist/DataViewFilters.js.map +1 -1
  29. package/dist/DataViewSortButton.js +11 -11
  30. package/dist/DataViewSortButton.js.map +1 -1
  31. package/dist/DataViewToolbar.js +1 -1
  32. package/dist/Dialog.js +10 -10
  33. package/dist/Dialog.js.map +1 -1
  34. package/dist/Dropdown.js +7 -7
  35. package/dist/Dropdown.js.map +1 -1
  36. package/dist/FilterChip.js +2 -3
  37. package/dist/FilterChip.js.map +1 -1
  38. package/dist/FilterDrawerItem.js +5 -6
  39. package/dist/FilterDrawerItem.js.map +1 -1
  40. package/dist/FilterDropdown.js +3 -4
  41. package/dist/FilterDropdown.js.map +1 -1
  42. package/dist/FilterSelect.js +26 -27
  43. package/dist/FilterSelect.js.map +1 -1
  44. package/dist/Filters.js +3 -4
  45. package/dist/Filters.js.map +1 -1
  46. package/dist/HttpError.js +18 -18
  47. package/dist/HttpError.js.map +1 -1
  48. package/dist/IconLabel.js +12 -13
  49. package/dist/IconLabel.js.map +1 -1
  50. package/dist/IconLabel.vue.d.ts +9 -75
  51. package/dist/Illustration.js +1 -1
  52. package/dist/Illustration.js.map +1 -1
  53. package/dist/Illustration.vue.d.ts +19 -14
  54. package/dist/InputOptions.js +7 -8
  55. package/dist/InputOptions.js.map +1 -1
  56. package/dist/LicenseChip.js +32 -26
  57. package/dist/LicenseChip.js.map +1 -1
  58. package/dist/LicenseChip.vue.d.ts +2 -4
  59. package/dist/ListItem.js +1 -1
  60. package/dist/ListView.js +30 -31
  61. package/dist/ListView.js.map +1 -1
  62. package/dist/MenuItem.js +4 -4
  63. package/dist/MenuItem.js.map +1 -1
  64. package/dist/Metric.js +1 -1
  65. package/dist/Metric.js.map +1 -1
  66. package/dist/Metric.vue.d.ts +8 -74
  67. package/dist/Modal.js +13 -13
  68. package/dist/Modal.js.map +1 -1
  69. package/dist/Module.js +1 -1
  70. package/dist/Module.js.map +1 -1
  71. package/dist/ModuleFooter.js +1 -1
  72. package/dist/ModuleFooter.js.map +1 -1
  73. package/dist/ModuleHeader.js +1 -1
  74. package/dist/ModuleHeader.js.map +1 -1
  75. package/dist/PageNavigation.js +28 -29
  76. package/dist/PageNavigation.js.map +1 -1
  77. package/dist/Paginate.js +1 -1
  78. package/dist/Paginate.js.map +1 -1
  79. package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-bfccf992.js +11 -0
  80. package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-bfccf992.js.map +1 -0
  81. package/dist/QuickAction.js +14 -14
  82. package/dist/QuickAction.js.map +1 -1
  83. package/dist/RadioNew.js +14 -14
  84. package/dist/SearchBar.js +15 -15
  85. package/dist/SearchBar.js.map +1 -1
  86. package/dist/Select.js +92 -93
  87. package/dist/Select.js.map +1 -1
  88. package/dist/SelectStatus.js +53 -51
  89. package/dist/SelectStatus.js.map +1 -1
  90. package/dist/SelectStatus.vue.d.ts +52 -1
  91. package/dist/Step.js +28 -28
  92. package/dist/Step.js.map +1 -1
  93. package/dist/Tab.js +1 -1
  94. package/dist/Table.js +2 -2
  95. package/dist/TableCell.js +2 -2
  96. package/dist/TableHeaderCell.js +2 -2
  97. package/dist/TableHeaderRow.js +2 -2
  98. package/dist/TableRow.js +2 -2
  99. package/dist/Tabs.js +2 -2
  100. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-aca4f8b8.js β†’ Tabs.vue_vue_type_script_setup_true_lang-56e85faa.js} +3 -3
  101. package/dist/Tabs.vue_vue_type_script_setup_true_lang-56e85faa.js.map +1 -0
  102. package/dist/Textarea.js +1 -1
  103. package/dist/Textarea.js.map +1 -1
  104. package/dist/Toast.js +1 -1
  105. package/dist/Toasts.js +1 -1
  106. package/dist/ToastsPlugin.js +1 -1
  107. package/dist/colorScheme.d.ts +3 -16
  108. package/dist/components.css +1 -1
  109. package/dist/index.d.ts +64 -25
  110. package/dist/index.js +188 -186
  111. package/dist/index.js.map +1 -1
  112. package/dist/statusLevels-a8b041f4.js +7 -0
  113. package/dist/statusLevels-a8b041f4.js.map +1 -0
  114. package/dist/tailwind-base.d.ts +0 -10
  115. package/dist/tailwind-base.js +22 -20
  116. package/dist/tailwind-base.js.map +1 -1
  117. package/dist/utils/colorScheme.js +1 -1
  118. package/dist/utils/colorScheme.js.map +1 -1
  119. package/package.json +1 -1
  120. package/styles/base.css +2 -2
  121. package/tailwind-base.ts +22 -21
  122. package/types/colors.ts +84 -26
  123. package/types/statusLevels.ts +4 -4
  124. package/dist/Checkbox.vue_vue_type_style_index_0_scoped_0cd31c8f_lang-4ed993c7.js.map +0 -1
  125. package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-e579235f.js +0 -11
  126. package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-e579235f.js.map +0 -1
  127. package/dist/Tabs.vue_vue_type_script_setup_true_lang-aca4f8b8.js.map +0 -1
  128. package/dist/colors-13e95ebf.js +0 -6
  129. package/dist/colors-13e95ebf.js.map +0 -1
  130. package/dist/statusLevels-aabf1e3c.js +0 -7
  131. package/dist/statusLevels-aabf1e3c.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/vue3-touch-events/index.js","../src/utils/Deferred.ts","../src/composables/useDialog/useDialog.ts","../src/components/Dialogs/Dialogs.vue","../src/plugins/DialogsPlugin.ts","../src/index.ts"],"sourcesContent":["/**\r\n * @project vue3-touch-events\r\n * @author Robin Rodricks, Xavier Julien, Jerry Bendy\r\n * @since 30/4/2021\r\n * @url https://github.com/robinrodricks/vue3-touch-events\r\n */\r\n\r\nfunction touchX(event) {\r\n if(event.type.indexOf('mouse') !== -1){\r\n return event.clientX;\r\n }\r\n return event.touches[0].clientX;\r\n}\r\n\r\nfunction touchY(event) {\r\n if(event.type.indexOf('mouse') !== -1){\r\n return event.clientY;\r\n }\r\n return event.touches[0].clientY;\r\n}\r\n\r\nvar isPassiveSupported = (function() {\r\n var supportsPassive = false;\r\n try {\r\n var opts = Object.defineProperty({}, 'passive', {\r\n get: function() {\r\n supportsPassive = true;\r\n }\r\n });\r\n window.addEventListener('test', null, opts);\r\n } catch (e) {}\r\n return supportsPassive;\r\n})();\r\n\r\nvar vueTouchEvents = {\r\n install: function (app, constructorOptions) {\r\n\t\t\r\n var globalOptions = Object.assign({}, {\r\n disableClick: false,\r\n tapTolerance: 10, // px\r\n swipeTolerance: 30, // px\r\n touchHoldTolerance: 400, // ms\r\n longTapTimeInterval: 400, // ms\r\n touchClass: '',\r\n\t\t\tdragFrequency: 100, // ms\r\n\t\t\trollOverFrequency: 100, // ms\r\n }, constructorOptions);\r\n\r\n function touchStartEvent(event) {\r\n var $this = this.$$touchObj,\r\n isTouchEvent = event.type.indexOf('touch') >= 0,\r\n isMouseEvent = event.type.indexOf('mouse') >= 0,\r\n $el = this;\r\n\r\n if (isTouchEvent) {\r\n $this.lastTouchStartTime = event.timeStamp;\r\n }\r\n\r\n if (isMouseEvent && $this.lastTouchStartTime && event.timeStamp - $this.lastTouchStartTime < 350) {\r\n return;\r\n }\r\n\r\n if ($this.touchStarted) {\r\n return;\r\n }\r\n\r\n addTouchClass(this);\r\n\r\n $this.touchStarted = true; // always true while the element is being PRESSED\r\n\r\n $this.touchMoved = false; // true only when the element is PRESSED and DRAGGED a bit\r\n $this.swipeOutBounded = false;\r\n\r\n $this.startX = touchX(event);\r\n $this.startY = touchY(event);\r\n\r\n $this.currentX = 0; // always updated with the last mouse X/Y while over the element\r\n $this.currentY = 0;\r\n\r\n $this.touchStartTime = event.timeStamp;\r\n\t\t\t\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n\t\t\t$this.hasSwipe = hasEvent(this, 'swipe')\r\n\t\t\t\t|| hasEvent(this, 'swipe.left') || hasEvent(this, 'swipe.right')\r\n\t\t\t\t|| hasEvent(this, 'swipe.top') || hasEvent(this, 'swipe.bottom');\r\n\r\n\t\t\t// performance: only start hold timer if the `hold` event is registered on this element\r\n\t\t\tif (hasEvent(this, 'hold')){\r\n\t\t\t\t\r\n\t\t\t\t// Trigger touchhold event after `touchHoldTolerance` MS\r\n\t\t\t\t$this.touchHoldTimer = setTimeout(function() {\r\n\t\t\t\t\t$this.touchHoldTimer = null;\r\n\t\t\t\t\ttriggerEvent(event, $el, 'hold');\r\n\t\t\t\t}, $this.options.touchHoldTolerance);\r\n\t\t\t}\r\n\t\t\t\r\n triggerEvent(event, this, 'press');\r\n }\r\n\r\n function touchMoveEvent(event) {\r\n var $this = this.$$touchObj;\r\n\t\t\t\r\n\t\t\tvar curX = touchX(event);\r\n\t\t\tvar curY = touchY(event);\r\n\r\n\t\t\tvar movedAgain = ($this.currentX != curX) || ($this.currentY != curY);\r\n\t\t\t\r\n $this.currentX = curX;\r\n $this.currentY = curY;\r\n\r\n if (!$this.touchMoved) {\r\n var tapTolerance = $this.options.tapTolerance;\r\n\r\n $this.touchMoved = Math.abs($this.startX - $this.currentX) > tapTolerance ||\r\n\t\t\t\t\t\t\t\t Math.abs($this.startY - $this.currentY) > tapTolerance;\r\n\r\n\t\t\t\t// trigger `drag.once` only once after mouse FIRST moved while dragging the element\r\n\t\t\t\t// (`touchMoved` is the flag that indicates we no longer need to trigger this)\r\n if($this.touchMoved){\r\n cancelTouchHoldTimer($this);\r\n triggerEvent(event, this, 'drag.once');\r\n }\r\n\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n } else if ($this.hasSwipe && !$this.swipeOutBounded) {\r\n\t\t\t\tvar swipeOutBounded = $this.options.swipeTolerance;\r\n\r\n\t\t\t\t$this.swipeOutBounded = Math.abs($this.startX - $this.currentX) > swipeOutBounded &&\r\n\t\t\t\t\tMath.abs($this.startY - $this.currentY) > swipeOutBounded;\r\n }\r\n\r\n\t\t\t// only trigger `rollover` event if cursor actually moved over this element\r\n if(hasEvent(this, 'rollover') && movedAgain){\r\n\t\t\t\t\r\n\t\t\t\t// throttle the `rollover` event based on `rollOverFrequency`\r\n\t\t\t\tvar now = event.timeStamp;\r\n\t\t\t\tvar throttle = $this.options.rollOverFrequency;\r\n\t\t\t\tif ($this.touchRollTime == null || now > ($this.touchRollTime + throttle)){\r\n\t\t\t\t\t$this.touchRollTime = now;\r\n\t\t\t\t\t\r\n\t\t\t\t\ttriggerEvent(event, this, 'rollover');\r\n\t\t\t\t}\r\n }\r\n\r\n\t\t\t// only trigger `drag` event if cursor actually moved and if we are still dragging this element\r\n if(hasEvent(this, 'drag') && $this.touchStarted && $this.touchMoved && movedAgain){\r\n\t\t\t\t\r\n\t\t\t\t// throttle the `drag` event based on `dragFrequency`\r\n\t\t\t\tvar now = event.timeStamp;\r\n\t\t\t\tvar throttle = $this.options.dragFrequency;\r\n\t\t\t\tif ($this.touchDragTime == null || now > ($this.touchDragTime + throttle)){\r\n\t\t\t\t\t$this.touchDragTime = now;\r\n\t\t\t\t\t\r\n\t\t\t\t\ttriggerEvent(event, this, 'drag');\r\n\t\t\t\t}\r\n }\r\n }\r\n\r\n function touchCancelEvent() {\r\n var $this = this.$$touchObj;\r\n\r\n cancelTouchHoldTimer($this);\r\n removeTouchClass(this);\r\n\r\n $this.touchStarted = $this.touchMoved = false;\r\n $this.startX = $this.startY = 0;\r\n }\r\n\r\n function touchEndEvent(event) {\r\n var $this = this.$$touchObj,\r\n isTouchEvent = event.type.indexOf('touch') >= 0,\r\n isMouseEvent = event.type.indexOf('mouse') >= 0;\r\n\r\n if (isTouchEvent) {\r\n $this.lastTouchEndTime = event.timeStamp;\r\n }\r\n\r\n var touchholdEnd = isTouchEvent && !$this.touchHoldTimer;\r\n cancelTouchHoldTimer($this);\r\n\r\n $this.touchStarted = false;\r\n\r\n removeTouchClass(this);\r\n\r\n if (isMouseEvent && $this.lastTouchEndTime && event.timeStamp - $this.lastTouchEndTime < 350) {\r\n return;\r\n }\r\n\r\n // trigger `end` event when touch stopped\r\n triggerEvent(event, this, 'release');\r\n\r\n if (!$this.touchMoved) {\r\n // detect if this is a longTap event or not\r\n if (hasEvent(this, 'longtap') && event.timeStamp - $this.touchStartTime > $this.options.longTapTimeInterval) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n triggerEvent(event, this, 'longtap');\r\n\r\n } else if (hasEvent(this, 'hold') && touchholdEnd) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n return;\r\n } else {\r\n // emit tap event\r\n triggerEvent(event, this, 'tap');\r\n }\r\n\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n } else if ($this.hasSwipe && !$this.swipeOutBounded) {\r\n var swipeOutBounded = $this.options.swipeTolerance,\r\n direction,\r\n distanceY = Math.abs($this.startY - $this.currentY),\r\n distanceX = Math.abs($this.startX - $this.currentX);\r\n\r\n if (distanceY > swipeOutBounded || distanceX > swipeOutBounded) {\r\n if (distanceY > swipeOutBounded) {\r\n direction = $this.startY > $this.currentY ? 'top' : 'bottom';\r\n } else {\r\n direction = $this.startX > $this.currentX ? 'left' : 'right';\r\n }\r\n\r\n // Only emit the specified event when it has modifiers\r\n if (hasEvent(this, 'swipe.' + direction)) {\r\n triggerEvent(event, this, 'swipe.' + direction, direction);\r\n } else {\r\n // Emit a common event when it has no any modifier\r\n triggerEvent(event, this, 'swipe', direction);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function mouseEnterEvent() {\r\n addTouchClass(this);\r\n }\r\n\r\n function mouseLeaveEvent() {\r\n removeTouchClass(this);\r\n }\r\n\r\n function hasEvent($el, eventType) {\r\n var callbacks = $el.$$touchObj.callbacks[eventType];\r\n\t\t\treturn (callbacks != null && callbacks.length > 0);\r\n\t\t}\r\n\t\t\r\n function triggerEvent(e, $el, eventType, param) {\r\n var $this = $el.$$touchObj;\r\n\r\n // get the subscribers for this event\r\n var callbacks = $this.callbacks[eventType];\r\n\t\t\t\r\n\t\t\t// exit if no subscribers to this particular event\r\n if (callbacks == null || callbacks.length === 0) {\r\n return null;\r\n }\r\n\r\n\t\t\t// per callback\r\n for (var i = 0; i < callbacks.length; i++) {\r\n var binding = callbacks[i];\r\n\r\n if (binding.modifiers.stop) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (binding.modifiers.prevent) {\r\n e.preventDefault();\r\n }\r\n\r\n // handle `self` modifier`\r\n if (binding.modifiers.self && e.target !== e.currentTarget) {\r\n continue;\r\n }\r\n\r\n if (typeof binding.value === 'function') {\r\n if (param) {\r\n binding.value(param, e);\r\n } else {\r\n binding.value(e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function addTouchClass($el) {\r\n var className = $el.$$touchObj.options.touchClass;\r\n className && $el.classList.add(className);\r\n }\r\n\r\n function removeTouchClass($el) {\r\n var className = $el.$$touchObj.options.touchClass;\r\n className && $el.classList.remove(className);\r\n }\r\n\r\n function cancelTouchHoldTimer($this) {\r\n if ($this.touchHoldTimer) {\r\n clearTimeout($this.touchHoldTimer);\r\n $this.touchHoldTimer = null;\r\n }\r\n }\r\n\r\n function buildTouchObj($el, extraOptions) {\r\n var touchObj = $el.$$touchObj || {\r\n // an object contains all callbacks registered,\r\n // key is event name, value is an array\r\n callbacks: {},\r\n // prevent bind twice, set to true when event bound\r\n hasBindTouchEvents: false,\r\n // default options, would be override by v-touch-options\r\n options: globalOptions\r\n };\r\n if (extraOptions) {\r\n touchObj.options = Object.assign({}, touchObj.options, extraOptions);\r\n }\r\n $el.$$touchObj = touchObj;\r\n return $el.$$touchObj;\r\n }\r\n\r\n app.directive('touch', {\r\n beforeMount: function ($el, binding) {\r\n // build a touch configuration object\r\n var $this = buildTouchObj($el);\r\n // declare passive option for the event listener. Defaults to { passive: true } if supported\r\n var passiveOpt = isPassiveSupported ? { passive: true } : false;\r\n // register callback\r\n var eventType = binding.arg || 'tap';\r\n switch (eventType) {\r\n case 'swipe':\r\n var _m = binding.modifiers;\r\n if (_m.left || _m.right || _m.top || _m.bottom) {\r\n for (var i in binding.modifiers) {\r\n if (['left', 'right', 'top', 'bottom'].indexOf(i) >= 0) {\r\n var _e = 'swipe.' + i;\r\n $this.callbacks[_e] = $this.callbacks[_e] || [];\r\n $this.callbacks[_e].push(binding);\r\n }\r\n }\r\n } else {\r\n $this.callbacks.swipe = $this.callbacks.swipe || [];\r\n $this.callbacks.swipe.push(binding);\r\n }\r\n break;\r\n\r\n case 'press':\r\n case 'drag':\r\n if (binding.modifiers.disablePassive) {\r\n // change the passive option for the `drag` event if disablePassive modifier exists\r\n passiveOpt = false;\r\n }\r\n default:\r\n $this.callbacks[eventType] = $this.callbacks[eventType] || [];\r\n $this.callbacks[eventType].push(binding);\r\n }\r\n\r\n // prevent bind twice\r\n if ($this.hasBindTouchEvents) {\r\n return;\r\n }\r\n\r\n $el.addEventListener('touchstart', touchStartEvent, passiveOpt);\r\n $el.addEventListener('touchmove', touchMoveEvent, passiveOpt);\r\n $el.addEventListener('touchcancel', touchCancelEvent);\r\n $el.addEventListener('touchend', touchEndEvent);\r\n\r\n if (!$this.options.disableClick) {\r\n $el.addEventListener('mousedown', touchStartEvent);\r\n $el.addEventListener('mousemove', touchMoveEvent);\r\n $el.addEventListener('mouseup', touchEndEvent);\r\n $el.addEventListener('mouseenter', mouseEnterEvent);\r\n $el.addEventListener('mouseleave', mouseLeaveEvent);\r\n }\r\n\r\n // set bind mark to true\r\n $this.hasBindTouchEvents = true;\r\n },\r\n\r\n unmounted: function ($el) {\r\n $el.removeEventListener('touchstart', touchStartEvent);\r\n $el.removeEventListener('touchmove', touchMoveEvent);\r\n $el.removeEventListener('touchcancel', touchCancelEvent);\r\n $el.removeEventListener('touchend', touchEndEvent);\r\n\r\n if ($el.$$touchObj && !$el.$$touchObj.options.disableClick) {\r\n $el.removeEventListener('mousedown', touchStartEvent);\r\n $el.removeEventListener('mousemove', touchMoveEvent);\r\n $el.removeEventListener('mouseup', touchEndEvent);\r\n $el.removeEventListener('mouseenter', mouseEnterEvent);\r\n $el.removeEventListener('mouseleave', mouseLeaveEvent);\r\n }\r\n\r\n // remove vars\r\n delete $el.$$touchObj;\r\n }\r\n });\r\n\r\n app.directive('touch-class', {\r\n beforeMount: function ($el, binding) {\r\n buildTouchObj($el, {\r\n touchClass: binding.value\r\n });\r\n }\r\n });\r\n\r\n app.directive('touch-options', {\r\n beforeMount: function($el, binding) {\r\n buildTouchObj($el, binding.value);\r\n }\r\n });\r\n }\r\n};\r\n\r\n/*\r\n * Exports\r\n */\r\nexport default vueTouchEvents","export default class Deferred<T> {\n public promise: Promise<T>;\n\n public reject!: (value: T | PromiseLike<T>) => void;\n public resolve!: (value: T | PromiseLike<T>) => void;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.reject = reject;\n this.resolve = resolve;\n });\n }\n}\n","import { h, reactive, readonly, ref } from 'vue';\n\nimport { DialogProps } from '../../components/Dialog/Dialog.vue';\nimport Deferred from '../../utils/Deferred';\n\nexport interface Result {\n isConfirmed?: boolean;\n isCanceled?: boolean;\n}\n\nexport interface ActiveDialog extends DialogProps {\n deferred?: Deferred<Result>;\n onConfirm?: () => void;\n onCancel?: () => void;\n slots?: Record<string, typeof h>;\n}\n\nconst active = ref<ActiveDialog>();\n\nexport default function useDialog() {\n function open(dialog: Omit<ActiveDialog, 'deferred'>) {\n if (active.value) {\n throw 'A Dialog is already being displayed';\n }\n\n active.value = {\n ...dialog,\n deferred: new Deferred(),\n };\n\n return active.value.deferred?.promise;\n }\n\n function close() {\n active.value = undefined;\n }\n\n return reactive({\n /**\n * The currently open dialog information.\n */\n active: readonly(active),\n\n /**\n * Opens the dialog.\n */\n open,\n\n /**\n * Closes the dialog.\n */\n close,\n });\n}\n","<script setup lang=\"ts\">\n import omit from 'lodash-es/omit';\n import { computed } from 'vue';\n\n import useDialog from '../../composables/useDialog/useDialog';\n import CustomRender from '../CustomRender/CustomRender.vue';\n import Dialog from '../Dialog/Dialog.vue';\n\n const dialog = useDialog();\n\n const attributes = computed(() => {\n if (!dialog.active) return null;\n\n return omit(dialog.active, ['deferred', 'onConfirm', 'onCancel', 'slots']);\n });\n\n function onCancel() {\n if (dialog.active?.onCancel) {\n dialog.active.onCancel();\n }\n\n dialog.active?.deferred?.resolve({\n isCanceled: true,\n });\n\n dialog.close();\n }\n\n async function onConfirm() {\n if (dialog.active?.onConfirm) {\n await dialog.active.onConfirm();\n }\n\n dialog.active?.deferred?.resolve({\n isConfirmed: true,\n });\n\n dialog.close();\n }\n</script>\n\n<template>\n <Dialog :open=\"!!attributes\" v-bind=\"attributes\" @confirm=\"onConfirm\" @cancel=\"onCancel\">\n <template v-for=\"(value, name) in dialog.active?.slots\" :key=\"name\" #[name]>\n <CustomRender :render=\"value\" />\n </template>\n </Dialog>\n</template>\n","import { App, createVNode, h, Plugin, render } from 'vue';\n\nimport Dialogs from '../components/Dialogs/Dialogs.vue';\n\nexport interface DialogsPluginOptions {\n mountNodeClass?: string;\n mountNodeId?: string;\n}\n\nexport default <Plugin>{\n install(app: App, options?: DialogsPluginOptions) {\n const mountNodeId = options?.mountNodeId || 'stash-dialogs-mount-node';\n let mountNode = document.getElementById(mountNodeId);\n\n if (!mountNode) {\n mountNode = document.createElement('div');\n mountNode.id = mountNodeId;\n }\n\n if (options?.mountNodeClass) {\n mountNode.classList.add(options.mountNodeClass);\n }\n\n const vNode = createVNode(h(Dialogs));\n document.body.appendChild(mountNode);\n vNode.appContext = app._context;\n\n render(vNode, mountNode);\n },\n};\n","import { Plugin } from 'vue';\nimport Vue3TouchEvents from 'vue3-touch-events';\n\nimport { I18nPlugin, StashOptionImages, StashProvideState } from '../types/misc';\nimport locale from './locale';\n// this is valid syntax per the TS docs, but prettier throws an error expecting a comma after `type`\n// eslint-disable-next-line prettier/prettier\nimport DialogsPlugin, { type DialogsPluginOptions } from './plugins/DialogsPlugin';\nimport MenusPlugin, { type MenusPluginOptions } from './plugins/MenusPlugin';\nimport ModalsPlugin, { type ModalsPluginOptions } from './plugins/ModalsPlugin';\nimport ToastsPlugin, { type ToastsPluginOptions } from './plugins/ToastsPlugin';\nimport { overridePersistentStorage, persistentStorage } from './storage';\n\nexport interface StashPluginOptions {\n i18n?: I18nPlugin;\n storage?: {\n set: <T = unknown>(name: string, data: T, options?: { [key: string]: unknown }) => void;\n get: <T = unknown>(name: string, options?: { [key: string]: unknown }) => T;\n };\n staticPath?: string;\n images?: StashOptionImages;\n googleMapsApiKey?: string;\n menus?: false | MenusPluginOptions;\n modals?: false | ModalsPluginOptions;\n toasts?: false | ToastsPluginOptions;\n dialogs?: false | DialogsPluginOptions;\n}\n\nexport default <Plugin>{\n install(\n app,\n {\n i18n = undefined,\n storage = undefined,\n staticPath = '/static',\n images = {\n provider: 'cloudinary',\n staticDomains: [],\n },\n googleMapsApiKey = undefined,\n menus,\n modals,\n toasts,\n dialogs,\n }: StashPluginOptions = {},\n ) {\n app.use(Vue3TouchEvents);\n\n // locale\n if (i18n) {\n locale.use(i18n.locale);\n locale.i18n(i18n && i18n.t);\n }\n\n // persistent storage (localStorage)\n if (storage) {\n overridePersistentStorage(storage);\n }\n\n // expose stash options to the rest of your application\n app.provide<StashProvideState>('stashOptions', {\n i18n,\n images,\n storage,\n staticPath,\n googleMapsApiKey,\n });\n\n if (menus !== false) {\n app.use(MenusPlugin, menus);\n }\n\n if (modals !== false) {\n app.use(ModalsPlugin, modals);\n }\n\n if (toasts !== false) {\n app.use(ToastsPlugin, toasts);\n }\n\n if (dialogs !== false) {\n app.use(DialogsPlugin, dialogs);\n }\n },\n};\n\nexport { persistentStorage };\n\n// Re-export things that are useful for consumers\nexport * from '../types';\nexport * from './storage';\n\n// Todo: Investigate tree-shaking issues to see if we can expose these. Theoritically\n// should be no issue, however test framework startup time, specifically w/ Jest,\n// seems to be the major blocker here.\n// export * from './components';\n// export * from './composables';\n// export * from './constants';\n// export * from './directives';\n// export * from './locale';\n// export * from './plugins';\n// export { default as ToastsPlugin } from './plugins/ToastsPlugin';\n"],"names":["touchX","event","touchY","isPassiveSupported","supportsPassive","opts","vueTouchEvents","app","constructorOptions","globalOptions","touchStartEvent","$this","isTouchEvent","isMouseEvent","$el","addTouchClass","hasEvent","triggerEvent","touchMoveEvent","curX","curY","movedAgain","swipeOutBounded","tapTolerance","cancelTouchHoldTimer","now","throttle","touchCancelEvent","removeTouchClass","touchEndEvent","touchholdEnd","direction","distanceY","distanceX","mouseEnterEvent","mouseLeaveEvent","eventType","callbacks","param","i","binding","className","buildTouchObj","extraOptions","touchObj","passiveOpt","_m","_e","Deferred","__publicField","resolve","reject","active","ref","useDialog","open","dialog","_a","close","reactive","readonly","attributes","computed","omit","onCancel","_c","_b","onConfirm","DialogsPlugin","options","mountNodeId","mountNode","vNode","createVNode","h","Dialogs","render","index","i18n","storage","staticPath","images","googleMapsApiKey","menus","modals","toasts","dialogs","Vue3TouchEvents","locale","overridePersistentStorage","MenusPlugin","ModalsPlugin","ToastsPlugin"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/vue3-touch-events/index.js","../src/utils/Deferred.ts","../src/composables/useDialog/useDialog.ts","../src/components/Dialogs/Dialogs.vue","../src/plugins/DialogsPlugin.ts","../types/colors.ts","../src/index.ts"],"sourcesContent":["/**\r\n * @project vue3-touch-events\r\n * @author Robin Rodricks, Xavier Julien, Jerry Bendy\r\n * @since 30/4/2021\r\n * @url https://github.com/robinrodricks/vue3-touch-events\r\n */\r\n\r\nfunction touchX(event) {\r\n if(event.type.indexOf('mouse') !== -1){\r\n return event.clientX;\r\n }\r\n return event.touches[0].clientX;\r\n}\r\n\r\nfunction touchY(event) {\r\n if(event.type.indexOf('mouse') !== -1){\r\n return event.clientY;\r\n }\r\n return event.touches[0].clientY;\r\n}\r\n\r\nvar isPassiveSupported = (function() {\r\n var supportsPassive = false;\r\n try {\r\n var opts = Object.defineProperty({}, 'passive', {\r\n get: function() {\r\n supportsPassive = true;\r\n }\r\n });\r\n window.addEventListener('test', null, opts);\r\n } catch (e) {}\r\n return supportsPassive;\r\n})();\r\n\r\nvar vueTouchEvents = {\r\n install: function (app, constructorOptions) {\r\n\t\t\r\n var globalOptions = Object.assign({}, {\r\n disableClick: false,\r\n tapTolerance: 10, // px\r\n swipeTolerance: 30, // px\r\n touchHoldTolerance: 400, // ms\r\n longTapTimeInterval: 400, // ms\r\n touchClass: '',\r\n\t\t\tdragFrequency: 100, // ms\r\n\t\t\trollOverFrequency: 100, // ms\r\n }, constructorOptions);\r\n\r\n function touchStartEvent(event) {\r\n var $this = this.$$touchObj,\r\n isTouchEvent = event.type.indexOf('touch') >= 0,\r\n isMouseEvent = event.type.indexOf('mouse') >= 0,\r\n $el = this;\r\n\r\n if (isTouchEvent) {\r\n $this.lastTouchStartTime = event.timeStamp;\r\n }\r\n\r\n if (isMouseEvent && $this.lastTouchStartTime && event.timeStamp - $this.lastTouchStartTime < 350) {\r\n return;\r\n }\r\n\r\n if ($this.touchStarted) {\r\n return;\r\n }\r\n\r\n addTouchClass(this);\r\n\r\n $this.touchStarted = true; // always true while the element is being PRESSED\r\n\r\n $this.touchMoved = false; // true only when the element is PRESSED and DRAGGED a bit\r\n $this.swipeOutBounded = false;\r\n\r\n $this.startX = touchX(event);\r\n $this.startY = touchY(event);\r\n\r\n $this.currentX = 0; // always updated with the last mouse X/Y while over the element\r\n $this.currentY = 0;\r\n\r\n $this.touchStartTime = event.timeStamp;\r\n\t\t\t\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n\t\t\t$this.hasSwipe = hasEvent(this, 'swipe')\r\n\t\t\t\t|| hasEvent(this, 'swipe.left') || hasEvent(this, 'swipe.right')\r\n\t\t\t\t|| hasEvent(this, 'swipe.top') || hasEvent(this, 'swipe.bottom');\r\n\r\n\t\t\t// performance: only start hold timer if the `hold` event is registered on this element\r\n\t\t\tif (hasEvent(this, 'hold')){\r\n\t\t\t\t\r\n\t\t\t\t// Trigger touchhold event after `touchHoldTolerance` MS\r\n\t\t\t\t$this.touchHoldTimer = setTimeout(function() {\r\n\t\t\t\t\t$this.touchHoldTimer = null;\r\n\t\t\t\t\ttriggerEvent(event, $el, 'hold');\r\n\t\t\t\t}, $this.options.touchHoldTolerance);\r\n\t\t\t}\r\n\t\t\t\r\n triggerEvent(event, this, 'press');\r\n }\r\n\r\n function touchMoveEvent(event) {\r\n var $this = this.$$touchObj;\r\n\t\t\t\r\n\t\t\tvar curX = touchX(event);\r\n\t\t\tvar curY = touchY(event);\r\n\r\n\t\t\tvar movedAgain = ($this.currentX != curX) || ($this.currentY != curY);\r\n\t\t\t\r\n $this.currentX = curX;\r\n $this.currentY = curY;\r\n\r\n if (!$this.touchMoved) {\r\n var tapTolerance = $this.options.tapTolerance;\r\n\r\n $this.touchMoved = Math.abs($this.startX - $this.currentX) > tapTolerance ||\r\n\t\t\t\t\t\t\t\t Math.abs($this.startY - $this.currentY) > tapTolerance;\r\n\r\n\t\t\t\t// trigger `drag.once` only once after mouse FIRST moved while dragging the element\r\n\t\t\t\t// (`touchMoved` is the flag that indicates we no longer need to trigger this)\r\n if($this.touchMoved){\r\n cancelTouchHoldTimer($this);\r\n triggerEvent(event, this, 'drag.once');\r\n }\r\n\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n } else if ($this.hasSwipe && !$this.swipeOutBounded) {\r\n\t\t\t\tvar swipeOutBounded = $this.options.swipeTolerance;\r\n\r\n\t\t\t\t$this.swipeOutBounded = Math.abs($this.startX - $this.currentX) > swipeOutBounded &&\r\n\t\t\t\t\tMath.abs($this.startY - $this.currentY) > swipeOutBounded;\r\n }\r\n\r\n\t\t\t// only trigger `rollover` event if cursor actually moved over this element\r\n if(hasEvent(this, 'rollover') && movedAgain){\r\n\t\t\t\t\r\n\t\t\t\t// throttle the `rollover` event based on `rollOverFrequency`\r\n\t\t\t\tvar now = event.timeStamp;\r\n\t\t\t\tvar throttle = $this.options.rollOverFrequency;\r\n\t\t\t\tif ($this.touchRollTime == null || now > ($this.touchRollTime + throttle)){\r\n\t\t\t\t\t$this.touchRollTime = now;\r\n\t\t\t\t\t\r\n\t\t\t\t\ttriggerEvent(event, this, 'rollover');\r\n\t\t\t\t}\r\n }\r\n\r\n\t\t\t// only trigger `drag` event if cursor actually moved and if we are still dragging this element\r\n if(hasEvent(this, 'drag') && $this.touchStarted && $this.touchMoved && movedAgain){\r\n\t\t\t\t\r\n\t\t\t\t// throttle the `drag` event based on `dragFrequency`\r\n\t\t\t\tvar now = event.timeStamp;\r\n\t\t\t\tvar throttle = $this.options.dragFrequency;\r\n\t\t\t\tif ($this.touchDragTime == null || now > ($this.touchDragTime + throttle)){\r\n\t\t\t\t\t$this.touchDragTime = now;\r\n\t\t\t\t\t\r\n\t\t\t\t\ttriggerEvent(event, this, 'drag');\r\n\t\t\t\t}\r\n }\r\n }\r\n\r\n function touchCancelEvent() {\r\n var $this = this.$$touchObj;\r\n\r\n cancelTouchHoldTimer($this);\r\n removeTouchClass(this);\r\n\r\n $this.touchStarted = $this.touchMoved = false;\r\n $this.startX = $this.startY = 0;\r\n }\r\n\r\n function touchEndEvent(event) {\r\n var $this = this.$$touchObj,\r\n isTouchEvent = event.type.indexOf('touch') >= 0,\r\n isMouseEvent = event.type.indexOf('mouse') >= 0;\r\n\r\n if (isTouchEvent) {\r\n $this.lastTouchEndTime = event.timeStamp;\r\n }\r\n\r\n var touchholdEnd = isTouchEvent && !$this.touchHoldTimer;\r\n cancelTouchHoldTimer($this);\r\n\r\n $this.touchStarted = false;\r\n\r\n removeTouchClass(this);\r\n\r\n if (isMouseEvent && $this.lastTouchEndTime && event.timeStamp - $this.lastTouchEndTime < 350) {\r\n return;\r\n }\r\n\r\n // trigger `end` event when touch stopped\r\n triggerEvent(event, this, 'release');\r\n\r\n if (!$this.touchMoved) {\r\n // detect if this is a longTap event or not\r\n if (hasEvent(this, 'longtap') && event.timeStamp - $this.touchStartTime > $this.options.longTapTimeInterval) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n triggerEvent(event, this, 'longtap');\r\n\r\n } else if (hasEvent(this, 'hold') && touchholdEnd) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n return;\r\n } else {\r\n // emit tap event\r\n triggerEvent(event, this, 'tap');\r\n }\r\n\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n } else if ($this.hasSwipe && !$this.swipeOutBounded) {\r\n var swipeOutBounded = $this.options.swipeTolerance,\r\n direction,\r\n distanceY = Math.abs($this.startY - $this.currentY),\r\n distanceX = Math.abs($this.startX - $this.currentX);\r\n\r\n if (distanceY > swipeOutBounded || distanceX > swipeOutBounded) {\r\n if (distanceY > swipeOutBounded) {\r\n direction = $this.startY > $this.currentY ? 'top' : 'bottom';\r\n } else {\r\n direction = $this.startX > $this.currentX ? 'left' : 'right';\r\n }\r\n\r\n // Only emit the specified event when it has modifiers\r\n if (hasEvent(this, 'swipe.' + direction)) {\r\n triggerEvent(event, this, 'swipe.' + direction, direction);\r\n } else {\r\n // Emit a common event when it has no any modifier\r\n triggerEvent(event, this, 'swipe', direction);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function mouseEnterEvent() {\r\n addTouchClass(this);\r\n }\r\n\r\n function mouseLeaveEvent() {\r\n removeTouchClass(this);\r\n }\r\n\r\n function hasEvent($el, eventType) {\r\n var callbacks = $el.$$touchObj.callbacks[eventType];\r\n\t\t\treturn (callbacks != null && callbacks.length > 0);\r\n\t\t}\r\n\t\t\r\n function triggerEvent(e, $el, eventType, param) {\r\n var $this = $el.$$touchObj;\r\n\r\n // get the subscribers for this event\r\n var callbacks = $this.callbacks[eventType];\r\n\t\t\t\r\n\t\t\t// exit if no subscribers to this particular event\r\n if (callbacks == null || callbacks.length === 0) {\r\n return null;\r\n }\r\n\r\n\t\t\t// per callback\r\n for (var i = 0; i < callbacks.length; i++) {\r\n var binding = callbacks[i];\r\n\r\n if (binding.modifiers.stop) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (binding.modifiers.prevent) {\r\n e.preventDefault();\r\n }\r\n\r\n // handle `self` modifier`\r\n if (binding.modifiers.self && e.target !== e.currentTarget) {\r\n continue;\r\n }\r\n\r\n if (typeof binding.value === 'function') {\r\n if (param) {\r\n binding.value(param, e);\r\n } else {\r\n binding.value(e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function addTouchClass($el) {\r\n var className = $el.$$touchObj.options.touchClass;\r\n className && $el.classList.add(className);\r\n }\r\n\r\n function removeTouchClass($el) {\r\n var className = $el.$$touchObj.options.touchClass;\r\n className && $el.classList.remove(className);\r\n }\r\n\r\n function cancelTouchHoldTimer($this) {\r\n if ($this.touchHoldTimer) {\r\n clearTimeout($this.touchHoldTimer);\r\n $this.touchHoldTimer = null;\r\n }\r\n }\r\n\r\n function buildTouchObj($el, extraOptions) {\r\n var touchObj = $el.$$touchObj || {\r\n // an object contains all callbacks registered,\r\n // key is event name, value is an array\r\n callbacks: {},\r\n // prevent bind twice, set to true when event bound\r\n hasBindTouchEvents: false,\r\n // default options, would be override by v-touch-options\r\n options: globalOptions\r\n };\r\n if (extraOptions) {\r\n touchObj.options = Object.assign({}, touchObj.options, extraOptions);\r\n }\r\n $el.$$touchObj = touchObj;\r\n return $el.$$touchObj;\r\n }\r\n\r\n app.directive('touch', {\r\n beforeMount: function ($el, binding) {\r\n // build a touch configuration object\r\n var $this = buildTouchObj($el);\r\n // declare passive option for the event listener. Defaults to { passive: true } if supported\r\n var passiveOpt = isPassiveSupported ? { passive: true } : false;\r\n // register callback\r\n var eventType = binding.arg || 'tap';\r\n switch (eventType) {\r\n case 'swipe':\r\n var _m = binding.modifiers;\r\n if (_m.left || _m.right || _m.top || _m.bottom) {\r\n for (var i in binding.modifiers) {\r\n if (['left', 'right', 'top', 'bottom'].indexOf(i) >= 0) {\r\n var _e = 'swipe.' + i;\r\n $this.callbacks[_e] = $this.callbacks[_e] || [];\r\n $this.callbacks[_e].push(binding);\r\n }\r\n }\r\n } else {\r\n $this.callbacks.swipe = $this.callbacks.swipe || [];\r\n $this.callbacks.swipe.push(binding);\r\n }\r\n break;\r\n\r\n case 'press':\r\n case 'drag':\r\n if (binding.modifiers.disablePassive) {\r\n // change the passive option for the `drag` event if disablePassive modifier exists\r\n passiveOpt = false;\r\n }\r\n default:\r\n $this.callbacks[eventType] = $this.callbacks[eventType] || [];\r\n $this.callbacks[eventType].push(binding);\r\n }\r\n\r\n // prevent bind twice\r\n if ($this.hasBindTouchEvents) {\r\n return;\r\n }\r\n\r\n $el.addEventListener('touchstart', touchStartEvent, passiveOpt);\r\n $el.addEventListener('touchmove', touchMoveEvent, passiveOpt);\r\n $el.addEventListener('touchcancel', touchCancelEvent);\r\n $el.addEventListener('touchend', touchEndEvent);\r\n\r\n if (!$this.options.disableClick) {\r\n $el.addEventListener('mousedown', touchStartEvent);\r\n $el.addEventListener('mousemove', touchMoveEvent);\r\n $el.addEventListener('mouseup', touchEndEvent);\r\n $el.addEventListener('mouseenter', mouseEnterEvent);\r\n $el.addEventListener('mouseleave', mouseLeaveEvent);\r\n }\r\n\r\n // set bind mark to true\r\n $this.hasBindTouchEvents = true;\r\n },\r\n\r\n unmounted: function ($el) {\r\n $el.removeEventListener('touchstart', touchStartEvent);\r\n $el.removeEventListener('touchmove', touchMoveEvent);\r\n $el.removeEventListener('touchcancel', touchCancelEvent);\r\n $el.removeEventListener('touchend', touchEndEvent);\r\n\r\n if ($el.$$touchObj && !$el.$$touchObj.options.disableClick) {\r\n $el.removeEventListener('mousedown', touchStartEvent);\r\n $el.removeEventListener('mousemove', touchMoveEvent);\r\n $el.removeEventListener('mouseup', touchEndEvent);\r\n $el.removeEventListener('mouseenter', mouseEnterEvent);\r\n $el.removeEventListener('mouseleave', mouseLeaveEvent);\r\n }\r\n\r\n // remove vars\r\n delete $el.$$touchObj;\r\n }\r\n });\r\n\r\n app.directive('touch-class', {\r\n beforeMount: function ($el, binding) {\r\n buildTouchObj($el, {\r\n touchClass: binding.value\r\n });\r\n }\r\n });\r\n\r\n app.directive('touch-options', {\r\n beforeMount: function($el, binding) {\r\n buildTouchObj($el, binding.value);\r\n }\r\n });\r\n }\r\n};\r\n\r\n/*\r\n * Exports\r\n */\r\nexport default vueTouchEvents","export default class Deferred<T> {\n public promise: Promise<T>;\n\n public reject!: (value: T | PromiseLike<T>) => void;\n public resolve!: (value: T | PromiseLike<T>) => void;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.reject = reject;\n this.resolve = resolve;\n });\n }\n}\n","import { h, reactive, readonly, ref } from 'vue';\n\nimport { DialogProps } from '../../components/Dialog/Dialog.vue';\nimport Deferred from '../../utils/Deferred';\n\nexport interface Result {\n isConfirmed?: boolean;\n isCanceled?: boolean;\n}\n\nexport interface ActiveDialog extends DialogProps {\n deferred?: Deferred<Result>;\n onConfirm?: () => void;\n onCancel?: () => void;\n slots?: Record<string, typeof h>;\n}\n\nconst active = ref<ActiveDialog>();\n\nexport default function useDialog() {\n function open(dialog: Omit<ActiveDialog, 'deferred'>) {\n if (active.value) {\n throw 'A Dialog is already being displayed';\n }\n\n active.value = {\n ...dialog,\n deferred: new Deferred(),\n };\n\n return active.value.deferred?.promise;\n }\n\n function close() {\n active.value = undefined;\n }\n\n return reactive({\n /**\n * The currently open dialog information.\n */\n active: readonly(active),\n\n /**\n * Opens the dialog.\n */\n open,\n\n /**\n * Closes the dialog.\n */\n close,\n });\n}\n","<script setup lang=\"ts\">\n import omit from 'lodash-es/omit';\n import { computed } from 'vue';\n\n import useDialog from '../../composables/useDialog/useDialog';\n import CustomRender from '../CustomRender/CustomRender.vue';\n import Dialog from '../Dialog/Dialog.vue';\n\n const dialog = useDialog();\n\n const attributes = computed(() => {\n if (!dialog.active) return null;\n\n return omit(dialog.active, ['deferred', 'onConfirm', 'onCancel', 'slots']);\n });\n\n function onCancel() {\n if (dialog.active?.onCancel) {\n dialog.active.onCancel();\n }\n\n dialog.active?.deferred?.resolve({\n isCanceled: true,\n });\n\n dialog.close();\n }\n\n async function onConfirm() {\n if (dialog.active?.onConfirm) {\n await dialog.active.onConfirm();\n }\n\n dialog.active?.deferred?.resolve({\n isConfirmed: true,\n });\n\n dialog.close();\n }\n</script>\n\n<template>\n <Dialog :open=\"!!attributes\" v-bind=\"attributes\" @confirm=\"onConfirm\" @cancel=\"onCancel\">\n <template v-for=\"(value, name) in dialog.active?.slots\" :key=\"name\" #[name]>\n <CustomRender :render=\"value\" />\n </template>\n </Dialog>\n</template>\n","import { App, createVNode, h, Plugin, render } from 'vue';\n\nimport Dialogs from '../components/Dialogs/Dialogs.vue';\n\nexport interface DialogsPluginOptions {\n mountNodeClass?: string;\n mountNodeId?: string;\n}\n\nexport default <Plugin>{\n install(app: App, options?: DialogsPluginOptions) {\n const mountNodeId = options?.mountNodeId || 'stash-dialogs-mount-node';\n let mountNode = document.getElementById(mountNodeId);\n\n if (!mountNode) {\n mountNode = document.createElement('div');\n mountNode.id = mountNodeId;\n }\n\n if (options?.mountNodeClass) {\n mountNode.classList.add(options.mountNodeClass);\n }\n\n const vNode = createVNode(h(Dialogs));\n document.body.appendChild(mountNode);\n vNode.appContext = app._context;\n\n render(vNode, mountNode);\n },\n};\n","/**\n * The names of the color groups.\n */\nexport type StashPrimaryColorGroup =\n | 'blue'\n | 'green'\n | 'ice'\n | 'orange'\n | 'purple'\n | 'red'\n | 'royal'\n | 'seafoam'\n | 'teal'\n | 'yellow';\n\n/**\n * Complete list of Stash brand colors & their shades.\n */\nexport enum StashColors {\n Purple900 = 'purple-900',\n Purple800 = 'purple-800',\n Purple700 = 'purple-700',\n Purple600 = 'purple-600',\n Purple500 = 'purple-500',\n Purple400 = 'purple-400',\n Purple300 = 'purple-300',\n Purple200 = 'purple-200',\n Purple100 = 'purple-100',\n\n Royal900 = 'royal-900',\n Royal800 = 'royal-800',\n Royal700 = 'royal-700',\n Royal600 = 'royal-600',\n Royal500 = 'royal-500',\n Royal400 = 'royal-400',\n Royal300 = 'royal-300',\n Royal200 = 'royal-200',\n Royal100 = 'royal-100',\n\n Blue900 = 'blue-900',\n Blue800 = 'blue-800',\n Blue700 = 'blue-700',\n Blue600 = 'blue-600',\n Blue500 = 'blue-500',\n Blue400 = 'blue-400',\n Blue300 = 'blue-300',\n Blue200 = 'blue-200',\n Blue100 = 'blue-100',\n\n Teal900 = 'teal-900',\n Teal800 = 'teal-800',\n Teal700 = 'teal-700',\n Teal600 = 'teal-600',\n Teal500 = 'teal-500',\n Teal400 = 'teal-400',\n Teal300 = 'teal-300',\n Teal200 = 'teal-200',\n Teal100 = 'teal-100',\n\n Green900 = 'green-900',\n Green800 = 'green-800',\n Green700 = 'green-700',\n Green600 = 'green-600',\n Green500 = 'green-500',\n Green400 = 'green-400',\n Green300 = 'green-300',\n Green200 = 'green-200',\n Green100 = 'green-100',\n\n Seafoam900 = 'seafoam-900',\n Seafoam800 = 'seafoam-800',\n Seafoam700 = 'seafoam-700',\n Seafoam600 = 'seafoam-600',\n Seafoam500 = 'seafoam-500',\n Seafoam400 = 'seafoam-400',\n Seafoam300 = 'seafoam-300',\n Seafoam200 = 'seafoam-200',\n Seafoam100 = 'seafoam-100',\n\n Yellow900 = 'yellow-900',\n Yellow800 = 'yellow-800',\n Yellow700 = 'yellow-700',\n Yellow600 = 'yellow-600',\n Yellow500 = 'yellow-500',\n Yellow400 = 'yellow-400',\n Yellow300 = 'yellow-300',\n Yellow200 = 'yellow-200',\n Yellow100 = 'yellow-100',\n\n Orange900 = 'orange-900',\n Orange800 = 'orange-800',\n Orange700 = 'orange-700',\n Orange600 = 'orange-600',\n Orange500 = 'orange-500',\n Orange400 = 'orange-400',\n Orange300 = 'orange-300',\n Orange200 = 'orange-200',\n Orange100 = 'orange-100',\n\n Red900 = 'red-900',\n Red800 = 'red-800',\n Red700 = 'red-700',\n Red600 = 'red-600',\n Red500 = 'red-500',\n Red400 = 'red-400',\n Red300 = 'red-300',\n Red200 = 'red-200',\n Red100 = 'red-100',\n\n Ice900 = 'ice-900',\n Ice800 = 'ice-800',\n Ice700 = 'ice-700',\n Ice600 = 'ice-600',\n Ice500 = 'ice-500',\n Ice400 = 'ice-400',\n Ice300 = 'ice-300',\n Ice200 = 'ice-200',\n Ice100 = 'ice-100',\n\n White = 'white',\n Black = 'black',\n}\n\nexport type StashColor = `${StashColors}`;\n\n/**\n * A limited list of stash brand colors, only including their 100, 500, and 700 shades.\n */\nexport enum StashCommonColors {\n Purple700 = StashColors.Purple700,\n Purple500 = StashColors.Purple500,\n Purple100 = StashColors.Purple100,\n\n Royal700 = StashColors.Royal700,\n Royal500 = StashColors.Royal500,\n Royal100 = StashColors.Royal100,\n\n Blue700 = StashColors.Blue700,\n Blue500 = StashColors.Blue500,\n Blue100 = StashColors.Blue100,\n\n Teal700 = StashColors.Teal700,\n Teal500 = StashColors.Teal500,\n Teal100 = StashColors.Teal100,\n\n Green700 = StashColors.Green700,\n Green500 = StashColors.Green500,\n Green100 = StashColors.Green100,\n\n Seafoam700 = StashColors.Seafoam700,\n Seafoam500 = StashColors.Seafoam500,\n Seafoam100 = StashColors.Seafoam100,\n\n Yellow700 = StashColors.Yellow700,\n Yellow500 = StashColors.Yellow500,\n Yellow100 = StashColors.Yellow100,\n\n Orange700 = StashColors.Orange700,\n Orange500 = StashColors.Orange500,\n Orange100 = StashColors.Orange100,\n\n Red700 = StashColors.Red700,\n Red500 = StashColors.Red500,\n Red100 = StashColors.Red100,\n\n Ice700 = StashColors.Ice700,\n Ice500 = StashColors.Ice500,\n Ice200 = StashColors.Ice200, // This is the one outlier, but it's used purposefully in a few places\n Ice100 = StashColors.Ice100,\n\n White = 'white',\n Black = 'black',\n}\n\nexport type StashCommonColor = `${StashCommonColors}`;\n\n/**\n * A limited list of stash brand colors, only including their primary (500) shade.\n */\nexport enum StashPrimaryColors {\n Blue500 = 'blue-500',\n Green500 = 'green-500',\n Ice500 = 'ice-500',\n Orange500 = 'orange-500',\n Purple500 = 'purple-500',\n Red500 = 'red-500',\n Royal500 = 'royal-500',\n Seafoam500 = 'seafoam-500',\n Teal500 = 'teal-500',\n Yellow500 = 'yellow-500',\n}\n\nexport type StashPrimaryColor = `${StashPrimaryColors}`;\n","import { Plugin } from 'vue';\nimport Vue3TouchEvents from 'vue3-touch-events';\n\nimport { I18nPlugin, StashOptionImages, StashProvideState } from '../types/misc';\nimport locale from './locale';\n// this is valid syntax per the TS docs, but prettier throws an error expecting a comma after `type`\n// eslint-disable-next-line prettier/prettier\nimport DialogsPlugin, { type DialogsPluginOptions } from './plugins/DialogsPlugin';\nimport MenusPlugin, { type MenusPluginOptions } from './plugins/MenusPlugin';\nimport ModalsPlugin, { type ModalsPluginOptions } from './plugins/ModalsPlugin';\nimport ToastsPlugin, { type ToastsPluginOptions } from './plugins/ToastsPlugin';\nimport { overridePersistentStorage, persistentStorage } from './storage';\n\nexport interface StashPluginOptions {\n i18n?: I18nPlugin;\n storage?: {\n set: <T = unknown>(name: string, data: T, options?: { [key: string]: unknown }) => void;\n get: <T = unknown>(name: string, options?: { [key: string]: unknown }) => T;\n };\n staticPath?: string;\n images?: StashOptionImages;\n googleMapsApiKey?: string;\n menus?: false | MenusPluginOptions;\n modals?: false | ModalsPluginOptions;\n toasts?: false | ToastsPluginOptions;\n dialogs?: false | DialogsPluginOptions;\n}\n\nexport default <Plugin>{\n install(\n app,\n {\n i18n = undefined,\n storage = undefined,\n staticPath = '/static',\n images = {\n provider: 'cloudinary',\n staticDomains: [],\n },\n googleMapsApiKey = undefined,\n menus,\n modals,\n toasts,\n dialogs,\n }: StashPluginOptions = {},\n ) {\n app.use(Vue3TouchEvents);\n\n // locale\n if (i18n) {\n locale.use(i18n.locale);\n locale.i18n(i18n && i18n.t);\n }\n\n // persistent storage (localStorage)\n if (storage) {\n overridePersistentStorage(storage);\n }\n\n // expose stash options to the rest of your application\n app.provide<StashProvideState>('stashOptions', {\n i18n,\n images,\n storage,\n staticPath,\n googleMapsApiKey,\n });\n\n if (menus !== false) {\n app.use(MenusPlugin, menus);\n }\n\n if (modals !== false) {\n app.use(ModalsPlugin, modals);\n }\n\n if (toasts !== false) {\n app.use(ToastsPlugin, toasts);\n }\n\n if (dialogs !== false) {\n app.use(DialogsPlugin, dialogs);\n }\n },\n};\n\nexport { persistentStorage };\n\n// Re-export things that are useful for consumers\nexport * from '../types';\nexport * from './storage';\n\n// Todo: Investigate tree-shaking issues to see if we can expose these. Theoritically\n// should be no issue, however test framework startup time, specifically w/ Jest,\n// seems to be the major blocker here.\n// export * from './components';\n// export * from './composables';\n// export * from './constants';\n// export * from './directives';\n// export * from './locale';\n// export * from './plugins';\n// export { default as ToastsPlugin } from './plugins/ToastsPlugin';\n"],"names":["touchX","event","touchY","isPassiveSupported","supportsPassive","opts","vueTouchEvents","app","constructorOptions","globalOptions","touchStartEvent","$this","isTouchEvent","isMouseEvent","$el","addTouchClass","hasEvent","triggerEvent","touchMoveEvent","curX","curY","movedAgain","swipeOutBounded","tapTolerance","cancelTouchHoldTimer","now","throttle","touchCancelEvent","removeTouchClass","touchEndEvent","touchholdEnd","direction","distanceY","distanceX","mouseEnterEvent","mouseLeaveEvent","eventType","callbacks","e","param","i","binding","className","buildTouchObj","extraOptions","touchObj","passiveOpt","_m","_e","Deferred","__publicField","resolve","reject","active","ref","useDialog","open","dialog","_a","close","reactive","readonly","attributes","computed","omit","onCancel","_c","_b","onConfirm","DialogsPlugin","options","mountNodeId","mountNode","vNode","createVNode","h","Dialogs","render","StashColors","StashCommonColors","StashPrimaryColors","index","i18n","storage","staticPath","images","googleMapsApiKey","menus","modals","toasts","dialogs","Vue3TouchEvents","locale","overridePersistentStorage","MenusPlugin","ModalsPlugin","ToastsPlugin"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ var n = /* @__PURE__ */ ((r) => (r.Error = "error", r.Warning = "warning", r.Info = "info", r.Success = "success", r))(n || {}), c = /* @__PURE__ */ ((r) => (r.Error = "red-500", r.Warning = "orange-500", r.Info = "blue-500", r.Success = "green-500", r))(c || {}), e = /* @__PURE__ */ ((r) => (r.Error = "hazard", r.Warning = "circle-warning", r.Info = "circle-info", r.Success = "circle-check", r))(e || {});
2
+ export {
3
+ e as S,
4
+ c as a,
5
+ n as b
6
+ };
7
+ //# sourceMappingURL=statusLevels-a8b041f4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusLevels-a8b041f4.js","sources":["../types/statusLevels.ts"],"sourcesContent":["export enum StatusSeverities {\n Error = 'error',\n Warning = 'warning',\n Info = 'info',\n Success = 'success',\n}\n\nexport enum StatusColors {\n Error = 'red-500',\n Warning = 'orange-500',\n Info = 'blue-500',\n Success = 'green-500',\n}\n\nexport enum StatusIcons {\n Error = 'hazard',\n Warning = 'circle-warning',\n Info = 'circle-info',\n Success = 'circle-check',\n}\n\nexport type StatusSeverity = `${StatusSeverities}`;\nexport type StatusColor = `${StatusColors}`;\nexport type StatusIcon = `${StatusIcons}`;\n"],"names":["StatusSeverities","StatusColors","StatusIcons"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,OAAO,QACPA,EAAA,UAAU,WAJAA,IAAAA,KAAA,CAAA,CAAA,GAOAC,sBAAAA,OACVA,EAAA,QAAQ,WACRA,EAAA,UAAU,cACVA,EAAA,OAAO,YACPA,EAAA,UAAU,aAJAA,IAAAA,KAAA,CAAA,CAAA,GAOAC,sBAAAA,OACVA,EAAA,QAAQ,UACRA,EAAA,UAAU,kBACVA,EAAA,OAAO,eACPA,EAAA,UAAU,gBAJAA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -42,7 +42,6 @@ declare const _default: {
42
42
  inherit: string;
43
43
  current: string;
44
44
  purple: {
45
- DEFAULT: string;
46
45
  900: string;
47
46
  800: string;
48
47
  700: string;
@@ -54,7 +53,6 @@ declare const _default: {
54
53
  100: string;
55
54
  };
56
55
  royal: {
57
- DEFAULT: string;
58
56
  900: string;
59
57
  800: string;
60
58
  700: string;
@@ -66,7 +64,6 @@ declare const _default: {
66
64
  100: string;
67
65
  };
68
66
  blue: {
69
- DEFAULT: string;
70
67
  900: string;
71
68
  800: string;
72
69
  700: string;
@@ -78,7 +75,6 @@ declare const _default: {
78
75
  100: string;
79
76
  };
80
77
  teal: {
81
- DEFAULT: string;
82
78
  900: string;
83
79
  800: string;
84
80
  700: string;
@@ -90,7 +86,6 @@ declare const _default: {
90
86
  100: string;
91
87
  };
92
88
  green: {
93
- DEFAULT: string;
94
89
  900: string;
95
90
  800: string;
96
91
  700: string;
@@ -102,7 +97,6 @@ declare const _default: {
102
97
  100: string;
103
98
  };
104
99
  seafoam: {
105
- DEFAULT: string;
106
100
  900: string;
107
101
  800: string;
108
102
  700: string;
@@ -114,7 +108,6 @@ declare const _default: {
114
108
  100: string;
115
109
  };
116
110
  yellow: {
117
- DEFAULT: string;
118
111
  900: string;
119
112
  800: string;
120
113
  700: string;
@@ -126,7 +119,6 @@ declare const _default: {
126
119
  100: string;
127
120
  };
128
121
  orange: {
129
- DEFAULT: string;
130
122
  900: string;
131
123
  800: string;
132
124
  700: string;
@@ -138,7 +130,6 @@ declare const _default: {
138
130
  100: string;
139
131
  };
140
132
  red: {
141
- DEFAULT: string;
142
133
  900: string;
143
134
  800: string;
144
135
  700: string;
@@ -150,7 +141,6 @@ declare const _default: {
150
141
  100: string;
151
142
  };
152
143
  ice: {
153
- DEFAULT: string;
154
144
  900: string;
155
145
  800: string;
156
146
  700: string;
@@ -5,19 +5,31 @@ const p = {
5
5
  "./src/**/*.{vue,ts,tsx,js,jsx,mdx}"
6
6
  ],
7
7
  prefix: "tw-",
8
+ // ALWAYS include these color related classes. This allows us to dynamically
9
+ // create color classes based on a color prop in our components instead of
10
+ // listing the full class name like is encouraged in the docs.
11
+ // https://tailwindcss.com/docs/content-configuration#using-regular-expressions
12
+ //
13
+ // Note: If any stash components change which color classes they dynamically build,
14
+ // this needs to change. Keep this list as small as possible.
15
+ //
16
+ // Note: Patterns can only match against base utility names like /bg-red-.+/, and won’t match if the pattern
17
+ // includes a variant modifier like /hover:bg-red-.+/.
8
18
  safelist: [
9
- // ALWAYS include these color related classes. This allows us to dynamically
10
- // create color classes based on a color prop in our components instead of
11
- // listing the full class name like is encouraged in the docs.
12
- // https://tailwindcss.com/docs/content-configuration#using-regular-expressions
13
- // Note: if any stash components change which color classes they dynamically build,
14
- // this needs to change.
15
19
  {
16
- pattern: /(bg|text|border|stroke)-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice|white)(-400)?/
17
- // Do we need variants for these in any scenario?
18
- // variants: ['md', 'lg', 'hover'],
20
+ pattern: /(bg|text|border)-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)(-[1,5,7]00)?$/
19
21
  },
20
- // These are custom classes that we might not use in our Stash code but we
22
+ // Illustration.vue stroke color.
23
+ {
24
+ pattern: /stroke-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)-500$/
25
+ },
26
+ // Illustration.vue dynamic text.
27
+ {
28
+ pattern: /text-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)-400$/
29
+ },
30
+ // Dynamic bg color for components using the colorScheme function (Chip, Avatar, etc.)
31
+ "bg-ice-200",
32
+ // These are custom classes that we might not use in our Stash code, but we
21
33
  // define in Stash and want to keep in the final CSS for downstream use.
22
34
  "heading-jumbo"
23
35
  ],
@@ -48,7 +60,6 @@ const p = {
48
60
  // https://tailwindcss.com/docs/upgrade-guide#fill-and-stroke-use-color-palette
49
61
  current: "currentColor",
50
62
  purple: {
51
- DEFAULT: "#1E164B",
52
63
  900: "#06040F",
53
64
  800: "#0C091E",
54
65
  700: "#120D2D",
@@ -60,7 +71,6 @@ const p = {
60
71
  100: "#D2D0DB"
61
72
  },
62
73
  royal: {
63
- DEFAULT: "#303AB2",
64
74
  900: "#0A0C24",
65
75
  800: "#131747",
66
76
  700: "#1D236B",
@@ -72,7 +82,6 @@ const p = {
72
82
  100: "#D6D8F0"
73
83
  },
74
84
  blue: {
75
- DEFAULT: "#0072F0",
76
85
  900: "#001730",
77
86
  800: "#002E60",
78
87
  700: "#004490",
@@ -84,7 +93,6 @@ const p = {
84
93
  100: "#CCE3FC"
85
94
  },
86
95
  teal: {
87
- DEFAULT: "#01BBC8",
88
96
  900: "#002528",
89
97
  800: "#004B50",
90
98
  700: "#017078",
@@ -96,7 +104,6 @@ const p = {
96
104
  100: "#CCF1F4"
97
105
  },
98
106
  green: {
99
- DEFAULT: "#1DAE61",
100
107
  900: "#062313",
101
108
  800: "#0C4627",
102
109
  700: "#11683A",
@@ -108,7 +115,6 @@ const p = {
108
115
  100: "#D2EFDF"
109
116
  },
110
117
  seafoam: {
111
- DEFAULT: "#3CDBC0",
112
118
  900: "#0C2C26",
113
119
  800: "#18584D",
114
120
  700: "#248373",
@@ -120,7 +126,6 @@ const p = {
120
126
  100: "#D8F8F2"
121
127
  },
122
128
  yellow: {
123
- DEFAULT: "#FFD400",
124
129
  900: "#332A00",
125
130
  800: "#665500",
126
131
  700: "#997F00",
@@ -132,7 +137,6 @@ const p = {
132
137
  100: "#FFF6CC"
133
138
  },
134
139
  orange: {
135
- DEFAULT: "#FF9425",
136
140
  900: "#331E07",
137
141
  800: "#663B0F",
138
142
  700: "#995916",
@@ -144,7 +148,6 @@ const p = {
144
148
  100: "#FFEAD3"
145
149
  },
146
150
  red: {
147
- DEFAULT: "#E4002B",
148
151
  900: "#2E0009",
149
152
  800: "#5B0011",
150
153
  700: "#89001A",
@@ -156,7 +159,6 @@ const p = {
156
159
  100: "#FACCD5"
157
160
  },
158
161
  ice: {
159
- DEFAULT: "#C5C9D4",
160
162
  900: "#27282A",
161
163
  800: "#4F5055",
162
164
  700: "#76797F",
@@ -1 +1 @@
1
- {"version":3,"file":"tailwind-base.js","sources":["../tailwind-base.ts"],"sourcesContent":["import type { Config } from 'tailwindcss';\n\nimport { SCREEN_SIZES } from './src/constants';\n\nexport default {\n content: [\n // Todo: can/should this be optimized? Where should we be looking for classes?\n './src/**/*.{vue,ts,tsx,js,jsx,mdx}',\n ],\n\n prefix: 'tw-',\n\n safelist: [\n // ALWAYS include these color related classes. This allows us to dynamically\n // create color classes based on a color prop in our components instead of\n // listing the full class name like is encouraged in the docs.\n // https://tailwindcss.com/docs/content-configuration#using-regular-expressions\n // Note: if any stash components change which color classes they dynamically build,\n // this needs to change.\n {\n pattern: /(bg|text|border|stroke)-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice|white)(-400)?/,\n // Do we need variants for these in any scenario?\n // variants: ['md', 'lg', 'hover'],\n },\n\n // These are custom classes that we might not use in our Stash code but we\n // define in Stash and want to keep in the final CSS for downstream use.\n 'heading-jumbo',\n ],\n\n // Conflicts with our own custom classes\n // https://tailwindcss.com/docs/content-configuration#discarding-classes\n blocklist: ['container'],\n\n theme: {\n screens: SCREEN_SIZES,\n\n // Creates classes like `.sofia` that applies the appropriate font family\n // to our typography elements.\n fontFamily: {\n mono: ['monospace'],\n sofia: ['Sofia', 'sans-serif'],\n },\n\n colors: {\n white: '#fff',\n black: '#000',\n transparent: 'transparent',\n inherit: 'inherit',\n\n // --color-white: #ffffff;\n // --color-black: #000000;\n // --color-blue-hover: rgba(0,114,240,0.74902);\n // --color-red-hover: rgba(228,0,43,0.74902);\n // --color-ice-700-hover: rgba(118,121,127,0.11765);\n // --color-white-hover: rgba(255,255,255,0.11765);\n // --button-secondary-blue-hover: rgba(0,114,240,0.11765);\n // --button-secondary-red-hover: rgba(228,0,43,0.11765);\n\n // https://tailwindcss.com/docs/upgrade-guide#fill-and-stroke-use-color-palette\n current: 'currentColor',\n\n purple: {\n DEFAULT: '#1E164B',\n 900: '#06040F',\n 800: '#0C091E',\n 700: '#120D2D',\n 600: '#18123C',\n 500: '#1E164B',\n 400: '#4B456F',\n 300: '#787393',\n 200: '#A5A2B7',\n 100: '#D2D0DB',\n },\n\n royal: {\n DEFAULT: '#303AB2',\n 900: '#0A0C24',\n 800: '#131747',\n 700: '#1D236B',\n 600: '#262E8E',\n 500: '#303AB2',\n 400: '#5961C1',\n 300: '#8389D1',\n 200: '#ACB0E0',\n 100: '#D6D8F0',\n },\n\n blue: {\n DEFAULT: '#0072F0',\n 900: '#001730',\n 800: '#002E60',\n 700: '#004490',\n 600: '#005BC0',\n 500: '#0072F0',\n 400: '#338EF3',\n 300: '#66AAF6',\n 200: '#99C7F9',\n 100: '#CCE3FC',\n },\n\n teal: {\n DEFAULT: '#01BBC8',\n 900: '#002528',\n 800: '#004B50',\n 700: '#017078',\n 600: '#0196A0',\n 500: '#01BBC8',\n 400: '#34C9D3',\n 300: '#67D6DE',\n 200: '#99E4E9',\n 100: '#CCF1F4',\n },\n\n green: {\n DEFAULT: '#1DAE61',\n 900: '#062313',\n 800: '#0C4627',\n 700: '#11683A',\n 600: '#178B4E',\n 500: '#1DAE61',\n 400: '#4ABE81',\n 300: '#77CEA0',\n 200: '#A5DFC0',\n 100: '#D2EFDF',\n },\n\n seafoam: {\n DEFAULT: '#3CDBC0',\n 900: '#0C2C26',\n 800: '#18584D',\n 700: '#248373',\n 600: '#30AF9A',\n 500: '#3CDBC0',\n 400: '#63E2CD',\n 300: '#8AE9D9',\n 200: '#B1F1E6',\n 100: '#D8F8F2',\n },\n\n yellow: {\n DEFAULT: '#FFD400',\n 900: '#332A00',\n 800: '#665500',\n 700: '#997F00',\n 600: '#CCAA00',\n 500: '#FFD400',\n 400: '#FFDD33',\n 300: '#FFE566',\n 200: '#FFEE99',\n 100: '#FFF6CC',\n },\n\n orange: {\n DEFAULT: '#FF9425',\n 900: '#331E07',\n 800: '#663B0F',\n 700: '#995916',\n 600: '#CC761E',\n 500: '#FF9425',\n 400: '#FFA951',\n 300: '#FFBF7C',\n 200: '#FFD4A8',\n 100: '#FFEAD3',\n },\n\n red: {\n DEFAULT: '#E4002B',\n 900: '#2E0009',\n 800: '#5B0011',\n 700: '#89001A',\n 600: '#B60022',\n 500: '#E4002B',\n 400: '#E93355',\n 300: '#EF6680',\n 200: '#F499AA',\n 100: '#FACCD5',\n },\n\n ice: {\n DEFAULT: '#C5C9D4',\n 900: '#27282A',\n 800: '#4F5055',\n 700: '#76797F',\n 600: '#9EA1AA',\n 500: '#C5C9D4',\n 400: '#D1D4DD',\n 300: '#DCDFE5',\n 200: '#E8E9EE',\n 100: '#F3F4F6',\n },\n },\n\n // Custom additions to Tailwind's existing utility classes.\n // https://tailwindcss.com/docs/theme#extending-the-default-theme\n extend: {\n backgroundImage: {\n 'scroll-shadow': 'linear-gradient(0deg, rgb(197 201 212 / 35%), rgb(38 38 38 / 0%))',\n },\n\n borderWidth: {\n 6: '6px',\n 10: '10px',\n 12: '12px',\n },\n\n // .tw-shadow-*\n boxShadow: {\n // Modules or Images if necessary (Previously Shadow Low)\n DEFAULT: '0px 2px 2px 0px rgba(38, 38, 38, 0.05), 0px 2px 6px 0px rgba(38, 38, 38, 0.10)',\n\n // Cards (product, license, user where applicable)\n md: '0px 3px 3px 1px rgba(38, 38, 38, 0.05), 0px 3px 12px 1px rgba(38, 38, 38, 0.10)',\n\n // Scroll Lock Modules like Global Nav or the Bulk Select Mobile Pattern\n lg: '0px 6px 6px 0px rgba(38, 38, 38, 0.05), 0px 6px 18px 2px rgba(38, 38, 38, 0.10), 0px 6px 18px 2px rgba(38, 38, 38, 0.15)',\n\n // Dropdowns, Selects, Menus\n xl: '0px 12px 12px 0px rgba(38, 38, 38, 0.05), 0px 12px 12px 2px rgba(38, 38, 38, 0.10), 0px 12px 24px 2px rgba(38, 38, 38, 0.15)',\n\n // Floating UIs like the Zendesk Help center\n '2xl': '0px 18px 18px 4px rgba(38, 38, 38, 0.05), 0px 18px 18px 4px rgba(38, 38, 38, 0.10), 0px 18px 30px 0px rgba(38, 38, 38, 0.15)',\n\n // Dialogs, Modals and any other Overlay types (Previously Shadow High)\n '3xl': '0px 24px 24px 0px rgba(38, 38, 38, 0.05), 0px 24px 24px 8px rgba(38, 38, 38, 0.10), 0px 24px 48px 8px rgba(38, 38, 38, 0.15)',\n\n // @deprecated - use `tw-shadow` instead!\n low: '0 2px 4px rgba(0, 15, 35, 0.06)',\n\n // @deprecated - use `tw-shadow-3xl` instead!\n high: '0 4px 8px rgba(0, 15, 35, 0.06)',\n },\n\n // .tw-text-*\n // Note: All these font SIZES match tailwind! We're only overriding default\n // line-height to match LL typography & adjust for Sofia.\n fontSize: {\n '2xl': [\n '1.5rem',\n {\n lineHeight: 'calc(32/24)',\n },\n ],\n\n xl: [\n '1.25rem',\n {\n lineHeight: 'calc(28/20)',\n },\n ],\n\n base: [\n '1rem',\n {\n lineHeight: 'calc(24/16)',\n },\n ],\n\n sm: [\n '0.875rem',\n {\n lineHeight: 'calc(20/14)',\n },\n ],\n\n xs: [\n '0.75rem',\n {\n lineHeight: 'calc(16/12)',\n },\n ],\n },\n\n height: {\n input: '2.25rem', // 36px\n logo: '1.375rem', // 22px\n topbar: '3.5rem', // 56px\n chip: '1.375rem', // 22px\n },\n\n // .tw-max-h-*\n maxHeight: {\n 'select-menu': '18.75rem', // 300px - sharable with dropdown, date, etc.\n },\n\n // .tw-leading-*\n lineHeight: {\n initial: 'initial',\n // for backwards compatibility with LL typography line-heights\n body: '20/14',\n small: '16/12',\n button: '24/14',\n },\n\n // .tw-min-w-*\n minWidth: {\n auto: 'auto',\n input: '9rem', // 144px\n },\n\n // .tw-max-w-*\n maxWidth: {\n field: '18rem', // 288px - standard width used for form field elements\n initial: 'initial',\n container: '87.5rem', // 1400px - max width used for page content\n },\n\n // .tw-rotate-*\n rotate: {\n '270': '270deg',\n },\n\n // https://tailwindcss.com/docs/customizing-spacing\n spacing: {\n 15: '3.75rem', // 60px (same as ll-spacing-6 to help migrate)\n // This is the only tailwind setting dependent on a variable and this is because the\n // variable actually has responsive styles baked in, and there's no way to do that\n // with tailwind. Defined in `styles/base.css`.\n gutter: 'var(--grid-gutter)',\n sidebar: '17.5rem' // 280px\n },\n\n // .tw-w-*\n width: {\n container: '87.5rem', // 1400px\n 'inline-edit': '8.75rem', // 140px - standard width used for ll-inline-edit elements\n 'inline-edit-small': '5.6rem', // 90px - standard width used for smaller ll-inline-edit elements\n sidebar: '17.5rem', // 280px\n 'select-menu': '5rem', // 80px\n },\n\n // .tw-z-*\n zIndex: {\n '-10': '-10',\n '-20': '-20',\n '-30': '-30',\n behind: '-1',\n content: '100', // general content on the page\n control: '200', // for UI controls, widgets, buttons, etc. These are given one level higher priority\n page: '300', // applies to page-level blocks, ie. site-header, side-nav, etc\n screen: '400', // covers all \"standard\" things visible on the screen: page-level blocks, UI/control things, general content\n modal: '1000', // covers all things except dialogs, including other elements promoted along the z-axis.\n dialog: '1001', // covers all things, including other elements promoted along the z-axis.\n },\n\n animation: {\n grow: 'grow 1s',\n pulse: 'pulse 2s cubic-bezier(.4, 0, .6,1) infinite',\n shake: 'shake 1s ease 0s 1 normal none running',\n },\n\n keyframes: {\n grow: {\n 'from, to': {\n transform: 'scale3d(1, 1, 1)',\n },\n '50%': {\n transform: 'scale3d(1.25, 1.25, 1.25)'\n }\n },\n\n pulse: {\n '0%, 100%': { opacity: '1' },\n '50%': { opacity: '0.25' },\n },\n\n shake: {\n 'from, to': {\n transform: 'translate3d(0, 0, 0)',\n },\n '10%, 30%, 50%, 70%, 90%': {\n transform: 'translate3d(-10px, 0, 0)',\n },\n '20%, 40%, 60%, 80%': {\n transform: 'translate3d(10px, 0, 0)',\n },\n },\n },\n\n // .tw-ease-*\n transitionTimingFunction: {\n 'fast-out-slow-in': 'cubic-bezier(0.4, 0, 0.2, 1)',\n 'linear-out-slow-in': 'cubic-bezier(0, 0, 0.2, 1)',\n 'fast-out-linear-in': 'cubic-bezier(0.4, 0, 1, 1)',\n 'ease-in-out': 'cubic-bezier(0.4, 0, 0.6, 1)',\n 'fast-in-fast-out': 'cubic-bezier(0.25, 0.8, 0.25, 1)',\n swing: 'cubic-bezier(0.25, 0.8, 0.5, 1)',\n },\n\n // .tw-duration-*\n transitionDuration: {\n snap: '0.1s',\n fast: '0.165s',\n brisk: '0.333s',\n slow: '0.5s',\n sleepy: '1s',\n },\n },\n },\n\n corePlugins: {\n // because we have our own\n container: false,\n preflight: false,\n },\n // TODO: update prettier/eslint to support TS 4.9+ so we can use the `satisfies` operator and still know we have a semicolon πŸ™„\n // eslint-disable-next-line\n} satisfies Config;\n\n/**\n * Utility to return a holistic array of tailwind color classes.\n *\n * This function will allow downstream applications to easily **blocklist** the same color\n * classes that are safelisted in the base preset, just in case they need to prevent unnecessarily\n * duplicating classes in their final build.\n *\n * @see {@link https://tailwindcss.com/docs/content-configuration#discarding-classes}\n */\nexport const getColorClasses = () => {\n const classes: Array<string> = [];\n\n ['purple', 'royal', 'blue', 'seafoam', 'teal', 'green', 'yellow', 'orange', 'red', 'ice'].forEach((color) => {\n ['bg', 'text', 'border', 'stroke'].forEach((plugin) => {\n ['', '400'].forEach((shade) => {\n classes.push(`tw-${plugin}-${color}${shade ? `-${shade}` : ''}`);\n });\n });\n });\n\n return classes;\n};\n"],"names":["tailwindBase","SCREEN_SIZES","getColorClasses","classes","color","plugin","shade"],"mappings":";AAIA,MAAeA,IAAA;AAAA,EACb,SAAS;AAAA;AAAA,IAEP;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,EAER,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOR;AAAA,MACE,SAAS;AAAA;AAAA;AAAA,IAGX;AAAA;AAAA;AAAA,IAIA;AAAA,EACF;AAAA;AAAA;AAAA,EAIA,WAAW,CAAC,WAAW;AAAA,EAEvB,OAAO;AAAA,IACL,SAASC;AAAA;AAAA;AAAA,IAIT,YAAY;AAAA,MACV,MAAM,CAAC,WAAW;AAAA,MAClB,OAAO,CAAC,SAAS,YAAY;AAAA,IAC/B;AAAA,IAEA,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,aAAa;AAAA,MACb,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYT,SAAS;AAAA,MAET,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,SAAS;AAAA,QACP,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,KAAK;AAAA,QACH,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,MAEA,KAAK;AAAA,QACH,SAAS;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,IACF;AAAA;AAAA;AAAA,IAIA,QAAQ;AAAA,MACN,iBAAiB;AAAA,QACf,iBAAiB;AAAA,MACnB;AAAA,MAEA,aAAa;AAAA,QACX,GAAG;AAAA,QACH,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA;AAAA,MAGA,WAAW;AAAA;AAAA,QAET,SAAS;AAAA;AAAA,QAGT,IAAI;AAAA;AAAA,QAGJ,IAAI;AAAA;AAAA,QAGJ,IAAI;AAAA;AAAA,QAGJ,OAAO;AAAA;AAAA,QAGP,OAAO;AAAA;AAAA,QAGP,KAAK;AAAA;AAAA,QAGL,MAAM;AAAA,MACR;AAAA;AAAA;AAAA;AAAA,MAKA,UAAU;AAAA,QACR,OAAO;AAAA,UACL;AAAA,UACA;AAAA,YACE,YAAY;AAAA,UACd;AAAA,QACF;AAAA,QAEA,IAAI;AAAA,UACF;AAAA,UACA;AAAA,YACE,YAAY;AAAA,UACd;AAAA,QACF;AAAA,QAEA,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,YACE,YAAY;AAAA,UACd;AAAA,QACF;AAAA,QAEA,IAAI;AAAA,UACF;AAAA,UACA;AAAA,YACE,YAAY;AAAA,UACd;AAAA,QACF;AAAA,QAEA,IAAI;AAAA,UACF;AAAA,UACA;AAAA,YACE,YAAY;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAAA,MAEA,QAAQ;AAAA,QACN,OAAO;AAAA;AAAA,QACP,MAAM;AAAA;AAAA,QACN,QAAQ;AAAA;AAAA,QACR,MAAM;AAAA;AAAA,MACR;AAAA;AAAA,MAGA,WAAW;AAAA,QACT,eAAe;AAAA;AAAA,MACjB;AAAA;AAAA,MAGA,YAAY;AAAA,QACV,SAAS;AAAA;AAAA,QAET,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA;AAAA,MAGA,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA;AAAA,MACT;AAAA;AAAA,MAGA,UAAU;AAAA,QACR,OAAO;AAAA;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA;AAAA,MACb;AAAA;AAAA,MAGA,QAAQ;AAAA,QACN,KAAO;AAAA,MACT;AAAA;AAAA,MAGA,SAAS;AAAA,QACP,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,QAIJ,QAAQ;AAAA,QACR,SAAS;AAAA;AAAA,MACX;AAAA;AAAA,MAGA,OAAO;AAAA,QACL,WAAW;AAAA;AAAA,QACX,eAAe;AAAA;AAAA,QACf,qBAAqB;AAAA;AAAA,QACrB,SAAS;AAAA;AAAA,QACT,eAAe;AAAA;AAAA,MACjB;AAAA;AAAA,MAGA,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS;AAAA;AAAA,QACT,SAAS;AAAA;AAAA,QACT,MAAM;AAAA;AAAA,QACN,QAAQ;AAAA;AAAA,QACR,OAAO;AAAA;AAAA,QACP,QAAQ;AAAA;AAAA,MACV;AAAA,MAEA,WAAW;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,MAEA,WAAW;AAAA,QACT,MAAM;AAAA,UACJ,YAAY;AAAA,YACV,WAAW;AAAA,UACb;AAAA,UACA,OAAO;AAAA,YACL,WAAW;AAAA,UACb;AAAA,QACF;AAAA,QAEA,OAAO;AAAA,UACL,YAAY,EAAE,SAAS,IAAI;AAAA,UAC3B,OAAO,EAAE,SAAS,OAAO;AAAA,QAC3B;AAAA,QAEA,OAAO;AAAA,UACL,YAAY;AAAA,YACV,WAAW;AAAA,UACb;AAAA,UACA,2BAA2B;AAAA,YACzB,WAAW;AAAA,UACb;AAAA,UACA,sBAAsB;AAAA,YACpB,WAAW;AAAA,UACb;AAAA,QACF;AAAA,MACF;AAAA;AAAA,MAGA,0BAA0B;AAAA,QACxB,oBAAoB;AAAA,QACpB,sBAAsB;AAAA,QACtB,sBAAsB;AAAA,QACtB,eAAe;AAAA,QACf,oBAAoB;AAAA,QACpB,OAAO;AAAA,MACT;AAAA;AAAA,MAGA,oBAAoB;AAAA,QAClB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEA,aAAa;AAAA;AAAA,IAEX,WAAW;AAAA,IACX,WAAW;AAAA,EACb;AAAA;AAAA;AAGF,GAWaC,IAAkB,MAAM;AACnC,QAAMC,IAAyB,CAAA;AAE/B,UAAC,UAAU,SAAS,QAAQ,WAAW,QAAQ,SAAS,UAAU,UAAU,OAAO,KAAK,EAAE,QAAQ,CAACC,MAAU;AAC3G,KAAC,MAAM,QAAQ,UAAU,QAAQ,EAAE,QAAQ,CAACC,MAAW;AACrD,OAAC,IAAI,KAAK,EAAE,QAAQ,CAACC,MAAU;AACrB,QAAAH,EAAA,KAAK,MAAME,CAAM,IAAID,CAAK,GAAGE,IAAQ,IAAIA,CAAK,KAAK,EAAE,EAAE;AAAA,MAAA,CAChE;AAAA,IAAA,CACF;AAAA,EAAA,CACF,GAEMH;AACT;"}
1
+ {"version":3,"file":"tailwind-base.js","sources":["../tailwind-base.ts"],"sourcesContent":["import type { Config } from 'tailwindcss';\n\nimport { SCREEN_SIZES } from './src/constants';\n\nexport default {\n content: [\n // Todo: can/should this be optimized? Where should we be looking for classes?\n './src/**/*.{vue,ts,tsx,js,jsx,mdx}',\n ],\n\n prefix: 'tw-',\n\n // ALWAYS include these color related classes. This allows us to dynamically\n // create color classes based on a color prop in our components instead of\n // listing the full class name like is encouraged in the docs.\n // https://tailwindcss.com/docs/content-configuration#using-regular-expressions\n //\n // Note: If any stash components change which color classes they dynamically build,\n // this needs to change. Keep this list as small as possible.\n //\n // Note: Patterns can only match against base utility names like /bg-red-.+/, and won’t match if the pattern\n // includes a variant modifier like /hover:bg-red-.+/.\n safelist: [\n {\n pattern: /(bg|text|border)-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)(-[1,5,7]00)?$/,\n },\n // Illustration.vue stroke color.\n {\n pattern: /stroke-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)-500$/,\n },\n // Illustration.vue dynamic text.\n {\n pattern: /text-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)-400$/,\n },\n // Dynamic bg color for components using the colorScheme function (Chip, Avatar, etc.)\n 'bg-ice-200',\n // These are custom classes that we might not use in our Stash code, but we\n // define in Stash and want to keep in the final CSS for downstream use.\n 'heading-jumbo',\n ],\n\n // Conflicts with our own custom classes\n // https://tailwindcss.com/docs/content-configuration#discarding-classes\n blocklist: ['container'],\n\n theme: {\n screens: SCREEN_SIZES,\n\n // Creates classes like `.sofia` that applies the appropriate font family\n // to our typography elements.\n fontFamily: {\n mono: ['monospace'],\n sofia: ['Sofia', 'sans-serif'],\n },\n\n colors: {\n white: '#fff',\n black: '#000',\n transparent: 'transparent',\n inherit: 'inherit',\n\n // --color-white: #ffffff;\n // --color-black: #000000;\n // --color-blue-hover: rgba(0,114,240,0.74902);\n // --color-red-hover: rgba(228,0,43,0.74902);\n // --color-ice-700-hover: rgba(118,121,127,0.11765);\n // --color-white-hover: rgba(255,255,255,0.11765);\n // --button-secondary-blue-hover: rgba(0,114,240,0.11765);\n // --button-secondary-red-hover: rgba(228,0,43,0.11765);\n\n // https://tailwindcss.com/docs/upgrade-guide#fill-and-stroke-use-color-palette\n current: 'currentColor',\n\n purple: {\n 900: '#06040F',\n 800: '#0C091E',\n 700: '#120D2D',\n 600: '#18123C',\n 500: '#1E164B',\n 400: '#4B456F',\n 300: '#787393',\n 200: '#A5A2B7',\n 100: '#D2D0DB',\n },\n\n royal: {\n 900: '#0A0C24',\n 800: '#131747',\n 700: '#1D236B',\n 600: '#262E8E',\n 500: '#303AB2',\n 400: '#5961C1',\n 300: '#8389D1',\n 200: '#ACB0E0',\n 100: '#D6D8F0',\n },\n\n blue: {\n 900: '#001730',\n 800: '#002E60',\n 700: '#004490',\n 600: '#005BC0',\n 500: '#0072F0',\n 400: '#338EF3',\n 300: '#66AAF6',\n 200: '#99C7F9',\n 100: '#CCE3FC',\n },\n\n teal: {\n 900: '#002528',\n 800: '#004B50',\n 700: '#017078',\n 600: '#0196A0',\n 500: '#01BBC8',\n 400: '#34C9D3',\n 300: '#67D6DE',\n 200: '#99E4E9',\n 100: '#CCF1F4',\n },\n\n green: {\n 900: '#062313',\n 800: '#0C4627',\n 700: '#11683A',\n 600: '#178B4E',\n 500: '#1DAE61',\n 400: '#4ABE81',\n 300: '#77CEA0',\n 200: '#A5DFC0',\n 100: '#D2EFDF',\n },\n\n seafoam: {\n 900: '#0C2C26',\n 800: '#18584D',\n 700: '#248373',\n 600: '#30AF9A',\n 500: '#3CDBC0',\n 400: '#63E2CD',\n 300: '#8AE9D9',\n 200: '#B1F1E6',\n 100: '#D8F8F2',\n },\n\n yellow: {\n 900: '#332A00',\n 800: '#665500',\n 700: '#997F00',\n 600: '#CCAA00',\n 500: '#FFD400',\n 400: '#FFDD33',\n 300: '#FFE566',\n 200: '#FFEE99',\n 100: '#FFF6CC',\n },\n\n orange: {\n 900: '#331E07',\n 800: '#663B0F',\n 700: '#995916',\n 600: '#CC761E',\n 500: '#FF9425',\n 400: '#FFA951',\n 300: '#FFBF7C',\n 200: '#FFD4A8',\n 100: '#FFEAD3',\n },\n\n red: {\n 900: '#2E0009',\n 800: '#5B0011',\n 700: '#89001A',\n 600: '#B60022',\n 500: '#E4002B',\n 400: '#E93355',\n 300: '#EF6680',\n 200: '#F499AA',\n 100: '#FACCD5',\n },\n\n ice: {\n 900: '#27282A',\n 800: '#4F5055',\n 700: '#76797F',\n 600: '#9EA1AA',\n 500: '#C5C9D4',\n 400: '#D1D4DD',\n 300: '#DCDFE5',\n 200: '#E8E9EE',\n 100: '#F3F4F6',\n },\n },\n\n // Custom additions to Tailwind's existing utility classes.\n // https://tailwindcss.com/docs/theme#extending-the-default-theme\n extend: {\n backgroundImage: {\n 'scroll-shadow': 'linear-gradient(0deg, rgb(197 201 212 / 35%), rgb(38 38 38 / 0%))',\n },\n\n borderWidth: {\n 6: '6px',\n 10: '10px',\n 12: '12px',\n },\n\n // .tw-shadow-*\n boxShadow: {\n // Modules or Images if necessary (Previously Shadow Low)\n DEFAULT: '0px 2px 2px 0px rgba(38, 38, 38, 0.05), 0px 2px 6px 0px rgba(38, 38, 38, 0.10)',\n\n // Cards (product, license, user where applicable)\n md: '0px 3px 3px 1px rgba(38, 38, 38, 0.05), 0px 3px 12px 1px rgba(38, 38, 38, 0.10)',\n\n // Scroll Lock Modules like Global Nav or the Bulk Select Mobile Pattern\n lg: '0px 6px 6px 0px rgba(38, 38, 38, 0.05), 0px 6px 18px 2px rgba(38, 38, 38, 0.10), 0px 6px 18px 2px rgba(38, 38, 38, 0.15)',\n\n // Dropdowns, Selects, Menus\n xl: '0px 12px 12px 0px rgba(38, 38, 38, 0.05), 0px 12px 12px 2px rgba(38, 38, 38, 0.10), 0px 12px 24px 2px rgba(38, 38, 38, 0.15)',\n\n // Floating UIs like the Zendesk Help center\n '2xl': '0px 18px 18px 4px rgba(38, 38, 38, 0.05), 0px 18px 18px 4px rgba(38, 38, 38, 0.10), 0px 18px 30px 0px rgba(38, 38, 38, 0.15)',\n\n // Dialogs, Modals and any other Overlay types (Previously Shadow High)\n '3xl': '0px 24px 24px 0px rgba(38, 38, 38, 0.05), 0px 24px 24px 8px rgba(38, 38, 38, 0.10), 0px 24px 48px 8px rgba(38, 38, 38, 0.15)',\n\n // @deprecated - use `tw-shadow` instead!\n low: '0 2px 4px rgba(0, 15, 35, 0.06)',\n\n // @deprecated - use `tw-shadow-3xl` instead!\n high: '0 4px 8px rgba(0, 15, 35, 0.06)',\n },\n\n // .tw-text-*\n // Note: All these font SIZES match tailwind! We're only overriding default\n // line-height to match LL typography & adjust for Sofia.\n fontSize: {\n '2xl': [\n '1.5rem',\n {\n lineHeight: 'calc(32/24)',\n },\n ],\n\n xl: [\n '1.25rem',\n {\n lineHeight: 'calc(28/20)',\n },\n ],\n\n base: [\n '1rem',\n {\n lineHeight: 'calc(24/16)',\n },\n ],\n\n sm: [\n '0.875rem',\n {\n lineHeight: 'calc(20/14)',\n },\n ],\n\n xs: [\n '0.75rem',\n {\n lineHeight: 'calc(16/12)',\n },\n ],\n },\n\n height: {\n input: '2.25rem', // 36px\n logo: '1.375rem', // 22px\n topbar: '3.5rem', // 56px\n chip: '1.375rem', // 22px\n },\n\n // .tw-max-h-*\n maxHeight: {\n 'select-menu': '18.75rem', // 300px - sharable with dropdown, date, etc.\n },\n\n // .tw-leading-*\n lineHeight: {\n initial: 'initial',\n // for backwards compatibility with LL typography line-heights\n body: '20/14',\n small: '16/12',\n button: '24/14',\n },\n\n // .tw-min-w-*\n minWidth: {\n auto: 'auto',\n input: '9rem', // 144px\n },\n\n // .tw-max-w-*\n maxWidth: {\n field: '18rem', // 288px - standard width used for form field elements\n initial: 'initial',\n container: '87.5rem', // 1400px - max width used for page content\n },\n\n // .tw-rotate-*\n rotate: {\n '270': '270deg',\n },\n\n // https://tailwindcss.com/docs/customizing-spacing\n spacing: {\n 15: '3.75rem', // 60px (same as ll-spacing-6 to help migrate)\n // This is the only tailwind setting dependent on a variable and this is because the\n // variable actually has responsive styles baked in, and there's no way to do that\n // with tailwind. Defined in `styles/base.css`.\n gutter: 'var(--grid-gutter)',\n sidebar: '17.5rem' // 280px\n },\n\n // .tw-w-*\n width: {\n container: '87.5rem', // 1400px\n 'inline-edit': '8.75rem', // 140px - standard width used for ll-inline-edit elements\n 'inline-edit-small': '5.6rem', // 90px - standard width used for smaller ll-inline-edit elements\n sidebar: '17.5rem', // 280px\n 'select-menu': '5rem', // 80px\n },\n\n // .tw-z-*\n zIndex: {\n '-10': '-10',\n '-20': '-20',\n '-30': '-30',\n behind: '-1',\n content: '100', // general content on the page\n control: '200', // for UI controls, widgets, buttons, etc. These are given one level higher priority\n page: '300', // applies to page-level blocks, ie. site-header, side-nav, etc\n screen: '400', // covers all \"standard\" things visible on the screen: page-level blocks, UI/control things, general content\n modal: '1000', // covers all things except dialogs, including other elements promoted along the z-axis.\n dialog: '1001', // covers all things, including other elements promoted along the z-axis.\n },\n\n animation: {\n grow: 'grow 1s',\n pulse: 'pulse 2s cubic-bezier(.4, 0, .6,1) infinite',\n shake: 'shake 1s ease 0s 1 normal none running',\n },\n\n keyframes: {\n grow: {\n 'from, to': {\n transform: 'scale3d(1, 1, 1)',\n },\n '50%': {\n transform: 'scale3d(1.25, 1.25, 1.25)'\n }\n },\n\n pulse: {\n '0%, 100%': { opacity: '1' },\n '50%': { opacity: '0.25' },\n },\n\n shake: {\n 'from, to': {\n transform: 'translate3d(0, 0, 0)',\n },\n '10%, 30%, 50%, 70%, 90%': {\n transform: 'translate3d(-10px, 0, 0)',\n },\n '20%, 40%, 60%, 80%': {\n transform: 'translate3d(10px, 0, 0)',\n },\n },\n },\n\n // .tw-ease-*\n transitionTimingFunction: {\n 'fast-out-slow-in': 'cubic-bezier(0.4, 0, 0.2, 1)',\n 'linear-out-slow-in': 'cubic-bezier(0, 0, 0.2, 1)',\n 'fast-out-linear-in': 'cubic-bezier(0.4, 0, 1, 1)',\n 'ease-in-out': 'cubic-bezier(0.4, 0, 0.6, 1)',\n 'fast-in-fast-out': 'cubic-bezier(0.25, 0.8, 0.25, 1)',\n swing: 'cubic-bezier(0.25, 0.8, 0.5, 1)',\n },\n\n // .tw-duration-*\n transitionDuration: {\n snap: '0.1s',\n fast: '0.165s',\n brisk: '0.333s',\n slow: '0.5s',\n sleepy: '1s',\n },\n },\n },\n\n corePlugins: {\n // because we have our own\n container: false,\n preflight: false,\n },\n // TODO: update prettier/eslint to support TS 4.9+ so we can use the `satisfies` operator and still know we have a semicolon πŸ™„\n // eslint-disable-next-line\n} satisfies Config;\n\n/**\n * Utility to return a holistic array of tailwind color classes.\n *\n * This function will allow downstream applications to easily **blocklist** the same color\n * classes that are safelisted in the base preset, just in case they need to prevent unnecessarily\n * duplicating classes in their final build.\n *\n * @see {@link https://tailwindcss.com/docs/content-configuration#discarding-classes}\n */\nexport const getColorClasses = () => {\n const classes: Array<string> = [];\n\n ['purple', 'royal', 'blue', 'seafoam', 'teal', 'green', 'yellow', 'orange', 'red', 'ice'].forEach((color) => {\n ['bg', 'text', 'border', 'stroke'].forEach((plugin) => {\n ['', '400'].forEach((shade) => {\n classes.push(`tw-${plugin}-${color}${shade ? `-${shade}` : ''}`);\n });\n });\n });\n\n return classes;\n};\n"],"names":["tailwindBase","SCREEN_SIZES","getColorClasses","classes","color","plugin","shade"],"mappings":"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"}
@@ -11,7 +11,7 @@ const n = {
11
11
  yellow: "ice-900"
12
12
  };
13
13
  function r(t, e) {
14
- return t === "main" ? e : `${e}-${e === "ice" ? "200" : "100"}`;
14
+ return t === "main" ? `${e}-500` : `${e}-${e === "ice" ? "200" : "100"}`;
15
15
  }
16
16
  function c(t, e) {
17
17
  return t === "main" ? n[e] : `${e}-700`;
@@ -1 +1 @@
1
- {"version":3,"file":"colorScheme.js","sources":["../../src/utils/colorScheme.ts"],"sourcesContent":["import { StashPrimaryColor, StashPrimaryColors } from '../../types/colors';\n\nconst CONTRAST_TEXT_MAP: { [key in StashPrimaryColors]: string } = {\n blue: 'white',\n green: 'white',\n ice: 'ice-900',\n orange: 'ice-900',\n purple: 'white',\n red: 'white',\n royal: 'white',\n seafoam: 'ice-900',\n teal: 'ice-900',\n yellow: 'ice-900',\n};\n\ntype Shade = 'light' | 'main';\n\ninterface ColorSchemeArgs {\n shade: Shade;\n color: StashPrimaryColor;\n}\n\nfunction bgColor(shade: Shade, color: StashPrimaryColor) {\n if (shade === 'main') {\n return color;\n }\n\n const lightColorNo = color === 'ice' ? '200' : '100';\n\n return `${color}-${lightColorNo}`;\n}\n\nfunction textColor(shade: Shade, color: StashPrimaryColor) {\n if (shade === 'main') {\n return CONTRAST_TEXT_MAP[color];\n }\n\n return `${color}-700`;\n}\n\n// TODO: Look into dynamically inferring contrast text color based on bg.\n// Might be easier when tailwind is around.\n// @see https://wunnle.com/dynamic-text-color-based-on-background\nexport default function colorScheme({ shade, color }: ColorSchemeArgs) {\n const computedBgColor = bgColor(shade, color);\n const computedTextColor = textColor(shade, color);\n\n return { computedBgColor, computedTextColor };\n}\n"],"names":["CONTRAST_TEXT_MAP","bgColor","shade","color","textColor","colorScheme","computedBgColor","computedTextColor"],"mappings":"AAEA,MAAMA,IAA6D;AAAA,EACjE,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AACV;AASA,SAASC,EAAQC,GAAcC,GAA0B;AACvD,SAAID,MAAU,SACLC,IAKF,GAAGA,CAAK,IAFMA,MAAU,QAAQ,QAAQ,KAEhB;AACjC;AAEA,SAASC,EAAUF,GAAcC,GAA0B;AACzD,SAAID,MAAU,SACLF,EAAkBG,CAAK,IAGzB,GAAGA,CAAK;AACjB;AAKA,SAAwBE,EAAY,EAAE,OAAAH,GAAO,OAAAC,KAA0B;AAC/D,QAAAG,IAAkBL,EAAQC,GAAOC,CAAK,GACtCI,IAAoBH,EAAUF,GAAOC,CAAK;AAEzC,SAAA,EAAE,iBAAAG,GAAiB,mBAAAC;AAC5B;"}
1
+ {"version":3,"file":"colorScheme.js","sources":["../../src/utils/colorScheme.ts"],"sourcesContent":["import { StashPrimaryColorGroup } from '../../types/colors';\n\nconst CONTRAST_TEXT_MAP: { [key in StashPrimaryColorGroup]: string } = {\n blue: 'white',\n green: 'white',\n ice: 'ice-900',\n orange: 'ice-900',\n purple: 'white',\n red: 'white',\n royal: 'white',\n seafoam: 'ice-900',\n teal: 'ice-900',\n yellow: 'ice-900',\n};\n\ntype Shade = 'light' | 'main';\n\ninterface ColorSchemeArgs {\n shade: Shade;\n color: StashPrimaryColorGroup;\n}\n\nfunction bgColor(shade: Shade, color: StashPrimaryColorGroup) {\n if (shade === 'main') {\n return `${color}-500`;\n }\n\n const lightColorNo = color === 'ice' ? '200' : '100';\n\n return `${color}-${lightColorNo}`;\n}\n\nfunction textColor(shade: Shade, color: StashPrimaryColorGroup) {\n if (shade === 'main') {\n return CONTRAST_TEXT_MAP[color];\n }\n\n return `${color}-700`;\n}\n\n// TODO: Look into dynamically inferring contrast text color based on bg.\n// Might be easier when tailwind is around.\n// @see https://wunnle.com/dynamic-text-color-based-on-background\nexport default function colorScheme({ shade, color }: ColorSchemeArgs) {\n const computedBgColor = bgColor(shade, color);\n const computedTextColor = textColor(shade, color);\n\n return { computedBgColor, computedTextColor };\n}\n"],"names":["CONTRAST_TEXT_MAP","bgColor","shade","color","textColor","colorScheme","computedBgColor","computedTextColor"],"mappings":"AAEA,MAAMA,IAAiE;AAAA,EACrE,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AACV;AASA,SAASC,EAAQC,GAAcC,GAA+B;AAC5D,SAAID,MAAU,SACL,GAAGC,CAAK,SAKV,GAAGA,CAAK,IAFMA,MAAU,QAAQ,QAAQ,KAEhB;AACjC;AAEA,SAASC,EAAUF,GAAcC,GAA+B;AAC9D,SAAID,MAAU,SACLF,EAAkBG,CAAK,IAGzB,GAAGA,CAAK;AACjB;AAKA,SAAwBE,EAAY,EAAE,OAAAH,GAAO,OAAAC,KAA0B;AAC/D,QAAAG,IAAkBL,EAAQC,GAAOC,CAAK,GACtCI,IAAoBH,EAAUF,GAAOC,CAAK;AAEzC,SAAA,EAAE,iBAAAG,GAAiB,mBAAAC;AAC5B;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflink/stash",
3
- "version": "42.8.1",
3
+ "version": "43.0.0",
4
4
  "description": "LeafLink's design system.",
5
5
  "homepage": "https://stash.leaflink.com",
6
6
  "main": "./dist/index.ts",
package/styles/base.css CHANGED
@@ -87,7 +87,7 @@
87
87
  *,
88
88
  ::before,
89
89
  ::after {
90
- @apply tw-border-0 tw-border-ice;
90
+ @apply tw-border-0 tw-border-ice-500;
91
91
 
92
92
  background-repeat: no-repeat;
93
93
  box-sizing: border-box;
@@ -172,7 +172,7 @@
172
172
  * Add LeafLink's base styles to fix issues on localhost
173
173
  */
174
174
  a {
175
- @apply tw-text-blue;
175
+ @apply tw-text-blue-500;
176
176
 
177
177
  background-color: transparent;
178
178
  font-weight: 500;