@leaflink/stash 51.10.0 → 51.11.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.
@@ -247,6 +247,8 @@ declare const _default: {
247
247
  grow: string;
248
248
  pulse: string;
249
249
  shake: string;
250
+ 'fade-in': string;
251
+ 'fade-out': string;
250
252
  };
251
253
  keyframes: {
252
254
  grow: {
@@ -276,6 +278,22 @@ declare const _default: {
276
278
  transform: string;
277
279
  };
278
280
  };
281
+ 'fade-in': {
282
+ '0%': {
283
+ opacity: string;
284
+ };
285
+ '100%': {
286
+ opacity: string;
287
+ };
288
+ };
289
+ 'fade-out': {
290
+ '0%': {
291
+ opacity: string;
292
+ };
293
+ '100%': {
294
+ opacity: string;
295
+ };
296
+ };
279
297
  };
280
298
  transitionTimingFunction: {
281
299
  'fast-out-slow-in': string;
@@ -1,5 +1,5 @@
1
1
  import { SCREEN_SIZES as i } from "./constants.js";
2
- const l = {
2
+ const o = {
3
3
  content: [
4
4
  // Todo: can/should this be optimized? Where should we be looking for classes?
5
5
  "./src/**/*.{vue,ts,tsx,js,jsx,mdx}"
@@ -334,7 +334,9 @@ const l = {
334
334
  animation: {
335
335
  grow: "grow 1s",
336
336
  pulse: "pulse 2s cubic-bezier(.4, 0, .6,1) infinite",
337
- shake: "shake 1s ease 0s 1 normal none running"
337
+ shake: "shake 1s ease 0s 1 normal none running",
338
+ "fade-in": "fade-in 0.3s ease-out",
339
+ "fade-out": "fade-out 0.3s ease-in"
338
340
  },
339
341
  keyframes: {
340
342
  grow: {
@@ -359,6 +361,14 @@ const l = {
359
361
  "20%, 40%, 60%, 80%": {
360
362
  transform: "translate3d(10px, 0, 0)"
361
363
  }
364
+ },
365
+ "fade-in": {
366
+ "0%": { opacity: "0" },
367
+ "100%": { opacity: "1" }
368
+ },
369
+ "fade-out": {
370
+ "0%": { opacity: "1" },
371
+ "100%": { opacity: "0" }
362
372
  }
363
373
  },
364
374
  // .tw-ease-*
@@ -385,18 +395,18 @@ const l = {
385
395
  container: !1,
386
396
  preflight: !1
387
397
  }
388
- }, o = () => {
398
+ }, p = () => {
389
399
  const e = [];
390
- return ["purple", "royal", "blue", "seafoam", "teal", "green", "yellow", "orange", "red", "ice"].forEach((a) => {
400
+ return ["purple", "royal", "blue", "seafoam", "teal", "green", "yellow", "orange", "red", "ice"].forEach((r) => {
391
401
  ["bg", "text", "border", "stroke"].forEach((t) => {
392
- ["", "400"].forEach((r) => {
393
- e.push(`tw-${t}-${a}${r ? `-${r}` : ""}`);
402
+ ["", "400"].forEach((a) => {
403
+ e.push(`tw-${t}-${r}${a ? `-${a}` : ""}`);
394
404
  });
395
405
  });
396
406
  }), e;
397
407
  };
398
408
  export {
399
- l as default,
400
- o as getColorClasses
409
+ o as default,
410
+ p as getColorClasses
401
411
  };
402
412
  //# sourceMappingURL=tailwind-base.js.map
@@ -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,9]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',\n 'bg-black',\n 'text-white',\n 'text-black',\n 'border-white',\n '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 fontFamily: {\n mono: ['monospace'],\n sans: ['Sofia', 'sans-serif'],\n /**\n * @deprecated - use `tw-font-sans` instead!\n */\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 Scroll Lock Modules like Global Nav or the Bulk Select Mobile Pattern\n md: '0px 3px 3px 1px rgba(38, 38, 38, 0.05), 0px 3px 12px 1px rgba(38, 38, 38, 0.10)',\n\n // TBD\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 // Floating UIs like the Zendesk Help center\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 // Dropdowns, Selects, Menus\n '2xl':\n '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':\n '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 '2xl': 'calc(32/24)',\n xl: 'calc(28/20)',\n base: 'calc(24/16)',\n // for backwards compatibility with LL typography line-heights\n body: 'calc(20/14)',\n small: 'calc(16/12)',\n button: 'calc(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} 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,9]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',\n 'bg-black',\n 'text-white',\n 'text-black',\n 'border-white',\n '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 fontFamily: {\n mono: ['monospace'],\n sans: ['Sofia', 'sans-serif'],\n /**\n * @deprecated - use `tw-font-sans` instead!\n */\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 Scroll Lock Modules like Global Nav or the Bulk Select Mobile Pattern\n md: '0px 3px 3px 1px rgba(38, 38, 38, 0.05), 0px 3px 12px 1px rgba(38, 38, 38, 0.10)',\n\n // TBD\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 // Floating UIs like the Zendesk Help center\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 // Dropdowns, Selects, Menus\n '2xl':\n '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':\n '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 '2xl': 'calc(32/24)',\n xl: 'calc(28/20)',\n base: 'calc(24/16)',\n // for backwards compatibility with LL typography line-heights\n body: 'calc(20/14)',\n small: 'calc(16/12)',\n button: 'calc(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 'fade-in': 'fade-in 0.3s ease-out',\n 'fade-out': 'fade-out 0.3s ease-in',\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 'fade-in': {\n '0%': { opacity: '0' },\n '100%': { opacity: '1' },\n },\n 'fade-out': {\n '0%': { opacity: '1' },\n '100%': { opacity: '0' },\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} 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,5 +1,5 @@
1
1
  import d from "@leaflink/snitch";
2
- import { u as C } from "./index-GUu9zvbg.js";
2
+ import { u as C } from "./index-XZqpB2_R.js";
3
3
  import { isRef as I, toValue as D, nextTick as w, computed as i, ref as y, watch as A, onMounted as S, onBeforeUnmount as $ } from "vue";
4
4
  function G({ list: o, from: l, to: e }) {
5
5
  if (l === e) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflink/stash",
3
- "version": "51.10.0",
3
+ "version": "51.11.0",
4
4
  "description": "LeafLink's design system.",
5
5
  "homepage": "https://stash.leaflink.com",
6
6
  "main": "./dist/index.ts",
package/tailwind-base.ts CHANGED
@@ -362,6 +362,8 @@ export default {
362
362
  grow: 'grow 1s',
363
363
  pulse: 'pulse 2s cubic-bezier(.4, 0, .6,1) infinite',
364
364
  shake: 'shake 1s ease 0s 1 normal none running',
365
+ 'fade-in': 'fade-in 0.3s ease-out',
366
+ 'fade-out': 'fade-out 0.3s ease-in',
365
367
  },
366
368
 
367
369
  keyframes: {
@@ -390,6 +392,15 @@ export default {
390
392
  transform: 'translate3d(10px, 0, 0)',
391
393
  },
392
394
  },
395
+
396
+ 'fade-in': {
397
+ '0%': { opacity: '0' },
398
+ '100%': { opacity: '1' },
399
+ },
400
+ 'fade-out': {
401
+ '0%': { opacity: '1' },
402
+ '100%': { opacity: '0' },
403
+ },
393
404
  },
394
405
 
395
406
  // .tw-ease-*
@@ -1,156 +0,0 @@
1
- import { defineComponent as S, useCssModule as $, ref as a, computed as p, provide as z, onMounted as j, onUpdated as U, onDeactivated as V, onBeforeUnmount as q, createElementBlock as J, openBlock as _, createElementVNode as b, normalizeClass as C, normalizeStyle as R, renderSlot as L, createBlock as F, createCommentVNode as H, withCtx as T, unref as f, createTextVNode as K, createVNode as W, toDisplayString as Y } from "vue";
2
- import Z from "lodash-es/debounce";
3
- import G from "lodash-es/uniqueId";
4
- import { DEBOUNCE as P } from "./constants.js";
5
- import { t as Q } from "./locale.js";
6
- import X from "./Dropdown.js";
7
- import ee from "./Icon.js";
8
- const te = Object.freeze({
9
- key: Symbol("TABS_INJECTION_KEY")
10
- });
11
- var k = /* @__PURE__ */ ((i) => (i.Line = "line", i.Enclosed = "enclosed", i))(k || {});
12
- const oe = {
13
- class: "stash-tabs tw-relative",
14
- role: "tabList",
15
- "data-test": "stash-tabs"
16
- }, re = ["aria-controls", "aria-expanded", "onClick"], ae = ["id"], ve = /* @__PURE__ */ S({
17
- __name: "Tabs",
18
- props: {
19
- activeTab: {},
20
- variant: { default: k.Line }
21
- },
22
- emits: ["update:activeTab"],
23
- setup(i, { emit: I }) {
24
- const A = I, d = i, N = $(), l = a(), c = a(), n = a(void 0), M = "IntersectionObserver" in window, r = a(/* @__PURE__ */ new Set()), m = a(0), h = a(), g = G("more-dropdown-menu-"), u = a(!1), v = p({
25
- get() {
26
- return d.activeTab;
27
- },
28
- set(t) {
29
- A("update:activeTab", t);
30
- }
31
- });
32
- function O(t) {
33
- v.value = t;
34
- }
35
- z(te.key, {
36
- activeTab: p(() => v.value),
37
- variant: p(() => d.variant),
38
- setActiveTab: O
39
- });
40
- function E() {
41
- if (!M || !l.value)
42
- return;
43
- const t = Array.from(l.value?.children), x = {
44
- root: l.value,
45
- rootMargin: "0px",
46
- threshold: Array.from({ length: 100 }).map((e, s) => (s + 1) / 100)
47
- };
48
- if (n.value = new IntersectionObserver((e) => {
49
- e.forEach((s) => {
50
- const o = s.target.getAttribute("id");
51
- s.intersectionRatio > 0.94 ? r.value.has(o) && r.value.delete(o) : o && !r.value.has(o) && r.value.add(o);
52
- });
53
- }, x), t.forEach((e) => {
54
- n.value?.observe(e), r.value.has(e.getAttribute("id")) ? e.classList.add("tw-invisible") : e.classList.remove("tw-invisible");
55
- }), m.value = h.value?.$el?.getBoundingClientRect().width || 0, !c.value)
56
- return;
57
- Array.from(c.value.children).forEach((e) => {
58
- const s = e.firstElementChild;
59
- if (s.className = "", e.className = "", e.classList.add(
60
- N["menu-tab"],
61
- "tw-flex",
62
- "tw-items-center",
63
- "tw-justify-between",
64
- "tw-rounded",
65
- "tw-text-sm",
66
- "tw-p-1.5",
67
- "tw-text-left",
68
- "tw-cursor-pointer",
69
- "tw-text-ice-700",
70
- "hover:!tw-bg-ice-200",
71
- "aria-disabled:tw-text-ice-500",
72
- "aria-disabled:tw-pointer-events-none",
73
- "aria-disabled:hover:tw-text-ice-500",
74
- "aria-disabled:hover:tw-bg-inherit",
75
- "aria-disabled:hover:tw-cursor-default",
76
- "aria-selected:tw-bg-blue-100"
77
- ), e.querySelector(".stash-tabs__dropdown-selected-tab-icon")?.remove(), e.getAttribute("id") === `tab-${v.value}`) {
78
- const o = document.createElement("span");
79
- o.className = "stash-tabs__dropdown-selected-tab-icon", o.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" class="tw-text-blue-500 tw-w-6 tw-h-6" viewBox="0 0 24 24" fill="none"><path fill="currentColor" fill-rule="evenodd" d="M20.707 6.854 9 18.561l-5.707-5.707 1.414-1.414L9 15.733 19.293 5.44l1.414 1.414Z" clip-rule="evenodd"/></svg>', e.appendChild(o);
80
- }
81
- r.value.has(e.getAttribute("id")) ? e.classList.remove("tw-hidden") : e.classList.add("tw-hidden"), e.removeEventListener("click", () => {
82
- });
83
- });
84
- }
85
- const B = Z(E, P.FAST, { leading: !0 });
86
- function w() {
87
- n.value && (n.value.disconnect(), n.value = void 0);
88
- }
89
- j(() => {
90
- E();
91
- }), U(() => {
92
- w(), B();
93
- }), V(() => {
94
- w();
95
- }), q(() => {
96
- w();
97
- });
98
- function D(t) {
99
- t(), u.value = !u.value;
100
- }
101
- return (t, x) => (_(), J("div", oe, [
102
- b("ul", {
103
- ref_key: "tabListEl",
104
- ref: l,
105
- style: R({
106
- width: `calc(100% - ${m.value}px)`
107
- }),
108
- class: C(["stash-tabs-list tw-flex tw-items-end", {
109
- "stash-tabs-list--line": t.variant === "line",
110
- "stash-tabs-list--enclosed": t.variant === "enclosed",
111
- "tw-gap-6": t.variant === "line"
112
- }])
113
- }, [
114
- L(t.$slots, "default"),
115
- r.value.size ? (_(), F(X, {
116
- key: 0,
117
- ref_key: "moreDropdownEl",
118
- ref: h,
119
- class: "!tw-absolute tw-right-0 tw-top-0"
120
- }, {
121
- toggle: T(({ toggle: y }) => [
122
- b("button", {
123
- "aria-haspopup": "menu",
124
- "aria-controls": f(g),
125
- "aria-expanded": u.value,
126
- class: C(["tw-flex tw-cursor-pointer tw-items-center tw-justify-center tw-border-solid tw-px-6 tw-py-1.5 tw-text-sm tw-font-medium tw-text-blue-500 hover:tw-text-blue-700", { "tw-border-t-4 tw-border-transparent": d.variant === "enclosed" }]),
127
- type: "button",
128
- onClick: (e) => D(y)
129
- }, [
130
- K(Y(f(Q)("ll.more")) + " ", 1),
131
- W(ee, { name: "caret-down" })
132
- ], 10, re)
133
- ]),
134
- default: T(() => [
135
- b("ul", {
136
- id: f(g),
137
- ref_key: "moreDropdownMenuEl",
138
- ref: c,
139
- class: "tw-space-y-1.5 tw-px-1.5 tw-pb-1.5",
140
- role: "menu"
141
- }, [
142
- L(t.$slots, "default")
143
- ], 8, ae)
144
- ]),
145
- _: 3
146
- }, 512)) : H("", !0)
147
- ], 6)
148
- ]));
149
- }
150
- });
151
- export {
152
- te as T,
153
- ve as _,
154
- k as a
155
- };
156
- //# sourceMappingURL=Tabs.vue_vue_type_script_setup_true_lang-Dprx064Y.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tabs.vue_vue_type_script_setup_true_lang-Dprx064Y.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 = 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 || 0;\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['menu-tab'],\n 'tw-flex',\n 'tw-items-center',\n 'tw-justify-between',\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-bg-ice-200',\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-bg-blue-100',\n );\n\n element.querySelector('.stash-tabs__dropdown-selected-tab-icon')?.remove();\n\n if (element.getAttribute('id') === `tab-${currentActiveTab.value}`) {\n const span = document.createElement('span');\n span.className = 'stash-tabs__dropdown-selected-tab-icon';\n span.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"tw-text-blue-500 tw-w-6 tw-h-6\" viewBox=\"0 0 24 24\" fill=\"none\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M20.707 6.854 9 18.561l-5.707-5.707 1.414-1.414L9 15.733 19.293 5.44l1.414 1.414Z\" clip-rule=\"evenodd\"/></svg>`;\n element.appendChild(span);\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=\"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\"\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=\"tw-flex tw-cursor-pointer tw-items-center tw-justify-center tw-border-solid tw-px-6 tw-py-1.5 tw-text-sm tw-font-medium tw-text-blue-500 hover:tw-text-blue-700\"\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 :id=\"moreMenuId\" ref=\"moreDropdownMenuEl\" class=\"tw-space-y-1.5 tw-px-1.5 tw-pb-1.5\" role=\"menu\">\n <slot></slot>\n </ul>\n </template>\n </Dropdown>\n </ul>\n </div>\n</template>\n\n<style module>\n .menu-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","emit","__emit","props","__props","classes","useCssModule","tabListEl","ref","moreDropdownMenuEl","observer","hasIntersectionObserver","overflowIds","moreDropdownWidth","moreDropdownEl","moreMenuId","uniqueId","isMoreMenuOpen","currentActiveTab","computed","nv","setActiveTab","newTabValue","provide","initObserve","tabs","options","v","i","entries","entry","dataId","element","firstElementChild","span","debouncedInitObserve","debounce","DEBOUNCE","destroyObserver","onMounted","onUpdated","onDeactivated","onBeforeUnmount","onMoreClick","toggleMoreDropdown","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeStyle","variant","_renderSlot","_ctx","_createBlock","Dropdown","_withCtx","toggle","_unref","_normalizeClass","$event","_createTextVNode","_toDisplayString","t","_createVNode","Icon"],"mappings":"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"}
@@ -1,128 +0,0 @@
1
- import { unref as T, getCurrentScope as j, onScopeDispose as C, ref as v, watch as H } from "vue";
2
- function _(e) {
3
- return j() ? (C(e), !0) : !1;
4
- }
5
- function A(e) {
6
- return typeof e == "function" ? e() : T(e);
7
- }
8
- const L = typeof window < "u" && typeof document < "u";
9
- typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
10
- const k = Object.prototype.toString, B = (e) => k.call(e) === "[object Object]", D = () => {
11
- }, W = L ? window : void 0;
12
- function M(e) {
13
- var n;
14
- const s = A(e);
15
- return (n = s?.$el) != null ? n : s;
16
- }
17
- function S(...e) {
18
- let n, s, l, a;
19
- if (typeof e[0] == "string" || Array.isArray(e[0]) ? ([s, l, a] = e, n = W) : [n, s, l, a] = e, !n)
20
- return D;
21
- Array.isArray(s) || (s = [s]), Array.isArray(l) || (l = [l]);
22
- const o = [], f = () => {
23
- o.forEach((u) => u()), o.length = 0;
24
- }, g = (u, c, r, i) => (u.addEventListener(c, r, i), () => u.removeEventListener(c, r, i)), p = H(
25
- () => [M(n), A(a)],
26
- ([u, c]) => {
27
- if (f(), !u)
28
- return;
29
- const r = B(c) ? { ...c } : c;
30
- o.push(
31
- ...s.flatMap((i) => l.map((m) => g(u, i, m, r)))
32
- );
33
- },
34
- { immediate: !0, flush: "post" }
35
- ), d = () => {
36
- p(), f();
37
- };
38
- return _(d), d;
39
- }
40
- const G = {
41
- page: (e) => [e.pageX, e.pageY],
42
- client: (e) => [e.clientX, e.clientY],
43
- screen: (e) => [e.screenX, e.screenY],
44
- movement: (e) => e instanceof Touch ? null : [e.movementX, e.movementY]
45
- };
46
- function P(e = {}) {
47
- const {
48
- type: n = "page",
49
- touch: s = !0,
50
- resetOnTouchEnds: l = !1,
51
- initialValue: a = { x: 0, y: 0 },
52
- window: o = W,
53
- target: f = o,
54
- scroll: g = !0,
55
- eventFilter: p
56
- } = e;
57
- let d = null, u = 0, c = 0;
58
- const r = v(a.x), i = v(a.y), m = v(null), h = typeof n == "function" ? n : G[n], w = (t) => {
59
- const O = h(t);
60
- d = t, O && ([r.value, i.value] = O, m.value = "mouse"), o && (u = o.scrollX, c = o.scrollY);
61
- }, y = (t) => {
62
- if (t.touches.length > 0) {
63
- const O = h(t.touches[0]);
64
- O && ([r.value, i.value] = O, m.value = "touch");
65
- }
66
- }, b = () => {
67
- if (!d || !o)
68
- return;
69
- const t = h(d);
70
- d instanceof MouseEvent && t && (r.value = t[0] + o.scrollX - u, i.value = t[1] + o.scrollY - c);
71
- }, x = () => {
72
- r.value = a.x, i.value = a.y;
73
- }, E = p ? (t) => p(() => w(t), {}) : (t) => w(t), X = p ? (t) => p(() => y(t), {}) : (t) => y(t), Y = p ? () => p(() => b(), {}) : () => b();
74
- if (f) {
75
- const t = { passive: !0 };
76
- S(f, ["mousemove", "dragover"], E, t), s && n !== "movement" && (S(f, ["touchstart", "touchmove"], X, t), l && S(f, "touchend", x, t)), g && n === "page" && S(o, "scroll", Y, { passive: !0 });
77
- }
78
- return {
79
- x: r,
80
- y: i,
81
- sourceType: m
82
- };
83
- }
84
- function V(e, n = {}) {
85
- const {
86
- handleOutside: s = !0,
87
- window: l = W
88
- } = n, a = n.type || "page", { x: o, y: f, sourceType: g } = P(n), p = v(e ?? l?.document.body), d = v(0), u = v(0), c = v(0), r = v(0), i = v(0), m = v(0), h = v(!0);
89
- let w = () => {
90
- };
91
- return l && (w = H(
92
- [p, o, f],
93
- () => {
94
- const y = M(p);
95
- if (!y || !(y instanceof Element))
96
- return;
97
- const {
98
- left: b,
99
- top: x,
100
- width: E,
101
- height: X
102
- } = y.getBoundingClientRect();
103
- c.value = b + (a === "page" ? l.pageXOffset : 0), r.value = x + (a === "page" ? l.pageYOffset : 0), i.value = X, m.value = E;
104
- const Y = o.value - c.value, t = f.value - r.value;
105
- h.value = E === 0 || X === 0 || Y < 0 || t < 0 || Y > E || t > X, (s || !h.value) && (d.value = Y, u.value = t);
106
- },
107
- { immediate: !0 }
108
- ), S(document, "mouseleave", () => {
109
- h.value = !0;
110
- })), {
111
- x: o,
112
- y: f,
113
- sourceType: g,
114
- elementX: d,
115
- elementY: u,
116
- elementPositionX: c,
117
- elementPositionY: r,
118
- elementHeight: i,
119
- elementWidth: m,
120
- isOutside: h,
121
- stop: w
122
- };
123
- }
124
- export {
125
- V as a,
126
- M as u
127
- };
128
- //# sourceMappingURL=index-GUu9zvbg.js.map