@papernote/ui 1.8.3 → 1.9.2
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/components/NotificationBell.d.ts +104 -0
- package/dist/components/NotificationBell.d.ts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.d.ts +106 -2
- package/dist/index.esm.js +247 -38
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +246 -36
- package/dist/index.js.map +1 -1
- package/dist/styles.css +17 -0
- package/package.json +1 -1
- package/src/components/NotificationBell.stories.tsx +759 -0
- package/src/components/NotificationBell.tsx +560 -0
- package/src/components/index.ts +4 -0
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { forwardRef, useState, useEffect, useCallback, useRef, useId, useImperativeHandle, useMemo, Children, isValidElement, cloneElement, Component, createContext as createContext$1, useLayoutEffect, createElement, useContext, useReducer } from 'react';
|
|
4
|
-
import { Loader2, X, EyeOff, Eye, AlertTriangle, CheckCircle, AlertCircle, ChevronDown, Search, Check, Minus, Star, Calendar as Calendar$1, ChevronLeft, ChevronRight, Clock, ChevronUp, Plus, TrendingUp, TrendingDown, Info, Trash2, ChevronsLeft, ChevronsRight, Circle, MoreVertical, GripVertical, Upload, Bold, Italic, Underline, List, ListOrdered, Code, Link, MoreHorizontal, Home, FileText, Image, File as File$1, Menu as Menu$1, ArrowDown, User, Settings, LogOut, Moon, Sun, Bell, Edit, Trash, Pin, PinOff, Download, Save, ArrowUpDown, Filter, XCircle, BarChart3, MessageSquare } from 'lucide-react';
|
|
4
|
+
import { Loader2, X, EyeOff, Eye, AlertTriangle, CheckCircle, AlertCircle, ChevronDown, Search, Check, Minus, Star, Calendar as Calendar$1, ChevronLeft, ChevronRight, Clock, ChevronUp, Plus, TrendingUp, TrendingDown, Info, Trash2, ChevronsLeft, ChevronsRight, Circle, MoreVertical, GripVertical, Upload, Bold, Italic, Underline, List, ListOrdered, Code, Link, MoreHorizontal, Home, FileText, Image, File as File$1, Menu as Menu$1, ArrowDown, User, Settings, LogOut, Moon, Sun, Bell, ExternalLink, Edit, Trash, Pin, PinOff, Download, Save, ArrowUpDown, Filter, XCircle, BarChart3, MessageSquare } from 'lucide-react';
|
|
5
5
|
import { createPortal } from 'react-dom';
|
|
6
6
|
import { useInRouterContext, useNavigate, useLocation, Link as Link$1 } from 'react-router-dom';
|
|
7
7
|
|
|
@@ -10056,6 +10056,207 @@ function NotificationIndicator({ count = 0, onClick, className = '', maxCount =
|
|
|
10056
10056
|
return (jsxs("button", { onClick: onClick, className: `relative bg-white p-2.5 rounded-lg text-ink-400 hover:text-ink-600 hover:bg-paper-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-accent-400 transition-all shadow-xs dark:bg-slate-800 dark:text-slate-400 dark:hover:text-slate-100 dark:hover:bg-slate-700 ${className}`, "aria-label": "View notifications", children: [jsx(Bell, { className: "h-5 w-5" }), showBadge && (jsx("span", { className: `absolute -top-1 -right-1 ${variantClasses[variant]} text-white text-xs font-semibold rounded-full h-5 min-w-5 px-1 flex items-center justify-center`, children: displayCount }))] }));
|
|
10057
10057
|
}
|
|
10058
10058
|
|
|
10059
|
+
/**
|
|
10060
|
+
* Format a date to a relative time string
|
|
10061
|
+
*/
|
|
10062
|
+
function formatTimeAgo(date) {
|
|
10063
|
+
const now = new Date();
|
|
10064
|
+
const then = new Date(date);
|
|
10065
|
+
const diffMs = now.getTime() - then.getTime();
|
|
10066
|
+
const diffSeconds = Math.floor(diffMs / 1000);
|
|
10067
|
+
const diffMinutes = Math.floor(diffSeconds / 60);
|
|
10068
|
+
const diffHours = Math.floor(diffMinutes / 60);
|
|
10069
|
+
const diffDays = Math.floor(diffHours / 24);
|
|
10070
|
+
if (diffSeconds < 60) {
|
|
10071
|
+
return 'Just now';
|
|
10072
|
+
}
|
|
10073
|
+
else if (diffMinutes < 60) {
|
|
10074
|
+
return `${diffMinutes}m ago`;
|
|
10075
|
+
}
|
|
10076
|
+
else if (diffHours < 24) {
|
|
10077
|
+
return `${diffHours}h ago`;
|
|
10078
|
+
}
|
|
10079
|
+
else if (diffDays < 7) {
|
|
10080
|
+
return `${diffDays}d ago`;
|
|
10081
|
+
}
|
|
10082
|
+
else {
|
|
10083
|
+
return then.toLocaleDateString();
|
|
10084
|
+
}
|
|
10085
|
+
}
|
|
10086
|
+
/**
|
|
10087
|
+
* Map notification type to Badge variant
|
|
10088
|
+
*/
|
|
10089
|
+
const typeToBadgeVariant = {
|
|
10090
|
+
info: 'info',
|
|
10091
|
+
success: 'success',
|
|
10092
|
+
warning: 'warning',
|
|
10093
|
+
error: 'error',
|
|
10094
|
+
};
|
|
10095
|
+
/**
|
|
10096
|
+
* Default labels for notification types
|
|
10097
|
+
*/
|
|
10098
|
+
const defaultTypeLabels = {
|
|
10099
|
+
info: 'Info',
|
|
10100
|
+
success: 'Success',
|
|
10101
|
+
warning: 'Warning',
|
|
10102
|
+
error: 'Alert',
|
|
10103
|
+
};
|
|
10104
|
+
/**
|
|
10105
|
+
* Map dropdown position to Popover placement
|
|
10106
|
+
* - bottom-right: Below bell, dropdown's right edge aligns with bell
|
|
10107
|
+
* - bottom-left: Below bell, dropdown's left edge aligns with bell
|
|
10108
|
+
* - top-right: Above bell, dropdown's right edge aligns with bell
|
|
10109
|
+
* - top-left: Above bell, dropdown's left edge aligns with bell
|
|
10110
|
+
*/
|
|
10111
|
+
function getPopoverPlacement(position) {
|
|
10112
|
+
switch (position) {
|
|
10113
|
+
case 'bottom-right':
|
|
10114
|
+
case 'right':
|
|
10115
|
+
return 'bottom-start'; // Below, extends to the right
|
|
10116
|
+
case 'bottom-left':
|
|
10117
|
+
case 'left':
|
|
10118
|
+
return 'bottom-end'; // Below, extends to the left
|
|
10119
|
+
case 'top-right':
|
|
10120
|
+
return 'top-start'; // Above, extends to the right
|
|
10121
|
+
case 'top-left':
|
|
10122
|
+
return 'top-end'; // Above, extends to the left
|
|
10123
|
+
default:
|
|
10124
|
+
return 'bottom-start';
|
|
10125
|
+
}
|
|
10126
|
+
}
|
|
10127
|
+
/**
|
|
10128
|
+
* NotificationBell - A bell icon with badge and dropdown for displaying notifications
|
|
10129
|
+
*
|
|
10130
|
+
* Displays a bell icon with an optional unread count badge. When clicked, shows a
|
|
10131
|
+
* dropdown panel with recent notifications, mark as read actions, and a link to
|
|
10132
|
+
* view all notifications.
|
|
10133
|
+
*
|
|
10134
|
+
* @example Basic usage (compact variant)
|
|
10135
|
+
* ```tsx
|
|
10136
|
+
* <NotificationBell
|
|
10137
|
+
* notifications={notifications}
|
|
10138
|
+
* onMarkAsRead={(id) => markRead(id)}
|
|
10139
|
+
* onMarkAllRead={() => markAllRead()}
|
|
10140
|
+
* onNotificationClick={(n) => navigate(n.actionUrl)}
|
|
10141
|
+
* onViewAll={() => navigate('/notifications')}
|
|
10142
|
+
* />
|
|
10143
|
+
* ```
|
|
10144
|
+
*
|
|
10145
|
+
* @example Detailed variant with labeled badges
|
|
10146
|
+
* ```tsx
|
|
10147
|
+
* <NotificationBell
|
|
10148
|
+
* notifications={notifications}
|
|
10149
|
+
* variant="detailed"
|
|
10150
|
+
* showUnreadInHeader
|
|
10151
|
+
* dropdownPosition="bottom-left"
|
|
10152
|
+
* />
|
|
10153
|
+
* ```
|
|
10154
|
+
*/
|
|
10155
|
+
function NotificationBell({ notifications, unreadCount: providedUnreadCount, onMarkAsRead, onMarkAllRead, onNotificationClick, onViewAll, loading = false, dropdownPosition = 'bottom-right', maxHeight = '400px', size = 'md', emptyMessage = 'No notifications', viewAllText = 'View all notifications', disabled = false, className = '', variant = 'compact', showUnreadInHeader = false, bellStyle = 'ghost', }) {
|
|
10156
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
10157
|
+
// Calculate unread count if not provided
|
|
10158
|
+
const unreadCount = useMemo(() => {
|
|
10159
|
+
if (providedUnreadCount !== undefined) {
|
|
10160
|
+
return providedUnreadCount;
|
|
10161
|
+
}
|
|
10162
|
+
return notifications.filter((n) => !n.isRead).length;
|
|
10163
|
+
}, [providedUnreadCount, notifications]);
|
|
10164
|
+
// Handle notification click
|
|
10165
|
+
const handleNotificationClick = useCallback((notification) => {
|
|
10166
|
+
onNotificationClick?.(notification);
|
|
10167
|
+
}, [onNotificationClick]);
|
|
10168
|
+
// Handle mark as read
|
|
10169
|
+
const handleMarkAsRead = useCallback((e, id) => {
|
|
10170
|
+
e.stopPropagation();
|
|
10171
|
+
onMarkAsRead?.(id);
|
|
10172
|
+
}, [onMarkAsRead]);
|
|
10173
|
+
// Handle mark all as read
|
|
10174
|
+
const handleMarkAllRead = useCallback(() => {
|
|
10175
|
+
onMarkAllRead?.();
|
|
10176
|
+
}, [onMarkAllRead]);
|
|
10177
|
+
// Handle view all
|
|
10178
|
+
const handleViewAll = useCallback(() => {
|
|
10179
|
+
onViewAll?.();
|
|
10180
|
+
setIsOpen(false);
|
|
10181
|
+
}, [onViewAll]);
|
|
10182
|
+
// Icon sizes based on button size
|
|
10183
|
+
const iconSizes = {
|
|
10184
|
+
sm: 'h-4 w-4',
|
|
10185
|
+
md: 'h-5 w-5',
|
|
10186
|
+
lg: 'h-6 w-6',
|
|
10187
|
+
};
|
|
10188
|
+
// Dropdown width based on size
|
|
10189
|
+
const dropdownWidths = {
|
|
10190
|
+
sm: 'w-72',
|
|
10191
|
+
md: 'w-80',
|
|
10192
|
+
lg: 'w-96',
|
|
10193
|
+
};
|
|
10194
|
+
// Outlined bell style classes
|
|
10195
|
+
const outlinedSizeClasses = {
|
|
10196
|
+
sm: 'p-2',
|
|
10197
|
+
md: 'p-3',
|
|
10198
|
+
lg: 'p-4',
|
|
10199
|
+
};
|
|
10200
|
+
// Trigger button
|
|
10201
|
+
const triggerButton = bellStyle === 'outlined' ? (jsxs("div", { className: "relative inline-block", children: [jsx("button", { className: `
|
|
10202
|
+
${outlinedSizeClasses[size]}
|
|
10203
|
+
bg-white border-2 border-paper-300 rounded-xl
|
|
10204
|
+
hover:bg-paper-50 hover:border-paper-400
|
|
10205
|
+
focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-accent-400
|
|
10206
|
+
transition-all duration-200
|
|
10207
|
+
disabled:opacity-40 disabled:cursor-not-allowed
|
|
10208
|
+
${className}
|
|
10209
|
+
`, disabled: disabled, "aria-label": unreadCount > 0
|
|
10210
|
+
? `Notifications - ${unreadCount} unread`
|
|
10211
|
+
: 'Notifications', children: jsx(Bell, { className: `${iconSizes[size]} text-ink-600` }) }), unreadCount > 0 && (jsx("span", { className: `
|
|
10212
|
+
absolute -top-1 -right-1
|
|
10213
|
+
flex items-center justify-center
|
|
10214
|
+
min-w-[18px] h-[18px] px-1.5
|
|
10215
|
+
rounded-full text-white font-semibold text-[11px]
|
|
10216
|
+
bg-error-500 shadow-sm
|
|
10217
|
+
pointer-events-none
|
|
10218
|
+
`, "aria-label": `${unreadCount > 99 ? '99+' : unreadCount} notifications`, children: unreadCount > 99 ? '99+' : unreadCount }))] })) : (jsx(Button, { variant: "ghost", iconOnly: true, size: size, disabled: disabled, badge: unreadCount > 0 ? unreadCount : undefined, badgeVariant: "error", "aria-label": unreadCount > 0
|
|
10219
|
+
? `Notifications - ${unreadCount} unread`
|
|
10220
|
+
: 'Notifications', className: className, children: jsx(Bell, { className: iconSizes[size] }) }));
|
|
10221
|
+
// Header title with optional unread count
|
|
10222
|
+
const headerTitle = showUnreadInHeader && unreadCount > 0
|
|
10223
|
+
? `Notifications (${unreadCount} unread)`
|
|
10224
|
+
: 'Notifications';
|
|
10225
|
+
// Render compact notification item
|
|
10226
|
+
const renderCompactItem = (notification) => (jsxs("div", { className: "flex gap-3", children: [jsx("div", { className: "flex-shrink-0 pt-1", children: jsx(Badge, { dot: true, variant: typeToBadgeVariant[notification.type], size: "sm" }) }), jsxs("div", { className: "flex-1 min-w-0", children: [jsx(Text, { size: "sm", weight: notification.priority === 'high' ||
|
|
10227
|
+
notification.priority === 'urgent' ||
|
|
10228
|
+
!notification.isRead
|
|
10229
|
+
? 'medium'
|
|
10230
|
+
: 'normal', truncate: true, children: notification.title }), jsx(Text, { size: "xs", color: "muted", lineClamp: 2, className: "mt-0.5", children: notification.message }), jsx(Text, { size: "xs", color: "muted", className: "mt-1", children: formatTimeAgo(notification.createdAt) })] }), !notification.isRead && onMarkAsRead && (jsx("button", { className: "flex-shrink-0 p-1 text-ink-400 hover:text-ink-600 hover:bg-paper-100 rounded transition-colors", onClick: (e) => handleMarkAsRead(e, notification.id), "aria-label": "Mark as read", title: "Mark as read", children: jsx(Check, { className: "h-4 w-4" }) }))] }));
|
|
10231
|
+
// Render detailed notification item
|
|
10232
|
+
const renderDetailedItem = (notification) => (jsxs("div", { className: "flex gap-3", children: [jsxs("div", { className: "flex-1 min-w-0", children: [jsxs("div", { className: "flex items-start justify-between gap-2", children: [jsx(Text, { size: "sm", weight: notification.priority === 'high' ||
|
|
10233
|
+
notification.priority === 'urgent' ||
|
|
10234
|
+
!notification.isRead
|
|
10235
|
+
? 'semibold'
|
|
10236
|
+
: 'medium', className: "flex-1", children: notification.title }), jsx(Text, { size: "xs", color: "muted", className: "flex-shrink-0 whitespace-nowrap", children: formatTimeAgo(notification.createdAt) })] }), jsx(Text, { size: "xs", color: "muted", lineClamp: 2, className: "mt-1", children: notification.message }), jsx("div", { className: "mt-2", children: jsx(Badge, { variant: typeToBadgeVariant[notification.type], size: "sm", children: notification.typeLabel || defaultTypeLabels[notification.type] }) })] }), !notification.isRead && onMarkAsRead && (jsx("button", { className: "flex-shrink-0 p-1 text-ink-400 hover:text-ink-600 hover:bg-paper-100 rounded transition-colors self-center", onClick: (e) => handleMarkAsRead(e, notification.id), "aria-label": "Mark as read", title: "Mark as read", children: jsx(Check, { className: "h-4 w-4" }) }))] }));
|
|
10237
|
+
// Dropdown content
|
|
10238
|
+
const dropdownContent = (jsxs("div", { className: `${dropdownWidths[size]} bg-white`, children: [jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-b border-paper-200", children: [jsx(Text, { weight: "semibold", size: "sm", children: headerTitle }), unreadCount > 0 && onMarkAllRead && (jsxs("button", { className: "flex items-center gap-1.5 text-xs text-ink-600 hover:text-ink-800 transition-colors", onClick: handleMarkAllRead, children: [jsx(Check, { className: "h-3.5 w-3.5" }), "Mark all read"] }))] }), jsx("div", { className: "overflow-y-auto", style: { maxHeight }, role: "list", "aria-label": "Notifications", children: loading ? (
|
|
10239
|
+
// Loading state
|
|
10240
|
+
jsx("div", { className: "p-4", children: jsx(Stack, { spacing: "sm", children: [1, 2, 3].map((i) => (jsxs("div", { className: "flex gap-3", children: [variant === 'compact' && (jsx(Skeleton, { className: "h-4 w-4 rounded-full flex-shrink-0" })), jsxs("div", { className: "flex-1", children: [jsxs("div", { className: "flex justify-between", children: [jsx(Skeleton, { className: "h-4 w-3/4 mb-2" }), variant === 'detailed' && (jsx(Skeleton, { className: "h-3 w-12" }))] }), jsx(Skeleton, { className: "h-3 w-full mb-1" }), variant === 'compact' ? (jsx(Skeleton, { className: "h-3 w-1/4" })) : (jsx(Skeleton, { className: "h-5 w-16 mt-2" }))] })] }, i))) }) })) : notifications.length === 0 ? (
|
|
10241
|
+
// Empty state
|
|
10242
|
+
jsxs("div", { className: "py-8 px-4 text-center", children: [jsx(Bell, { className: "h-10 w-10 text-ink-300 mx-auto mb-3" }), jsx(Text, { color: "muted", size: "sm", children: emptyMessage })] })) : (
|
|
10243
|
+
// Notification items
|
|
10244
|
+
notifications.map((notification) => (jsx("div", { role: "listitem", className: `
|
|
10245
|
+
px-4 py-3 border-b border-paper-100 last:border-b-0
|
|
10246
|
+
hover:bg-paper-50 transition-colors cursor-pointer
|
|
10247
|
+
${!notification.isRead ? 'bg-primary-50/30' : ''}
|
|
10248
|
+
${notification.priority === 'urgent' ? 'border-l-2 border-l-error-500' : ''}
|
|
10249
|
+
`, onClick: () => handleNotificationClick(notification), onKeyDown: (e) => {
|
|
10250
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
10251
|
+
e.preventDefault();
|
|
10252
|
+
handleNotificationClick(notification);
|
|
10253
|
+
}
|
|
10254
|
+
}, tabIndex: 0, children: variant === 'compact'
|
|
10255
|
+
? renderCompactItem(notification)
|
|
10256
|
+
: renderDetailedItem(notification) }, notification.id)))) }), onViewAll && notifications.length > 0 && (jsx("div", { className: "px-4 py-3 border-t border-paper-200", children: jsx(Button, { variant: "ghost", size: "sm", fullWidth: true, onClick: handleViewAll, icon: jsx(ExternalLink, { className: "h-3.5 w-3.5" }), iconPosition: "right", children: viewAllText }) }))] }));
|
|
10257
|
+
return (jsx(Popover, { trigger: triggerButton, placement: getPopoverPlacement(dropdownPosition), triggerMode: "click", showArrow: false, offset: 4, open: isOpen, onOpenChange: setIsOpen, closeOnClickOutside: true, closeOnEscape: true, disabled: disabled, className: "p-0 overflow-hidden", children: dropdownContent }));
|
|
10258
|
+
}
|
|
10259
|
+
|
|
10059
10260
|
/**
|
|
10060
10261
|
* Get value from item by key path (supports nested keys like 'user.name')
|
|
10061
10262
|
*/
|
|
@@ -11072,44 +11273,52 @@ function getAugmentedNamespace(n) {
|
|
|
11072
11273
|
* (A1, A1:C5, ...)
|
|
11073
11274
|
*/
|
|
11074
11275
|
|
|
11075
|
-
|
|
11276
|
+
var collection;
|
|
11277
|
+
var hasRequiredCollection;
|
|
11278
|
+
|
|
11279
|
+
function requireCollection () {
|
|
11280
|
+
if (hasRequiredCollection) return collection;
|
|
11281
|
+
hasRequiredCollection = 1;
|
|
11282
|
+
class Collection {
|
|
11076
11283
|
|
|
11077
|
-
|
|
11078
|
-
|
|
11079
|
-
|
|
11080
|
-
|
|
11081
|
-
|
|
11082
|
-
|
|
11083
|
-
|
|
11084
|
-
|
|
11085
|
-
|
|
11086
|
-
|
|
11087
|
-
|
|
11284
|
+
constructor(data, refs) {
|
|
11285
|
+
if (data == null && refs == null) {
|
|
11286
|
+
this._data = [];
|
|
11287
|
+
this._refs = [];
|
|
11288
|
+
} else {
|
|
11289
|
+
if (data.length !== refs.length)
|
|
11290
|
+
throw Error('Collection: data length should match references length.');
|
|
11291
|
+
this._data = data;
|
|
11292
|
+
this._refs = refs;
|
|
11293
|
+
}
|
|
11294
|
+
}
|
|
11088
11295
|
|
|
11089
|
-
|
|
11090
|
-
|
|
11091
|
-
|
|
11296
|
+
get data() {
|
|
11297
|
+
return this._data;
|
|
11298
|
+
}
|
|
11092
11299
|
|
|
11093
|
-
|
|
11094
|
-
|
|
11095
|
-
|
|
11300
|
+
get refs() {
|
|
11301
|
+
return this._refs;
|
|
11302
|
+
}
|
|
11096
11303
|
|
|
11097
|
-
|
|
11098
|
-
|
|
11099
|
-
|
|
11304
|
+
get length() {
|
|
11305
|
+
return this._data.length;
|
|
11306
|
+
}
|
|
11100
11307
|
|
|
11101
|
-
|
|
11102
|
-
|
|
11103
|
-
|
|
11104
|
-
|
|
11105
|
-
|
|
11106
|
-
|
|
11107
|
-
|
|
11108
|
-
|
|
11109
|
-
|
|
11110
|
-
}
|
|
11308
|
+
/**
|
|
11309
|
+
* Add data and references to this collection.
|
|
11310
|
+
* @param {{}} obj - data
|
|
11311
|
+
* @param {{}} ref - reference
|
|
11312
|
+
*/
|
|
11313
|
+
add(obj, ref) {
|
|
11314
|
+
this._data.push(obj);
|
|
11315
|
+
this._refs.push(ref);
|
|
11316
|
+
}
|
|
11317
|
+
}
|
|
11111
11318
|
|
|
11112
|
-
|
|
11319
|
+
collection = Collection;
|
|
11320
|
+
return collection;
|
|
11321
|
+
}
|
|
11113
11322
|
|
|
11114
11323
|
var helpers;
|
|
11115
11324
|
var hasRequiredHelpers;
|
|
@@ -11118,7 +11327,7 @@ function requireHelpers () {
|
|
|
11118
11327
|
if (hasRequiredHelpers) return helpers;
|
|
11119
11328
|
hasRequiredHelpers = 1;
|
|
11120
11329
|
const FormulaError = requireError();
|
|
11121
|
-
const Collection =
|
|
11330
|
+
const Collection = requireCollection();
|
|
11122
11331
|
|
|
11123
11332
|
const Types = {
|
|
11124
11333
|
NUMBER: 0,
|
|
@@ -20772,7 +20981,7 @@ var engineering = EngineeringFunctions;
|
|
|
20772
20981
|
|
|
20773
20982
|
const FormulaError$b = requireError();
|
|
20774
20983
|
const {FormulaHelpers: FormulaHelpers$8, Types: Types$6, WildCard, Address: Address$3} = requireHelpers();
|
|
20775
|
-
const Collection$2 =
|
|
20984
|
+
const Collection$2 = requireCollection();
|
|
20776
20985
|
const H$5 = FormulaHelpers$8;
|
|
20777
20986
|
|
|
20778
20987
|
const ReferenceFunctions$1 = {
|
|
@@ -32400,7 +32609,7 @@ var parsing = {
|
|
|
32400
32609
|
const FormulaError$4 = requireError();
|
|
32401
32610
|
const {Address: Address$1} = requireHelpers();
|
|
32402
32611
|
const {Prefix: Prefix$1, Postfix: Postfix$1, Infix: Infix$1, Operators: Operators$1} = operators;
|
|
32403
|
-
const Collection$1 =
|
|
32612
|
+
const Collection$1 = requireCollection();
|
|
32404
32613
|
const MAX_ROW$1 = 1048576, MAX_COLUMN$1 = 16384;
|
|
32405
32614
|
const {NotAllInputParsedException} = require$$4;
|
|
32406
32615
|
|
|
@@ -33162,7 +33371,7 @@ var hooks$1 = {
|
|
|
33162
33371
|
const FormulaError$2 = requireError();
|
|
33163
33372
|
const {FormulaHelpers: FormulaHelpers$1, Types, Address} = requireHelpers();
|
|
33164
33373
|
const {Prefix, Postfix, Infix, Operators} = operators;
|
|
33165
|
-
const Collection =
|
|
33374
|
+
const Collection = requireCollection();
|
|
33166
33375
|
const MAX_ROW = 1048576, MAX_COLUMN = 16384;
|
|
33167
33376
|
|
|
33168
33377
|
let Utils$1 = class Utils {
|
|
@@ -57667,5 +57876,5 @@ function Responsive({ mobile, tablet, desktop, }) {
|
|
|
57667
57876
|
return jsx(Fragment, { children: mobile || tablet || desktop });
|
|
57668
57877
|
}
|
|
57669
57878
|
|
|
57670
|
-
export { Accordion, ActionBar, ActionBarCenter, ActionBarLeft, ActionBarRight, ActionButton, AdminModal, Alert, AlertDialog, AppLayout, Autocomplete, Avatar, BREAKPOINTS, Badge, BottomNavigation, BottomNavigationSpacer, BottomSheet, BottomSheetActions, BottomSheetContent, BottomSheetHeader, Box, Breadcrumbs, Button, ButtonGroup, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardView, Carousel, Checkbox, CheckboxList, Chip, ChipGroup, Collapsible, ColorPicker, Combobox, ComingSoon, CommandPalette, CompactStat, ConfirmDialog, ContextMenu, ControlBar, CurrencyDisplay, CurrencyInput, Dashboard, DashboardContent, DashboardHeader, DataGrid, DataTable, DataTableCardView, DateDisplay, DatePicker, DateRangePicker, DateTimePicker, DesktopOnly, Drawer, DrawerFooter, DropZone, Dropdown, DropdownTrigger, EmptyState, ErrorBoundary, ExpandablePanel, ExpandablePanelContainer, ExpandablePanelSpacer, ExpandableRowButton, ExpandableToolbar, ExpandedRowEditForm, ExportButton, FORMULA_CATEGORIES, FORMULA_DEFINITIONS, FORMULA_NAMES, FieldArray, FileUpload, FilterBar, FilterControls, FilterStatusBanner, FloatingActionButton, Form, FormContext, FormControl, FormWizard, Grid, GridItem, Hide, HorizontalScroll, HoverCard, InfiniteScroll, Input, KanbanBoard, Layout, Loading, LoadingOverlay, Logo, MarkdownEditor, MaskedInput, Menu, MenuDivider, MobileHeader, MobileHeaderSpacer, MobileLayout, MobileOnly, MobileProvider, Modal, ModalFooter, MultiSelect, NotificationBanner, NotificationBar, NotificationIndicator, NumberInput, Page, PageHeader, PageLayout, PageNavigation, Pagination, PasswordInput, Popover, Progress, PullToRefresh, QueryTransparency, RadioGroup, Rating, Responsive, RichTextEditor, SearchBar, SearchableList, Select, Separator, Show, Sidebar, SidebarGroup, Skeleton, SkeletonCard$1 as SkeletonCard, SkeletonTable, Slider, Spreadsheet, SpreadsheetReport, Stack, StatCard, StatItem, StatsCardGrid, StatsGrid, StatusBadge, StatusBar, StepIndicator, Stepper, SwipeActions, SwipeableCard, Switch, Tabs, Text, Textarea, ThemeToggle, TimePicker, Timeline, Toast, ToastContainer, Tooltip, Transfer, TreeView, TwoColumnContent, UserProfileButton, addErrorMessage, addInfoMessage, addSuccessMessage, addWarningMessage, calculateColumnWidth, createActionsSection, createFiltersSection, createMultiSheetExcel, createPageControlsSection, createQueryDetailsSection, exportDataTableToExcel, exportToExcel, formatStatisticValue, formatStatistics, getFormula, getFormulasByCategory, loadColumnOrder, loadColumnWidths, reorderArray, saveColumnOrder, saveColumnWidths, searchFormulas, statusManager, useBreadcrumbReset, useBreakpoint, useBreakpointValue, useColumnReorder, useColumnResize, useCommandPalette, useConfirmDialog, useFABScroll, useFormContext, useIsDesktop, useIsMobile, useIsTablet, useIsTouchDevice, useMediaQuery, useMobileContext, useOrientation, usePrefersMobile, useResponsiveCallback, useSafeAreaInsets, useViewportSize, withMobileContext };
|
|
57879
|
+
export { Accordion, ActionBar, ActionBarCenter, ActionBarLeft, ActionBarRight, ActionButton, AdminModal, Alert, AlertDialog, AppLayout, Autocomplete, Avatar, BREAKPOINTS, Badge, BottomNavigation, BottomNavigationSpacer, BottomSheet, BottomSheetActions, BottomSheetContent, BottomSheetHeader, Box, Breadcrumbs, Button, ButtonGroup, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardView, Carousel, Checkbox, CheckboxList, Chip, ChipGroup, Collapsible, ColorPicker, Combobox, ComingSoon, CommandPalette, CompactStat, ConfirmDialog, ContextMenu, ControlBar, CurrencyDisplay, CurrencyInput, Dashboard, DashboardContent, DashboardHeader, DataGrid, DataTable, DataTableCardView, DateDisplay, DatePicker, DateRangePicker, DateTimePicker, DesktopOnly, Drawer, DrawerFooter, DropZone, Dropdown, DropdownTrigger, EmptyState, ErrorBoundary, ExpandablePanel, ExpandablePanelContainer, ExpandablePanelSpacer, ExpandableRowButton, ExpandableToolbar, ExpandedRowEditForm, ExportButton, FORMULA_CATEGORIES, FORMULA_DEFINITIONS, FORMULA_NAMES, FieldArray, FileUpload, FilterBar, FilterControls, FilterStatusBanner, FloatingActionButton, Form, FormContext, FormControl, FormWizard, Grid, GridItem, Hide, HorizontalScroll, HoverCard, InfiniteScroll, Input, KanbanBoard, Layout, Loading, LoadingOverlay, Logo, MarkdownEditor, MaskedInput, Menu, MenuDivider, MobileHeader, MobileHeaderSpacer, MobileLayout, MobileOnly, MobileProvider, Modal, ModalFooter, MultiSelect, NotificationBanner, NotificationBar, NotificationBell, NotificationIndicator, NumberInput, Page, PageHeader, PageLayout, PageNavigation, Pagination, PasswordInput, Popover, Progress, PullToRefresh, QueryTransparency, RadioGroup, Rating, Responsive, RichTextEditor, SearchBar, SearchableList, Select, Separator, Show, Sidebar, SidebarGroup, Skeleton, SkeletonCard$1 as SkeletonCard, SkeletonTable, Slider, Spreadsheet, SpreadsheetReport, Stack, StatCard, StatItem, StatsCardGrid, StatsGrid, StatusBadge, StatusBar, StepIndicator, Stepper, SwipeActions, SwipeableCard, Switch, Tabs, Text, Textarea, ThemeToggle, TimePicker, Timeline, Toast, ToastContainer, Tooltip, Transfer, TreeView, TwoColumnContent, UserProfileButton, addErrorMessage, addInfoMessage, addSuccessMessage, addWarningMessage, calculateColumnWidth, createActionsSection, createFiltersSection, createMultiSheetExcel, createPageControlsSection, createQueryDetailsSection, exportDataTableToExcel, exportToExcel, formatStatisticValue, formatStatistics, getFormula, getFormulasByCategory, loadColumnOrder, loadColumnWidths, reorderArray, saveColumnOrder, saveColumnWidths, searchFormulas, statusManager, useBreadcrumbReset, useBreakpoint, useBreakpointValue, useColumnReorder, useColumnResize, useCommandPalette, useConfirmDialog, useFABScroll, useFormContext, useIsDesktop, useIsMobile, useIsTablet, useIsTouchDevice, useMediaQuery, useMobileContext, useOrientation, usePrefersMobile, useResponsiveCallback, useSafeAreaInsets, useViewportSize, withMobileContext };
|
|
57671
57880
|
//# sourceMappingURL=index.esm.js.map
|