@brightspot/ui 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/custom-elements.json +144 -144
  2. package/dist/global.d.ts +10 -0
  3. package/dist/storybook/assets/{Avatar.stories-CpXI9mXR.js → Avatar.stories-QxWs-YfX.js} +1 -1
  4. package/dist/storybook/assets/{AvatarGroup.stories-D4NymG47.js → AvatarGroup.stories-Cy_Bvn7E.js} +1 -1
  5. package/dist/storybook/assets/{Badge.stories-BP4Yixze.js → Badge.stories-BpaApWbR.js} +1 -1
  6. package/dist/storybook/assets/{Button.stories-DDpQzCOq.js → Button.stories-C5h2usmd.js} +1 -1
  7. package/dist/storybook/assets/{CircularProgress.stories-B82LXwfS.js → CircularProgress.stories-DlPOiGja.js} +1 -1
  8. package/dist/storybook/assets/{ClipboardMixin.stories-Cr3efF-v.js → ClipboardMixin.stories-Bb45-UOM.js} +1 -1
  9. package/dist/storybook/assets/Color-6BZIO3FS-CcgGYVAo.js +1 -0
  10. package/dist/storybook/assets/{Colors.stories-CeKs5FaB.js → Colors.stories-DP2JKWUJ.js} +1 -1
  11. package/dist/storybook/assets/{ComponentStatesMixin-BkLj42wt.js → ComponentStatesMixin-B7ci0thi.js} +1 -1
  12. package/dist/storybook/assets/{ComponentStatesMixin.stories--YPoyrpQ.js → ComponentStatesMixin.stories-CyQ2aSTu.js} +1 -1
  13. package/dist/storybook/assets/{CopyToClipboard.stories-6vqDwd-F.js → CopyToClipboard.stories-DR7pckeV.js} +1 -1
  14. package/dist/storybook/assets/Debounce.stories-hkqyvqmg.js +199 -0
  15. package/dist/storybook/assets/DocsRenderer-LL677BLK-Dtw9GMer.js +758 -0
  16. package/dist/storybook/assets/{Events.stories-DD9wfoHi.js → Events.stories-BAgDzdyl.js} +1 -1
  17. package/dist/storybook/assets/{Heading.stories-D-Pvm7NG.js → Heading.stories-CN_fPsRf.js} +1 -1
  18. package/dist/storybook/assets/{Icon.stories-BbR3S56H.js → Icon.stories-CSx_2K8V.js} +1 -1
  19. package/dist/storybook/assets/{LinearProgress.stories-B9XHLvVn.js → LinearProgress.stories-In48DY2g.js} +1 -1
  20. package/dist/storybook/assets/Rtc.stories-19d7WXe4.js +281 -0
  21. package/dist/storybook/assets/{ScrollShadow.stories-CHFpB4Zf.js → ScrollShadow.stories-BFjracVd.js} +1 -1
  22. package/dist/storybook/assets/{Throttle.stories-BGNJSyDp.js → Throttle.stories-DD6ydiVq.js} +8 -8
  23. package/dist/storybook/assets/WithTooltip-65CFNBJE-Be1dKqOF.js +9 -0
  24. package/dist/storybook/assets/formatter-EIJCOSYU-anC2P5HS.js +1 -0
  25. package/dist/storybook/assets/{iframe-CpEKhsmw.css → iframe-B4njXYq6.css} +1 -1
  26. package/dist/storybook/assets/iframe-Bl9oHz5c.js +1061 -0
  27. package/dist/storybook/assets/index-Cn5E5A3G.js +1 -0
  28. package/dist/storybook/assets/onFind-DqriYjEB.js +1 -0
  29. package/dist/storybook/assets/onFind.stories-BMDLUk0l.js +1069 -0
  30. package/dist/storybook/assets/onRemove.stories-C3FcxtYh.js +234 -0
  31. package/dist/storybook/assets/onVisible.stories-B8Zyu0Th.js +187 -0
  32. package/dist/storybook/assets/syntaxhighlighter-ED5Y7EFY-BfTKsIVL.js +6 -0
  33. package/dist/storybook/iframe.html +57 -39
  34. package/dist/storybook/index.html +11 -4
  35. package/dist/storybook/index.json +1 -1
  36. package/dist/storybook/project.json +1 -1
  37. package/dist/storybook/sb-addons/docs-1/manager-bundle.js +1 -1
  38. package/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +112 -290
  39. package/dist/storybook/sb-addons/vitest-2/manager-bundle.js +3 -0
  40. package/dist/storybook/sb-manager/globals-runtime.js +60754 -66346
  41. package/dist/storybook/sb-manager/globals.js +2 -3
  42. package/dist/storybook/sb-manager/manager-stores.js +23 -0
  43. package/dist/storybook/sb-manager/runtime.js +12983 -11699
  44. package/dist/storybook/vite-inject-mocker-entry.js +2 -2
  45. package/dist/tailwind-plugin-button.js +3 -0
  46. package/dist/tailwind-plugin-button.js.map +1 -1
  47. package/dist/tailwind-plugin-button.ts +4 -0
  48. package/dist/util/Socket.d.ts +29 -0
  49. package/dist/util/Socket.d.ts.map +1 -0
  50. package/dist/util/Socket.js +153 -0
  51. package/dist/util/Socket.js.map +1 -0
  52. package/dist/util/Tether.d.ts +18 -0
  53. package/dist/util/Tether.d.ts.map +1 -0
  54. package/dist/util/Tether.js +102 -0
  55. package/dist/util/Tether.js.map +1 -0
  56. package/dist/util/TetherLayout.d.ts +12 -0
  57. package/dist/util/TetherLayout.d.ts.map +1 -0
  58. package/dist/util/TetherLayout.js +121 -0
  59. package/dist/util/TetherLayout.js.map +1 -0
  60. package/dist/util/debounce.d.ts +3 -0
  61. package/dist/util/debounce.d.ts.map +1 -0
  62. package/dist/util/debounce.js +15 -0
  63. package/dist/util/debounce.js.map +1 -0
  64. package/dist/util/focusable.d.ts +9 -0
  65. package/dist/util/focusable.d.ts.map +1 -0
  66. package/dist/util/focusable.js +19 -0
  67. package/dist/util/focusable.js.map +1 -0
  68. package/dist/util/getComponentKey.d.ts +2 -0
  69. package/dist/util/getComponentKey.d.ts.map +1 -0
  70. package/dist/util/getComponentKey.js +21 -0
  71. package/dist/util/getComponentKey.js.map +1 -0
  72. package/dist/util/keyboard.d.ts +8 -0
  73. package/dist/util/keyboard.d.ts.map +1 -0
  74. package/dist/util/keyboard.js +138 -0
  75. package/dist/util/keyboard.js.map +1 -0
  76. package/dist/util/noise.d.ts +6 -0
  77. package/dist/util/noise.d.ts.map +1 -0
  78. package/dist/util/noise.js +43 -0
  79. package/dist/util/noise.js.map +1 -0
  80. package/dist/util/onFind.d.ts +1 -0
  81. package/dist/util/onFind.d.ts.map +1 -1
  82. package/dist/util/onFind.js +73 -48
  83. package/dist/util/onFind.js.map +1 -1
  84. package/dist/util/onFindOnce.d.ts +3 -0
  85. package/dist/util/onFindOnce.d.ts.map +1 -0
  86. package/dist/util/onFindOnce.js +25 -0
  87. package/dist/util/onFindOnce.js.map +1 -0
  88. package/dist/util/onRTEReady.d.ts +22 -0
  89. package/dist/util/onRTEReady.d.ts.map +1 -0
  90. package/dist/util/onRTEReady.js +69 -0
  91. package/dist/util/onRTEReady.js.map +1 -0
  92. package/dist/util/onRemove.d.ts +7 -0
  93. package/dist/util/onRemove.d.ts.map +1 -0
  94. package/dist/util/onRemove.js +24 -0
  95. package/dist/util/onRemove.js.map +1 -0
  96. package/dist/util/onVisible.d.ts +3 -0
  97. package/dist/util/onVisible.d.ts.map +1 -0
  98. package/dist/util/onVisible.js +33 -0
  99. package/dist/util/onVisible.js.map +1 -0
  100. package/dist/util/previousUntil.d.ts +2 -0
  101. package/dist/util/previousUntil.d.ts.map +1 -0
  102. package/dist/util/previousUntil.js +21 -0
  103. package/dist/util/previousUntil.js.map +1 -0
  104. package/dist/util/repaint.d.ts +3 -0
  105. package/dist/util/repaint.d.ts.map +1 -0
  106. package/dist/util/repaint.js +14 -0
  107. package/dist/util/repaint.js.map +1 -0
  108. package/dist/util/rtc.d.ts +10 -0
  109. package/dist/util/rtc.d.ts.map +1 -0
  110. package/dist/util/rtc.js +184 -0
  111. package/dist/util/rtc.js.map +1 -0
  112. package/dist/util/storage.d.ts +6 -0
  113. package/dist/util/storage.d.ts.map +1 -0
  114. package/dist/util/storage.js +18 -0
  115. package/dist/util/storage.js.map +1 -0
  116. package/dist/util/transition.d.ts +2 -0
  117. package/dist/util/transition.d.ts.map +1 -0
  118. package/dist/util/transition.js +4 -0
  119. package/dist/util/transition.js.map +1 -0
  120. package/dist/util/types.d.ts +10 -0
  121. package/dist/util/types.d.ts.map +1 -0
  122. package/dist/util/types.js +2 -0
  123. package/dist/util/types.js.map +1 -0
  124. package/package.json +17 -6
  125. package/dist/storybook/assets/Color-64QXVMR3-BucypS4O.js +0 -1
  126. package/dist/storybook/assets/WithTooltip-SK46ZJ2J-QQZnlVfm.js +0 -825
  127. package/dist/storybook/assets/formatter-OMEEQ6HG-D3LRXsK-.js +0 -1
  128. package/dist/storybook/assets/iframe-D-tG1MVV.js +0 -1064
  129. package/dist/storybook/assets/index-mcT8sPvs.js +0 -1
  130. package/dist/storybook/assets/onFind.stories-Dagoyfc5.js +0 -284
  131. package/dist/storybook/assets/syntaxhighlighter-CAVLW7PM-BoS99i_u.js +0 -6
@@ -0,0 +1,184 @@
1
+ import { BroadcastChannel, createLeaderElection } from 'broadcast-channel';
2
+ import { v4 as uuidv4 } from 'uuid';
3
+ import { Socket } from './Socket.js';
4
+ const isV5Enabled = window.BRIGHTSPOT?.ui?.cms?.enableV5UI === true;
5
+ const autoUpdatesEnabled = window.BRIGHTSPOT?.ui?.cms?.enableAutomaticUpdates === true;
6
+ // Events that will be blocked when automatic updates are disabled in V5 UI.
7
+ // All other events will continue to be processed normally.
8
+ const BLOCKED_EVENTS = [
9
+ 'com.psddev.cms.tool.page.content.PublishBroadcast',
10
+ 'com.psddev.assign.AssignmentRtcBroadcast',
11
+ 'com.psddev.cms.conversation.PostBroadcast',
12
+ 'brightspot.liveblog.LiveBlogPostRtcBroadcast',
13
+ ];
14
+ let rtc;
15
+ if (window.DISABLE_RTC || !document.documentElement.dataset.userId) {
16
+ // Fake methods that do nothing when the RTC is disabled.
17
+ rtc = {
18
+ initialize: function () { },
19
+ restore: function () { },
20
+ receive: function () { },
21
+ receiveOnce: function () { },
22
+ execute: function () { },
23
+ };
24
+ }
25
+ else {
26
+ const BROADCAST = 'broadcast';
27
+ const CALLBACK = 'callback';
28
+ const CONNECT = 'connect';
29
+ const DISCONNECT = 'connect';
30
+ const EXECUTE = 'execute';
31
+ const RESTORE = 'restore';
32
+ // End restoring state by triggering callbacks.
33
+ const broadcastCallbacks = {};
34
+ const triggerBroadcastCallbacks = (broadcast, data) => {
35
+ if (isV5Enabled && !autoUpdatesEnabled && BLOCKED_EVENTS.includes(broadcast)) {
36
+ // Skip this blocked event when automatic updates are disabled
37
+ return;
38
+ }
39
+ for (const callback of broadcastCallbacks[broadcast] ?? []) {
40
+ callback(data);
41
+ }
42
+ };
43
+ const endRestore = (restoreCallback, broadcasts) => {
44
+ for (const { broadcast, data } of broadcasts ?? []) {
45
+ triggerBroadcastCallbacks(broadcast, data);
46
+ }
47
+ if (restoreCallback) {
48
+ restoreCallback(broadcasts);
49
+ }
50
+ };
51
+ // Start restoring state when not a leader.
52
+ const callbackIdPrefix = `${uuidv4()}-`;
53
+ let callbackIdIndex = 0;
54
+ const channel = new BroadcastChannel('brightspot-rtc');
55
+ const startRestore = (message, callback) => {
56
+ const newCallbackId = callbackIdPrefix + ++callbackIdIndex;
57
+ // [OC] Set up to trigger callbacks when the state restore is done.
58
+ const listener = ({ type, callbackId, broadcasts, }) => {
59
+ if (type === CALLBACK && callbackId === newCallbackId) {
60
+ channel.removeEventListener('message', listener);
61
+ endRestore(callback, broadcasts);
62
+ }
63
+ };
64
+ channel.addEventListener('message', listener);
65
+ // Trigger a send on the leader at [LS].
66
+ channel.postMessage({ type: RESTORE, message, callbackId: newCallbackId });
67
+ };
68
+ // Receive messages from the leader.
69
+ const restores = [];
70
+ const broadcastOnceCallbacks = {};
71
+ channel.addEventListener('message', ({ type, broadcast, data }) => {
72
+ if (type === CONNECT) {
73
+ // [OR] When the leader connects, restore states.
74
+ for (const { message, callback } of restores) {
75
+ startRestore(message, callback);
76
+ }
77
+ }
78
+ else if (type === BROADCAST) {
79
+ // [OB] Trigger broadcast callbacks.
80
+ triggerBroadcastCallbacks(broadcast, data);
81
+ }
82
+ });
83
+ // Make sure that there's only one connection to the server.
84
+ let socket;
85
+ const restore = (message, callback) => {
86
+ socket.send(message, (broadcasts) => {
87
+ endRestore(callback, broadcasts);
88
+ });
89
+ };
90
+ createLeaderElection(channel)
91
+ .awaitLeadership()
92
+ .then(() => {
93
+ socket = new Socket(`${window.ROOT_PATH}/_rtc`);
94
+ // [LS] Send a message on behalf of other windows.
95
+ channel.addEventListener('message', ({ type, message, callbackId }) => {
96
+ if (type === DISCONNECT || type === EXECUTE) {
97
+ socket.send(message);
98
+ }
99
+ else if (type === RESTORE) {
100
+ socket.send(message, broadcasts => {
101
+ // Trigger a callback on other windows at [OC].
102
+ channel.postMessage({ type: CALLBACK, callbackId, broadcasts });
103
+ });
104
+ }
105
+ });
106
+ socket.connect({
107
+ onConnect: () => {
108
+ // Restore states on the other windows at [OR].
109
+ channel.postMessage({ type: CONNECT });
110
+ // Restore states on the leader.
111
+ for (const { message, callback } of restores) {
112
+ restore(message, callback);
113
+ }
114
+ },
115
+ onReceive: ({ broadcast, data }) => {
116
+ if (broadcast && data) {
117
+ // Broadcast to the other windows at [OB].
118
+ channel.postMessage({ type: BROADCAST, broadcast, data });
119
+ // Trigger broadcast callbacks on the leader.
120
+ triggerBroadcastCallbacks(broadcast, data);
121
+ // Check if this event should be blocked when automatic updates are disabled in V5 UI
122
+ if (!(isV5Enabled && !autoUpdatesEnabled && BLOCKED_EVENTS.includes(broadcast))) {
123
+ for (const callback of broadcastOnceCallbacks[broadcast] ?? []) {
124
+ callback(data);
125
+ }
126
+ }
127
+ }
128
+ },
129
+ });
130
+ });
131
+ rtc = {
132
+ initialize: function (state, data, callback) {
133
+ rtc.restore(state, data, callback);
134
+ window.addEventListener('unload', () => {
135
+ const message = {
136
+ type: 'disconnect',
137
+ className: state,
138
+ data: data,
139
+ };
140
+ if (socket) {
141
+ socket.send(message, callback, true);
142
+ }
143
+ else {
144
+ // Send the action to the leader at [LS].
145
+ channel.postMessage({ type: DISCONNECT, message });
146
+ }
147
+ });
148
+ },
149
+ restore: function (state, data, callback) {
150
+ const message = { type: 'restore', className: state, data };
151
+ restores.push({ type: RESTORE, message, callback });
152
+ if (socket) {
153
+ restore(message, callback);
154
+ }
155
+ else {
156
+ startRestore(message, callback);
157
+ }
158
+ },
159
+ receive: function (broadcast, callback) {
160
+ if (callback) {
161
+ ;
162
+ (broadcastCallbacks[broadcast] ??= []).push(callback);
163
+ }
164
+ },
165
+ receiveOnce: function (broadcast, callback) {
166
+ if (callback) {
167
+ ;
168
+ (broadcastOnceCallbacks[broadcast] ??= []).push(callback);
169
+ }
170
+ },
171
+ execute: function (action, data) {
172
+ const message = { type: 'execute', className: action, data };
173
+ if (socket) {
174
+ socket.send(message);
175
+ }
176
+ else {
177
+ // Send the action to the leader at [LS].
178
+ channel.postMessage({ type: EXECUTE, message });
179
+ }
180
+ },
181
+ };
182
+ }
183
+ export default rtc;
184
+ //# sourceMappingURL=rtc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtc.js","sourceRoot":"","sources":["../../src/util/rtc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const storage: {
2
+ get: (key: string) => string | null;
3
+ set: (key: string, value: string) => void;
4
+ toggle: (key: string, force?: boolean) => boolean;
5
+ };
6
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/util/storage.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;eACP,MAAM;eAEN,MAAM,SAAS,MAAM;kBAElB,MAAM,UAAU,OAAO;CAatC,CAAA"}
@@ -0,0 +1,18 @@
1
+ const ls = window.localStorage;
2
+ export const storage = {
3
+ get: (key) => ls.getItem(key),
4
+ set: (key, value) => ls.setItem(key, value),
5
+ toggle: (key, force) => {
6
+ if (typeof force === 'undefined') {
7
+ force = !ls.getItem(key);
8
+ }
9
+ if (force) {
10
+ ls.setItem(key, '1');
11
+ }
12
+ else {
13
+ ls.removeItem(key);
14
+ }
15
+ return force;
16
+ },
17
+ };
18
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/util/storage.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAA;AAE9B,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAErC,GAAG,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;IAE3D,MAAM,EAAE,CAAC,GAAW,EAAE,KAAe,EAAE,EAAE;QACvC,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;YACjC,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function onTransitionsEnded(el: Element): Promise<PromiseSettledResult<Animation>[]>;
2
+ //# sourceMappingURL=transition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../src/util/transition.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,8CAE7C"}
@@ -0,0 +1,4 @@
1
+ export function onTransitionsEnded(el) {
2
+ return Promise.allSettled(el.getAnimations().map(animation => animation.finished));
3
+ }
4
+ //# sourceMappingURL=transition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../src/util/transition.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,EAAW;IAC5C,OAAO,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;AACpF,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type CSSAbsUnit = 'cm' | 'mm' | 'Q' | 'in' | 'pc' | 'pt' | 'px';
2
+ export type CSSRelUnit = 'em' | 'ex' | 'ch' | 'rem' | 'lh' | 'rlh' | 'vw' | 'vh' | 'vmin' | 'vmax' | 'vb' | 'vi' | 'svw' | 'svh' | 'lvw' | 'lvh' | 'dvw' | 'dvh';
3
+ export type CSSUnit = `${number}${CSSAbsUnit | CSSRelUnit}`;
4
+ export type UnknownFunction = (...args: unknown[]) => unknown;
5
+ export type JSONValue = JSONObject | JSONArray | string | number | boolean | null;
6
+ export interface JSONObject {
7
+ [key: string]: JSONValue;
8
+ }
9
+ export type JSONArray = Array<JSONValue>;
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AACtE,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAA;AAET,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,CAAA;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;AAC7D,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AACjF,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CACzB;AACD,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspot/ui",
3
- "version": "1.3.0",
3
+ "version": "1.4.1",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "description": "A UI library for building Brightspot CMS components.",
@@ -8,6 +8,8 @@
8
8
  "customElements": "dist/custom-elements.json",
9
9
  "exports": {
10
10
  ".": "./dist/tailwind.config.js",
11
+ "./components/*": "./dist/components/*",
12
+ "./util/*": "./dist/util/*",
11
13
  "./dist/*": "./dist/*",
12
14
  "./custom-elements.json": "./dist/custom-elements.json"
13
15
  },
@@ -21,6 +23,7 @@
21
23
  "prepack": "yarn build && yarn build-storybook",
22
24
  "storybook": "yarn cem && storybook dev -p 6006",
23
25
  "build-storybook": "yarn cem && storybook build -o ./dist/storybook",
26
+ "test:storybook": "vitest --project=storybook",
24
27
  "prepare": "husky"
25
28
  },
26
29
  "devDependencies": {
@@ -29,12 +32,15 @@
29
32
  "@custom-elements-manifest/analyzer": "^0.11.0",
30
33
  "@custom-elements-manifest/to-markdown": "^0.1.0",
31
34
  "@eslint/js": "^9.23.0",
32
- "@storybook/addon-docs": "^10.0.6",
33
- "@storybook/addon-themes": "^10.0.6",
34
- "@storybook/web-components-vite": "^10.0.6",
35
+ "@storybook/addon-docs": "10.2.12",
36
+ "@storybook/addon-themes": "10.2.12",
37
+ "@storybook/addon-vitest": "10.2.12",
38
+ "@storybook/web-components-vite": "10.2.12",
35
39
  "@tailwindcss/container-queries": "^0.1.1",
36
40
  "@types/node": "^24.10.0",
37
41
  "@types/postcss-import": "^14.0.3",
42
+ "@types/uuid": "^8.3.0",
43
+ "@vitest/browser-playwright": "^4.0.18",
38
44
  "@wc-toolkit/storybook-helpers": "^10.0.0",
39
45
  "autoprefixer": "10.4.21",
40
46
  "css-loader": "^6.7.1",
@@ -48,25 +54,30 @@
48
54
  "lit": "^3.3.0",
49
55
  "loglevel": "^1.8.0",
50
56
  "mini-css-extract-plugin": "^2.6.1",
57
+ "playwright": "^1.58.2",
51
58
  "postcss-import": "^16.0.0",
52
59
  "postcss-loader": "^8.0.0",
53
60
  "prettier": "^3.2.5",
54
61
  "prettier-plugin-organize-imports": "^4.3.0",
55
62
  "prettier-plugin-tailwindcss": "^0.6.8",
56
63
  "shx": "^0.4.0",
57
- "storybook": "^10.0.6",
64
+ "storybook": "10.2.12",
58
65
  "style-loader": "^3.3.1",
59
66
  "ts-node": "^10.8.1",
60
67
  "typescript": "^5.9.3",
61
68
  "typescript-eslint": "^8.29.0",
62
69
  "vite": "^7.1.7",
70
+ "vitest": "^4.0.18",
63
71
  "webpack": "^5.73.0",
64
72
  "webpack-cli": "^4.10.0",
65
73
  "webpack-merge": "^5.8.0"
66
74
  },
67
75
  "dependencies": {
76
+ "broadcast-channel": "^4.13.0",
68
77
  "lucide-static": "0.508.0",
69
- "tailwindcss": "^3.4.13"
78
+ "tabbable": "6.2.0",
79
+ "tailwindcss": "^3.4.13",
80
+ "uuid": "^8.3.2"
70
81
  },
71
82
  "peerDependencies": {
72
83
  "lit": "^3.0.0"
@@ -1 +0,0 @@
1
- import{r as x,R as b,s as E,W as J,g as me,T as ye,F as xe,M as we}from"./WithTooltip-SK46ZJ2J-QQZnlVfm.js";import{_ as d,a as ke,b as q}from"./iframe-D-tG1MVV.js";import"./preload-helper-PPVm8Dsz.js";import"./_commonjsHelpers-CqkleIqs.js";var _e=q({"../../node_modules/color-name/index.js"(t,l){l.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}}),Q=q({"../../node_modules/color-convert/conversions.js"(t,l){var i=_e(),f={};for(const e of Object.keys(i))f[i[e]]=e;var s={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};l.exports=s;for(const e of Object.keys(s)){if(!("channels"in s[e]))throw new Error("missing channels property: "+e);if(!("labels"in s[e]))throw new Error("missing channel labels property: "+e);if(s[e].labels.length!==s[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:r,labels:n}=s[e];delete s[e].channels,delete s[e].labels,Object.defineProperty(s[e],"channels",{value:r}),Object.defineProperty(s[e],"labels",{value:n})}s.rgb.hsl=function(e){const r=e[0]/255,n=e[1]/255,o=e[2]/255,a=Math.min(r,n,o),c=Math.max(r,n,o),u=c-a;let h,g;c===a?h=0:r===c?h=(n-o)/u:n===c?h=2+(o-r)/u:o===c&&(h=4+(r-n)/u),h=Math.min(h*60,360),h<0&&(h+=360);const p=(a+c)/2;return c===a?g=0:p<=.5?g=u/(c+a):g=u/(2-c-a),[h,g*100,p*100]},s.rgb.hsv=function(e){let r,n,o,a,c;const u=e[0]/255,h=e[1]/255,g=e[2]/255,p=Math.max(u,h,g),y=p-Math.min(u,h,g),m=d(function(_){return(p-_)/6/y+1/2},"diffc");return y===0?(a=0,c=0):(c=y/p,r=m(u),n=m(h),o=m(g),u===p?a=o-n:h===p?a=1/3+r-o:g===p&&(a=2/3+n-r),a<0?a+=1:a>1&&(a-=1)),[a*360,c*100,p*100]},s.rgb.hwb=function(e){const r=e[0],n=e[1];let o=e[2];const a=s.rgb.hsl(e)[0],c=1/255*Math.min(r,Math.min(n,o));return o=1-1/255*Math.max(r,Math.max(n,o)),[a,c*100,o*100]},s.rgb.cmyk=function(e){const r=e[0]/255,n=e[1]/255,o=e[2]/255,a=Math.min(1-r,1-n,1-o),c=(1-r-a)/(1-a)||0,u=(1-n-a)/(1-a)||0,h=(1-o-a)/(1-a)||0;return[c*100,u*100,h*100,a*100]};function v(e,r){return(e[0]-r[0])**2+(e[1]-r[1])**2+(e[2]-r[2])**2}d(v,"comparativeDistance"),s.rgb.keyword=function(e){const r=f[e];if(r)return r;let n=1/0,o;for(const a of Object.keys(i)){const c=i[a],u=v(e,c);u<n&&(n=u,o=a)}return o},s.keyword.rgb=function(e){return i[e]},s.rgb.xyz=function(e){let r=e[0]/255,n=e[1]/255,o=e[2]/255;r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;const a=r*.4124+n*.3576+o*.1805,c=r*.2126+n*.7152+o*.0722,u=r*.0193+n*.1192+o*.9505;return[a*100,c*100,u*100]},s.rgb.lab=function(e){const r=s.rgb.xyz(e);let n=r[0],o=r[1],a=r[2];n/=95.047,o/=100,a/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;const c=116*o-16,u=500*(n-o),h=200*(o-a);return[c,u,h]},s.hsl.rgb=function(e){const r=e[0]/360,n=e[1]/100,o=e[2]/100;let a,c,u;if(n===0)return u=o*255,[u,u,u];o<.5?a=o*(1+n):a=o+n-o*n;const h=2*o-a,g=[0,0,0];for(let p=0;p<3;p++)c=r+1/3*-(p-1),c<0&&c++,c>1&&c--,6*c<1?u=h+(a-h)*6*c:2*c<1?u=a:3*c<2?u=h+(a-h)*(2/3-c)*6:u=h,g[p]=u*255;return g},s.hsl.hsv=function(e){const r=e[0];let n=e[1]/100,o=e[2]/100,a=n;const c=Math.max(o,.01);o*=2,n*=o<=1?o:2-o,a*=c<=1?c:2-c;const u=(o+n)/2,h=o===0?2*a/(c+a):2*n/(o+n);return[r,h*100,u*100]},s.hsv.rgb=function(e){const r=e[0]/60,n=e[1]/100;let o=e[2]/100;const a=Math.floor(r)%6,c=r-Math.floor(r),u=255*o*(1-n),h=255*o*(1-n*c),g=255*o*(1-n*(1-c));switch(o*=255,a){case 0:return[o,g,u];case 1:return[h,o,u];case 2:return[u,o,g];case 3:return[u,h,o];case 4:return[g,u,o];case 5:return[o,u,h]}},s.hsv.hsl=function(e){const r=e[0],n=e[1]/100,o=e[2]/100,a=Math.max(o,.01);let c,u;u=(2-n)*o;const h=(2-n)*a;return c=n*a,c/=h<=1?h:2-h,c=c||0,u/=2,[r,c*100,u*100]},s.hwb.rgb=function(e){const r=e[0]/360;let n=e[1]/100,o=e[2]/100;const a=n+o;let c;a>1&&(n/=a,o/=a);const u=Math.floor(6*r),h=1-o;c=6*r-u,(u&1)!==0&&(c=1-c);const g=n+c*(h-n);let p,y,m;switch(u){default:case 6:case 0:p=h,y=g,m=n;break;case 1:p=g,y=h,m=n;break;case 2:p=n,y=h,m=g;break;case 3:p=n,y=g,m=h;break;case 4:p=g,y=n,m=h;break;case 5:p=h,y=n,m=g;break}return[p*255,y*255,m*255]},s.cmyk.rgb=function(e){const r=e[0]/100,n=e[1]/100,o=e[2]/100,a=e[3]/100,c=1-Math.min(1,r*(1-a)+a),u=1-Math.min(1,n*(1-a)+a),h=1-Math.min(1,o*(1-a)+a);return[c*255,u*255,h*255]},s.xyz.rgb=function(e){const r=e[0]/100,n=e[1]/100,o=e[2]/100;let a,c,u;return a=r*3.2406+n*-1.5372+o*-.4986,c=r*-.9689+n*1.8758+o*.0415,u=r*.0557+n*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),c=Math.min(Math.max(0,c),1),u=Math.min(Math.max(0,u),1),[a*255,c*255,u*255]},s.xyz.lab=function(e){let r=e[0],n=e[1],o=e[2];r/=95.047,n/=100,o/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;const a=116*n-16,c=500*(r-n),u=200*(n-o);return[a,c,u]},s.lab.xyz=function(e){const r=e[0],n=e[1],o=e[2];let a,c,u;c=(r+16)/116,a=n/500+c,u=c-o/200;const h=c**3,g=a**3,p=u**3;return c=h>.008856?h:(c-16/116)/7.787,a=g>.008856?g:(a-16/116)/7.787,u=p>.008856?p:(u-16/116)/7.787,a*=95.047,c*=100,u*=108.883,[a,c,u]},s.lab.lch=function(e){const r=e[0],n=e[1],o=e[2];let a;a=Math.atan2(o,n)*360/2/Math.PI,a<0&&(a+=360);const u=Math.sqrt(n*n+o*o);return[r,u,a]},s.lch.lab=function(e){const r=e[0],n=e[1],a=e[2]/360*2*Math.PI,c=n*Math.cos(a),u=n*Math.sin(a);return[r,c,u]},s.rgb.ansi16=function(e,r=null){const[n,o,a]=e;let c=r===null?s.rgb.hsv(e)[2]:r;if(c=Math.round(c/50),c===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(n/255));return c===2&&(u+=60),u},s.hsv.ansi16=function(e){return s.rgb.ansi16(s.hsv.rgb(e),e[2])},s.rgb.ansi256=function(e){const r=e[0],n=e[1],o=e[2];return r===n&&n===o?r<8?16:r>248?231:Math.round((r-8)/247*24)+232:16+36*Math.round(r/255*5)+6*Math.round(n/255*5)+Math.round(o/255*5)},s.ansi16.rgb=function(e){let r=e%10;if(r===0||r===7)return e>50&&(r+=3.5),r=r/10.5*255,[r,r,r];const n=(~~(e>50)+1)*.5,o=(r&1)*n*255,a=(r>>1&1)*n*255,c=(r>>2&1)*n*255;return[o,a,c]},s.ansi256.rgb=function(e){if(e>=232){const c=(e-232)*10+8;return[c,c,c]}e-=16;let r;const n=Math.floor(e/36)/5*255,o=Math.floor((r=e%36)/6)/5*255,a=r%6/5*255;return[n,o,a]},s.rgb.hex=function(e){const n=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(n.length)+n},s.hex.rgb=function(e){const r=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!r)return[0,0,0];let n=r[0];r[0].length===3&&(n=n.split("").map(h=>h+h).join(""));const o=parseInt(n,16),a=o>>16&255,c=o>>8&255,u=o&255;return[a,c,u]},s.rgb.hcg=function(e){const r=e[0]/255,n=e[1]/255,o=e[2]/255,a=Math.max(Math.max(r,n),o),c=Math.min(Math.min(r,n),o),u=a-c;let h,g;return u<1?h=c/(1-u):h=0,u<=0?g=0:a===r?g=(n-o)/u%6:a===n?g=2+(o-r)/u:g=4+(r-n)/u,g/=6,g%=1,[g*360,u*100,h*100]},s.hsl.hcg=function(e){const r=e[1]/100,n=e[2]/100,o=n<.5?2*r*n:2*r*(1-n);let a=0;return o<1&&(a=(n-.5*o)/(1-o)),[e[0],o*100,a*100]},s.hsv.hcg=function(e){const r=e[1]/100,n=e[2]/100,o=r*n;let a=0;return o<1&&(a=(n-o)/(1-o)),[e[0],o*100,a*100]},s.hcg.rgb=function(e){const r=e[0]/360,n=e[1]/100,o=e[2]/100;if(n===0)return[o*255,o*255,o*255];const a=[0,0,0],c=r%1*6,u=c%1,h=1-u;let g=0;switch(Math.floor(c)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=h,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=h,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=h}return g=(1-n)*o,[(n*a[0]+g)*255,(n*a[1]+g)*255,(n*a[2]+g)*255]},s.hcg.hsv=function(e){const r=e[1]/100,n=e[2]/100,o=r+n*(1-r);let a=0;return o>0&&(a=r/o),[e[0],a*100,o*100]},s.hcg.hsl=function(e){const r=e[1]/100,o=e[2]/100*(1-r)+.5*r;let a=0;return o>0&&o<.5?a=r/(2*o):o>=.5&&o<1&&(a=r/(2*(1-o))),[e[0],a*100,o*100]},s.hcg.hwb=function(e){const r=e[1]/100,n=e[2]/100,o=r+n*(1-r);return[e[0],(o-r)*100,(1-o)*100]},s.hwb.hcg=function(e){const r=e[1]/100,o=1-e[2]/100,a=o-r;let c=0;return a<1&&(c=(o-a)/(1-a)),[e[0],a*100,c*100]},s.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},s.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},s.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},s.gray.hsl=function(e){return[0,0,e[0]]},s.gray.hsv=s.gray.hsl,s.gray.hwb=function(e){return[0,100,e[0]]},s.gray.cmyk=function(e){return[0,0,0,e[0]]},s.gray.lab=function(e){return[e[0],0,0]},s.gray.hex=function(e){const r=Math.round(e[0]/100*255)&255,o=((r<<16)+(r<<8)+r).toString(16).toUpperCase();return"000000".substring(o.length)+o},s.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}}),Me=q({"../../node_modules/color-convert/route.js"(t,l){var i=Q();function f(){const r={},n=Object.keys(i);for(let o=n.length,a=0;a<o;a++)r[n[a]]={distance:-1,parent:null};return r}d(f,"buildGraph");function s(r){const n=f(),o=[r];for(n[r].distance=0;o.length;){const a=o.pop(),c=Object.keys(i[a]);for(let u=c.length,h=0;h<u;h++){const g=c[h],p=n[g];p.distance===-1&&(p.distance=n[a].distance+1,p.parent=a,o.unshift(g))}}return n}d(s,"deriveBFS");function v(r,n){return function(o){return n(r(o))}}d(v,"link");function e(r,n){const o=[n[r].parent,r];let a=i[n[r].parent][r],c=n[r].parent;for(;n[c].parent;)o.unshift(n[c].parent),a=v(i[n[c].parent][c],a),c=n[c].parent;return a.conversion=o,a}d(e,"wrapConversion"),l.exports=function(r){const n=s(r),o={},a=Object.keys(n);for(let c=a.length,u=0;u<c;u++){const h=a[u];n[h].parent!==null&&(o[h]=e(h,n))}return o}}}),Ee=q({"../../node_modules/color-convert/index.js"(t,l){var i=Q(),f=Me(),s={},v=Object.keys(i);function e(n){const o=d(function(...a){const c=a[0];return c==null?c:(c.length>1&&(a=c),n(a))},"wrappedFn");return"conversion"in n&&(o.conversion=n.conversion),o}d(e,"wrapRaw");function r(n){const o=d(function(...a){const c=a[0];if(c==null)return c;c.length>1&&(a=c);const u=n(a);if(typeof u=="object")for(let h=u.length,g=0;g<h;g++)u[g]=Math.round(u[g]);return u},"wrappedFn");return"conversion"in n&&(o.conversion=n.conversion),o}d(r,"wrapRounded"),v.forEach(n=>{s[n]={},Object.defineProperty(s[n],"channels",{value:i[n].channels}),Object.defineProperty(s[n],"labels",{value:i[n].labels});const o=f(n);Object.keys(o).forEach(c=>{const u=o[c];s[n][c]=r(u),s[n][c].raw=e(u)})}),l.exports=s}}),M=ke(Ee());function Z(t,l,{signal:i,edges:f}={}){let s,v=null;const e=f!=null&&f.includes("leading"),r=f==null||f.includes("trailing"),n=d(()=>{v!==null&&(t.apply(s,v),s=void 0,v=null)},"invoke"),o=d(()=>{r&&n(),h()},"onTimerEnd");let a=null;const c=d(()=>{a!=null&&clearTimeout(a),a=setTimeout(()=>{a=null,o()},l)},"schedule"),u=d(()=>{a!==null&&(clearTimeout(a),a=null)},"cancelTimer"),h=d(()=>{u(),s=void 0,v=null},"cancel"),g=d(()=>{n()},"flush"),p=d(function(...y){if(i?.aborted)return;s=this,v=y;const m=a==null;c(),e&&m&&n()},"debounced");return p.schedule=c,p.cancel=h,p.flush=g,i?.addEventListener("abort",h,{once:!0}),p}d(Z,"debounce");function ee(t,...l){return te(t,ne,...l)}d(ee,"partial");function te(t,l,...i){const f=d(function(...s){let v=0;const e=i.slice().map(n=>n===l?s[v++]:n),r=s.slice(v);return t.apply(this,e.concat(r))},"partialed");return t.prototype&&(f.prototype=Object.create(t.prototype)),f}d(te,"partialImpl");var ne=Symbol("partial.placeholder");ee.placeholder=ne;function re(t,...l){return oe(t,ae,...l)}d(re,"partialRight");function oe(t,l,...i){const f=d(function(...s){const v=i.filter(a=>a===l).length,e=Math.max(s.length-v,0),r=s.slice(0,e);let n=e;const o=i.slice().map(a=>a===l?s[n++]:a);return t.apply(this,r.concat(o))},"partialedRight");return t.prototype&&(f.prototype=Object.create(t.prototype)),f}d(oe,"partialRightImpl");var ae=Symbol("partialRight.placeholder");re.placeholder=ae;function C(){return(C=Object.assign||function(t){for(var l=1;l<arguments.length;l++){var i=arguments[l];for(var f in i)Object.prototype.hasOwnProperty.call(i,f)&&(t[f]=i[f])}return t}).apply(this,arguments)}d(C,"u");function T(t,l){if(t==null)return{};var i,f,s={},v=Object.keys(t);for(f=0;f<v.length;f++)l.indexOf(i=v[f])>=0||(s[i]=t[i]);return s}d(T,"c");function z(t){var l=x.useRef(t),i=x.useRef(function(f){l.current&&l.current(f)});return l.current=t,i.current}d(z,"i");var R=d(function(t,l,i){return l===void 0&&(l=0),i===void 0&&(i=1),t>i?i:t<l?l:t},"s"),S=d(function(t){return"touches"in t},"f"),K=d(function(t){return t&&t.ownerDocument.defaultView||self},"v"),A=d(function(t,l,i){var f=t.getBoundingClientRect(),s=S(l)?(function(v,e){for(var r=0;r<v.length;r++)if(v[r].identifier===e)return v[r];return v[0]})(l.touches,i):l;return{left:R((s.pageX-(f.left+K(t).pageXOffset))/f.width),top:R((s.pageY-(f.top+K(t).pageYOffset))/f.height)}},"d"),W=d(function(t){!S(t)&&t.preventDefault()},"h"),X=b.memo(function(t){var l=t.onMove,i=t.onKey,f=T(t,["onMove","onKey"]),s=x.useRef(null),v=z(l),e=z(i),r=x.useRef(null),n=x.useRef(!1),o=x.useMemo(function(){var h=d(function(y){W(y),(S(y)?y.touches.length>0:y.buttons>0)&&s.current?v(A(s.current,y,r.current)):p(!1)},"e"),g=d(function(){return p(!1)},"r");function p(y){var m=n.current,_=K(s.current),w=y?_.addEventListener:_.removeEventListener;w(m?"touchmove":"mousemove",h),w(m?"touchend":"mouseup",g)}return d(p,"t"),[function(y){var m=y.nativeEvent,_=s.current;if(_&&(W(m),!(function(I,be){return be&&!S(I)})(m,n.current)&&_)){if(S(m)){n.current=!0;var w=m.changedTouches||[];w.length&&(r.current=w[0].identifier)}_.focus(),v(A(_,m,r.current)),p(!0)}},function(y){var m=y.which||y.keyCode;m<37||m>40||(y.preventDefault(),e({left:m===39?.05:m===37?-.05:0,top:m===40?.05:m===38?-.05:0}))},p]},[e,v]),a=o[0],c=o[1],u=o[2];return x.useEffect(function(){return u},[u]),b.createElement("div",C({},f,{onTouchStart:a,onMouseDown:a,className:"react-colorful__interactive",ref:s,onKeyDown:c,tabIndex:0,role:"slider"}))}),O=d(function(t){return t.filter(Boolean).join(" ")},"g"),D=d(function(t){var l=t.color,i=t.left,f=t.top,s=f===void 0?.5:f,v=O(["react-colorful__pointer",t.className]);return b.createElement("div",{className:v,style:{top:100*s+"%",left:100*i+"%"}},b.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:l}}))},"p"),k=d(function(t,l,i){return l===void 0&&(l=0),i===void 0&&(i=Math.pow(10,l)),Math.round(i*t)/i},"b"),Ce={grad:.9,turn:360,rad:360/(2*Math.PI)},$e=d(function(t){return ce(F(t))},"x"),F=d(function(t){return t[0]==="#"&&(t=t.substring(1)),t.length<6?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?k(parseInt(t[3]+t[3],16)/255,2):1}:{r:parseInt(t.substring(0,2),16),g:parseInt(t.substring(2,4),16),b:parseInt(t.substring(4,6),16),a:t.length===8?k(parseInt(t.substring(6,8),16)/255,2):1}},"C"),Re=d(function(t,l){return l===void 0&&(l="deg"),Number(t)*(Ce[l]||1)},"E"),Se=d(function(t){var l=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(t);return l?Oe({h:Re(l[1],l[2]),s:Number(l[3]),l:Number(l[4]),a:l[5]===void 0?1:Number(l[5])/(l[6]?100:1)}):{h:0,s:0,v:0,a:1}},"H"),Oe=d(function(t){var l=t.s,i=t.l;return{h:t.h,s:(l*=(i<50?i:100-i)/100)>0?2*l/(i+l)*100:0,v:i+l,a:t.a}},"N"),Ie=d(function(t){return He(se(t))},"w"),le=d(function(t){var l=t.s,i=t.v,f=t.a,s=(200-l)*i/100;return{h:k(t.h),s:k(s>0&&s<200?l*i/100/(s<=100?s:200-s)*100:0),l:k(s/2),a:k(f,2)}},"y"),B=d(function(t){var l=le(t);return"hsl("+l.h+", "+l.s+"%, "+l.l+"%)"},"q"),j=d(function(t){var l=le(t);return"hsla("+l.h+", "+l.s+"%, "+l.l+"%, "+l.a+")"},"k"),se=d(function(t){var l=t.h,i=t.s,f=t.v,s=t.a;l=l/360*6,i/=100,f/=100;var v=Math.floor(l),e=f*(1-i),r=f*(1-(l-v)*i),n=f*(1-(1-l+v)*i),o=v%6;return{r:k(255*[f,r,e,e,n,f][o]),g:k(255*[n,f,f,r,e,e][o]),b:k(255*[e,e,n,f,f,r][o]),a:k(s,2)}},"I"),Ne=d(function(t){var l=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(t);return l?ce({r:Number(l[1])/(l[2]?100/255:1),g:Number(l[3])/(l[4]?100/255:1),b:Number(l[5])/(l[6]?100/255:1),a:l[7]===void 0?1:Number(l[7])/(l[8]?100:1)}):{h:0,s:0,v:0,a:1}},"z"),N=d(function(t){var l=t.toString(16);return l.length<2?"0"+l:l},"D"),He=d(function(t){var l=t.r,i=t.g,f=t.b,s=t.a,v=s<1?N(k(255*s)):"";return"#"+N(l)+N(i)+N(f)+v},"K"),ce=d(function(t){var l=t.r,i=t.g,f=t.b,s=t.a,v=Math.max(l,i,f),e=v-Math.min(l,i,f),r=e?v===l?(i-f)/e:v===i?2+(f-l)/e:4+(l-i)/e:0;return{h:k(60*(r<0?r+6:r)),s:k(v?e/v*100:0),v:k(v/255*100),a:s}},"L"),ie=b.memo(function(t){var l=t.hue,i=t.onChange,f=O(["react-colorful__hue",t.className]);return b.createElement("div",{className:f},b.createElement(X,{onMove:d(function(s){i({h:360*s.left})},"onMove"),onKey:d(function(s){i({h:R(l+360*s.left,0,360)})},"onKey"),"aria-label":"Hue","aria-valuenow":k(l),"aria-valuemax":"360","aria-valuemin":"0"},b.createElement(D,{className:"react-colorful__hue-pointer",left:l/360,color:B({h:l,s:100,v:100,a:1})})))}),ue=b.memo(function(t){var l=t.hsva,i=t.onChange,f={backgroundColor:B({h:l.h,s:100,v:100,a:1})};return b.createElement("div",{className:"react-colorful__saturation",style:f},b.createElement(X,{onMove:d(function(s){i({s:100*s.left,v:100-100*s.top})},"onMove"),onKey:d(function(s){i({s:R(l.s+100*s.left,0,100),v:R(l.v-100*s.top,0,100)})},"onKey"),"aria-label":"Color","aria-valuetext":"Saturation "+k(l.s)+"%, Brightness "+k(l.v)+"%"},b.createElement(D,{className:"react-colorful__saturation-pointer",top:1-l.v/100,left:l.s/100,color:B(l)})))}),fe=d(function(t,l){if(t===l)return!0;for(var i in t)if(t[i]!==l[i])return!1;return!0},"F"),he=d(function(t,l){return t.replace(/\s/g,"")===l.replace(/\s/g,"")},"P"),je=d(function(t,l){return t.toLowerCase()===l.toLowerCase()||fe(F(t),F(l))},"X");function G(t,l,i){var f=z(i),s=x.useState(function(){return t.toHsva(l)}),v=s[0],e=s[1],r=x.useRef({color:l,hsva:v});x.useEffect(function(){if(!t.equal(l,r.current.color)){var o=t.toHsva(l);r.current={hsva:o,color:l},e(o)}},[l,t]),x.useEffect(function(){var o;fe(v,r.current.hsva)||t.equal(o=t.fromHsva(v),r.current.color)||(r.current={hsva:v,color:o},f(o))},[v,t,f]);var n=x.useCallback(function(o){e(function(a){return Object.assign({},a,o)})},[]);return[v,n]}d(G,"Y");var ze=typeof window<"u"?x.useLayoutEffect:x.useEffect,Pe=d(function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},"$"),U=new Map,de=d(function(t){ze(function(){var l=t.current?t.current.ownerDocument:document;if(l!==void 0&&!U.has(l)){var i=l.createElement("style");i.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,U.set(l,i);var f=Pe();f&&i.setAttribute("nonce",f),l.head.appendChild(i)}},[])},"Q"),qe=d(function(t){var l=t.className,i=t.colorModel,f=t.color,s=f===void 0?i.defaultColor:f,v=t.onChange,e=T(t,["className","colorModel","color","onChange"]),r=x.useRef(null);de(r);var n=G(i,s,v),o=n[0],a=n[1],c=O(["react-colorful",l]);return b.createElement("div",C({},e,{ref:r,className:c}),b.createElement(ue,{hsva:o,onChange:a}),b.createElement(ie,{hue:o.h,onChange:a,className:"react-colorful__last-control"}))},"U"),Te={defaultColor:"000",toHsva:$e,fromHsva:d(function(t){return Ie({h:t.h,s:t.s,v:t.v,a:1})},"fromHsva"),equal:je},Le=d(function(t){return b.createElement(qe,C({},t,{colorModel:Te}))},"Z"),Ke=d(function(t){var l=t.className,i=t.hsva,f=t.onChange,s={backgroundImage:"linear-gradient(90deg, "+j(Object.assign({},i,{a:0}))+", "+j(Object.assign({},i,{a:1}))+")"},v=O(["react-colorful__alpha",l]),e=k(100*i.a);return b.createElement("div",{className:v},b.createElement("div",{className:"react-colorful__alpha-gradient",style:s}),b.createElement(X,{onMove:d(function(r){f({a:r.left})},"onMove"),onKey:d(function(r){f({a:R(i.a+r.left)})},"onKey"),"aria-label":"Alpha","aria-valuetext":e+"%","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"100"},b.createElement(D,{className:"react-colorful__alpha-pointer",left:i.a,color:j(i)})))},"ee"),ve=d(function(t){var l=t.className,i=t.colorModel,f=t.color,s=f===void 0?i.defaultColor:f,v=t.onChange,e=T(t,["className","colorModel","color","onChange"]),r=x.useRef(null);de(r);var n=G(i,s,v),o=n[0],a=n[1],c=O(["react-colorful",l]);return b.createElement("div",C({},e,{ref:r,className:c}),b.createElement(ue,{hsva:o,onChange:a}),b.createElement(ie,{hue:o.h,onChange:a}),b.createElement(Ke,{hsva:o,onChange:a,className:"react-colorful__last-control"}))},"re"),Fe={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:Se,fromHsva:j,equal:he},Be=d(function(t){return b.createElement(ve,C({},t,{colorModel:Fe}))},"ue"),Ve={defaultColor:"rgba(0, 0, 0, 1)",toHsva:Ne,fromHsva:d(function(t){var l=se(t);return"rgba("+l.r+", "+l.g+", "+l.b+", "+l.a+")"},"fromHsva"),equal:he},Xe=d(function(t){return b.createElement(ve,C({},t,{colorModel:Ve}))},"He"),De=E.div({position:"relative",maxWidth:250,'&[aria-readonly="true"]':{opacity:.5}}),Ge=E(J)({position:"absolute",zIndex:1,top:4,left:4,"[aria-readonly=true] &":{cursor:"not-allowed"}}),Ae=E.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:"4px 4px 0 0"},".react-colorful__hue":{boxShadow:"inset 0 0 0 1px rgb(0 0 0 / 5%)"},".react-colorful__last-control":{borderRadius:"0 0 4px 4px"}}),We=E(ye)(({theme:t})=>({fontFamily:t.typography.fonts.base})),Ue=E.div({display:"grid",gridTemplateColumns:"repeat(9, 16px)",gap:6,padding:3,marginTop:5,width:200}),Ye=E.div(({theme:t,active:l})=>({width:16,height:16,boxShadow:l?`${t.appBorderColor} 0 0 0 1px inset, ${t.textMutedColor}50 0 0 0 4px`:`${t.appBorderColor} 0 0 0 1px inset`,borderRadius:t.appBorderRadius})),Je=`url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`,Y=d(({value:t,style:l,...i})=>{const f=`linear-gradient(${t}, ${t}), ${Je}, linear-gradient(#fff, #fff)`;return b.createElement(Ye,{...i,style:{...l,backgroundImage:f}})},"Swatch"),Qe=E(xe.Input)(({theme:t,readOnly:l})=>({width:"100%",paddingLeft:30,paddingRight:30,boxSizing:"border-box",fontFamily:t.typography.fonts.base})),Ze=E(we)(({theme:t})=>({position:"absolute",zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:"border-box",cursor:"pointer",color:t.input.color})),ge=(t=>(t.RGB="rgb",t.HSL="hsl",t.HEX="hex",t))(ge||{}),L=Object.values(ge),et=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,tt=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,nt=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,V=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,rt=/^\s*#?([0-9a-f]{3})\s*$/i,ot={hex:Le,rgb:Xe,hsl:Be},H={hex:"transparent",rgb:"rgba(0, 0, 0, 0)",hsl:"hsla(0, 0%, 0%, 0)"},pe=d(t=>{const l=t?.match(et);if(!l)return[0,0,0,1];const[,i,f,s,v=1]=l;return[i,f,s,v].map(Number)},"stringToArgs"),at=d(t=>{const[l,i,f,s]=pe(t),[v,e,r]=M.default.rgb.hsl([l,i,f])||[0,0,0];return{valid:!0,value:t,keyword:M.default.rgb.keyword([l,i,f]),colorSpace:"rgb",rgb:t,hsl:`hsla(${v}, ${e}%, ${r}%, ${s})`,hex:`#${M.default.rgb.hex([l,i,f]).toLowerCase()}`}},"parseRgb"),lt=d(t=>{const[l,i,f,s]=pe(t),[v,e,r]=M.default.hsl.rgb([l,i,f])||[0,0,0];return{valid:!0,value:t,keyword:M.default.hsl.keyword([l,i,f]),colorSpace:"hsl",rgb:`rgba(${v}, ${e}, ${r}, ${s})`,hsl:t,hex:`#${M.default.hsl.hex([l,i,f]).toLowerCase()}`}},"parseHsl"),st=d(t=>{const l=t.replace("#",""),i=M.default.keyword.rgb(l)||M.default.hex.rgb(l),f=M.default.rgb.hsl(i);let s=t;/[^#a-f0-9]/i.test(t)?s=l:V.test(t)&&(s=`#${l}`);let v=!0;if(s.startsWith("#"))v=V.test(s);else try{M.default.keyword.hex(s)}catch{v=!1}return{valid:v,value:s,keyword:M.default.rgb.keyword(i),colorSpace:"hex",rgb:`rgba(${i[0]}, ${i[1]}, ${i[2]}, 1)`,hsl:`hsla(${f[0]}, ${f[1]}%, ${f[2]}%, 1)`,hex:s}},"parseHexOrKeyword"),$=d(t=>{if(t)return tt.test(t)?at(t):nt.test(t)?lt(t):st(t)},"parseValue"),ct=d((t,l,i)=>{if(!t||!l?.valid)return H[i];if(i!=="hex")return l?.[i]||H[i];if(!l.hex.startsWith("#"))try{return`#${M.default.keyword.hex(l.hex)}`}catch{return H.hex}const f=l.hex.match(rt);if(!f)return V.test(l.hex)?l.hex:H.hex;const[s,v,e]=f[1].split("");return`#${s}${s}${v}${v}${e}${e}`},"getRealValue"),it=d((t,l)=>{const[i,f]=x.useState(t||""),[s,v]=x.useState(()=>$(i)),[e,r]=x.useState(s?.colorSpace||"hex");x.useEffect(()=>{const c=t||"",u=$(c);f(c),v(u),r(u?.colorSpace||"hex")},[t]);const n=x.useMemo(()=>ct(i,s,e).toLowerCase(),[i,s,e]),o=x.useCallback(c=>{const u=$(c),h=u?.value||c||"";f(h),h===""&&(v(void 0),l(void 0)),u&&(v(u),r(u.colorSpace),l(u.value))},[l]),a=x.useCallback(()=>{const u=(L.indexOf(e)+1)%L.length,h=L[u];r(h);const g=s?.[h]||"";f(g),l(g)},[s,e,l]);return{value:i,realValue:n,updateValue:o,color:s,colorSpace:e,cycleColorSpace:a}},"useColorInput"),P=d(t=>t.replace(/\s*/,"").toLowerCase(),"id"),ut=d((t,l,i)=>{const[f,s]=x.useState(l?.valid?[l]:[]);x.useEffect(()=>{l===void 0&&s([])},[l]);const v=x.useMemo(()=>(t||[]).map(n=>typeof n=="string"?$(n):n.title?{...$(n.color),keyword:n.title}:$(n.color)).concat(f).filter(Boolean).slice(-27),[t,f]),e=x.useCallback(r=>{r?.valid&&(v.some(n=>n&&n[i]&&P(n[i]||"")===P(r[i]||""))||s(n=>n.concat(r)))},[i,v]);return{presets:v,addPreset:e}},"usePresets"),ft=d(({name:t,value:l,onChange:i,onFocus:f,onBlur:s,presetColors:v,startOpen:e=!1,argType:r})=>{const n=x.useCallback(Z(i,200),[i]),{value:o,realValue:a,updateValue:c,color:u,colorSpace:h,cycleColorSpace:g}=it(l,n),{presets:p,addPreset:y}=ut(v??[],u,h),m=ot[h],_=!!r?.table?.readonly;return b.createElement(De,{"aria-readonly":_},b.createElement(Ge,{startOpen:e,trigger:_?null:void 0,closeOnOutsideClick:!0,onVisibleChange:()=>u&&y(u),tooltip:b.createElement(Ae,null,b.createElement(m,{color:a==="transparent"?"#000000":a,onChange:c,onFocus:f,onBlur:s}),p.length>0&&b.createElement(Ue,null,p.map((w,I)=>b.createElement(J,{key:`${w?.value||I}-${I}`,hasChrome:!1,tooltip:b.createElement(We,{note:w?.keyword||w?.value||""})},b.createElement(Y,{value:w?.[h]||"",active:!!(u&&w&&w[h]&&P(w[h]||"")===P(u[h])),onClick:()=>w&&c(w.value||"")})))))},b.createElement(Y,{value:a,style:{margin:4}})),b.createElement(Qe,{id:me(t),value:o,onChange:w=>c(w.target.value),onFocus:w=>w.target.select(),readOnly:_,placeholder:"Choose color..."}),o?b.createElement(Ze,{onClick:g}):null)},"ColorControl"),pt=ft;export{ft as ColorControl,pt as default};