@alegendstale/holly-components 0.2.2

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 (106) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +21 -0
  3. package/dist/components/absolute-container/absolute-container.d.ts +34 -0
  4. package/dist/components/absolute-container/absolute-container.d.ts.map +1 -0
  5. package/dist/components/absolute-container/absolute-container.js +96 -0
  6. package/dist/components/absolute-container/absolute-container.stories.d.ts +9 -0
  7. package/dist/components/absolute-container/absolute-container.stories.d.ts.map +1 -0
  8. package/dist/components/absolute-container/index.d.ts +2 -0
  9. package/dist/components/absolute-container/index.d.ts.map +1 -0
  10. package/dist/components/bottom-sheet/bottom-sheet.d.ts +68 -0
  11. package/dist/components/bottom-sheet/bottom-sheet.d.ts.map +1 -0
  12. package/dist/components/bottom-sheet/bottom-sheet.js +312 -0
  13. package/dist/components/bottom-sheet/bottom-sheet.stories.d.ts +14 -0
  14. package/dist/components/bottom-sheet/bottom-sheet.stories.d.ts.map +1 -0
  15. package/dist/components/bottom-sheet/bottom-sheet.test.d.ts +2 -0
  16. package/dist/components/bottom-sheet/bottom-sheet.test.d.ts.map +1 -0
  17. package/dist/components/bottom-sheet/index.d.ts +2 -0
  18. package/dist/components/bottom-sheet/index.d.ts.map +1 -0
  19. package/dist/components/canvas/canvas-base.d.ts +16 -0
  20. package/dist/components/canvas/canvas-base.d.ts.map +1 -0
  21. package/dist/components/canvas/canvas-base.js +48 -0
  22. package/dist/components/canvas/canvas-gradient.d.ts +20 -0
  23. package/dist/components/canvas/canvas-gradient.d.ts.map +1 -0
  24. package/dist/components/canvas/canvas-gradient.js +47 -0
  25. package/dist/components/canvas/canvas-image.d.ts +49 -0
  26. package/dist/components/canvas/canvas-image.d.ts.map +1 -0
  27. package/dist/components/canvas/canvas-image.js +117 -0
  28. package/dist/components/canvas/index.d.ts +3 -0
  29. package/dist/components/canvas/index.d.ts.map +1 -0
  30. package/dist/components/carousel-scroller/carousel-scroller.d.ts +29 -0
  31. package/dist/components/carousel-scroller/carousel-scroller.d.ts.map +1 -0
  32. package/dist/components/carousel-scroller/carousel-scroller.js +125 -0
  33. package/dist/components/carousel-scroller/carousel-scroller.stories.d.ts +11 -0
  34. package/dist/components/carousel-scroller/carousel-scroller.stories.d.ts.map +1 -0
  35. package/dist/components/carousel-scroller/index.d.ts +2 -0
  36. package/dist/components/carousel-scroller/index.d.ts.map +1 -0
  37. package/dist/components/color-palette/color-palette-utils.d.ts +69 -0
  38. package/dist/components/color-palette/color-palette-utils.d.ts.map +1 -0
  39. package/dist/components/color-palette/color-palette-utils.js +43 -0
  40. package/dist/components/color-palette/color-palette.d.ts +61 -0
  41. package/dist/components/color-palette/color-palette.d.ts.map +1 -0
  42. package/dist/components/color-palette/color-palette.js +346 -0
  43. package/dist/components/color-palette/component/color-palette-component.d.ts +22 -0
  44. package/dist/components/color-palette/component/color-palette-component.d.ts.map +1 -0
  45. package/dist/components/color-palette/component/color-palette-component.js +148 -0
  46. package/dist/components/color-palette/component/color-palette-component.stories.d.ts +11 -0
  47. package/dist/components/color-palette/component/color-palette-component.stories.d.ts.map +1 -0
  48. package/dist/components/color-palette/component/index.d.ts +2 -0
  49. package/dist/components/color-palette/component/index.d.ts.map +1 -0
  50. package/dist/components/color-palette/editor/color-palette-editor.d.ts +46 -0
  51. package/dist/components/color-palette/editor/color-palette-editor.d.ts.map +1 -0
  52. package/dist/components/color-palette/editor/color-palette-editor.js +611 -0
  53. package/dist/components/color-palette/editor/color-palette-editor.stories.d.ts +11 -0
  54. package/dist/components/color-palette/editor/color-palette-editor.stories.d.ts.map +1 -0
  55. package/dist/components/color-palette/editor/index.d.ts +2 -0
  56. package/dist/components/color-palette/editor/index.d.ts.map +1 -0
  57. package/dist/components/color-palette/index.d.ts +6 -0
  58. package/dist/components/color-palette/index.d.ts.map +1 -0
  59. package/dist/components/color-palette/item/color-palette-item-edit.d.ts +20 -0
  60. package/dist/components/color-palette/item/color-palette-item-edit.d.ts.map +1 -0
  61. package/dist/components/color-palette/item/color-palette-item-edit.js +91 -0
  62. package/dist/components/color-palette/item/color-palette-item.d.ts +29 -0
  63. package/dist/components/color-palette/item/color-palette-item.d.ts.map +1 -0
  64. package/dist/components/color-palette/item/color-palette-item.js +146 -0
  65. package/dist/components/color-palette/item/index.d.ts +3 -0
  66. package/dist/components/color-palette/item/index.d.ts.map +1 -0
  67. package/dist/components/color-palette/menu/color-palette-menu.d.ts +30 -0
  68. package/dist/components/color-palette/menu/color-palette-menu.d.ts.map +1 -0
  69. package/dist/components/color-palette/menu/color-palette-menu.js +231 -0
  70. package/dist/components/color-palette/menu/color-palette-reorder.d.ts +31 -0
  71. package/dist/components/color-palette/menu/color-palette-reorder.d.ts.map +1 -0
  72. package/dist/components/color-palette/menu/color-palette-reorder.js +108 -0
  73. package/dist/components/color-palette/menu/index.d.ts +3 -0
  74. package/dist/components/color-palette/menu/index.d.ts.map +1 -0
  75. package/dist/components/color-palette/storybook/color-palette-invalid.stories.d.ts +15 -0
  76. package/dist/components/color-palette/storybook/color-palette-invalid.stories.d.ts.map +1 -0
  77. package/dist/components/color-palette/storybook/color-palette-valid.stories.d.ts +34 -0
  78. package/dist/components/color-palette/storybook/color-palette-valid.stories.d.ts.map +1 -0
  79. package/dist/components/color-palette/storybook/color-palette.stories.d.ts +13 -0
  80. package/dist/components/color-palette/storybook/color-palette.stories.d.ts.map +1 -0
  81. package/dist/components/tool-tip/Tooltip2.d.ts +17 -0
  82. package/dist/components/tool-tip/Tooltip2.d.ts.map +1 -0
  83. package/dist/components/tool-tip/index.d.ts +2 -0
  84. package/dist/components/tool-tip/index.d.ts.map +1 -0
  85. package/dist/components/tool-tip/tool-tip.d.ts +29 -0
  86. package/dist/components/tool-tip/tool-tip.d.ts.map +1 -0
  87. package/dist/components/tool-tip/tool-tip.js +106 -0
  88. package/dist/components/tool-tip/tool-tip.stories.d.ts +12 -0
  89. package/dist/components/tool-tip/tool-tip.stories.d.ts.map +1 -0
  90. package/dist/index.d.ts +7 -0
  91. package/dist/index.d.ts.map +1 -0
  92. package/dist/index.js +13 -0
  93. package/dist/utils/EventEmitter.d.ts +9 -0
  94. package/dist/utils/EventEmitter.d.ts.map +1 -0
  95. package/dist/utils/EventEmitter.js +24 -0
  96. package/dist/utils/basicUtils.d.ts +47 -0
  97. package/dist/utils/basicUtils.d.ts.map +1 -0
  98. package/dist/utils/basicUtils.js +23 -0
  99. package/dist/utils/dragDropUtils.d.ts +36 -0
  100. package/dist/utils/dragDropUtils.d.ts.map +1 -0
  101. package/dist/utils/generateUtils.d.ts +27 -0
  102. package/dist/utils/generateUtils.d.ts.map +1 -0
  103. package/dist/utils/generateUtils.js +40 -0
  104. package/dist/utils/types.d.ts +5 -0
  105. package/dist/utils/types.d.ts.map +1 -0
  106. package/package.json +63 -0
@@ -0,0 +1,91 @@
1
+ import { css as l, html as p } from "lit";
2
+ import { customElement as u } from "lit/decorators.js";
3
+ import { EventEmitter as c } from "../../../utils/EventEmitter.js";
4
+ import { ColorPaletteItem as m } from "./color-palette-item.js";
5
+ import { createElement as f, Trash2 as g } from "lucide";
6
+ var h = Object.defineProperty, v = Object.getOwnPropertyDescriptor, d = Object.getPrototypeOf, b = Reflect.get, x = (t, r, o, i) => {
7
+ for (var e = i > 1 ? void 0 : i ? v(r, o) : r, n = t.length - 1, s; n >= 0; n--)
8
+ (s = t[n]) && (e = (i ? s(r, o, e) : s(e)) || e);
9
+ return i && e && h(r, o, e), e;
10
+ }, _ = (t, r, o) => b(d(t), o, r);
11
+ let a = class extends m {
12
+ constructor() {
13
+ super(...arguments), this.storedAlias = "", this.emitter = new c();
14
+ }
15
+ content() {
16
+ return p`
17
+ <input
18
+ value=${this.alias || this.color}
19
+ @pointerdown=${(t) => {
20
+ t.target instanceof HTMLInputElement && (t.stopPropagation(), this.storedAlias = t.target.value, t.target.value = "", t.target.focus());
21
+ }}
22
+ @contextmenu=${(t) => {
23
+ t.target instanceof HTMLInputElement && (t.stopPropagation(), t.preventDefault(), t.target.value = this.color.toUpperCase(), this.alias = "", t.target.blur());
24
+ }}
25
+ @keypress=${(t) => {
26
+ t.target instanceof HTMLInputElement && t.key === "Enter" && t.target.blur();
27
+ }}
28
+ @focusout=${(t) => {
29
+ t.target instanceof HTMLInputElement && (t.target.value.trim() === "" ? t.target.value = this.storedAlias : t.target.value !== this.color && (this.alias = t.target.value), this.emitter.emit("alias", this.alias));
30
+ }}
31
+ >
32
+ <button
33
+ id='trash'
34
+ title='Remove'
35
+ @click=${(t) => this.emitter.emit("trash", t)}
36
+ >
37
+ ${f(g)}
38
+ </button>
39
+ `;
40
+ }
41
+ };
42
+ a.styles = [
43
+ ..._(a, a, "styles"),
44
+ l`
45
+ :host(:not([preventHover]):hover) {
46
+ flex-basis: 0 !important;
47
+ }
48
+
49
+ #container {
50
+ input {
51
+ color: var(--palette-item-color);
52
+ font-size: var(--palette-item-font-size);
53
+ font-weight: bold;
54
+ user-select: none;
55
+ border: none;
56
+ background-color: transparent;
57
+ field-sizing: content;
58
+ min-width: 2rem;
59
+ cursor: pointer;
60
+ text-align: center;
61
+ }
62
+
63
+ /* Color Trash Button */
64
+ #trash {
65
+ background-color: var(--palette-item-background-color);
66
+ color: var(--palette-item-color);
67
+ box-shadow: rgba(0, 0, 0, 0.35) 0px -50px 20px -28px inset;
68
+ cursor: pointer;
69
+
70
+ border: none;
71
+ border-radius: 5px;
72
+ padding: 4px 12px;
73
+
74
+ &:hover {
75
+ background-color: rgb(75, 75, 75);
76
+ }
77
+
78
+ svg {
79
+ width: 18px;
80
+ height: 18px;
81
+ }
82
+ }
83
+ }
84
+ `
85
+ ];
86
+ a = x([
87
+ u("color-palette-item-edit")
88
+ ], a);
89
+ export {
90
+ a as ColorPaletteItemEdit
91
+ };
@@ -0,0 +1,29 @@
1
+ import { LitElement } from 'lit';
2
+ import { AliasMode, Direction } from '../color-palette-utils';
3
+ import { EventEmitter } from '../../../utils/EventEmitter';
4
+ export type EventMap = {
5
+ click: [e: MouseEvent];
6
+ };
7
+ export declare class ColorPaletteItem extends LitElement {
8
+ static styles: import("lit").CSSResult[];
9
+ container: HTMLDivElement;
10
+ color: string;
11
+ alias: string;
12
+ aliasMode: AliasMode;
13
+ direction: Direction;
14
+ editMode: boolean;
15
+ height: number;
16
+ preventHover: boolean;
17
+ hoverWhileEditing: boolean;
18
+ colorCount: number;
19
+ emitter: EventEmitter<EventMap>;
20
+ disconnectedCallback(): void;
21
+ render(): import("lit-html").TemplateResult<1>;
22
+ content(): import("lit-html").TemplateResult<1>;
23
+ }
24
+ declare global {
25
+ interface HTMLElementTagNameMap {
26
+ 'color-palette-item': ColorPaletteItem;
27
+ }
28
+ }
29
+ //# sourceMappingURL=color-palette-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-palette-item.d.ts","sourceRoot":"","sources":["../../../../src/components/color-palette/item/color-palette-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,EAAE,SAAS,EAAmB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D,MAAM,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;CACtB,CAAA;AAED,qBACa,gBAAiB,SAAQ,UAAU;IAC/C,MAAM,CAAC,MAAM,4BAgEX;IAGF,SAAS,EAAG,cAAc,CAAC;IAG3B,KAAK,EAAE,MAAM,CAAM;IAGnB,KAAK,EAAE,MAAM,CAAM;IAGnB,SAAS,EAAE,SAAS,CAA6B;IAGjD,SAAS,EAAE,SAAS,CAA6B;IAGjD,QAAQ,EAAE,OAAO,CAAS;IAG1B,MAAM,EAAE,MAAM,CAA0B;IAGxC,YAAY,EAAE,OAAO,CAAS;IAG9B,iBAAiB,EAAE,OAAO,CAAS;IAGnC,UAAU,EAAE,MAAM,CAAK;IAEhB,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAgC;IAEtE,oBAAoB,IAAI,IAAI;IAK5B,MAAM;IAkBN,OAAO;CAoBP;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,gBAAgB,CAAC;KACvC;CACD"}
@@ -0,0 +1,146 @@
1
+ import { css as h, LitElement as m, html as s, nothing as f } from "lit";
2
+ import { query as u, property as o, customElement as y } from "lit/decorators.js";
3
+ import { defaultSettings as d, AliasMode as g } from "../color-palette-utils.js";
4
+ import { EventEmitter as v } from "../../../utils/EventEmitter.js";
5
+ import { styleMap as x } from "lit/directives/style-map.js";
6
+ import { getForegroundColor as b, getAdjustedFontSize as C } from "../../../utils/basicUtils.js";
7
+ var M = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, e = (r, l, a, n) => {
8
+ for (var i = n > 1 ? void 0 : n ? $(l, a) : l, c = r.length - 1, p; c >= 0; c--)
9
+ (p = r[c]) && (i = (n ? p(l, a, i) : p(i)) || i);
10
+ return n && i && M(l, a, i), i;
11
+ };
12
+ let t = class extends m {
13
+ constructor() {
14
+ super(...arguments), this.color = "", this.alias = "", this.aliasMode = d.aliasMode, this.direction = d.direction, this.editMode = !1, this.height = d.height, this.preventHover = !1, this.hoverWhileEditing = !1, this.colorCount = 0, this.emitter = new v();
15
+ }
16
+ disconnectedCallback() {
17
+ super.disconnectedCallback(), this.emitter.clear();
18
+ }
19
+ render() {
20
+ const r = {
21
+ "--palette-item-background-color": this.color,
22
+ "--palette-item-color": b(this.color),
23
+ "--palette-item-font-size": `${C(this.colorCount)}px`
24
+ };
25
+ return s`
26
+ <div
27
+ id='container'
28
+ style=${x(r)}
29
+ @click=${(l) => this.emitter.emit("click", l)}
30
+ >
31
+ ${this.content()}
32
+ </div>
33
+ `;
34
+ }
35
+ content() {
36
+ const r = this.aliasMode === g.Both || this.alias == null || this.alias.trim() === "";
37
+ return s`
38
+ ${r ? s`<span id='text'>${this.color.trim().toUpperCase()}</span>` : f}
39
+ ${this.alias !== "" ? s`
40
+ <span id="alias">${this.alias}</span>
41
+ ` : f}
42
+
43
+ `;
44
+ }
45
+ };
46
+ t.styles = [
47
+ h`
48
+ :host {
49
+ display: flex;
50
+ flex: 1;
51
+ transition: all 0.1s ease-in-out;
52
+ --palette-item-background-color: #000000;
53
+ --palette-item-color: #ffffff;
54
+ --palette-item-font-size: 16px;
55
+ }
56
+
57
+ :host(:not([preventHover]):hover) {
58
+ flex-basis: var(--palette-column-flex-basis);
59
+
60
+ #container > span {
61
+ display: block;
62
+ }
63
+ }
64
+
65
+ :host([direction='column']:not([preventHover]):hover) {
66
+ flex-basis: 80px;
67
+ }
68
+
69
+ :host([direction='column']) > #container{
70
+ display: flex;
71
+ flex-direction: column;
72
+ justify-content: center;
73
+ }
74
+
75
+ :host([direction='row']) > #container {
76
+ display: flex;
77
+ justify-content: center;
78
+ }
79
+
80
+ :host([direction='row'][editMode]) > #container {
81
+ display: grid;
82
+ grid-template-columns: 1fr 1fr;
83
+ }
84
+
85
+ #container {
86
+ flex: 1;
87
+ gap: 3%;
88
+ background-color: var(--palette-item-background-color);
89
+ color: var(--palette-item-color);
90
+
91
+ *:first-child {
92
+ justify-self: flex-end;
93
+ align-self: center;
94
+ }
95
+
96
+ *:last-child {
97
+ justify-self: flex-start;
98
+ align-self: center;
99
+ }
100
+
101
+ span {
102
+ display: none;
103
+ text-align: center;
104
+ font-size: 100%;
105
+ font-weight: bold;
106
+ user-select: none;
107
+ }
108
+ }
109
+ `
110
+ ];
111
+ e([
112
+ u("#container")
113
+ ], t.prototype, "container", 2);
114
+ e([
115
+ o({ type: String })
116
+ ], t.prototype, "color", 2);
117
+ e([
118
+ o({ type: String })
119
+ ], t.prototype, "alias", 2);
120
+ e([
121
+ o({ type: String })
122
+ ], t.prototype, "aliasMode", 2);
123
+ e([
124
+ o({ type: String, reflect: !0 })
125
+ ], t.prototype, "direction", 2);
126
+ e([
127
+ o({ type: Boolean, reflect: !0 })
128
+ ], t.prototype, "editMode", 2);
129
+ e([
130
+ o({ type: Number })
131
+ ], t.prototype, "height", 2);
132
+ e([
133
+ o({ type: Boolean, reflect: !0 })
134
+ ], t.prototype, "preventHover", 2);
135
+ e([
136
+ o({ type: Boolean })
137
+ ], t.prototype, "hoverWhileEditing", 2);
138
+ e([
139
+ o({ type: Number })
140
+ ], t.prototype, "colorCount", 2);
141
+ t = e([
142
+ y("color-palette-item")
143
+ ], t);
144
+ export {
145
+ t as ColorPaletteItem
146
+ };
@@ -0,0 +1,3 @@
1
+ import './color-palette-item';
2
+ import './color-palette-item-edit';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/color-palette/item/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,2BAA2B,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { LitElement } from 'lit';
2
+ import { EventEmitter } from '../../../utils/EventEmitter';
3
+ import { CopyFormat, PaletteSettings } from '../color-palette-utils';
4
+ import { AbsoluteContainer } from '../../absolute-container/absolute-container';
5
+ type EventMap = {
6
+ change: [colors: string[] | undefined];
7
+ editMode: [val: boolean];
8
+ openEditor: [];
9
+ };
10
+ export declare class ColorPaletteMenu extends LitElement {
11
+ static styles: import("lit").CSSResult[];
12
+ absolute: AbsoluteContainer;
13
+ colors: string[];
14
+ settings?: Partial<PaletteSettings>;
15
+ editMode: Boolean;
16
+ copyFormat: CopyFormat;
17
+ reorder: boolean;
18
+ emitter: EventEmitter<EventMap>;
19
+ disconnectedCallback(): void;
20
+ render(): import("lit-html").TemplateResult<1>;
21
+ menuItems(): import("lit-html").TemplateResult<1>;
22
+ reorderItems(): import("lit-html").TemplateResult<1>;
23
+ }
24
+ declare global {
25
+ interface HTMLElementTagNameMap {
26
+ 'color-palette-menu': ColorPaletteMenu;
27
+ }
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=color-palette-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-palette-menu.d.ts","sourceRoot":"","sources":["../../../../src/components/color-palette/menu/color-palette-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAmB,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAItF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAIhF,KAAK,QAAQ,GAAG;IACf,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACtC,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACxB,UAAU,EAAE,EAAE,CAAA;CACd,CAAA;AAED,qBACa,gBAAiB,SAAQ,UAAU;IAC/C,MAAM,CAAC,MAAM,4BAiDX;IAGF,QAAQ,EAAG,iBAAiB,CAAC;IAG7B,MAAM,EAAE,MAAM,EAAE,CAAM;IAGtB,QAAQ,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAGpC,QAAQ,EAAE,OAAO,CAAS;IAG1B,UAAU,EAAE,UAAU,CAA8B;IAGpD,OAAO,EAAE,OAAO,CAAS;IAEzB,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAgC;IAE/D,oBAAoB,IAAI,IAAI;IAK5B,MAAM;IAuBN,SAAS;IAuHT,YAAY;CAmBZ;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,gBAAgB,CAAC;KACvC;CACD"}
@@ -0,0 +1,231 @@
1
+ import { css as f, LitElement as y, html as a, nothing as h } from "lit";
2
+ import { query as $, property as c, state as C, customElement as v } from "lit/decorators.js";
3
+ import { EventEmitter as k } from "../../../utils/EventEmitter.js";
4
+ import { defaultSettings as x } from "../color-palette-utils.js";
5
+ import { createElement as i, ArrowLeftRight as E, Palette as w, Brush as P, Check as M, Droplets as u, Scissors as O, Copy as R } from "lucide";
6
+ import { copyToClipboard as b } from "../../../utils/basicUtils.js";
7
+ import d from "colorsea";
8
+ import { AbsoluteContainer as S } from "../../absolute-container/absolute-container.js";
9
+ import { ref as g } from "lit/directives/ref.js";
10
+ import { ColorPaletteReorder as _ } from "./color-palette-reorder.js";
11
+ var F = Object.defineProperty, j = Object.getOwnPropertyDescriptor, l = (n, e, r, o) => {
12
+ for (var t = o > 1 ? void 0 : o ? j(e, r) : e, p = n.length - 1, m; p >= 0; p--)
13
+ (m = n[p]) && (t = (o ? m(e, r, t) : m(t)) || t);
14
+ return o && t && F(e, r, t), t;
15
+ };
16
+ let s = class extends y {
17
+ constructor() {
18
+ super(...arguments), this.colors = [], this.editMode = !1, this.copyFormat = x.copyFormat, this.reorder = !1, this.emitter = new k();
19
+ }
20
+ disconnectedCallback() {
21
+ super.disconnectedCallback(), this.emitter.clear();
22
+ }
23
+ render() {
24
+ return a`
25
+ <absolute-container
26
+ disableContextEvent
27
+ ${g((e) => {
28
+ e instanceof S && e.emitter.on("visibility", (r) => {
29
+ this.reorder = !1;
30
+ });
31
+ })}
32
+ >
33
+ ${this.reorder ? this.reorderItems() : this.menuItems()}
34
+ </absolute-container>
35
+ `;
36
+ }
37
+ menuItems() {
38
+ var e;
39
+ const n = {
40
+ colors: this.colors,
41
+ settings: this.settings
42
+ };
43
+ return a`
44
+ <menu>
45
+ <li>
46
+ <button
47
+ @click=${(r) => {
48
+ r.stopPropagation(), this.reorder = !this.reorder;
49
+ }}
50
+ >
51
+ ${i(E)}
52
+ <span>Reorder</span>
53
+ </button>
54
+ </li>
55
+ <li>
56
+ <button
57
+ @click=${() => {
58
+ this.emitter.emit("openEditor");
59
+ }}
60
+ >
61
+ ${i(w)}
62
+ <span>Edit Mode</span>
63
+ </button>
64
+ </li>
65
+ ${// Only show toggle edit mode option when palette is not a gradient
66
+ (e = this.settings) != null && e.gradient ? h : a`
67
+ <li>
68
+ <button
69
+ @click=${() => {
70
+ this.emitter.emit("editMode", !this.editMode);
71
+ }}
72
+ >
73
+ ${i(P)}
74
+ <span>Quick Edit</span>
75
+ ${this.editMode ? i(M) : h}
76
+ </button>
77
+ </li>
78
+ `}
79
+ <hr>
80
+ <li>
81
+ <button
82
+ @click=${() => {
83
+ const r = this.colors.map((o) => {
84
+ const t = d(o).rgb();
85
+ return `rgb(${t[0]}, ${t[1]}, ${t[2]})`;
86
+ });
87
+ this.emitter.emit("change", r);
88
+ }}
89
+ >
90
+ ${i(u)}
91
+ <span>Convert to RGB</span>
92
+ </button>
93
+ </li>
94
+ <li>
95
+ <button
96
+ @click=${() => {
97
+ const r = this.colors.map((o) => {
98
+ const t = d(o).hsl();
99
+ return `hsl(${t[0]} ${t[1]}% ${t[2]}%)`;
100
+ });
101
+ this.emitter.emit("change", r);
102
+ }}
103
+ >
104
+ ${i(u)}
105
+ <span>Convert to HSL</span>
106
+ </button>
107
+ </li>
108
+ <li>
109
+ <button
110
+ @click=${() => {
111
+ const r = this.colors.map((o) => d(o).hex(2));
112
+ this.emitter.emit("change", r);
113
+ }}
114
+ >
115
+ ${i(u)}
116
+ <span>Convert to HEX</span>
117
+ </button>
118
+ </li>
119
+ <hr>
120
+ <li>
121
+ <button
122
+ @click=${async () => {
123
+ await b(JSON.stringify(n), this.copyFormat), this.emitter.emit("change", []);
124
+ }}
125
+ >
126
+ ${i(O)}
127
+ <span>Cut</span>
128
+ </button>
129
+ </li>
130
+ <li>
131
+ <button
132
+ @click=${async () => {
133
+ await b(JSON.stringify(n), this.copyFormat);
134
+ }}
135
+ >
136
+ ${i(R)}
137
+ <span>Copy</span>
138
+ </button>
139
+ </li>
140
+ </menu>
141
+ `;
142
+ }
143
+ reorderItems() {
144
+ const n = (e) => {
145
+ e instanceof _ && (e.emitter.clear(), e.emitter.on("submit", (r) => {
146
+ this.emitter.emit("change", r), this.reorder = !1;
147
+ }));
148
+ };
149
+ return a`
150
+ <color-palette-reorder
151
+ .colors=${this.colors}
152
+ ${g(n)}
153
+ >
154
+ </color-palette-reorder>
155
+ `;
156
+ }
157
+ };
158
+ s.styles = [
159
+ f`
160
+ :host {
161
+ display: block;
162
+ }
163
+
164
+ menu {
165
+ display: grid;
166
+ grid-template-columns: 1fr;
167
+ padding: .5rem;
168
+ margin: 0;
169
+ border-radius: 5px;
170
+ color: rgb(245, 245, 245);
171
+ background-color: #222222;
172
+ }
173
+
174
+ li {
175
+ display: grid;
176
+ grid-template-columns: subgrid;
177
+ list-style: none;
178
+ }
179
+
180
+ button {
181
+ display: grid;
182
+ grid-template-columns: auto 1fr 1fr;
183
+ align-items: center;
184
+ justify-items: flex-start;
185
+ column-gap: .5rem;
186
+ background-color: inherit;
187
+ color: inherit;
188
+ border: none;
189
+ cursor: pointer;
190
+ padding: 4px 8px;
191
+ text-wrap: nowrap;
192
+
193
+ &:hover {
194
+ background-color: #323232;
195
+ }
196
+
197
+ span {
198
+ font-size: 14px;
199
+ }
200
+ }
201
+
202
+ hr {
203
+ width: 95%;
204
+ border-color: rgb(45, 45, 45);
205
+ }
206
+ `
207
+ ];
208
+ l([
209
+ $("absolute-container")
210
+ ], s.prototype, "absolute", 2);
211
+ l([
212
+ c({ type: Array })
213
+ ], s.prototype, "colors", 2);
214
+ l([
215
+ c({ type: Object })
216
+ ], s.prototype, "settings", 2);
217
+ l([
218
+ c({ type: Boolean })
219
+ ], s.prototype, "editMode", 2);
220
+ l([
221
+ c({ type: String })
222
+ ], s.prototype, "copyFormat", 2);
223
+ l([
224
+ C()
225
+ ], s.prototype, "reorder", 2);
226
+ s = l([
227
+ v("color-palette-menu")
228
+ ], s);
229
+ export {
230
+ s as ColorPaletteMenu
231
+ };
@@ -0,0 +1,31 @@
1
+ import { LitElement } from 'lit';
2
+ import { EventEmitter } from '../../../utils/EventEmitter';
3
+ import { AbsoluteContainer } from '../../absolute-container/absolute-container';
4
+ declare enum Reorder {
5
+ Hue = "Hue",
6
+ Saturation = "Saturation",
7
+ Lightness = "Lightness",
8
+ Red = "Red",
9
+ Green = "Green",
10
+ Blue = "Blue",
11
+ Alpha = "Alpha"
12
+ }
13
+ type EventMap = {
14
+ submit: [colors: string[]];
15
+ };
16
+ export declare class ColorPaletteReorder extends LitElement {
17
+ static styles: import("lit").CSSResult[];
18
+ absolute: AbsoluteContainer;
19
+ colors: string[];
20
+ emitter: EventEmitter<EventMap>;
21
+ disconnectedCallback(): void;
22
+ render(): import("lit-html").TemplateResult<1>;
23
+ selectOption(item: Reorder): void;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ 'color-palette-reorder': ColorPaletteReorder;
28
+ }
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=color-palette-reorder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-palette-reorder.d.ts","sourceRoot":"","sources":["../../../../src/components/color-palette/menu/color-palette-reorder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,aAAK,OAAO;IACX,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;CACf;AAED,KAAK,QAAQ,GAAG;IACf,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAC1B,CAAA;AAED,qBACa,mBAAoB,SAAQ,UAAU;IAClD,MAAM,CAAC,MAAM,4BA+BX;IAGF,QAAQ,EAAG,iBAAiB,CAAC;IAG7B,MAAM,EAAE,MAAM,EAAE,CAAM;IAEf,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAgC;IAEtE,oBAAoB,IAAI,IAAI;IAM5B,MAAM;IAuBN,YAAY,CAAC,IAAI,EAAE,OAAO;CAiC1B;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,uBAAuB,EAAE,mBAAmB,CAAC;KAC7C;CACD"}
@@ -0,0 +1,108 @@
1
+ import u from "colorsea";
2
+ import { css as m, LitElement as h, html as c } from "lit";
3
+ import { query as b, property as d, customElement as g } from "lit/decorators.js";
4
+ import { repeat as x } from "lit/directives/repeat.js";
5
+ import { EventEmitter as f } from "../../../utils/EventEmitter.js";
6
+ var k = Object.defineProperty, y = Object.getOwnPropertyDescriptor, p = (t, o, s, e) => {
7
+ for (var r = e > 1 ? void 0 : e ? y(o, s) : o, n = t.length - 1, l; n >= 0; n--)
8
+ (l = t[n]) && (r = (e ? l(o, s, r) : l(r)) || r);
9
+ return e && r && k(o, s, r), r;
10
+ }, i = /* @__PURE__ */ ((t) => (t.Hue = "Hue", t.Saturation = "Saturation", t.Lightness = "Lightness", t.Red = "Red", t.Green = "Green", t.Blue = "Blue", t.Alpha = "Alpha", t))(i || {});
11
+ let a = class extends h {
12
+ constructor() {
13
+ super(...arguments), this.colors = [], this.emitter = new f();
14
+ }
15
+ disconnectedCallback() {
16
+ super.disconnectedCallback(), this.emitter.clear();
17
+ }
18
+ render() {
19
+ return c`
20
+ <menu>
21
+ ${x(
22
+ Object.keys(i),
23
+ (t) => c`
24
+ <button
25
+ @click=${(o) => {
26
+ this.selectOption(t);
27
+ }}
28
+ >
29
+ <span>${t}</span>
30
+ </button>
31
+ `
32
+ )}
33
+ </menu>
34
+ `;
35
+ }
36
+ selectOption(t) {
37
+ const o = this.colors.map((e) => u(e));
38
+ let s = [];
39
+ switch (t) {
40
+ case "Hue":
41
+ s = o.sort((e, r) => e.hue() - r.hue()).map((e) => e.hex());
42
+ break;
43
+ case "Saturation":
44
+ s = o.sort((e, r) => e.saturation() - r.saturation()).map((e) => e.hex());
45
+ break;
46
+ case "Lightness":
47
+ s = o.sort((e, r) => e.lightness() - r.lightness()).map((e) => e.hex());
48
+ break;
49
+ case "Red":
50
+ s = o.sort((e, r) => e.red() - r.red()).map((e) => e.hex());
51
+ break;
52
+ case "Green":
53
+ s = o.sort((e, r) => e.green() - r.green()).map((e) => e.hex());
54
+ break;
55
+ case "Blue":
56
+ s = o.sort((e, r) => e.blue() - r.blue()).map((e) => e.hex());
57
+ break;
58
+ case "Alpha":
59
+ s = o.sort((e, r) => e.alpha() - r.alpha()).map((e) => e.hex());
60
+ break;
61
+ }
62
+ this.emitter.emit("submit", s);
63
+ }
64
+ };
65
+ a.styles = [
66
+ m`
67
+ :host {
68
+ display: block;
69
+ }
70
+
71
+ menu {
72
+ display: flex;
73
+ flex-direction: column;
74
+ gap: .5rem;
75
+ background-color: rgb(27, 27, 27);
76
+ padding: .5rem;
77
+ border-radius: 5px;
78
+
79
+ button {
80
+ color: rgb(245, 245, 245);
81
+ background-color: transparent;
82
+ border: none;
83
+ padding: 4px 12px;
84
+ cursor: pointer;
85
+
86
+ &:hover {
87
+ background-color: rgb(75, 75, 75);
88
+ }
89
+
90
+ span {
91
+ font-size: 14px;
92
+ }
93
+ }
94
+ }
95
+ `
96
+ ];
97
+ p([
98
+ b("absolute-container")
99
+ ], a.prototype, "absolute", 2);
100
+ p([
101
+ d({ type: Array })
102
+ ], a.prototype, "colors", 2);
103
+ a = p([
104
+ g("color-palette-reorder")
105
+ ], a);
106
+ export {
107
+ a as ColorPaletteReorder
108
+ };
@@ -0,0 +1,3 @@
1
+ import './color-palette-menu';
2
+ import './color-palette-reorder';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/color-palette/menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,yBAAyB,CAAA"}