@frontify/fondue 12.0.0-beta.246 → 12.0.0-beta.248

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.
@@ -7,25 +7,25 @@ import e, { useState as w, useEffect as C } from "react";
7
7
  import I from "tinycolor2";
8
8
  import S from "../../foundation/Icon/Generated/IconMagnifier.es.js";
9
9
  import y from "../../foundation/Icon/Generated/IconCheckMark.es.js";
10
- import R from "../../foundation/Icon/Generated/IconGridRegular.es.js";
11
- import z from "../../foundation/Icon/Generated/IconStackVertical.es.js";
12
- const o = (r, l = "") => r == null ? void 0 : r.toLocaleLowerCase().includes(l.toLocaleLowerCase().trim()), G = ({ palettes: r = [], currentColor: l, onSelect: x }) => {
10
+ import z from "../../foundation/Icon/Generated/IconGridRegular.es.js";
11
+ import R from "../../foundation/Icon/Generated/IconStackVertical.es.js";
12
+ const o = (l, r = "") => l == null ? void 0 : l.toLocaleLowerCase().includes(r.toLocaleLowerCase().trim()), G = ({ palettes: l = [], currentColor: r, onSelect: x }) => {
13
13
  const f = [
14
- { id: "Grid", icon: /* @__PURE__ */ e.createElement(R, null), ariaLabel: "Grid" },
15
- { id: "List", icon: /* @__PURE__ */ e.createElement(z, null), ariaLabel: "List" }
16
- ], [c, g] = w(f[0].id), [m, u] = w(""), [E, b] = w(r);
14
+ { id: "Grid", icon: /* @__PURE__ */ e.createElement(z, null), ariaLabel: "Grid" },
15
+ { id: "List", icon: /* @__PURE__ */ e.createElement(R, null), ariaLabel: "List" }
16
+ ], [s, g] = w(f[0].id), [m, u] = w(""), [E, b] = w(l);
17
17
  C(() => {
18
18
  const a = setTimeout(() => {
19
19
  b(
20
- r.filter(({ title: n, colors: i }) => o(n, m) || i.some(({ name: t }) => o(t, m))).map(({ id: n, title: i, colors: t }) => ({
21
- id: n,
22
- title: i,
23
- colors: t.some(({ name: s }) => o(s, m)) ? t.filter(({ name: s }) => o(s, m)) : t
20
+ l.filter(({ title: i, colors: n }) => o(i, m) || n.some(({ name: t }) => o(t, m))).map(({ id: i, title: n, colors: t }) => ({
21
+ id: i,
22
+ title: n,
23
+ colors: t.some(({ name: c }) => o(c, m)) ? t.filter(({ name: c }) => o(c, m)) : t
24
24
  }))
25
25
  );
26
26
  }, 200);
27
27
  return () => clearTimeout(a);
28
- }, [r, m]);
28
+ }, [l, m]);
29
29
  const p = E.filter((a) => a.colors.length > 0);
30
30
  return /* @__PURE__ */ e.createElement("div", { className: "tw-flex tw-flex-col tw-gap-4", "data-test-id": "brand-color-picker" }, /* @__PURE__ */ e.createElement("div", { className: "tw-flex tw-gap-2" }, /* @__PURE__ */ e.createElement("div", { className: "tw-flex-1" }, /* @__PURE__ */ e.createElement(
31
31
  h,
@@ -39,19 +39,20 @@ const o = (r, l = "") => r == null ? void 0 : r.toLocaleLowerCase().includes(l.t
39
39
  )), /* @__PURE__ */ e.createElement("div", { className: "tw-w-[72px]" }, /* @__PURE__ */ e.createElement(
40
40
  N,
41
41
  {
42
+ size: "small",
42
43
  items: f,
43
- activeItemId: c,
44
+ activeItemId: s,
44
45
  onChange: (a) => g(a)
45
46
  }
46
- ))), /* @__PURE__ */ e.createElement("ul", { className: "tw-flex tw-flex-col tw-gap-4" }, p.length > 0 ? p.map(({ id: a, title: n, colors: i }) => /* @__PURE__ */ e.createElement("li", { key: a, className: "tw-flex tw-flex-col tw-gap-2" }, /* @__PURE__ */ e.createElement("p", { className: "tw-text-black tw-text-xs tw-font-medium dark:tw-text-white" }, n), /* @__PURE__ */ e.createElement(
47
+ ))), /* @__PURE__ */ e.createElement("ul", { className: "tw-flex tw-flex-col tw-gap-4" }, p.length > 0 ? p.map(({ id: a, title: i, colors: n }) => /* @__PURE__ */ e.createElement("li", { key: a, className: "tw-flex tw-flex-col tw-gap-2" }, /* @__PURE__ */ e.createElement("p", { className: "tw-text-black tw-text-xs tw-font-medium dark:tw-text-white" }, i), /* @__PURE__ */ e.createElement(
47
48
  "ul",
48
49
  {
49
50
  className: d([
50
51
  "tw-flex tw-gap-y-2 tw-flex-wrap",
51
- c === "List" && "tw-flex-col"
52
+ s === "List" && "tw-flex-col"
52
53
  ])
53
54
  },
54
- i.map((t) => /* @__PURE__ */ e.createElement("li", { key: t.name, "data-test-id": "brand-color" }, /* @__PURE__ */ e.createElement(
55
+ n.map((t) => /* @__PURE__ */ e.createElement("li", { key: t.name, "data-test-id": "brand-color" }, /* @__PURE__ */ e.createElement(
55
56
  "button",
56
57
  {
57
58
  className: "tw-flex tw-w-full",
@@ -67,9 +68,9 @@ const o = (r, l = "") => r == null ? void 0 : r.toLocaleLowerCase().includes(l.t
67
68
  ]),
68
69
  style: { background: I(v(t)).toRgbString() }
69
70
  },
70
- t.red === l.red && t.green === l.green && t.blue === l.blue && t.alpha === l.alpha && /* @__PURE__ */ e.createElement(y, { size: L.Size20 })
71
+ t.red === r.red && t.green === r.green && t.blue === r.blue && t.alpha === r.alpha && /* @__PURE__ */ e.createElement(y, { size: L.Size20 })
71
72
  ),
72
- c === "List" && /* @__PURE__ */ e.createElement("span", { className: "tw-h-6 tw-grow tw-flex tw-items-center tw-text-sm tw-text-left" }, t.name)
73
+ s === "List" && /* @__PURE__ */ e.createElement("span", { className: "tw-h-6 tw-grow tw-flex tw-items-center tw-text-sm tw-text-left" }, t.name)
73
74
  )))
74
75
  ))) : "No colors found"));
75
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"BrandColorPicker.es.js","sources":["../../../src/components/ColorPicker/BrandColorPicker.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { SegmentedControls } from '@components/SegmentedControls/SegmentedControls';\nimport { TextInput } from '@components/TextInput/TextInput';\nimport { IconCheckMark, IconGridRegular, IconMagnifier, IconStackVertical } from '@foundation/Icon/Generated';\nimport { IconSize } from '@foundation/Icon/IconSize';\nimport { isColorLight, toShortRgb } from '@utilities/colors';\nimport { merge } from '@utilities/merge';\nimport React, { ReactElement, useEffect, useState } from 'react';\nimport tinycolor from 'tinycolor2';\nimport { ColorPickerProps } from './ColorPicker';\n\nconst find = (haystack?: string, needle = '') =>\n haystack?.toLocaleLowerCase().includes(needle.toLocaleLowerCase().trim());\n\nenum BrandColorView {\n List = 'List',\n Grid = 'Grid',\n}\n\ntype Props = Omit<ColorPickerProps, 'currentFormat' | 'setFormat'>;\n\nexport const BrandColorPicker = ({ palettes: defaultPalettes = [], currentColor, onSelect }: Props): ReactElement => {\n const views = [\n { id: BrandColorView.Grid, icon: <IconGridRegular />, ariaLabel: 'Grid' },\n { id: BrandColorView.List, icon: <IconStackVertical />, ariaLabel: 'List' },\n ];\n const [view, setView] = useState(views[0].id);\n const [query, setQuery] = useState('');\n const [palettes, setPalettes] = useState(defaultPalettes);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setPalettes(\n defaultPalettes\n .filter(({ title, colors }) => find(title, query) || colors.some(({ name }) => find(name, query)))\n .map(({ id, title, colors }) => ({\n id,\n title,\n colors: colors.some(({ name }) => find(name, query))\n ? colors.filter(({ name }) => find(name, query))\n : colors,\n })),\n );\n }, 200);\n\n return () => clearTimeout(timer);\n }, [defaultPalettes, query]);\n\n const palettesWithColors = palettes.filter((palette) => palette.colors.length > 0);\n\n return (\n <div className=\"tw-flex tw-flex-col tw-gap-4\" data-test-id=\"brand-color-picker\">\n <div className=\"tw-flex tw-gap-2\">\n <div className=\"tw-flex-1\">\n <TextInput\n value={query}\n decorator={<IconMagnifier />}\n placeholder=\"Search\"\n onChange={(value) => setQuery(value)}\n clearable\n />\n </div>\n <div className=\"tw-w-[72px]\">\n <SegmentedControls\n items={views}\n activeItemId={view}\n onChange={(colorView) => setView(colorView as BrandColorView)}\n />\n </div>\n </div>\n <ul className=\"tw-flex tw-flex-col tw-gap-4\">\n {palettesWithColors.length > 0\n ? palettesWithColors.map(({ id, title, colors }) => (\n <li key={id} className=\"tw-flex tw-flex-col tw-gap-2\">\n <p className=\"tw-text-black tw-text-xs tw-font-medium dark:tw-text-white\">{title}</p>\n <ul\n className={merge([\n 'tw-flex tw-gap-y-2 tw-flex-wrap',\n view === BrandColorView.List && 'tw-flex-col',\n ])}\n >\n {colors.map((color) => (\n <li key={color.name} data-test-id=\"brand-color\">\n <button\n className=\"tw-flex tw-w-full\"\n onClick={() => onSelect(color)}\n type=\"button\"\n >\n <span\n className={merge([\n 'tw-h-6 tw-w-6 tw-mr-2 tw-rounded tw-flex tw-items-center tw-justify-center tw-ring-1 tw-ring-black-10 tw-ring-offset-1',\n isColorLight(color) ? 'tw-text-black' : 'tw-text-white',\n ])}\n style={{ background: tinycolor(toShortRgb(color)).toRgbString() }}\n >\n {color.red === currentColor.red &&\n color.green === currentColor.green &&\n color.blue === currentColor.blue &&\n color.alpha === currentColor.alpha && (\n <IconCheckMark size={IconSize.Size20} />\n )}\n </span>\n {view === BrandColorView.List && (\n <span className=\"tw-h-6 tw-grow tw-flex tw-items-center tw-text-sm tw-text-left\">\n {color.name}\n </span>\n )}\n </button>\n </li>\n ))}\n </ul>\n </li>\n ))\n : 'No colors found'}\n </ul>\n </div>\n );\n};\nBrandColorPicker.displayName = 'FondueBrandColorPicker';\n"],"names":["find","haystack","needle","BrandColorPicker","defaultPalettes","currentColor","onSelect","views","IconGridRegular","IconStackVertical","view","setView","useState","query","setQuery","palettes","setPalettes","useEffect","timer","title","colors","name","id","palettesWithColors","palette","React","TextInput","IconMagnifier","value","SegmentedControls","colorView","merge","color","isColorLight","tinycolor","toShortRgb","IconCheckMark","IconSize"],"mappings":";;;;;;;;;;;AAYA,MAAMA,IAAO,CAACC,GAAmBC,IAAS,OACtCD,KAAA,gBAAAA,EAAU,oBAAoB,SAASC,EAAO,oBAAoB,KAAM,IAS/DC,IAAmB,CAAC,EAAE,UAAUC,IAAkB,CAAA,GAAI,cAAAC,GAAc,UAAAC,QAAoC;AACjH,QAAMC,IAAQ;AAAA,IACV,EAAE,IAAI,QAAqB,sCAAOC,GAAgB,IAAA,GAAI,WAAW,OAAO;AAAA,IACxE,EAAE,IAAI,QAAqB,sCAAOC,GAAkB,IAAA,GAAI,WAAW,OAAO;AAAA,EAAA,GAExE,CAACC,GAAMC,CAAO,IAAIC,EAASL,EAAM,CAAC,EAAE,EAAE,GACtC,CAACM,GAAOC,CAAQ,IAAIF,EAAS,EAAE,GAC/B,CAACG,GAAUC,CAAW,IAAIJ,EAASR,CAAe;AAExD,EAAAa,EAAU,MAAM;AACN,UAAAC,IAAQ,WAAW,MAAM;AAC3B,MAAAF;AAAA,QACIZ,EACK,OAAO,CAAC,EAAE,OAAAe,GAAO,QAAAC,EAAA,MAAapB,EAAKmB,GAAON,CAAK,KAAKO,EAAO,KAAK,CAAC,EAAE,MAAAC,EAAA,MAAWrB,EAAKqB,GAAMR,CAAK,CAAC,CAAC,EAChG,IAAI,CAAC,EAAE,IAAAS,GAAI,OAAAH,GAAO,QAAAC,SAAc;AAAA,UAC7B,IAAAE;AAAA,UACA,OAAAH;AAAA,UACA,QAAQC,EAAO,KAAK,CAAC,EAAE,MAAAC,EAAK,MAAMrB,EAAKqB,GAAMR,CAAK,CAAC,IAC7CO,EAAO,OAAO,CAAC,EAAE,MAAAC,QAAWrB,EAAKqB,GAAMR,CAAK,CAAC,IAC7CO;AAAA,QAAA,EACR;AAAA,MAAA;AAAA,OAEX,GAAG;AAEC,WAAA,MAAM,aAAaF,CAAK;AAAA,EAAA,GAChC,CAACd,GAAiBS,CAAK,CAAC;AAErB,QAAAU,IAAqBR,EAAS,OAAO,CAACS,MAAYA,EAAQ,OAAO,SAAS,CAAC;AAEjF,SACK,gBAAAC,EAAA,cAAA,OAAA,EAAI,WAAU,gCAA+B,gBAAa,wBACtD,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,sBACV,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,eACX,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,OAAOb;AAAA,MACP,2CAAYc,GAAc,IAAA;AAAA,MAC1B,aAAY;AAAA,MACZ,UAAU,CAACC,MAAUd,EAASc,CAAK;AAAA,MACnC,WAAS;AAAA,IAAA;AAAA,EAAA,CAEjB,GACC,gBAAAH,EAAA,cAAA,OAAA,EAAI,WAAU,cACX,GAAA,gBAAAA,EAAA;AAAA,IAACI;AAAA,IAAA;AAAA,MACG,OAAOtB;AAAA,MACP,cAAcG;AAAA,MACd,UAAU,CAACoB,MAAcnB,EAAQmB,CAA2B;AAAA,IAAA;AAAA,EAAA,CAEpE,CACJ,GACA,gBAAAL,EAAA,cAAC,MAAG,EAAA,WAAU,+BACT,GAAAF,EAAmB,SAAS,IACvBA,EAAmB,IAAI,CAAC,EAAE,IAAAD,GAAI,OAAAH,GAAO,QAAAC,EAAO,MACvC,gBAAAK,EAAA,cAAA,MAAA,EAAG,KAAKH,GAAI,WAAU,kCAClB,gBAAAG,EAAA,cAAA,KAAA,EAAE,WAAU,6DAAA,GAA8DN,CAAM,GACjF,gBAAAM,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWM,EAAM;AAAA,QACb;AAAA,QACArB,MAAS,UAAuB;AAAA,MAAA,CACnC;AAAA,IAAA;AAAA,IAEAU,EAAO,IAAI,CAACY,MACT,gBAAAP,EAAA,cAAC,QAAG,KAAKO,EAAM,MAAM,gBAAa,cAC9B,GAAA,gBAAAP,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAU;AAAA,QACV,SAAS,MAAMnB,EAAS0B,CAAK;AAAA,QAC7B,MAAK;AAAA,MAAA;AAAA,MAEL,gBAAAP,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAWM,EAAM;AAAA,YACb;AAAA,YACAE,EAAaD,CAAK,IAAI,kBAAkB;AAAA,UAAA,CAC3C;AAAA,UACD,OAAO,EAAE,YAAYE,EAAUC,EAAWH,CAAK,CAAC,EAAE,cAAc;AAAA,QAAA;AAAA,QAE/DA,EAAM,QAAQ3B,EAAa,OACxB2B,EAAM,UAAU3B,EAAa,SAC7B2B,EAAM,SAAS3B,EAAa,QAC5B2B,EAAM,UAAU3B,EAAa,yCACxB+B,GAAc,EAAA,MAAMC,EAAS,OAAQ,CAAA;AAAA,MAElD;AAAA,MACC3B,MAAS,UACN,gBAAAe,EAAA,cAAC,UAAK,WAAU,iEAAA,GACXO,EAAM,IACX;AAAA,IAAA,CAGZ,CACH;AAAA,EAAA,CAET,CACH,IACD,iBACV,CACJ;AAER;AACA7B,EAAiB,cAAc;"}
1
+ {"version":3,"file":"BrandColorPicker.es.js","sources":["../../../src/components/ColorPicker/BrandColorPicker.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { SegmentedControls } from '@components/SegmentedControls/SegmentedControls';\nimport { TextInput } from '@components/TextInput/TextInput';\nimport { IconCheckMark, IconGridRegular, IconMagnifier, IconStackVertical } from '@foundation/Icon/Generated';\nimport { IconSize } from '@foundation/Icon/IconSize';\nimport { isColorLight, toShortRgb } from '@utilities/colors';\nimport { merge } from '@utilities/merge';\nimport React, { ReactElement, useEffect, useState } from 'react';\nimport tinycolor from 'tinycolor2';\nimport { ColorPickerProps } from './ColorPicker';\n\nconst find = (haystack?: string, needle = '') =>\n haystack?.toLocaleLowerCase().includes(needle.toLocaleLowerCase().trim());\n\nenum BrandColorView {\n List = 'List',\n Grid = 'Grid',\n}\n\ntype Props = Omit<ColorPickerProps, 'currentFormat' | 'setFormat'>;\n\nexport const BrandColorPicker = ({ palettes: defaultPalettes = [], currentColor, onSelect }: Props): ReactElement => {\n const views = [\n { id: BrandColorView.Grid, icon: <IconGridRegular />, ariaLabel: 'Grid' },\n { id: BrandColorView.List, icon: <IconStackVertical />, ariaLabel: 'List' },\n ];\n const [view, setView] = useState(views[0].id);\n const [query, setQuery] = useState('');\n const [palettes, setPalettes] = useState(defaultPalettes);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setPalettes(\n defaultPalettes\n .filter(({ title, colors }) => find(title, query) || colors.some(({ name }) => find(name, query)))\n .map(({ id, title, colors }) => ({\n id,\n title,\n colors: colors.some(({ name }) => find(name, query))\n ? colors.filter(({ name }) => find(name, query))\n : colors,\n })),\n );\n }, 200);\n\n return () => clearTimeout(timer);\n }, [defaultPalettes, query]);\n\n const palettesWithColors = palettes.filter((palette) => palette.colors.length > 0);\n\n return (\n <div className=\"tw-flex tw-flex-col tw-gap-4\" data-test-id=\"brand-color-picker\">\n <div className=\"tw-flex tw-gap-2\">\n <div className=\"tw-flex-1\">\n <TextInput\n value={query}\n decorator={<IconMagnifier />}\n placeholder=\"Search\"\n onChange={(value) => setQuery(value)}\n clearable\n />\n </div>\n <div className=\"tw-w-[72px]\">\n <SegmentedControls\n size=\"small\"\n items={views}\n activeItemId={view}\n onChange={(colorView) => setView(colorView as BrandColorView)}\n />\n </div>\n </div>\n <ul className=\"tw-flex tw-flex-col tw-gap-4\">\n {palettesWithColors.length > 0\n ? palettesWithColors.map(({ id, title, colors }) => (\n <li key={id} className=\"tw-flex tw-flex-col tw-gap-2\">\n <p className=\"tw-text-black tw-text-xs tw-font-medium dark:tw-text-white\">{title}</p>\n <ul\n className={merge([\n 'tw-flex tw-gap-y-2 tw-flex-wrap',\n view === BrandColorView.List && 'tw-flex-col',\n ])}\n >\n {colors.map((color) => (\n <li key={color.name} data-test-id=\"brand-color\">\n <button\n className=\"tw-flex tw-w-full\"\n onClick={() => onSelect(color)}\n type=\"button\"\n >\n <span\n className={merge([\n 'tw-h-6 tw-w-6 tw-mr-2 tw-rounded tw-flex tw-items-center tw-justify-center tw-ring-1 tw-ring-black-10 tw-ring-offset-1',\n isColorLight(color) ? 'tw-text-black' : 'tw-text-white',\n ])}\n style={{ background: tinycolor(toShortRgb(color)).toRgbString() }}\n >\n {color.red === currentColor.red &&\n color.green === currentColor.green &&\n color.blue === currentColor.blue &&\n color.alpha === currentColor.alpha && (\n <IconCheckMark size={IconSize.Size20} />\n )}\n </span>\n {view === BrandColorView.List && (\n <span className=\"tw-h-6 tw-grow tw-flex tw-items-center tw-text-sm tw-text-left\">\n {color.name}\n </span>\n )}\n </button>\n </li>\n ))}\n </ul>\n </li>\n ))\n : 'No colors found'}\n </ul>\n </div>\n );\n};\nBrandColorPicker.displayName = 'FondueBrandColorPicker';\n"],"names":["find","haystack","needle","BrandColorPicker","defaultPalettes","currentColor","onSelect","views","IconGridRegular","IconStackVertical","view","setView","useState","query","setQuery","palettes","setPalettes","useEffect","timer","title","colors","name","id","palettesWithColors","palette","React","TextInput","IconMagnifier","value","SegmentedControls","colorView","merge","color","isColorLight","tinycolor","toShortRgb","IconCheckMark","IconSize"],"mappings":"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"}