@luzmo/lucero 1.0.1-alpha.20 → 1.0.1-alpha.22

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 (206) hide show
  1. package/components/accordion/index.cjs +6 -6
  2. package/components/accordion/index.js +8 -7
  3. package/components/action-bar/index.cjs +4 -4
  4. package/components/action-bar/index.js +10 -8
  5. package/components/action-button/index.cjs +3 -3
  6. package/components/action-button/index.js +5 -4
  7. package/components/action-group/index.cjs +1 -1
  8. package/components/action-group/index.js +1 -1
  9. package/components/action-group-D6rV7sfq.cjs +20 -0
  10. package/components/{action-group-C9dsPJg-.js → action-group-DS7x8jfJ.js} +10 -9
  11. package/components/action-menu/index.cjs +9 -9
  12. package/components/action-menu/index.js +9 -9
  13. package/components/{async-directive-BwIAw5tB.js → async-directive-CDQoI4mS.js} +18 -19
  14. package/components/async-directive-CddlkYlZ.cjs +22 -0
  15. package/components/avatar/index.cjs +3 -3
  16. package/components/avatar/index.js +6 -6
  17. package/components/base-5nDSSNeT.cjs +18 -0
  18. package/components/base-CdYjmV_8.js +96 -0
  19. package/components/button/button-base.d.ts +16 -0
  20. package/components/button/button.d.ts +37 -1
  21. package/components/button/index.cjs +2 -2
  22. package/components/button/index.js +15 -11
  23. package/components/{button-base-B8bWcklV.js → button-base-BGAqeDTT.js} +21 -6
  24. package/components/button-base-CShsEDFM.cjs +25 -0
  25. package/components/button-group/index.cjs +1 -1
  26. package/components/button-group/index.js +10 -8
  27. package/components/calendar/index.cjs +96 -1
  28. package/components/calendar/index.js +538 -6
  29. package/components/checkbox/index.cjs +4 -4
  30. package/components/checkbox/index.js +6 -4
  31. package/components/{checkbox-mixin-BOTvuPEu.js → checkbox-mixin-DUbGDm7f.js} +9 -9
  32. package/components/{checkbox-mixin-BVPpXtsq.cjs → checkbox-mixin-DhN8CIXY.cjs} +3 -3
  33. package/components/clear-button-BWJrTbkk.cjs +18 -0
  34. package/components/{clear-button-DzZ5ulBW.js → clear-button-CMhq1QsA.js} +14 -13
  35. package/components/{close-button-CuQdsez5.js → close-button-BiJwFZyW.js} +13 -12
  36. package/components/close-button-DrMdfzPW.cjs +18 -0
  37. package/components/color-area/index.cjs +5 -5
  38. package/components/color-area/index.js +10 -9
  39. package/components/color-controller-7sNUf7SP.js +386 -0
  40. package/components/color-controller-ChN-A9Ft.cjs +18 -0
  41. package/components/color-field/index.cjs +2 -2
  42. package/components/color-field/index.js +4 -3
  43. package/components/color-handle/index.cjs +2 -2
  44. package/components/color-handle/index.js +7 -5
  45. package/components/color-loupe/index.cjs +1 -1
  46. package/components/color-loupe/index.js +1 -1
  47. package/components/color-loupe-CIEFp7ln.cjs +56 -0
  48. package/components/{color-loupe-DmQe3SpP.js → color-loupe-CLPX6xVb.js} +6 -4
  49. package/components/color-menu/index.cjs +7 -7
  50. package/components/color-menu/index.js +7 -7
  51. package/components/color-palette/index.cjs +1 -1
  52. package/components/color-palette/index.js +4 -3
  53. package/components/color-palette-group/index.cjs +3 -3
  54. package/components/color-palette-group/index.js +33 -32
  55. package/components/color-picker/index.cjs +4 -4
  56. package/components/color-picker/index.js +11 -11
  57. package/components/color-slider/index.cjs +40 -1
  58. package/components/color-slider/index.js +452 -6
  59. package/components/date-time-picker/index.cjs +16 -16
  60. package/components/date-time-picker/index.js +103 -104
  61. package/components/directive-DrvvqO47.cjs +32 -0
  62. package/components/directive-OK_Jd_xx.js +314 -0
  63. package/components/divider/index.cjs +1 -1
  64. package/components/divider/index.js +10 -8
  65. package/components/field-group/index.cjs +1 -1
  66. package/components/field-group/index.js +1 -1
  67. package/components/field-group-BYHNJmv0.cjs +23 -0
  68. package/components/{field-group-D4B0IOdA.js → field-group-CHmw159R.js} +7 -5
  69. package/components/field-label/index.cjs +1 -1
  70. package/components/field-label/index.js +1 -1
  71. package/components/{field-label-DxmPiC5p.js → field-label-Cy3xMWZ-.js} +9 -8
  72. package/components/field-label-DZoeqJJX.cjs +25 -0
  73. package/components/{focusable-C5JjRZmT.js → focusable-BjvsvVam.js} +2 -1
  74. package/components/focusable-CbVKgGfS.cjs +18 -0
  75. package/components/icon/index.cjs +1 -1
  76. package/components/icon/index.js +20 -18
  77. package/components/index.cjs +1 -1
  78. package/components/index.js +18 -18
  79. package/components/infield-button/index.cjs +2 -2
  80. package/components/infield-button/index.js +4 -3
  81. package/components/label/index.cjs +1 -1
  82. package/components/label/index.js +6 -4
  83. package/components/like-anchor-B2EqJPdw.cjs +32 -0
  84. package/components/{like-anchor-DCFJN0LV.js → like-anchor-CgqCU210.js} +23 -22
  85. package/components/{manage-help-text-DNqdEkTA.cjs → manage-help-text-Bat9yGvF.cjs} +3 -3
  86. package/components/{manage-help-text-CHfMLzSa.js → manage-help-text-C9sCHK3R.js} +8 -8
  87. package/components/menu/index.cjs +16 -16
  88. package/components/menu/index.js +15 -16
  89. package/components/multi-language-field/index.cjs +2 -2
  90. package/components/multi-language-field/index.js +8 -6
  91. package/components/number-field/index.cjs +6 -6
  92. package/components/number-field/index.js +34 -35
  93. package/components/observe-slot-text-ByPG1Lqw.cjs +18 -0
  94. package/components/{observe-slot-text-C3moTjwy.js → observe-slot-text-CugmOzNZ.js} +20 -21
  95. package/components/options/index.cjs +27 -55
  96. package/components/options/index.js +210 -800
  97. package/components/overlay/index.cjs +6 -6
  98. package/components/overlay/index.js +9 -9
  99. package/components/overlay-DpWon1Rp.js +1736 -0
  100. package/components/overlay-nUwFClQq.cjs +47 -0
  101. package/components/{pending-state-bJr-nEJl.cjs → pending-state-DQctFHI8.cjs} +2 -2
  102. package/components/{pending-state-B2wWssTo.js → pending-state-Dx1u3EXA.js} +2 -2
  103. package/components/picker/index.cjs +1 -1
  104. package/components/picker/index.js +2 -2
  105. package/components/{picker-BsQJBF9j.js → picker-Cm6_didQ.js} +19 -20
  106. package/components/picker-DxYgh4LR.cjs +123 -0
  107. package/components/picker-button/index.cjs +4 -4
  108. package/components/picker-button/index.js +6 -5
  109. package/components/{platform-BiXhwqk3.cjs → platform-BJnOJJag.cjs} +1 -1
  110. package/components/{platform-BM-uMWpX.js → platform-CqwNrovd.js} +12 -12
  111. package/components/popover/index.cjs +1 -1
  112. package/components/popover/index.js +1 -1
  113. package/components/popover-lcZnODPK.cjs +30 -0
  114. package/components/{popover-iD8f5Jkp.js → popover-ucIgjbQs.js} +8 -7
  115. package/components/progress-circle/index.cjs +1 -1
  116. package/components/progress-circle/index.js +1 -1
  117. package/components/{progress-circle-USIIU1up.js → progress-circle-D5J0ZwY0.js} +8 -7
  118. package/components/progress-circle-DgMbqrzG.cjs +33 -0
  119. package/components/radio/index.cjs +2 -2
  120. package/components/radio/index.js +10 -9
  121. package/components/search/index.cjs +6 -6
  122. package/components/search/index.js +5 -5
  123. package/components/select/index.cjs +43 -43
  124. package/components/select/index.js +33 -33
  125. package/components/{directive-C7oCP5Bh.cjs → sized-mixin-DcvJLFeo.cjs} +1 -5
  126. package/components/{sized-mixin-CJbBHWRQ.js → sized-mixin-cJbo3PKR.js} +5 -5
  127. package/components/slider/index.cjs +1 -1
  128. package/components/slider/index.js +48 -1101
  129. package/components/{streaming-listener-BQ68fKMa.js → streaming-listener-BgU36S1Z.js} +3 -3
  130. package/components/streaming-listener-CfUtuELp.cjs +18 -0
  131. package/components/swatch/index.cjs +5 -5
  132. package/components/swatch/index.js +11 -10
  133. package/components/switch/index.cjs +2 -2
  134. package/components/switch/index.js +5 -4
  135. package/components/tabs/index.cjs +31 -23
  136. package/components/tabs/index.js +497 -230
  137. package/components/tags/index.cjs +4 -4
  138. package/components/tags/index.js +13 -12
  139. package/components/text-field/index.cjs +3 -3
  140. package/components/text-field/index.js +12 -10
  141. package/components/{text-field-C2n3rzCK.js → text-field-BTEpwGFu.js} +73 -99
  142. package/components/text-field-JMrsh-zo.cjs +81 -0
  143. package/components/toast/index.cjs +11 -11
  144. package/components/toast/index.js +9 -7
  145. package/components/tooltip/index.cjs +4 -4
  146. package/components/tooltip/index.js +8 -7
  147. package/components/unit-input/index.cjs +6 -6
  148. package/components/unit-input/index.js +27 -26
  149. package/components/utils.cjs +1 -1
  150. package/components/utils.js +5 -5
  151. package/custom-elements.json +1 -1
  152. package/package.json +62 -1
  153. package/components/NumberFormatter-DewVDY5w.cjs +0 -18
  154. package/components/NumberFormatter-DgOUVrge.js +0 -136
  155. package/components/NumberParser-Dik4a0h-.cjs +0 -18
  156. package/components/NumberParser-ci9J5EKv.js +0 -173
  157. package/components/action-group-C54IxNZk.cjs +0 -20
  158. package/components/async-directive-DLz6JB0v.cjs +0 -22
  159. package/components/base-BjTwmyRF.cjs +0 -22
  160. package/components/base-CFWO09N1.js +0 -684
  161. package/components/base-Cy0MQrPT.cjs +0 -40
  162. package/components/base-D76d76ww.js +0 -26
  163. package/components/button-base-tf95Lyl4.cjs +0 -25
  164. package/components/class-map-CGfNk3Ee.js +0 -51
  165. package/components/class-map-D-Y-hsN5.cjs +0 -22
  166. package/components/clear-button-CuPbWwZY.cjs +0 -18
  167. package/components/close-button-BTo4yrFR.cjs +0 -18
  168. package/components/color-controller-B0uX6Zso.js +0 -3230
  169. package/components/color-controller-CoUL5f9K.cjs +0 -18
  170. package/components/color-loupe-CrM2DVY3.cjs +0 -56
  171. package/components/directive-helpers-D4KMv2dC.js +0 -62
  172. package/components/directive-helpers-t-TVum7J.cjs +0 -22
  173. package/components/directive-oAbCiebi.js +0 -44
  174. package/components/field-group-5WQMBOk4.cjs +0 -23
  175. package/components/field-label-Dz9kisdW.cjs +0 -25
  176. package/components/flow-D-0MTYCm.js +0 -527
  177. package/components/flow-DM3dNAKs.cjs +0 -30
  178. package/components/focusable-B_KwfEec.cjs +0 -18
  179. package/components/if-defined-DULpqYwi.js +0 -27
  180. package/components/if-defined-DaXWqfzc.cjs +0 -22
  181. package/components/index-CNK8wHXu.cjs +0 -57
  182. package/components/index-Cf6G4q52.js +0 -1490
  183. package/components/index-D3ICqC7S.js +0 -1174
  184. package/components/index-hqVbNKYy.cjs +0 -113
  185. package/components/like-anchor-Bu3pXbjT.cjs +0 -32
  186. package/components/luzmo-icons-CiSek5iM.js +0 -229
  187. package/components/luzmo-icons-CtA-TJPd.cjs +0 -29
  188. package/components/observe-slot-text-D2VAEFSd.cjs +0 -18
  189. package/components/overlay-B3ajDLLq.cjs +0 -47
  190. package/components/overlay-CUKs69yr.js +0 -2745
  191. package/components/picker-X96xmLAw.cjs +0 -123
  192. package/components/popover-fwJeZHMQ.cjs +0 -30
  193. package/components/progress-circle-DZxaMe8L.cjs +0 -33
  194. package/components/query-BL-TJj7K.cjs +0 -22
  195. package/components/query-D_KR_GUc.js +0 -51
  196. package/components/query-assigned-elements-DjfhL1cl.js +0 -36
  197. package/components/query-assigned-elements-DsKsfk7G.cjs +0 -22
  198. package/components/query-assigned-nodes-BcKWmGzy.cjs +0 -22
  199. package/components/query-assigned-nodes-C76XVPWY.js +0 -36
  200. package/components/sized-mixin-WPHH0a_D.cjs +0 -18
  201. package/components/state-DwIwYPvt.js +0 -29
  202. package/components/state-vf0PJN3_.cjs +0 -22
  203. package/components/streaming-listener-DeGQYM-9.cjs +0 -18
  204. package/components/style-map-Bnhf_mVZ.js +0 -53
  205. package/components/style-map-DuMd5xlY.cjs +0 -22
  206. package/components/text-field-BkFPYo7S.cjs +0 -85
@@ -0,0 +1,386 @@
1
+ /*! * Lucero - The design system for Luzmo.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
+ * This license allows users with a current active Luzmo account to use Lucero.
7
+ * This license terminates automatically if a user no longer has an active Luzmo account.
8
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
+ *
10
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
+ * SOFTWARE.
17
+ * */
18
+ import f from "colorjs.io";
19
+ class N {
20
+ /**
21
+ * Creates an instance of ColorController.
22
+ *
23
+ * @param host - The ReactiveElement that this controller is associated with.
24
+ * @param options - An object containing optional parameters.
25
+ * @param options.manageAs - A string to manage the controller as a specific type.
26
+ */
27
+ constructor(t, {
28
+ manageAs: s
29
+ } = {}) {
30
+ this._color = new f("hsv", [0, 100, 100], 1), this.host = t, this.manageAs = s;
31
+ }
32
+ get color() {
33
+ return this._color;
34
+ }
35
+ /**
36
+ * Validates a color string and returns a result indicating the color space,
37
+ * coordinates, alpha value, and whether the color is valid.
38
+ *
39
+ * @param color - The color string to validate. Supported formats include:
40
+ * - RGB: `rgb(r, g, b)`, `rgba(r, g, b, a)`, `rgb r g b`, `rgba r g b a`
41
+ * - HSL: `hsl(h, s, l)`, `hsla(h, s, l, a)`, `hsl h s l`, `hsla h s l a`
42
+ * - HSV: `hsv(h, s, v)`, `hsva(h, s, v, a)`, `hsv h s v`, `hsva h s v a`
43
+ * - HEX: `#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa`
44
+ *
45
+ * @returns An object containing the following properties:
46
+ * - `spaceId`: The color space identifier (`'srgb'`, `'hsl'`, or `'hsv'`).
47
+ * - `coords`: An array of numeric values representing the color coordinates.
48
+ * - `alpha`: The alpha value of the color (0 to 1).
49
+ * - `isValid`: A boolean indicating whether the color string is valid.
50
+ */
51
+ validateColorString(t) {
52
+ var M, O, A, x;
53
+ const s = {
54
+ spaceId: null,
55
+ coords: [0, 0, 0],
56
+ isValid: !1,
57
+ alpha: 1
58
+ }, r = [
59
+ // With commas
60
+ /rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d*\.?\d+)\s*\)/i,
61
+ // rgba(r, g, b, a)
62
+ /rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,
63
+ // rgb(r, g, b)
64
+ // With spaces
65
+ /^rgba\s+(\d{1,3})\s+(\d{1,3})\s+(\d{1,3})\s+(0|0?\.\d+|1)\s*$/i,
66
+ // rgba r g b a
67
+ /^rgb\s+(\d{1,3})\s+(\d{1,3})\s+(\d{1,3})\s*$/i,
68
+ // rgb r g b
69
+ // Spaces inside parentheses
70
+ /^rgba\(\s*(\d{1,3})\s+(\d{1,3})\s+(\d{1,3})\s+(\d*\.?\d+)\s*\)$/i,
71
+ // rgba(r g b a)
72
+ /^rgb\(\s*(\d{1,3})\s+(\d{1,3})\s+(\d{1,3})\s*\)$/i,
73
+ // rgb(r g b)
74
+ // Percentage values
75
+ /rgb\(\s*(100|[0-9]{1,2}%)\s*,\s*(100|[0-9]{1,2}%)\s*,\s*(100|[0-9]{1,2}%)\s*\)/i,
76
+ // rgb(r%, g%, b%)
77
+ /rgba\(\s*(100|[0-9]{1,2})%\s*,\s*(100|[0-9]{1,2})%\s*,\s*(100|[0-9]{1,2})%\s*,\s*(\d*\.?\d+)\s*\)/i
78
+ // rgba(r%, g%, b%, a)
79
+ ], o = [
80
+ // With commas
81
+ /hsla\(\s*(\d{1,3})\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*,\s*(\d*\.?\d+)\s*\)/i,
82
+ // hsla(h, s, l, a)
83
+ /hsl\(\s*(\d{1,3})\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*\)/i,
84
+ // hsl(h, s, l)
85
+ // With spaces
86
+ /^hsla\s+(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s+(\d*\.?\d+)\s*$/i,
87
+ // hsla h s l a
88
+ /^hsl\s+(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s*$/i,
89
+ // hsl h s l
90
+ // Spaces inside parentheses
91
+ /^hsla\(\s*(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s+(\d*\.?\d+)\s*\)$/i,
92
+ // hsla(h s l a)
93
+ /^hsl\(\s*(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s*\)$/i
94
+ // hsl(h s l)
95
+ ], i = [
96
+ // With commas
97
+ /hsva\(\s*(\d{1,3})\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*,\s*(\d*\.?\d+)\s*\)/i,
98
+ // hsva(h, s, v, a)
99
+ /hsv\(\s*(\d{1,3})\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*\)/i,
100
+ // hsv(h, s, v)
101
+ // With spaces
102
+ /^hsva\s+(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s+(\d*\.?\d+)\s*$/i,
103
+ // hsva h s v a
104
+ /^hsv\s+(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s*$/i,
105
+ // hsv h s v
106
+ // Spaces inside parentheses
107
+ /^hsva\(\s*(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s+(\d*\.?\d+)\s*\)$/i,
108
+ // hsva(h s v a)
109
+ /^hsv\(\s*(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s*\)$/i
110
+ // hsv(h s v)
111
+ ], a = [
112
+ /^#([A-Fa-f0-9]{6})([A-Fa-f0-9]{2})?$/,
113
+ // 6-digit hex with optional hex alpha
114
+ /^#([A-Fa-f0-9]{3})([A-Fa-f0-9]{1})?$/
115
+ // 3-digit hex with optional hex alpha
116
+ ], u = (M = r.find((e) => e.test(t))) == null ? void 0 : M.exec(t), p = (O = o.find((e) => e.test(t))) == null ? void 0 : O.exec(t), b = (A = i.find((e) => e.test(t))) == null ? void 0 : A.exec(t), _ = (x = a.find((e) => e.test(t))) == null ? void 0 : x.exec(t);
117
+ if (u) {
118
+ const [, e, m, d, c] = u.filter(
119
+ ($) => typeof $ == "string"
120
+ ), g = c === void 0 ? 1 : Number(c), h = ($) => $.includes("%") ? Number($.replace("%", "")) / 100 : Number($) / 255, l = h(e), n = h(m), v = h(d);
121
+ s.spaceId = "srgb", s.coords = [l, n, v], s.alpha = g, s.isValid = l >= 0 && l <= 1 && n >= 0 && n <= 1 && v >= 0 && v <= 1 && g >= 0 && g <= 1;
122
+ } else if (p) {
123
+ const [, e, m, d, c] = p, g = [e, m, d, c === void 0 ? "1" : c].map(
124
+ ($) => Number($.replaceAll(/[^\d.]/g, ""))
125
+ ), [h, l, n, v] = g;
126
+ s.spaceId = "hsl", s.coords = [h, l, n], s.alpha = v, s.isValid = h >= 0 && h <= 360 && l >= 0 && l <= 100 && n >= 0 && n <= 100 && v >= 0 && v <= 1;
127
+ } else if (b) {
128
+ const [, e, m, d, c] = b, g = [e, m, d, c === void 0 ? "1" : c].map(
129
+ ($) => Number($.replaceAll(/[^\d.]/g, ""))
130
+ ), [h, l, n, v] = g;
131
+ s.spaceId = "hsv", s.coords = [h, l, n], s.alpha = v, s.isValid = h >= 0 && h <= 360 && l >= 0 && l <= 100 && n >= 0 && n <= 100 && v >= 0 && v <= 1;
132
+ } else if (_) {
133
+ const [, e, m] = _, d = (n) => (n.length === 1 && (n = n + n), Number.parseInt(n, 16) / 255);
134
+ let c, g, h;
135
+ e.length === 3 ? (c = d(e.slice(0, 1)), g = d(e.slice(1, 2)), h = d(e.slice(2, 3))) : (c = d(e.slice(0, 2)), g = d(e.slice(2, 4)), h = d(e.slice(4, 6)));
136
+ const l = m ? d(m) : 1;
137
+ s.spaceId = "srgb", s.coords = [c, g, h], s.alpha = l, s.isValid = c >= 0 && c <= 1 && g >= 0 && g <= 1 && h >= 0 && h <= 1 && l >= 0 && l <= 1;
138
+ }
139
+ return s;
140
+ }
141
+ /**
142
+ * Gets the original color value provided by the user.
143
+ *
144
+ * @returns The original color value.
145
+ */
146
+ get colorOrigin() {
147
+ return this._colorOrigin;
148
+ }
149
+ /**
150
+ * Sets the original color value provided by the user.
151
+ *
152
+ * @param colorOrigin - The original color value to set.
153
+ */
154
+ set colorOrigin(t) {
155
+ this._colorOrigin = t;
156
+ }
157
+ /**
158
+ * Sets the color value for the controller. The color can be provided in various formats:
159
+ * - A string representing a color name, hex code, or other color format.
160
+ * - An instance of the `Color` class.
161
+ * - An object containing color properties such as `h`, `s`, `l`, `v`, `r`, `g`, `b`, and optionally `a`.
162
+ *
163
+ * The method validates and parses the input color, converting it to a `Color` instance.
164
+ * If the color is invalid, it attempts to parse it as a hex code or returns without setting a new color.
165
+ *
166
+ * @param color - The color value to set. It can be a string, an instance of `Color`, or an object with color properties.
167
+ */
168
+ set color(t) {
169
+ this._colorOrigin = t;
170
+ let s;
171
+ if (typeof t == "string") {
172
+ const r = this.validateColorString(t);
173
+ if (r.isValid) {
174
+ const [o, i, a] = r.coords;
175
+ s = new f(
176
+ `${r.spaceId}`,
177
+ [o, i, a],
178
+ r.alpha
179
+ );
180
+ } else
181
+ try {
182
+ f.parse(t);
183
+ } catch {
184
+ try {
185
+ s = new f(`#${t}`);
186
+ } catch {
187
+ return;
188
+ }
189
+ }
190
+ } else if (t instanceof f)
191
+ s = t;
192
+ else if (!Array.isArray(t)) {
193
+ const { h: r, s: o, l: i, v: a, r: u, g: p, b, a: _ } = t;
194
+ if (r !== void 0 && o !== void 0) {
195
+ const M = i ?? a;
196
+ s = new f(
197
+ i === void 0 ? "hsv" : "hsl",
198
+ [
199
+ Number.parseFloat(r),
200
+ typeof o == "string" ? Number.parseFloat(o) : o * 100,
201
+ typeof M == "string" ? Number.parseFloat(M) : M * 100
202
+ ],
203
+ Number.parseFloat(_ || "1")
204
+ );
205
+ } else u !== void 0 && p !== void 0 && b !== void 0 && (s = new f(
206
+ "srgb",
207
+ [
208
+ Number.parseFloat(u) / 255,
209
+ Number.parseFloat(p) / 255,
210
+ Number.parseFloat(b) / 255
211
+ ],
212
+ Number.parseFloat(_ || "1")
213
+ ));
214
+ }
215
+ s || (s = new f(t)), this._color = this.manageAs ? s.to(this.manageAs) : s, this.host.requestUpdate();
216
+ }
217
+ /**
218
+ * Gets the color value in various formats based on the original color input.
219
+ *
220
+ * The method determines the color space of the original color input and converts
221
+ * the color to the appropriate format. The supported color spaces are:
222
+ * - HSV (Hue, Saturation, Value)
223
+ * - HSL (Hue, Saturation, Lightness)
224
+ * - Hexadecimal (with or without alpha)
225
+ * - RGB (Red, Green, Blue) with optional alpha
226
+ *
227
+ * @returns The color value in the appropriate format.
228
+ *
229
+ * The method handles the following cases:
230
+ * - If the original color input is a string, it checks the prefix to determine the color space.
231
+ * - If the original color input is an object, it checks the properties to determine the color space.
232
+ * - If the original color input is not provided, it defaults to the current color space of the color object.
233
+ *
234
+ * The returned color value can be in one of the following formats:
235
+ * - `hsv(h, s%, v%)` or `hsva(h, s%, v%, a)`
236
+ * - `hsl(h, s%, l%)` or `hsla(h, s%, l%, a)`
237
+ * - `#rrggbb` or `#rrggbbaa`
238
+ * - `rgb(r, g, b)` or `rgba(r, g, b, a)`
239
+ * - `{ h, s, v, a }` for HSV object
240
+ * - `{ h, s, l, a }` for HSL object
241
+ * - `{ r, g, b, a }` for RGB object
242
+ */
243
+ get colorValue() {
244
+ let t;
245
+ if (typeof this._colorOrigin == "string")
246
+ switch (this._colorOrigin.startsWith("#") ? t = "hex string" : this._colorOrigin.startsWith("rgb") ? t = "rgb" : this._colorOrigin.startsWith("hsl") ? t = "hsl" : this._colorOrigin.startsWith("hsv") ? t = "hsv" : t = "hex", t) {
247
+ case "hsv": {
248
+ const s = this._colorOrigin[3] === "a", { h: r, s: o, v: i } = this._color.to("hsv").hsv, a = this._color.alpha;
249
+ return `hsv${s ? "a" : ""}(${Math.round(
250
+ r
251
+ )}, ${Math.round(o)}%, ${Math.round(i)}%${s ? `, ${a}` : ""})`;
252
+ }
253
+ case "hsl": {
254
+ const s = this._colorOrigin[3] === "a", { h: r, s: o, l: i } = this._color.to("hsl").hsl, a = this._color.alpha;
255
+ return `hsl${s ? "a" : ""}(${Math.round(
256
+ r
257
+ )}, ${Math.round(o)}%, ${Math.round(i)}%${s ? `, ${a}` : ""})`;
258
+ }
259
+ case "hex string": {
260
+ const { r: s, g: r, b: o } = this._color.to("srgb").srgb, i = this._colorOrigin.length === 5 || this._colorOrigin.length === 9, a = this._color.alpha, u = Math.round(s * 255).toString(16), p = Math.round(r * 255).toString(16), b = Math.round(o * 255).toString(16), _ = Math.round(a * 255).toString(16);
261
+ return `#${u.padStart(2, "0")}${p.padStart(
262
+ 2,
263
+ "0"
264
+ )}${b.padStart(2, "0")}${i ? _.padStart(2, "0") : ""}`;
265
+ }
266
+ case "hex": {
267
+ const { r: s, g: r, b: o } = this._color.to("srgb").srgb, i = this._colorOrigin.length === 4 || this._colorOrigin.length === 8, a = this._color.alpha, u = Math.round(s * 255).toString(16), p = Math.round(r * 255).toString(16), b = Math.round(o * 255).toString(16), _ = Math.round(a * 255).toString(16);
268
+ return `${u.padStart(2, "0")}${p.padStart(
269
+ 2,
270
+ "0"
271
+ )}${b.padStart(2, "0")}${i ? _.padStart(2, "0") : ""}`;
272
+ }
273
+ // rgb
274
+ default: {
275
+ const { r: s, g: r, b: o } = this._color.to("srgb").srgb, i = this._colorOrigin[3] === "a", a = this._color.alpha;
276
+ return this._colorOrigin.search("%") > -1 ? `rgb${i ? "a" : ""}(${Math.round(s * 100)}%, ${Math.round(
277
+ r * 100
278
+ )}%, ${Math.round(o * 100)}%${i ? `,${Math.round(a * 100)}%` : ""})` : `rgb${i ? "a" : ""}(${Math.round(s * 255)}, ${Math.round(
279
+ r * 255
280
+ )}, ${Math.round(o * 255)}${i ? `, ${a}` : ""})`;
281
+ }
282
+ }
283
+ if (this._colorOrigin)
284
+ try {
285
+ ({ spaceId: t } = new f(this._colorOrigin));
286
+ } catch {
287
+ const { h: s, s: r, l: o, v: i, r: a, g: u, b: p } = this._colorOrigin;
288
+ s !== void 0 && r !== void 0 && o !== void 0 ? t = "hsl" : s !== void 0 && r !== void 0 && i !== void 0 ? t = "hsv" : a !== void 0 && u !== void 0 && p !== void 0 && (t = "srgb");
289
+ }
290
+ else
291
+ ({ spaceId: t } = this.color);
292
+ switch (t) {
293
+ case "hsv": {
294
+ const { h: s, s: r, v: o } = this._color.to("hsv").hsv;
295
+ return {
296
+ h: s,
297
+ s: r / 100,
298
+ v: o / 100,
299
+ a: this._color.alpha
300
+ };
301
+ }
302
+ case "hsl": {
303
+ const { h: s, s: r, l: o } = this._color.to("hsl").hsl;
304
+ return {
305
+ h: s,
306
+ s: r / 100,
307
+ l: o / 100,
308
+ a: this._color.alpha
309
+ };
310
+ }
311
+ case "srgb": {
312
+ const { r: s, g: r, b: o } = this._color.to("srgb").srgb;
313
+ return this._colorOrigin && typeof this._colorOrigin.r == "string" && this._colorOrigin.r.search("%") ? {
314
+ r: `${Math.round(s * 255)}%`,
315
+ g: `${Math.round(r * 255)}%`,
316
+ b: `${Math.round(o * 255)}%`,
317
+ a: this._color.alpha
318
+ } : {
319
+ r: Math.round(s * 255),
320
+ g: Math.round(r * 255),
321
+ b: Math.round(o * 255),
322
+ a: this._color.alpha
323
+ };
324
+ }
325
+ }
326
+ return this._color;
327
+ }
328
+ /**
329
+ * Gets the hue value of the current color in HSL format.
330
+ *
331
+ * @returns The hue value as a number.
332
+ */
333
+ get hue() {
334
+ return Number(this._color.to("hsl").hsl.h);
335
+ }
336
+ /**
337
+ * Sets the hue value of the color and requests an update from the host.
338
+ *
339
+ * @param hue - The hue value to set, represented as a number.
340
+ */
341
+ set hue(t) {
342
+ this._color.set("h", t), this.host.requestUpdate();
343
+ }
344
+ /**
345
+ * Converts the current color to the specified format.
346
+ *
347
+ * @param format - The desired color format. It can be a string representing one of the valid formats
348
+ * ('srgb', 'hsva', 'hsv', 'hsl', 'hsla') or a ColorSpace object.
349
+ * @returns The color object in the specified format.
350
+ * @throws Will throw an error if the provided format is not a valid string format.
351
+ */
352
+ getColor(t) {
353
+ if (typeof t == "string" && !["srgb", "hsva", "hsv", "hsl", "hsla"].includes(t))
354
+ throw new Error("not a valid format");
355
+ return this._color.to(t);
356
+ }
357
+ /**
358
+ * Converts the current color to an HSL string representation.
359
+ *
360
+ * @returns The HSL string representation of the current color.
361
+ */
362
+ getHslString() {
363
+ return this._color.to("hsl").toString();
364
+ }
365
+ /**
366
+ * Saves the current color state by cloning the current color and storing it
367
+ * as the previous color. This allows for the ability to revert to the previous
368
+ * color state if needed.
369
+ *
370
+ * @returns
371
+ */
372
+ savePreviousColor() {
373
+ this._previousColor = this._color.clone();
374
+ }
375
+ /**
376
+ * Restores the color to the previously saved color value.
377
+ *
378
+ * This method sets the current color (`_color`) to the previously stored color (`_previousColor`).
379
+ */
380
+ restorePreviousColor() {
381
+ this._color = this._previousColor;
382
+ }
383
+ }
384
+ export {
385
+ N as C
386
+ };
@@ -0,0 +1,18 @@
1
+ /*! * Lucero - The design system for Luzmo.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
+ * This license allows users with a current active Luzmo account to use Lucero.
7
+ * This license terminates automatically if a user no longer has an active Luzmo account.
8
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
+ *
10
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
+ * SOFTWARE.
17
+ * */
18
+ "use strict";const f=require("colorjs.io");class x{constructor(t,{manageAs:s}={}){this._color=new f("hsv",[0,100,100],1),this.host=t,this.manageAs=s}get color(){return this._color}validateColorString(t){var M,O,A,S;const s={spaceId:null,coords:[0,0,0],isValid:!1,alpha:1},r=[/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d*\.?\d+)\s*\)/i,/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/i,/^rgba\s+(\d{1,3})\s+(\d{1,3})\s+(\d{1,3})\s+(0|0?\.\d+|1)\s*$/i,/^rgb\s+(\d{1,3})\s+(\d{1,3})\s+(\d{1,3})\s*$/i,/^rgba\(\s*(\d{1,3})\s+(\d{1,3})\s+(\d{1,3})\s+(\d*\.?\d+)\s*\)$/i,/^rgb\(\s*(\d{1,3})\s+(\d{1,3})\s+(\d{1,3})\s*\)$/i,/rgb\(\s*(100|[0-9]{1,2}%)\s*,\s*(100|[0-9]{1,2}%)\s*,\s*(100|[0-9]{1,2}%)\s*\)/i,/rgba\(\s*(100|[0-9]{1,2})%\s*,\s*(100|[0-9]{1,2})%\s*,\s*(100|[0-9]{1,2})%\s*,\s*(\d*\.?\d+)\s*\)/i],o=[/hsla\(\s*(\d{1,3})\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*,\s*(\d*\.?\d+)\s*\)/i,/hsl\(\s*(\d{1,3})\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*\)/i,/^hsla\s+(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s+(\d*\.?\d+)\s*$/i,/^hsl\s+(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s*$/i,/^hsla\(\s*(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s+(\d*\.?\d+)\s*\)$/i,/^hsl\(\s*(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s*\)$/i],i=[/hsva\(\s*(\d{1,3})\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*,\s*(\d*\.?\d+)\s*\)/i,/hsv\(\s*(\d{1,3})\s*,\s*(\d{1,3}%?)\s*,\s*(\d{1,3}%?)\s*\)/i,/^hsva\s+(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s+(\d*\.?\d+)\s*$/i,/^hsv\s+(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s*$/i,/^hsva\(\s*(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s+(\d*\.?\d+)\s*\)$/i,/^hsv\(\s*(\d{1,3})\s+(\d{1,3}%?)\s+(\d{1,3}%?)\s*\)$/i],a=[/^#([A-Fa-f0-9]{6})([A-Fa-f0-9]{2})?$/,/^#([A-Fa-f0-9]{3})([A-Fa-f0-9]{1})?$/],u=(M=r.find(e=>e.test(t)))==null?void 0:M.exec(t),p=(O=o.find(e=>e.test(t)))==null?void 0:O.exec(t),b=(A=i.find(e=>e.test(t)))==null?void 0:A.exec(t),_=(S=a.find(e=>e.test(t)))==null?void 0:S.exec(t);if(u){const[,e,m,d,c]=u.filter($=>typeof $=="string"),g=c===void 0?1:Number(c),h=$=>$.includes("%")?Number($.replace("%",""))/100:Number($)/255,l=h(e),n=h(m),v=h(d);s.spaceId="srgb",s.coords=[l,n,v],s.alpha=g,s.isValid=l>=0&&l<=1&&n>=0&&n<=1&&v>=0&&v<=1&&g>=0&&g<=1}else if(p){const[,e,m,d,c]=p,g=[e,m,d,c===void 0?"1":c].map($=>Number($.replaceAll(/[^\d.]/g,""))),[h,l,n,v]=g;s.spaceId="hsl",s.coords=[h,l,n],s.alpha=v,s.isValid=h>=0&&h<=360&&l>=0&&l<=100&&n>=0&&n<=100&&v>=0&&v<=1}else if(b){const[,e,m,d,c]=b,g=[e,m,d,c===void 0?"1":c].map($=>Number($.replaceAll(/[^\d.]/g,""))),[h,l,n,v]=g;s.spaceId="hsv",s.coords=[h,l,n],s.alpha=v,s.isValid=h>=0&&h<=360&&l>=0&&l<=100&&n>=0&&n<=100&&v>=0&&v<=1}else if(_){const[,e,m]=_,d=n=>(n.length===1&&(n=n+n),Number.parseInt(n,16)/255);let c,g,h;e.length===3?(c=d(e.slice(0,1)),g=d(e.slice(1,2)),h=d(e.slice(2,3))):(c=d(e.slice(0,2)),g=d(e.slice(2,4)),h=d(e.slice(4,6)));const l=m?d(m):1;s.spaceId="srgb",s.coords=[c,g,h],s.alpha=l,s.isValid=c>=0&&c<=1&&g>=0&&g<=1&&h>=0&&h<=1&&l>=0&&l<=1}return s}get colorOrigin(){return this._colorOrigin}set colorOrigin(t){this._colorOrigin=t}set color(t){this._colorOrigin=t;let s;if(typeof t=="string"){const r=this.validateColorString(t);if(r.isValid){const[o,i,a]=r.coords;s=new f(`${r.spaceId}`,[o,i,a],r.alpha)}else try{f.parse(t)}catch{try{s=new f(`#${t}`)}catch{return}}}else if(t instanceof f)s=t;else if(!Array.isArray(t)){const{h:r,s:o,l:i,v:a,r:u,g:p,b,a:_}=t;if(r!==void 0&&o!==void 0){const M=i??a;s=new f(i===void 0?"hsv":"hsl",[Number.parseFloat(r),typeof o=="string"?Number.parseFloat(o):o*100,typeof M=="string"?Number.parseFloat(M):M*100],Number.parseFloat(_||"1"))}else u!==void 0&&p!==void 0&&b!==void 0&&(s=new f("srgb",[Number.parseFloat(u)/255,Number.parseFloat(p)/255,Number.parseFloat(b)/255],Number.parseFloat(_||"1")))}s||(s=new f(t)),this._color=this.manageAs?s.to(this.manageAs):s,this.host.requestUpdate()}get colorValue(){let t;if(typeof this._colorOrigin=="string")switch(this._colorOrigin.startsWith("#")?t="hex string":this._colorOrigin.startsWith("rgb")?t="rgb":this._colorOrigin.startsWith("hsl")?t="hsl":this._colorOrigin.startsWith("hsv")?t="hsv":t="hex",t){case"hsv":{const s=this._colorOrigin[3]==="a",{h:r,s:o,v:i}=this._color.to("hsv").hsv,a=this._color.alpha;return`hsv${s?"a":""}(${Math.round(r)}, ${Math.round(o)}%, ${Math.round(i)}%${s?`, ${a}`:""})`}case"hsl":{const s=this._colorOrigin[3]==="a",{h:r,s:o,l:i}=this._color.to("hsl").hsl,a=this._color.alpha;return`hsl${s?"a":""}(${Math.round(r)}, ${Math.round(o)}%, ${Math.round(i)}%${s?`, ${a}`:""})`}case"hex string":{const{r:s,g:r,b:o}=this._color.to("srgb").srgb,i=this._colorOrigin.length===5||this._colorOrigin.length===9,a=this._color.alpha,u=Math.round(s*255).toString(16),p=Math.round(r*255).toString(16),b=Math.round(o*255).toString(16),_=Math.round(a*255).toString(16);return`#${u.padStart(2,"0")}${p.padStart(2,"0")}${b.padStart(2,"0")}${i?_.padStart(2,"0"):""}`}case"hex":{const{r:s,g:r,b:o}=this._color.to("srgb").srgb,i=this._colorOrigin.length===4||this._colorOrigin.length===8,a=this._color.alpha,u=Math.round(s*255).toString(16),p=Math.round(r*255).toString(16),b=Math.round(o*255).toString(16),_=Math.round(a*255).toString(16);return`${u.padStart(2,"0")}${p.padStart(2,"0")}${b.padStart(2,"0")}${i?_.padStart(2,"0"):""}`}default:{const{r:s,g:r,b:o}=this._color.to("srgb").srgb,i=this._colorOrigin[3]==="a",a=this._color.alpha;return this._colorOrigin.search("%")>-1?`rgb${i?"a":""}(${Math.round(s*100)}%, ${Math.round(r*100)}%, ${Math.round(o*100)}%${i?`,${Math.round(a*100)}%`:""})`:`rgb${i?"a":""}(${Math.round(s*255)}, ${Math.round(r*255)}, ${Math.round(o*255)}${i?`, ${a}`:""})`}}if(this._colorOrigin)try{({spaceId:t}=new f(this._colorOrigin))}catch{const{h:s,s:r,l:o,v:i,r:a,g:u,b:p}=this._colorOrigin;s!==void 0&&r!==void 0&&o!==void 0?t="hsl":s!==void 0&&r!==void 0&&i!==void 0?t="hsv":a!==void 0&&u!==void 0&&p!==void 0&&(t="srgb")}else({spaceId:t}=this.color);switch(t){case"hsv":{const{h:s,s:r,v:o}=this._color.to("hsv").hsv;return{h:s,s:r/100,v:o/100,a:this._color.alpha}}case"hsl":{const{h:s,s:r,l:o}=this._color.to("hsl").hsl;return{h:s,s:r/100,l:o/100,a:this._color.alpha}}case"srgb":{const{r:s,g:r,b:o}=this._color.to("srgb").srgb;return this._colorOrigin&&typeof this._colorOrigin.r=="string"&&this._colorOrigin.r.search("%")?{r:`${Math.round(s*255)}%`,g:`${Math.round(r*255)}%`,b:`${Math.round(o*255)}%`,a:this._color.alpha}:{r:Math.round(s*255),g:Math.round(r*255),b:Math.round(o*255),a:this._color.alpha}}}return this._color}get hue(){return Number(this._color.to("hsl").hsl.h)}set hue(t){this._color.set("h",t),this.host.requestUpdate()}getColor(t){if(typeof t=="string"&&!["srgb","hsva","hsv","hsl","hsla"].includes(t))throw new Error("not a valid format");return this._color.to(t)}getHslString(){return this._color.to("hsl").toString()}savePreviousColor(){this._previousColor=this._color.clone()}restorePreviousColor(){this._color=this._previousColor}}exports.ColorController=x;
@@ -15,9 +15,9 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../base-Cy0MQrPT.cjs"),u=require("../color-controller-CoUL5f9K.cjs"),d=require("../text-field-BkFPYo7S.cjs"),v=":host{position:relative}";var c=Object.defineProperty,h=(s,e,l,t)=>{for(var r=void 0,a=s.length-1,n;a>=0;a--)(n=s[a])&&(r=n(e,l,r)||r);return r&&c(e,l,r),r};class i extends d.LuzmoTextFieldBase{constructor(){super(),this.viewColor=!1,this.noAlphaChannel=!1,this._value="",this.colorController=new u.ColorController(this)}static get styles(){return[...super.styles,o.r(v)]}set value(e){if(e===this.value)return;const l=this._value;this._value=e,this.requestUpdate("value",l)}get value(){return this._value}updated(e){super.updated(e),e.has("noAlphaChannel")&&this.checkValidity()}renderColorHandle(){return this.viewColor&&this.valid?o.x`
18
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("lit"),h=require("lit/decorators.js"),d=require("../color-controller-ChN-A9Ft.cjs"),v=require("../text-field-JMrsh-zo.cjs"),c=":host{position:relative}";var f=Object.defineProperty,u=(s,e,l,t)=>{for(var r=void 0,a=s.length-1,n;a>=0;a--)(n=s[a])&&(r=n(e,l,r)||r);return r&&f(e,l,r),r};class i extends v.LuzmoTextFieldBase{constructor(){super(),this.viewColor=!1,this.noAlphaChannel=!1,this._value="",this.colorController=new d.ColorController(this)}static get styles(){return[...super.styles,o.unsafeCSS(c)]}set value(e){if(e===this.value)return;const l=this._value;this._value=e,this.requestUpdate("value",l)}get value(){return this._value}updated(e){super.updated(e),e.has("noAlphaChannel")&&this.checkValidity()}renderColorHandle(){return this.viewColor&&this.valid?o.html`
19
19
  <luzmo-color-handle
20
20
  size="m"
21
21
  color=${this.colorController.getColor("srgb").toString()}
22
22
  ></luzmo-color-handle>
23
- `:o.x``}getColorValue(){return this.valid?this.colorController.getColor("srgb").toString():""}render(){return this.viewColor&&Promise.resolve().then(()=>require("../color-handle/index.cjs")),o.x` ${super.render()} ${this.renderColorHandle()} `}checkValidity(){let e=super.checkValidity();if(this.value){const l=this.colorController.validateColorString(this.value);let t=!1;this.value.startsWith("rgba")?t=!0:this.value.startsWith("rgb")?t=!1:this.value.startsWith("hsla")?t=!0:this.value.startsWith("hsl")?t=!1:this.value.startsWith("#")&&(t=this.value.length===9),this.valid=e=l.isValid&&(!this.noAlphaChannel||!t),this.invalid=!e,this.valid&&(this.colorController.color=this.value)}else this.valid=this.invalid=!1;return e}}h([o.n({type:Boolean,attribute:"view-color"})],i.prototype,"viewColor");h([o.n({type:Boolean,attribute:"no-alpha-channel"})],i.prototype,"noAlphaChannel");customElements.get("luzmo-color-field")||customElements.define("luzmo-color-field",i);exports.LuzmoColorField=i;
23
+ `:o.html``}getColorValue(){return this.valid?this.colorController.getColor("srgb").toString():""}render(){return this.viewColor&&Promise.resolve().then(()=>require("../color-handle/index.cjs")),o.html` ${super.render()} ${this.renderColorHandle()} `}checkValidity(){let e=super.checkValidity();if(this.value){const l=this.colorController.validateColorString(this.value);let t=!1;this.value.startsWith("rgba")?t=!0:this.value.startsWith("rgb")?t=!1:this.value.startsWith("hsla")?t=!0:this.value.startsWith("hsl")?t=!1:this.value.startsWith("#")&&(t=this.value.length===9),this.valid=e=l.isValid&&(!this.noAlphaChannel||!t),this.invalid=!e,this.valid&&(this.colorController.color=this.value)}else this.valid=this.invalid=!1;return e}}u([h.property({type:Boolean,attribute:"view-color"})],i.prototype,"viewColor");u([h.property({type:Boolean,attribute:"no-alpha-channel"})],i.prototype,"noAlphaChannel");customElements.get("luzmo-color-field")||customElements.define("luzmo-color-field",i);exports.LuzmoColorField=i;
@@ -15,9 +15,10 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- import { r as d, x as u, n } from "../base-CFWO09N1.js";
19
- import { C as z } from "../color-controller-B0uX6Zso.js";
20
- import { a as h } from "../text-field-C2n3rzCK.js";
18
+ import { unsafeCSS as d, html as u } from "lit";
19
+ import { property as n } from "lit/decorators.js";
20
+ import { C as z } from "../color-controller-7sNUf7SP.js";
21
+ import { a as h } from "../text-field-BTEpwGFu.js";
21
22
  const c = () => {
22
23
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
23
24
  const l = document.createElement("style");
@@ -15,10 +15,10 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../color-loupe-CrM2DVY3.cjs");const r=require("../base-Cy0MQrPT.cjs"),c=':host{touch-action:none;transition:inline-size var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out),block-size var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out),border-width var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out),margin-inline var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out),margin-block var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out)}:host{background:repeating-conic-gradient(var(--luzmo-color-loupe-checkerboard-light, rgb(255, 255, 255)) 0 25%,var(--luzmo-color-loupe-checkerboard-dark, rgb(230, 230, 230)) 0 50%) var(--luzmo-color-loupe-checkerboard-position, left top)/calc(var(--luzmo-color-loupe-checkerboard-size, 8px) * 2) calc(var(--luzmo-color-loupe-checkerboard-size, 8px) * 2);background-position:50%}:host(:focus){outline:none}:host{z-index:1;box-sizing:border-box;inline-size:var(--luzmo-color-handle-size, 16px);block-size:var(--luzmo-color-handle-size, 16px);margin-inline:calc(var(--luzmo-color-handle-size, 16px) / 2 * -1);margin-block:calc(var(--luzmo-color-handle-size, 16px) / 2 * -1);border-width:var(--luzmo-color-handle-border-width, 2px);border-color:var(--luzmo-color-handle-border-color, rgb(255, 255, 255));box-shadow:0 0 0 var(--luzmo-color-handle-outer-border-width, 1px) var(--luzmo-color-handle-outer-border-color, rgba(0, 0, 0, .42));transition:all var(--luzmo-color-handle-animation-duration, 0) var(--luzmo-color-handle-animation-easing, ease-in-out);border-style:solid}:host,:host:after{border-radius:100%;display:block;position:absolute}:host:after{content:"";inset-inline:calc(50% - var(--luzmo-color-handle-hitarea-size, 24px) / 2);inset-block:calc(50% - var(--luzmo-color-handle-hitarea-size, 24px) / 2);inline-size:var(--luzmo-color-handle-hitarea-size, 24px);block-size:var(--luzmo-color-handle-hitarea-size, 24px);border-radius:var(--luzmo-color-handle-hitarea-border-radius, 100%)}:host([focused]),:host(:focus-visible){inline-size:var(--luzmo-color-handle-focused-size, 32px);block-size:var(--luzmo-color-handle-focused-size, 32px);margin-inline:calc(var(--luzmo-color-handle-size, 16px) * -1);margin-block:calc(var(--luzmo-color-handle-size, 16px) * -1);outline:none}:host([disabled]){pointer-events:none;border-color:var(--highcontrast-color-handle-border-color-disabled, var(--luzmo-color-handle-border-color-disabled, var(--luzmo-font-color-disabled)));background:var(--highcontrast-color-handle-fill-color-disabled, var(--luzmo-color-handle-fill-color-disabled, var(--luzmo-font-color-disabled)));box-shadow:none}:host([disabled]) .inner{display:none}.inner{inline-size:100%;block-size:100%;box-shadow:inset 0 0 0 var(--luzmo-color-handle-inner-border-width, var(--luzmo-border-width)) var(--luzmo-color-handle-inner-border-color, rgba(0, 0, 0, .42));background-color:var(--luzmo-picked-color);border-radius:100%}@media (forced-colors: active){:host{forced-color-adjust:none}:host([disabled]){--highcontrast-color-handle-border-color-disabled: GrayText;--highcontrast-color-handle-fill-color-disabled: Canvas}}';var u=Object.defineProperty,a=(t,o,d,h)=>{for(var l=void 0,n=t.length-1,s;n>=0;n--)(s=t[n])&&(l=s(o,d,l)||l);return l&&u(o,d,l),l};const i=class i extends r.LuzmoElement{constructor(){super(...arguments),this.disabled=!1,this.focused=!1,this.open=!1,this.color="rgba(255, 0, 0, 0.5)"}handlePointerdown(o){o.pointerType==="touch"&&(this.open=!0),this.setPointerCapture(o.pointerId)}handlePointerup(o){this.open=!1,this.releasePointerCapture(o.pointerId)}render(){return r.x`
18
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../color-loupe-CIEFp7ln.cjs");const c=require("lit"),l=require("lit/decorators.js"),u=require("../base-5nDSSNeT.cjs"),h=':host{touch-action:none;transition:inline-size var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out),block-size var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out),border-width var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out),margin-inline var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out),margin-block var(--luzmo-color-handle-animation-duration, .13s) var(--luzmo-color-handle-animation-easing, ease-in-out)}:host{background:repeating-conic-gradient(var(--luzmo-color-loupe-checkerboard-light, rgb(255, 255, 255)) 0 25%,var(--luzmo-color-loupe-checkerboard-dark, rgb(230, 230, 230)) 0 50%) var(--luzmo-color-loupe-checkerboard-position, left top)/calc(var(--luzmo-color-loupe-checkerboard-size, 8px) * 2) calc(var(--luzmo-color-loupe-checkerboard-size, 8px) * 2);background-position:50%}:host(:focus){outline:none}:host{z-index:1;box-sizing:border-box;inline-size:var(--luzmo-color-handle-size, 16px);block-size:var(--luzmo-color-handle-size, 16px);margin-inline:calc(var(--luzmo-color-handle-size, 16px) / 2 * -1);margin-block:calc(var(--luzmo-color-handle-size, 16px) / 2 * -1);border-width:var(--luzmo-color-handle-border-width, 2px);border-color:var(--luzmo-color-handle-border-color, rgb(255, 255, 255));box-shadow:0 0 0 var(--luzmo-color-handle-outer-border-width, 1px) var(--luzmo-color-handle-outer-border-color, rgba(0, 0, 0, .42));transition:all var(--luzmo-color-handle-animation-duration, 0) var(--luzmo-color-handle-animation-easing, ease-in-out);border-style:solid}:host,:host:after{border-radius:100%;display:block;position:absolute}:host:after{content:"";inset-inline:calc(50% - var(--luzmo-color-handle-hitarea-size, 24px) / 2);inset-block:calc(50% - var(--luzmo-color-handle-hitarea-size, 24px) / 2);inline-size:var(--luzmo-color-handle-hitarea-size, 24px);block-size:var(--luzmo-color-handle-hitarea-size, 24px);border-radius:var(--luzmo-color-handle-hitarea-border-radius, 100%)}:host([focused]),:host(:focus-visible){inline-size:var(--luzmo-color-handle-focused-size, 32px);block-size:var(--luzmo-color-handle-focused-size, 32px);margin-inline:calc(var(--luzmo-color-handle-size, 16px) * -1);margin-block:calc(var(--luzmo-color-handle-size, 16px) * -1);outline:none}:host([disabled]){pointer-events:none;border-color:var(--highcontrast-color-handle-border-color-disabled, var(--luzmo-color-handle-border-color-disabled, var(--luzmo-font-color-disabled)));background:var(--highcontrast-color-handle-fill-color-disabled, var(--luzmo-color-handle-fill-color-disabled, var(--luzmo-font-color-disabled)));box-shadow:none}:host([disabled]) .inner{display:none}.inner{inline-size:100%;block-size:100%;box-shadow:inset 0 0 0 var(--luzmo-color-handle-inner-border-width, var(--luzmo-border-width)) var(--luzmo-color-handle-inner-border-color, rgba(0, 0, 0, .42));background-color:var(--luzmo-picked-color);border-radius:100%}@media (forced-colors: active){:host{forced-color-adjust:none}:host([disabled]){--highcontrast-color-handle-border-color-disabled: GrayText;--highcontrast-color-handle-fill-color-disabled: Canvas}}';var p=Object.defineProperty,a=(t,o,s,m)=>{for(var r=void 0,n=t.length-1,d;n>=0;n--)(d=t[n])&&(r=d(o,s,r)||r);return r&&p(o,s,r),r};const i=class i extends u.LuzmoElement{constructor(){super(...arguments),this.disabled=!1,this.focused=!1,this.open=!1,this.color="rgba(255, 0, 0, 0.5)"}handlePointerdown(o){o.pointerType==="touch"&&(this.open=!0),this.setPointerCapture(o.pointerId)}handlePointerup(o){this.open=!1,this.releasePointerCapture(o.pointerId)}render(){return c.html`
19
19
  <div class="inner" style="background-color: ${this.color}"></div>
20
20
  <luzmo-color-loupe
21
21
  color=${this.color}
22
22
  ?open=${this.open&&!this.disabled}
23
23
  ></luzmo-color-loupe>
24
- `}firstUpdated(o){super.firstUpdated(o),this.addEventListener("pointerdown",this.handlePointerdown),this.addEventListener("pointerup",this.handlePointerup),this.addEventListener("pointercancel",this.handlePointerup)}};i.styles=r.r(c);let e=i;a([r.n({type:Boolean,reflect:!0})],e.prototype,"disabled");a([r.n({type:Boolean,reflect:!0})],e.prototype,"focused");a([r.n({type:Boolean,reflect:!0})],e.prototype,"open");a([r.n({type:String})],e.prototype,"color");customElements.get("luzmo-color-handle")||customElements.define("luzmo-color-handle",e);exports.LuzmoColorHandle=e;
24
+ `}firstUpdated(o){super.firstUpdated(o),this.addEventListener("pointerdown",this.handlePointerdown),this.addEventListener("pointerup",this.handlePointerup),this.addEventListener("pointercancel",this.handlePointerup)}};i.styles=c.unsafeCSS(h);let e=i;a([l.property({type:Boolean,reflect:!0})],e.prototype,"disabled");a([l.property({type:Boolean,reflect:!0})],e.prototype,"focused");a([l.property({type:Boolean,reflect:!0})],e.prototype,"open");a([l.property({type:String})],e.prototype,"color");customElements.get("luzmo-color-handle")||customElements.define("luzmo-color-handle",e);exports.LuzmoColorHandle=e;
@@ -15,8 +15,10 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- import "../color-loupe-DmQe3SpP.js";
19
- import { a as s, r as m, x as z, n as a } from "../base-CFWO09N1.js";
18
+ import "../color-loupe-CLPX6xVb.js";
19
+ import { unsafeCSS as s, html as m } from "lit";
20
+ import { property as a } from "lit/decorators.js";
21
+ import { a as z } from "../base-CdYjmV_8.js";
20
22
  const u = () => {
21
23
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
22
24
  const l = document.createElement("style");
@@ -30,7 +32,7 @@ var b = Object.defineProperty, i = (l, o, c, p) => {
30
32
  (d = l[n]) && (e = d(o, c, e) || e);
31
33
  return e && b(o, c, e), e;
32
34
  };
33
- const t = class t extends s {
35
+ const t = class t extends z {
34
36
  constructor() {
35
37
  super(...arguments), this.disabled = !1, this.focused = !1, this.open = !1, this.color = "rgba(255, 0, 0, 0.5)";
36
38
  }
@@ -41,7 +43,7 @@ const t = class t extends s {
41
43
  this.open = !1, this.releasePointerCapture(o.pointerId);
42
44
  }
43
45
  render() {
44
- return z`
46
+ return m`
45
47
  <div class="inner" style="background-color: ${this.color}"></div>
46
48
  <luzmo-color-loupe
47
49
  color=${this.color}
@@ -53,7 +55,7 @@ const t = class t extends s {
53
55
  super.firstUpdated(o), this.addEventListener("pointerdown", this.handlePointerdown), this.addEventListener("pointerup", this.handlePointerup), this.addEventListener("pointercancel", this.handlePointerup);
54
56
  }
55
57
  };
56
- t.styles = m(h);
58
+ t.styles = s(h);
57
59
  let r = t;
58
60
  i([
59
61
  a({ type: Boolean, reflect: !0 })
@@ -15,4 +15,4 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../color-loupe-CrM2DVY3.cjs");customElements.get("luzmo-color-loupe")||customElements.define("luzmo-color-loupe",o.LuzmoColorLoupe);exports.LuzmoColorLoupe=o.LuzmoColorLoupe;
18
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../color-loupe-CIEFp7ln.cjs");customElements.get("luzmo-color-loupe")||customElements.define("luzmo-color-loupe",o.LuzmoColorLoupe);exports.LuzmoColorLoupe=o.LuzmoColorLoupe;
@@ -15,7 +15,7 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- import { L as r } from "../color-loupe-DmQe3SpP.js";
18
+ import { L as r } from "../color-loupe-CLPX6xVb.js";
19
19
  const l = () => {
20
20
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
21
21
  const o = document.createElement("style");
@@ -0,0 +1,56 @@
1
+ /*! * Lucero - The design system for Luzmo.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
+ * This license allows users with a current active Luzmo account to use Lucero.
7
+ * This license terminates automatically if a user no longer has an active Luzmo account.
8
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
+ *
10
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
+ * SOFTWARE.
17
+ * */
18
+ "use strict";const p=require("lit"),u=require("lit/decorators.js"),n=require("./base-5nDSSNeT.cjs"),d=':host{inline-size:var(--luzmo-color-loupe-width, 48px);block-size:var(--luzmo-color-loupe-height, 64px);transform:translateY(var(--luzmo-color-loupe-animation-distance, 8px));opacity:0;transform-origin:bottom;pointer-events:none;filter:drop-shadow(var(--luzmo-color-loupe-drop-shadow-x, 0) var(--luzmo-color-loupe-drop-shadow-y, 2px) var(--luzmo-color-loupe-drop-shadow-blur, 8px) var(--luzmo-color-loupe-drop-shadow-color, rgba(0, 0, 0, .25)));transition:transform .1s ease-in-out,opacity .125s ease-in-out;position:absolute;inset-block-end:calc(var(--luzmo-color-handle-size, 16px) - var(--luzmo-color-handle-outer-border-width, 1px) + var(--luzmo-color-loupe-offset, 12px));inset-inline-end:calc(50% - var(--luzmo-color-loupe-width, 48px) / 2)}:host:dir(rtl),:host([dir=rtl]){inset-inline-end:calc(50% - var(--luzmo-color-loupe-width, 48px) / 2 - 1px)}:host([open]){opacity:1;transform:translate(0)}.luzmo-color-loupe-inner-border{fill:var(--luzmo-picked-color);stroke:var(--luzmo-color-loupe-inner-border-color, rgba(0, 0, 0, .1));stroke-width:var(--luzmo-color-loupe-inner-border-width, 1px)}.luzmo-color-loupe-outer-border{fill:none;stroke:var(--luzmo-color-loupe-outer-border-color, white);stroke-width:calc(var(--luzmo-color-loupe-outer-border-width, 2px) + 2px);transform:translate(calc((var(--luzmo-color-loupe-outer-border-width, 2px) + 2px) / 2))}.luzmo-color-loupe-checkerboard-pattern{fill:var(--luzmo-color-loupe-checkerboard-dark-color, rgb(230, 230, 230))}.luzmo-color-loupe-checkerboard-background{fill:var(--luzmo-color-loupe-checkerboard-light-color, rgb(255, 255, 255))}.luzmo-color-loupe-checkerboard-fill{fill:var(--luzmo-color-loupe-checkerboard-fill, url(#checkerboard-primary))}@media (forced-colors: active){:host{--highcontrast-colorloupe-outer-border-color: CanvasText}}svg{width:inherit;height:inherit}.loupe-clipped{clip-path:path("M23 61.575C19.0044 57.435 15.2591 53.0606 11.784 48.475C8.68949 44.4532 5.96348 40.1608 3.639 35.65C1.224 30.8 0 26.549 0 23C0.00319993 17.6937 1.84059 12.5516 5.20091 8.44488C8.56122 4.33815 13.2378 1.51928 18.4385 0.465803C23.6392 -0.587678 29.0442 0.189006 33.7378 2.66428C38.4314 5.13955 42.125 9.16122 44.193 14.048C45.3915 16.88 46.0061 19.9248 46 23C46 26.551 44.774 30.811 42.355 35.661C40.0274 40.1747 37.298 44.4698 34.2 48.494C30.7297 53.0728 26.9898 57.4409 23 61.575ZZ")}.opacity-checkerboard{position:absolute;top:2px;left:2px;block-size:100%;inline-size:100%}.opacity-checkerboard{background:repeating-conic-gradient(var(--luzmo-color-loupe-checkerboard-light, rgb(255, 255, 255)) 0 25%,var(--luzmo-color-loupe-checkerboard-dark, rgb(230, 230, 230)) 0 50%) var(--luzmo-color-loupe-checkerboard-position, left top)/calc(var(--luzmo-color-loupe-checkerboard-size, 8px) * 2) calc(var(--luzmo-color-loupe-checkerboard-size, 8px) * 2)}';var h=Object.defineProperty,s=(t,a,c,m)=>{for(var o=void 0,e=t.length-1,i;e>=0;e--)(i=t[e])&&(o=i(a,c,o)||o);return o&&h(a,c,o),o};const l=class l extends n.LuzmoElement{constructor(){super(...arguments),this.open=!1,this.color="rgba(255, 0, 0, 0.5)"}render(){return p.html`
19
+ <div class="opacity-checkerboard loupe-clipped"></div>
20
+ <div class="luzmo-color-loupe-inner-border loupe-clipped"></div>
21
+ <div class="luzmo-color-loupe-outer-border loupe-clipped"></div>
22
+ <svg
23
+ aria-hidden="true"
24
+ class="luzmo-color-loupe is-open"
25
+ overflow="visible"
26
+ style="--luzmo-picked-color: ${this.color}; position: absolute;"
27
+ >
28
+ <defs>
29
+ <path
30
+ id="loupe-path"
31
+ d="M23 61.575C19.0044 57.435 15.2591 53.0606 11.784 48.475C8.68949 44.4532 5.96348 40.1608 3.639 35.65C1.224 30.8 0 26.549 0 23C0.00319993 17.6937 1.84059 12.5516 5.20091 8.44488C8.56122 4.33815 13.2378 1.51928 18.4385 0.465803C23.6392 -0.587678 29.0442 0.189006 33.7378 2.66428C38.4314 5.13955 42.125 9.16122 44.193 14.048C45.3915 16.88 46.0061 19.9248 46 23C46 26.551 44.774 30.811 42.355 35.661C40.0274 40.1747 37.298 44.4698 34.2 48.494C30.7297 53.0728 26.9898 57.4409 23 61.575ZZ"
32
+ transform="translate(2, 2)"
33
+ />
34
+ <mask id="loupe-mask">
35
+ <rect x="0" y="0" height="100" width="100" fill="white" />
36
+ <use xlink:href="#path" fill="black" />
37
+ </mask>
38
+ </defs>
39
+
40
+ <g class="luzmo-color-loupe-loupe">
41
+ <g>
42
+ <use
43
+ xlink:href="#loupe-path"
44
+ mask="url(#loupe-mask)"
45
+ transform="translate(2, 2)"
46
+ class="luzmo-color-loupe-inner-border"
47
+ />
48
+ <use
49
+ xlink:href="#loupe-path"
50
+ mask="url(#loupe-mask)"
51
+ class="luzmo-color-loupe-outer-border"
52
+ />
53
+ </g>
54
+ </g>
55
+ </svg>
56
+ `}};l.styles=p.unsafeCSS(d);let r=l;s([u.property({type:Boolean,reflect:!0})],r.prototype,"open");s([u.property({type:String})],r.prototype,"color");exports.LuzmoColorLoupe=r;
@@ -15,19 +15,21 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- import { a as s, r as d, x as n, n as p } from "./base-CFWO09N1.js";
18
+ import { unsafeCSS as s, html as d } from "lit";
19
+ import { property as p } from "lit/decorators.js";
20
+ import { a as n } from "./base-CdYjmV_8.js";
19
21
  const h = ':host{inline-size:var(--luzmo-color-loupe-width, 48px);block-size:var(--luzmo-color-loupe-height, 64px);transform:translateY(var(--luzmo-color-loupe-animation-distance, 8px));opacity:0;transform-origin:bottom;pointer-events:none;filter:drop-shadow(var(--luzmo-color-loupe-drop-shadow-x, 0) var(--luzmo-color-loupe-drop-shadow-y, 2px) var(--luzmo-color-loupe-drop-shadow-blur, 8px) var(--luzmo-color-loupe-drop-shadow-color, rgba(0, 0, 0, .25)));transition:transform .1s ease-in-out,opacity .125s ease-in-out;position:absolute;inset-block-end:calc(var(--luzmo-color-handle-size, 16px) - var(--luzmo-color-handle-outer-border-width, 1px) + var(--luzmo-color-loupe-offset, 12px));inset-inline-end:calc(50% - var(--luzmo-color-loupe-width, 48px) / 2)}:host:dir(rtl),:host([dir=rtl]){inset-inline-end:calc(50% - var(--luzmo-color-loupe-width, 48px) / 2 - 1px)}:host([open]){opacity:1;transform:translate(0)}.luzmo-color-loupe-inner-border{fill:var(--luzmo-picked-color);stroke:var(--luzmo-color-loupe-inner-border-color, rgba(0, 0, 0, .1));stroke-width:var(--luzmo-color-loupe-inner-border-width, 1px)}.luzmo-color-loupe-outer-border{fill:none;stroke:var(--luzmo-color-loupe-outer-border-color, white);stroke-width:calc(var(--luzmo-color-loupe-outer-border-width, 2px) + 2px);transform:translate(calc((var(--luzmo-color-loupe-outer-border-width, 2px) + 2px) / 2))}.luzmo-color-loupe-checkerboard-pattern{fill:var(--luzmo-color-loupe-checkerboard-dark-color, rgb(230, 230, 230))}.luzmo-color-loupe-checkerboard-background{fill:var(--luzmo-color-loupe-checkerboard-light-color, rgb(255, 255, 255))}.luzmo-color-loupe-checkerboard-fill{fill:var(--luzmo-color-loupe-checkerboard-fill, url(#checkerboard-primary))}@media (forced-colors: active){:host{--highcontrast-colorloupe-outer-border-color: CanvasText}}svg{width:inherit;height:inherit}.loupe-clipped{clip-path:path("M23 61.575C19.0044 57.435 15.2591 53.0606 11.784 48.475C8.68949 44.4532 5.96348 40.1608 3.639 35.65C1.224 30.8 0 26.549 0 23C0.00319993 17.6937 1.84059 12.5516 5.20091 8.44488C8.56122 4.33815 13.2378 1.51928 18.4385 0.465803C23.6392 -0.587678 29.0442 0.189006 33.7378 2.66428C38.4314 5.13955 42.125 9.16122 44.193 14.048C45.3915 16.88 46.0061 19.9248 46 23C46 26.551 44.774 30.811 42.355 35.661C40.0274 40.1747 37.298 44.4698 34.2 48.494C30.7297 53.0728 26.9898 57.4409 23 61.575ZZ")}.opacity-checkerboard{position:absolute;top:2px;left:2px;block-size:100%;inline-size:100%}.opacity-checkerboard{background:repeating-conic-gradient(var(--luzmo-color-loupe-checkerboard-light, rgb(255, 255, 255)) 0 25%,var(--luzmo-color-loupe-checkerboard-dark, rgb(230, 230, 230)) 0 50%) var(--luzmo-color-loupe-checkerboard-position, left top)/calc(var(--luzmo-color-loupe-checkerboard-size, 8px) * 2) calc(var(--luzmo-color-loupe-checkerboard-size, 8px) * 2)}';
20
22
  var m = Object.defineProperty, u = (a, t, c, b) => {
21
23
  for (var o = void 0, l = a.length - 1, i; l >= 0; l--)
22
24
  (i = a[l]) && (o = i(t, c, o) || o);
23
25
  return o && m(t, c, o), o;
24
26
  };
25
- const e = class e extends s {
27
+ const e = class e extends n {
26
28
  constructor() {
27
29
  super(...arguments), this.open = !1, this.color = "rgba(255, 0, 0, 0.5)";
28
30
  }
29
31
  render() {
30
- return n`
32
+ return d`
31
33
  <div class="opacity-checkerboard loupe-clipped"></div>
32
34
  <div class="luzmo-color-loupe-inner-border loupe-clipped"></div>
33
35
  <div class="luzmo-color-loupe-outer-border loupe-clipped"></div>
@@ -68,7 +70,7 @@ const e = class e extends s {
68
70
  `;
69
71
  }
70
72
  };
71
- e.styles = d(h);
73
+ e.styles = s(h);
72
74
  let r = e;
73
75
  u([
74
76
  p({ type: Boolean, reflect: !0 })