@solibo/solibo-ui 0.5.11 → 0.5.13

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 (77) hide show
  1. package/dist/assets/index.css +1 -1
  2. package/dist/assets/index12.css +1 -1
  3. package/dist/assets/index13.css +1 -1
  4. package/dist/assets/index16.css +1 -1
  5. package/dist/assets/index25.css +1 -1
  6. package/dist/assets/index41.css +1 -1
  7. package/dist/components/_card/index.cjs +1 -1
  8. package/dist/components/_card/index.cjs.map +1 -1
  9. package/dist/components/_card/index.js +36 -37
  10. package/dist/components/_card/index.js.map +1 -1
  11. package/dist/components/_collapsible/index.cjs +1 -1
  12. package/dist/components/_collapsible/index.js +1 -1
  13. package/dist/components/_dropdown/index.cjs +1 -1
  14. package/dist/components/_dropdown/index.js +2 -2
  15. package/dist/components/_menu/index.cjs +1 -1
  16. package/dist/components/_menu/index.cjs.map +1 -1
  17. package/dist/components/_menu/index.js +25 -25
  18. package/dist/components/_menu/index.js.map +1 -1
  19. package/dist/components/_sortable/index.cjs +1 -1
  20. package/dist/components/_sortable/index.cjs.map +1 -1
  21. package/dist/components/_sortable/index.js +175 -50
  22. package/dist/components/_sortable/index.js.map +1 -1
  23. package/dist/components/button/index.cjs +1 -1
  24. package/dist/components/button/index.cjs.map +1 -1
  25. package/dist/components/button/index.js +4 -4
  26. package/dist/components/button/index.js.map +1 -1
  27. package/dist/components/checkbox/index.cjs +1 -1
  28. package/dist/components/checkbox/index.js +1 -1
  29. package/dist/components/chip/index.cjs +2 -0
  30. package/dist/components/chip/index.cjs.map +1 -0
  31. package/dist/components/chip/index.js +19 -0
  32. package/dist/components/chip/index.js.map +1 -0
  33. package/dist/components/controls/index.cjs +1 -1
  34. package/dist/components/controls/index.cjs.map +1 -1
  35. package/dist/components/controls/index.js +42 -21
  36. package/dist/components/controls/index.js.map +1 -1
  37. package/dist/components/icon/index.cjs +1 -1
  38. package/dist/components/icon/index.js +1 -1
  39. package/dist/components/input/index.cjs +1 -1
  40. package/dist/components/input/index.js +1 -1
  41. package/dist/components/list/index.cjs +1 -1
  42. package/dist/components/list/index.cjs.map +1 -1
  43. package/dist/components/list/index.js +40 -20
  44. package/dist/components/list/index.js.map +1 -1
  45. package/dist/components/message/index.cjs +1 -1
  46. package/dist/components/message/index.cjs.map +1 -1
  47. package/dist/components/message/index.js +13 -12
  48. package/dist/components/message/index.js.map +1 -1
  49. package/dist/components/nav/index.cjs +1 -1
  50. package/dist/components/nav/index.js +1 -1
  51. package/dist/components/select/index.cjs +1 -1
  52. package/dist/components/select/index.js +2 -2
  53. package/dist/{icons-06oXnjRF.js → icons-D6XjzxSX.js} +33 -14
  54. package/dist/icons-D6XjzxSX.js.map +1 -0
  55. package/dist/icons-s-lGsxio.cjs +2 -0
  56. package/dist/icons-s-lGsxio.cjs.map +1 -0
  57. package/dist/{index-BDTbPD0V.js → index-BMYV_5ZN.js} +2 -2
  58. package/dist/{index-BDTbPD0V.js.map → index-BMYV_5ZN.js.map} +1 -1
  59. package/dist/{index-OLuoLabz.cjs → index-FM_lJcIM.cjs} +2 -2
  60. package/dist/{index-OLuoLabz.cjs.map → index-FM_lJcIM.cjs.map} +1 -1
  61. package/dist/index.cjs +1 -1
  62. package/dist/index.d.ts +71 -46
  63. package/dist/index.js +62 -61
  64. package/dist/tokens.css +52 -15
  65. package/dist/tokens.json +1021 -178
  66. package/package.json +2 -2
  67. package/dist/components/button-group/index.cjs +0 -2
  68. package/dist/components/button-group/index.cjs.map +0 -1
  69. package/dist/components/button-group/index.js +0 -33
  70. package/dist/components/button-group/index.js.map +0 -1
  71. package/dist/helpers-BD5fFZi-.cjs +0 -2
  72. package/dist/helpers-BD5fFZi-.cjs.map +0 -1
  73. package/dist/helpers-D56OHkFI.js +0 -25
  74. package/dist/helpers-D56OHkFI.js.map +0 -1
  75. package/dist/icons-06oXnjRF.js.map +0 -1
  76. package/dist/icons-o8Z5npPW.cjs +0 -2
  77. package/dist/icons-o8Z5npPW.cjs.map +0 -1
@@ -1,65 +1,190 @@
1
- import { jsx as I } from "react/jsx-runtime";
2
- import { t as T } from "../../classix-DG18itHa.js";
3
- import _, { useMemo as z, useRef as B, useState as h, useEffect as M } from "react";
4
- import { i as N } from "../../icons-06oXnjRF.js";
5
- import { List as k } from "../list/index.js";
6
- import '../../assets/index25.css';const j = "_sortable_c1ptl_5", F = "_dragging_c1ptl_35", G = "_dropping_c1ptl_50", L = "_columns_c1ptl_63", W = "_pseudo_c1ptl_73", s = {
7
- sortable: j,
8
- dragging: F,
9
- dropping: G,
10
- columns: L,
11
- pseudo: W,
12
- "target-above": "_target-above_c1ptl_88",
13
- "target-below": "_target-below_c1ptl_89"
14
- };
15
- function P({
16
- children: b,
17
- className: E,
18
- columns: u = 1,
19
- isRearranging: d = !1,
20
- onChangeOrder: g,
21
- ...x
1
+ import { jsx as H } from "react/jsx-runtime";
2
+ import { t as O } from "../../classix-DG18itHa.js";
3
+ import A, { createContext as tt, useMemo as V, useRef as a, useState as M, useEffect as B, useContext as et } from "react";
4
+ import { List as nt } from "../list/index.js";
5
+ import '../../assets/index25.css';const rt = "_sortable_n5r0c_5", ot = "_dragging_n5r0c_15", ct = "_dropping_n5r0c_30", lt = "_columns_n5r0c_44", ut = "_pseudo_n5r0c_53", f = {
6
+ sortable: rt,
7
+ dragging: ot,
8
+ dropping: ct,
9
+ columns: lt,
10
+ pseudo: ut,
11
+ "target-above": "_target-above_n5r0c_68",
12
+ "target-below": "_target-below_n5r0c_69"
13
+ }, W = tt(null);
14
+ function ft() {
15
+ return et(W);
16
+ }
17
+ function mt({
18
+ children: F,
19
+ className: U,
20
+ columns: E = 1,
21
+ isRearranging: x = !1,
22
+ onChangeOrder: j,
23
+ ...Y
22
24
  }) {
23
- const v = Number.isFinite(u) ? Math.max(1, Math.floor(u)) : 1, w = z(() => _.Children.toArray(b), [b]), r = B(-1), [i, $] = h({
25
+ const N = Number.isFinite(E) ? Math.max(1, Math.floor(E)) : 1, D = V(() => A.Children.toArray(F), [F]), l = a(-1), P = V(() => typeof window < "u" && (navigator.maxTouchPoints > 0 || window.matchMedia("(pointer: coarse)").matches), []), i = a(!1), T = a(null), v = a(null), b = a(null), _ = a(!1), S = a(null), d = a(null), [w, X] = M({
24
26
  height: 0,
25
27
  width: 0
26
- }), [a, f] = h(null), [A, D] = h(null), H = {
27
- ...x.style,
28
- "--icon-svg": N("sort", !0),
29
- "--height": `calc(${i.height}px - var(--scale-16))`,
30
- "--width": v > 1 ? `calc(${i.width}px - var(--scale-16))` : `${i.width}px`
31
- }, S = () => {
32
- r.current = -1, f(null);
28
+ }), [m, p] = M(null), [R, $] = M(null), Z = {
29
+ ...Y.style,
30
+ "--height": `calc(${w.height}px - var(--scale-16))`,
31
+ "--width": N > 1 ? `calc(${w.width}px - var(--scale-16))` : `${w.width}px`
32
+ }, G = (o) => {
33
+ j(o.map((t, c) => ({
34
+ id: String(A.isValidElement(t) ? t.props["data-id"] ?? `idx-${c}` : `idx-${c}`),
35
+ weight: o.length - 1 - c
36
+ })));
37
+ }, y = (o, t) => {
38
+ if (t < 0 || t >= D.length || o === t) return;
39
+ const c = D.slice(), [e] = c.splice(o, 1);
40
+ c.splice(t, 0, e), $(t), G(c);
41
+ }, h = () => {
42
+ v.current !== null && (clearTimeout(v.current), v.current = null);
43
+ }, C = () => {
44
+ d.current !== null && (cancelAnimationFrame(d.current), d.current = null);
45
+ }, J = (o) => {
46
+ let t = (o == null ? void 0 : o.parentElement) ?? null;
47
+ for (; t; ) {
48
+ const {
49
+ overflowY: c
50
+ } = window.getComputedStyle(t);
51
+ if (/(auto|scroll|overlay)/.test(c) && t.scrollHeight > t.clientHeight) return t;
52
+ t = t.parentElement;
53
+ }
54
+ return document.scrollingElement instanceof HTMLElement ? document.scrollingElement : null;
55
+ }, k = () => {
56
+ h(), C(), S.current = null, i.current = !1, T.current = null, b.current = null, _.current = !1, l.current = -1, p(null);
57
+ }, K = (o) => o instanceof Element && !!o.closest('button, a, input, textarea, select, option, [role="button"], [contenteditable="true"]'), z = (o, t) => {
58
+ var q;
59
+ const c = (q = document.elementFromPoint(o, t)) == null ? void 0 : q.closest("[data-sortable-index]");
60
+ if (!c) return;
61
+ const e = Number(c.dataset.sortableIndex), n = l.current;
62
+ if (!Number.isInteger(e) || n < 0 || e === n) return;
63
+ const r = c.getBoundingClientRect(), s = e === n + 1 ? w.height : r.height, u = t > r.top + s / 2 ? e + 1 : e, I = u > n ? u - 1 : u;
64
+ T.current = I, p(I);
65
+ }, Q = (o) => {
66
+ const t = J(o);
67
+ if (!t) return;
68
+ const c = 72, e = 18, n = () => {
69
+ if (!i.current) {
70
+ d.current = null;
71
+ return;
72
+ }
73
+ const r = S.current;
74
+ if (!r) {
75
+ d.current = requestAnimationFrame(n);
76
+ return;
77
+ }
78
+ const s = t === document.scrollingElement ? {
79
+ top: 0,
80
+ bottom: window.innerHeight
81
+ } : t.getBoundingClientRect();
82
+ let g = 0;
83
+ if (r.y < s.top + c) {
84
+ const u = Math.max(0, r.y - s.top);
85
+ g = -e * (1 - u / c);
86
+ } else if (r.y > s.bottom - c) {
87
+ const u = Math.max(0, s.bottom - r.y);
88
+ g = e * (1 - u / c);
89
+ }
90
+ g !== 0 && (t.scrollBy({
91
+ top: g,
92
+ behavior: "auto"
93
+ }), z(r.x, r.y)), d.current = requestAnimationFrame(n);
94
+ };
95
+ C(), d.current = requestAnimationFrame(n);
96
+ }, L = () => {
97
+ l.current = -1, p(null);
33
98
  };
34
- return M(() => {
35
- d || D(null);
36
- }, [d]), /* @__PURE__ */ I(k, { className: T(E, s.sortable, v > 1 && s.columns), columns: u, ordered: !0, style: H, ...x, "data-component": "sortable", children: w.map((m, t) => {
37
- const V = _.isValidElement(m) ? m.key : null;
38
- return /* @__PURE__ */ I("li", { className: T(a !== null && a > t - 10 && a < t + 10 && s.pseudo, a === t && r.current < t && s["target-below"], a === t && r.current > t && s["target-above"], r.current === t && s.dragging, A === t && d && s.dropping), draggable: !d, onDragEnd: () => S(), onDragOver: (e) => {
99
+ return B(() => {
100
+ x || $(null);
101
+ }, [x]), B(() => () => {
102
+ h(), C();
103
+ }, []), B(() => {
104
+ const o = (t) => {
105
+ i.current && t.preventDefault();
106
+ };
107
+ return window.addEventListener("touchmove", o, {
108
+ passive: !1
109
+ }), () => {
110
+ h(), window.removeEventListener("touchmove", o);
111
+ };
112
+ }, []), /* @__PURE__ */ H(nt, { className: O(U, f.sortable, N > 1 && f.columns), columns: E, ordered: !0, style: Z, ...Y, "data-component": "sortable", children: D.map((o, t) => {
113
+ const c = A.isValidElement(o) ? o.key : null;
114
+ return /* @__PURE__ */ H("li", { "data-sortable-index": t, onClickCapture: (e) => {
115
+ _.current && (e.preventDefault(), e.stopPropagation(), _.current = !1);
116
+ }, className: O(m !== null && m > t - 10 && m < t + 10 && f.pseudo, m === t && l.current < t && f["target-below"], m === t && l.current > t && f["target-above"], l.current === t && f.dragging, R === t && x && f.dropping), onContextMenu: (e) => {
117
+ (i.current || v.current !== null) && e.preventDefault();
118
+ }, onTouchStart: (e) => {
119
+ if (x || K(e.target)) return;
120
+ const n = e.touches[0];
121
+ if (!n) return;
122
+ const r = e.currentTarget;
123
+ b.current = {
124
+ index: t,
125
+ x: n.clientX,
126
+ y: n.clientY
127
+ }, h(), v.current = setTimeout(() => {
128
+ l.current = t, i.current = !0, T.current = t, _.current = !0, X({
129
+ height: r.offsetHeight,
130
+ width: r.offsetWidth
131
+ }), p(t), S.current = {
132
+ x: n.clientX,
133
+ y: n.clientY
134
+ }, Q(r);
135
+ }, 350);
136
+ }, onTouchMove: (e) => {
137
+ const n = e.touches[0];
138
+ if (n) {
139
+ if (S.current = {
140
+ x: n.clientX,
141
+ y: n.clientY
142
+ }, !i.current) {
143
+ const r = b.current;
144
+ if (!r) return;
145
+ Math.hypot(n.clientX - r.x, n.clientY - r.y) > 8 && (h(), b.current = null);
146
+ return;
147
+ }
148
+ z(n.clientX, n.clientY);
149
+ }
150
+ }, onTouchEnd: (e) => {
151
+ if (h(), !i.current) {
152
+ b.current = null;
153
+ return;
154
+ }
155
+ e.preventDefault();
156
+ const n = l.current, r = T.current;
157
+ n >= 0 && r !== null && n !== r && y(n, r), k();
158
+ }, onTouchCancel: () => k(), draggable: !x && !P, onDragEnd: () => L(), onDragOver: (e) => {
39
159
  e.preventDefault(), e.dataTransfer.dropEffect = "move";
40
- const o = r.current;
41
- if (o < 0 || o === t) return;
42
- const n = e.currentTarget.getBoundingClientRect(), c = t === o + 1 ? i.height : n.height, l = e.clientY > n.top + c / 2 ? t + 1 : t, p = l > o ? l - 1 : l;
43
- f(p);
160
+ const n = l.current;
161
+ if (n < 0 || n === t) return;
162
+ const r = e.currentTarget.getBoundingClientRect(), s = t === n + 1 ? w.height : r.height, u = e.clientY > r.top + s / 2 ? t + 1 : t, I = u > n ? u - 1 : u;
163
+ p(I);
44
164
  }, onDragStart: (e) => {
45
- r.current = t, $({
165
+ if (P) {
166
+ e.preventDefault();
167
+ return;
168
+ }
169
+ l.current = t, X({
46
170
  height: e.currentTarget.offsetHeight,
47
171
  width: e.currentTarget.offsetWidth
48
- }), e.dataTransfer.setData("text/plain", ""), e.dataTransfer.effectAllowed = "move", f(t);
172
+ }), e.dataTransfer.setData("text/plain", ""), e.dataTransfer.effectAllowed = "move", p(t);
49
173
  }, onDrop: (e) => {
50
174
  e.preventDefault();
51
- const o = r.current, n = a;
52
- if (o < 0 || n === null || o === n) return;
53
- D(n);
54
- const c = w.slice(), [y] = c.splice(o, 1);
55
- c.splice(n, 0, y), g == null || g(c.map((l, p) => ({
56
- id: String(_.isValidElement(l) ? l.props["data-id"] ?? `idx-${p}` : `idx-${p}`),
57
- weight: c.length - 1 - p
58
- }))), S();
59
- }, "data-component": "sortable", children: m }, V ?? t);
175
+ const n = l.current, r = m;
176
+ n < 0 || r === null || n === r || (y(n, r), L());
177
+ }, "data-component": "sortable", children: /* @__PURE__ */ H(W.Provider, { value: {
178
+ canMoveDown: t < D.length - 1,
179
+ canMoveUp: t > 0,
180
+ index: t,
181
+ moveDown: () => y(t, t + 1),
182
+ moveUp: () => y(t, t - 1)
183
+ }, children: o }) }, c ?? t);
60
184
  }) });
61
185
  }
62
186
  export {
63
- P as Sortable
187
+ mt as Sortable,
188
+ ft as useOptionalSortableItem
64
189
  };
65
190
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/_sortable/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { iconSVG } from '@/components/icon/icons.ts';\nimport { List } from '@/components/list';\n\nimport styles from './styles.module.css';\n\ntype SortItem = { id: string; weight: number };\n\ntype SortableProps = React.ComponentPropsWithoutRef<'ol'> & {\n columns?: number;\n isRearranging?: boolean;\n onChangeOrder: (order: SortItem[]) => void;\n};\n\ntype withVars = React.CSSProperties & {\n '--height'?: string;\n '--width'?: string;\n '--icon-svg'?: string;\n};\n\n/**\n * Children must provide a stable `data-id` for emits `{ id, weight }` and `key` (reconciliation).\n */\n\nexport function Sortable({\n children,\n className,\n columns = 1,\n isRearranging = false,\n onChangeOrder,\n ...props\n}: SortableProps) {\n const cols = Number.isFinite(columns) ? Math.max(1, Math.floor(columns)) : 1;\n const arr = useMemo(() => React.Children.toArray(children), [children]);\n const drag = useRef(-1);\n const [zoneSize, setZoneSize] = useState({\n height: 0,\n width: 0,\n });\n const [dropIndex, setDropIndex] = useState<number | null>(null);\n const [droppedAtIndex, setDroppedAtIndex] = useState<number | null>(null);\n const withVars: withVars = {\n ...props.style,\n '--icon-svg': iconSVG('sort', true),\n '--height': `calc(${zoneSize.height}px - var(--scale-16))`,\n '--width': cols > 1 ? `calc(${zoneSize.width}px - var(--scale-16))` : `${zoneSize.width}px`,\n };\n\n const resetDragState = () => {\n drag.current = -1;\n setDropIndex(null);\n };\n\n useEffect(() => {\n if (!isRearranging) {\n setDroppedAtIndex(null);\n }\n }, [isRearranging]);\n\n return (\n <List\n className={cx(className, styles.sortable, cols > 1 && styles.columns)}\n columns={columns}\n ordered\n style={withVars}\n {...props}\n >\n {arr.map((child, i) => {\n const key = React.isValidElement(child) ? child.key : null;\n\n return (\n <li\n key={key ?? i}\n className={cx(\n dropIndex !== null && dropIndex > i - 10 && dropIndex < i + 10 && styles.pseudo,\n dropIndex === i && drag.current < i && styles['target-below'],\n dropIndex === i && drag.current > i && styles['target-above'],\n drag.current === i && styles.dragging,\n droppedAtIndex === i && isRearranging && styles.dropping\n )}\n draggable={!isRearranging}\n onDragEnd={() => resetDragState()}\n onDragOver={(e) => {\n e.preventDefault();\n e.dataTransfer.dropEffect = 'move';\n const from = drag.current;\n if (from < 0 || from === i) return;\n\n const rect = e.currentTarget.getBoundingClientRect();\n const itemHeight = i === from + 1 ? zoneSize.height : rect.height;\n const isBottomHalf = e.clientY > rect.top + itemHeight / 2;\n const rawIndex = isBottomHalf ? i + 1 : i;\n const nextDropIndex = rawIndex > from ? rawIndex - 1 : rawIndex;\n\n setDropIndex(nextDropIndex);\n }}\n onDragStart={(e) => {\n drag.current = i;\n setZoneSize({\n height: e.currentTarget.offsetHeight,\n width: e.currentTarget.offsetWidth,\n });\n e.dataTransfer.setData('text/plain', '');\n e.dataTransfer.effectAllowed = 'move';\n setDropIndex(i);\n }}\n onDrop={(e) => {\n e.preventDefault();\n const from = drag.current;\n const to = dropIndex;\n if (from < 0 || to === null || from === to) return;\n\n setDroppedAtIndex(to);\n const next = arr.slice();\n const [moved] = next.splice(from, 1);\n next.splice(to, 0, moved);\n\n onChangeOrder?.(\n next.map((c, idx) => ({\n id: String(\n React.isValidElement(c)\n ? ((c.props as { 'data-id'?: string })['data-id'] ?? `idx-${idx}`)\n : `idx-${idx}`\n ),\n\n weight: next.length - 1 - idx,\n }))\n );\n\n resetDragState();\n }}\n >\n {child}\n </li>\n );\n })}\n </List>\n );\n}\n"],"names":["Sortable","children","className","columns","isRearranging","onChangeOrder","props","cols","Number","isFinite","Math","max","floor","arr","useMemo","React","Children","toArray","drag","useRef","zoneSize","setZoneSize","useState","height","width","dropIndex","setDropIndex","droppedAtIndex","setDroppedAtIndex","withVars","style","iconSVG","resetDragState","current","useEffect","jsx","List","cx","styles","sortable","map","child","i","key","isValidElement","pseudo","dragging","dropping","e","preventDefault","dataTransfer","dropEffect","from","rect","currentTarget","getBoundingClientRect","itemHeight","rawIndex","clientY","top","nextDropIndex","offsetHeight","offsetWidth","setData","effectAllowed","to","next","slice","moved","splice","c","idx","id","String","weight","length"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/_sortable/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport React, { createContext, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { List } from '@/components/list';\n\nimport styles from './styles.module.css';\n\ntype SortItem = { id: string; weight: number };\n\ntype SortableItemContextValue = {\n canMoveDown: boolean;\n canMoveUp: boolean;\n index: number;\n moveDown: () => void;\n moveUp: () => void;\n};\n\nconst SortableItemContext = createContext<SortableItemContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useOptionalSortableItem() {\n return useContext(SortableItemContext);\n}\n\ntype SortableProps = React.ComponentPropsWithoutRef<'ol'> & {\n columns?: number;\n isRearranging?: boolean;\n onChangeOrder: (order: SortItem[]) => void;\n};\n\ntype withVars = React.CSSProperties & {\n '--height'?: string;\n '--width'?: string;\n '--icon-svg'?: string;\n};\n\n/**\n * Children must provide a stable `data-id` for emits `{ id, weight }` and `key` (reconciliation).\n */\n\nexport function Sortable({\n children,\n className,\n columns = 1,\n isRearranging = false,\n onChangeOrder,\n ...props\n}: SortableProps) {\n const cols = Number.isFinite(columns) ? Math.max(1, Math.floor(columns)) : 1;\n const arr = useMemo(() => React.Children.toArray(children), [children]);\n const drag = useRef(-1);\n const usesTouchInput = useMemo(\n () =>\n typeof window !== 'undefined' &&\n (navigator.maxTouchPoints > 0 || window.matchMedia('(pointer: coarse)').matches),\n []\n );\n const touchDragActive = useRef(false);\n const touchDropIndex = useRef<number | null>(null);\n const touchHoldTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const touchStart = useRef<{ index: number; x: number; y: number } | null>(null);\n const suppressClick = useRef(false);\n const touchPosition = useRef<{ x: number; y: number } | null>(null);\n const autoScrollFrame = useRef<number | null>(null);\n const [zoneSize, setZoneSize] = useState({\n height: 0,\n width: 0,\n });\n const [dropIndex, setDropIndex] = useState<number | null>(null);\n const [droppedAtIndex, setDroppedAtIndex] = useState<number | null>(null);\n const withVars: withVars = {\n ...props.style,\n '--height': `calc(${zoneSize.height}px - var(--scale-16))`,\n '--width': cols > 1 ? `calc(${zoneSize.width}px - var(--scale-16))` : `${zoneSize.width}px`,\n };\n\n const emitOrder = (items: React.ReactNode[]) => {\n onChangeOrder(\n items.map((item, index) => ({\n id: String(\n React.isValidElement(item)\n ? ((item.props as { 'data-id'?: string })['data-id'] ?? `idx-${index}`)\n : `idx-${index}`\n ),\n weight: items.length - 1 - index,\n }))\n );\n };\n\n const moveItem = (from: number, to: number) => {\n if (to < 0 || to >= arr.length || from === to) return;\n\n const next = arr.slice();\n const [moved] = next.splice(from, 1);\n next.splice(to, 0, moved);\n\n setDroppedAtIndex(to);\n emitOrder(next);\n };\n\n const clearTouchHoldTimer = () => {\n if (touchHoldTimer.current !== null) {\n clearTimeout(touchHoldTimer.current);\n touchHoldTimer.current = null;\n }\n };\n\n const clearAutoScrollFrame = () => {\n if (autoScrollFrame.current !== null) {\n cancelAnimationFrame(autoScrollFrame.current);\n autoScrollFrame.current = null;\n }\n };\n\n const getScrollableAncestor = (element: HTMLElement | null) => {\n let current = element?.parentElement ?? null;\n\n while (current) {\n const { overflowY } = window.getComputedStyle(current);\n const canScroll =\n /(auto|scroll|overlay)/.test(overflowY) && current.scrollHeight > current.clientHeight;\n\n if (canScroll) return current;\n current = current.parentElement;\n }\n\n return document.scrollingElement instanceof HTMLElement ? document.scrollingElement : null;\n };\n\n const resetTouchDragState = () => {\n clearTouchHoldTimer();\n clearAutoScrollFrame();\n touchPosition.current = null;\n touchDragActive.current = false;\n touchDropIndex.current = null;\n touchStart.current = null;\n suppressClick.current = false;\n drag.current = -1;\n setDropIndex(null);\n };\n\n const isInteractiveTarget = (target: EventTarget | null) =>\n target instanceof Element &&\n Boolean(\n target.closest(\n 'button, a, input, textarea, select, option, [role=\"button\"], [contenteditable=\"true\"]'\n )\n );\n\n const updateTouchDropIndex = (clientX: number, clientY: number) => {\n const target = document\n .elementFromPoint(clientX, clientY)\n ?.closest<HTMLElement>('[data-sortable-index]');\n if (!target) return;\n\n const index = Number(target.dataset.sortableIndex);\n const from = drag.current;\n if (!Number.isInteger(index) || from < 0 || index === from) return;\n\n const rect = target.getBoundingClientRect();\n const itemHeight = index === from + 1 ? zoneSize.height : rect.height;\n const isBottomHalf = clientY > rect.top + itemHeight / 2;\n const rawIndex = isBottomHalf ? index + 1 : index;\n const nextDropIndex = rawIndex > from ? rawIndex - 1 : rawIndex;\n\n touchDropIndex.current = nextDropIndex;\n setDropIndex(nextDropIndex);\n };\n\n const startTouchAutoScroll = (item: HTMLElement) => {\n const scrollContainer = getScrollableAncestor(item);\n if (!scrollContainer) return;\n\n const edgeSize = 72;\n const maxSpeed = 18;\n\n const step = () => {\n if (!touchDragActive.current) {\n autoScrollFrame.current = null;\n return;\n }\n\n const position = touchPosition.current;\n if (!position) {\n autoScrollFrame.current = requestAnimationFrame(step);\n return;\n }\n\n const rect =\n scrollContainer === document.scrollingElement\n ? { top: 0, bottom: window.innerHeight }\n : scrollContainer.getBoundingClientRect();\n\n let speed = 0;\n\n if (position.y < rect.top + edgeSize) {\n const distance = Math.max(0, position.y - rect.top);\n speed = -maxSpeed * (1 - distance / edgeSize);\n } else if (position.y > rect.bottom - edgeSize) {\n const distance = Math.max(0, rect.bottom - position.y);\n speed = maxSpeed * (1 - distance / edgeSize);\n }\n\n if (speed !== 0) {\n scrollContainer.scrollBy({ top: speed, behavior: 'auto' });\n updateTouchDropIndex(position.x, position.y);\n }\n\n autoScrollFrame.current = requestAnimationFrame(step);\n };\n\n clearAutoScrollFrame();\n autoScrollFrame.current = requestAnimationFrame(step);\n };\n\n const resetDragState = () => {\n drag.current = -1;\n setDropIndex(null);\n };\n\n useEffect(() => {\n if (!isRearranging) {\n setDroppedAtIndex(null);\n }\n }, [isRearranging]);\n\n useEffect(\n () => () => {\n clearTouchHoldTimer();\n clearAutoScrollFrame();\n },\n []\n );\n\n useEffect(() => {\n const preventScrollWhileDragging = (event: TouchEvent) => {\n if (touchDragActive.current) {\n event.preventDefault();\n }\n };\n\n window.addEventListener('touchmove', preventScrollWhileDragging, {\n passive: false,\n });\n\n return () => {\n clearTouchHoldTimer();\n window.removeEventListener('touchmove', preventScrollWhileDragging);\n };\n }, []);\n\n return (\n <List\n className={cx(className, styles.sortable, cols > 1 && styles.columns)}\n columns={columns}\n ordered\n style={withVars}\n {...props}\n >\n {arr.map((child, i) => {\n const key = React.isValidElement(child) ? child.key : null;\n\n return (\n <li\n key={key ?? i}\n data-sortable-index={i}\n onClickCapture={(e) => {\n if (!suppressClick.current) return;\n e.preventDefault();\n e.stopPropagation();\n suppressClick.current = false;\n }}\n className={cx(\n dropIndex !== null && dropIndex > i - 10 && dropIndex < i + 10 && styles.pseudo,\n dropIndex === i && drag.current < i && styles['target-below'],\n dropIndex === i && drag.current > i && styles['target-above'],\n drag.current === i && styles.dragging,\n droppedAtIndex === i && isRearranging && styles.dropping\n )}\n onContextMenu={(e) => {\n if (touchDragActive.current || touchHoldTimer.current !== null) {\n e.preventDefault();\n }\n }}\n onTouchStart={(e) => {\n if (isRearranging || isInteractiveTarget(e.target)) return;\n\n const touch = e.touches[0];\n if (!touch) return;\n\n const item = e.currentTarget;\n touchStart.current = {\n index: i,\n x: touch.clientX,\n y: touch.clientY,\n };\n\n clearTouchHoldTimer();\n touchHoldTimer.current = setTimeout(() => {\n drag.current = i;\n touchDragActive.current = true;\n touchDropIndex.current = i;\n suppressClick.current = true;\n setZoneSize({\n height: item.offsetHeight,\n width: item.offsetWidth,\n });\n setDropIndex(i);\n touchPosition.current = {\n x: touch.clientX,\n y: touch.clientY,\n };\n startTouchAutoScroll(item);\n }, 350);\n }}\n onTouchMove={(e) => {\n const touch = e.touches[0];\n if (!touch) return;\n\n touchPosition.current = {\n x: touch.clientX,\n y: touch.clientY,\n };\n\n if (!touchDragActive.current) {\n const start = touchStart.current;\n if (!start) return;\n\n const distance = Math.hypot(touch.clientX - start.x, touch.clientY - start.y);\n if (distance > 8) {\n clearTouchHoldTimer();\n touchStart.current = null;\n }\n return;\n }\n updateTouchDropIndex(touch.clientX, touch.clientY);\n }}\n onTouchEnd={(e) => {\n clearTouchHoldTimer();\n\n if (!touchDragActive.current) {\n touchStart.current = null;\n return;\n }\n\n e.preventDefault();\n const from = drag.current;\n const to = touchDropIndex.current;\n\n if (from >= 0 && to !== null && from !== to) {\n moveItem(from, to);\n }\n\n resetTouchDragState();\n }}\n onTouchCancel={() => resetTouchDragState()}\n draggable={!isRearranging && !usesTouchInput}\n onDragEnd={() => resetDragState()}\n onDragOver={(e) => {\n e.preventDefault();\n e.dataTransfer.dropEffect = 'move';\n const from = drag.current;\n if (from < 0 || from === i) return;\n\n const rect = e.currentTarget.getBoundingClientRect();\n const itemHeight = i === from + 1 ? zoneSize.height : rect.height;\n const isBottomHalf = e.clientY > rect.top + itemHeight / 2;\n const rawIndex = isBottomHalf ? i + 1 : i;\n const nextDropIndex = rawIndex > from ? rawIndex - 1 : rawIndex;\n\n setDropIndex(nextDropIndex);\n }}\n onDragStart={(e) => {\n if (usesTouchInput) {\n e.preventDefault();\n return;\n }\n drag.current = i;\n setZoneSize({\n height: e.currentTarget.offsetHeight,\n width: e.currentTarget.offsetWidth,\n });\n e.dataTransfer.setData('text/plain', '');\n e.dataTransfer.effectAllowed = 'move';\n setDropIndex(i);\n }}\n onDrop={(e) => {\n e.preventDefault();\n const from = drag.current;\n const to = dropIndex;\n if (from < 0 || to === null || from === to) return;\n moveItem(from, to);\n resetDragState();\n }}\n >\n <SortableItemContext.Provider\n value={{\n canMoveDown: i < arr.length - 1,\n canMoveUp: i > 0,\n index: i,\n moveDown: () => moveItem(i, i + 1),\n moveUp: () => moveItem(i, i - 1),\n }}\n >\n {child}\n </SortableItemContext.Provider>\n </li>\n );\n })}\n </List>\n );\n}\n"],"names":["SortableItemContext","createContext","useOptionalSortableItem","useContext","Sortable","children","className","columns","isRearranging","onChangeOrder","props","cols","Number","isFinite","Math","max","floor","arr","useMemo","React","Children","toArray","drag","useRef","usesTouchInput","window","navigator","maxTouchPoints","matchMedia","matches","touchDragActive","touchDropIndex","touchHoldTimer","touchStart","suppressClick","touchPosition","autoScrollFrame","zoneSize","setZoneSize","useState","height","width","dropIndex","setDropIndex","droppedAtIndex","setDroppedAtIndex","withVars","style","emitOrder","items","map","item","index","id","String","isValidElement","weight","length","moveItem","from","to","next","slice","moved","splice","clearTouchHoldTimer","current","clearTimeout","clearAutoScrollFrame","cancelAnimationFrame","getScrollableAncestor","element","parentElement","overflowY","getComputedStyle","test","scrollHeight","clientHeight","document","scrollingElement","HTMLElement","resetTouchDragState","isInteractiveTarget","target","Element","Boolean","closest","updateTouchDropIndex","clientX","clientY","elementFromPoint","dataset","sortableIndex","isInteger","rect","getBoundingClientRect","itemHeight","rawIndex","top","nextDropIndex","startTouchAutoScroll","scrollContainer","edgeSize","maxSpeed","step","position","requestAnimationFrame","bottom","innerHeight","speed","y","distance","scrollBy","behavior","x","resetDragState","useEffect","preventScrollWhileDragging","event","preventDefault","addEventListener","passive","removeEventListener","jsx","List","cx","styles","sortable","child","i","key","e","stopPropagation","pseudo","dragging","dropping","touch","touches","currentTarget","setTimeout","offsetHeight","offsetWidth","start","hypot","dataTransfer","dropEffect","setData","effectAllowed","canMoveDown","canMoveUp","moveDown","moveUp"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index33.css');const e=require("react/jsx-runtime"),l=require("../../classix-5H4IWnMA.cjs"),c=require("../icon/index.cjs"),d="_button_18vba_1",_="_danger_18vba_23",b="_minimal_18vba_36",p="_primary_18vba_43",t={button:d,danger:_,minimal:b,primary:p},g={danger:t.danger,default:t.default,minimal:t.minimal,primary:t.primary};function y({children:i,className:r,disabled:o=!1,icon:a,onClick:s,ref:m,variant:n="default",...u}){return e.jsxs("button",{className:l.t(t.button,g[n],r),disabled:o,onClick:s,ref:m,type:"button",...u,"data-component":"button",children:[a&&e.jsx(c.Icon,{gap:"right",name:a,size:"small",variant:n==="minimal"||n==="default"?"default":"white"}),i]})}exports.Button=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index33.css');const a=require("react/jsx-runtime"),l=require("../../classix-5H4IWnMA.cjs"),c=require("../icon/index.cjs"),d="_button_18vba_1",_="_danger_18vba_23",b="_minimal_18vba_36",p="_primary_18vba_43",t={button:d,danger:_,minimal:b,primary:p},f={danger:t.danger,default:t.default,minimal:t.minimal,primary:t.primary};function g({children:i,className:r,disabled:o=!1,icon:e,onClick:s,ref:m,variant:n="default",...u}){return a.jsxs("button",{className:l.t(t.button,f[n],r),disabled:o,onClick:s,ref:m,type:"button",...u,"data-component":"button",children:[e&&a.jsx(c.Icon,{fill:!0,gap:"right",name:e,size:"small",variant:n==="minimal"||n==="default"?"default":"white"}),i]})}exports.Button=g;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/button/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { Icon } from '../icon';\nimport { IconName } from '../icon/icons';\nimport styles from './styles.module.css';\n\nconst variants = {\n danger: styles.danger,\n default: styles.default,\n minimal: styles.minimal,\n primary: styles.primary,\n};\n\nexport type ButtonProps = React.ComponentPropsWithRef<'button'> & {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n icon?: IconName;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n variant?: keyof typeof variants;\n};\n\nexport function Button({\n children,\n className,\n disabled = false,\n icon,\n onClick,\n ref,\n variant = 'default',\n ...props\n}: ButtonProps) {\n return (\n <button\n className={cx(styles.button, variants[variant], className)}\n disabled={disabled}\n onClick={onClick}\n ref={ref}\n type='button'\n {...props}\n >\n {icon && (\n <Icon\n gap='right'\n name={icon}\n size='small'\n variant={variant === 'minimal' || variant === 'default' ? 'default' : 'white'}\n />\n )}\n {children}\n </button>\n );\n}\n"],"names":["variants","danger","styles","default","minimal","primary","Button","children","className","disabled","icon","onClick","ref","variant","props","cx","button","jsx","Icon"],"mappings":"2TAMMA,EAAW,CACfC,OAAQC,EAAOD,OACfE,QAASD,EAAOC,QAChBC,QAASF,EAAOE,QAChBC,QAASH,EAAOG,OAClB,EAWO,SAASC,EAAO,CACrBC,SAAAA,EACAC,UAAAA,EACAC,SAAAA,EAAW,GACXC,KAAAA,EACAC,QAAAA,EACAC,IAAAA,EACAC,QAAAA,EAAU,UACV,GAAGC,CACQ,EAAG,CACd,cACG,SAAA,CACC,UAAWC,EAAAA,EAAGb,EAAOc,OAAQhB,EAASa,CAAO,EAAGL,CAAS,EACzD,SAAAC,EACA,QAAAE,EACA,IAAAC,EACA,KAAK,SACL,GAAIE,EAAM,iBAAA,SAETJ,SAAAA,CAAAA,GACCO,EAAAA,IAACC,OAAA,CACC,IAAI,QACJ,KAAMR,EACN,KAAK,QACL,QAASG,IAAY,WAAaA,IAAY,UAAY,UAAY,QAAQ,EAGjFN,CAAAA,EACH,CAEJ"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/button/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { Icon } from '../icon';\nimport { IconName } from '../icon/icons';\nimport styles from './styles.module.css';\n\nconst variants = {\n danger: styles.danger,\n default: styles.default,\n minimal: styles.minimal,\n primary: styles.primary,\n};\n\nexport type ButtonProps = React.ComponentPropsWithRef<'button'> & {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n icon?: IconName;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n variant?: keyof typeof variants;\n};\n\nexport function Button({\n children,\n className,\n disabled = false,\n icon,\n onClick,\n ref,\n variant = 'default',\n ...props\n}: ButtonProps) {\n return (\n <button\n className={cx(styles.button, variants[variant], className)}\n disabled={disabled}\n onClick={onClick}\n ref={ref}\n type='button'\n {...props}\n >\n {icon && (\n <Icon\n fill\n gap='right'\n name={icon}\n size='small'\n variant={variant === 'minimal' || variant === 'default' ? 'default' : 'white'}\n />\n )}\n {children}\n </button>\n );\n}\n"],"names":["variants","danger","styles","default","minimal","primary","Button","children","className","disabled","icon","onClick","ref","variant","props","cx","button","Icon"],"mappings":"2TAMMA,EAAW,CACfC,OAAQC,EAAOD,OACfE,QAASD,EAAOC,QAChBC,QAASF,EAAOE,QAChBC,QAASH,EAAOG,OAClB,EAWO,SAASC,EAAO,CACrBC,SAAAA,EACAC,UAAAA,EACAC,SAAAA,EAAW,GACXC,KAAAA,EACAC,QAAAA,EACAC,IAAAA,EACAC,QAAAA,EAAU,UACV,GAAGC,CACQ,EAAG,CACd,cACG,SAAA,CACC,UAAWC,EAAAA,EAAGb,EAAOc,OAAQhB,EAASa,CAAO,EAAGL,CAAS,EACzD,SAAAC,EACA,QAAAE,EACA,IAAAC,EACA,KAAK,SACL,GAAIE,EAAM,iBAAA,SAETJ,SAAAA,CAAAA,SACEO,EAAAA,KAAA,CACC,KAAI,GACJ,IAAI,QACJ,KAAMP,EACN,KAAK,QACL,QAASG,IAAY,WAAaA,IAAY,UAAY,UAAY,QAAQ,EAGjFN,CAAAA,EACH,CAEJ"}
@@ -1,11 +1,11 @@
1
1
  import { jsxs as s, jsx as u } from "react/jsx-runtime";
2
2
  import { t as d } from "../../classix-DG18itHa.js";
3
3
  import { Icon as p } from "../icon/index.js";
4
- import '../../assets/index33.css';const _ = "_button_18vba_1", b = "_danger_18vba_23", c = "_minimal_18vba_36", f = "_primary_18vba_43", t = {
4
+ import '../../assets/index33.css';const _ = "_button_18vba_1", b = "_danger_18vba_23", f = "_minimal_18vba_36", c = "_primary_18vba_43", t = {
5
5
  button: _,
6
6
  danger: b,
7
- minimal: c,
8
- primary: f
7
+ minimal: f,
8
+ primary: c
9
9
  }, g = {
10
10
  danger: t.danger,
11
11
  default: t.default,
@@ -23,7 +23,7 @@ function x({
23
23
  ...l
24
24
  }) {
25
25
  return /* @__PURE__ */ s("button", { className: d(t.button, g[a], r), disabled: i, onClick: o, ref: e, type: "button", ...l, "data-component": "button", children: [
26
- n && /* @__PURE__ */ u(p, { gap: "right", name: n, size: "small", variant: a === "minimal" || a === "default" ? "default" : "white" }),
26
+ n && /* @__PURE__ */ u(p, { fill: !0, gap: "right", name: n, size: "small", variant: a === "minimal" || a === "default" ? "default" : "white" }),
27
27
  m
28
28
  ] });
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/button/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { Icon } from '../icon';\nimport { IconName } from '../icon/icons';\nimport styles from './styles.module.css';\n\nconst variants = {\n danger: styles.danger,\n default: styles.default,\n minimal: styles.minimal,\n primary: styles.primary,\n};\n\nexport type ButtonProps = React.ComponentPropsWithRef<'button'> & {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n icon?: IconName;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n variant?: keyof typeof variants;\n};\n\nexport function Button({\n children,\n className,\n disabled = false,\n icon,\n onClick,\n ref,\n variant = 'default',\n ...props\n}: ButtonProps) {\n return (\n <button\n className={cx(styles.button, variants[variant], className)}\n disabled={disabled}\n onClick={onClick}\n ref={ref}\n type='button'\n {...props}\n >\n {icon && (\n <Icon\n gap='right'\n name={icon}\n size='small'\n variant={variant === 'minimal' || variant === 'default' ? 'default' : 'white'}\n />\n )}\n {children}\n </button>\n );\n}\n"],"names":["variants","danger","styles","default","minimal","primary","Button","children","className","disabled","icon","onClick","ref","variant","props","cx","button","jsx","Icon"],"mappings":";;;;;;;;GAMMA,IAAW;AAAA,EACfC,QAAQC,EAAOD;AAAAA,EACfE,SAASD,EAAOC;AAAAA,EAChBC,SAASF,EAAOE;AAAAA,EAChBC,SAASH,EAAOG;AAClB;AAWO,SAASC,EAAO;AAAA,EACrBC,UAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,UAAAA,IAAW;AAAA,EACXC,MAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,SAAAA,IAAU;AAAA,EACV,GAAGC;AACQ,GAAG;AACd,2BACG,UAAA,EACC,WAAWC,EAAGb,EAAOc,QAAQhB,EAASa,CAAO,GAAGL,CAAS,GACzD,UAAAC,GACA,SAAAE,GACA,KAAAC,GACA,MAAK,UACL,GAAIE,GAAM,kBAAA,UAETJ,UAAAA;AAAAA,IAAAA,KACC,gBAAAO,EAACC,GAAA,EACC,KAAI,SACJ,MAAMR,GACN,MAAK,SACL,SAASG,MAAY,aAAaA,MAAY,YAAY,YAAY,SAAQ;AAAA,IAGjFN;AAAAA,EAAAA,GACH;AAEJ;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/button/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { Icon } from '../icon';\nimport { IconName } from '../icon/icons';\nimport styles from './styles.module.css';\n\nconst variants = {\n danger: styles.danger,\n default: styles.default,\n minimal: styles.minimal,\n primary: styles.primary,\n};\n\nexport type ButtonProps = React.ComponentPropsWithRef<'button'> & {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n icon?: IconName;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n variant?: keyof typeof variants;\n};\n\nexport function Button({\n children,\n className,\n disabled = false,\n icon,\n onClick,\n ref,\n variant = 'default',\n ...props\n}: ButtonProps) {\n return (\n <button\n className={cx(styles.button, variants[variant], className)}\n disabled={disabled}\n onClick={onClick}\n ref={ref}\n type='button'\n {...props}\n >\n {icon && (\n <Icon\n fill\n gap='right'\n name={icon}\n size='small'\n variant={variant === 'minimal' || variant === 'default' ? 'default' : 'white'}\n />\n )}\n {children}\n </button>\n );\n}\n"],"names":["variants","danger","styles","default","minimal","primary","Button","children","className","disabled","icon","onClick","ref","variant","props","cx","button","Icon"],"mappings":";;;;;;;;GAMMA,IAAW;AAAA,EACfC,QAAQC,EAAOD;AAAAA,EACfE,SAASD,EAAOC;AAAAA,EAChBC,SAASF,EAAOE;AAAAA,EAChBC,SAASH,EAAOG;AAClB;AAWO,SAASC,EAAO;AAAA,EACrBC,UAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,UAAAA,IAAW;AAAA,EACXC,MAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,SAAAA,IAAU;AAAA,EACV,GAAGC;AACQ,GAAG;AACd,2BACG,UAAA,EACC,WAAWC,EAAGb,EAAOc,QAAQhB,EAASa,CAAO,GAAGL,CAAS,GACzD,UAAAC,GACA,SAAAE,GACA,KAAAC,GACA,MAAK,UACL,GAAIE,GAAM,kBAAA,UAETJ,UAAAA;AAAAA,IAAAA,uBACEO,GAAA,EACC,MAAI,IACJ,KAAI,SACJ,MAAMP,GACN,MAAK,SACL,SAASG,MAAY,aAAaA,MAAY,YAAY,YAAY,SAAQ;AAAA,IAGjFN;AAAAA,EAAAA,GACH;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index34.css');const e=require("react/jsx-runtime"),x=require("../../icons-o8Z5npPW.cjs"),b=require("../loading/index.cjs"),h="_checkbox_1e5vl_1",k={checkbox:h},l=({checked:s,disabled:t,isLoading:c,label:o,onChange:n,...i})=>{const r={"--icon-svg":x.iconSVG("check")};return e.jsxs("label",{className:k.checkbox,"data-component":"checkbox",children:[c&&e.jsx(b.Loading,{size:24,sticky:!0}),e.jsx("input",{checked:s,disabled:t||c,onChange:n,type:"checkbox",style:r,...i}),o&&o]})};exports.Checkbox=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index34.css');const e=require("react/jsx-runtime"),x=require("../../icons-s-lGsxio.cjs"),b=require("../loading/index.cjs"),h="_checkbox_1e5vl_1",k={checkbox:h},l=({checked:s,disabled:t,isLoading:c,label:o,onChange:n,...i})=>{const r={"--icon-svg":x.iconSVG("check")};return e.jsxs("label",{className:k.checkbox,"data-component":"checkbox",children:[c&&e.jsx(b.Loading,{size:24,sticky:!0}),e.jsx("input",{checked:s,disabled:t||c,onChange:n,type:"checkbox",style:r,...i}),o&&o]})};exports.Checkbox=l;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { jsxs as h, jsx as e } from "react/jsx-runtime";
2
- import { i as x } from "../../icons-06oXnjRF.js";
2
+ import { i as x } from "../../icons-D6XjzxSX.js";
3
3
  import { Loading as k } from "../loading/index.js";
4
4
  import '../../assets/index34.css';const b = "_checkbox_1e5vl_1", m = {
5
5
  checkbox: b
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index13.css');const n=require("react/jsx-runtime"),r=require("../icon/index.cjs"),c="_chip_1nmzv_1",o={chip:c},p=({accessibleLabel:s,label:a,onClick:e,...i})=>n.jsxs("a",{"aria-label":s,className:o.chip,onClick:t=>{t.stopPropagation(),e==null||e(t)},tabIndex:0,...i,"data-component":"chip",children:[a,n.jsx(r.Icon,{name:"x",size:"small",variant:"primary"})]});exports.Chip=p;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/chip/index.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\n\nimport { Icon } from '../icon';\nimport styles from './styles.module.css';\n\nexport type ChipProps = Omit<ComponentPropsWithoutRef<'span'>, 'onClick' | 'tabIndex'> & {\n accessibleLabel?: string;\n label: string;\n onClick: (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;\n};\n\nexport const Chip = ({ accessibleLabel, label, onClick, ...props }: ChipProps) => {\n return (\n <a\n aria-label={accessibleLabel}\n className={styles.chip}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n tabIndex={0}\n {...props}\n >\n {label}\n <Icon\n name='x'\n size='small'\n variant='primary'\n />\n </a>\n );\n};\n"],"names":["Chip","accessibleLabel","label","onClick","props","jsxs","styles","chip","e","stopPropagation","Icon"],"mappings":"iLAWaA,EAAOA,CAAC,CAAEC,gBAAAA,EAAiBC,MAAAA,EAAOC,QAAAA,EAAS,GAAGC,CAAiB,IAExEC,OAAC,KACC,aAAYJ,EACZ,UAAWK,EAAOC,KAClB,QAAUC,GAAM,CACdA,EAAEC,gBAAAA,EACFN,GAAAA,MAAAA,EAAUK,EACZ,EACA,SAAU,EACV,GAAIJ,EAAM,iBAAA,OAETF,SAAAA,CAAAA,QACAQ,EAAAA,KAAA,CACC,KAAK,IACL,KAAK,QACL,QAAQ,SAAA,CAAS,CAAA,EAErB"}
@@ -0,0 +1,19 @@
1
+ import { jsxs as i, jsx as o } from "react/jsx-runtime";
2
+ import { Icon as m } from "../icon/index.js";
3
+ import '../../assets/index13.css';const n = "_chip_1nmzv_1", c = {
4
+ chip: n
5
+ }, x = ({
6
+ accessibleLabel: p,
7
+ label: r,
8
+ onClick: a,
9
+ ...s
10
+ }) => /* @__PURE__ */ i("a", { "aria-label": p, className: c.chip, onClick: (t) => {
11
+ t.stopPropagation(), a == null || a(t);
12
+ }, tabIndex: 0, ...s, "data-component": "chip", children: [
13
+ r,
14
+ /* @__PURE__ */ o(m, { name: "x", size: "small", variant: "primary" })
15
+ ] });
16
+ export {
17
+ x as Chip
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/chip/index.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\n\nimport { Icon } from '../icon';\nimport styles from './styles.module.css';\n\nexport type ChipProps = Omit<ComponentPropsWithoutRef<'span'>, 'onClick' | 'tabIndex'> & {\n accessibleLabel?: string;\n label: string;\n onClick: (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;\n};\n\nexport const Chip = ({ accessibleLabel, label, onClick, ...props }: ChipProps) => {\n return (\n <a\n aria-label={accessibleLabel}\n className={styles.chip}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n tabIndex={0}\n {...props}\n >\n {label}\n <Icon\n name='x'\n size='small'\n variant='primary'\n />\n </a>\n );\n};\n"],"names":["Chip","accessibleLabel","label","onClick","props","jsxs","styles","chip","e","stopPropagation","Icon"],"mappings":";;;;GAWaA,IAAOA,CAAC;AAAA,EAAEC,iBAAAA;AAAAA,EAAiBC,OAAAA;AAAAA,EAAOC,SAAAA;AAAAA,EAAS,GAAGC;AAAiB,MAExE,gBAAAC,EAAC,OACC,cAAYJ,GACZ,WAAWK,EAAOC,MAClB,SAAUC,CAAAA,MAAM;AACdA,EAAAA,EAAEC,gBAAAA,GACFN,KAAAA,QAAAA,EAAUK;AACZ,GACA,UAAU,GACV,GAAIJ,GAAM,kBAAA,QAETF,UAAAA;AAAAA,EAAAA;AAAAA,oBACAQ,GAAA,EACC,MAAK,KACL,MAAK,SACL,SAAQ,UAAA,CAAS;AAAA,GAErB;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index12.css');const t=require("react/jsx-runtime"),c=require("react"),l=require("../../helpers-BD5fFZi-.cjs"),i="_controls_1kzpr_15",d="_wrapper_1kzpr_33",o={controls:i,wrapper:d},p=({children:n,onSaveShortcut:r,...a})=>(c.useEffect(()=>{if(!r)return;const s=e=>{!(e.key.toLowerCase()==="s"&&(e.metaKey||e.ctrlKey)&&!e.altKey&&!e.shiftKey)||e.defaultPrevented||e.repeat||(e.preventDefault(),r())};return document.addEventListener("keydown",s),()=>{document.removeEventListener("keydown",s)}},[r]),t.jsx("div",{className:o.wrapper,"data-wrapper":!0,"data-component":"controls",children:t.jsx("div",{className:o.controls,children:t.jsx("menu",{"data-animation":"stagger",...a,children:l.wrapChildren(n)})})}));exports.Controls=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index12.css');const f=require("react/jsx-runtime"),m=require("../../classix-5H4IWnMA.cjs"),o=require("react"),p=require("../button/index.cjs"),x="_controls_1kztc_13",_="_fixed_1kztc_34",s={controls:x,default:"_default_1kztc_20",fixed:_},k={primary:3,danger:2,default:1,minimal:0},y={default:s.default,fixed:s.fixed},g=e=>k[e.props.variant??"default"],h=({children:e,className:l,variant:i="default",...u})=>{const r=o.Children.toArray(e),a=[],c=[];r.forEach(t=>{o.isValidElement(t)&&t.type===p.Button?a.push(t):c.push(t)});const d=a.map((t,n)=>({button:t,index:n,rank:g(t)})).sort((t,n)=>t.rank-n.rank||t.index-n.index).map(({button:t,index:n})=>o.cloneElement(t,{key:t.key??n}));return r.length===0?null:f.jsxs("div",{className:m.t(s.controls,y[i],l),...u,"data-component":"controls",children:[c,d]})};exports.Controls=h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/controls/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { wrapChildren } from '@/lib/helpers';\n\nimport styles from './styles.module.css';\n\nexport type ControlsProps = React.ComponentPropsWithoutRef<'menu'> & {\n onSaveShortcut?: () => void;\n};\n\nexport const Controls = ({ children, onSaveShortcut, ...props }: ControlsProps) => {\n useEffect(() => {\n if (!onSaveShortcut) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const isSaveShortcut =\n event.key.toLowerCase() === 's' &&\n (event.metaKey || event.ctrlKey) &&\n !event.altKey &&\n !event.shiftKey;\n\n if (!isSaveShortcut || event.defaultPrevented || event.repeat) {\n return;\n }\n\n event.preventDefault();\n onSaveShortcut();\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onSaveShortcut]);\n\n return (\n <div\n className={styles.wrapper}\n data-wrapper\n >\n <div className={styles.controls}>\n <menu\n data-animation='stagger'\n {...props}\n >\n {wrapChildren(children)}\n </menu>\n </div>\n </div>\n );\n};\n"],"names":["Controls","children","onSaveShortcut","props","useEffect","handleKeyDown","event","key","toLowerCase","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","repeat","preventDefault","document","addEventListener","removeEventListener","jsx","styles","wrapper","controls","wrapChildren"],"mappings":"sPAUaA,EAAWA,CAAC,CAAEC,SAAAA,EAAUC,eAAAA,EAAgB,GAAGC,CAAqB,KAC3EC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACF,EACH,OAGF,MAAMG,EAAiBC,GAAyB,CAO1C,EALFA,EAAMC,IAAIC,YAAAA,IAAkB,MAC3BF,EAAMG,SAAWH,EAAMI,UACxB,CAACJ,EAAMK,QACP,CAACL,EAAMM,WAEcN,EAAMO,kBAAoBP,EAAMQ,SAIvDR,EAAMS,eAAAA,EACNb,EAAAA,EACF,EAEAc,gBAASC,iBAAiB,UAAWZ,CAAa,EAE3C,IAAM,CACXW,SAASE,oBAAoB,UAAWb,CAAa,CACvD,CACF,EAAG,CAACH,CAAc,CAAC,EAGjBiB,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAOC,QAClB,eAAY,GAAA,iBAAA,WAEZ,SAAAF,EAAAA,IAAC,MAAA,CAAI,UAAWC,EAAOE,SACrB,SAAAH,EAAAA,IAAC,OAAA,CACC,iBAAe,UACf,GAAIhB,EAEHoB,SAAAA,EAAAA,aAAatB,CAAQ,CAAA,CACxB,CAAA,CACF,CAAA,CACF"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/controls/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { Children, cloneElement, isValidElement } from 'react';\n\nimport { Button, type ButtonProps } from '../button';\nimport styles from './styles.module.css';\n\nconst buttonVariantOrder = {\n primary: 3,\n danger: 2,\n default: 1,\n minimal: 0,\n} satisfies Record<NonNullable<ButtonProps['variant']>, number>;\n\nconst variants = {\n default: styles.default,\n fixed: styles.fixed,\n};\n\nexport type ControlsProps = React.HTMLAttributes<HTMLDivElement> & {\n children?: React.ReactNode;\n variant?: keyof typeof variants;\n};\n\nconst getButtonRank = (button: React.ReactElement<ButtonProps>) =>\n buttonVariantOrder[button.props.variant ?? 'default'];\n\nexport const Controls = ({ children, className, variant = 'default', ...props }: ControlsProps) => {\n const childArray = Children.toArray(children);\n const buttons: React.ReactElement<ButtonProps>[] = [];\n const nonButtons: React.ReactNode[] = [];\n\n childArray.forEach((child) => {\n if (isValidElement<ButtonProps>(child) && child.type === Button) {\n buttons.push(child);\n } else {\n nonButtons.push(child);\n }\n });\n\n const sortedButtons = buttons\n .map((button, index) => ({ button, index, rank: getButtonRank(button) }))\n .sort((a, b) => a.rank - b.rank || a.index - b.index)\n .map(({ button, index }) =>\n cloneElement(button, {\n key: button.key ?? index,\n })\n );\n\n if (childArray.length === 0) {\n return null;\n }\n\n return (\n <div\n className={cx(styles.controls, variants[variant], className)}\n {...props}\n >\n {nonButtons}\n {sortedButtons}\n </div>\n );\n};\n"],"names":["buttonVariantOrder","primary","danger","default","minimal","variants","styles","fixed","getButtonRank","button","props","variant","Controls","children","className","childArray","Children","toArray","buttons","nonButtons","forEach","child","isValidElement","type","Button","push","sortedButtons","map","index","rank","sort","a","b","cloneElement","key","length","jsxs","cx","controls"],"mappings":"+SAMMA,EAAqB,CACzBC,QAAS,EACTC,OAAQ,EACRC,QAAS,EACTC,QAAS,CACX,EAEMC,EAAW,CACfF,QAASG,EAAOH,QAChBI,MAAOD,EAAOC,KAChB,EAOMC,EAAiBC,GACrBT,EAAmBS,EAAOC,MAAMC,SAAW,SAAS,EAEzCC,EAAWA,CAAC,CAAEC,SAAAA,EAAUC,UAAAA,EAAWH,QAAAA,EAAU,UAAW,GAAGD,CAAqB,IAAM,CACjG,MAAMK,EAAaC,EAAAA,SAASC,QAAQJ,CAAQ,EACtCK,EAA6C,CAAA,EAC7CC,EAAgC,CAAA,EAEtCJ,EAAWK,QAASC,GAAU,CACxBC,EAAAA,eAA4BD,CAAK,GAAKA,EAAME,OAASC,EAAAA,OACvDN,EAAQO,KAAKJ,CAAK,EAElBF,EAAWM,KAAKJ,CAAK,CAEzB,CAAC,EAED,MAAMK,EAAgBR,EACnBS,IAAI,CAAClB,EAAQmB,KAAW,CAAEnB,OAAAA,EAAQmB,MAAAA,EAAOC,KAAMrB,EAAcC,CAAM,CAAA,EAAI,EACvEqB,KAAK,CAACC,EAAGC,IAAMD,EAAEF,KAAOG,EAAEH,MAAQE,EAAEH,MAAQI,EAAEJ,KAAK,EACnDD,IAAI,CAAC,CAAElB,OAAAA,EAAQmB,MAAAA,CAAAA,IACdK,EAAAA,aAAaxB,EAAQ,CACnByB,IAAKzB,EAAOyB,KAAON,CAAAA,CACpB,CACH,EAEF,OAAIb,EAAWoB,SAAW,EACjB,KAIPC,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,EAAG/B,EAAOgC,SAAUjC,EAASM,CAAO,EAAGG,CAAS,EAC3D,GAAIJ,EAAM,iBAAA,WAETS,SAAAA,CAAAA,EACAO,CAAAA,EACH,CAEJ"}
@@ -1,24 +1,45 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import { useEffect as c } from "react";
3
- import { w as p } from "../../helpers-D56OHkFI.js";
4
- import '../../assets/index12.css';const d = "_controls_1kzpr_15", i = "_wrapper_1kzpr_33", s = {
5
- controls: d,
6
- wrapper: i
7
- }, f = ({
8
- children: a,
9
- onSaveShortcut: e,
10
- ...n
11
- }) => (c(() => {
12
- if (!e)
13
- return;
14
- const o = (r) => {
15
- !(r.key.toLowerCase() === "s" && (r.metaKey || r.ctrlKey) && !r.altKey && !r.shiftKey) || r.defaultPrevented || r.repeat || (r.preventDefault(), e());
16
- };
17
- return document.addEventListener("keydown", o), () => {
18
- document.removeEventListener("keydown", o);
19
- };
20
- }, [e]), /* @__PURE__ */ t("div", { className: s.wrapper, "data-wrapper": !0, "data-component": "controls", children: /* @__PURE__ */ t("div", { className: s.controls, children: /* @__PURE__ */ t("menu", { "data-animation": "stagger", ...n, children: p(a) }) }) }));
1
+ import { jsxs as f } from "react/jsx-runtime";
2
+ import { t as m } from "../../classix-DG18itHa.js";
3
+ import { Children as u, isValidElement as p, cloneElement as k } from "react";
4
+ import { Button as x } from "../button/index.js";
5
+ import '../../assets/index12.css';const _ = "_controls_1kztc_13", y = "_fixed_1kztc_34", r = {
6
+ controls: _,
7
+ default: "_default_1kztc_20",
8
+ fixed: y
9
+ }, h = {
10
+ primary: 3,
11
+ danger: 2,
12
+ default: 1,
13
+ minimal: 0
14
+ }, B = {
15
+ default: r.default,
16
+ fixed: r.fixed
17
+ }, g = (o) => h[o.props.variant ?? "default"], C = ({
18
+ children: o,
19
+ className: l,
20
+ variant: c = "default",
21
+ ...i
22
+ }) => {
23
+ const e = u.toArray(o), s = [], a = [];
24
+ e.forEach((t) => {
25
+ p(t) && t.type === x ? s.push(t) : a.push(t);
26
+ });
27
+ const d = s.map((t, n) => ({
28
+ button: t,
29
+ index: n,
30
+ rank: g(t)
31
+ })).sort((t, n) => t.rank - n.rank || t.index - n.index).map(({
32
+ button: t,
33
+ index: n
34
+ }) => k(t, {
35
+ key: t.key ?? n
36
+ }));
37
+ return e.length === 0 ? null : /* @__PURE__ */ f("div", { className: m(r.controls, B[c], l), ...i, "data-component": "controls", children: [
38
+ a,
39
+ d
40
+ ] });
41
+ };
21
42
  export {
22
- f as Controls
43
+ C as Controls
23
44
  };
24
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/controls/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { wrapChildren } from '@/lib/helpers';\n\nimport styles from './styles.module.css';\n\nexport type ControlsProps = React.ComponentPropsWithoutRef<'menu'> & {\n onSaveShortcut?: () => void;\n};\n\nexport const Controls = ({ children, onSaveShortcut, ...props }: ControlsProps) => {\n useEffect(() => {\n if (!onSaveShortcut) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const isSaveShortcut =\n event.key.toLowerCase() === 's' &&\n (event.metaKey || event.ctrlKey) &&\n !event.altKey &&\n !event.shiftKey;\n\n if (!isSaveShortcut || event.defaultPrevented || event.repeat) {\n return;\n }\n\n event.preventDefault();\n onSaveShortcut();\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onSaveShortcut]);\n\n return (\n <div\n className={styles.wrapper}\n data-wrapper\n >\n <div className={styles.controls}>\n <menu\n data-animation='stagger'\n {...props}\n >\n {wrapChildren(children)}\n </menu>\n </div>\n </div>\n );\n};\n"],"names":["Controls","children","onSaveShortcut","props","useEffect","handleKeyDown","event","key","toLowerCase","metaKey","ctrlKey","altKey","shiftKey","defaultPrevented","repeat","preventDefault","document","addEventListener","removeEventListener","jsx","styles","wrapper","controls","wrapChildren"],"mappings":";;;;;;GAUaA,IAAWA,CAAC;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,gBAAAA;AAAAA,EAAgB,GAAGC;AAAqB,OAC3EC,EAAU,MAAM;AACd,MAAI,CAACF;AACH;AAGF,QAAMG,IAAgBA,CAACC,MAAyB;AAO9C,IAAI,EALFA,EAAMC,IAAIC,YAAAA,MAAkB,QAC3BF,EAAMG,WAAWH,EAAMI,YACxB,CAACJ,EAAMK,UACP,CAACL,EAAMM,aAEcN,EAAMO,oBAAoBP,EAAMQ,WAIvDR,EAAMS,eAAAA,GACNb,EAAAA;AAAAA,EACF;AAEAc,kBAASC,iBAAiB,WAAWZ,CAAa,GAE3C,MAAM;AACXW,aAASE,oBAAoB,WAAWb,CAAa;AAAA,EACvD;AACF,GAAG,CAACH,CAAc,CAAC,GAGjB,gBAAAiB,EAAC,OAAA,EACC,WAAWC,EAAOC,SAClB,gBAAY,IAAA,kBAAA,YAEZ,UAAA,gBAAAF,EAAC,OAAA,EAAI,WAAWC,EAAOE,UACrB,UAAA,gBAAAH,EAAC,QAAA,EACC,kBAAe,WACf,GAAIhB,GAEHoB,UAAAA,EAAatB,CAAQ,EAAA,CACxB,EAAA,CACF,EAAA,CACF;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/controls/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { Children, cloneElement, isValidElement } from 'react';\n\nimport { Button, type ButtonProps } from '../button';\nimport styles from './styles.module.css';\n\nconst buttonVariantOrder = {\n primary: 3,\n danger: 2,\n default: 1,\n minimal: 0,\n} satisfies Record<NonNullable<ButtonProps['variant']>, number>;\n\nconst variants = {\n default: styles.default,\n fixed: styles.fixed,\n};\n\nexport type ControlsProps = React.HTMLAttributes<HTMLDivElement> & {\n children?: React.ReactNode;\n variant?: keyof typeof variants;\n};\n\nconst getButtonRank = (button: React.ReactElement<ButtonProps>) =>\n buttonVariantOrder[button.props.variant ?? 'default'];\n\nexport const Controls = ({ children, className, variant = 'default', ...props }: ControlsProps) => {\n const childArray = Children.toArray(children);\n const buttons: React.ReactElement<ButtonProps>[] = [];\n const nonButtons: React.ReactNode[] = [];\n\n childArray.forEach((child) => {\n if (isValidElement<ButtonProps>(child) && child.type === Button) {\n buttons.push(child);\n } else {\n nonButtons.push(child);\n }\n });\n\n const sortedButtons = buttons\n .map((button, index) => ({ button, index, rank: getButtonRank(button) }))\n .sort((a, b) => a.rank - b.rank || a.index - b.index)\n .map(({ button, index }) =>\n cloneElement(button, {\n key: button.key ?? index,\n })\n );\n\n if (childArray.length === 0) {\n return null;\n }\n\n return (\n <div\n className={cx(styles.controls, variants[variant], className)}\n {...props}\n >\n {nonButtons}\n {sortedButtons}\n </div>\n );\n};\n"],"names":["buttonVariantOrder","primary","danger","default","minimal","variants","styles","fixed","getButtonRank","button","props","variant","Controls","children","className","childArray","Children","toArray","buttons","nonButtons","forEach","child","isValidElement","type","Button","push","sortedButtons","map","index","rank","sort","a","b","cloneElement","key","length","jsxs","cx","controls"],"mappings":";;;;;;;;GAMMA,IAAqB;AAAA,EACzBC,SAAS;AAAA,EACTC,QAAQ;AAAA,EACRC,SAAS;AAAA,EACTC,SAAS;AACX,GAEMC,IAAW;AAAA,EACfF,SAASG,EAAOH;AAAAA,EAChBI,OAAOD,EAAOC;AAChB,GAOMC,IAAgBA,CAACC,MACrBT,EAAmBS,EAAOC,MAAMC,WAAW,SAAS,GAEzCC,IAAWA,CAAC;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,WAAAA;AAAAA,EAAWH,SAAAA,IAAU;AAAA,EAAW,GAAGD;AAAqB,MAAM;AACjG,QAAMK,IAAaC,EAASC,QAAQJ,CAAQ,GACtCK,IAA6C,CAAA,GAC7CC,IAAgC,CAAA;AAEtCJ,EAAAA,EAAWK,QAASC,CAAAA,MAAU;AAC5B,IAAIC,EAA4BD,CAAK,KAAKA,EAAME,SAASC,IACvDN,EAAQO,KAAKJ,CAAK,IAElBF,EAAWM,KAAKJ,CAAK;AAAA,EAEzB,CAAC;AAED,QAAMK,IAAgBR,EACnBS,IAAI,CAAClB,GAAQmB,OAAW;AAAA,IAAEnB,QAAAA;AAAAA,IAAQmB,OAAAA;AAAAA,IAAOC,MAAMrB,EAAcC,CAAM;AAAA,EAAA,EAAI,EACvEqB,KAAK,CAACC,GAAGC,MAAMD,EAAEF,OAAOG,EAAEH,QAAQE,EAAEH,QAAQI,EAAEJ,KAAK,EACnDD,IAAI,CAAC;AAAA,IAAElB,QAAAA;AAAAA,IAAQmB,OAAAA;AAAAA,EAAAA,MACdK,EAAaxB,GAAQ;AAAA,IACnByB,KAAKzB,EAAOyB,OAAON;AAAAA,EAAAA,CACpB,CACH;AAEF,SAAIb,EAAWoB,WAAW,IACjB,OAIP,gBAAAC,EAAC,OAAA,EACC,WAAWC,EAAG/B,EAAOgC,UAAUjC,EAASM,CAAO,GAAGG,CAAS,GAC3D,GAAIJ,GAAM,kBAAA,YAETS,UAAAA;AAAAA,IAAAA;AAAAA,IACAO;AAAAA,EAAAA,GACH;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index37.css');const r=require("react/jsx-runtime"),o=require("../../classix-5H4IWnMA.cjs"),n=require("../../icons-o8Z5npPW.cjs"),l="_icon_1uucz_1",_="_small_1uucz_9",m="_medium_1uucz_14",d="_large_1uucz_19",g="_danger_1uucz_24",p="_primary_1uucz_32",y="_white_1uucz_36",e={icon:l,small:_,medium:m,large:d,danger:g,default:"_default_1uucz_28",primary:p,white:y,"gap-right":"_gap-right_1uucz_40","gap-left":"_gap-left_1uucz_44"},z={large:e.large,medium:e.medium,small:e.small},f={danger:e.danger,default:e.default,primary:e.primary,white:e.white},h=({fill:a,gap:t="none",name:c,size:s="medium",variant:u="default"})=>{const i={maskImage:n.iconSVG(c,a??!1)};return r.jsx("span",{"aria-hidden":"true",className:o.t(t!=="none"&&e[`gap-${t}`],z[s],e.icon,f[u]),style:i,"data-component":"icon"})},w=()=>Object.keys(n.iconPaths);exports.Icon=h;exports.Icons=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index37.css');const r=require("react/jsx-runtime"),o=require("../../classix-5H4IWnMA.cjs"),n=require("../../icons-s-lGsxio.cjs"),l="_icon_1uucz_1",_="_small_1uucz_9",m="_medium_1uucz_14",d="_large_1uucz_19",g="_danger_1uucz_24",p="_primary_1uucz_32",y="_white_1uucz_36",e={icon:l,small:_,medium:m,large:d,danger:g,default:"_default_1uucz_28",primary:p,white:y,"gap-right":"_gap-right_1uucz_40","gap-left":"_gap-left_1uucz_44"},z={large:e.large,medium:e.medium,small:e.small},f={danger:e.danger,default:e.default,primary:e.primary,white:e.white},h=({fill:a,gap:t="none",name:c,size:s="medium",variant:u="default"})=>{const i={maskImage:n.iconSVG(c,a??!1)};return r.jsx("span",{"aria-hidden":"true",className:o.t(t!=="none"&&e[`gap-${t}`],z[s],e.icon,f[u]),style:i,"data-component":"icon"})},w=()=>Object.keys(n.iconPaths);exports.Icon=h;exports.Icons=w;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { t as o } from "../../classix-DG18itHa.js";
3
- import { i as u, a as m } from "../../icons-06oXnjRF.js";
3
+ import { i as u, a as m } from "../../icons-D6XjzxSX.js";
4
4
  import '../../assets/index37.css';const _ = "_icon_1uucz_1", l = "_small_1uucz_9", d = "_medium_1uucz_14", g = "_large_1uucz_19", p = "_danger_1uucz_24", f = "_primary_1uucz_32", z = "_white_1uucz_36", a = {
5
5
  icon: _,
6
6
  small: l,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),y=require("../../classix-5H4IWnMA.cjs"),l=require("react"),P=require("../../icons-o8Z5npPW.cjs"),T=require("../../utils-DBzf7CFq.cjs"),s=require("../../styles.module-CitJm17A.cjs");function b({className:C,defaultCountryCode:h="+47",disabled:a=!1,icon:i,label:d,placeholder:m,ref:v,required:c,type:t="text",...e}){const[r,g]=l.useState(""),[o,x]=l.useState(""),{onChange:N,value:j,...q}=e,{touched:S,onBlur:p}=T.useTouched(j===""),f=i&&t!=="radio"&&t!=="datetime-local"?{"--icon-svg":P.iconSVG(i,!0)}:void 0;l.useEffect(()=>{if(typeof e.onChange=="function"&&t==="tel"){const u={name:e.name,value:o?(r||h).split(" ").join("")+o.split(" ").join(""):void 0};e.onChange({target:u,currentTarget:u})}},[r,o]),l.useEffect(()=>{t==="tel"&&!e.value&&(x(""),g(""))},[e.value,t]);const I=n.jsxs(n.Fragment,{children:[n.jsx("input",{disabled:a,hidden:!0,onChange:N,pattern:void 0,placeholder:m,ref:v,type:t,value:j}),n.jsx("input",{type:"text",className:s.inputStyles.input,disabled:a,maxLength:5,onChange:u=>g(u.target.value),placeholder:h,value:r}),n.jsx("input",{type:"tel",className:y.t(s.inputStyles.input,S&&s.inputStyles.touched),"data-icon":i?"true":void 0,disabled:a,maxLength:14,name:void 0,onChange:u=>x(u.target.value),onBlur:p,pattern:e.pattern,required:c,style:f,value:o,...q})]});return n.jsxs("label",{className:s.inputStyles.label,"data-component":"input",children:[d&&n.jsx("span",{"data-required":c||void 0,children:d}),t==="tel"?I:n.jsx("input",{ref:v,className:y.t(s.inputStyles.input,C,S&&s.inputStyles.touched),"data-icon":i?"true":void 0,disabled:a,onBlur:p,placeholder:m,required:c,style:f,type:t,...e})]})}exports.Input=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),y=require("../../classix-5H4IWnMA.cjs"),l=require("react"),P=require("../../icons-s-lGsxio.cjs"),T=require("../../utils-DBzf7CFq.cjs"),s=require("../../styles.module-CitJm17A.cjs");function b({className:C,defaultCountryCode:h="+47",disabled:a=!1,icon:i,label:d,placeholder:m,ref:v,required:c,type:t="text",...e}){const[r,g]=l.useState(""),[o,x]=l.useState(""),{onChange:N,value:j,...q}=e,{touched:S,onBlur:p}=T.useTouched(j===""),f=i&&t!=="radio"&&t!=="datetime-local"?{"--icon-svg":P.iconSVG(i,!0)}:void 0;l.useEffect(()=>{if(typeof e.onChange=="function"&&t==="tel"){const u={name:e.name,value:o?(r||h).split(" ").join("")+o.split(" ").join(""):void 0};e.onChange({target:u,currentTarget:u})}},[r,o]),l.useEffect(()=>{t==="tel"&&!e.value&&(x(""),g(""))},[e.value,t]);const I=n.jsxs(n.Fragment,{children:[n.jsx("input",{disabled:a,hidden:!0,onChange:N,pattern:void 0,placeholder:m,ref:v,type:t,value:j}),n.jsx("input",{type:"text",className:s.inputStyles.input,disabled:a,maxLength:5,onChange:u=>g(u.target.value),placeholder:h,value:r}),n.jsx("input",{type:"tel",className:y.t(s.inputStyles.input,S&&s.inputStyles.touched),"data-icon":i?"true":void 0,disabled:a,maxLength:14,name:void 0,onChange:u=>x(u.target.value),onBlur:p,pattern:e.pattern,required:c,style:f,value:o,...q})]});return n.jsxs("label",{className:s.inputStyles.label,"data-component":"input",children:[d&&n.jsx("span",{"data-required":c||void 0,children:d}),t==="tel"?I:n.jsx("input",{ref:v,className:y.t(s.inputStyles.input,C,S&&s.inputStyles.touched),"data-icon":i?"true":void 0,disabled:a,onBlur:p,placeholder:m,required:c,style:f,type:t,...e})]})}exports.Input=b;
2
2
  //# sourceMappingURL=index.cjs.map