@sudobility/entity-components 1.0.3 → 1.0.4

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.
package/dist/index.esm.js CHANGED
@@ -99,7 +99,7 @@ const tr = (e, o) => {
99
99
  }
100
100
  ur(e, o, r, t);
101
101
  }, dr = (e, o, r) => {
102
- const t = e === "" ? o : Ge(o, e);
102
+ const t = e === "" ? o : Oe(o, e);
103
103
  t.classGroupId = r;
104
104
  }, mr = (e, o, r, t) => {
105
105
  if (pr(e)) {
@@ -111,9 +111,9 @@ const tr = (e, o) => {
111
111
  const s = Object.entries(e), c = s.length;
112
112
  for (let n = 0; n < c; n++) {
113
113
  const [l, i] = s[n];
114
- fe(i, Ge(o, l), r, t);
114
+ fe(i, Oe(o, l), r, t);
115
115
  }
116
- }, Ge = (e, o) => {
116
+ }, Oe = (e, o) => {
117
117
  let r = e;
118
118
  const t = o.split(oe), s = t.length;
119
119
  for (let c = 0; c < s; c++) {
@@ -249,14 +249,14 @@ const tr = (e, o) => {
249
249
  }
250
250
  A = !1;
251
251
  }
252
- const Y = x.length === 0 ? "" : x.length === 1 ? x[0] : c(x).join(":"), D = N ? Y + me : Y, V = D + T;
253
- if (n.indexOf(V) > -1)
252
+ const Y = x.length === 0 ? "" : x.length === 1 ? x[0] : c(x).join(":"), W = N ? Y + me : Y, F = W + T;
253
+ if (n.indexOf(F) > -1)
254
254
  continue;
255
- n.push(V);
256
- const F = s(T, A);
257
- for (let G = 0; G < F.length; ++G) {
258
- const U = F[G];
259
- n.push(D + U);
255
+ n.push(F);
256
+ const L = s(T, A);
257
+ for (let O = 0; O < L.length; ++O) {
258
+ const U = L[O];
259
+ n.push(W + U);
260
260
  }
261
261
  i = f + (i.length > 0 ? " " + i : i);
262
262
  }
@@ -264,14 +264,14 @@ const tr = (e, o) => {
264
264
  }, vr = (...e) => {
265
265
  let o = 0, r, t, s = "";
266
266
  for (; o < e.length; )
267
- (r = e[o++]) && (t = je(r)) && (s && (s += " "), s += t);
267
+ (r = e[o++]) && (t = Ge(r)) && (s && (s += " "), s += t);
268
268
  return s;
269
- }, je = (e) => {
269
+ }, Ge = (e) => {
270
270
  if (typeof e == "string")
271
271
  return e;
272
272
  let o, r = "";
273
273
  for (let t = 0; t < e.length; t++)
274
- e[t] && (o = je(e[t])) && (r && (r += " "), r += o);
274
+ e[t] && (o = Ge(e[t])) && (r && (r += " "), r += o);
275
275
  return r;
276
276
  }, kr = (e, ...o) => {
277
277
  let r, t, s, c;
@@ -289,19 +289,19 @@ const tr = (e, o) => {
289
289
  }, Nr = [], C = (e) => {
290
290
  const o = (r) => r[e] || Nr;
291
291
  return o.isThemeGetter = !0, o;
292
- }, Oe = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, Ve = /^\((?:(\w[\w-]*):)?(.+)\)$/i, Cr = /^\d+\/\d+$/, zr = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Sr = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, Ar = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, Ir = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Rr = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, B = (e) => Cr.test(e), b = (e) => !!e && !Number.isNaN(Number(e)), P = (e) => !!e && Number.isInteger(Number(e)), ie = (e) => e.endsWith("%") && b(e.slice(0, -1)), E = (e) => zr.test(e), Mr = () => !0, Er = (e) => (
292
+ }, je = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, Fe = /^\((?:(\w[\w-]*):)?(.+)\)$/i, Cr = /^\d+\/\d+$/, zr = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Sr = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, Ar = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, Ir = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Rr = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, V = (e) => Cr.test(e), b = (e) => !!e && !Number.isNaN(Number(e)), P = (e) => !!e && Number.isInteger(Number(e)), ie = (e) => e.endsWith("%") && b(e.slice(0, -1)), E = (e) => zr.test(e), Mr = () => !0, Er = (e) => (
293
293
  // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
294
294
  // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
295
295
  // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
296
296
  Sr.test(e) && !Ar.test(e)
297
- ), Fe = () => !1, Pr = (e) => Ir.test(e), Tr = (e) => Rr.test(e), Gr = (e) => !d(e) && !m(e), jr = (e) => _(e, _e, Fe), d = (e) => Oe.test(e), O = (e) => _(e, We, Er), ce = (e) => _(e, Br, b), Se = (e) => _(e, Le, Fe), Or = (e) => _(e, Be, Tr), Z = (e) => _(e, De, Pr), m = (e) => Ve.test(e), $ = (e) => W(e, We), Vr = (e) => W(e, _r), Ae = (e) => W(e, Le), Fr = (e) => W(e, _e), Lr = (e) => W(e, Be), ee = (e) => W(e, De, !0), _ = (e, o, r) => {
298
- const t = Oe.exec(e);
297
+ ), Le = () => !1, Pr = (e) => Ir.test(e), Tr = (e) => Rr.test(e), Or = (e) => !d(e) && !m(e), Gr = (e) => _(e, _e, Le), d = (e) => je.test(e), j = (e) => _(e, De, Er), ce = (e) => _(e, Vr, b), Se = (e) => _(e, Be, Le), jr = (e) => _(e, Ve, Tr), Z = (e) => _(e, We, Pr), m = (e) => Fe.test(e), $ = (e) => D(e, De), Fr = (e) => D(e, _r), Ae = (e) => D(e, Be), Lr = (e) => D(e, _e), Br = (e) => D(e, Ve), ee = (e) => D(e, We, !0), _ = (e, o, r) => {
298
+ const t = je.exec(e);
299
299
  return t ? t[1] ? o(t[1]) : r(t[2]) : !1;
300
- }, W = (e, o, r = !1) => {
301
- const t = Ve.exec(e);
300
+ }, D = (e, o, r = !1) => {
301
+ const t = Fe.exec(e);
302
302
  return t ? t[1] ? o(t[1]) : r : !1;
303
- }, Le = (e) => e === "position" || e === "percentage", Be = (e) => e === "image" || e === "url", _e = (e) => e === "length" || e === "size" || e === "bg-size", We = (e) => e === "length", Br = (e) => e === "number", _r = (e) => e === "family-name", De = (e) => e === "shadow", Wr = () => {
304
- const e = C("color"), o = C("font"), r = C("text"), t = C("font-weight"), s = C("tracking"), c = C("leading"), n = C("breakpoint"), l = C("container"), i = C("spacing"), u = C("radius"), f = C("shadow"), k = C("inset-shadow"), x = C("text-shadow"), N = C("drop-shadow"), y = C("blur"), v = C("perspective"), A = C("aspect"), T = C("ease"), Y = C("animate"), D = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], V = () => [
303
+ }, Be = (e) => e === "position" || e === "percentage", Ve = (e) => e === "image" || e === "url", _e = (e) => e === "length" || e === "size" || e === "bg-size", De = (e) => e === "length", Vr = (e) => e === "number", _r = (e) => e === "family-name", We = (e) => e === "shadow", Dr = () => {
304
+ const e = C("color"), o = C("font"), r = C("text"), t = C("font-weight"), s = C("tracking"), c = C("leading"), n = C("breakpoint"), l = C("container"), i = C("spacing"), u = C("radius"), f = C("shadow"), k = C("inset-shadow"), x = C("text-shadow"), N = C("drop-shadow"), y = C("blur"), v = C("perspective"), A = C("aspect"), T = C("ease"), Y = C("animate"), W = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], F = () => [
305
305
  "center",
306
306
  "top",
307
307
  "bottom",
@@ -319,15 +319,15 @@ const tr = (e, o) => {
319
319
  "bottom-left",
320
320
  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
321
321
  "left-bottom"
322
- ], F = () => [...V(), m, d], G = () => ["auto", "hidden", "clip", "visible", "scroll"], U = () => ["auto", "contain", "none"], g = () => [m, d, i], R = () => [B, "full", "auto", ...g()], ge = () => [P, "none", "subgrid", m, d], be = () => ["auto", {
322
+ ], L = () => [...F(), m, d], O = () => ["auto", "hidden", "clip", "visible", "scroll"], U = () => ["auto", "contain", "none"], g = () => [m, d, i], R = () => [V, "full", "auto", ...g()], ge = () => [P, "none", "subgrid", m, d], be = () => ["auto", {
323
323
  span: ["full", P, m, d]
324
- }, P, m, d], q = () => [P, "auto", m, d], he = () => ["auto", "min", "max", "fr", m, d], ne = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], L = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], M = () => ["auto", ...g()], j = () => [B, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...g()], p = () => [e, m, d], xe = () => [...V(), Ae, Se, {
324
+ }, P, m, d], q = () => [P, "auto", m, d], he = () => ["auto", "min", "max", "fr", m, d], ne = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], B = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], M = () => ["auto", ...g()], G = () => [V, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...g()], p = () => [e, m, d], xe = () => [...F(), Ae, Se, {
325
325
  position: [m, d]
326
326
  }], ye = () => ["no-repeat", {
327
327
  repeat: ["", "x", "y", "space", "round"]
328
- }], we = () => ["auto", "cover", "contain", Fr, jr, {
328
+ }], we = () => ["auto", "cover", "contain", Lr, Gr, {
329
329
  size: [m, d]
330
- }], ae = () => [ie, $, O], S = () => [
330
+ }], ae = () => [ie, $, j], S = () => [
331
331
  // Deprecated since Tailwind CSS v4.0.0
332
332
  "",
333
333
  "none",
@@ -335,14 +335,14 @@ const tr = (e, o) => {
335
335
  u,
336
336
  m,
337
337
  d
338
- ], I = () => ["", b, $, O], J = () => ["solid", "dashed", "dotted", "double"], ve = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], z = () => [b, ie, Ae, Se], ke = () => [
338
+ ], I = () => ["", b, $, j], J = () => ["solid", "dashed", "dotted", "double"], ve = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], z = () => [b, ie, Ae, Se], ke = () => [
339
339
  // Deprecated since Tailwind CSS v4.0.0
340
340
  "",
341
341
  "none",
342
342
  y,
343
343
  m,
344
344
  d
345
- ], H = () => ["none", b, m, d], K = () => ["none", b, m, d], le = () => [b, m, d], Q = () => [B, "full", ...g()];
345
+ ], H = () => ["none", b, m, d], K = () => ["none", b, m, d], le = () => [b, m, d], Q = () => [V, "full", ...g()];
346
346
  return {
347
347
  cacheSize: 500,
348
348
  theme: {
@@ -354,7 +354,7 @@ const tr = (e, o) => {
354
354
  container: [E],
355
355
  "drop-shadow": [E],
356
356
  ease: ["in", "out", "in-out"],
357
- font: [Gr],
357
+ font: [Or],
358
358
  "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
359
359
  "inset-shadow": [E],
360
360
  leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
@@ -375,7 +375,7 @@ const tr = (e, o) => {
375
375
  * @see https://tailwindcss.com/docs/aspect-ratio
376
376
  */
377
377
  aspect: [{
378
- aspect: ["auto", "square", B, d, m, A]
378
+ aspect: ["auto", "square", V, d, m, A]
379
379
  }],
380
380
  /**
381
381
  * Container
@@ -395,14 +395,14 @@ const tr = (e, o) => {
395
395
  * @see https://tailwindcss.com/docs/break-after
396
396
  */
397
397
  "break-after": [{
398
- "break-after": D()
398
+ "break-after": W()
399
399
  }],
400
400
  /**
401
401
  * Break Before
402
402
  * @see https://tailwindcss.com/docs/break-before
403
403
  */
404
404
  "break-before": [{
405
- "break-before": D()
405
+ "break-before": W()
406
406
  }],
407
407
  /**
408
408
  * Break Inside
@@ -466,28 +466,28 @@ const tr = (e, o) => {
466
466
  * @see https://tailwindcss.com/docs/object-position
467
467
  */
468
468
  "object-position": [{
469
- object: F()
469
+ object: L()
470
470
  }],
471
471
  /**
472
472
  * Overflow
473
473
  * @see https://tailwindcss.com/docs/overflow
474
474
  */
475
475
  overflow: [{
476
- overflow: G()
476
+ overflow: O()
477
477
  }],
478
478
  /**
479
479
  * Overflow X
480
480
  * @see https://tailwindcss.com/docs/overflow
481
481
  */
482
482
  "overflow-x": [{
483
- "overflow-x": G()
483
+ "overflow-x": O()
484
484
  }],
485
485
  /**
486
486
  * Overflow Y
487
487
  * @see https://tailwindcss.com/docs/overflow
488
488
  */
489
489
  "overflow-y": [{
490
- "overflow-y": G()
490
+ "overflow-y": O()
491
491
  }],
492
492
  /**
493
493
  * Overscroll Behavior
@@ -598,7 +598,7 @@ const tr = (e, o) => {
598
598
  * @see https://tailwindcss.com/docs/flex-basis
599
599
  */
600
600
  basis: [{
601
- basis: [B, "full", "auto", l, ...g()]
601
+ basis: [V, "full", "auto", l, ...g()]
602
602
  }],
603
603
  /**
604
604
  * Flex Direction
@@ -619,7 +619,7 @@ const tr = (e, o) => {
619
619
  * @see https://tailwindcss.com/docs/flex
620
620
  */
621
621
  flex: [{
622
- flex: [b, B, "auto", "initial", "none", d]
622
+ flex: [b, V, "auto", "initial", "none", d]
623
623
  }],
624
624
  /**
625
625
  * Flex Grow
@@ -752,14 +752,14 @@ const tr = (e, o) => {
752
752
  * @see https://tailwindcss.com/docs/justify-items
753
753
  */
754
754
  "justify-items": [{
755
- "justify-items": [...L(), "normal"]
755
+ "justify-items": [...B(), "normal"]
756
756
  }],
757
757
  /**
758
758
  * Justify Self
759
759
  * @see https://tailwindcss.com/docs/justify-self
760
760
  */
761
761
  "justify-self": [{
762
- "justify-self": ["auto", ...L()]
762
+ "justify-self": ["auto", ...B()]
763
763
  }],
764
764
  /**
765
765
  * Align Content
@@ -773,7 +773,7 @@ const tr = (e, o) => {
773
773
  * @see https://tailwindcss.com/docs/align-items
774
774
  */
775
775
  "align-items": [{
776
- items: [...L(), {
776
+ items: [...B(), {
777
777
  baseline: ["", "last"]
778
778
  }]
779
779
  }],
@@ -782,7 +782,7 @@ const tr = (e, o) => {
782
782
  * @see https://tailwindcss.com/docs/align-self
783
783
  */
784
784
  "align-self": [{
785
- self: ["auto", ...L(), {
785
+ self: ["auto", ...B(), {
786
786
  baseline: ["", "last"]
787
787
  }]
788
788
  }],
@@ -798,14 +798,14 @@ const tr = (e, o) => {
798
798
  * @see https://tailwindcss.com/docs/place-items
799
799
  */
800
800
  "place-items": [{
801
- "place-items": [...L(), "baseline"]
801
+ "place-items": [...B(), "baseline"]
802
802
  }],
803
803
  /**
804
804
  * Place Self
805
805
  * @see https://tailwindcss.com/docs/place-self
806
806
  */
807
807
  "place-self": [{
808
- "place-self": ["auto", ...L()]
808
+ "place-self": ["auto", ...B()]
809
809
  }],
810
810
  // Spacing
811
811
  /**
@@ -966,14 +966,14 @@ const tr = (e, o) => {
966
966
  * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
967
967
  */
968
968
  size: [{
969
- size: j()
969
+ size: G()
970
970
  }],
971
971
  /**
972
972
  * Width
973
973
  * @see https://tailwindcss.com/docs/width
974
974
  */
975
975
  w: [{
976
- w: [l, "screen", ...j()]
976
+ w: [l, "screen", ...G()]
977
977
  }],
978
978
  /**
979
979
  * Min-Width
@@ -985,7 +985,7 @@ const tr = (e, o) => {
985
985
  "screen",
986
986
  /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
987
987
  "none",
988
- ...j()
988
+ ...G()
989
989
  ]
990
990
  }],
991
991
  /**
@@ -1003,7 +1003,7 @@ const tr = (e, o) => {
1003
1003
  {
1004
1004
  screen: [n]
1005
1005
  },
1006
- ...j()
1006
+ ...G()
1007
1007
  ]
1008
1008
  }],
1009
1009
  /**
@@ -1011,21 +1011,21 @@ const tr = (e, o) => {
1011
1011
  * @see https://tailwindcss.com/docs/height
1012
1012
  */
1013
1013
  h: [{
1014
- h: ["screen", "lh", ...j()]
1014
+ h: ["screen", "lh", ...G()]
1015
1015
  }],
1016
1016
  /**
1017
1017
  * Min-Height
1018
1018
  * @see https://tailwindcss.com/docs/min-height
1019
1019
  */
1020
1020
  "min-h": [{
1021
- "min-h": ["screen", "lh", "none", ...j()]
1021
+ "min-h": ["screen", "lh", "none", ...G()]
1022
1022
  }],
1023
1023
  /**
1024
1024
  * Max-Height
1025
1025
  * @see https://tailwindcss.com/docs/max-height
1026
1026
  */
1027
1027
  "max-h": [{
1028
- "max-h": ["screen", "lh", ...j()]
1028
+ "max-h": ["screen", "lh", ...G()]
1029
1029
  }],
1030
1030
  // ------------------
1031
1031
  // --- Typography ---
@@ -1035,7 +1035,7 @@ const tr = (e, o) => {
1035
1035
  * @see https://tailwindcss.com/docs/font-size
1036
1036
  */
1037
1037
  "font-size": [{
1038
- text: ["base", r, $, O]
1038
+ text: ["base", r, $, j]
1039
1039
  }],
1040
1040
  /**
1041
1041
  * Font Smoothing
@@ -1066,7 +1066,7 @@ const tr = (e, o) => {
1066
1066
  * @see https://tailwindcss.com/docs/font-family
1067
1067
  */
1068
1068
  "font-family": [{
1069
- font: [Vr, d, o]
1069
+ font: [Fr, d, o]
1070
1070
  }],
1071
1071
  /**
1072
1072
  * Font Variant Numeric
@@ -1183,7 +1183,7 @@ const tr = (e, o) => {
1183
1183
  * @see https://tailwindcss.com/docs/text-decoration-thickness
1184
1184
  */
1185
1185
  "text-decoration-thickness": [{
1186
- decoration: [b, "from-font", "auto", m, O]
1186
+ decoration: [b, "from-font", "auto", m, j]
1187
1187
  }],
1188
1188
  /**
1189
1189
  * Text Decoration Color
@@ -1321,7 +1321,7 @@ const tr = (e, o) => {
1321
1321
  }, P, m, d],
1322
1322
  radial: ["", m, d],
1323
1323
  conic: [P, m, d]
1324
- }, Lr, Or]
1324
+ }, Br, jr]
1325
1325
  }],
1326
1326
  /**
1327
1327
  * Background Color
@@ -1670,7 +1670,7 @@ const tr = (e, o) => {
1670
1670
  * @see https://tailwindcss.com/docs/outline-width
1671
1671
  */
1672
1672
  "outline-w": [{
1673
- outline: ["", b, $, O]
1673
+ outline: ["", b, $, j]
1674
1674
  }],
1675
1675
  /**
1676
1676
  * Outline Color
@@ -1745,7 +1745,7 @@ const tr = (e, o) => {
1745
1745
  * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1746
1746
  */
1747
1747
  "ring-offset-w": [{
1748
- "ring-offset": [b, O]
1748
+ "ring-offset": [b, j]
1749
1749
  }],
1750
1750
  /**
1751
1751
  * Ring Offset Color
@@ -1935,7 +1935,7 @@ const tr = (e, o) => {
1935
1935
  }]
1936
1936
  }],
1937
1937
  "mask-image-radial-pos": [{
1938
- "mask-radial-at": V()
1938
+ "mask-radial-at": F()
1939
1939
  }],
1940
1940
  "mask-image-conic-pos": [{
1941
1941
  "mask-conic": [b]
@@ -2282,7 +2282,7 @@ const tr = (e, o) => {
2282
2282
  * @see https://tailwindcss.com/docs/perspective-origin
2283
2283
  */
2284
2284
  "perspective-origin": [{
2285
- "perspective-origin": F()
2285
+ "perspective-origin": L()
2286
2286
  }],
2287
2287
  /**
2288
2288
  * Rotate
@@ -2378,7 +2378,7 @@ const tr = (e, o) => {
2378
2378
  * @see https://tailwindcss.com/docs/transform-origin
2379
2379
  */
2380
2380
  "transform-origin": [{
2381
- origin: F()
2381
+ origin: L()
2382
2382
  }],
2383
2383
  /**
2384
2384
  * Transform Style
@@ -2695,7 +2695,7 @@ const tr = (e, o) => {
2695
2695
  * @see https://tailwindcss.com/docs/stroke-width
2696
2696
  */
2697
2697
  "stroke-w": [{
2698
- stroke: [b, $, O, ce]
2698
+ stroke: [b, $, j, ce]
2699
2699
  }],
2700
2700
  /**
2701
2701
  * Stroke
@@ -2770,14 +2770,14 @@ const tr = (e, o) => {
2770
2770
  },
2771
2771
  orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
2772
2772
  };
2773
- }, Dr = /* @__PURE__ */ kr(Wr);
2773
+ }, Wr = /* @__PURE__ */ kr(Dr);
2774
2774
  function h(...e) {
2775
- return Dr(rr(e));
2775
+ return Wr(rr(e));
2776
2776
  }
2777
2777
  const Ur = {
2778
- admin: "bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",
2779
- manager: "bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",
2780
- viewer: "bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"
2778
+ owner: "bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",
2779
+ admin: "bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",
2780
+ member: "bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"
2781
2781
  };
2782
2782
  function $r({
2783
2783
  entity: e,
@@ -3023,22 +3023,22 @@ function Ie({ entity: e, isSelected: o, onClick: r }) {
3023
3023
  }
3024
3024
  const de = [
3025
3025
  {
3026
- value: te.ADMIN,
3027
- label: "Admin",
3026
+ value: te.OWNER,
3027
+ label: "Owner",
3028
3028
  description: "Full access to all settings and members",
3029
3029
  icon: Xe,
3030
3030
  color: "text-purple-600 dark:text-purple-400"
3031
3031
  },
3032
3032
  {
3033
- value: te.MANAGER,
3034
- label: "Manager",
3033
+ value: te.ADMIN,
3034
+ label: "Admin",
3035
3035
  description: "Can manage projects and API keys",
3036
3036
  icon: Ye,
3037
3037
  color: "text-blue-600 dark:text-blue-400"
3038
3038
  },
3039
3039
  {
3040
- value: te.VIEWER,
3041
- label: "Viewer",
3040
+ value: te.MEMBER,
3041
+ label: "Member",
3042
3042
  description: "Read-only access",
3043
3043
  icon: qe,
3044
3044
  color: "text-gray-600 dark:text-gray-400"
@@ -3130,9 +3130,9 @@ function Ue({
3130
3130
  ] });
3131
3131
  }
3132
3132
  const Xr = {
3133
- admin: "bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",
3134
- manager: "bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",
3135
- viewer: "bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"
3133
+ owner: "bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",
3134
+ admin: "bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",
3135
+ member: "bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"
3136
3136
  };
3137
3137
  function ot({
3138
3138
  members: e,
@@ -3225,7 +3225,7 @@ function Yr({
3225
3225
  function st({
3226
3226
  onSubmit: e,
3227
3227
  isSubmitting: o = !1,
3228
- defaultRole: r = te.VIEWER,
3228
+ defaultRole: r = te.MEMBER,
3229
3229
  className: t,
3230
3230
  onTrack: s,
3231
3231
  trackingLabel: c,
@@ -3303,9 +3303,9 @@ function qr(e) {
3303
3303
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);
3304
3304
  }
3305
3305
  const Jr = {
3306
- admin: "bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",
3307
- manager: "bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",
3308
- viewer: "bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"
3306
+ owner: "bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",
3307
+ admin: "bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",
3308
+ member: "bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"
3309
3309
  };
3310
3310
  function nt({
3311
3311
  invitations: e,
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(S,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react/jsx-runtime"),require("lucide-react"),require("react"),require("@sudobility/types")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","lucide-react","react","@sudobility/types"],r):(S=typeof globalThis<"u"?globalThis:S||self,r(S.EntityComponents={},S.ReactJSXRuntime,S.LucideReact,S.React,S.SudobilityTypes))})(this,(function(S,r,v,$,J){"use strict";function ue(e){var s,o,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(s=0;s<n;s++)e[s]&&(o=ue(e[s]))&&(t&&(t+=" "),t+=o)}else for(o in e)e[o]&&(t&&(t+=" "),t+=o);return t}function Ue(){for(var e,s,o=0,t="",n=arguments.length;o<n;o++)(e=arguments[o])&&(s=ue(e))&&(t&&(t+=" "),t+=s);return t}const _e=(e,s)=>{const o=new Array(e.length+s.length);for(let t=0;t<e.length;t++)o[t]=e[t];for(let t=0;t<s.length;t++)o[e.length+t]=s[t];return o},We=(e,s)=>({classGroupId:e,validator:s}),fe=(e=new Map,s=null,o)=>({nextPart:e,validators:s,classGroupId:o}),H="-",ge=[],$e="arbitrary..",qe=e=>{const s=Ye(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return Xe(a);const l=a.split(H),i=l[0]===""&&l.length>1?1:0;return be(l,i,s)},getConflictingClassGroupIds:(a,l)=>{if(l){const i=t[a],m=o[a];return i?m?_e(m,i):i:m||ge}return o[a]||ge}}},be=(e,s,o)=>{if(e.length-s===0)return o.classGroupId;const n=e[s],c=o.nextPart.get(n);if(c){const m=be(e,s+1,c);if(m)return m}const a=o.validators;if(a===null)return;const l=s===0?e.join(H):e.slice(s).join(H),i=a.length;for(let m=0;m<i;m++){const f=a[m];if(f.validator(l))return f.classGroupId}},Xe=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const s=e.slice(1,-1),o=s.indexOf(":"),t=s.slice(0,o);return t?$e+t:void 0})(),Ye=e=>{const{theme:s,classGroups:o}=e;return Je(o,s)},Je=(e,s)=>{const o=fe();for(const t in e){const n=e[t];se(n,o,t,s)}return o},se=(e,s,o,t)=>{const n=e.length;for(let c=0;c<n;c++){const a=e[c];He(a,s,o,t)}},He=(e,s,o,t)=>{if(typeof e=="string"){Ke(e,s,o);return}if(typeof e=="function"){Qe(e,s,o,t);return}Ze(e,s,o,t)},Ke=(e,s,o)=>{const t=e===""?s:he(s,e);t.classGroupId=o},Qe=(e,s,o,t)=>{if(Re(e)){se(e(t),s,o,t);return}s.validators===null&&(s.validators=[]),s.validators.push(We(o,e))},Ze=(e,s,o,t)=>{const n=Object.entries(e),c=n.length;for(let a=0;a<c;a++){const[l,i]=n[a];se(i,he(s,l),o,t)}},he=(e,s)=>{let o=e;const t=s.split(H),n=t.length;for(let c=0;c<n;c++){const a=t[c];let l=o.nextPart.get(a);l||(l=fe(),o.nextPart.set(a,l)),o=l}return o},Re=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,er=e=>{if(e<1)return{get:()=>{},set:()=>{}};let s=0,o=Object.create(null),t=Object.create(null);const n=(c,a)=>{o[c]=a,s++,s>e&&(s=0,t=o,o=Object.create(null))};return{get(c){let a=o[c];if(a!==void 0)return a;if((a=t[c])!==void 0)return n(c,a),a},set(c,a){c in o?o[c]=a:n(c,a)}}},ne="!",xe=":",rr=[],ye=(e,s,o,t,n)=>({modifiers:e,hasImportantModifier:s,baseClassName:o,maybePostfixModifierPosition:t,isExternal:n}),or=e=>{const{prefix:s,experimentalParseClassName:o}=e;let t=n=>{const c=[];let a=0,l=0,i=0,m;const f=n.length;for(let w=0;w<f;w++){const I=n[w];if(a===0&&l===0){if(I===xe){c.push(n.slice(i,w)),i=w+1;continue}if(I==="/"){m=w;continue}}I==="["?a++:I==="]"?a--:I==="("?l++:I===")"&&l--}const k=c.length===0?n:n.slice(i);let x=k,N=!1;k.endsWith(ne)?(x=k.slice(0,-1),N=!0):k.startsWith(ne)&&(x=k.slice(1),N=!0);const y=m&&m>i?m-i:void 0;return ye(c,N,x,y)};if(s){const n=s+xe,c=t;t=a=>a.startsWith(n)?c(a.slice(n.length)):ye(rr,!1,a,void 0,!0)}if(o){const n=t;t=c=>o({className:c,parseClassName:n})}return t},tr=e=>{const s=new Map;return e.orderSensitiveModifiers.forEach((o,t)=>{s.set(o,1e6+t)}),o=>{const t=[];let n=[];for(let c=0;c<o.length;c++){const a=o[c],l=a[0]==="[",i=s.has(a);l||i?(n.length>0&&(n.sort(),t.push(...n),n=[]),t.push(a)):n.push(a)}return n.length>0&&(n.sort(),t.push(...n)),t}},sr=e=>({cache:er(e.cacheSize),parseClassName:or(e),sortModifiers:tr(e),...qe(e)}),nr=/\s+/,ar=(e,s)=>{const{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:n,sortModifiers:c}=s,a=[],l=e.trim().split(nr);let i="";for(let m=l.length-1;m>=0;m-=1){const f=l[m],{isExternal:k,modifiers:x,hasImportantModifier:N,baseClassName:y,maybePostfixModifierPosition:w}=o(f);if(k){i=f+(i.length>0?" "+i:i);continue}let I=!!w,j=t(I?y.substring(0,w):y);if(!j){if(!I){i=f+(i.length>0?" "+i:i);continue}if(j=t(y),!j){i=f+(i.length>0?" "+i:i);continue}I=!1}const Z=x.length===0?"":x.length===1?x[0]:c(x).join(":"),X=N?Z+ne:Z,U=X+j;if(a.indexOf(U)>-1)continue;a.push(U);const _=n(j,I);for(let F=0;F<_.length;++F){const Y=_[F];a.push(X+Y)}i=f+(i.length>0?" "+i:i)}return i},lr=(...e)=>{let s=0,o,t,n="";for(;s<e.length;)(o=e[s++])&&(t=we(o))&&(n&&(n+=" "),n+=t);return n},we=e=>{if(typeof e=="string")return e;let s,o="";for(let t=0;t<e.length;t++)e[t]&&(s=we(e[t]))&&(o&&(o+=" "),o+=s);return o},ir=(e,...s)=>{let o,t,n,c;const a=i=>{const m=s.reduce((f,k)=>k(f),e());return o=sr(m),t=o.cache.get,n=o.cache.set,c=l,l(i)},l=i=>{const m=t(i);if(m)return m;const f=ar(i,o);return n(i,f),f};return c=a,(...i)=>c(lr(...i))},cr=[],C=e=>{const s=o=>o[e]||cr;return s.isThemeGetter=!0,s},ve=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ke=/^\((?:(\w[\w-]*):)?(.+)\)$/i,dr=/^\d+\/\d+$/,pr=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,mr=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ur=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,fr=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,gr=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=e=>dr.test(e),b=e=>!!e&&!Number.isNaN(Number(e)),G=e=>!!e&&Number.isInteger(Number(e)),ae=e=>e.endsWith("%")&&b(e.slice(0,-1)),E=e=>pr.test(e),br=()=>!0,hr=e=>mr.test(e)&&!ur.test(e),Ne=()=>!1,xr=e=>fr.test(e),yr=e=>gr.test(e),wr=e=>!d(e)&&!p(e),vr=e=>B(e,Ie,Ne),d=e=>ve.test(e),O=e=>B(e,Me,hr),le=e=>B(e,Sr,b),Ce=e=>B(e,Se,Ne),kr=e=>B(e,Ae,yr),K=e=>B(e,Ee,xr),p=e=>ke.test(e),q=e=>D(e,Me),Nr=e=>D(e,Ar),ze=e=>D(e,Se),Cr=e=>D(e,Ie),zr=e=>D(e,Ae),Q=e=>D(e,Ee,!0),B=(e,s,o)=>{const t=ve.exec(e);return t?t[1]?s(t[1]):o(t[2]):!1},D=(e,s,o=!1)=>{const t=ke.exec(e);return t?t[1]?s(t[1]):o:!1},Se=e=>e==="position"||e==="percentage",Ae=e=>e==="image"||e==="url",Ie=e=>e==="length"||e==="size"||e==="bg-size",Me=e=>e==="length",Sr=e=>e==="number",Ar=e=>e==="family-name",Ee=e=>e==="shadow",Ir=ir(()=>{const e=C("color"),s=C("font"),o=C("text"),t=C("font-weight"),n=C("tracking"),c=C("leading"),a=C("breakpoint"),l=C("container"),i=C("spacing"),m=C("radius"),f=C("shadow"),k=C("inset-shadow"),x=C("text-shadow"),N=C("drop-shadow"),y=C("blur"),w=C("perspective"),I=C("aspect"),j=C("ease"),Z=C("animate"),X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],U=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],_=()=>[...U(),p,d],F=()=>["auto","hidden","clip","visible","scroll"],Y=()=>["auto","contain","none"],g=()=>[p,d,i],P=()=>[V,"full","auto",...g()],Ge=()=>[G,"none","subgrid",p,d],Oe=()=>["auto",{span:["full",G,p,d]},G,p,d],R=()=>[G,"auto",p,d],je=()=>["auto","min","max","fr",p,d],de=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],W=()=>["start","end","center","stretch","center-safe","end-safe"],T=()=>["auto",...g()],L=()=>[V,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...g()],u=()=>[e,p,d],Fe=()=>[...U(),ze,Ce,{position:[p,d]}],Le=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Ve=()=>["auto","cover","contain",Cr,vr,{size:[p,d]}],pe=()=>[ae,q,O],A=()=>["","none","full",m,p,d],M=()=>["",b,q,O],ee=()=>["solid","dashed","dotted","double"],Be=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],z=()=>[b,ae,ze,Ce],De=()=>["","none",y,p,d],re=()=>["none",b,p,d],oe=()=>["none",b,p,d],me=()=>[b,p,d],te=()=>[V,"full",...g()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[E],breakpoint:[E],color:[br],container:[E],"drop-shadow":[E],ease:["in","out","in-out"],font:[wr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[E],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[E],shadow:[E],spacing:["px",b],text:[E],"text-shadow":[E],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",V,d,p,I]}],container:["container"],columns:[{columns:[b,d,p,l]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:_()}],overflow:[{overflow:F()}],"overflow-x":[{"overflow-x":F()}],"overflow-y":[{"overflow-y":F()}],overscroll:[{overscroll:Y()}],"overscroll-x":[{"overscroll-x":Y()}],"overscroll-y":[{"overscroll-y":Y()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{start:P()}],end:[{end:P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[G,"auto",p,d]}],basis:[{basis:[V,"full","auto",l,...g()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[b,V,"auto","initial","none",d]}],grow:[{grow:["",b,p,d]}],shrink:[{shrink:["",b,p,d]}],order:[{order:[G,"first","last","none",p,d]}],"grid-cols":[{"grid-cols":Ge()}],"col-start-end":[{col:Oe()}],"col-start":[{"col-start":R()}],"col-end":[{"col-end":R()}],"grid-rows":[{"grid-rows":Ge()}],"row-start-end":[{row:Oe()}],"row-start":[{"row-start":R()}],"row-end":[{"row-end":R()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":je()}],"auto-rows":[{"auto-rows":je()}],gap:[{gap:g()}],"gap-x":[{"gap-x":g()}],"gap-y":[{"gap-y":g()}],"justify-content":[{justify:[...de(),"normal"]}],"justify-items":[{"justify-items":[...W(),"normal"]}],"justify-self":[{"justify-self":["auto",...W()]}],"align-content":[{content:["normal",...de()]}],"align-items":[{items:[...W(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...W(),{baseline:["","last"]}]}],"place-content":[{"place-content":de()}],"place-items":[{"place-items":[...W(),"baseline"]}],"place-self":[{"place-self":["auto",...W()]}],p:[{p:g()}],px:[{px:g()}],py:[{py:g()}],ps:[{ps:g()}],pe:[{pe:g()}],pt:[{pt:g()}],pr:[{pr:g()}],pb:[{pb:g()}],pl:[{pl:g()}],m:[{m:T()}],mx:[{mx:T()}],my:[{my:T()}],ms:[{ms:T()}],me:[{me:T()}],mt:[{mt:T()}],mr:[{mr:T()}],mb:[{mb:T()}],ml:[{ml:T()}],"space-x":[{"space-x":g()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":g()}],"space-y-reverse":["space-y-reverse"],size:[{size:L()}],w:[{w:[l,"screen",...L()]}],"min-w":[{"min-w":[l,"screen","none",...L()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[a]},...L()]}],h:[{h:["screen","lh",...L()]}],"min-h":[{"min-h":["screen","lh","none",...L()]}],"max-h":[{"max-h":["screen","lh",...L()]}],"font-size":[{text:["base",o,q,O]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,p,le]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ae,d]}],"font-family":[{font:[Nr,d,s]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,p,d]}],"line-clamp":[{"line-clamp":[b,"none",p,le]}],leading:[{leading:[c,...g()]}],"list-image":[{"list-image":["none",p,d]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",p,d]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:u()}],"text-color":[{text:u()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[b,"from-font","auto",p,O]}],"text-decoration-color":[{decoration:u()}],"underline-offset":[{"underline-offset":[b,"auto",p,d]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:g()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",p,d]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",p,d]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Fe()}],"bg-repeat":[{bg:Le()}],"bg-size":[{bg:Ve()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},G,p,d],radial:["",p,d],conic:[G,p,d]},zr,kr]}],"bg-color":[{bg:u()}],"gradient-from-pos":[{from:pe()}],"gradient-via-pos":[{via:pe()}],"gradient-to-pos":[{to:pe()}],"gradient-from":[{from:u()}],"gradient-via":[{via:u()}],"gradient-to":[{to:u()}],rounded:[{rounded:A()}],"rounded-s":[{"rounded-s":A()}],"rounded-e":[{"rounded-e":A()}],"rounded-t":[{"rounded-t":A()}],"rounded-r":[{"rounded-r":A()}],"rounded-b":[{"rounded-b":A()}],"rounded-l":[{"rounded-l":A()}],"rounded-ss":[{"rounded-ss":A()}],"rounded-se":[{"rounded-se":A()}],"rounded-ee":[{"rounded-ee":A()}],"rounded-es":[{"rounded-es":A()}],"rounded-tl":[{"rounded-tl":A()}],"rounded-tr":[{"rounded-tr":A()}],"rounded-br":[{"rounded-br":A()}],"rounded-bl":[{"rounded-bl":A()}],"border-w":[{border:M()}],"border-w-x":[{"border-x":M()}],"border-w-y":[{"border-y":M()}],"border-w-s":[{"border-s":M()}],"border-w-e":[{"border-e":M()}],"border-w-t":[{"border-t":M()}],"border-w-r":[{"border-r":M()}],"border-w-b":[{"border-b":M()}],"border-w-l":[{"border-l":M()}],"divide-x":[{"divide-x":M()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":M()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:u()}],"border-color-x":[{"border-x":u()}],"border-color-y":[{"border-y":u()}],"border-color-s":[{"border-s":u()}],"border-color-e":[{"border-e":u()}],"border-color-t":[{"border-t":u()}],"border-color-r":[{"border-r":u()}],"border-color-b":[{"border-b":u()}],"border-color-l":[{"border-l":u()}],"divide-color":[{divide:u()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[b,p,d]}],"outline-w":[{outline:["",b,q,O]}],"outline-color":[{outline:u()}],shadow:[{shadow:["","none",f,Q,K]}],"shadow-color":[{shadow:u()}],"inset-shadow":[{"inset-shadow":["none",k,Q,K]}],"inset-shadow-color":[{"inset-shadow":u()}],"ring-w":[{ring:M()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:u()}],"ring-offset-w":[{"ring-offset":[b,O]}],"ring-offset-color":[{"ring-offset":u()}],"inset-ring-w":[{"inset-ring":M()}],"inset-ring-color":[{"inset-ring":u()}],"text-shadow":[{"text-shadow":["none",x,Q,K]}],"text-shadow-color":[{"text-shadow":u()}],opacity:[{opacity:[b,p,d]}],"mix-blend":[{"mix-blend":[...Be(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Be()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[b]}],"mask-image-linear-from-pos":[{"mask-linear-from":z()}],"mask-image-linear-to-pos":[{"mask-linear-to":z()}],"mask-image-linear-from-color":[{"mask-linear-from":u()}],"mask-image-linear-to-color":[{"mask-linear-to":u()}],"mask-image-t-from-pos":[{"mask-t-from":z()}],"mask-image-t-to-pos":[{"mask-t-to":z()}],"mask-image-t-from-color":[{"mask-t-from":u()}],"mask-image-t-to-color":[{"mask-t-to":u()}],"mask-image-r-from-pos":[{"mask-r-from":z()}],"mask-image-r-to-pos":[{"mask-r-to":z()}],"mask-image-r-from-color":[{"mask-r-from":u()}],"mask-image-r-to-color":[{"mask-r-to":u()}],"mask-image-b-from-pos":[{"mask-b-from":z()}],"mask-image-b-to-pos":[{"mask-b-to":z()}],"mask-image-b-from-color":[{"mask-b-from":u()}],"mask-image-b-to-color":[{"mask-b-to":u()}],"mask-image-l-from-pos":[{"mask-l-from":z()}],"mask-image-l-to-pos":[{"mask-l-to":z()}],"mask-image-l-from-color":[{"mask-l-from":u()}],"mask-image-l-to-color":[{"mask-l-to":u()}],"mask-image-x-from-pos":[{"mask-x-from":z()}],"mask-image-x-to-pos":[{"mask-x-to":z()}],"mask-image-x-from-color":[{"mask-x-from":u()}],"mask-image-x-to-color":[{"mask-x-to":u()}],"mask-image-y-from-pos":[{"mask-y-from":z()}],"mask-image-y-to-pos":[{"mask-y-to":z()}],"mask-image-y-from-color":[{"mask-y-from":u()}],"mask-image-y-to-color":[{"mask-y-to":u()}],"mask-image-radial":[{"mask-radial":[p,d]}],"mask-image-radial-from-pos":[{"mask-radial-from":z()}],"mask-image-radial-to-pos":[{"mask-radial-to":z()}],"mask-image-radial-from-color":[{"mask-radial-from":u()}],"mask-image-radial-to-color":[{"mask-radial-to":u()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":U()}],"mask-image-conic-pos":[{"mask-conic":[b]}],"mask-image-conic-from-pos":[{"mask-conic-from":z()}],"mask-image-conic-to-pos":[{"mask-conic-to":z()}],"mask-image-conic-from-color":[{"mask-conic-from":u()}],"mask-image-conic-to-color":[{"mask-conic-to":u()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Fe()}],"mask-repeat":[{mask:Le()}],"mask-size":[{mask:Ve()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",p,d]}],filter:[{filter:["","none",p,d]}],blur:[{blur:De()}],brightness:[{brightness:[b,p,d]}],contrast:[{contrast:[b,p,d]}],"drop-shadow":[{"drop-shadow":["","none",N,Q,K]}],"drop-shadow-color":[{"drop-shadow":u()}],grayscale:[{grayscale:["",b,p,d]}],"hue-rotate":[{"hue-rotate":[b,p,d]}],invert:[{invert:["",b,p,d]}],saturate:[{saturate:[b,p,d]}],sepia:[{sepia:["",b,p,d]}],"backdrop-filter":[{"backdrop-filter":["","none",p,d]}],"backdrop-blur":[{"backdrop-blur":De()}],"backdrop-brightness":[{"backdrop-brightness":[b,p,d]}],"backdrop-contrast":[{"backdrop-contrast":[b,p,d]}],"backdrop-grayscale":[{"backdrop-grayscale":["",b,p,d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[b,p,d]}],"backdrop-invert":[{"backdrop-invert":["",b,p,d]}],"backdrop-opacity":[{"backdrop-opacity":[b,p,d]}],"backdrop-saturate":[{"backdrop-saturate":[b,p,d]}],"backdrop-sepia":[{"backdrop-sepia":["",b,p,d]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":g()}],"border-spacing-x":[{"border-spacing-x":g()}],"border-spacing-y":[{"border-spacing-y":g()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",p,d]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[b,"initial",p,d]}],ease:[{ease:["linear","initial",j,p,d]}],delay:[{delay:[b,p,d]}],animate:[{animate:["none",Z,p,d]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,p,d]}],"perspective-origin":[{"perspective-origin":_()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:oe()}],"scale-x":[{"scale-x":oe()}],"scale-y":[{"scale-y":oe()}],"scale-z":[{"scale-z":oe()}],"scale-3d":["scale-3d"],skew:[{skew:me()}],"skew-x":[{"skew-x":me()}],"skew-y":[{"skew-y":me()}],transform:[{transform:[p,d,"","none","gpu","cpu"]}],"transform-origin":[{origin:_()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:te()}],"translate-x":[{"translate-x":te()}],"translate-y":[{"translate-y":te()}],"translate-z":[{"translate-z":te()}],"translate-none":["translate-none"],accent:[{accent:u()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:u()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",p,d]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":g()}],"scroll-mx":[{"scroll-mx":g()}],"scroll-my":[{"scroll-my":g()}],"scroll-ms":[{"scroll-ms":g()}],"scroll-me":[{"scroll-me":g()}],"scroll-mt":[{"scroll-mt":g()}],"scroll-mr":[{"scroll-mr":g()}],"scroll-mb":[{"scroll-mb":g()}],"scroll-ml":[{"scroll-ml":g()}],"scroll-p":[{"scroll-p":g()}],"scroll-px":[{"scroll-px":g()}],"scroll-py":[{"scroll-py":g()}],"scroll-ps":[{"scroll-ps":g()}],"scroll-pe":[{"scroll-pe":g()}],"scroll-pt":[{"scroll-pt":g()}],"scroll-pr":[{"scroll-pr":g()}],"scroll-pb":[{"scroll-pb":g()}],"scroll-pl":[{"scroll-pl":g()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",p,d]}],fill:[{fill:["none",...u()]}],"stroke-w":[{stroke:[b,q,O,le]}],stroke:[{stroke:["none",...u()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function h(...e){return Ir(Ue(e))}const Mr={admin:"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",manager:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",viewer:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"};function Pe({entity:e,isSelected:s=!1,onClick:o,className:t,onTrack:n,trackingLabel:c,componentName:a="EntityCard"}){const l=e.entityType==="personal",i=l?v.User:v.Building2,m=()=>{n?.({action:"click",trackingLabel:c,componentName:a}),o?.()};return r.jsx("div",{onClick:o?m:void 0,className:h("rounded-lg border p-4 transition-all",o&&"cursor-pointer hover:border-primary",s&&"border-primary bg-primary/5",!s&&"border-border bg-card",t),children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:h("flex h-10 w-10 items-center justify-center rounded-full",l?"bg-blue-100 dark:bg-blue-900":"bg-purple-100 dark:bg-purple-900"),children:e.avatarUrl?r.jsx("img",{src:e.avatarUrl,alt:e.displayName,className:"h-10 w-10 rounded-full object-cover"}):r.jsx(i,{className:h("h-5 w-5",l?"text-blue-600 dark:text-blue-400":"text-purple-600 dark:text-purple-400")})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("h3",{className:"font-medium text-foreground truncate",children:e.displayName}),r.jsx("span",{className:h("text-xs px-2 py-0.5 rounded-full font-medium",Mr[e.userRole]),children:e.userRole})]}),r.jsx("p",{className:"text-sm text-muted-foreground",children:l?"Personal workspace":"Organization"}),e.description&&r.jsx("p",{className:"text-sm text-muted-foreground mt-1 line-clamp-2",children:e.description})]})]})})}function Er({entities:e,selectedSlug:s,onSelect:o,isLoading:t=!1,emptyMessage:n="No workspaces found",className:c,onTrack:a,trackingLabel:l,componentName:i="EntityList"}){if(t)return r.jsx("div",{className:h("space-y-3",c),children:[1,2,3].map(f=>r.jsx("div",{className:"h-24 rounded-lg border border-border bg-muted animate-pulse"},f))});if(e.length===0)return r.jsx("div",{className:h("text-center py-8 text-muted-foreground",c),children:n});const m=f=>{a?.({action:"select",trackingLabel:l,componentName:i}),o?.(f)};return r.jsx("div",{className:h("space-y-3",c),children:e.map(f=>r.jsx(Pe,{entity:f,isSelected:f.entitySlug===s,onClick:o?()=>m(f):void 0,onTrack:a,trackingLabel:l},f.id))})}function Pr({entities:e,currentEntity:s,onSelect:o,onCreateNew:t,isLoading:n=!1,className:c,onTrack:a,trackingLabel:l,componentName:i="EntitySelector"}){const[m,f]=$.useState(!1),k=()=>{a?.({action:"toggle",trackingLabel:l,componentName:i}),f(!m)},x=y=>{a?.({action:"select",trackingLabel:l,componentName:i}),o(y),f(!1)},N=()=>{a?.({action:"create_new",trackingLabel:l,componentName:i}),t?.(),f(!1)};return r.jsxs("div",{className:h("relative",c),children:[r.jsxs("button",{type:"button",onClick:k,disabled:n,className:h("flex items-center gap-2 px-3 py-2 rounded-lg border","bg-background hover:bg-muted transition-colors","focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2",n&&"opacity-50 cursor-not-allowed"),children:[s?r.jsxs(r.Fragment,{children:[s.entityType==="personal"?r.jsx(v.User,{className:"h-4 w-4 text-blue-600 dark:text-blue-400"}):r.jsx(v.Building2,{className:"h-4 w-4 text-purple-600 dark:text-purple-400"}),r.jsx("span",{className:"font-medium text-sm truncate max-w-[150px]",children:s.displayName})]}):r.jsx("span",{className:"text-sm text-muted-foreground",children:"Select workspace"}),r.jsx(v.ChevronDown,{className:h("h-4 w-4 text-muted-foreground transition-transform",m&&"rotate-180")})]}),m&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>f(!1)}),r.jsx("div",{className:h("absolute top-full left-0 mt-1 z-50","min-w-[220px] rounded-lg border bg-popover shadow-lg","animate-in fade-in-0 zoom-in-95"),children:r.jsxs("div",{className:"p-1",children:[e.filter(y=>y.entityType==="personal").map(y=>r.jsx(Te,{entity:y,isSelected:y.id===s?.id,onClick:()=>x(y)},y.id)),e.some(y=>y.entityType==="personal")&&e.some(y=>y.entityType==="organization")&&r.jsx("div",{className:"my-1 h-px bg-border"}),e.filter(y=>y.entityType==="organization").map(y=>r.jsx(Te,{entity:y,isSelected:y.id===s?.id,onClick:()=>x(y)},y.id)),t&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"my-1 h-px bg-border"}),r.jsxs("button",{type:"button",onClick:N,className:h("flex items-center gap-2 w-full px-2 py-1.5 rounded","text-sm text-primary hover:bg-muted transition-colors"),children:[r.jsx(v.Plus,{className:"h-4 w-4"}),r.jsx("span",{children:"Create organization"})]})]})]})})]})]})}function Te({entity:e,isSelected:s,onClick:o}){const t=e.entityType==="personal",n=t?v.User:v.Building2;return r.jsxs("button",{type:"button",onClick:o,className:h("flex items-center gap-2 w-full px-2 py-1.5 rounded","text-sm transition-colors",s?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"),children:[r.jsx(n,{className:h("h-4 w-4",t?"text-blue-600 dark:text-blue-400":"text-purple-600 dark:text-purple-400")}),r.jsx("span",{className:"flex-1 text-left truncate",children:e.displayName}),s&&r.jsx(v.Check,{className:"h-4 w-4"})]})}const ie=[{value:J.EntityRole.ADMIN,label:"Admin",description:"Full access to all settings and members",icon:v.Shield,color:"text-purple-600 dark:text-purple-400"},{value:J.EntityRole.MANAGER,label:"Manager",description:"Can manage projects and API keys",icon:v.Briefcase,color:"text-blue-600 dark:text-blue-400"},{value:J.EntityRole.VIEWER,label:"Viewer",description:"Read-only access",icon:v.Eye,color:"text-gray-600 dark:text-gray-400"}];function ce({value:e,onChange:s,disabled:o=!1,className:t,onTrack:n,trackingLabel:c,componentName:a="MemberRoleSelector"}){const[l,i]=$.useState(!1),m=ie.find(x=>x.value===e)||ie[2],f=()=>{o||(n?.({action:"toggle",trackingLabel:c,componentName:a}),i(!l))},k=x=>{n?.({action:"select",trackingLabel:c,componentName:a}),s(x),i(!1)};return r.jsxs("div",{className:h("relative",t),children:[r.jsxs("button",{type:"button",onClick:f,disabled:o,className:h("flex items-center gap-1.5 px-2 py-1 rounded border text-sm","bg-background transition-colors",o?"opacity-50 cursor-not-allowed":"hover:bg-muted cursor-pointer"),children:[r.jsx(m.icon,{className:h("h-3.5 w-3.5",m.color)}),r.jsx("span",{children:m.label}),r.jsx(v.ChevronDown,{className:h("h-3.5 w-3.5 text-muted-foreground transition-transform",l&&"rotate-180")})]}),l&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>i(!1)}),r.jsx("div",{className:h("absolute top-full right-0 mt-1 z-50","min-w-[200px] rounded-lg border bg-popover shadow-lg p-1","animate-in fade-in-0 zoom-in-95"),children:ie.map(x=>r.jsxs("button",{type:"button",onClick:()=>k(x.value),className:h("flex items-start gap-2 w-full px-2 py-2 rounded text-left","transition-colors",x.value===e?"bg-primary/10":"hover:bg-muted"),children:[r.jsx(x.icon,{className:h("h-4 w-4 mt-0.5",x.color)}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"font-medium text-sm",children:x.label}),x.value===e&&r.jsx(v.Check,{className:"h-3.5 w-3.5 text-primary"})]}),r.jsx("p",{className:"text-xs text-muted-foreground",children:x.description})]})]},x.value))})]})]})}const Tr={admin:"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",manager:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",viewer:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"};function Gr({members:e,currentUserId:s,canManage:o=!1,onRoleChange:t,onRemove:n,isLoading:c=!1,emptyMessage:a="No members found",className:l,onTrack:i,trackingLabel:m,componentName:f="MemberList"}){if(c)return r.jsx("div",{className:h("space-y-2",l),children:[1,2,3].map(N=>r.jsx("div",{className:"h-16 rounded-lg border border-border bg-muted animate-pulse"},N))});if(e.length===0)return r.jsx("div",{className:h("text-center py-8 text-muted-foreground",l),children:a});const k=(N,y)=>{i?.({action:"role_change",trackingLabel:m,componentName:f}),t?.(N,y)},x=N=>{i?.({action:"remove",trackingLabel:m,componentName:f}),n?.(N)};return r.jsx("div",{className:h("divide-y divide-border rounded-lg border",l),children:e.map(N=>r.jsx(Or,{member:N,isSelf:N.userId===s,canManage:o,onRoleChange:t?k:void 0,onRemove:n?x:void 0},N.id))})}function Or({member:e,isSelf:s,canManage:o,onRoleChange:t,onRemove:n}){const c=e.user?.displayName||e.user?.email||"Unknown user",a=e.user?.email;return r.jsxs("div",{className:"flex items-center gap-3 p-3",children:[r.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-muted",children:r.jsx(v.User,{className:"h-5 w-5 text-muted-foreground"})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("p",{className:"font-medium text-foreground truncate",children:c}),s&&r.jsx("span",{className:"text-xs text-muted-foreground",children:"(you)"})]}),a&&r.jsx("p",{className:"text-sm text-muted-foreground truncate",children:a})]}),o&&t&&!s?r.jsx(ce,{value:e.role,onChange:l=>t(e.userId,l)}):r.jsx("span",{className:h("text-xs px-2 py-1 rounded-full font-medium",Tr[e.role]),children:e.role}),o&&n&&!s&&r.jsx("button",{type:"button",onClick:()=>n(e.userId),className:h("p-1.5 rounded hover:bg-destructive/10 text-muted-foreground","hover:text-destructive transition-colors"),title:"Remove member",children:r.jsx(v.Trash2,{className:"h-4 w-4"})})]})}function jr({onSubmit:e,isSubmitting:s=!1,defaultRole:o=J.EntityRole.VIEWER,className:t,onTrack:n,trackingLabel:c,componentName:a="InvitationForm"}){const[l,i]=$.useState(""),[m,f]=$.useState(o),[k,x]=$.useState(null),N=async y=>{if(y.preventDefault(),x(null),!l.trim()){x("Email is required");return}if(!Fr(l)){x("Please enter a valid email address");return}n?.({action:"submit",trackingLabel:c,componentName:a});try{await e({email:l.trim(),role:m}),i(""),f(o)}catch(w){x(w.message||"Failed to send invitation")}};return r.jsxs("form",{onSubmit:N,className:h("space-y-4",t),children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsxs("div",{className:"relative flex-1",children:[r.jsx(v.Mail,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),r.jsx("input",{type:"email",value:l,onChange:y=>i(y.target.value),placeholder:"Enter email address",disabled:s,className:h("w-full pl-10 pr-3 py-2 rounded-lg border bg-background","text-sm placeholder:text-muted-foreground","focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent",k&&"border-destructive focus:ring-destructive",s&&"opacity-50 cursor-not-allowed")})]}),r.jsx(ce,{value:m,onChange:f,disabled:s}),r.jsxs("button",{type:"submit",disabled:s||!l.trim(),className:h("flex items-center gap-2 px-4 py-2 rounded-lg","bg-primary text-primary-foreground font-medium text-sm","hover:bg-primary/90 transition-colors","focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2",(s||!l.trim())&&"opacity-50 cursor-not-allowed"),children:[s?r.jsx(v.Loader2,{className:"h-4 w-4 animate-spin"}):r.jsx(v.Send,{className:"h-4 w-4"}),r.jsx("span",{className:"hidden sm:inline",children:"Invite"})]})]}),k&&r.jsx("p",{className:"text-sm text-destructive",children:k})]})}function Fr(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}const Lr={admin:"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",manager:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",viewer:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"};function Vr({invitations:e,mode:s,onCancel:o,onAccept:t,onDecline:n,isLoading:c=!1,emptyMessage:a="No pending invitations",className:l,onTrack:i,trackingLabel:m,componentName:f="InvitationList"}){const k=e.filter(w=>w.status==="pending");if(c)return r.jsx("div",{className:h("space-y-2",l),children:[1,2].map(w=>r.jsx("div",{className:"h-16 rounded-lg border border-border bg-muted animate-pulse"},w))});if(k.length===0)return r.jsx("div",{className:h("text-center py-8 text-muted-foreground",l),children:a});const x=w=>{i?.({action:"cancel",trackingLabel:m,componentName:f}),o?.(w)},N=w=>{i?.({action:"accept",trackingLabel:m,componentName:f}),t?.(w)},y=w=>{i?.({action:"decline",trackingLabel:m,componentName:f}),n?.(w)};return r.jsx("div",{className:h("divide-y divide-border rounded-lg border",l),children:k.map(w=>r.jsx(Br,{invitation:w,mode:s,onCancel:o?x:void 0,onAccept:t?N:void 0,onDecline:n?y:void 0},w.id))})}function Br({invitation:e,mode:s,onCancel:o,onAccept:t,onDecline:n}){const c=new Date(e.expiresAt),a=c<new Date,l=Math.ceil((c.getTime()-Date.now())/(1e3*60*60*24));return r.jsxs("div",{className:"flex items-center gap-3 p-3",children:[r.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-muted",children:r.jsx(v.Mail,{className:"h-5 w-5 text-muted-foreground"})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[s==="user"&&e.entity?r.jsx("p",{className:"font-medium text-foreground truncate",children:e.entity.displayName}):r.jsx("p",{className:"font-medium text-foreground truncate",children:e.email}),r.jsx("span",{className:h("text-xs px-2 py-0.5 rounded-full font-medium",Lr[e.role]),children:e.role})]}),r.jsxs("div",{className:"flex items-center gap-1.5 text-sm text-muted-foreground",children:[r.jsx(v.Clock,{className:"h-3.5 w-3.5"}),a?r.jsx("span",{className:"text-destructive",children:"Expired"}):r.jsxs("span",{children:["Expires in ",l," days"]})]})]}),s==="admin"&&o&&r.jsx("button",{type:"button",onClick:()=>o(e.id),className:h("p-1.5 rounded hover:bg-destructive/10 text-muted-foreground","hover:text-destructive transition-colors"),title:"Cancel invitation",children:r.jsx(v.XCircle,{className:"h-4 w-4"})}),s==="user"&&r.jsxs("div",{className:"flex items-center gap-2",children:[n&&r.jsxs("button",{type:"button",onClick:()=>n(e.token),className:h("flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm","border hover:bg-muted transition-colors"),children:[r.jsx(v.X,{className:"h-4 w-4"}),r.jsx("span",{children:"Decline"})]}),t&&r.jsxs("button",{type:"button",onClick:()=>t(e.token),disabled:a,className:h("flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm","bg-primary text-primary-foreground","hover:bg-primary/90 transition-colors",a&&"opacity-50 cursor-not-allowed"),children:[r.jsx(v.Check,{className:"h-4 w-4"}),r.jsx("span",{children:"Accept"})]})]})]})}S.EntityCard=Pe,S.EntityList=Er,S.EntitySelector=Pr,S.InvitationForm=jr,S.InvitationList=Vr,S.MemberList=Gr,S.MemberRoleSelector=ce,S.cn=h,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(S,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react/jsx-runtime"),require("lucide-react"),require("react"),require("@sudobility/types")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","lucide-react","react","@sudobility/types"],r):(S=typeof globalThis<"u"?globalThis:S||self,r(S.EntityComponents={},S.ReactJSXRuntime,S.LucideReact,S.React,S.SudobilityTypes))})(this,(function(S,r,v,$,J){"use strict";function ue(e){var s,o,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(s=0;s<n;s++)e[s]&&(o=ue(e[s]))&&(t&&(t+=" "),t+=o)}else for(o in e)e[o]&&(t&&(t+=" "),t+=o);return t}function Ue(){for(var e,s,o=0,t="",n=arguments.length;o<n;o++)(e=arguments[o])&&(s=ue(e))&&(t&&(t+=" "),t+=s);return t}const _e=(e,s)=>{const o=new Array(e.length+s.length);for(let t=0;t<e.length;t++)o[t]=e[t];for(let t=0;t<s.length;t++)o[e.length+t]=s[t];return o},We=(e,s)=>({classGroupId:e,validator:s}),fe=(e=new Map,s=null,o)=>({nextPart:e,validators:s,classGroupId:o}),H="-",ge=[],$e="arbitrary..",qe=e=>{const s=Ye(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return Xe(a);const l=a.split(H),i=l[0]===""&&l.length>1?1:0;return be(l,i,s)},getConflictingClassGroupIds:(a,l)=>{if(l){const i=t[a],m=o[a];return i?m?_e(m,i):i:m||ge}return o[a]||ge}}},be=(e,s,o)=>{if(e.length-s===0)return o.classGroupId;const n=e[s],c=o.nextPart.get(n);if(c){const m=be(e,s+1,c);if(m)return m}const a=o.validators;if(a===null)return;const l=s===0?e.join(H):e.slice(s).join(H),i=a.length;for(let m=0;m<i;m++){const f=a[m];if(f.validator(l))return f.classGroupId}},Xe=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const s=e.slice(1,-1),o=s.indexOf(":"),t=s.slice(0,o);return t?$e+t:void 0})(),Ye=e=>{const{theme:s,classGroups:o}=e;return Je(o,s)},Je=(e,s)=>{const o=fe();for(const t in e){const n=e[t];se(n,o,t,s)}return o},se=(e,s,o,t)=>{const n=e.length;for(let c=0;c<n;c++){const a=e[c];He(a,s,o,t)}},He=(e,s,o,t)=>{if(typeof e=="string"){Ke(e,s,o);return}if(typeof e=="function"){Qe(e,s,o,t);return}Ze(e,s,o,t)},Ke=(e,s,o)=>{const t=e===""?s:he(s,e);t.classGroupId=o},Qe=(e,s,o,t)=>{if(Re(e)){se(e(t),s,o,t);return}s.validators===null&&(s.validators=[]),s.validators.push(We(o,e))},Ze=(e,s,o,t)=>{const n=Object.entries(e),c=n.length;for(let a=0;a<c;a++){const[l,i]=n[a];se(i,he(s,l),o,t)}},he=(e,s)=>{let o=e;const t=s.split(H),n=t.length;for(let c=0;c<n;c++){const a=t[c];let l=o.nextPart.get(a);l||(l=fe(),o.nextPart.set(a,l)),o=l}return o},Re=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,er=e=>{if(e<1)return{get:()=>{},set:()=>{}};let s=0,o=Object.create(null),t=Object.create(null);const n=(c,a)=>{o[c]=a,s++,s>e&&(s=0,t=o,o=Object.create(null))};return{get(c){let a=o[c];if(a!==void 0)return a;if((a=t[c])!==void 0)return n(c,a),a},set(c,a){c in o?o[c]=a:n(c,a)}}},ne="!",xe=":",rr=[],ye=(e,s,o,t,n)=>({modifiers:e,hasImportantModifier:s,baseClassName:o,maybePostfixModifierPosition:t,isExternal:n}),or=e=>{const{prefix:s,experimentalParseClassName:o}=e;let t=n=>{const c=[];let a=0,l=0,i=0,m;const f=n.length;for(let w=0;w<f;w++){const I=n[w];if(a===0&&l===0){if(I===xe){c.push(n.slice(i,w)),i=w+1;continue}if(I==="/"){m=w;continue}}I==="["?a++:I==="]"?a--:I==="("?l++:I===")"&&l--}const k=c.length===0?n:n.slice(i);let x=k,N=!1;k.endsWith(ne)?(x=k.slice(0,-1),N=!0):k.startsWith(ne)&&(x=k.slice(1),N=!0);const y=m&&m>i?m-i:void 0;return ye(c,N,x,y)};if(s){const n=s+xe,c=t;t=a=>a.startsWith(n)?c(a.slice(n.length)):ye(rr,!1,a,void 0,!0)}if(o){const n=t;t=c=>o({className:c,parseClassName:n})}return t},tr=e=>{const s=new Map;return e.orderSensitiveModifiers.forEach((o,t)=>{s.set(o,1e6+t)}),o=>{const t=[];let n=[];for(let c=0;c<o.length;c++){const a=o[c],l=a[0]==="[",i=s.has(a);l||i?(n.length>0&&(n.sort(),t.push(...n),n=[]),t.push(a)):n.push(a)}return n.length>0&&(n.sort(),t.push(...n)),t}},sr=e=>({cache:er(e.cacheSize),parseClassName:or(e),sortModifiers:tr(e),...qe(e)}),nr=/\s+/,ar=(e,s)=>{const{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:n,sortModifiers:c}=s,a=[],l=e.trim().split(nr);let i="";for(let m=l.length-1;m>=0;m-=1){const f=l[m],{isExternal:k,modifiers:x,hasImportantModifier:N,baseClassName:y,maybePostfixModifierPosition:w}=o(f);if(k){i=f+(i.length>0?" "+i:i);continue}let I=!!w,j=t(I?y.substring(0,w):y);if(!j){if(!I){i=f+(i.length>0?" "+i:i);continue}if(j=t(y),!j){i=f+(i.length>0?" "+i:i);continue}I=!1}const Z=x.length===0?"":x.length===1?x[0]:c(x).join(":"),X=N?Z+ne:Z,U=X+j;if(a.indexOf(U)>-1)continue;a.push(U);const _=n(j,I);for(let F=0;F<_.length;++F){const Y=_[F];a.push(X+Y)}i=f+(i.length>0?" "+i:i)}return i},lr=(...e)=>{let s=0,o,t,n="";for(;s<e.length;)(o=e[s++])&&(t=we(o))&&(n&&(n+=" "),n+=t);return n},we=e=>{if(typeof e=="string")return e;let s,o="";for(let t=0;t<e.length;t++)e[t]&&(s=we(e[t]))&&(o&&(o+=" "),o+=s);return o},ir=(e,...s)=>{let o,t,n,c;const a=i=>{const m=s.reduce((f,k)=>k(f),e());return o=sr(m),t=o.cache.get,n=o.cache.set,c=l,l(i)},l=i=>{const m=t(i);if(m)return m;const f=ar(i,o);return n(i,f),f};return c=a,(...i)=>c(lr(...i))},cr=[],C=e=>{const s=o=>o[e]||cr;return s.isThemeGetter=!0,s},ve=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ke=/^\((?:(\w[\w-]*):)?(.+)\)$/i,dr=/^\d+\/\d+$/,pr=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,mr=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ur=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,fr=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,gr=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,B=e=>dr.test(e),b=e=>!!e&&!Number.isNaN(Number(e)),O=e=>!!e&&Number.isInteger(Number(e)),ae=e=>e.endsWith("%")&&b(e.slice(0,-1)),E=e=>pr.test(e),br=()=>!0,hr=e=>mr.test(e)&&!ur.test(e),Ne=()=>!1,xr=e=>fr.test(e),yr=e=>gr.test(e),wr=e=>!d(e)&&!p(e),vr=e=>V(e,Ie,Ne),d=e=>ve.test(e),G=e=>V(e,Me,hr),le=e=>V(e,Sr,b),Ce=e=>V(e,Se,Ne),kr=e=>V(e,Ae,yr),K=e=>V(e,Ee,xr),p=e=>ke.test(e),q=e=>D(e,Me),Nr=e=>D(e,Ar),ze=e=>D(e,Se),Cr=e=>D(e,Ie),zr=e=>D(e,Ae),Q=e=>D(e,Ee,!0),V=(e,s,o)=>{const t=ve.exec(e);return t?t[1]?s(t[1]):o(t[2]):!1},D=(e,s,o=!1)=>{const t=ke.exec(e);return t?t[1]?s(t[1]):o:!1},Se=e=>e==="position"||e==="percentage",Ae=e=>e==="image"||e==="url",Ie=e=>e==="length"||e==="size"||e==="bg-size",Me=e=>e==="length",Sr=e=>e==="number",Ar=e=>e==="family-name",Ee=e=>e==="shadow",Ir=ir(()=>{const e=C("color"),s=C("font"),o=C("text"),t=C("font-weight"),n=C("tracking"),c=C("leading"),a=C("breakpoint"),l=C("container"),i=C("spacing"),m=C("radius"),f=C("shadow"),k=C("inset-shadow"),x=C("text-shadow"),N=C("drop-shadow"),y=C("blur"),w=C("perspective"),I=C("aspect"),j=C("ease"),Z=C("animate"),X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],U=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],_=()=>[...U(),p,d],F=()=>["auto","hidden","clip","visible","scroll"],Y=()=>["auto","contain","none"],g=()=>[p,d,i],P=()=>[B,"full","auto",...g()],Oe=()=>[O,"none","subgrid",p,d],Ge=()=>["auto",{span:["full",O,p,d]},O,p,d],R=()=>[O,"auto",p,d],je=()=>["auto","min","max","fr",p,d],de=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],W=()=>["start","end","center","stretch","center-safe","end-safe"],T=()=>["auto",...g()],L=()=>[B,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...g()],u=()=>[e,p,d],Fe=()=>[...U(),ze,Ce,{position:[p,d]}],Le=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Be=()=>["auto","cover","contain",Cr,vr,{size:[p,d]}],pe=()=>[ae,q,G],A=()=>["","none","full",m,p,d],M=()=>["",b,q,G],ee=()=>["solid","dashed","dotted","double"],Ve=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],z=()=>[b,ae,ze,Ce],De=()=>["","none",y,p,d],re=()=>["none",b,p,d],oe=()=>["none",b,p,d],me=()=>[b,p,d],te=()=>[B,"full",...g()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[E],breakpoint:[E],color:[br],container:[E],"drop-shadow":[E],ease:["in","out","in-out"],font:[wr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[E],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[E],shadow:[E],spacing:["px",b],text:[E],"text-shadow":[E],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",B,d,p,I]}],container:["container"],columns:[{columns:[b,d,p,l]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:_()}],overflow:[{overflow:F()}],"overflow-x":[{"overflow-x":F()}],"overflow-y":[{"overflow-y":F()}],overscroll:[{overscroll:Y()}],"overscroll-x":[{"overscroll-x":Y()}],"overscroll-y":[{"overscroll-y":Y()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{start:P()}],end:[{end:P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[O,"auto",p,d]}],basis:[{basis:[B,"full","auto",l,...g()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[b,B,"auto","initial","none",d]}],grow:[{grow:["",b,p,d]}],shrink:[{shrink:["",b,p,d]}],order:[{order:[O,"first","last","none",p,d]}],"grid-cols":[{"grid-cols":Oe()}],"col-start-end":[{col:Ge()}],"col-start":[{"col-start":R()}],"col-end":[{"col-end":R()}],"grid-rows":[{"grid-rows":Oe()}],"row-start-end":[{row:Ge()}],"row-start":[{"row-start":R()}],"row-end":[{"row-end":R()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":je()}],"auto-rows":[{"auto-rows":je()}],gap:[{gap:g()}],"gap-x":[{"gap-x":g()}],"gap-y":[{"gap-y":g()}],"justify-content":[{justify:[...de(),"normal"]}],"justify-items":[{"justify-items":[...W(),"normal"]}],"justify-self":[{"justify-self":["auto",...W()]}],"align-content":[{content:["normal",...de()]}],"align-items":[{items:[...W(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...W(),{baseline:["","last"]}]}],"place-content":[{"place-content":de()}],"place-items":[{"place-items":[...W(),"baseline"]}],"place-self":[{"place-self":["auto",...W()]}],p:[{p:g()}],px:[{px:g()}],py:[{py:g()}],ps:[{ps:g()}],pe:[{pe:g()}],pt:[{pt:g()}],pr:[{pr:g()}],pb:[{pb:g()}],pl:[{pl:g()}],m:[{m:T()}],mx:[{mx:T()}],my:[{my:T()}],ms:[{ms:T()}],me:[{me:T()}],mt:[{mt:T()}],mr:[{mr:T()}],mb:[{mb:T()}],ml:[{ml:T()}],"space-x":[{"space-x":g()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":g()}],"space-y-reverse":["space-y-reverse"],size:[{size:L()}],w:[{w:[l,"screen",...L()]}],"min-w":[{"min-w":[l,"screen","none",...L()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[a]},...L()]}],h:[{h:["screen","lh",...L()]}],"min-h":[{"min-h":["screen","lh","none",...L()]}],"max-h":[{"max-h":["screen","lh",...L()]}],"font-size":[{text:["base",o,q,G]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,p,le]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ae,d]}],"font-family":[{font:[Nr,d,s]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,p,d]}],"line-clamp":[{"line-clamp":[b,"none",p,le]}],leading:[{leading:[c,...g()]}],"list-image":[{"list-image":["none",p,d]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",p,d]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:u()}],"text-color":[{text:u()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[b,"from-font","auto",p,G]}],"text-decoration-color":[{decoration:u()}],"underline-offset":[{"underline-offset":[b,"auto",p,d]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:g()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",p,d]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",p,d]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Fe()}],"bg-repeat":[{bg:Le()}],"bg-size":[{bg:Be()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},O,p,d],radial:["",p,d],conic:[O,p,d]},zr,kr]}],"bg-color":[{bg:u()}],"gradient-from-pos":[{from:pe()}],"gradient-via-pos":[{via:pe()}],"gradient-to-pos":[{to:pe()}],"gradient-from":[{from:u()}],"gradient-via":[{via:u()}],"gradient-to":[{to:u()}],rounded:[{rounded:A()}],"rounded-s":[{"rounded-s":A()}],"rounded-e":[{"rounded-e":A()}],"rounded-t":[{"rounded-t":A()}],"rounded-r":[{"rounded-r":A()}],"rounded-b":[{"rounded-b":A()}],"rounded-l":[{"rounded-l":A()}],"rounded-ss":[{"rounded-ss":A()}],"rounded-se":[{"rounded-se":A()}],"rounded-ee":[{"rounded-ee":A()}],"rounded-es":[{"rounded-es":A()}],"rounded-tl":[{"rounded-tl":A()}],"rounded-tr":[{"rounded-tr":A()}],"rounded-br":[{"rounded-br":A()}],"rounded-bl":[{"rounded-bl":A()}],"border-w":[{border:M()}],"border-w-x":[{"border-x":M()}],"border-w-y":[{"border-y":M()}],"border-w-s":[{"border-s":M()}],"border-w-e":[{"border-e":M()}],"border-w-t":[{"border-t":M()}],"border-w-r":[{"border-r":M()}],"border-w-b":[{"border-b":M()}],"border-w-l":[{"border-l":M()}],"divide-x":[{"divide-x":M()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":M()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:u()}],"border-color-x":[{"border-x":u()}],"border-color-y":[{"border-y":u()}],"border-color-s":[{"border-s":u()}],"border-color-e":[{"border-e":u()}],"border-color-t":[{"border-t":u()}],"border-color-r":[{"border-r":u()}],"border-color-b":[{"border-b":u()}],"border-color-l":[{"border-l":u()}],"divide-color":[{divide:u()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[b,p,d]}],"outline-w":[{outline:["",b,q,G]}],"outline-color":[{outline:u()}],shadow:[{shadow:["","none",f,Q,K]}],"shadow-color":[{shadow:u()}],"inset-shadow":[{"inset-shadow":["none",k,Q,K]}],"inset-shadow-color":[{"inset-shadow":u()}],"ring-w":[{ring:M()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:u()}],"ring-offset-w":[{"ring-offset":[b,G]}],"ring-offset-color":[{"ring-offset":u()}],"inset-ring-w":[{"inset-ring":M()}],"inset-ring-color":[{"inset-ring":u()}],"text-shadow":[{"text-shadow":["none",x,Q,K]}],"text-shadow-color":[{"text-shadow":u()}],opacity:[{opacity:[b,p,d]}],"mix-blend":[{"mix-blend":[...Ve(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ve()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[b]}],"mask-image-linear-from-pos":[{"mask-linear-from":z()}],"mask-image-linear-to-pos":[{"mask-linear-to":z()}],"mask-image-linear-from-color":[{"mask-linear-from":u()}],"mask-image-linear-to-color":[{"mask-linear-to":u()}],"mask-image-t-from-pos":[{"mask-t-from":z()}],"mask-image-t-to-pos":[{"mask-t-to":z()}],"mask-image-t-from-color":[{"mask-t-from":u()}],"mask-image-t-to-color":[{"mask-t-to":u()}],"mask-image-r-from-pos":[{"mask-r-from":z()}],"mask-image-r-to-pos":[{"mask-r-to":z()}],"mask-image-r-from-color":[{"mask-r-from":u()}],"mask-image-r-to-color":[{"mask-r-to":u()}],"mask-image-b-from-pos":[{"mask-b-from":z()}],"mask-image-b-to-pos":[{"mask-b-to":z()}],"mask-image-b-from-color":[{"mask-b-from":u()}],"mask-image-b-to-color":[{"mask-b-to":u()}],"mask-image-l-from-pos":[{"mask-l-from":z()}],"mask-image-l-to-pos":[{"mask-l-to":z()}],"mask-image-l-from-color":[{"mask-l-from":u()}],"mask-image-l-to-color":[{"mask-l-to":u()}],"mask-image-x-from-pos":[{"mask-x-from":z()}],"mask-image-x-to-pos":[{"mask-x-to":z()}],"mask-image-x-from-color":[{"mask-x-from":u()}],"mask-image-x-to-color":[{"mask-x-to":u()}],"mask-image-y-from-pos":[{"mask-y-from":z()}],"mask-image-y-to-pos":[{"mask-y-to":z()}],"mask-image-y-from-color":[{"mask-y-from":u()}],"mask-image-y-to-color":[{"mask-y-to":u()}],"mask-image-radial":[{"mask-radial":[p,d]}],"mask-image-radial-from-pos":[{"mask-radial-from":z()}],"mask-image-radial-to-pos":[{"mask-radial-to":z()}],"mask-image-radial-from-color":[{"mask-radial-from":u()}],"mask-image-radial-to-color":[{"mask-radial-to":u()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":U()}],"mask-image-conic-pos":[{"mask-conic":[b]}],"mask-image-conic-from-pos":[{"mask-conic-from":z()}],"mask-image-conic-to-pos":[{"mask-conic-to":z()}],"mask-image-conic-from-color":[{"mask-conic-from":u()}],"mask-image-conic-to-color":[{"mask-conic-to":u()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Fe()}],"mask-repeat":[{mask:Le()}],"mask-size":[{mask:Be()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",p,d]}],filter:[{filter:["","none",p,d]}],blur:[{blur:De()}],brightness:[{brightness:[b,p,d]}],contrast:[{contrast:[b,p,d]}],"drop-shadow":[{"drop-shadow":["","none",N,Q,K]}],"drop-shadow-color":[{"drop-shadow":u()}],grayscale:[{grayscale:["",b,p,d]}],"hue-rotate":[{"hue-rotate":[b,p,d]}],invert:[{invert:["",b,p,d]}],saturate:[{saturate:[b,p,d]}],sepia:[{sepia:["",b,p,d]}],"backdrop-filter":[{"backdrop-filter":["","none",p,d]}],"backdrop-blur":[{"backdrop-blur":De()}],"backdrop-brightness":[{"backdrop-brightness":[b,p,d]}],"backdrop-contrast":[{"backdrop-contrast":[b,p,d]}],"backdrop-grayscale":[{"backdrop-grayscale":["",b,p,d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[b,p,d]}],"backdrop-invert":[{"backdrop-invert":["",b,p,d]}],"backdrop-opacity":[{"backdrop-opacity":[b,p,d]}],"backdrop-saturate":[{"backdrop-saturate":[b,p,d]}],"backdrop-sepia":[{"backdrop-sepia":["",b,p,d]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":g()}],"border-spacing-x":[{"border-spacing-x":g()}],"border-spacing-y":[{"border-spacing-y":g()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",p,d]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[b,"initial",p,d]}],ease:[{ease:["linear","initial",j,p,d]}],delay:[{delay:[b,p,d]}],animate:[{animate:["none",Z,p,d]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,p,d]}],"perspective-origin":[{"perspective-origin":_()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:oe()}],"scale-x":[{"scale-x":oe()}],"scale-y":[{"scale-y":oe()}],"scale-z":[{"scale-z":oe()}],"scale-3d":["scale-3d"],skew:[{skew:me()}],"skew-x":[{"skew-x":me()}],"skew-y":[{"skew-y":me()}],transform:[{transform:[p,d,"","none","gpu","cpu"]}],"transform-origin":[{origin:_()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:te()}],"translate-x":[{"translate-x":te()}],"translate-y":[{"translate-y":te()}],"translate-z":[{"translate-z":te()}],"translate-none":["translate-none"],accent:[{accent:u()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:u()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",p,d]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":g()}],"scroll-mx":[{"scroll-mx":g()}],"scroll-my":[{"scroll-my":g()}],"scroll-ms":[{"scroll-ms":g()}],"scroll-me":[{"scroll-me":g()}],"scroll-mt":[{"scroll-mt":g()}],"scroll-mr":[{"scroll-mr":g()}],"scroll-mb":[{"scroll-mb":g()}],"scroll-ml":[{"scroll-ml":g()}],"scroll-p":[{"scroll-p":g()}],"scroll-px":[{"scroll-px":g()}],"scroll-py":[{"scroll-py":g()}],"scroll-ps":[{"scroll-ps":g()}],"scroll-pe":[{"scroll-pe":g()}],"scroll-pt":[{"scroll-pt":g()}],"scroll-pr":[{"scroll-pr":g()}],"scroll-pb":[{"scroll-pb":g()}],"scroll-pl":[{"scroll-pl":g()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",p,d]}],fill:[{fill:["none",...u()]}],"stroke-w":[{stroke:[b,q,G,le]}],stroke:[{stroke:["none",...u()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function h(...e){return Ir(Ue(e))}const Mr={owner:"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",admin:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",member:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"};function Pe({entity:e,isSelected:s=!1,onClick:o,className:t,onTrack:n,trackingLabel:c,componentName:a="EntityCard"}){const l=e.entityType==="personal",i=l?v.User:v.Building2,m=()=>{n?.({action:"click",trackingLabel:c,componentName:a}),o?.()};return r.jsx("div",{onClick:o?m:void 0,className:h("rounded-lg border p-4 transition-all",o&&"cursor-pointer hover:border-primary",s&&"border-primary bg-primary/5",!s&&"border-border bg-card",t),children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:h("flex h-10 w-10 items-center justify-center rounded-full",l?"bg-blue-100 dark:bg-blue-900":"bg-purple-100 dark:bg-purple-900"),children:e.avatarUrl?r.jsx("img",{src:e.avatarUrl,alt:e.displayName,className:"h-10 w-10 rounded-full object-cover"}):r.jsx(i,{className:h("h-5 w-5",l?"text-blue-600 dark:text-blue-400":"text-purple-600 dark:text-purple-400")})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("h3",{className:"font-medium text-foreground truncate",children:e.displayName}),r.jsx("span",{className:h("text-xs px-2 py-0.5 rounded-full font-medium",Mr[e.userRole]),children:e.userRole})]}),r.jsx("p",{className:"text-sm text-muted-foreground",children:l?"Personal workspace":"Organization"}),e.description&&r.jsx("p",{className:"text-sm text-muted-foreground mt-1 line-clamp-2",children:e.description})]})]})})}function Er({entities:e,selectedSlug:s,onSelect:o,isLoading:t=!1,emptyMessage:n="No workspaces found",className:c,onTrack:a,trackingLabel:l,componentName:i="EntityList"}){if(t)return r.jsx("div",{className:h("space-y-3",c),children:[1,2,3].map(f=>r.jsx("div",{className:"h-24 rounded-lg border border-border bg-muted animate-pulse"},f))});if(e.length===0)return r.jsx("div",{className:h("text-center py-8 text-muted-foreground",c),children:n});const m=f=>{a?.({action:"select",trackingLabel:l,componentName:i}),o?.(f)};return r.jsx("div",{className:h("space-y-3",c),children:e.map(f=>r.jsx(Pe,{entity:f,isSelected:f.entitySlug===s,onClick:o?()=>m(f):void 0,onTrack:a,trackingLabel:l},f.id))})}function Pr({entities:e,currentEntity:s,onSelect:o,onCreateNew:t,isLoading:n=!1,className:c,onTrack:a,trackingLabel:l,componentName:i="EntitySelector"}){const[m,f]=$.useState(!1),k=()=>{a?.({action:"toggle",trackingLabel:l,componentName:i}),f(!m)},x=y=>{a?.({action:"select",trackingLabel:l,componentName:i}),o(y),f(!1)},N=()=>{a?.({action:"create_new",trackingLabel:l,componentName:i}),t?.(),f(!1)};return r.jsxs("div",{className:h("relative",c),children:[r.jsxs("button",{type:"button",onClick:k,disabled:n,className:h("flex items-center gap-2 px-3 py-2 rounded-lg border","bg-background hover:bg-muted transition-colors","focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2",n&&"opacity-50 cursor-not-allowed"),children:[s?r.jsxs(r.Fragment,{children:[s.entityType==="personal"?r.jsx(v.User,{className:"h-4 w-4 text-blue-600 dark:text-blue-400"}):r.jsx(v.Building2,{className:"h-4 w-4 text-purple-600 dark:text-purple-400"}),r.jsx("span",{className:"font-medium text-sm truncate max-w-[150px]",children:s.displayName})]}):r.jsx("span",{className:"text-sm text-muted-foreground",children:"Select workspace"}),r.jsx(v.ChevronDown,{className:h("h-4 w-4 text-muted-foreground transition-transform",m&&"rotate-180")})]}),m&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>f(!1)}),r.jsx("div",{className:h("absolute top-full left-0 mt-1 z-50","min-w-[220px] rounded-lg border bg-popover shadow-lg","animate-in fade-in-0 zoom-in-95"),children:r.jsxs("div",{className:"p-1",children:[e.filter(y=>y.entityType==="personal").map(y=>r.jsx(Te,{entity:y,isSelected:y.id===s?.id,onClick:()=>x(y)},y.id)),e.some(y=>y.entityType==="personal")&&e.some(y=>y.entityType==="organization")&&r.jsx("div",{className:"my-1 h-px bg-border"}),e.filter(y=>y.entityType==="organization").map(y=>r.jsx(Te,{entity:y,isSelected:y.id===s?.id,onClick:()=>x(y)},y.id)),t&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"my-1 h-px bg-border"}),r.jsxs("button",{type:"button",onClick:N,className:h("flex items-center gap-2 w-full px-2 py-1.5 rounded","text-sm text-primary hover:bg-muted transition-colors"),children:[r.jsx(v.Plus,{className:"h-4 w-4"}),r.jsx("span",{children:"Create organization"})]})]})]})})]})]})}function Te({entity:e,isSelected:s,onClick:o}){const t=e.entityType==="personal",n=t?v.User:v.Building2;return r.jsxs("button",{type:"button",onClick:o,className:h("flex items-center gap-2 w-full px-2 py-1.5 rounded","text-sm transition-colors",s?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"),children:[r.jsx(n,{className:h("h-4 w-4",t?"text-blue-600 dark:text-blue-400":"text-purple-600 dark:text-purple-400")}),r.jsx("span",{className:"flex-1 text-left truncate",children:e.displayName}),s&&r.jsx(v.Check,{className:"h-4 w-4"})]})}const ie=[{value:J.EntityRole.OWNER,label:"Owner",description:"Full access to all settings and members",icon:v.Shield,color:"text-purple-600 dark:text-purple-400"},{value:J.EntityRole.ADMIN,label:"Admin",description:"Can manage projects and API keys",icon:v.Briefcase,color:"text-blue-600 dark:text-blue-400"},{value:J.EntityRole.MEMBER,label:"Member",description:"Read-only access",icon:v.Eye,color:"text-gray-600 dark:text-gray-400"}];function ce({value:e,onChange:s,disabled:o=!1,className:t,onTrack:n,trackingLabel:c,componentName:a="MemberRoleSelector"}){const[l,i]=$.useState(!1),m=ie.find(x=>x.value===e)||ie[2],f=()=>{o||(n?.({action:"toggle",trackingLabel:c,componentName:a}),i(!l))},k=x=>{n?.({action:"select",trackingLabel:c,componentName:a}),s(x),i(!1)};return r.jsxs("div",{className:h("relative",t),children:[r.jsxs("button",{type:"button",onClick:f,disabled:o,className:h("flex items-center gap-1.5 px-2 py-1 rounded border text-sm","bg-background transition-colors",o?"opacity-50 cursor-not-allowed":"hover:bg-muted cursor-pointer"),children:[r.jsx(m.icon,{className:h("h-3.5 w-3.5",m.color)}),r.jsx("span",{children:m.label}),r.jsx(v.ChevronDown,{className:h("h-3.5 w-3.5 text-muted-foreground transition-transform",l&&"rotate-180")})]}),l&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>i(!1)}),r.jsx("div",{className:h("absolute top-full right-0 mt-1 z-50","min-w-[200px] rounded-lg border bg-popover shadow-lg p-1","animate-in fade-in-0 zoom-in-95"),children:ie.map(x=>r.jsxs("button",{type:"button",onClick:()=>k(x.value),className:h("flex items-start gap-2 w-full px-2 py-2 rounded text-left","transition-colors",x.value===e?"bg-primary/10":"hover:bg-muted"),children:[r.jsx(x.icon,{className:h("h-4 w-4 mt-0.5",x.color)}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"font-medium text-sm",children:x.label}),x.value===e&&r.jsx(v.Check,{className:"h-3.5 w-3.5 text-primary"})]}),r.jsx("p",{className:"text-xs text-muted-foreground",children:x.description})]})]},x.value))})]})]})}const Tr={owner:"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",admin:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",member:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"};function Or({members:e,currentUserId:s,canManage:o=!1,onRoleChange:t,onRemove:n,isLoading:c=!1,emptyMessage:a="No members found",className:l,onTrack:i,trackingLabel:m,componentName:f="MemberList"}){if(c)return r.jsx("div",{className:h("space-y-2",l),children:[1,2,3].map(N=>r.jsx("div",{className:"h-16 rounded-lg border border-border bg-muted animate-pulse"},N))});if(e.length===0)return r.jsx("div",{className:h("text-center py-8 text-muted-foreground",l),children:a});const k=(N,y)=>{i?.({action:"role_change",trackingLabel:m,componentName:f}),t?.(N,y)},x=N=>{i?.({action:"remove",trackingLabel:m,componentName:f}),n?.(N)};return r.jsx("div",{className:h("divide-y divide-border rounded-lg border",l),children:e.map(N=>r.jsx(Gr,{member:N,isSelf:N.userId===s,canManage:o,onRoleChange:t?k:void 0,onRemove:n?x:void 0},N.id))})}function Gr({member:e,isSelf:s,canManage:o,onRoleChange:t,onRemove:n}){const c=e.user?.displayName||e.user?.email||"Unknown user",a=e.user?.email;return r.jsxs("div",{className:"flex items-center gap-3 p-3",children:[r.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-muted",children:r.jsx(v.User,{className:"h-5 w-5 text-muted-foreground"})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("p",{className:"font-medium text-foreground truncate",children:c}),s&&r.jsx("span",{className:"text-xs text-muted-foreground",children:"(you)"})]}),a&&r.jsx("p",{className:"text-sm text-muted-foreground truncate",children:a})]}),o&&t&&!s?r.jsx(ce,{value:e.role,onChange:l=>t(e.userId,l)}):r.jsx("span",{className:h("text-xs px-2 py-1 rounded-full font-medium",Tr[e.role]),children:e.role}),o&&n&&!s&&r.jsx("button",{type:"button",onClick:()=>n(e.userId),className:h("p-1.5 rounded hover:bg-destructive/10 text-muted-foreground","hover:text-destructive transition-colors"),title:"Remove member",children:r.jsx(v.Trash2,{className:"h-4 w-4"})})]})}function jr({onSubmit:e,isSubmitting:s=!1,defaultRole:o=J.EntityRole.MEMBER,className:t,onTrack:n,trackingLabel:c,componentName:a="InvitationForm"}){const[l,i]=$.useState(""),[m,f]=$.useState(o),[k,x]=$.useState(null),N=async y=>{if(y.preventDefault(),x(null),!l.trim()){x("Email is required");return}if(!Fr(l)){x("Please enter a valid email address");return}n?.({action:"submit",trackingLabel:c,componentName:a});try{await e({email:l.trim(),role:m}),i(""),f(o)}catch(w){x(w.message||"Failed to send invitation")}};return r.jsxs("form",{onSubmit:N,className:h("space-y-4",t),children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsxs("div",{className:"relative flex-1",children:[r.jsx(v.Mail,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),r.jsx("input",{type:"email",value:l,onChange:y=>i(y.target.value),placeholder:"Enter email address",disabled:s,className:h("w-full pl-10 pr-3 py-2 rounded-lg border bg-background","text-sm placeholder:text-muted-foreground","focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent",k&&"border-destructive focus:ring-destructive",s&&"opacity-50 cursor-not-allowed")})]}),r.jsx(ce,{value:m,onChange:f,disabled:s}),r.jsxs("button",{type:"submit",disabled:s||!l.trim(),className:h("flex items-center gap-2 px-4 py-2 rounded-lg","bg-primary text-primary-foreground font-medium text-sm","hover:bg-primary/90 transition-colors","focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2",(s||!l.trim())&&"opacity-50 cursor-not-allowed"),children:[s?r.jsx(v.Loader2,{className:"h-4 w-4 animate-spin"}):r.jsx(v.Send,{className:"h-4 w-4"}),r.jsx("span",{className:"hidden sm:inline",children:"Invite"})]})]}),k&&r.jsx("p",{className:"text-sm text-destructive",children:k})]})}function Fr(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}const Lr={owner:"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300",admin:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",member:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300"};function Br({invitations:e,mode:s,onCancel:o,onAccept:t,onDecline:n,isLoading:c=!1,emptyMessage:a="No pending invitations",className:l,onTrack:i,trackingLabel:m,componentName:f="InvitationList"}){const k=e.filter(w=>w.status==="pending");if(c)return r.jsx("div",{className:h("space-y-2",l),children:[1,2].map(w=>r.jsx("div",{className:"h-16 rounded-lg border border-border bg-muted animate-pulse"},w))});if(k.length===0)return r.jsx("div",{className:h("text-center py-8 text-muted-foreground",l),children:a});const x=w=>{i?.({action:"cancel",trackingLabel:m,componentName:f}),o?.(w)},N=w=>{i?.({action:"accept",trackingLabel:m,componentName:f}),t?.(w)},y=w=>{i?.({action:"decline",trackingLabel:m,componentName:f}),n?.(w)};return r.jsx("div",{className:h("divide-y divide-border rounded-lg border",l),children:k.map(w=>r.jsx(Vr,{invitation:w,mode:s,onCancel:o?x:void 0,onAccept:t?N:void 0,onDecline:n?y:void 0},w.id))})}function Vr({invitation:e,mode:s,onCancel:o,onAccept:t,onDecline:n}){const c=new Date(e.expiresAt),a=c<new Date,l=Math.ceil((c.getTime()-Date.now())/(1e3*60*60*24));return r.jsxs("div",{className:"flex items-center gap-3 p-3",children:[r.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-muted",children:r.jsx(v.Mail,{className:"h-5 w-5 text-muted-foreground"})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[s==="user"&&e.entity?r.jsx("p",{className:"font-medium text-foreground truncate",children:e.entity.displayName}):r.jsx("p",{className:"font-medium text-foreground truncate",children:e.email}),r.jsx("span",{className:h("text-xs px-2 py-0.5 rounded-full font-medium",Lr[e.role]),children:e.role})]}),r.jsxs("div",{className:"flex items-center gap-1.5 text-sm text-muted-foreground",children:[r.jsx(v.Clock,{className:"h-3.5 w-3.5"}),a?r.jsx("span",{className:"text-destructive",children:"Expired"}):r.jsxs("span",{children:["Expires in ",l," days"]})]})]}),s==="admin"&&o&&r.jsx("button",{type:"button",onClick:()=>o(e.id),className:h("p-1.5 rounded hover:bg-destructive/10 text-muted-foreground","hover:text-destructive transition-colors"),title:"Cancel invitation",children:r.jsx(v.XCircle,{className:"h-4 w-4"})}),s==="user"&&r.jsxs("div",{className:"flex items-center gap-2",children:[n&&r.jsxs("button",{type:"button",onClick:()=>n(e.token),className:h("flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm","border hover:bg-muted transition-colors"),children:[r.jsx(v.X,{className:"h-4 w-4"}),r.jsx("span",{children:"Decline"})]}),t&&r.jsxs("button",{type:"button",onClick:()=>t(e.token),disabled:a,className:h("flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm","bg-primary text-primary-foreground","hover:bg-primary/90 transition-colors",a&&"opacity-50 cursor-not-allowed"),children:[r.jsx(v.Check,{className:"h-4 w-4"}),r.jsx("span",{children:"Accept"})]})]})]})}S.EntityCard=Pe,S.EntityList=Er,S.EntitySelector=Pr,S.InvitationForm=jr,S.InvitationList=Br,S.MemberList=Or,S.MemberRoleSelector=ce,S.cn=h,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/entity-components",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Entity/Organization UI components for React",
5
5
  "type": "module",
6
6
  "main": "dist/index.umd.js",
@@ -40,7 +40,7 @@
40
40
  "peerDependencies": {
41
41
  "@sudobility/components": "*",
42
42
  "@sudobility/design": "^1.1.14",
43
- "@sudobility/types": "^1.9.37",
43
+ "@sudobility/types": "^1.9.43",
44
44
  "react": "^18.0.0 || ^19.0.0",
45
45
  "react-dom": "^18.0.0 || ^19.0.0"
46
46
  },
@@ -49,7 +49,7 @@
49
49
  "ajv": "^8.17.1",
50
50
  "@sudobility/components": "*",
51
51
  "@sudobility/design": "^1.1.14",
52
- "@sudobility/types": "^1.9.37",
52
+ "@sudobility/types": "^1.9.43",
53
53
  "@testing-library/dom": "^10.4.0",
54
54
  "@testing-library/jest-dom": "^6.4.2",
55
55
  "@testing-library/react": "^16.0.0",