@leaflink/stash 44.0.0-beta.5 → 44.0.0-beta.7

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 (72) hide show
  1. package/dist/ActionsDropdown.js +11 -11
  2. package/dist/ActionsDropdown.js.map +1 -1
  3. package/dist/Alert.js +7 -7
  4. package/dist/Alert.js.map +1 -1
  5. package/dist/AppNavigationItem.js +11 -11
  6. package/dist/AppNavigationItem.js.map +1 -1
  7. package/dist/Carousel.js +258 -246
  8. package/dist/Carousel.js.map +1 -1
  9. package/dist/DataViewSortButton.js +22 -22
  10. package/dist/DataViewSortButton.js.map +1 -1
  11. package/dist/DatePicker.js +2 -5
  12. package/dist/DatePicker.js.map +1 -1
  13. package/dist/DescriptionListTerm.js +7 -7
  14. package/dist/DescriptionListTerm.js.map +1 -1
  15. package/dist/Dialog.js.map +1 -1
  16. package/dist/Divider.js +8 -8
  17. package/dist/Divider.js.map +1 -1
  18. package/dist/Dropdown.js +15 -15
  19. package/dist/Dropdown.js.map +1 -1
  20. package/dist/Expand.js +1 -1
  21. package/dist/{Expand.vue_vue_type_script_setup_true_lang-5fe03d51.js → Expand.vue_vue_type_script_setup_true_lang-b6a57ae9.js} +4 -4
  22. package/dist/{Expand.vue_vue_type_script_setup_true_lang-5fe03d51.js.map → Expand.vue_vue_type_script_setup_true_lang-b6a57ae9.js.map} +1 -1
  23. package/dist/FileUpload.js +29 -29
  24. package/dist/FileUpload.js.map +1 -1
  25. package/dist/FilterSelect.js +25 -25
  26. package/dist/FilterSelect.js.map +1 -1
  27. package/dist/Filters.js +26 -26
  28. package/dist/Filters.js.map +1 -1
  29. package/dist/IconLabel.js +5 -5
  30. package/dist/IconLabel.js.map +1 -1
  31. package/dist/ListView.js +84 -84
  32. package/dist/ListView.js.map +1 -1
  33. package/dist/Modals.js +13 -13
  34. package/dist/Modals.js.map +1 -1
  35. package/dist/PageNavigation.js +3 -3
  36. package/dist/PageNavigation.js.map +1 -1
  37. package/dist/QuickAction.js +22 -19
  38. package/dist/QuickAction.js.map +1 -1
  39. package/dist/Radio.js +26 -16
  40. package/dist/Radio.js.map +1 -1
  41. package/dist/RadioGroup.js +135 -106
  42. package/dist/RadioGroup.js.map +1 -1
  43. package/dist/RadioNew.js +118 -91
  44. package/dist/RadioNew.js.map +1 -1
  45. package/dist/Select.js +6 -6
  46. package/dist/Select.js.map +1 -1
  47. package/dist/Tab.js +2 -2
  48. package/dist/{Tab.vue_vue_type_script_setup_true_lang-4a40f015.js → Tab.vue_vue_type_script_setup_true_lang-69d1b046.js} +2 -2
  49. package/dist/{Tab.vue_vue_type_script_setup_true_lang-4a40f015.js.map → Tab.vue_vue_type_script_setup_true_lang-69d1b046.js.map} +1 -1
  50. package/dist/Table.js +2 -2
  51. package/dist/{Table.keys-1ebe4ecb.js → Table.keys-75e99266.js} +11 -11
  52. package/dist/{Table.keys-1ebe4ecb.js.map → Table.keys-75e99266.js.map} +1 -1
  53. package/dist/TableCell.js +1 -1
  54. package/dist/TableCell.js.map +1 -1
  55. package/dist/TableHeaderCell.js +1 -1
  56. package/dist/TableHeaderRow.js +1 -1
  57. package/dist/TableRow.js +38 -37
  58. package/dist/TableRow.js.map +1 -1
  59. package/dist/Tabs.js +2 -2
  60. package/dist/{Tabs.vue_used_vue_type_style_index_0_lang.module-0af1e1cf.js → Tabs.vue_used_vue_type_style_index_0_lang.module-2a131332.js} +25 -25
  61. package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-2a131332.js.map +1 -0
  62. package/dist/components.css +1 -1
  63. package/dist/constants.d.ts +7 -7
  64. package/dist/constants.js +21 -21
  65. package/dist/constants.js.map +1 -1
  66. package/dist/tailwind-base.js +9 -2
  67. package/dist/tailwind-base.js.map +1 -1
  68. package/dist/utils/helpers.js +37 -37
  69. package/dist/utils/helpers.js.map +1 -1
  70. package/package.json +2 -2
  71. package/tailwind-base.ts +3 -1
  72. package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-0af1e1cf.js.map +0 -1
package/dist/constants.js CHANGED
@@ -14,34 +14,34 @@ const e = Object.freeze({
14
14
  YYYY_MM_DD_TIME_DATE_FNS: "yyyy-MM-dd hh:mm aa",
15
15
  TIME_DATE_FNS: "hh:mm aa",
16
16
  YYYY_MM_DD_SLASHES: "YYYY/MM/DD"
17
- }, E = 3e3, l = Object.freeze({
17
+ }, E = 3e3, t = Object.freeze({
18
18
  SLOW: 3e3,
19
19
  MEDIUM: 1e3,
20
20
  FAST: 200
21
- }), a = 'button, [href]:not(use), input, select, textarea, [tabindex]:not([tabindex="-1"])', t = Object.freeze({
22
- ADU: "ll-bg-blue",
23
- BULK: "ll-bg-ice-900",
24
- REC: "ll-bg-blue",
25
- MED: "ll-bg-yellow",
26
- COM: "ll-bg-royal",
27
- ANC: "ll-bg-orange",
28
- CAN: "ll-bg-green"
29
- }), S = {
21
+ }), a = 'button, [href]:not(use), input, select, textarea, [tabindex]:not([tabindex="-1"])', S = Object.freeze({
22
+ ADU: "tw-bg-blue-500",
23
+ BULK: "tw-bg-ice-900",
24
+ REC: "tw-bg-blue-500",
25
+ MED: "tw-bg-yellow-500",
26
+ COM: "tw-bg-royal-500",
27
+ ANC: "tw-bg-orange-500",
28
+ CAN: "tw-bg-green-500"
29
+ }), n = {
30
30
  GRID_GUTTER: "grid-gutter",
31
31
  SCREEN_MD: "screen-md",
32
32
  SCREEN_LG: "screen-lg",
33
33
  TOP_HEADER_HEIGHT: "top-header-height"
34
- }, n = {
34
+ }, o = {
35
35
  MARKETPLACE: "marketplace",
36
36
  PAYMENTS: "payments"
37
- }, o = {
37
+ }, r = {
38
38
  APPLY: "apply",
39
39
  LOAD: "load",
40
40
  PAGE: "page",
41
41
  RESET: "reset",
42
42
  SEARCH: "search",
43
43
  SORT: "sort"
44
- }, r = Object.freeze({
44
+ }, M = Object.freeze({
45
45
  AED: "د.إ",
46
46
  AFN: "؋",
47
47
  ALL: "L",
@@ -228,7 +228,7 @@ const e = Object.freeze({
228
228
  ZMW: "ZK",
229
229
  ZWD: "Z$",
230
230
  ZWL: "$"
231
- }), M = {
231
+ }), l = {
232
232
  CLOUDINARY: "https://res.cloudinary.com/leaflink/image/fetch"
233
233
  }, R = {
234
234
  CURRENCY: 2
@@ -343,19 +343,19 @@ const e = Object.freeze({
343
343
  // targets 1321px and above
344
344
  });
345
345
  export {
346
- n as APPS,
347
- S as CSS_VARS,
348
- r as CURRENCY_SYMBOL_MAP,
346
+ o as APPS,
347
+ n as CSS_VARS,
348
+ M as CURRENCY_SYMBOL_MAP,
349
349
  D as DATE_FORMATS,
350
- l as DEBOUNCE,
350
+ t as DEBOUNCE,
351
351
  R as DECIMAL_PRECISION,
352
352
  a as FOCUS_ELEMENTS_SELECTOR,
353
- M as IMAGE_PROVIDER_URLS,
353
+ l as IMAGE_PROVIDER_URLS,
354
354
  i as INBOUND_LEADS,
355
355
  e as KEY_CODES,
356
356
  N as LICENSE_CLASSIFICATIONS,
357
- t as LICENSE_COLORS,
358
- o as LLLV_CHANGE_TRIGGERS,
357
+ S as LICENSE_COLORS,
358
+ r as LLLV_CHANGE_TRIGGERS,
359
359
  c as ORDER,
360
360
  A as SCREEN_SIZES,
361
361
  C as SELLER_STATUSES,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["/**\n * Leaflink Global Constants.\n * NOTE: as per convention, all constants are written in UPPERCASE.\n */\n\n/**\n * Key Codes\n */\nexport const KEY_CODES = Object.freeze({\n DOWN: 40,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n SPACE: 32,\n RIGHT: 39,\n UP: 38,\n});\n\n/**\n * Date Formats\n */\nexport const DATE_FORMATS = {\n DEFAULT: 'YYYY-MM-DD hh:mm A',\n MONTH_DAY_YEAR_AT_TIME: 'MMM DD, YYYY @ h:mmA',\n YYYY_MM_DD: 'YYYY-MM-DD',\n YYYY_MM_DD_DATE_FNS: 'yyyy-MM-dd',\n YYYY_MM_DD_TIME_DATE_FNS: 'yyyy-MM-dd hh:mm aa',\n TIME_DATE_FNS: 'hh:mm aa',\n YYYY_MM_DD_SLASHES: 'YYYY/MM/DD',\n};\n\n/**\n * Timeout for UI/UX effects\n */\nexport const UI_TIMEOUT = 3000;\n\n/**\n * Debounce used for firing side-effects (tracking, etc)\n */\nexport const DEBOUNCE = Object.freeze({\n SLOW: 3000,\n MEDIUM: 1000,\n FAST: 200,\n});\n\n/**\n * Query selector string for getting all focusable elements\n */\nexport const FOCUS_ELEMENTS_SELECTOR =\n 'button, [href]:not(use), input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n/**\n * License colors\n */\nexport const LICENSE_COLORS = Object.freeze({\n ADU: 'll-bg-blue',\n BULK: 'll-bg-ice-900',\n REC: 'll-bg-blue',\n MED: 'll-bg-yellow',\n COM: 'll-bg-royal',\n ANC: 'll-bg-orange',\n CAN: 'll-bg-green',\n});\n\n/**\n * CSS variable names\n */\nexport const CSS_VARS = {\n GRID_GUTTER: 'grid-gutter',\n SCREEN_MD: 'screen-md',\n SCREEN_LG: 'screen-lg',\n TOP_HEADER_HEIGHT: 'top-header-height',\n} as const;\n\n/**\n * LeafLink app names\n */\nexport const APPS = {\n MARKETPLACE: 'marketplace',\n PAYMENTS: 'payments',\n} as const;\n\n/**\n * Change triggers for ListView\n */\nexport const LLLV_CHANGE_TRIGGERS = {\n APPLY: 'apply',\n LOAD: 'load',\n PAGE: 'page',\n RESET: 'reset',\n SEARCH: 'search',\n SORT: 'sort',\n} as const;\n\n/**\n * Key value pairs where the key is a currency code and the value is the\n * symbol for that code.\n */\nexport const CURRENCY_SYMBOL_MAP = Object.freeze({\n AED: 'د.إ',\n AFN: '؋',\n ALL: 'L',\n AMD: '֏',\n ANG: 'ƒ',\n AOA: 'Kz',\n ARS: '$',\n AUD: '$',\n AWG: 'ƒ',\n AZN: '₼',\n BAM: 'KM',\n BBD: '$',\n BDT: '৳',\n BGN: 'лв',\n BHD: '.د.ب',\n BIF: 'FBu',\n BMD: '$',\n BND: '$',\n BOB: '$b',\n BOV: 'BOV',\n BRL: 'R$',\n BSD: '$',\n BTC: '₿',\n BTN: 'Nu.',\n BWP: 'P',\n BYN: 'Br',\n BYR: 'Br',\n BZD: 'BZ$',\n CAD: '$',\n CDF: 'FC',\n CHE: 'CHE',\n CHF: 'CHF',\n CHW: 'CHW',\n CLF: 'CLF',\n CLP: '$',\n CNY: '¥',\n COP: '$',\n COU: 'COU',\n CRC: '₡',\n CUC: '$',\n CUP: '₱',\n CVE: '$',\n CZK: 'Kč',\n DJF: 'Fdj',\n DKK: 'kr',\n DOP: 'RD$',\n DZD: 'دج',\n EEK: 'kr',\n EGP: '£',\n ERN: 'Nfk',\n ETB: 'Br',\n ETH: 'Ξ',\n EUR: '€',\n FJD: '$',\n FKP: '£',\n GBP: '£',\n GEL: '₾',\n GGP: '£',\n GHC: '₵',\n GHS: 'GH₵',\n GIP: '£',\n GMD: 'D',\n GNF: 'FG',\n GTQ: 'Q',\n GYD: '$',\n HKD: '$',\n HNL: 'L',\n HRK: 'kn',\n HTG: 'G',\n HUF: 'Ft',\n IDR: 'Rp',\n ILS: '₪',\n IMP: '£',\n INR: '₹',\n IQD: 'ع.د',\n IRR: '﷼',\n ISK: 'kr',\n JEP: '£',\n JMD: 'J$',\n JOD: 'JD',\n JPY: '¥',\n KES: 'KSh',\n KGS: 'лв',\n KHR: '៛',\n KMF: 'CF',\n KPW: '₩',\n KRW: '₩',\n KWD: 'KD',\n KYD: '$',\n KZT: '₸',\n LAK: '₭',\n LBP: '£',\n LKR: '₨',\n LRD: '$',\n LSL: 'M',\n LTC: 'Ł',\n LTL: 'Lt',\n LVL: 'Ls',\n LYD: 'LD',\n MAD: 'MAD',\n MDL: 'lei',\n MGA: 'Ar',\n MKD: 'ден',\n MMK: 'K',\n MNT: '₮',\n MOP: 'MOP$',\n MRO: 'UM',\n MRU: 'UM',\n MUR: '₨',\n MVR: 'Rf',\n MWK: 'MK',\n MXN: '$',\n MXV: 'MXV',\n MYR: 'RM',\n MZN: 'MT',\n NAD: '$',\n NGN: '₦',\n NIO: 'C$',\n NOK: 'kr',\n NPR: '₨',\n NZD: '$',\n OMR: '﷼',\n PAB: 'B/.',\n PEN: 'S/.',\n PGK: 'K',\n PHP: '₱',\n PKR: '₨',\n PLN: 'zł',\n PYG: 'Gs',\n QAR: '﷼',\n RMB: '¥',\n RON: 'lei',\n RSD: 'Дин.',\n RUB: '₽',\n RWF: 'R₣',\n SAR: '﷼',\n SBD: '$',\n SCR: '₨',\n SDG: 'ج.س.',\n SEK: 'kr',\n SGD: 'S$',\n SHP: '£',\n SLL: 'Le',\n SOS: 'S',\n SRD: '$',\n SSP: '£',\n STD: 'Db',\n STN: 'Db',\n SVC: '$',\n SYP: '£',\n SZL: 'E',\n THB: '฿',\n TJS: 'SM',\n TMT: 'T',\n TND: 'د.ت',\n TOP: 'T$',\n TRL: '₤',\n TRY: '₺',\n TTD: 'TT$',\n TVD: '$',\n TWD: 'NT$',\n TZS: 'TSh',\n UAH: '₴',\n UGX: 'USh',\n USD: '$',\n UYI: 'UYI',\n UYU: '$U',\n UYW: 'UYW',\n UZS: 'лв',\n VEF: 'Bs',\n VES: 'Bs.S',\n VND: '₫',\n VUV: 'VT',\n WST: 'WS$',\n XAF: 'FCFA',\n XBT: 'Ƀ',\n XCD: '$',\n XOF: 'CFA',\n XPF: '₣',\n XSU: 'Sucre',\n XUA: 'XUA',\n YER: '﷼',\n ZAR: 'R',\n ZMW: 'ZK',\n ZWD: 'Z$',\n ZWL: '$',\n});\n\n/**\n * Image Provider URLs\n */\n\nexport const IMAGE_PROVIDER_URLS = {\n CLOUDINARY: 'https://res.cloudinary.com/leaflink/image/fetch',\n} as const;\n\n/**\n * The number of decimals to round a number\n */\nexport const DECIMAL_PRECISION = {\n CURRENCY: 2,\n} as const;\n\nexport const LICENSE_CLASSIFICATIONS = Object.freeze({\n NONE: {\n id: 'None',\n displayName: '',\n },\n ADULT_USE: {\n id: 'Adult Use',\n displayName: 'Recreational',\n },\n MEDICAL: {\n id: 'Medical',\n displayName: 'Medical',\n },\n COMBINED: {\n id: 'Combined',\n displayName: 'Recreational',\n },\n CANNABIS: {\n id: 'Cannabis',\n displayName: 'Recreational',\n },\n});\n\n/**\n * Inbound Leads Statuses\n */\nexport const INBOUND_LEADS = Object.freeze({\n COMPLETE: {\n color: 'll-bg-purple',\n id: 'complete',\n },\n PENDING: {\n color: 'll-bg-orange',\n id: 'pending',\n },\n IGNORED: {\n color: 'll-bg-red',\n id: 'ignored',\n },\n});\n\n/**\n * Order statuses for both Buyer and Seller generated Orders.\n */\nexport const ORDER = Object.freeze({\n SUBMITTED: {\n color: 'ice-700',\n name: 'submitted',\n transitionName: 'submit',\n },\n ACCEPTED: {\n color: 'green',\n name: 'accepted',\n transitionName: 'accept',\n },\n FULFILLED: {\n color: 'royal',\n name: 'fulfilled',\n transitionName: 'fulfill',\n },\n SHIPPED: {\n color: 'blue',\n name: 'shipped',\n transitionName: 'ship',\n },\n COMPLETE: {\n color: 'purple',\n name: 'complete',\n transitionName: 'complete',\n },\n REJECTED: {\n color: 'red',\n name: 'rejected',\n transitionName: 'reject',\n },\n CANCELLED: {\n color: 'red',\n name: 'cancelled',\n transitionName: 'cancel',\n },\n DRAFT: {\n color: 'blue',\n name: 'draft',\n transitionName: '',\n },\n BACKORDER: {\n color: 'ice',\n name: 'backorder',\n transitionName: 'backorder',\n },\n COMBINED: {\n color: 'ice',\n name: 'combined',\n transitionName: 'combine',\n },\n});\n\n/**\n * Certified Seller Statuses\n */\nexport const SELLER_STATUSES = Object.freeze({\n eliteSeller: {\n color: 'royal',\n id: 'elite',\n },\n powerSeller: {\n color: 'green',\n id: 'power',\n },\n});\n\n// Tailwind is mobile first so there's no media query necessary for LL's sm\n// breakpoint as it's effectively `@media (min-width: 0) { ... }`. Typically\n// (in tailwind, bootstrap, etc) everything from 0 - sm \"breakpoint\" is\n// considered XS. But for us, it's actually shifted up. We're not really\n// defining \"breakpoints\" so much as we do ranges, so in Tailwind world, we\n// don't need to define a `sm` breakpoint.\n// See:\n// - https://tailwindcss.com/docs/screens#advanced-configuration\n// - https://tailwindcss.com/docs/responsive-design#targeting-a-breakpoint-range\nexport const SCREEN_SIZES = Object.freeze({\n md: '641px', // targets 641px and above\n 'max-md': { raw: 'not all and (min-width: 961px)' }, // targets 960px and below\n 'md:max-lg': [{ min: '641px' }, { raw: 'not all and (min-width: 961px)' }], // targets 641px to 960px\n lg: '961px', // targets 961px and above\n 'max-lg': { raw: 'not all and (min-width: 1321px)' }, // targets 1320px and below\n 'lg:max-xl': [{ min: '961px' }, { raw: 'not all and (min-width: 1321px)' }], // targets 961px to 1320px\n xl: '1321px', // targets 1321px and above\n});\n"],"names":["KEY_CODES","DATE_FORMATS","UI_TIMEOUT","DEBOUNCE","FOCUS_ELEMENTS_SELECTOR","LICENSE_COLORS","CSS_VARS","APPS","LLLV_CHANGE_TRIGGERS","CURRENCY_SYMBOL_MAP","IMAGE_PROVIDER_URLS","DECIMAL_PRECISION","LICENSE_CLASSIFICATIONS","INBOUND_LEADS","ORDER","SELLER_STATUSES","SCREEN_SIZES"],"mappings":"AAQa,MAAAA,IAAY,OAAO,OAAO;AAAA,EACrC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,IAAI;AACN,CAAC,GAKYC,IAAe;AAAA,EAC1B,SAAS;AAAA,EACT,wBAAwB;AAAA,EACxB,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,oBAAoB;AACtB,GAKaC,IAAa,KAKbC,IAAW,OAAO,OAAO;AAAA,EACpC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AACR,CAAC,GAKYC,IACX,qFAKWC,IAAiB,OAAO,OAAO;AAAA,EAC1C,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP,CAAC,GAKYC,IAAW;AAAA,EACtB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,WAAW;AAAA,EACX,mBAAmB;AACrB,GAKaC,IAAO;AAAA,EAClB,aAAa;AAAA,EACb,UAAU;AACZ,GAKaC,IAAuB;AAAA,EAClC,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR,GAMaC,IAAsB,OAAO,OAAO;AAAA,EAC/C,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP,CAAC,GAMYC,IAAsB;AAAA,EACjC,YAAY;AACd,GAKaC,IAAoB;AAAA,EAC/B,UAAU;AACZ,GAEaC,IAA0B,OAAO,OAAO;AAAA,EACnD,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AACF,CAAC,GAKYC,IAAgB,OAAO,OAAO;AAAA,EACzC,UAAU;AAAA,IACR,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACF,CAAC,GAKYC,IAAQ,OAAO,OAAO;AAAA,EACjC,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AACF,CAAC,GAKYC,IAAkB,OAAO,OAAO;AAAA,EAC3C,aAAa;AAAA,IACX,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACF,CAAC,GAWYC,IAAe,OAAO,OAAO;AAAA,EACxC,IAAI;AAAA;AAAA,EACJ,UAAU,EAAE,KAAK,iCAAiC;AAAA;AAAA,EAClD,aAAa,CAAC,EAAE,KAAK,QAAW,GAAA,EAAE,KAAK,kCAAkC;AAAA;AAAA,EACzE,IAAI;AAAA;AAAA,EACJ,UAAU,EAAE,KAAK,kCAAkC;AAAA;AAAA,EACnD,aAAa,CAAC,EAAE,KAAK,QAAW,GAAA,EAAE,KAAK,mCAAmC;AAAA;AAAA,EAC1E,IAAI;AAAA;AACN,CAAC;"}
1
+ {"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["/**\n * Leaflink Global Constants.\n * NOTE: as per convention, all constants are written in UPPERCASE.\n */\n\n/**\n * Key Codes\n */\nexport const KEY_CODES = Object.freeze({\n DOWN: 40,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n SPACE: 32,\n RIGHT: 39,\n UP: 38,\n});\n\n/**\n * Date Formats\n */\nexport const DATE_FORMATS = {\n DEFAULT: 'YYYY-MM-DD hh:mm A',\n MONTH_DAY_YEAR_AT_TIME: 'MMM DD, YYYY @ h:mmA',\n YYYY_MM_DD: 'YYYY-MM-DD',\n YYYY_MM_DD_DATE_FNS: 'yyyy-MM-dd',\n YYYY_MM_DD_TIME_DATE_FNS: 'yyyy-MM-dd hh:mm aa',\n TIME_DATE_FNS: 'hh:mm aa',\n YYYY_MM_DD_SLASHES: 'YYYY/MM/DD',\n};\n\n/**\n * Timeout for UI/UX effects\n */\nexport const UI_TIMEOUT = 3000;\n\n/**\n * Debounce used for firing side-effects (tracking, etc)\n */\nexport const DEBOUNCE = Object.freeze({\n SLOW: 3000,\n MEDIUM: 1000,\n FAST: 200,\n});\n\n/**\n * Query selector string for getting all focusable elements\n */\nexport const FOCUS_ELEMENTS_SELECTOR =\n 'button, [href]:not(use), input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n/**\n * License colors\n */\nexport const LICENSE_COLORS = Object.freeze({\n ADU: 'tw-bg-blue-500',\n BULK: 'tw-bg-ice-900',\n REC: 'tw-bg-blue-500',\n MED: 'tw-bg-yellow-500',\n COM: 'tw-bg-royal-500',\n ANC: 'tw-bg-orange-500',\n CAN: 'tw-bg-green-500',\n});\n\n/**\n * CSS variable names\n */\nexport const CSS_VARS = {\n GRID_GUTTER: 'grid-gutter',\n SCREEN_MD: 'screen-md',\n SCREEN_LG: 'screen-lg',\n TOP_HEADER_HEIGHT: 'top-header-height',\n} as const;\n\n/**\n * LeafLink app names\n */\nexport const APPS = {\n MARKETPLACE: 'marketplace',\n PAYMENTS: 'payments',\n} as const;\n\n/**\n * Change triggers for ListView\n */\nexport const LLLV_CHANGE_TRIGGERS = {\n APPLY: 'apply',\n LOAD: 'load',\n PAGE: 'page',\n RESET: 'reset',\n SEARCH: 'search',\n SORT: 'sort',\n} as const;\n\n/**\n * Key value pairs where the key is a currency code and the value is the\n * symbol for that code.\n */\nexport const CURRENCY_SYMBOL_MAP = Object.freeze({\n AED: 'د.إ',\n AFN: '؋',\n ALL: 'L',\n AMD: '֏',\n ANG: 'ƒ',\n AOA: 'Kz',\n ARS: '$',\n AUD: '$',\n AWG: 'ƒ',\n AZN: '₼',\n BAM: 'KM',\n BBD: '$',\n BDT: '৳',\n BGN: 'лв',\n BHD: '.د.ب',\n BIF: 'FBu',\n BMD: '$',\n BND: '$',\n BOB: '$b',\n BOV: 'BOV',\n BRL: 'R$',\n BSD: '$',\n BTC: '₿',\n BTN: 'Nu.',\n BWP: 'P',\n BYN: 'Br',\n BYR: 'Br',\n BZD: 'BZ$',\n CAD: '$',\n CDF: 'FC',\n CHE: 'CHE',\n CHF: 'CHF',\n CHW: 'CHW',\n CLF: 'CLF',\n CLP: '$',\n CNY: '¥',\n COP: '$',\n COU: 'COU',\n CRC: '₡',\n CUC: '$',\n CUP: '₱',\n CVE: '$',\n CZK: 'Kč',\n DJF: 'Fdj',\n DKK: 'kr',\n DOP: 'RD$',\n DZD: 'دج',\n EEK: 'kr',\n EGP: '£',\n ERN: 'Nfk',\n ETB: 'Br',\n ETH: 'Ξ',\n EUR: '€',\n FJD: '$',\n FKP: '£',\n GBP: '£',\n GEL: '₾',\n GGP: '£',\n GHC: '₵',\n GHS: 'GH₵',\n GIP: '£',\n GMD: 'D',\n GNF: 'FG',\n GTQ: 'Q',\n GYD: '$',\n HKD: '$',\n HNL: 'L',\n HRK: 'kn',\n HTG: 'G',\n HUF: 'Ft',\n IDR: 'Rp',\n ILS: '₪',\n IMP: '£',\n INR: '₹',\n IQD: 'ع.د',\n IRR: '﷼',\n ISK: 'kr',\n JEP: '£',\n JMD: 'J$',\n JOD: 'JD',\n JPY: '¥',\n KES: 'KSh',\n KGS: 'лв',\n KHR: '៛',\n KMF: 'CF',\n KPW: '₩',\n KRW: '₩',\n KWD: 'KD',\n KYD: '$',\n KZT: '₸',\n LAK: '₭',\n LBP: '£',\n LKR: '₨',\n LRD: '$',\n LSL: 'M',\n LTC: 'Ł',\n LTL: 'Lt',\n LVL: 'Ls',\n LYD: 'LD',\n MAD: 'MAD',\n MDL: 'lei',\n MGA: 'Ar',\n MKD: 'ден',\n MMK: 'K',\n MNT: '₮',\n MOP: 'MOP$',\n MRO: 'UM',\n MRU: 'UM',\n MUR: '₨',\n MVR: 'Rf',\n MWK: 'MK',\n MXN: '$',\n MXV: 'MXV',\n MYR: 'RM',\n MZN: 'MT',\n NAD: '$',\n NGN: '₦',\n NIO: 'C$',\n NOK: 'kr',\n NPR: '₨',\n NZD: '$',\n OMR: '﷼',\n PAB: 'B/.',\n PEN: 'S/.',\n PGK: 'K',\n PHP: '₱',\n PKR: '₨',\n PLN: 'zł',\n PYG: 'Gs',\n QAR: '﷼',\n RMB: '¥',\n RON: 'lei',\n RSD: 'Дин.',\n RUB: '₽',\n RWF: 'R₣',\n SAR: '﷼',\n SBD: '$',\n SCR: '₨',\n SDG: 'ج.س.',\n SEK: 'kr',\n SGD: 'S$',\n SHP: '£',\n SLL: 'Le',\n SOS: 'S',\n SRD: '$',\n SSP: '£',\n STD: 'Db',\n STN: 'Db',\n SVC: '$',\n SYP: '£',\n SZL: 'E',\n THB: '฿',\n TJS: 'SM',\n TMT: 'T',\n TND: 'د.ت',\n TOP: 'T$',\n TRL: '₤',\n TRY: '₺',\n TTD: 'TT$',\n TVD: '$',\n TWD: 'NT$',\n TZS: 'TSh',\n UAH: '₴',\n UGX: 'USh',\n USD: '$',\n UYI: 'UYI',\n UYU: '$U',\n UYW: 'UYW',\n UZS: 'лв',\n VEF: 'Bs',\n VES: 'Bs.S',\n VND: '₫',\n VUV: 'VT',\n WST: 'WS$',\n XAF: 'FCFA',\n XBT: 'Ƀ',\n XCD: '$',\n XOF: 'CFA',\n XPF: '₣',\n XSU: 'Sucre',\n XUA: 'XUA',\n YER: '﷼',\n ZAR: 'R',\n ZMW: 'ZK',\n ZWD: 'Z$',\n ZWL: '$',\n});\n\n/**\n * Image Provider URLs\n */\n\nexport const IMAGE_PROVIDER_URLS = {\n CLOUDINARY: 'https://res.cloudinary.com/leaflink/image/fetch',\n} as const;\n\n/**\n * The number of decimals to round a number\n */\nexport const DECIMAL_PRECISION = {\n CURRENCY: 2,\n} as const;\n\nexport const LICENSE_CLASSIFICATIONS = Object.freeze({\n NONE: {\n id: 'None',\n displayName: '',\n },\n ADULT_USE: {\n id: 'Adult Use',\n displayName: 'Recreational',\n },\n MEDICAL: {\n id: 'Medical',\n displayName: 'Medical',\n },\n COMBINED: {\n id: 'Combined',\n displayName: 'Recreational',\n },\n CANNABIS: {\n id: 'Cannabis',\n displayName: 'Recreational',\n },\n});\n\n/**\n * Inbound Leads Statuses\n */\nexport const INBOUND_LEADS = Object.freeze({\n COMPLETE: {\n color: 'll-bg-purple',\n id: 'complete',\n },\n PENDING: {\n color: 'll-bg-orange',\n id: 'pending',\n },\n IGNORED: {\n color: 'll-bg-red',\n id: 'ignored',\n },\n});\n\n/**\n * Order statuses for both Buyer and Seller generated Orders.\n */\nexport const ORDER = Object.freeze({\n SUBMITTED: {\n color: 'ice-700',\n name: 'submitted',\n transitionName: 'submit',\n },\n ACCEPTED: {\n color: 'green',\n name: 'accepted',\n transitionName: 'accept',\n },\n FULFILLED: {\n color: 'royal',\n name: 'fulfilled',\n transitionName: 'fulfill',\n },\n SHIPPED: {\n color: 'blue',\n name: 'shipped',\n transitionName: 'ship',\n },\n COMPLETE: {\n color: 'purple',\n name: 'complete',\n transitionName: 'complete',\n },\n REJECTED: {\n color: 'red',\n name: 'rejected',\n transitionName: 'reject',\n },\n CANCELLED: {\n color: 'red',\n name: 'cancelled',\n transitionName: 'cancel',\n },\n DRAFT: {\n color: 'blue',\n name: 'draft',\n transitionName: '',\n },\n BACKORDER: {\n color: 'ice',\n name: 'backorder',\n transitionName: 'backorder',\n },\n COMBINED: {\n color: 'ice',\n name: 'combined',\n transitionName: 'combine',\n },\n});\n\n/**\n * Certified Seller Statuses\n */\nexport const SELLER_STATUSES = Object.freeze({\n eliteSeller: {\n color: 'royal',\n id: 'elite',\n },\n powerSeller: {\n color: 'green',\n id: 'power',\n },\n});\n\n// Tailwind is mobile first so there's no media query necessary for LL's sm\n// breakpoint as it's effectively `@media (min-width: 0) { ... }`. Typically\n// (in tailwind, bootstrap, etc) everything from 0 - sm \"breakpoint\" is\n// considered XS. But for us, it's actually shifted up. We're not really\n// defining \"breakpoints\" so much as we do ranges, so in Tailwind world, we\n// don't need to define a `sm` breakpoint.\n// See:\n// - https://tailwindcss.com/docs/screens#advanced-configuration\n// - https://tailwindcss.com/docs/responsive-design#targeting-a-breakpoint-range\nexport const SCREEN_SIZES = Object.freeze({\n md: '641px', // targets 641px and above\n 'max-md': { raw: 'not all and (min-width: 961px)' }, // targets 960px and below\n 'md:max-lg': [{ min: '641px' }, { raw: 'not all and (min-width: 961px)' }], // targets 641px to 960px\n lg: '961px', // targets 961px and above\n 'max-lg': { raw: 'not all and (min-width: 1321px)' }, // targets 1320px and below\n 'lg:max-xl': [{ min: '961px' }, { raw: 'not all and (min-width: 1321px)' }], // targets 961px to 1320px\n xl: '1321px', // targets 1321px and above\n});\n"],"names":["KEY_CODES","DATE_FORMATS","UI_TIMEOUT","DEBOUNCE","FOCUS_ELEMENTS_SELECTOR","LICENSE_COLORS","CSS_VARS","APPS","LLLV_CHANGE_TRIGGERS","CURRENCY_SYMBOL_MAP","IMAGE_PROVIDER_URLS","DECIMAL_PRECISION","LICENSE_CLASSIFICATIONS","INBOUND_LEADS","ORDER","SELLER_STATUSES","SCREEN_SIZES"],"mappings":"AAQa,MAAAA,IAAY,OAAO,OAAO;AAAA,EACrC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,IAAI;AACN,CAAC,GAKYC,IAAe;AAAA,EAC1B,SAAS;AAAA,EACT,wBAAwB;AAAA,EACxB,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,oBAAoB;AACtB,GAKaC,IAAa,KAKbC,IAAW,OAAO,OAAO;AAAA,EACpC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AACR,CAAC,GAKYC,IACX,qFAKWC,IAAiB,OAAO,OAAO;AAAA,EAC1C,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP,CAAC,GAKYC,IAAW;AAAA,EACtB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,WAAW;AAAA,EACX,mBAAmB;AACrB,GAKaC,IAAO;AAAA,EAClB,aAAa;AAAA,EACb,UAAU;AACZ,GAKaC,IAAuB;AAAA,EAClC,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR,GAMaC,IAAsB,OAAO,OAAO;AAAA,EAC/C,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP,CAAC,GAMYC,IAAsB;AAAA,EACjC,YAAY;AACd,GAKaC,IAAoB;AAAA,EAC/B,UAAU;AACZ,GAEaC,IAA0B,OAAO,OAAO;AAAA,EACnD,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,aAAa;AAAA,EACf;AACF,CAAC,GAKYC,IAAgB,OAAO,OAAO;AAAA,EACzC,UAAU;AAAA,IACR,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACF,CAAC,GAKYC,IAAQ,OAAO,OAAO;AAAA,EACjC,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB;AACF,CAAC,GAKYC,IAAkB,OAAO,OAAO;AAAA,EAC3C,aAAa;AAAA,IACX,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACF,CAAC,GAWYC,IAAe,OAAO,OAAO;AAAA,EACxC,IAAI;AAAA;AAAA,EACJ,UAAU,EAAE,KAAK,iCAAiC;AAAA;AAAA,EAClD,aAAa,CAAC,EAAE,KAAK,QAAW,GAAA,EAAE,KAAK,kCAAkC;AAAA;AAAA,EACzE,IAAI;AAAA;AAAA,EACJ,UAAU,EAAE,KAAK,kCAAkC;AAAA;AAAA,EACnD,aAAa,CAAC,EAAE,KAAK,QAAW,GAAA,EAAE,KAAK,mCAAmC;AAAA;AAAA,EAC1E,IAAI;AAAA;AACN,CAAC;"}
@@ -17,7 +17,7 @@ const p = {
17
17
  // includes a variant modifier like /hover:bg-red-.+/.
18
18
  safelist: [
19
19
  {
20
- pattern: /(bg|text|border)-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)(-[1,5,7]00)?$/
20
+ pattern: /(bg|text|border)-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)(-[1,5,7]00)$/
21
21
  },
22
22
  // Illustration.vue stroke color.
23
23
  {
@@ -31,7 +31,14 @@ const p = {
31
31
  "bg-ice-200",
32
32
  // These are custom classes that we might not use in our Stash code, but we
33
33
  // define in Stash and want to keep in the final CSS for downstream use.
34
- "heading-jumbo"
34
+ "heading-jumbo",
35
+ // allow white and black to be used dynamically
36
+ "bg-white",
37
+ "bg-black",
38
+ "text-white",
39
+ "text-black",
40
+ "border-white",
41
+ "border-black"
35
42
  ],
36
43
  // Conflicts with our own custom classes
37
44
  // https://tailwindcss.com/docs/content-configuration#discarding-classes
@@ -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 // 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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"}
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 // allow white and black to be used dynamically\n 'bg-white', 'bg-black', 'text-white', 'text-black', 'border-white', 'border-black',\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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"}
@@ -4,24 +4,24 @@ import g from "lodash-es/isFinite";
4
4
  import C from "lodash-es/isPlainObject";
5
5
  import { INBOUND_LEADS as b, SELLER_STATUSES as y, ORDER as S, LICENSE_COLORS as N } from "../constants.js";
6
6
  const L = "BULK", f = ".mount-point-container";
7
- function k(r, e) {
8
- return Object.keys(e).length ? r.filter((t) => {
7
+ function k(t, e) {
8
+ return Object.keys(e).length ? t.filter((r) => {
9
9
  for (const c in e) {
10
10
  const s = e[c], l = s.filterBy;
11
- let i = a(t, c.split("."));
12
- if (C(i) && (i = t[c].id), "customFilter" in s) {
13
- if (!s.customFilter(l, i, t))
11
+ let i = a(r, c.split("."));
12
+ if (C(i) && (i = r[c].id), "customFilter" in s) {
13
+ if (!s.customFilter(l, i, r))
14
14
  return !1;
15
15
  } else if (!Array.isArray(i) && !~l.indexOf(i))
16
16
  return !1;
17
17
  }
18
18
  return !0;
19
- }) : r;
19
+ }) : t;
20
20
  }
21
- function B(r, e) {
22
- const { sortBy: t, sortDesc: c, customSorter: s, locale: l = "en" } = e, i = r.length && typeof r[0] == "object";
23
- return !t && i ? r : [...r].sort((m, p) => {
24
- let o = a(m, t) || m, n = a(p, t) || p;
21
+ function w(t, e) {
22
+ const { sortBy: r, sortDesc: c, customSorter: s, locale: l = "en" } = e, i = t.length && typeof t[0] == "object";
23
+ return !r && i ? t : [...t].sort((m, p) => {
24
+ let o = a(m, r) || m, n = a(p, r) || p;
25
25
  if (c && ([o, n] = [n, o]), s)
26
26
  return s(o, n);
27
27
  if ([o, n] = [o, n].map((u) => (u || "").toString().toLocaleLowerCase()), o !== n) {
@@ -32,58 +32,58 @@ function B(r, e) {
32
32
  return 0;
33
33
  });
34
34
  }
35
- function D(r) {
36
- return g(r) && (r = r.toString()), !r || typeof r != "string" ? "" : r.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
35
+ function B(t) {
36
+ return g(t) && (t = t.toString()), !t || typeof t != "string" ? "" : t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
37
37
  }
38
- function I(r) {
39
- return r.split("").reduce((e, t) => (e = (e << 5) - e + t.charCodeAt(0), e & e), 0);
38
+ function D(t) {
39
+ return t.split("").reduce((e, r) => (e = (e << 5) - e + r.charCodeAt(0), e & e), 0);
40
40
  }
41
- function R() {
42
- const r = document.querySelector(f);
43
- if (!r) {
41
+ function I() {
42
+ const t = document.querySelector(f);
43
+ if (!t) {
44
44
  const e = document.createElement("div");
45
45
  return e.className = f.slice(1, f.length), document.body.appendChild(e);
46
46
  }
47
- return r;
47
+ return t;
48
48
  }
49
- function _(r) {
50
- let e = r;
49
+ function R(t) {
50
+ let e = t;
51
51
  return e.substring(0, 2) !== "--" && (e = `--${e}`), getComputedStyle(document.documentElement).getPropertyValue(e);
52
52
  }
53
- function O(r = "") {
54
- const e = r.toUpperCase();
53
+ function O(t = "") {
54
+ const e = t.toUpperCase();
55
55
  return e === L ? e : e.slice(0, 3);
56
56
  }
57
- function j(r, e) {
58
- let t;
57
+ function _(t, e) {
58
+ let r;
59
59
  try {
60
- switch (r) {
60
+ switch (t) {
61
61
  case "license":
62
- e = O(e), t = N[e];
62
+ e = O(e), r = N[e];
63
63
  break;
64
64
  case "order":
65
- t = "ll-bg-" + S[e.toUpperCase()].color;
65
+ r = "tw-bg-" + S[e.toUpperCase()].color;
66
66
  break;
67
67
  case "certified-seller":
68
- t = y[d(e)].color;
68
+ r = y[d(e)].color;
69
69
  break;
70
70
  case "inbound-leads":
71
- t = b[e.toUpperCase()].color;
71
+ r = b[e.toUpperCase()].color;
72
72
  break;
73
73
  }
74
- return t || "ll-bg-ice";
74
+ return r || "tw-bg-ice-500";
75
75
  } catch {
76
- return "ll-bg-ice";
76
+ return "tw-bg-ice-500";
77
77
  }
78
78
  }
79
79
  export {
80
80
  k as filterItems,
81
81
  O as formatLicenseTypeText,
82
- j as generateColorClass,
83
- _ as getCssVar,
84
- R as getMountPoint,
85
- I as hashCode,
86
- D as normalizeText,
87
- B as sortItems
82
+ _ as generateColorClass,
83
+ R as getCssVar,
84
+ I as getMountPoint,
85
+ D as hashCode,
86
+ B as normalizeText,
87
+ w as sortItems
88
88
  };
89
89
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../src/utils/helpers.ts"],"sourcesContent":["import camelCase from 'lodash-es/camelCase';\nimport get from 'lodash-es/get';\nimport isFinite from 'lodash-es/isFinite';\nimport isPlainObject from 'lodash-es/isPlainObject';\n\nimport { INBOUND_LEADS, LICENSE_COLORS, ORDER, SELLER_STATUSES } from '../constants';\n\nconst BULK = 'BULK';\nconst MOUNT_POINT_CLASS = '.mount-point-container';\n\n/**\n * Filters the list of `items` based on options selected in the `filters` object\n * @param {array} items A list of items to filter\n * @param {IFilter} options an options object for the filtering configuration\n */\nexport function filterItems(items, filters) {\n if (!Object.keys(filters).length) {\n return items;\n }\n\n return items.filter((item) => {\n for (const key in filters) {\n // eg. `brand`, `category`, `status`...\n const filter = filters[key]; // IFilter;\n const filterValues = filter.filterBy; // eg. ['1906', 'LuvBuds'], ['vape', 'pen', 'flower']\n let itemValue = get(item, key.split('.')); // eg `LuvBuds`, 'vape'\n\n // TODO take care of this upstream. ie write custom filter function if itemValue is an object\n // ie. if (typeof itemValue !== 'string' || typeof itemValue !== 'number' )\n if (isPlainObject(itemValue)) {\n itemValue = item[key].id;\n }\n\n if ('customFilter' in filter) {\n // custom function should return `false` when the filter logic does not match\n if (!filter.customFilter(filterValues, itemValue, item)) {\n return false;\n }\n } else {\n if (!Array.isArray(itemValue) && !~filterValues.indexOf(itemValue)) {\n return false;\n }\n }\n }\n\n return true;\n });\n}\n\n/**\n * Sorts an array of items\n * @param {Array} items the list of things to sort\n * @param {ISort} options an options object for the sorting configuration\n * sortBy: the object key to sort on\n * sortDesc: whether to sort descending or not\n * customSorter: a custom sorting function\n *\n * https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/util/helpers.ts#L381\n */\nexport function sortItems(items, options) {\n const { sortBy, sortDesc, customSorter, locale = 'en' } = options;\n const isObject = items.length && typeof items[0] === 'object';\n\n if (!sortBy && isObject) {\n return items;\n }\n\n return [...items].sort((a, b) => {\n let sortA = get(a, sortBy) || a;\n let sortB = get(b, sortBy) || b;\n\n if (sortDesc) {\n [sortA, sortB] = [sortB, sortA];\n }\n\n if (customSorter) {\n return customSorter(sortA, sortB);\n }\n\n [sortA, sortB] = [sortA, sortB].map((s) => (s || '').toString().toLocaleLowerCase());\n\n if (sortA !== sortB) {\n const sortResult =\n !isNaN(sortA) && !isNaN(sortB) ? Number(sortA) - Number(sortB) : sortA.localeCompare(sortB, locale);\n\n if (sortResult) {\n return sortResult;\n }\n }\n\n return 0;\n });\n}\n\n/**\n * Removes all accents/diacritics and converts to lower case\n * @param {string} text to normalize\n */\nexport function normalizeText(text) {\n if (isFinite(text)) {\n text = text.toString();\n }\n\n if (!text || typeof text !== 'string') {\n return '';\n }\n\n /**\n * NFD splits the canonical form and the regex removed only accent characters\n * see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize for more detail.\n */\n return text\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n}\n\n/**\n * Generates a hash code from a string\n * @param {string} s The string to generate a hash from\n * @see https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript/52171480\n */\nexport function hashCode(s) {\n return s.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n}\n\n/**\n * Returns the mount point for elements that will reattach themselves, or creates one if not available\n */\nexport function getMountPoint() {\n const el = document.querySelector(MOUNT_POINT_CLASS);\n\n if (!el) {\n const div = document.createElement('div');\n\n div.className = MOUNT_POINT_CLASS.slice(1, MOUNT_POINT_CLASS.length);\n return document.body.appendChild(div);\n }\n\n return el;\n}\n\n/**\n * Retrieves the value of a css variable\n *\n * @param {string} name name of the css var, with or without `--`\n * @return {string} value of the css var\n */\nexport function getCssVar(name) {\n let variable = name;\n\n if (variable.substring(0, 2) !== '--') {\n variable = `--${variable}`;\n }\n\n return getComputedStyle(document.documentElement).getPropertyValue(variable);\n}\n\n/**\n * Format the license type text to display\n * @param {string} licenseType the first three characters of the licenseType\n */\nexport function formatLicenseTypeText(licenseType = '') {\n const type = licenseType.toUpperCase();\n\n return type === BULK ? type : type.slice(0, 3);\n}\n\nexport function generateColorClass(type, value) {\n let color;\n\n try {\n switch (type) {\n case 'license':\n value = formatLicenseTypeText(value);\n color = LICENSE_COLORS[value];\n break;\n case 'order':\n color = 'll-bg-' + ORDER[value.toUpperCase()].color;\n break;\n case 'certified-seller':\n color = SELLER_STATUSES[camelCase(value)].color;\n break;\n case 'inbound-leads':\n color = INBOUND_LEADS[value.toUpperCase()].color;\n break;\n }\n\n return color || 'll-bg-ice';\n } catch (e) {\n return 'll-bg-ice';\n }\n}\n"],"names":["BULK","MOUNT_POINT_CLASS","filterItems","items","filters","item","key","filter","filterValues","itemValue","get","isPlainObject","sortItems","options","sortBy","sortDesc","customSorter","locale","isObject","a","b","sortA","sortB","s","sortResult","normalizeText","text","isFinite","hashCode","getMountPoint","el","div","getCssVar","name","variable","formatLicenseTypeText","licenseType","type","generateColorClass","value","color","LICENSE_COLORS","ORDER","SELLER_STATUSES","camelCase","INBOUND_LEADS"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../src/utils/helpers.ts"],"sourcesContent":["import camelCase from 'lodash-es/camelCase';\nimport get from 'lodash-es/get';\nimport isFinite from 'lodash-es/isFinite';\nimport isPlainObject from 'lodash-es/isPlainObject';\n\nimport { INBOUND_LEADS, LICENSE_COLORS, ORDER, SELLER_STATUSES } from '../constants';\n\nconst BULK = 'BULK';\nconst MOUNT_POINT_CLASS = '.mount-point-container';\n\n/**\n * Filters the list of `items` based on options selected in the `filters` object\n * @param {array} items A list of items to filter\n * @param {IFilter} options an options object for the filtering configuration\n */\nexport function filterItems(items, filters) {\n if (!Object.keys(filters).length) {\n return items;\n }\n\n return items.filter((item) => {\n for (const key in filters) {\n // eg. `brand`, `category`, `status`...\n const filter = filters[key]; // IFilter;\n const filterValues = filter.filterBy; // eg. ['1906', 'LuvBuds'], ['vape', 'pen', 'flower']\n let itemValue = get(item, key.split('.')); // eg `LuvBuds`, 'vape'\n\n // TODO take care of this upstream. ie write custom filter function if itemValue is an object\n // ie. if (typeof itemValue !== 'string' || typeof itemValue !== 'number' )\n if (isPlainObject(itemValue)) {\n itemValue = item[key].id;\n }\n\n if ('customFilter' in filter) {\n // custom function should return `false` when the filter logic does not match\n if (!filter.customFilter(filterValues, itemValue, item)) {\n return false;\n }\n } else {\n if (!Array.isArray(itemValue) && !~filterValues.indexOf(itemValue)) {\n return false;\n }\n }\n }\n\n return true;\n });\n}\n\n/**\n * Sorts an array of items\n * @param {Array} items the list of things to sort\n * @param {ISort} options an options object for the sorting configuration\n * sortBy: the object key to sort on\n * sortDesc: whether to sort descending or not\n * customSorter: a custom sorting function\n *\n * https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/util/helpers.ts#L381\n */\nexport function sortItems(items, options) {\n const { sortBy, sortDesc, customSorter, locale = 'en' } = options;\n const isObject = items.length && typeof items[0] === 'object';\n\n if (!sortBy && isObject) {\n return items;\n }\n\n return [...items].sort((a, b) => {\n let sortA = get(a, sortBy) || a;\n let sortB = get(b, sortBy) || b;\n\n if (sortDesc) {\n [sortA, sortB] = [sortB, sortA];\n }\n\n if (customSorter) {\n return customSorter(sortA, sortB);\n }\n\n [sortA, sortB] = [sortA, sortB].map((s) => (s || '').toString().toLocaleLowerCase());\n\n if (sortA !== sortB) {\n const sortResult =\n !isNaN(sortA) && !isNaN(sortB) ? Number(sortA) - Number(sortB) : sortA.localeCompare(sortB, locale);\n\n if (sortResult) {\n return sortResult;\n }\n }\n\n return 0;\n });\n}\n\n/**\n * Removes all accents/diacritics and converts to lower case\n * @param {string} text to normalize\n */\nexport function normalizeText(text) {\n if (isFinite(text)) {\n text = text.toString();\n }\n\n if (!text || typeof text !== 'string') {\n return '';\n }\n\n /**\n * NFD splits the canonical form and the regex removed only accent characters\n * see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize for more detail.\n */\n return text\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n}\n\n/**\n * Generates a hash code from a string\n * @param {string} s The string to generate a hash from\n * @see https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript/52171480\n */\nexport function hashCode(s) {\n return s.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n}\n\n/**\n * Returns the mount point for elements that will reattach themselves, or creates one if not available\n */\nexport function getMountPoint() {\n const el = document.querySelector(MOUNT_POINT_CLASS);\n\n if (!el) {\n const div = document.createElement('div');\n\n div.className = MOUNT_POINT_CLASS.slice(1, MOUNT_POINT_CLASS.length);\n return document.body.appendChild(div);\n }\n\n return el;\n}\n\n/**\n * Retrieves the value of a css variable\n *\n * @param {string} name name of the css var, with or without `--`\n * @return {string} value of the css var\n */\nexport function getCssVar(name) {\n let variable = name;\n\n if (variable.substring(0, 2) !== '--') {\n variable = `--${variable}`;\n }\n\n return getComputedStyle(document.documentElement).getPropertyValue(variable);\n}\n\n/**\n * Format the license type text to display\n * @param {string} licenseType the first three characters of the licenseType\n */\nexport function formatLicenseTypeText(licenseType = '') {\n const type = licenseType.toUpperCase();\n\n return type === BULK ? type : type.slice(0, 3);\n}\n\nexport function generateColorClass(type, value) {\n let color;\n\n try {\n switch (type) {\n case 'license':\n value = formatLicenseTypeText(value);\n color = LICENSE_COLORS[value];\n break;\n case 'order':\n color = 'tw-bg-' + ORDER[value.toUpperCase()].color;\n break;\n case 'certified-seller':\n color = SELLER_STATUSES[camelCase(value)].color;\n break;\n case 'inbound-leads':\n color = INBOUND_LEADS[value.toUpperCase()].color;\n break;\n }\n\n return color || 'tw-bg-ice-500';\n } catch (e) {\n return 'tw-bg-ice-500';\n }\n}\n"],"names":["BULK","MOUNT_POINT_CLASS","filterItems","items","filters","item","key","filter","filterValues","itemValue","get","isPlainObject","sortItems","options","sortBy","sortDesc","customSorter","locale","isObject","a","b","sortA","sortB","s","sortResult","normalizeText","text","isFinite","hashCode","getMountPoint","el","div","getCssVar","name","variable","formatLicenseTypeText","licenseType","type","generateColorClass","value","color","LICENSE_COLORS","ORDER","SELLER_STATUSES","camelCase","INBOUND_LEADS"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflink/stash",
3
- "version": "44.0.0-beta.5",
3
+ "version": "44.0.0-beta.7",
4
4
  "description": "LeafLink's design system.",
5
5
  "homepage": "https://stash.leaflink.com",
6
6
  "main": "./dist/index.ts",
@@ -138,7 +138,7 @@
138
138
  "autoprefixer": "^9.7.4",
139
139
  "babel-core": "^7.0.0-bridge.0",
140
140
  "eslint": "^8.41.0",
141
- "eslint-config-leaflink": "^3.0.0",
141
+ "eslint-config-leaflink": "^3.1.0",
142
142
  "jsdom": "^22.1.0",
143
143
  "postcss": "^8.4.35",
144
144
  "postcss-html": "^1.5.0",
package/tailwind-base.ts CHANGED
@@ -22,7 +22,7 @@ export default {
22
22
  // includes a variant modifier like /hover:bg-red-.+/.
23
23
  safelist: [
24
24
  {
25
- pattern: /(bg|text|border)-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)(-[1,5,7]00)?$/,
25
+ pattern: /(bg|text|border)-(purple|royal|blue|seafoam|teal|green|yellow|orange|red|ice)(-[1,5,7]00)$/,
26
26
  },
27
27
  // Illustration.vue stroke color.
28
28
  {
@@ -37,6 +37,8 @@ export default {
37
37
  // These are custom classes that we might not use in our Stash code, but we
38
38
  // define in Stash and want to keep in the final CSS for downstream use.
39
39
  'heading-jumbo',
40
+ // allow white and black to be used dynamically
41
+ 'bg-white', 'bg-black', 'text-white', 'text-black', 'border-white', 'border-black',
40
42
  ],
41
43
 
42
44
  // Conflicts with our own custom classes
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tabs.vue_used_vue_type_style_index_0_lang.module-0af1e1cf.js","sources":["../src/components/Tabs/keys.ts","../src/components/Tabs/models.ts","../src/components/Tabs/Tabs.vue"],"sourcesContent":["import { Injection } from '../../../types/utils';\nimport { TabsInjection } from './models';\n\nexport const TABS_INJECTION: Injection<TabsInjection> = Object.freeze({\n key: Symbol('TABS_INJECTION_KEY'),\n});\n","import { ComputedRef } from 'vue';\n\nexport enum TabVariant {\n Line = 'line',\n Enclosed = 'enclosed',\n}\n\nexport type TabVariants = `${TabVariant}`;\n\nexport interface TabsInjection {\n activeTab: ComputedRef<string>;\n variant: ComputedRef<TabVariants>;\n setActiveTab: (newTabValue: string) => void;\n}\n","<script lang=\"ts\">\n import { TabVariant, TabVariants } from './models';\n\n export * from './keys';\n export * from './models';\n\n export interface TabsProps {\n /**\n * The currently active tab value\n */\n activeTab: string;\n\n /**\n * Tabs variant\n */\n variant?: TabVariants;\n }\n</script>\n\n<script setup lang=\"ts\">\n import debounce from 'lodash-es/debounce';\n import uniqueId from 'lodash-es/uniqueId';\n import { computed, onBeforeUnmount, onDeactivated, onMounted, onUpdated, provide, Ref, ref, useCssModule } from 'vue';\n\n import { DEBOUNCE } from '../../constants';\n import { t } from '../../locale';\n import Dropdown from '../Dropdown/Dropdown.vue';\n import Icon from '../Icon/Icon.vue';\n import { TABS_INJECTION } from './keys';\n\n const emit =\n defineEmits<{\n (e: 'update:activeTab', newTabValue: TabsProps['activeTab']): void;\n }>();\n\n const props = withDefaults(defineProps<TabsProps>(), {\n variant: TabVariant.Line,\n });\n const classes = useCssModule();\n\n const tabListEl = ref();\n const moreDropdownMenuEl = ref();\n const observer: Ref<IntersectionObserver | undefined> = ref(undefined);\n const hasIntersectionObserver = 'IntersectionObserver' in window;\n const overflowIds = ref<Set<string>>(new Set());\n const moreDropdownWidth = ref(0);\n const moreDropdownEl = ref<InstanceType<typeof Dropdown>>();\n const moreMenuId = uniqueId('more-dropdown-menu-');\n const isMoreMenuOpen = ref(false);\n\n const currentActiveTab = computed({\n get() {\n return props.activeTab;\n },\n set(nv: TabsProps['activeTab']) {\n emit('update:activeTab', nv);\n },\n });\n\n function setActiveTab(newTabValue: TabsProps['activeTab']) {\n currentActiveTab.value = newTabValue;\n }\n\n provide(TABS_INJECTION.key, {\n activeTab: computed(() => currentActiveTab.value),\n variant: computed(() => props.variant),\n setActiveTab,\n });\n\n function initObserve() {\n if (!hasIntersectionObserver) {\n return;\n }\n\n if (!tabListEl.value) {\n return;\n }\n\n const tabs = Array.from(tabListEl.value?.children as HTMLLIElement[]);\n const options = {\n root: tabListEl.value,\n rootMargin: '0px',\n threshold: Array.from({ length: 100 }).map((v, i) => (i + 1) / 100),\n };\n\n observer.value = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n const dataId = entry.target.getAttribute('id') as string;\n /**\n * Check for partial intersection.\n * Zooming out can result in ratio of approx 0.984\n * Anything higher will result in nav items disappearing\n */\n if (entry.intersectionRatio > 0.94) {\n // show tab, hide in dropdown\n if (overflowIds.value.has(dataId)) {\n overflowIds.value.delete(dataId);\n }\n } else {\n // hide tab, show in dropdown\n if (dataId && !overflowIds.value.has(dataId)) {\n overflowIds.value.add(dataId);\n }\n }\n });\n }, options);\n\n tabs.forEach((element) => {\n observer.value?.observe(element);\n if (overflowIds.value.has(element.getAttribute('id') as string)) {\n element.classList.add('tw-invisible');\n } else {\n element.classList.remove('tw-invisible');\n }\n });\n\n moreDropdownWidth.value = moreDropdownEl.value?.$el?.getBoundingClientRect().width;\n\n if (!moreDropdownMenuEl.value) {\n return;\n }\n\n const dropdownList = Array.from(moreDropdownMenuEl.value.children as HTMLLIElement[]);\n dropdownList.forEach((element) => {\n const firstElementChild = element.firstElementChild as Element;\n firstElementChild.className = '';\n element.className = '';\n\n element.classList.add(\n classes['tabs__overflowed-tab'],\n 'tw-rounded',\n 'tw-text-sm',\n 'tw-p-1.5',\n 'tw-text-left',\n 'tw-cursor-pointer',\n 'tw-text-ice-700',\n 'hover:tw-text-white',\n 'hover:tw-bg-blue-500',\n 'aria-disabled:tw-text-ice-500',\n 'aria-disabled:tw-pointer-events-none',\n 'aria-disabled:hover:tw-text-ice-500',\n 'aria-disabled:hover:tw-bg-inherit',\n 'aria-disabled:hover:tw-cursor-default',\n 'aria-selected:tw-text-white',\n 'aria-selected:tw-bg-blue-500',\n );\n\n if (!overflowIds.value.has(element.getAttribute('id') as string)) {\n element.classList.add('tw-hidden');\n } else {\n element.classList.remove('tw-hidden');\n }\n\n element.removeEventListener('click', () => {});\n });\n }\n\n const debouncedInitObserve = debounce(initObserve, DEBOUNCE.FAST, { leading: true });\n\n function destroyObserver() {\n if (observer.value) {\n observer.value.disconnect();\n observer.value = undefined;\n }\n }\n\n onMounted(() => {\n initObserve();\n });\n\n onUpdated(() => {\n destroyObserver();\n debouncedInitObserve();\n });\n\n onDeactivated(() => {\n destroyObserver();\n });\n\n onBeforeUnmount(() => {\n destroyObserver();\n });\n\n function onMoreClick(toggleMoreDropdown) {\n toggleMoreDropdown();\n isMoreMenuOpen.value = !isMoreMenuOpen.value;\n }\n</script>\n\n<template>\n <div class=\"root stash-tabs tw-relative\" role=\"tabList\" data-test=\"stash-tabs\">\n <ul\n ref=\"tabListEl\"\n :style=\"{\n width: `calc(100% - ${moreDropdownWidth}px)`,\n }\"\n class=\"stash-tabs-list tw-flex tw-items-end tw-overflow-hidden\"\n :class=\"{\n 'stash-tabs-list--line': variant === 'line',\n 'stash-tabs-list--enclosed': variant === 'enclosed',\n 'tw-gap-6': variant === 'line',\n }\"\n >\n <slot></slot>\n\n <Dropdown v-if=\"overflowIds.size\" ref=\"moreDropdownEl\" class=\"!tw-absolute tw-right-0 tw-top-0\">\n <template #toggle=\"{ toggle }\">\n <button\n aria-haspopup=\"menu\"\n :aria-controls=\"moreMenuId\"\n :aria-expanded=\"isMoreMenuOpen\"\n class=\"\n tw-flex\n tw-cursor-pointer\n tw-items-center\n tw-justify-center\n tw-border-solid\n tw-px-6\n tw-py-1.5\n tw-text-sm\n tw-font-medium\n tw-text-blue-500\n hover:tw-text-blue-700\n \"\n :class=\"{ 'tw-border-t-4 tw-border-transparent': props.variant === 'enclosed' }\"\n type=\"button\"\n @click=\"onMoreClick(toggle)\"\n >\n {{ t('ll.more') }}\n <Icon name=\"caret-down\" />\n </button>\n </template>\n <template #default>\n <ul\n :id=\"moreMenuId\"\n ref=\"moreDropdownMenuEl\"\n class=\"tabs__dropdown-list tw-space-y-1.5 tw-px-1.5 tw-pb-1.5\"\n role=\"menu\"\n >\n <slot></slot>\n </ul>\n </template>\n </Dropdown>\n </ul>\n </div>\n</template>\n\n<style module>\n .tabs__overflowed-tab > a {\n /* prevents the global link styles to overwrite the overflowed tab styles */\n &,\n &:hover,\n &:focus {\n color: inherit;\n }\n }\n</style>\n"],"names":["TABS_INJECTION","TabVariant","classes","useCssModule","tabListEl","ref","moreDropdownMenuEl","observer","hasIntersectionObserver","overflowIds","moreDropdownWidth","moreDropdownEl","moreMenuId","uniqueId","isMoreMenuOpen","currentActiveTab","computed","props","nv","emit","setActiveTab","newTabValue","provide","initObserve","tabs","_a","options","v","i","entries","entry","dataId","element","_c","_b","firstElementChild","debouncedInitObserve","debounce","DEBOUNCE","destroyObserver","onMounted","onUpdated","onDeactivated","onBeforeUnmount","onMoreClick","toggleMoreDropdown"],"mappings":"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"}