@iamfiro/design 0.1.0 → 0.3.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 (160) hide show
  1. package/AGENTS.md +1 -0
  2. package/agents/INDEX.md +1 -0
  3. package/agents/brand-icon/AGENTS.md +2 -2
  4. package/agents/social-login-button/AGENTS.md +156 -0
  5. package/lib/components/Accordion/Accordion2.js +135 -0
  6. package/lib/components/ActionBar/ActionBar2.js +66 -0
  7. package/lib/components/Alert/Alert2.js +131 -0
  8. package/lib/components/AppShell/AppShell2.js +94 -0
  9. package/lib/components/AreaChart/AreaChart.js +59 -0
  10. package/lib/components/BarChart/BarChart2.js +243 -0
  11. package/lib/components/BarList/BarList2.js +172 -0
  12. package/lib/components/Breadcrumb/Breadcrumb2.js +90 -0
  13. package/lib/components/Calendar/Calendar2.js +309 -0
  14. package/lib/components/Calendar/DatePicker2.js +228 -0
  15. package/lib/components/Calendar/date.js +118 -0
  16. package/lib/components/Card/Card2.js +103 -0
  17. package/lib/components/CardFrame/CardFrame2.js +67 -0
  18. package/lib/components/Chart/ChartParts.js +150 -0
  19. package/lib/components/Chart/chart2.js +96 -0
  20. package/lib/components/Chart/useChartInteraction.js +94 -0
  21. package/lib/components/ChatBubble/ChatBubble2.js +174 -0
  22. package/lib/components/ChatBubble/formatChatTime.js +48 -0
  23. package/lib/components/ChatComposer/ChatComposer2.js +153 -0
  24. package/lib/components/CodeBlock/CodeBlock2.js +93 -0
  25. package/lib/components/CodeBlock/highlight.js +111 -0
  26. package/lib/components/ColorPicker/ColorPicker2.js +609 -0
  27. package/lib/components/ColorPicker/color.js +180 -0
  28. package/lib/components/ColorPicker/presets.js +70 -0
  29. package/lib/components/Combobox/Combobox2.js +228 -0
  30. package/lib/components/CommandMenu/CommandMenu.js +267 -0
  31. package/lib/components/Comment/Comment2.js +110 -0
  32. package/lib/components/ContextMenu/ContextMenu2.js +168 -0
  33. package/lib/components/DataGrid/DataGrid2.js +1998 -0
  34. package/lib/components/DataGrid/GridPopover.js +154 -0
  35. package/lib/components/DataGrid/anchor.js +50 -0
  36. package/lib/components/DataGrid/model.js +557 -0
  37. package/lib/components/DataGrid/panels.js +701 -0
  38. package/lib/components/DataGrid/typeMeta.js +75 -0
  39. package/lib/components/DataGrid/types.js +53 -0
  40. package/lib/components/DescriptionList/DescriptionList2.js +180 -0
  41. package/lib/components/Dialog/AlertDialog.js +119 -0
  42. package/lib/components/Dialog/Dialog2.js +110 -0
  43. package/lib/components/Dialog/modal.js +92 -0
  44. package/lib/components/Drawer/Drawer2.js +244 -0
  45. package/lib/components/DropdownMenu/DropdownMenu2.js +393 -0
  46. package/lib/components/DropdownMenu/menuCore.js +63 -0
  47. package/lib/components/Dropzone/Dropzone2.js +145 -0
  48. package/lib/components/EmptyState/EmptyState2.js +70 -0
  49. package/lib/components/FileChip/FileChip2.js +94 -0
  50. package/lib/components/FileUpload/FileUpload.js +259 -0
  51. package/lib/components/FilterChips/FilterChips2.js +101 -0
  52. package/lib/components/FunnelChart/FunnelChart2.js +283 -0
  53. package/lib/components/FunnelChart/funnel.js +72 -0
  54. package/lib/components/Highlight/Highlight2.js +100 -0
  55. package/lib/components/HoverCard/HoverCard.js +134 -0
  56. package/lib/components/InlineDiff/InlineDiff2.js +215 -0
  57. package/lib/components/InlineDiff/diff.js +126 -0
  58. package/lib/components/InlineDiff/useDiffReview.js +110 -0
  59. package/lib/components/Kanban/Kanban2.js +691 -0
  60. package/lib/components/Kanban/KanbanCard.js +159 -0
  61. package/lib/components/Kanban/move.js +69 -0
  62. package/lib/components/LineChart/LineChart2.js +342 -0
  63. package/lib/components/List/List2.js +132 -0
  64. package/lib/components/Listbox/Listbox2.js +163 -0
  65. package/lib/components/Marker/Marker2.js +82 -0
  66. package/lib/components/Menubar/Menubar2.js +222 -0
  67. package/lib/components/MultiSelect/MultiSelect2.js +204 -0
  68. package/lib/components/NavigationMenu/NavigationMenu2.js +481 -0
  69. package/lib/components/NoticeStack/NoticeStack2.js +178 -0
  70. package/lib/components/NumberStepper/NumberStepper2.js +128 -0
  71. package/lib/components/OtpInput/OtpInput2.js +122 -0
  72. package/lib/components/Pagination/Pagination2.js +210 -0
  73. package/lib/components/Pagination/paginationRange.js +52 -0
  74. package/lib/components/PhoneInput/PhoneInput.js +175 -0
  75. package/lib/components/PieChart/PieChart2.js +246 -0
  76. package/lib/components/PieChart/arc.js +90 -0
  77. package/lib/components/PieChart/useArcTween.js +92 -0
  78. package/lib/components/Popover/Popover2.js +111 -0
  79. package/lib/components/ProgressTracker/ProgressTracker2.js +226 -0
  80. package/lib/components/Rating/Rating2.js +186 -0
  81. package/lib/components/Resizable/Resizable2.js +238 -0
  82. package/lib/components/Resizable/layout.js +115 -0
  83. package/lib/components/ScaledPreview/ScaledPreview2.js +99 -0
  84. package/lib/components/ScatterChart/ScatterChart2.js +355 -0
  85. package/lib/components/ScatterChart/scatter.js +85 -0
  86. package/lib/components/ScrollArea/ScrollArea2.js +217 -0
  87. package/lib/components/Select/Select2.js +153 -0
  88. package/lib/components/Sidebar/Sidebar2.js +127 -0
  89. package/lib/components/Skeleton/Skeleton2.js +91 -0
  90. package/lib/components/Slider/Slider2.js +142 -0
  91. package/lib/components/SocialLoginButton/SocialLoginButton.js +84 -0
  92. package/lib/components/SparkChart/SparkChart2.js +217 -0
  93. package/lib/components/SparkChart/spark.js +71 -0
  94. package/lib/components/Sparkbar/Sparkbar2.js +111 -0
  95. package/lib/components/SplitView/SplitView2.js +95 -0
  96. package/lib/components/Stat/Stat2.js +164 -0
  97. package/lib/components/StepList/StepList2.js +131 -0
  98. package/lib/components/Table/Table2.js +104 -0
  99. package/lib/components/Tabs/Tabs2.js +131 -0
  100. package/lib/components/TagInput/TagInput2.js +357 -0
  101. package/lib/components/TimePicker/TimePicker2.js +388 -0
  102. package/lib/components/TimePicker/time.js +81 -0
  103. package/lib/components/Timeline/Timeline2.js +369 -0
  104. package/lib/components/Timeline/scale.js +81 -0
  105. package/lib/components/Toast/Toaster.js +213 -0
  106. package/lib/components/Toast/store.js +128 -0
  107. package/lib/components/ToggleGroup/ToggleGroup2.js +125 -0
  108. package/lib/components/Toolbar/Toolbar2.js +283 -0
  109. package/lib/components/Tracker/Tracker2.js +172 -0
  110. package/lib/components/TreeDiagram/TreeDiagram2.js +223 -0
  111. package/lib/components/TreeView/TreeView2.js +286 -0
  112. package/lib/hooks/timing.js +57 -0
  113. package/lib/hooks/useControllableState.js +49 -0
  114. package/lib/hooks/useCountdown.js +75 -0
  115. package/lib/hooks/useDigitInput.js +103 -0
  116. package/lib/hooks/useDismiss.js +69 -0
  117. package/lib/hooks/useElapsed.js +85 -0
  118. package/lib/hooks/useFloating.js +70 -0
  119. package/lib/hooks/useFocusTrap.js +85 -0
  120. package/lib/hooks/usePresence.js +58 -0
  121. package/lib/hooks/usePressToOpen.js +70 -0
  122. package/lib/hooks/useScrollLock.js +71 -0
  123. package/lib/hooks/useSelection.js +65 -0
  124. package/lib/index.js +176 -17911
  125. package/lib/primitives/AspectRatio2.js +76 -0
  126. package/lib/primitives/BrandIcon.js +245 -0
  127. package/lib/primitives/ColorDot2.js +71 -0
  128. package/lib/primitives/CopyButton2.js +86 -0
  129. package/lib/primitives/CountBadge2.js +80 -0
  130. package/lib/primitives/Countdown2.js +61 -0
  131. package/lib/primitives/Delta2.js +92 -0
  132. package/lib/primitives/Elapsed.js +62 -0
  133. package/lib/primitives/FileIcon2.js +125 -0
  134. package/lib/primitives/Flag2.js +263 -0
  135. package/lib/primitives/IconStack2.js +85 -0
  136. package/lib/primitives/IconTile2.js +69 -0
  137. package/lib/primitives/Kbd2.js +88 -0
  138. package/lib/primitives/Layout2.js +118 -0
  139. package/lib/primitives/Link2.js +55 -0
  140. package/lib/primitives/MaskedText2.js +121 -0
  141. package/lib/primitives/Progress2.js +137 -0
  142. package/lib/primitives/RelativeTime.js +82 -0
  143. package/lib/primitives/SearchInput2.js +85 -0
  144. package/lib/primitives/SelectorButton2.js +96 -0
  145. package/lib/primitives/Spinner2.js +94 -0
  146. package/lib/primitives/StatusIcon2.js +126 -0
  147. package/lib/primitives/Swatch2.js +79 -0
  148. package/lib/primitives/Tooltip2.js +132 -0
  149. package/lib/primitives/Typography2.js +97 -0
  150. package/lib/primitives/formatCountdown.js +54 -0
  151. package/lib/primitives/formatElapsed.js +63 -0
  152. package/lib/primitives/formatRelativeTime.js +64 -0
  153. package/lib/primitives/hotkey.js +94 -0
  154. package/lib/primitives/index.js +351 -0
  155. package/lib/primitives/maskValue.js +69 -0
  156. package/lib/style.css +1 -1
  157. package/lib/types/components/SocialLoginButton/SocialLoginButton.d.ts +10 -0
  158. package/lib/types/components/index.d.ts +2 -0
  159. package/lib/types/primitives/BrandIcon.d.ts +1 -1
  160. package/package.json +2 -1
@@ -0,0 +1,609 @@
1
+ "use client";
2
+ const e = f;
3
+ (function(e, t) {
4
+ let n = f, r = e();
5
+ for (;;) try {
6
+ if (-parseInt(n(317)) / 1 + parseInt(n(351)) / 2 + -parseInt(n(316)) / 3 * (-parseInt(n(377)) / 4) + -parseInt(n(416)) / 5 * (parseInt(n(334)) / 6) + -parseInt(n(371)) / 7 + parseInt(n(315)) / 8 * (parseInt(n(364)) / 9) + parseInt(n(350)) / 10 * (parseInt(n(402)) / 11) == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(D, 717638);
12
+ import { Tooltip as t } from "../../primitives/Tooltip2.js";
13
+ import { Text as n } from "../../primitives/Typography2.js";
14
+ import { CopyButton as r } from "../../primitives/CopyButton2.js";
15
+ import { Grid as i, Inline as a, Stack as o } from "../../primitives/Layout2.js";
16
+ import { useControllableState as s } from "../../hooks/useControllableState.js";
17
+ import { Button as c, Input as l, SegmentedControl as u, cx as d } from "../../primitives/index.js";
18
+ function f(e, t) {
19
+ e -= 313;
20
+ let n = D(), r = n[e];
21
+ f.bUTLlU === void 0 && (f.PsfhRc = function(e) {
22
+ let t = "", n = "";
23
+ for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
24
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
25
+ return decodeURIComponent(n);
26
+ }, f.iJSamN = {}, f.bUTLlU = !0);
27
+ let i = n[0];
28
+ f.QUzddl !== i && (f.iJSamN = {}, f.QUzddl = i);
29
+ let a = f.iJSamN[e];
30
+ return a === void 0 ? (r = f.PsfhRc(r), f.iJSamN[e] = r) : r = a, r;
31
+ }
32
+ import { Popover as ee } from "../Popover/Popover2.js";
33
+ import { clamp as p, formatColor as m, formatHex as h, hslToRgb as g, hsvToRgb as _, isLight as v, parseColor as y, parseHex as te, rgbToHsl as ne, rgbToHsv as b } from "./color.js";
34
+ /* empty css */
35
+ import { CHART_COLOR_PRESETS as x } from "./presets.js";
36
+ import { useLayoutEffect as S, useRef as C, useState as w } from "react";
37
+ import { Check as T, ChevronDown as re, Pipette as E } from "lucide-react";
38
+ function D() {
39
+ let e = /* @__PURE__ */ "B3bLBG.C2vSzwn0.C2HPzNrlzxK.BgvMDa.C3rHCNq.zgLHBg9N.zhmTy29UDhjVBa.rw5K.zhmTy29SB3iTCgLJA2vYx19JAgvJAW.7lsi66gDkddIGjmYntuP.z2HVC3q.Agv4.y29UDgfPBNm.y29SB3i.zhmTy29SB3iTCgLJA2vYx19MAwvSza.nJe4BKndu1He.AgLKzgvU.Dw5KzwzPBMvK.z2v0uhjVCgvYDhLwywX1zq.66Qf64+ekcuP.zhmTy29SB3iTCgLJA2vYx190AhvTyG.DgvZDa.BgfIzwW.zhmTy29SB3iTCgLJA2vYx190CMfJAYbKCY1JB2XVCI1WAwnRzxjFx3rYywnRls1ODwu.AgvPz2H0.sevy.BwLUBwf4kdaSidfMCIKGnJrWEa.y3vYCMvUDfrHCMDLDa.sfnm.ioYeOo2dNq.Ag9YAxPVBNrHBa.mtuZote1me5fzLz1qG.nZe5mZi0t1rTEKng.C3rYAw5N.AM9PBG.Cg9PBNrLCKLK.sevyioQWKG.DMfYka.DMfSDwu.zhmTy29SB3iTCgLJA2vYx19YywLS.y2fUy2vS.ChjLDMvUDerLzMf1Bhq.zhmTy29SB3iTzMLLBgq.DgfYz2v0.zhmTy29SB3iTCgLJA2vYx19ZD2f0y2HLCW.nJaZmZu2nfrNChjLCq.AhnSka.CM91BMq.rxLLrhjVChbLCG.7lwC6RE8ioYcRoYAQq.y2XPzw50wq.BgvUz3rO.nZC1ndy5ofLiswL1AW.zhmTy29SB3iTCgLJA2vYx19ZD2f0y2G.zg9JDw1LBNrfBgvTzw50.AxndB21WB3nPBMC.67Ai7yIS66Qf64+eia.C2v0ug9PBNrLCKnHChr1CMu.mJeXmtG4wMXzC0rA.iZnIodjMnG.zhmTy29SB3iTCgLJA2vYx190AhvTyIbKCY1JB2XVCI1WAwnRzxjFx3rODw1Ils10CMfJAW.AhnS.CMvSyxrLzfrHCMDLDa.C3bHBG.C2XPy2u.7lge64+ekcuP.Aw5WDxq.AgfUzgXLCNm.7ioj7iobia.BMf0AxzLrxzLBNq.y2XPzw50wa.zgL2.ideWmcuGntaLkq.y3vYCMvUDa.y2vUDgvY.yMv0D2vLBG.zhmTy29SB3iTCgLJA2vY.zhmTy29SB3iTzMLLBgrFx3zHBhvL.A2v5.zhmTy29SB3iTCgLJA2vYx190CMfJAYbKCY1JB2XVCI1WAwnRzxjFx3rYywnRls1HBhbOyq.D2LKDgG.7zMu66M07jEq7isCioYdIsdQS6dRPBtQUla.7iojioYeOo2dNq.nZDnqK1prMm.yNv0Dg9U.CMvWBgfJzq.BwfW.C3rHCNrZv2L0Aa.7yYm656rkddIGjmYntuP.6Rcsio2yLEYlNq.CMDI.zM9JDxm.Dg9mB3DLCKnHC2u.zhmTy29SB3iTCgLJA2vYx19HCMvH.C2XPzgvY.67Ai7yIS66Qf64+e.BgfIzwWTEhm.mte0odvqtw9oAvu.Dg9W.6RIW67o4ioYdIq.zhmTy29SB3iTzMLLBgqTlq.B2zM.C3bSAxq.mUYWQoYBKcdSIQZRNBZSNBtRJzq.DgvYDgLHCNK.67Ai7yIS66Qf64+ekcuP.DhjPBq.Dg9vChbLCKnHC2u.rxnJyxbL.z3jVDxa.sg9Tzq.y2fWDgLVBG.C2vJB25Kyxj5.oeH1tNfNvq.mtjTrgXlrw4.mJu2nJa4ww90wK9h.zhjHz2DPBMC".split(".");
40
+ return D = function() {
41
+ return e;
42
+ }, D();
43
+ }
44
+ import { Fragment as ie, jsx as O, jsxs as k } from "react/jsx-runtime";
45
+ var ae = e(378), A = (e) => {
46
+ let t = y(e);
47
+ return t ? b(t) : null;
48
+ }, j = (e, t) => ({
49
+ ...e,
50
+ h: e.s === 0 || e.v === 0 ? t.h : e.h,
51
+ s: e.v === 0 ? t.s : e.s
52
+ }), M = (t) => Math[e(366)](t * 100);
53
+ function N({ ref: e, thumbRef: t, disabled: n, onMove: r, onStart: i, onEnd: a, onCancel: o }) {
54
+ let s = C(!1), [c, l] = w(!1), u = (e) => {
55
+ let t = f;
56
+ s[t(392)] = e, l(e);
57
+ }, d = (t) => {
58
+ let n = f, i = e[n(392)].getBoundingClientRect();
59
+ r(p((t[n(389)] - i[n(322)]) / i[n(399)], 0, 1), p((t[n(369)] - i[n(417)]) / i[n(343)], 0, 1));
60
+ };
61
+ return {
62
+ dragging: c,
63
+ handlers: {
64
+ onPointerDown: (e) => {
65
+ let r = f;
66
+ n || e.button !== 0 || (e[r(360)](), e[r(346)][r(376)](e[r(354)]), u(!0), i(), d(e), t[r(392)]?.[r(410)]({ preventScroll: !0 }));
67
+ },
68
+ onPointerMove: (e) => {
69
+ s[f(392)] && d(e);
70
+ },
71
+ onPointerUp: () => {
72
+ s[f(392)] && (u(!1), a());
73
+ },
74
+ onPointerCancel: () => {
75
+ s[f(392)] && (u(!1), a());
76
+ }
77
+ },
78
+ cancel: () => s[f(392)] ? (u(!1), o(), !0) : !1
79
+ };
80
+ }
81
+ function P({ display: t, parse: r, onPreview: i, onSettle: a, onRevert: s, onBegin: c, label: u, caption: d, leading: f, disabled: ee, maxLength: p }) {
82
+ let m = e, [h, g] = w(null), _ = h !== null && r(h) === null, v = () => {
83
+ g(null), a();
84
+ }, y = O(l, {
85
+ size: "sm",
86
+ value: h ?? t,
87
+ "aria-label": u,
88
+ invalid: _,
89
+ disabled: ee,
90
+ leading: f,
91
+ maxLength: p,
92
+ spellCheck: !1,
93
+ autoComplete: m(420),
94
+ wrapperClassName: m(333),
95
+ onFocus: (e) => {
96
+ let t = m;
97
+ c(), e.currentTarget[t(320)]();
98
+ },
99
+ onChange: (e) => {
100
+ let t = m, n = e[t(362)][t(357)];
101
+ g(n);
102
+ let a = r(n);
103
+ a && i(a);
104
+ },
105
+ onBlur: v,
106
+ onKeyDown: (e) => {
107
+ let t = m;
108
+ e[t(388)][t(374)] || (e.key === "Enter" ? (e[t(360)](), v()) : e.key === t(427) && h !== null && (e[t(360)](), g(null), s()));
109
+ }
110
+ });
111
+ return d ? k(o, {
112
+ gap: 1,
113
+ align: m(393),
114
+ children: [y, O(n, {
115
+ variant: m(313),
116
+ tone: m(423),
117
+ children: d
118
+ })]
119
+ }) : y;
120
+ }
121
+ function F({ css: n, rgb: r, label: i, selected: a, disabled: o, onPick: s }) {
122
+ let c = e;
123
+ return O(t, {
124
+ content: i,
125
+ children: O(c(403), {
126
+ type: "button",
127
+ className: c(372),
128
+ style: { "--_c": n },
129
+ "aria-label": i,
130
+ "aria-pressed": a,
131
+ disabled: o,
132
+ "data-light": r && v(r) || void 0,
133
+ onClick: s,
134
+ children: O(T, { className: c(327) })
135
+ })
136
+ });
137
+ }
138
+ var oe = () => typeof window !== e(336) && e(367) in window ? window[e(367)] : null, se = [
139
+ {
140
+ value: e(330),
141
+ label: "HEX"
142
+ },
143
+ {
144
+ value: e(409),
145
+ label: "RGB"
146
+ },
147
+ {
148
+ value: e(380),
149
+ label: e(347)
150
+ }
151
+ ];
152
+ function ce({ value: l, defaultValue: ee = ae, onValueChange: v, onValueCommit: x, alpha: T = !1, format: re, defaultFormat: D = "hex", onFormatChange: ie, presets: ce, presetsLabel: I = e(418), recentColors: ue, defaultRecentColors: de = [], onRecentColorsChange: fe, showRecent: pe = !0, maxRecent: me = 8, eyeDropper: he = !0, copyable: ge = !0, disabled: L, className: _e, style: ve, "aria-label": ye = e(401) }) {
153
+ let R = e, [z, be] = s(l, ee, v), [B, xe] = s(re, D, ie), [Se, Ce] = s(ue, de, fe), [V, we] = w(() => A(z) ?? A(ae)), [Te, Ee] = w(z);
154
+ if (z !== Te) {
155
+ Ee(z);
156
+ let e = A(z);
157
+ e && we(j(e, V));
158
+ }
159
+ let H = C(V);
160
+ S(() => {
161
+ H.current = V;
162
+ });
163
+ let U = (e) => h(_(e), T), W = (e) => {
164
+ let t = f, n = T ? e : {
165
+ ...e,
166
+ a: 1
167
+ };
168
+ H[t(392)] = n, we(n);
169
+ let r = U(n);
170
+ Ee(r), r !== z && be(r);
171
+ }, G = () => x?.(U(H[R(392)])), K = C(V), q = () => {
172
+ let e = R;
173
+ K[e(392)] = H[e(392)];
174
+ }, De = () => {
175
+ let e = R;
176
+ U(K[e(392)]) !== U(H[e(392)]) && G(), K[e(392)] = H[e(392)];
177
+ }, J = () => W(K[R(392)]), Y = _(V), Oe = h({
178
+ ...Y,
179
+ a: 1
180
+ }, !1), ke = R(365) + V.h + R(391), Ae = C(null), je = C(null), Me = C(null), Ne = C(null), Pe = C(null), Fe = C(null), Ie = N({
181
+ ref: Ae,
182
+ thumbRef: je,
183
+ disabled: L,
184
+ onStart: q,
185
+ onMove: (e, t) => W({
186
+ ...H.current,
187
+ s: e,
188
+ v: 1 - t
189
+ }),
190
+ onEnd: G,
191
+ onCancel: J
192
+ }), Le = N({
193
+ ref: Me,
194
+ thumbRef: Ne,
195
+ disabled: L,
196
+ onStart: q,
197
+ onMove: (e) => W({
198
+ ...H[R(392)],
199
+ h: e * 360
200
+ }),
201
+ onEnd: G,
202
+ onCancel: J
203
+ }), Re = N({
204
+ ref: Pe,
205
+ thumbRef: Fe,
206
+ disabled: L,
207
+ onStart: q,
208
+ onMove: (e) => W({
209
+ ...H.current,
210
+ a: Math.round(e * 100) / 100
211
+ }),
212
+ onEnd: G,
213
+ onCancel: J
214
+ }), ze = (e, t) => (n) => {
215
+ let r = R;
216
+ if (n[r(397)] === r(427)) {
217
+ e[r(359)]() && n.preventDefault();
218
+ return;
219
+ }
220
+ if (e[r(318)] || L) return;
221
+ let i = n[r(321)] ? 10 : 1, a = {
222
+ ArrowRight: [i, 0],
223
+ ArrowLeft: [-i, 0],
224
+ ArrowUp: [0, i],
225
+ ArrowDown: [0, -i],
226
+ PageUp: [0, 10],
227
+ PageDown: [0, -10]
228
+ }, o;
229
+ if (n[r(397)] in a) o = t(H.current, ...a[n[r(397)]]);
230
+ else if (n[r(397)] === r(429) || n[r(397)] === r(326)) o = t(H[r(392)], 0, 0, n.key === r(429) ? r(323) : "end");
231
+ else return;
232
+ n[r(360)](), W(o), G();
233
+ }, Be = ze(Ie, (e, t, n, r) => r ? {
234
+ ...e,
235
+ s: r === R(323) ? 0 : 1
236
+ } : {
237
+ ...e,
238
+ s: p(e.s + t / 100, 0, 1),
239
+ v: p(e.v + n / 100, 0, 1)
240
+ }), Ve = ze(Le, (e, t, n, r) => ({
241
+ ...e,
242
+ h: r ? r === R(323) ? 0 : 360 : p(Math[R(366)](e.h) + t + n, 0, 360)
243
+ })), He = ze(Re, (e, t, n, r) => ({
244
+ ...e,
245
+ a: r ? r === "start" ? 0 : 1 : p(Math[R(366)](e.a * 100 + t + n) / 100, 0, 1)
246
+ })), Ue = ne(Y), X = (e) => j(b(e), H[R(392)]), We = (e) => (t) => {
247
+ let n = R, r = t[n(425)]()[n(404)](/%$/, "");
248
+ if (!/^\d+(\.\d+)?$/[n(340)](r)) return null;
249
+ let i = Number(r);
250
+ return i >= 0 && i <= e ? i : null;
251
+ }, Ge = (e, t, n) => {
252
+ let r = R, i = We(255);
253
+ return O(P, {
254
+ display: String(Math[r(366)](Y[e])),
255
+ parse: (t) => {
256
+ let n = r, a = i(t);
257
+ return a === null ? null : X({
258
+ ..._(H[n(392)]),
259
+ [e]: a
260
+ });
261
+ },
262
+ ...Z,
263
+ label: n,
264
+ caption: t,
265
+ maxLength: 3
266
+ }, e);
267
+ }, Ke = (e, t, n) => {
268
+ let r = R, i = We(e === "h" ? 360 : 100), a = e === "h" ? Math.round(V.h) % 360 : Math[r(366)](Ue[e] * 100);
269
+ return O(P, {
270
+ display: String(a),
271
+ parse: (t) => {
272
+ let n = r, a = i(t);
273
+ if (a === null) return null;
274
+ let o = ne(_(H[n(392)])), s = e === "h" ? {
275
+ ...o,
276
+ h: a
277
+ } : {
278
+ ...o,
279
+ [e]: a / 100
280
+ }, c = b(g(s));
281
+ return e === "h" ? {
282
+ ...c,
283
+ h: a % 360
284
+ } : j(c, H[n(392)]);
285
+ },
286
+ ...Z,
287
+ label: n,
288
+ caption: t,
289
+ maxLength: 3
290
+ }, e);
291
+ }, Z = {
292
+ onPreview: W,
293
+ onSettle: De,
294
+ onRevert: J,
295
+ onBegin: q,
296
+ disabled: L
297
+ }, qe = O(P, {
298
+ display: Oe[R(383)](1)[R(426)](),
299
+ parse: (e) => {
300
+ let t = R, n = te(e);
301
+ if (!n) return null;
302
+ let r = e[t(425)]()[t(404)]("#", "")[t(370)], i = r === 4 || r === 8;
303
+ return {
304
+ ...X(n),
305
+ a: T && i ? n.a : H[t(392)].a
306
+ };
307
+ },
308
+ ...Z,
309
+ label: R(355),
310
+ caption: B === "hex" && T ? R(344) : void 0,
311
+ leading: O("span", {
312
+ className: "ds-color-picker__hash",
313
+ children: "#"
314
+ }),
315
+ maxLength: 9
316
+ }), Je = T && O(P, {
317
+ display: M(V.a) + "%",
318
+ parse: (e) => {
319
+ let t = We(100)(e);
320
+ return t === null ? null : {
321
+ ...H.current,
322
+ a: t / 100
323
+ };
324
+ },
325
+ ...Z,
326
+ label: R(424),
327
+ caption: "A",
328
+ maxLength: 4
329
+ }), Ye = C(null), Xe = (ce ?? [])[R(405)]((e) => typeof e === R(352) ? { color: e } : e), Q = le(Ye, Xe[R(405)]((e) => e[R(332)])), Ze = (e) => {
330
+ let t = y(e);
331
+ t && (q(), W({
332
+ ...X(t),
333
+ a: T ? t.a : 1
334
+ }), G());
335
+ }, Qe = U(V), $ = C(null), $e = (e) => {
336
+ let t = R;
337
+ e[t(346)][t(331)](e.relatedTarget) || ($.current = U(H[t(392)]));
338
+ }, et = (e) => {
339
+ let t = R;
340
+ if (e.currentTarget[t(331)](e[t(381)])) return;
341
+ let n = U(H[t(392)]);
342
+ $[t(392)] !== null && $[t(392)] !== n && Ce([n, ...Se.filter((e) => e[t(411)]() !== n)][t(383)](0, me)), $[t(392)] = null;
343
+ }, [tt] = w(() => oe() !== null), nt = async () => {
344
+ let e = R, t = oe();
345
+ if (t) try {
346
+ let { sRGBHex: n } = await new t()[e(319)](), r = y(n);
347
+ if (!r) return;
348
+ q(), W({
349
+ ...X(r),
350
+ a: H[e(392)].a
351
+ }), G();
352
+ } catch {}
353
+ }, rt = m(Y, B, T);
354
+ return k(o, {
355
+ ref: Ye,
356
+ gap: 3,
357
+ role: R(428),
358
+ "aria-label": ye,
359
+ className: d(R(395), _e),
360
+ style: ve,
361
+ "data-disabled": L || void 0,
362
+ onFocus: $e,
363
+ onBlur: et,
364
+ children: [
365
+ O(R(390), {
366
+ ref: Ae,
367
+ className: R(412),
368
+ style: { "--_hue": ke },
369
+ "data-dragging": Ie[R(318)] || void 0,
370
+ ...Ie[R(386)],
371
+ children: O(R(390), {
372
+ ref: je,
373
+ role: R(413),
374
+ tabIndex: L ? -1 : 0,
375
+ "aria-label": "채도와 밝기",
376
+ "aria-roledescription": R(422),
377
+ "aria-valuemin": 0,
378
+ "aria-valuemax": 100,
379
+ "aria-valuenow": M(V.s),
380
+ "aria-valuetext": "채도 " + M(V.s) + "%, 밝기 " + M(V.v) + "%",
381
+ "aria-disabled": L || void 0,
382
+ className: R(339),
383
+ style: {
384
+ left: V.s * 100 + "%",
385
+ top: (1 - V.v) * 100 + "%",
386
+ "--_c": Oe
387
+ },
388
+ onKeyDown: Be
389
+ })
390
+ }),
391
+ k(a, {
392
+ gap: 3,
393
+ wrap: !1,
394
+ children: [O("span", {
395
+ className: "ds-color-picker__preview",
396
+ style: { "--_c": Qe },
397
+ "aria-hidden": !0
398
+ }), k(o, {
399
+ gap: T ? 2 : 0,
400
+ style: {
401
+ flex: 1,
402
+ minWidth: 0
403
+ },
404
+ children: [O(R(390), {
405
+ className: R(342),
406
+ "data-dragging": Le.dragging || void 0,
407
+ ...Le[R(386)],
408
+ children: O("div", {
409
+ ref: Me,
410
+ className: "ds-color-picker__rail",
411
+ children: O(R(390), {
412
+ ref: Ne,
413
+ role: R(413),
414
+ tabIndex: L ? -1 : 0,
415
+ "aria-label": "색상",
416
+ "aria-orientation": R(349),
417
+ "aria-valuemin": 0,
418
+ "aria-valuemax": 360,
419
+ "aria-valuenow": Math.round(V.h),
420
+ "aria-valuetext": R(387) + Math[R(366)](V.h) + "도",
421
+ "aria-disabled": L || void 0,
422
+ className: R(379),
423
+ style: {
424
+ left: V.h / 360 * 100 + "%",
425
+ "--_c": ke
426
+ },
427
+ onKeyDown: Ve
428
+ })
429
+ })
430
+ }), T && O(R(390), {
431
+ className: R(398),
432
+ style: { "--_c": Oe },
433
+ "data-dragging": Re[R(318)] || void 0,
434
+ ...Re.handlers,
435
+ children: O("div", {
436
+ ref: Pe,
437
+ className: R(358),
438
+ children: O(R(390), {
439
+ ref: Fe,
440
+ role: "slider",
441
+ tabIndex: L ? -1 : 0,
442
+ "aria-label": R(414),
443
+ "aria-orientation": R(349),
444
+ "aria-valuemin": 0,
445
+ "aria-valuemax": 100,
446
+ "aria-valuenow": M(V.a),
447
+ "aria-valuetext": R(375) + M(V.a) + "%",
448
+ "aria-disabled": L || void 0,
449
+ className: R(379),
450
+ style: {
451
+ left: V.a * 100 + "%",
452
+ "--_c": Qe
453
+ },
454
+ onKeyDown: He
455
+ })
456
+ })
457
+ })]
458
+ })]
459
+ }),
460
+ k(a, {
461
+ justify: R(394),
462
+ wrap: !1,
463
+ children: [O(u, {
464
+ options: se,
465
+ value: B,
466
+ onChange: xe,
467
+ ariaLabel: R(408)
468
+ }), k(a, {
469
+ gap: 1,
470
+ wrap: !1,
471
+ children: [he && tt && O(t, {
472
+ content: R(400),
473
+ children: O(c, {
474
+ variant: R(329),
475
+ size: "sm",
476
+ iconOnly: !0,
477
+ icon: O(E, {}),
478
+ "aria-label": "화면에서 색 고르기",
479
+ disabled: L,
480
+ onClick: nt
481
+ })
482
+ }), ge && O(r, {
483
+ value: rt,
484
+ disabled: L
485
+ })]
486
+ })]
487
+ }),
488
+ B === R(330) ? T ? k(i, {
489
+ columns: R(345),
490
+ gap: 2,
491
+ align: R(323),
492
+ children: [qe, Je]
493
+ }) : qe : k(i, {
494
+ columns: T ? 4 : 3,
495
+ gap: 2,
496
+ align: R(323),
497
+ children: [B === "rgb" ? [
498
+ Ge("r", "R", "빨강(0–255)"),
499
+ Ge("g", "G", R(328)),
500
+ Ge("b", "B", R(407))
501
+ ] : [
502
+ Ke("h", "H", "색상(0–360)"),
503
+ Ke("s", "S", R(384)),
504
+ Ke("l", "L", R(338))
505
+ ], Je]
506
+ }),
507
+ Xe.length > 0 && k(o, {
508
+ gap: 2,
509
+ children: [O(n, {
510
+ variant: R(415),
511
+ tone: R(314),
512
+ children: I
513
+ }), O(R(390), {
514
+ className: R(363),
515
+ children: Xe[R(405)]((e, t) => {
516
+ let n = R, r = Q[t] ? y(Q[t]) : null;
517
+ return O(F, {
518
+ css: e.color[n(406)]("--") ? n(356) + e[n(332)] + ")" : e[n(332)],
519
+ rgb: r,
520
+ label: e[n(341)] ?? e[n(332)],
521
+ selected: r !== null && h(r, T) === Qe,
522
+ disabled: L,
523
+ onPick: () => Q[t] && Ze(Q[t])
524
+ }, e[n(332)]);
525
+ })
526
+ })]
527
+ }),
528
+ pe && Se[R(370)] > 0 && k(o, {
529
+ gap: 2,
530
+ children: [O(n, {
531
+ variant: "label-xs",
532
+ tone: R(314),
533
+ children: R(368)
534
+ }), O(R(390), {
535
+ className: R(363),
536
+ children: Se[R(405)]((e) => {
537
+ let t = R, n = y(e);
538
+ return O(F, {
539
+ css: e,
540
+ rgb: n,
541
+ label: e[t(426)](),
542
+ selected: n !== null && h(n, T) === Qe,
543
+ disabled: L,
544
+ onPick: () => Ze(e)
545
+ }, e);
546
+ })
547
+ })]
548
+ })
549
+ ]
550
+ });
551
+ }
552
+ function le(t, n) {
553
+ let r = e, i = n.join("|"), [a, o] = w(() => n[r(405)]((e) => e.startsWith("--") ? "" : e));
554
+ return S(() => {
555
+ let e = r, n = t[e(392)] ?? document[e(373)], a = getComputedStyle(n), s = i ? i[e(421)]("|")[e(405)]((t) => t[e(406)]("--") ? a[e(337)](t)[e(425)]() : t) : [];
556
+ o((t) => t[e(353)]("|") === s[e(353)]("|") ? t : s);
557
+ }, [t, i]), a;
558
+ }
559
+ function I({ value: t, defaultValue: n = ae, onValueChange: r, format: i, defaultFormat: a = "hex", onFormatChange: o, recentColors: c, defaultRecentColors: l = [], onRecentColorsChange: u, open: f, defaultOpen: p = !1, onOpenChange: h, size: g = "md", invalid: _, popoverWidth: v = 264, name: te, id: ne, className: b, disabled: x, alpha: S, "aria-label": C = "색", "aria-labelledby": w, ...T }) {
560
+ let E = e, [D, A] = s(t, n, r), [j, M] = s(i, a, o), [N, P] = s(c, l, u), [F, oe] = s(f, p, h), se = y(D), le = se ? m(se, j, S) : D, I = j === E(330) ? le[E(426)]() : le;
561
+ return k(ie, { children: [O(ee, {
562
+ open: F,
563
+ onOpenChange: (e) => !x && oe(e),
564
+ width: v,
565
+ "aria-label": C + E(348),
566
+ trigger: k(E(403), {
567
+ id: ne,
568
+ type: E(403),
569
+ "aria-haspopup": E(324),
570
+ "aria-expanded": F,
571
+ "aria-label": w ? void 0 : C + ": " + I,
572
+ "aria-labelledby": w,
573
+ "aria-invalid": _ || void 0,
574
+ disabled: x,
575
+ className: d(E(325), E(361), g !== "md" && E(419) + g, b),
576
+ "data-open": F || void 0,
577
+ "data-invalid": _ || void 0,
578
+ "data-disabled": x || void 0,
579
+ children: [
580
+ O("span", {
581
+ className: "ds-color-field__chip",
582
+ style: { "--_c": D }
583
+ }),
584
+ O(E(382), {
585
+ className: E(396),
586
+ children: I
587
+ }),
588
+ O(re, { className: "ds-color-field__chevron" })
589
+ ]
590
+ }),
591
+ children: O(ce, {
592
+ ...T,
593
+ value: D,
594
+ onValueChange: A,
595
+ alpha: S,
596
+ format: j,
597
+ onFormatChange: M,
598
+ recentColors: N,
599
+ onRecentColorsChange: P,
600
+ disabled: x,
601
+ "aria-label": C + E(348)
602
+ })
603
+ }), te && O(E(385), {
604
+ type: E(335),
605
+ name: te,
606
+ value: D
607
+ })] });
608
+ }
609
+ export { x as CHART_COLOR_PRESETS, I as ColorField, ce as ColorPicker };