@almadar/ui 4.56.4 → 4.57.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/avl/index.cjs +119 -6
- package/dist/avl/index.js +120 -7
- package/dist/components/atoms/Badge.d.ts +7 -0
- package/dist/components/index.cjs +120 -6
- package/dist/components/index.js +121 -7
- package/dist/components/molecules/TagInput.d.ts +52 -0
- package/dist/components/molecules/index.d.ts +1 -0
- package/dist/marketing/index.cjs +21 -2
- package/dist/marketing/index.d.cts +7 -0
- package/dist/marketing/index.js +22 -3
- package/dist/providers/index.cjs +119 -6
- package/dist/providers/index.js +119 -6
- package/dist/runtime/index.cjs +119 -6
- package/dist/runtime/index.js +119 -6
- package/package.json +1 -1
package/dist/providers/index.js
CHANGED
|
@@ -1571,7 +1571,7 @@ var init_Badge = __esm({
|
|
|
1571
1571
|
lg: "px-3 py-1.5 text-base"
|
|
1572
1572
|
};
|
|
1573
1573
|
Badge = React84__default.forwardRef(
|
|
1574
|
-
({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
|
|
1574
|
+
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
1575
1575
|
const iconSizes3 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
1576
1576
|
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
1577
1577
|
const I = resolveIcon(icon);
|
|
@@ -1585,12 +1585,31 @@ var init_Badge = __esm({
|
|
|
1585
1585
|
"inline-flex items-center gap-1 font-bold rounded-sm",
|
|
1586
1586
|
variantStyles3[variant],
|
|
1587
1587
|
sizeStyles3[size],
|
|
1588
|
+
onRemove && "pr-1",
|
|
1588
1589
|
className
|
|
1589
1590
|
),
|
|
1590
1591
|
...props,
|
|
1591
1592
|
children: [
|
|
1592
1593
|
resolvedIcon,
|
|
1593
|
-
children || (amount != null ? `${label ? `${label} ` : ""}${amount}` : label)
|
|
1594
|
+
children || (amount != null ? `${label ? `${label} ` : ""}${amount}` : label),
|
|
1595
|
+
onRemove ? /* @__PURE__ */ jsx(
|
|
1596
|
+
"button",
|
|
1597
|
+
{
|
|
1598
|
+
type: "button",
|
|
1599
|
+
"aria-label": removeLabel ?? "Remove",
|
|
1600
|
+
onClick: (e) => {
|
|
1601
|
+
e.stopPropagation();
|
|
1602
|
+
onRemove();
|
|
1603
|
+
},
|
|
1604
|
+
className: cn(
|
|
1605
|
+
"inline-flex items-center justify-center rounded-sm",
|
|
1606
|
+
"hover:bg-foreground/10 focus:outline-none focus:ring-1 focus:ring-ring",
|
|
1607
|
+
"transition-colors",
|
|
1608
|
+
size === "sm" ? "w-4 h-4 ml-0.5" : size === "md" ? "w-5 h-5 ml-1" : "w-6 h-6 ml-1"
|
|
1609
|
+
),
|
|
1610
|
+
children: /* @__PURE__ */ jsx(X, { className: iconSizes3[size] })
|
|
1611
|
+
}
|
|
1612
|
+
) : null
|
|
1594
1613
|
]
|
|
1595
1614
|
}
|
|
1596
1615
|
);
|
|
@@ -9392,7 +9411,7 @@ var init_MapView = __esm({
|
|
|
9392
9411
|
shadowSize: [41, 41]
|
|
9393
9412
|
});
|
|
9394
9413
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
9395
|
-
const { useEffect: useEffect68, useRef: useRef65, useCallback:
|
|
9414
|
+
const { useEffect: useEffect68, useRef: useRef65, useCallback: useCallback113, useState: useState98 } = React84__default;
|
|
9396
9415
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
9397
9416
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
9398
9417
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
@@ -9437,8 +9456,8 @@ var init_MapView = __esm({
|
|
|
9437
9456
|
showAttribution = true
|
|
9438
9457
|
}) {
|
|
9439
9458
|
const eventBus = useEventBus2();
|
|
9440
|
-
const [clickedPosition, setClickedPosition] =
|
|
9441
|
-
const handleMapClick =
|
|
9459
|
+
const [clickedPosition, setClickedPosition] = useState98(null);
|
|
9460
|
+
const handleMapClick = useCallback113((lat, lng) => {
|
|
9442
9461
|
if (showClickedPin) {
|
|
9443
9462
|
setClickedPosition({ lat, lng });
|
|
9444
9463
|
}
|
|
@@ -9447,7 +9466,7 @@ var init_MapView = __esm({
|
|
|
9447
9466
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
9448
9467
|
}
|
|
9449
9468
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
9450
|
-
const handleMarkerClick =
|
|
9469
|
+
const handleMarkerClick = useCallback113((marker) => {
|
|
9451
9470
|
onMarkerClick?.(marker);
|
|
9452
9471
|
if (markerClickEvent) {
|
|
9453
9472
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -29651,6 +29670,98 @@ var init_TagCloud = __esm({
|
|
|
29651
29670
|
TagCloud.displayName = "TagCloud";
|
|
29652
29671
|
}
|
|
29653
29672
|
});
|
|
29673
|
+
var TagInput;
|
|
29674
|
+
var init_TagInput = __esm({
|
|
29675
|
+
"components/molecules/TagInput.tsx"() {
|
|
29676
|
+
"use client";
|
|
29677
|
+
init_cn();
|
|
29678
|
+
init_useEventBus();
|
|
29679
|
+
init_Input();
|
|
29680
|
+
init_Badge();
|
|
29681
|
+
init_Stack();
|
|
29682
|
+
init_Typography();
|
|
29683
|
+
TagInput = ({
|
|
29684
|
+
value,
|
|
29685
|
+
onChange,
|
|
29686
|
+
placeholder,
|
|
29687
|
+
disabled = false,
|
|
29688
|
+
variant = "default",
|
|
29689
|
+
unique = true,
|
|
29690
|
+
helperText,
|
|
29691
|
+
className,
|
|
29692
|
+
addEvent,
|
|
29693
|
+
removeEvent
|
|
29694
|
+
}) => {
|
|
29695
|
+
const eventBus = useEventBus();
|
|
29696
|
+
const [draft, setDraft] = useState("");
|
|
29697
|
+
const commit = useCallback(() => {
|
|
29698
|
+
const tag = draft.trim();
|
|
29699
|
+
if (!tag) return;
|
|
29700
|
+
if (unique && value.includes(tag)) {
|
|
29701
|
+
setDraft("");
|
|
29702
|
+
return;
|
|
29703
|
+
}
|
|
29704
|
+
const next = [...value, tag];
|
|
29705
|
+
onChange?.(next);
|
|
29706
|
+
if (addEvent) {
|
|
29707
|
+
eventBus.emit(`UI:${addEvent}`, { tag, value: next });
|
|
29708
|
+
}
|
|
29709
|
+
setDraft("");
|
|
29710
|
+
}, [draft, value, onChange, unique, addEvent, eventBus]);
|
|
29711
|
+
const removeAt = useCallback(
|
|
29712
|
+
(index) => {
|
|
29713
|
+
if (disabled) return;
|
|
29714
|
+
const tag = value[index];
|
|
29715
|
+
const next = value.slice();
|
|
29716
|
+
next.splice(index, 1);
|
|
29717
|
+
onChange?.(next);
|
|
29718
|
+
if (removeEvent) {
|
|
29719
|
+
eventBus.emit(`UI:${removeEvent}`, { tag, index, value: next });
|
|
29720
|
+
}
|
|
29721
|
+
},
|
|
29722
|
+
[value, onChange, disabled, removeEvent, eventBus]
|
|
29723
|
+
);
|
|
29724
|
+
const handleKeyDown = useCallback(
|
|
29725
|
+
(e) => {
|
|
29726
|
+
if (disabled) return;
|
|
29727
|
+
if (e.key === "Enter") {
|
|
29728
|
+
e.preventDefault();
|
|
29729
|
+
commit();
|
|
29730
|
+
} else if (e.key === "Backspace" && draft.length === 0 && value.length > 0) {
|
|
29731
|
+
e.preventDefault();
|
|
29732
|
+
removeAt(value.length - 1);
|
|
29733
|
+
}
|
|
29734
|
+
},
|
|
29735
|
+
[commit, draft.length, value, removeAt, disabled]
|
|
29736
|
+
);
|
|
29737
|
+
return /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: cn("w-full", className), children: [
|
|
29738
|
+
value.length > 0 ? /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap", children: value.map((tag, index) => /* @__PURE__ */ jsx(
|
|
29739
|
+
Badge,
|
|
29740
|
+
{
|
|
29741
|
+
variant,
|
|
29742
|
+
size: "sm",
|
|
29743
|
+
onRemove: disabled ? void 0 : () => removeAt(index),
|
|
29744
|
+
removeLabel: `Remove ${tag}`,
|
|
29745
|
+
children: tag
|
|
29746
|
+
},
|
|
29747
|
+
`${tag}-${index}`
|
|
29748
|
+
)) }) : null,
|
|
29749
|
+
/* @__PURE__ */ jsx(
|
|
29750
|
+
Input,
|
|
29751
|
+
{
|
|
29752
|
+
value: draft,
|
|
29753
|
+
placeholder: placeholder ?? "Type and press Enter\u2026",
|
|
29754
|
+
disabled,
|
|
29755
|
+
onChange: (e) => setDraft(e.target.value),
|
|
29756
|
+
onKeyDown: handleKeyDown
|
|
29757
|
+
}
|
|
29758
|
+
),
|
|
29759
|
+
helperText ? /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: helperText }) : null
|
|
29760
|
+
] });
|
|
29761
|
+
};
|
|
29762
|
+
TagInput.displayName = "TagInput";
|
|
29763
|
+
}
|
|
29764
|
+
});
|
|
29654
29765
|
var ShowcaseCard;
|
|
29655
29766
|
var init_ShowcaseCard = __esm({
|
|
29656
29767
|
"components/molecules/ShowcaseCard.tsx"() {
|
|
@@ -45104,6 +45215,7 @@ var init_component_registry_generated = __esm({
|
|
|
45104
45215
|
init_Table();
|
|
45105
45216
|
init_Tabs();
|
|
45106
45217
|
init_TagCloud();
|
|
45218
|
+
init_TagInput();
|
|
45107
45219
|
init_TeamCard();
|
|
45108
45220
|
init_TeamOrganism();
|
|
45109
45221
|
init_TextHighlight();
|
|
@@ -45419,6 +45531,7 @@ var init_component_registry_generated = __esm({
|
|
|
45419
45531
|
"Table": Table,
|
|
45420
45532
|
"Tabs": Tabs,
|
|
45421
45533
|
"TagCloud": TagCloud,
|
|
45534
|
+
"TagInput": TagInput,
|
|
45422
45535
|
"TeamCard": TeamCard,
|
|
45423
45536
|
"TeamOrganism": TeamOrganism,
|
|
45424
45537
|
"TextHighlight": TextHighlight,
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -1901,7 +1901,7 @@ var init_Badge = __esm({
|
|
|
1901
1901
|
lg: "px-3 py-1.5 text-base"
|
|
1902
1902
|
};
|
|
1903
1903
|
Badge = React83__namespace.default.forwardRef(
|
|
1904
|
-
({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
|
|
1904
|
+
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
1905
1905
|
const iconSizes3 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
1906
1906
|
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
1907
1907
|
const I = resolveIcon(icon);
|
|
@@ -1915,12 +1915,31 @@ var init_Badge = __esm({
|
|
|
1915
1915
|
"inline-flex items-center gap-1 font-bold rounded-sm",
|
|
1916
1916
|
variantStyles3[variant],
|
|
1917
1917
|
sizeStyles3[size],
|
|
1918
|
+
onRemove && "pr-1",
|
|
1918
1919
|
className
|
|
1919
1920
|
),
|
|
1920
1921
|
...props,
|
|
1921
1922
|
children: [
|
|
1922
1923
|
resolvedIcon,
|
|
1923
|
-
children || (amount != null ? `${label ? `${label} ` : ""}${amount}` : label)
|
|
1924
|
+
children || (amount != null ? `${label ? `${label} ` : ""}${amount}` : label),
|
|
1925
|
+
onRemove ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1926
|
+
"button",
|
|
1927
|
+
{
|
|
1928
|
+
type: "button",
|
|
1929
|
+
"aria-label": removeLabel ?? "Remove",
|
|
1930
|
+
onClick: (e) => {
|
|
1931
|
+
e.stopPropagation();
|
|
1932
|
+
onRemove();
|
|
1933
|
+
},
|
|
1934
|
+
className: cn(
|
|
1935
|
+
"inline-flex items-center justify-center rounded-sm",
|
|
1936
|
+
"hover:bg-foreground/10 focus:outline-none focus:ring-1 focus:ring-ring",
|
|
1937
|
+
"transition-colors",
|
|
1938
|
+
size === "sm" ? "w-4 h-4 ml-0.5" : size === "md" ? "w-5 h-5 ml-1" : "w-6 h-6 ml-1"
|
|
1939
|
+
),
|
|
1940
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.X, { className: iconSizes3[size] })
|
|
1941
|
+
}
|
|
1942
|
+
) : null
|
|
1924
1943
|
]
|
|
1925
1944
|
}
|
|
1926
1945
|
);
|
|
@@ -9326,7 +9345,7 @@ var init_MapView = __esm({
|
|
|
9326
9345
|
shadowSize: [41, 41]
|
|
9327
9346
|
});
|
|
9328
9347
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
9329
|
-
const { useEffect: useEffect69, useRef: useRef65, useCallback:
|
|
9348
|
+
const { useEffect: useEffect69, useRef: useRef65, useCallback: useCallback113, useState: useState101 } = React83__namespace.default;
|
|
9330
9349
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
9331
9350
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
9332
9351
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
@@ -9371,8 +9390,8 @@ var init_MapView = __esm({
|
|
|
9371
9390
|
showAttribution = true
|
|
9372
9391
|
}) {
|
|
9373
9392
|
const eventBus = useEventBus2();
|
|
9374
|
-
const [clickedPosition, setClickedPosition] =
|
|
9375
|
-
const handleMapClick =
|
|
9393
|
+
const [clickedPosition, setClickedPosition] = useState101(null);
|
|
9394
|
+
const handleMapClick = useCallback113((lat, lng) => {
|
|
9376
9395
|
if (showClickedPin) {
|
|
9377
9396
|
setClickedPosition({ lat, lng });
|
|
9378
9397
|
}
|
|
@@ -9381,7 +9400,7 @@ var init_MapView = __esm({
|
|
|
9381
9400
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
9382
9401
|
}
|
|
9383
9402
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
9384
|
-
const handleMarkerClick =
|
|
9403
|
+
const handleMarkerClick = useCallback113((marker) => {
|
|
9385
9404
|
onMarkerClick?.(marker);
|
|
9386
9405
|
if (markerClickEvent) {
|
|
9387
9406
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -29264,6 +29283,98 @@ var init_TagCloud = __esm({
|
|
|
29264
29283
|
TagCloud.displayName = "TagCloud";
|
|
29265
29284
|
}
|
|
29266
29285
|
});
|
|
29286
|
+
var TagInput;
|
|
29287
|
+
var init_TagInput = __esm({
|
|
29288
|
+
"components/molecules/TagInput.tsx"() {
|
|
29289
|
+
"use client";
|
|
29290
|
+
init_cn();
|
|
29291
|
+
init_useEventBus();
|
|
29292
|
+
init_Input();
|
|
29293
|
+
init_Badge();
|
|
29294
|
+
init_Stack();
|
|
29295
|
+
init_Typography();
|
|
29296
|
+
TagInput = ({
|
|
29297
|
+
value,
|
|
29298
|
+
onChange,
|
|
29299
|
+
placeholder,
|
|
29300
|
+
disabled = false,
|
|
29301
|
+
variant = "default",
|
|
29302
|
+
unique = true,
|
|
29303
|
+
helperText,
|
|
29304
|
+
className,
|
|
29305
|
+
addEvent,
|
|
29306
|
+
removeEvent
|
|
29307
|
+
}) => {
|
|
29308
|
+
const eventBus = useEventBus();
|
|
29309
|
+
const [draft, setDraft] = React83.useState("");
|
|
29310
|
+
const commit = React83.useCallback(() => {
|
|
29311
|
+
const tag = draft.trim();
|
|
29312
|
+
if (!tag) return;
|
|
29313
|
+
if (unique && value.includes(tag)) {
|
|
29314
|
+
setDraft("");
|
|
29315
|
+
return;
|
|
29316
|
+
}
|
|
29317
|
+
const next = [...value, tag];
|
|
29318
|
+
onChange?.(next);
|
|
29319
|
+
if (addEvent) {
|
|
29320
|
+
eventBus.emit(`UI:${addEvent}`, { tag, value: next });
|
|
29321
|
+
}
|
|
29322
|
+
setDraft("");
|
|
29323
|
+
}, [draft, value, onChange, unique, addEvent, eventBus]);
|
|
29324
|
+
const removeAt = React83.useCallback(
|
|
29325
|
+
(index) => {
|
|
29326
|
+
if (disabled) return;
|
|
29327
|
+
const tag = value[index];
|
|
29328
|
+
const next = value.slice();
|
|
29329
|
+
next.splice(index, 1);
|
|
29330
|
+
onChange?.(next);
|
|
29331
|
+
if (removeEvent) {
|
|
29332
|
+
eventBus.emit(`UI:${removeEvent}`, { tag, index, value: next });
|
|
29333
|
+
}
|
|
29334
|
+
},
|
|
29335
|
+
[value, onChange, disabled, removeEvent, eventBus]
|
|
29336
|
+
);
|
|
29337
|
+
const handleKeyDown = React83.useCallback(
|
|
29338
|
+
(e) => {
|
|
29339
|
+
if (disabled) return;
|
|
29340
|
+
if (e.key === "Enter") {
|
|
29341
|
+
e.preventDefault();
|
|
29342
|
+
commit();
|
|
29343
|
+
} else if (e.key === "Backspace" && draft.length === 0 && value.length > 0) {
|
|
29344
|
+
e.preventDefault();
|
|
29345
|
+
removeAt(value.length - 1);
|
|
29346
|
+
}
|
|
29347
|
+
},
|
|
29348
|
+
[commit, draft.length, value, removeAt, disabled]
|
|
29349
|
+
);
|
|
29350
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", className: cn("w-full", className), children: [
|
|
29351
|
+
value.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(HStack, { gap: "xs", className: "flex-wrap", children: value.map((tag, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
29352
|
+
Badge,
|
|
29353
|
+
{
|
|
29354
|
+
variant,
|
|
29355
|
+
size: "sm",
|
|
29356
|
+
onRemove: disabled ? void 0 : () => removeAt(index),
|
|
29357
|
+
removeLabel: `Remove ${tag}`,
|
|
29358
|
+
children: tag
|
|
29359
|
+
},
|
|
29360
|
+
`${tag}-${index}`
|
|
29361
|
+
)) }) : null,
|
|
29362
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29363
|
+
Input,
|
|
29364
|
+
{
|
|
29365
|
+
value: draft,
|
|
29366
|
+
placeholder: placeholder ?? "Type and press Enter\u2026",
|
|
29367
|
+
disabled,
|
|
29368
|
+
onChange: (e) => setDraft(e.target.value),
|
|
29369
|
+
onKeyDown: handleKeyDown
|
|
29370
|
+
}
|
|
29371
|
+
),
|
|
29372
|
+
helperText ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", color: "muted", children: helperText }) : null
|
|
29373
|
+
] });
|
|
29374
|
+
};
|
|
29375
|
+
TagInput.displayName = "TagInput";
|
|
29376
|
+
}
|
|
29377
|
+
});
|
|
29267
29378
|
var ShowcaseCard;
|
|
29268
29379
|
var init_ShowcaseCard = __esm({
|
|
29269
29380
|
"components/molecules/ShowcaseCard.tsx"() {
|
|
@@ -44736,6 +44847,7 @@ var init_component_registry_generated = __esm({
|
|
|
44736
44847
|
init_Table();
|
|
44737
44848
|
init_Tabs();
|
|
44738
44849
|
init_TagCloud();
|
|
44850
|
+
init_TagInput();
|
|
44739
44851
|
init_TeamCard();
|
|
44740
44852
|
init_TeamOrganism();
|
|
44741
44853
|
init_TextHighlight();
|
|
@@ -45051,6 +45163,7 @@ var init_component_registry_generated = __esm({
|
|
|
45051
45163
|
"Table": Table,
|
|
45052
45164
|
"Tabs": Tabs,
|
|
45053
45165
|
"TagCloud": TagCloud,
|
|
45166
|
+
"TagInput": TagInput,
|
|
45054
45167
|
"TeamCard": TeamCard,
|
|
45055
45168
|
"TeamOrganism": TeamOrganism,
|
|
45056
45169
|
"TextHighlight": TextHighlight,
|
package/dist/runtime/index.js
CHANGED
|
@@ -1855,7 +1855,7 @@ var init_Badge = __esm({
|
|
|
1855
1855
|
lg: "px-3 py-1.5 text-base"
|
|
1856
1856
|
};
|
|
1857
1857
|
Badge = React83__default.forwardRef(
|
|
1858
|
-
({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
|
|
1858
|
+
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
1859
1859
|
const iconSizes3 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
1860
1860
|
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
1861
1861
|
const I = resolveIcon(icon);
|
|
@@ -1869,12 +1869,31 @@ var init_Badge = __esm({
|
|
|
1869
1869
|
"inline-flex items-center gap-1 font-bold rounded-sm",
|
|
1870
1870
|
variantStyles3[variant],
|
|
1871
1871
|
sizeStyles3[size],
|
|
1872
|
+
onRemove && "pr-1",
|
|
1872
1873
|
className
|
|
1873
1874
|
),
|
|
1874
1875
|
...props,
|
|
1875
1876
|
children: [
|
|
1876
1877
|
resolvedIcon,
|
|
1877
|
-
children || (amount != null ? `${label ? `${label} ` : ""}${amount}` : label)
|
|
1878
|
+
children || (amount != null ? `${label ? `${label} ` : ""}${amount}` : label),
|
|
1879
|
+
onRemove ? /* @__PURE__ */ jsx(
|
|
1880
|
+
"button",
|
|
1881
|
+
{
|
|
1882
|
+
type: "button",
|
|
1883
|
+
"aria-label": removeLabel ?? "Remove",
|
|
1884
|
+
onClick: (e) => {
|
|
1885
|
+
e.stopPropagation();
|
|
1886
|
+
onRemove();
|
|
1887
|
+
},
|
|
1888
|
+
className: cn(
|
|
1889
|
+
"inline-flex items-center justify-center rounded-sm",
|
|
1890
|
+
"hover:bg-foreground/10 focus:outline-none focus:ring-1 focus:ring-ring",
|
|
1891
|
+
"transition-colors",
|
|
1892
|
+
size === "sm" ? "w-4 h-4 ml-0.5" : size === "md" ? "w-5 h-5 ml-1" : "w-6 h-6 ml-1"
|
|
1893
|
+
),
|
|
1894
|
+
children: /* @__PURE__ */ jsx(X, { className: iconSizes3[size] })
|
|
1895
|
+
}
|
|
1896
|
+
) : null
|
|
1878
1897
|
]
|
|
1879
1898
|
}
|
|
1880
1899
|
);
|
|
@@ -9280,7 +9299,7 @@ var init_MapView = __esm({
|
|
|
9280
9299
|
shadowSize: [41, 41]
|
|
9281
9300
|
});
|
|
9282
9301
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
9283
|
-
const { useEffect: useEffect69, useRef: useRef65, useCallback:
|
|
9302
|
+
const { useEffect: useEffect69, useRef: useRef65, useCallback: useCallback113, useState: useState101 } = React83__default;
|
|
9284
9303
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
9285
9304
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
9286
9305
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
@@ -9325,8 +9344,8 @@ var init_MapView = __esm({
|
|
|
9325
9344
|
showAttribution = true
|
|
9326
9345
|
}) {
|
|
9327
9346
|
const eventBus = useEventBus2();
|
|
9328
|
-
const [clickedPosition, setClickedPosition] =
|
|
9329
|
-
const handleMapClick =
|
|
9347
|
+
const [clickedPosition, setClickedPosition] = useState101(null);
|
|
9348
|
+
const handleMapClick = useCallback113((lat, lng) => {
|
|
9330
9349
|
if (showClickedPin) {
|
|
9331
9350
|
setClickedPosition({ lat, lng });
|
|
9332
9351
|
}
|
|
@@ -9335,7 +9354,7 @@ var init_MapView = __esm({
|
|
|
9335
9354
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
9336
9355
|
}
|
|
9337
9356
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
9338
|
-
const handleMarkerClick =
|
|
9357
|
+
const handleMarkerClick = useCallback113((marker) => {
|
|
9339
9358
|
onMarkerClick?.(marker);
|
|
9340
9359
|
if (markerClickEvent) {
|
|
9341
9360
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -29218,6 +29237,98 @@ var init_TagCloud = __esm({
|
|
|
29218
29237
|
TagCloud.displayName = "TagCloud";
|
|
29219
29238
|
}
|
|
29220
29239
|
});
|
|
29240
|
+
var TagInput;
|
|
29241
|
+
var init_TagInput = __esm({
|
|
29242
|
+
"components/molecules/TagInput.tsx"() {
|
|
29243
|
+
"use client";
|
|
29244
|
+
init_cn();
|
|
29245
|
+
init_useEventBus();
|
|
29246
|
+
init_Input();
|
|
29247
|
+
init_Badge();
|
|
29248
|
+
init_Stack();
|
|
29249
|
+
init_Typography();
|
|
29250
|
+
TagInput = ({
|
|
29251
|
+
value,
|
|
29252
|
+
onChange,
|
|
29253
|
+
placeholder,
|
|
29254
|
+
disabled = false,
|
|
29255
|
+
variant = "default",
|
|
29256
|
+
unique = true,
|
|
29257
|
+
helperText,
|
|
29258
|
+
className,
|
|
29259
|
+
addEvent,
|
|
29260
|
+
removeEvent
|
|
29261
|
+
}) => {
|
|
29262
|
+
const eventBus = useEventBus();
|
|
29263
|
+
const [draft, setDraft] = useState("");
|
|
29264
|
+
const commit = useCallback(() => {
|
|
29265
|
+
const tag = draft.trim();
|
|
29266
|
+
if (!tag) return;
|
|
29267
|
+
if (unique && value.includes(tag)) {
|
|
29268
|
+
setDraft("");
|
|
29269
|
+
return;
|
|
29270
|
+
}
|
|
29271
|
+
const next = [...value, tag];
|
|
29272
|
+
onChange?.(next);
|
|
29273
|
+
if (addEvent) {
|
|
29274
|
+
eventBus.emit(`UI:${addEvent}`, { tag, value: next });
|
|
29275
|
+
}
|
|
29276
|
+
setDraft("");
|
|
29277
|
+
}, [draft, value, onChange, unique, addEvent, eventBus]);
|
|
29278
|
+
const removeAt = useCallback(
|
|
29279
|
+
(index) => {
|
|
29280
|
+
if (disabled) return;
|
|
29281
|
+
const tag = value[index];
|
|
29282
|
+
const next = value.slice();
|
|
29283
|
+
next.splice(index, 1);
|
|
29284
|
+
onChange?.(next);
|
|
29285
|
+
if (removeEvent) {
|
|
29286
|
+
eventBus.emit(`UI:${removeEvent}`, { tag, index, value: next });
|
|
29287
|
+
}
|
|
29288
|
+
},
|
|
29289
|
+
[value, onChange, disabled, removeEvent, eventBus]
|
|
29290
|
+
);
|
|
29291
|
+
const handleKeyDown = useCallback(
|
|
29292
|
+
(e) => {
|
|
29293
|
+
if (disabled) return;
|
|
29294
|
+
if (e.key === "Enter") {
|
|
29295
|
+
e.preventDefault();
|
|
29296
|
+
commit();
|
|
29297
|
+
} else if (e.key === "Backspace" && draft.length === 0 && value.length > 0) {
|
|
29298
|
+
e.preventDefault();
|
|
29299
|
+
removeAt(value.length - 1);
|
|
29300
|
+
}
|
|
29301
|
+
},
|
|
29302
|
+
[commit, draft.length, value, removeAt, disabled]
|
|
29303
|
+
);
|
|
29304
|
+
return /* @__PURE__ */ jsxs(VStack, { gap: "xs", className: cn("w-full", className), children: [
|
|
29305
|
+
value.length > 0 ? /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap", children: value.map((tag, index) => /* @__PURE__ */ jsx(
|
|
29306
|
+
Badge,
|
|
29307
|
+
{
|
|
29308
|
+
variant,
|
|
29309
|
+
size: "sm",
|
|
29310
|
+
onRemove: disabled ? void 0 : () => removeAt(index),
|
|
29311
|
+
removeLabel: `Remove ${tag}`,
|
|
29312
|
+
children: tag
|
|
29313
|
+
},
|
|
29314
|
+
`${tag}-${index}`
|
|
29315
|
+
)) }) : null,
|
|
29316
|
+
/* @__PURE__ */ jsx(
|
|
29317
|
+
Input,
|
|
29318
|
+
{
|
|
29319
|
+
value: draft,
|
|
29320
|
+
placeholder: placeholder ?? "Type and press Enter\u2026",
|
|
29321
|
+
disabled,
|
|
29322
|
+
onChange: (e) => setDraft(e.target.value),
|
|
29323
|
+
onKeyDown: handleKeyDown
|
|
29324
|
+
}
|
|
29325
|
+
),
|
|
29326
|
+
helperText ? /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: helperText }) : null
|
|
29327
|
+
] });
|
|
29328
|
+
};
|
|
29329
|
+
TagInput.displayName = "TagInput";
|
|
29330
|
+
}
|
|
29331
|
+
});
|
|
29221
29332
|
var ShowcaseCard;
|
|
29222
29333
|
var init_ShowcaseCard = __esm({
|
|
29223
29334
|
"components/molecules/ShowcaseCard.tsx"() {
|
|
@@ -44690,6 +44801,7 @@ var init_component_registry_generated = __esm({
|
|
|
44690
44801
|
init_Table();
|
|
44691
44802
|
init_Tabs();
|
|
44692
44803
|
init_TagCloud();
|
|
44804
|
+
init_TagInput();
|
|
44693
44805
|
init_TeamCard();
|
|
44694
44806
|
init_TeamOrganism();
|
|
44695
44807
|
init_TextHighlight();
|
|
@@ -45005,6 +45117,7 @@ var init_component_registry_generated = __esm({
|
|
|
45005
45117
|
"Table": Table,
|
|
45006
45118
|
"Tabs": Tabs,
|
|
45007
45119
|
"TagCloud": TagCloud,
|
|
45120
|
+
"TagInput": TagInput,
|
|
45008
45121
|
"TeamCard": TeamCard,
|
|
45009
45122
|
"TeamOrganism": TeamOrganism,
|
|
45010
45123
|
"TextHighlight": TextHighlight,
|