@beweco/aurora-ui 0.6.16 → 0.6.19

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
@@ -4,7 +4,7 @@ export { Slider } from '@heroui/react';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import { Icon } from '@iconify/react';
6
6
  export { loadIcons } from '@iconify/react';
7
- import React, { useId, useState, useCallback, useMemo, useEffect, createContext, useContext, useRef, useLayoutEffect, memo, createElement, forwardRef, useImperativeHandle } from 'react';
7
+ import React, { useId, useState, useCallback, useMemo, useEffect, createContext, useContext, useRef, useLayoutEffect, memo, createElement, Fragment as Fragment$1, forwardRef, useImperativeHandle } from 'react';
8
8
  import { ResponsiveContainer, AreaChart, CartesianGrid, XAxis, Tooltip, Area, LineChart, YAxis, Line } from 'recharts';
9
9
  import { createPortal } from 'react-dom';
10
10
  import { motion, AnimatePresence } from 'framer-motion';
@@ -6002,7 +6002,7 @@ var RangeFilter = function (_a) {
6002
6002
  // BASE FILTER SECTION COMPONENT
6003
6003
  // =========================================================================
6004
6004
  var FilterSection = function (_a) {
6005
- var filter = _a.filter, value = _a.value, onChange = _a.onChange, _b = _a.isExpanded, isExpanded = _b === void 0 ? false : _b, onToggleExpanded = _a.onToggleExpanded;
6005
+ var filter = _a.filter, translations = _a.translations, value = _a.value, onChange = _a.onChange, _b = _a.isExpanded, isExpanded = _b === void 0 ? false : _b, onToggleExpanded = _a.onToggleExpanded;
6006
6006
  var _c = useState(isExpanded), internalExpanded = _c[0], setInternalExpanded = _c[1];
6007
6007
  var handleToggleExpanded = function () {
6008
6008
  var newExpanded = !internalExpanded;
@@ -6038,7 +6038,10 @@ var FilterSection = function (_a) {
6038
6038
  case "text":
6039
6039
  return value && "value" in value && value.value !== "";
6040
6040
  case "number":
6041
- return value && "value" in value && value.value !== null && value.value !== undefined;
6041
+ return (value &&
6042
+ "value" in value &&
6043
+ value.value !== null &&
6044
+ value.value !== undefined);
6042
6045
  default:
6043
6046
  return false;
6044
6047
  }
@@ -6075,7 +6078,12 @@ var FilterSection = function (_a) {
6075
6078
  case "text":
6076
6079
  return value && "value" in value && value.value !== "" ? 1 : 0;
6077
6080
  case "number":
6078
- return value && "value" in value && value.value !== null && value.value !== undefined ? 1 : 0;
6081
+ return value &&
6082
+ "value" in value &&
6083
+ value.value !== null &&
6084
+ value.value !== undefined
6085
+ ? 1
6086
+ : 0;
6079
6087
  default:
6080
6088
  return 0;
6081
6089
  }
@@ -6085,7 +6093,7 @@ var FilterSection = function (_a) {
6085
6093
  case "select":
6086
6094
  return (jsx(SelectFilter, { filter: filter, value: value, onChange: onChange }));
6087
6095
  case "multiselect":
6088
- return (jsx(MultiSelectFilter, { filter: filter, value: value, onChange: onChange }));
6096
+ return (jsx(MultiSelectFilter, { filter: filter, value: value, onChange: onChange, translations: translations }));
6089
6097
  case "range":
6090
6098
  return (jsx(RangeFilterComponent, { filter: filter, value: value, onChange: onChange }));
6091
6099
  case "date":
@@ -6124,12 +6132,123 @@ var SelectFilter = function (_a) {
6124
6132
  // MULTISELECT FILTER
6125
6133
  // =========================================================================
6126
6134
  var MultiSelectFilter = function (_a) {
6127
- var filter = _a.filter, value = _a.value, onChange = _a.onChange;
6135
+ var _b, _c, _d, _e;
6136
+ var filter = _a.filter, value = _a.value, onChange = _a.onChange, translations = _a.translations;
6137
+ var triggerRef = useRef(null);
6138
+ var _f = useState(null), triggerWidthPx = _f[0], setTriggerWidthPx = _f[1];
6139
+ var _g = useState(false), isOpen = _g[0], setIsOpen = _g[1];
6140
+ var _h = useState(""), searchQuery = _h[0], setSearchQuery = _h[1];
6128
6141
  var currentValues = (value === null || value === void 0 ? void 0 : value.values) || [];
6129
- return (jsx(Select, { placeholder: "Seleccionar ".concat(filter.title.toLowerCase()), selectedKeys: currentValues, onSelectionChange: function (keys) {
6130
- var selectedKeys = Array.from(keys);
6131
- onChange({ values: selectedKeys });
6132
- }, selectionMode: "multiple", className: "w-full", children: filter.data.map(function (item) { return (jsx(SelectItem, { children: item.label }, item.value)); }) }));
6142
+ var searchable = filter.searchable === true;
6143
+ var searchPlaceholder = (_b = translations === null || translations === void 0 ? void 0 : translations.multiselectSearchPlaceholder) !== null && _b !== void 0 ? _b : "Buscar opciones...";
6144
+ var moreLabelTemplate = (_c = translations === null || translations === void 0 ? void 0 : translations.multiselectMoreLabel) !== null && _c !== void 0 ? _c : "+{more} más";
6145
+ var noResultsText = (_d = translations === null || translations === void 0 ? void 0 : translations.multiselectNoResults) !== null && _d !== void 0 ? _d : "Sin coincidencias";
6146
+ var triggerPlaceholder = "Seleccionar ".concat(filter.title.toLowerCase());
6147
+ var filteredData = useMemo(function () {
6148
+ if (!searchable) {
6149
+ return filter.data;
6150
+ }
6151
+ var q = searchQuery.trim().toLowerCase();
6152
+ if (!q) {
6153
+ return filter.data;
6154
+ }
6155
+ return filter.data.filter(function (item) {
6156
+ return currentValues.includes(item.value) ||
6157
+ item.label.toLowerCase().includes(q) ||
6158
+ item.value.toLowerCase().includes(q);
6159
+ });
6160
+ }, [filter.data, searchQuery, currentValues, searchable]);
6161
+ var syncPopoverWidthToTrigger = useCallback(function () {
6162
+ var _a;
6163
+ var w = (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth;
6164
+ if (w != null && w > 0) {
6165
+ setTriggerWidthPx(w);
6166
+ }
6167
+ }, []);
6168
+ useLayoutEffect(function () {
6169
+ var el = triggerRef.current;
6170
+ if (!el || typeof ResizeObserver === "undefined") {
6171
+ return;
6172
+ }
6173
+ var ro = new ResizeObserver(function () {
6174
+ syncPopoverWidthToTrigger();
6175
+ });
6176
+ ro.observe(el);
6177
+ return function () {
6178
+ ro.disconnect();
6179
+ };
6180
+ }, [syncPopoverWidthToTrigger]);
6181
+ var handleOpenChange = useCallback(function (open) {
6182
+ setIsOpen(open);
6183
+ if (!open) {
6184
+ setSearchQuery("");
6185
+ return;
6186
+ }
6187
+ requestAnimationFrame(function () {
6188
+ syncPopoverWidthToTrigger();
6189
+ });
6190
+ }, [syncPopoverWidthToTrigger]);
6191
+ var selectedKeys = useMemo(function () { return new Set(currentValues); }, [currentValues]);
6192
+ var handleListboxSelectionChange = useCallback(function (keys) {
6193
+ if (keys === "all") {
6194
+ onChange({
6195
+ values: filteredData.map(function (item) { return item.value; }),
6196
+ });
6197
+ return;
6198
+ }
6199
+ onChange({ values: Array.from(keys) });
6200
+ }, [filteredData, onChange]);
6201
+ var maxVisibleChips = Math.min(Math.max((_e = filter.maxVisibleChips) !== null && _e !== void 0 ? _e : 5, 1), 24);
6202
+ var triggerSelection = useMemo(function () {
6203
+ if (currentValues.length === 0) {
6204
+ return { visible: [], overflow: 0 };
6205
+ }
6206
+ var ordered = currentValues.map(function (val) {
6207
+ var _a;
6208
+ var meta = filter.data.find(function (d) { return d.value === val; });
6209
+ return { value: val, label: (_a = meta === null || meta === void 0 ? void 0 : meta.label) !== null && _a !== void 0 ? _a : val };
6210
+ });
6211
+ var visible = ordered.slice(0, maxVisibleChips);
6212
+ var overflow = Math.max(0, ordered.length - visible.length);
6213
+ return { visible: visible, overflow: overflow };
6214
+ }, [currentValues, filter.data, maxVisibleChips]);
6215
+ var triggerSelectionTitle = useMemo(function () {
6216
+ if (currentValues.length === 0) {
6217
+ return undefined;
6218
+ }
6219
+ return currentValues
6220
+ .map(function (val) {
6221
+ var _a;
6222
+ var meta = filter.data.find(function (d) { return d.value === val; });
6223
+ return (_a = meta === null || meta === void 0 ? void 0 : meta.label) !== null && _a !== void 0 ? _a : val;
6224
+ })
6225
+ .join(", ");
6226
+ }, [currentValues, filter.data]);
6227
+ var popoverWidthStyle = triggerWidthPx != null
6228
+ ? {
6229
+ width: triggerWidthPx,
6230
+ minWidth: triggerWidthPx,
6231
+ maxWidth: triggerWidthPx,
6232
+ }
6233
+ : undefined;
6234
+ return (jsxs(Popover, { isOpen: isOpen, onOpenChange: handleOpenChange, placement: "bottom-start", offset: 6,
6235
+ // Dentro de Drawer (modal + focus scope), blur al portal del popover cerraba el panel antes de poder usar el buscador.
6236
+ shouldCloseOnBlur: false, updatePositionDeps: [triggerWidthPx !== null && triggerWidthPx !== void 0 ? triggerWidthPx : 0], classNames: {
6237
+ base: "w-full min-w-0 max-w-none box-border",
6238
+ content: "w-full min-w-0 !max-w-none",
6239
+ }, style: popoverWidthStyle, children: [jsx(PopoverTrigger, { children: jsxs("button", { ref: triggerRef, type: "button", className: cn("flex w-full min-h-12 items-center justify-between gap-2 rounded-medium border border-default-200 bg-background px-3 py-2.5 text-left text-small transition-colors", "hover:border-default-300 focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background", isOpen && "border-primary"), "aria-expanded": isOpen, "aria-haspopup": "dialog", children: [jsx("span", { className: "line-clamp-2 min-w-0 flex-1 text-small font-medium leading-snug text-foreground", title: triggerSelectionTitle, children: triggerSelection.visible.length > 0 ? (jsxs(Fragment, { children: [triggerSelection.visible.map(function (item, index) { return (jsxs(Fragment$1, { children: [index > 0 ? (jsx("span", { className: "font-normal text-default-400", children: ", " })) : null, jsx("span", { children: item.label })] }, item.value)); }), triggerSelection.overflow > 0 ? (jsxs("span", { className: "font-normal text-default-500", children: [" ", moreLabelTemplate.replace("{more}", String(triggerSelection.overflow))] })) : null] })) : (jsx("span", { className: "font-normal text-default-400", children: triggerPlaceholder })) }), jsx(IconComponent, { icon: isOpen
6240
+ ? "solar:alt-arrow-up-outline"
6241
+ : "solar:alt-arrow-down-outline", className: "shrink-0 text-default-400", size: "sm", "aria-hidden": true })] }) }), jsx(PopoverContent, { className: "border border-default-200 bg-content1 p-0 shadow-medium", children: jsxs("div", { className: "flex w-full flex-col gap-0 p-2", children: [searchable && (jsx("div", { className: "border-b border-default-100 px-1 pb-2", children: jsx(Input, { type: "search", placeholder: searchPlaceholder, value: searchQuery, onValueChange: setSearchQuery, className: "w-full", size: "sm", variant: "flat", radius: "full", classNames: {
6242
+ base: "w-full",
6243
+ inputWrapper: "bg-default-100 shadow-none border-0 min-h-9 h-9",
6244
+ input: "text-small",
6245
+ }, endContent: jsx(IconComponent, { icon: "solar:magnifer-outline", className: "pointer-events-none shrink-0 text-default-400", size: "sm", "aria-hidden": true }), "aria-label": searchPlaceholder }) })), jsx("div", { className: "max-h-60 overflow-y-auto px-1 py-1", children: filteredData.length === 0 ? (jsx("p", { className: "px-2 py-3 text-center text-tiny text-default-400", children: noResultsText })) : (jsx(Listbox, { "aria-label": filter.title, variant: "flat", selectionMode: "multiple", selectionBehavior: "toggle", selectedKeys: selectedKeys, onSelectionChange: handleListboxSelectionChange, disallowEmptySelection: false, hideSelectedIcon: true, classNames: {
6246
+ base: "w-full gap-0.5 p-0",
6247
+ list: "gap-0.5",
6248
+ }, itemClasses: {
6249
+ base: "rounded-medium px-2 py-2.5 data-[hover=true]:bg-default-100 data-[selectable=true]:focus:bg-default-100 data-[selected=true]:bg-primary-50/80",
6250
+ title: "text-small font-normal text-default-600 data-[selected=true]:font-medium data-[selected=true]:text-primary",
6251
+ }, children: filteredData.map(function (item) { return (jsx(ListboxItem, { textValue: item.label, children: item.label }, item.value)); }) })) })] }) })] }));
6133
6252
  };
6134
6253
  // =========================================================================
6135
6254
  // RANGE FILTER
@@ -6216,7 +6335,7 @@ var NumberFilter = function (_a) {
6216
6335
  *
6217
6336
  * Características:
6218
6337
  * - Dynamic header with title and description
6219
- * - Body with configurable filters (select, multiselect, range, date)
6338
+ * - Body with configurable filters (select, multiselect con panel; buscador si `searchable: true`, range, date)
6220
6339
  * - Footer with action buttons (clear, cancel, apply)
6221
6340
  * - Internal state management of filters
6222
6341
  * - Callback for applying filters with processed values
@@ -6297,7 +6416,10 @@ var DrawerFilters = function (_a) {
6297
6416
  }
6298
6417
  break;
6299
6418
  case "number":
6300
- if (value && "value" in value && value.value !== null && value.value !== undefined) {
6419
+ if (value &&
6420
+ "value" in value &&
6421
+ value.value !== null &&
6422
+ value.value !== undefined) {
6301
6423
  processedFilters[key] = String(value.value);
6302
6424
  }
6303
6425
  break;
@@ -6312,7 +6434,7 @@ var DrawerFilters = function (_a) {
6312
6434
  onOpenChange(false);
6313
6435
  }, [filterValues, config.data, onApplyFilters, onOpenChange]);
6314
6436
  return (jsx(Drawer, { isOpen: isOpen, onOpenChange: handleOpenChange, placement: "right", size: "md", className: cn("drawer-filters", className), isDismissable: false, hideCloseButton: false, children: jsxs(DrawerContent, { children: [jsx(DrawerFiltersHeader, { title: config.title, description: config.description }), jsx(DrawerBody, { className: "px-6 py-10", children: jsx("div", { className: "space-y-3", children: config.data.map(function (filter) {
6315
- return (jsx(FilterSection, { filter: filter, value: filterValues[filter.key], onChange: function (value) { return handleFilterChange(filter.key, value); } }, filter.key));
6437
+ return (jsx(FilterSection, { filter: filter, translations: translations, value: filterValues[filter.key], onChange: function (value) { return handleFilterChange(filter.key, value); } }, filter.key));
6316
6438
  }) }) }), jsx(DrawerFiltersFooter, { onClearFilters: handleClearFilters, onCancel: handleCancel, onApplyFilters: handleApplyFilters, translations: translations })] }) }));
6317
6439
  };
6318
6440
  DrawerFilters.displayName = "DrawerFilters";
@@ -7014,7 +7136,157 @@ var ModalContent = ModalContent$1;
7014
7136
 
7015
7137
  var ModalHeader = ModalHeader$1;
7016
7138
 
7017
- var ModalBody = ModalBody$1;
7139
+ var ModalBody = forwardRef(function (props, forwardedRef) {
7140
+ var nodeRef = useRef(null);
7141
+ var callbackRef = useCallback(function (node) {
7142
+ nodeRef.current = node;
7143
+ if (forwardedRef) {
7144
+ if (typeof forwardedRef === "function")
7145
+ forwardedRef(node);
7146
+ else
7147
+ forwardedRef.current = node;
7148
+ }
7149
+ }, [forwardedRef]);
7150
+ useEffect(function () {
7151
+ var node = nodeRef.current;
7152
+ if (!node)
7153
+ return;
7154
+ var parent = node.parentElement;
7155
+ if (!parent)
7156
+ return;
7157
+ // Hide native scrollbar
7158
+ node.style.scrollbarWidth = "none";
7159
+ // Parent needs relative positioning for the track
7160
+ var parentPos = window.getComputedStyle(parent).position;
7161
+ if (parentPos === "static") {
7162
+ parent.style.position = "relative";
7163
+ }
7164
+ // Create track — placed on the PARENT so it doesn't scroll
7165
+ var track = document.createElement("div");
7166
+ track.setAttribute("data-auraui-scrollbar", "track");
7167
+ Object.assign(track.style, {
7168
+ position: "absolute",
7169
+ right: "20px",
7170
+ width: "6px",
7171
+ zIndex: "10",
7172
+ cursor: "pointer",
7173
+ });
7174
+ // Create thumb
7175
+ var thumb = document.createElement("div");
7176
+ thumb.setAttribute("data-auraui-scrollbar", "thumb");
7177
+ Object.assign(thumb.style, {
7178
+ width: "6px",
7179
+ borderRadius: "3px",
7180
+ backgroundColor: "rgba(255,255,255,0.28)",
7181
+ cursor: "grab",
7182
+ });
7183
+ track.appendChild(thumb);
7184
+ parent.appendChild(track);
7185
+ // --- Scroll position update ---
7186
+ var trackHeight = 0;
7187
+ var thumbH = 0;
7188
+ var update = function () {
7189
+ var scrollTop = node.scrollTop, scrollHeight = node.scrollHeight, clientHeight = node.clientHeight;
7190
+ var hasOverflow = scrollHeight > clientHeight;
7191
+ if (!hasOverflow) {
7192
+ track.style.display = "none";
7193
+ return;
7194
+ }
7195
+ track.style.display = "block";
7196
+ var nodeRect = node.getBoundingClientRect();
7197
+ var parentRect = parent.getBoundingClientRect();
7198
+ var trackTop = nodeRect.top - parentRect.top;
7199
+ trackHeight = nodeRect.height;
7200
+ track.style.top = "".concat(trackTop, "px");
7201
+ track.style.height = "".concat(trackHeight, "px");
7202
+ var ratio = clientHeight / scrollHeight;
7203
+ thumbH = Math.max(ratio * trackHeight, 30);
7204
+ var maxScroll = scrollHeight - clientHeight;
7205
+ var thumbTop = maxScroll > 0
7206
+ ? (scrollTop / maxScroll) * (trackHeight - thumbH)
7207
+ : 0;
7208
+ thumb.style.height = "".concat(thumbH, "px");
7209
+ thumb.style.marginTop = "".concat(thumbTop, "px");
7210
+ };
7211
+ node.addEventListener("scroll", update, { passive: true });
7212
+ var ro = new ResizeObserver(update);
7213
+ ro.observe(node);
7214
+ requestAnimationFrame(update);
7215
+ // --- Drag support ---
7216
+ var isDragging = false;
7217
+ var startY = 0;
7218
+ var startScrollTop = 0;
7219
+ var getIsDark = function () {
7220
+ return document.documentElement.classList.contains("dark") ||
7221
+ document.documentElement.getAttribute("data-theme") === "dark" ||
7222
+ document.body.classList.contains("dark");
7223
+ };
7224
+ var onMouseDown = function (e) {
7225
+ e.preventDefault();
7226
+ e.stopPropagation();
7227
+ isDragging = true;
7228
+ startY = e.clientY;
7229
+ startScrollTop = node.scrollTop;
7230
+ thumb.style.cursor = "grabbing";
7231
+ thumb.style.backgroundColor = getIsDark()
7232
+ ? "rgba(255,255,255,0.45)"
7233
+ : "rgba(0,0,0,0.55)";
7234
+ document.addEventListener("mousemove", onMouseMove);
7235
+ document.addEventListener("mouseup", onMouseUp);
7236
+ };
7237
+ var onMouseMove = function (e) {
7238
+ if (!isDragging)
7239
+ return;
7240
+ e.preventDefault();
7241
+ var deltaY = e.clientY - startY;
7242
+ var maxScroll = node.scrollHeight - node.clientHeight;
7243
+ var scrollDelta = (deltaY / (trackHeight - thumbH)) * maxScroll;
7244
+ node.scrollTop = startScrollTop + scrollDelta;
7245
+ };
7246
+ var onMouseUp = function () {
7247
+ isDragging = false;
7248
+ thumb.style.cursor = "grab";
7249
+ detectTheme(); // Reset thumb color
7250
+ document.removeEventListener("mousemove", onMouseMove);
7251
+ document.removeEventListener("mouseup", onMouseUp);
7252
+ };
7253
+ // Click on track to jump
7254
+ var onTrackClick = function (e) {
7255
+ if (e.target === thumb)
7256
+ return;
7257
+ var trackRect = track.getBoundingClientRect();
7258
+ var clickRatio = (e.clientY - trackRect.top) / trackHeight;
7259
+ node.scrollTop =
7260
+ clickRatio * (node.scrollHeight - node.clientHeight);
7261
+ };
7262
+ thumb.addEventListener("mousedown", onMouseDown);
7263
+ track.addEventListener("click", onTrackClick);
7264
+ // --- Theme detection ---
7265
+ var detectTheme = function () {
7266
+ if (isDragging)
7267
+ return;
7268
+ thumb.style.backgroundColor = getIsDark()
7269
+ ? "rgba(255,255,255,0.28)"
7270
+ : "rgba(0,0,0,0.4)";
7271
+ };
7272
+ detectTheme();
7273
+ var mo = new MutationObserver(detectTheme);
7274
+ mo.observe(document.documentElement, {
7275
+ attributes: true,
7276
+ attributeFilter: ["class", "data-theme", "style"],
7277
+ });
7278
+ return function () {
7279
+ node.removeEventListener("scroll", update);
7280
+ ro.disconnect();
7281
+ mo.disconnect();
7282
+ document.removeEventListener("mousemove", onMouseMove);
7283
+ document.removeEventListener("mouseup", onMouseUp);
7284
+ track.remove();
7285
+ };
7286
+ }, []);
7287
+ return (jsx(ModalBody$1, __assign({ ref: callbackRef }, props)));
7288
+ });
7289
+ ModalBody.displayName = "ModalBody";
7018
7290
 
7019
7291
  var ModalFooter = ModalFooter$1;
7020
7292
 
@@ -5,7 +5,7 @@ import type { DrawerFiltersProps } from "./DrawerFilters.types";
5
5
  *
6
6
  * Características:
7
7
  * - Dynamic header with title and description
8
- * - Body with configurable filters (select, multiselect, range, date)
8
+ * - Body with configurable filters (select, multiselect con panel; buscador si `searchable: true`, range, date)
9
9
  * - Footer with action buttons (clear, cancel, apply)
10
10
  * - Internal state management of filters
11
11
  * - Callback for applying filters with processed values
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerFilters.d.ts","sourceRoot":"","sources":["../../../../src/components/drawer-filters/DrawerFilters.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAEX,kBAAkB,EAOlB,MAAM,uBAAuB,CAAC;AAK/B;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqKtD,CAAC"}
1
+ {"version":3,"file":"DrawerFilters.d.ts","sourceRoot":"","sources":["../../../../src/components/drawer-filters/DrawerFilters.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAEX,kBAAkB,EAOlB,MAAM,uBAAuB,CAAC;AAK/B;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2KtD,CAAC"}
@@ -18,6 +18,16 @@ export interface MultiSelectFilterData extends BaseFilterData {
18
18
  label: string;
19
19
  value: string;
20
20
  }>;
21
+ /**
22
+ * Si es `true`, muestra un buscador dentro del panel del multiselect.
23
+ * Por defecto `false` (solo lista).
24
+ */
25
+ searchable?: boolean;
26
+ /**
27
+ * Cuántos nombres seleccionados se muestran en texto en el disparador; el resto con `translations.multiselectMoreLabel`.
28
+ * Por defecto `5` (mínimo efectivo 1).
29
+ */
30
+ maxVisibleChips?: number;
21
31
  }
22
32
  export interface RangeFilterData extends BaseFilterData {
23
33
  type: "range";
@@ -54,6 +64,20 @@ export interface NumberFilterData extends BaseFilterData {
54
64
  };
55
65
  }
56
66
  export type FilterData = SelectFilterData | MultiSelectFilterData | RangeFilterData | DateFilterData | TextFilterData | NumberFilterData;
67
+ export type DrawerFiltersTranslations = {
68
+ clearFilters?: string;
69
+ cancel?: string;
70
+ applyFilters?: string;
71
+ /** Placeholder del buscador en filtros `multiselect` cuando `searchable === true` */
72
+ multiselectSearchPlaceholder?: string;
73
+ /**
74
+ * Texto cuando hay más seleccionados que `maxVisibleChips` en el disparador.
75
+ * Debe incluir `{more}` = cantidad de ítems no mostrados como chip (p. ej. "+{more} más").
76
+ */
77
+ multiselectMoreLabel?: string;
78
+ /** Mensaje cuando el buscador no coincide con ninguna opción */
79
+ multiselectNoResults?: string;
80
+ };
57
81
  export interface DrawerFiltersConfig {
58
82
  title: string;
59
83
  description: string;
@@ -67,14 +91,11 @@ export interface DrawerFiltersProps {
67
91
  onClearFilters?: () => void;
68
92
  onCancel?: () => void;
69
93
  className?: string;
70
- translations?: {
71
- clearFilters?: string;
72
- cancel?: string;
73
- applyFilters?: string;
74
- };
94
+ translations?: DrawerFiltersTranslations;
75
95
  }
76
96
  export interface FilterSectionProps {
77
97
  filter: FilterData;
98
+ translations?: DrawerFiltersTranslations;
78
99
  value?: SelectFilterValue | MultiSelectFilterValue | RangeFilterValue | DateFilterValue | TextFilterValue | NumberFilterValue;
79
100
  onChange: (value: SelectFilterValue | MultiSelectFilterValue | RangeFilterValue | DateFilterValue | TextFilterValue | NumberFilterValue) => void;
80
101
  isExpanded?: boolean;
@@ -88,11 +109,7 @@ export interface DrawerFiltersFooterProps {
88
109
  onClearFilters: () => void;
89
110
  onCancel: () => void;
90
111
  onApplyFilters: () => void;
91
- translations?: {
92
- clearFilters?: string;
93
- cancel?: string;
94
- applyFilters?: string;
95
- };
112
+ translations?: DrawerFiltersTranslations;
96
113
  }
97
114
  export interface FilterValues {
98
115
  [key: string]: SelectFilterValue | MultiSelectFilterValue | RangeFilterValue | DateFilterValue | TextFilterValue | NumberFilterValue;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerFilters.types.d.ts","sourceRoot":"","sources":["../../../../src/components/drawer-filters/DrawerFilters.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DrawerFilters.types.d.ts","sourceRoot":"","sources":["../../../../src/components/drawer-filters/DrawerFilters.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/drawer-filters/_internal/FilterSection.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAGX,kBAAkB,EAWlB,MAAM,wBAAwB,CAAC;AAMhC,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8MtD,CAAC"}
1
+ {"version":3,"file":"FilterSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/drawer-filters/_internal/FilterSection.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAIX,kBAAkB,EAWlB,MAAM,wBAAwB,CAAC;AAMhC,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0NtD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { DrawerFilters } from "./DrawerFilters";
2
- export type { DrawerFiltersProps, DrawerFiltersConfig, FilterData, FilterType, FilterValues, SelectFilterData, MultiSelectFilterData, RangeFilterData, DateFilterData, } from "./DrawerFilters.types";
2
+ export type { DrawerFiltersProps, DrawerFiltersConfig, DrawerFiltersTranslations, FilterData, FilterType, FilterValues, SelectFilterData, MultiSelectFilterData, RangeFilterData, DateFilterData, } from "./DrawerFilters.types";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/drawer-filters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,YAAY,EACX,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,cAAc,GACd,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/drawer-filters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,YAAY,EACX,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,cAAc,GACd,MAAM,uBAAuB,CAAC"}
@@ -1,3 +1,7 @@
1
- declare const ModalBody: import("@heroui/react").InternalForwardRefRenderFunction<"div", import("@heroui/react").ModalBodyProps, never>;
1
+ declare const ModalBody: import("react").ForwardRefExoticComponent<((import("@heroui/react").OmitCommonProps<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof import("@heroui/react").ModalBodyProps> & import("@heroui/react").ModalBodyProps & {
2
+ as?: import("@heroui/react").As<any> | undefined;
3
+ }) | Omit<import("@heroui/react").OmitCommonProps<Omit<Omit<any, "ref">, never>, keyof import("@heroui/react").ModalBodyProps> & import("@heroui/react").ModalBodyProps & {
4
+ as?: import("@heroui/react").As<any> | undefined;
5
+ }, "ref">) & import("react").RefAttributes<HTMLElement>>;
2
6
  export default ModalBody;
3
7
  //# sourceMappingURL=ModalBody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalBody.d.ts","sourceRoot":"","sources":["../../../../../src/components/modal/_internal/ModalBody.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS,gHAAkB,CAAC;AAElC,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"ModalBody.d.ts","sourceRoot":"","sources":["../../../../../src/components/modal/_internal/ModalBody.tsx"],"names":[],"mappings":"AAYA,QAAA,MAAM,SAAS;;;;wDAqLd,CAAC;AAIF,eAAe,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beweco/aurora-ui",
3
- "version": "0.6.16",
3
+ "version": "0.6.19",
4
4
  "description": "Bewe Aurora UI Component Library",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.esm.js",
@@ -34,7 +34,9 @@
34
34
  "format": "biome format --write",
35
35
  "storybook": "storybook dev --port 6006",
36
36
  "chromatic": "npx chromatic --project-token=chpt_a33f7fd2ebb3349",
37
- "prepare": "husky"
37
+ "prepare": "husky",
38
+ "publish:with-env": "dotenv -e .env -- npm publish --access public",
39
+ "npm:whoami": "dotenv -e .env -- npm whoami"
38
40
  },
39
41
  "dependencies": {
40
42
  "@heroui/react": "2.7.11",
@@ -59,6 +61,7 @@
59
61
  },
60
62
  "devDependencies": {
61
63
  "@biomejs/biome": "^1.9.4",
64
+ "@internationalized/date": "^3.8.2",
62
65
  "@rollup/plugin-commonjs": "^28.0.6",
63
66
  "@rollup/plugin-node-resolve": "^16.0.1",
64
67
  "@rollup/plugin-typescript": "^12.1.4",
@@ -75,6 +78,7 @@
75
78
  "@types/react-dom": "^19.1.5",
76
79
  "autoprefixer": "^10.4.21",
77
80
  "chromatic": "^13.0.0",
81
+ "dotenv-cli": "^8.0.0",
78
82
  "husky": "^9.1.7",
79
83
  "postcss": "^8.5.5",
80
84
  "postcss-loader": "^8.1.1",
@@ -87,8 +91,7 @@
87
91
  "sass": "^1.89.2",
88
92
  "storybook": "^8.0.0",
89
93
  "tailwindcss": "3.4.17",
90
- "typescript": "^5.8.3",
91
- "@internationalized/date": "^3.8.2"
94
+ "typescript": "^5.8.3"
92
95
  },
93
96
  "type": "module"
94
97
  }