@papernote/ui 1.7.1 → 1.7.3

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
@@ -1,9 +1,9 @@
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, Circle, ChevronsRight, ChevronsLeft, MoreVertical, GripVertical, Upload, Bold, Italic, Underline, List, ListOrdered, Code, Link, 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, 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';
5
5
  import { createPortal } from 'react-dom';
6
- import { Link as Link$1 } from 'react-router-dom';
6
+ import { useInRouterContext, useNavigate, useLocation, Link as Link$1 } from 'react-router-dom';
7
7
 
8
8
  function _mergeNamespaces(n, m) {
9
9
  m.forEach(function (e) {
@@ -4220,7 +4220,7 @@ function Stepper({ steps, activeStep, completedSteps = [], orientation = 'horizo
4220
4220
  `, children: steps.map((step, index) => renderStep(step, index)) }));
4221
4221
  }
4222
4222
 
4223
- function Calendar({ value, onChange, events = [], onEventClick, rangeMode = false, rangeValue, onRangeChange, minDate, maxDate, disabledDates = [], showWeekNumbers = false, firstDayOfWeek = 0, className = '', }) {
4223
+ function Calendar({ value, onChange, onMonthChange, events = [], onEventClick, rangeMode = false, rangeValue, onRangeChange, minDate, maxDate, disabledDates = [], showWeekNumbers = false, firstDayOfWeek = 0, className = '', }) {
4224
4224
  const [currentMonth, setCurrentMonth] = useState(value || new Date());
4225
4225
  const [hoverDate, setHoverDate] = useState(null);
4226
4226
  // Generate calendar grid for current month
@@ -4344,21 +4344,31 @@ function Calendar({ value, onChange, events = [], onEventClick, rangeMode = fals
4344
4344
  };
4345
4345
  // Navigate months
4346
4346
  const previousMonth = () => {
4347
- setCurrentMonth(new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1));
4347
+ const newMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1);
4348
+ setCurrentMonth(newMonth);
4349
+ onMonthChange?.(newMonth);
4348
4350
  };
4349
4351
  const nextMonth = () => {
4350
- setCurrentMonth(new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1));
4352
+ const newMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1);
4353
+ setCurrentMonth(newMonth);
4354
+ onMonthChange?.(newMonth);
4351
4355
  };
4352
4356
  // Navigate years
4353
4357
  const previousYear = () => {
4354
- setCurrentMonth(new Date(currentMonth.getFullYear() - 1, currentMonth.getMonth(), 1));
4358
+ const newMonth = new Date(currentMonth.getFullYear() - 1, currentMonth.getMonth(), 1);
4359
+ setCurrentMonth(newMonth);
4360
+ onMonthChange?.(newMonth);
4355
4361
  };
4356
4362
  const nextYear = () => {
4357
- setCurrentMonth(new Date(currentMonth.getFullYear() + 1, currentMonth.getMonth(), 1));
4363
+ const newMonth = new Date(currentMonth.getFullYear() + 1, currentMonth.getMonth(), 1);
4364
+ setCurrentMonth(newMonth);
4365
+ onMonthChange?.(newMonth);
4358
4366
  };
4359
4367
  // Go to today
4360
4368
  const goToToday = () => {
4361
- setCurrentMonth(new Date());
4369
+ const today = new Date();
4370
+ setCurrentMonth(today);
4371
+ onMonthChange?.(today);
4362
4372
  };
4363
4373
  // Day names
4364
4374
  const dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
@@ -4371,7 +4381,7 @@ function Calendar({ value, onChange, events = [], onEventClick, rangeMode = fals
4371
4381
  error: 'bg-error-500',
4372
4382
  accent: 'bg-accent-500',
4373
4383
  };
4374
- return (jsxs("div", { className: `bg-white rounded-lg border border-paper-200 shadow-sm ${className}`, children: [jsxs("div", { className: "flex items-center justify-between p-4 border-b border-paper-200", children: [jsxs("div", { className: "flex items-center gap-2", children: [jsxs("button", { onClick: previousYear, className: "p-1.5 hover:bg-paper-100 rounded transition-colors", "aria-label": "Previous year", children: [jsx(ChevronLeft, { className: "h-4 w-4 text-ink-600" }), jsx(ChevronLeft, { className: "h-4 w-4 text-ink-600 -ml-3" })] }), jsx("button", { onClick: previousMonth, className: "p-1.5 hover:bg-paper-100 rounded transition-colors", "aria-label": "Previous month", children: jsx(ChevronLeft, { className: "h-4 w-4 text-ink-600" }) })] }), jsxs("div", { className: "flex items-center gap-3", children: [jsx("h2", { className: "text-lg font-semibold text-ink-900", children: currentMonth.toLocaleDateString('en-US', { month: 'long', year: 'numeric' }) }), jsx("button", { onClick: goToToday, className: "px-3 py-1 text-sm font-medium text-accent-700 hover:bg-accent-50 rounded transition-colors", children: "Today" })] }), jsxs("div", { className: "flex items-center gap-2", children: [jsx("button", { onClick: nextMonth, className: "p-1.5 hover:bg-paper-100 rounded transition-colors", "aria-label": "Next month", children: jsx(ChevronRight, { className: "h-4 w-4 text-ink-600" }) }), jsxs("button", { onClick: nextYear, className: "p-1.5 hover:bg-paper-100 rounded transition-colors", "aria-label": "Next year", children: [jsx(ChevronRight, { className: "h-4 w-4 text-ink-600" }), jsx(ChevronRight, { className: "h-4 w-4 text-ink-600 -ml-3" })] })] })] }), jsx("div", { className: "p-4", children: jsxs("div", { className: "grid grid-cols-7 gap-1", children: [showWeekNumbers && jsx("div", { className: "h-8" }), adjustedDayNames.map((day) => (jsx("div", { className: "h-8 flex items-center justify-center text-xs font-semibold text-ink-600", children: day }, day))), Array.from({ length: 6 }).map((_, weekIndex) => (jsxs(React__default.Fragment, { children: [showWeekNumbers && (jsx("div", { className: "flex items-center justify-center text-xs text-ink-500 font-medium", children: getWeekNumber(calendarDays[weekIndex * 7]) })), calendarDays.slice(weekIndex * 7, weekIndex * 7 + 7).map((date, dayIndex) => {
4384
+ return (jsxs("div", { className: `bg-white rounded-lg border border-paper-200 shadow-sm ${className}`, children: [jsxs("div", { className: "flex items-center justify-between p-4 border-b border-paper-200", children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx("button", { onClick: previousYear, className: "p-1.5 hover:bg-paper-100 rounded transition-colors", "aria-label": "Previous year", children: jsx(ChevronsLeft, { className: "h-4 w-4 text-ink-600" }) }), jsx("button", { onClick: previousMonth, className: "p-1.5 hover:bg-paper-100 rounded transition-colors", "aria-label": "Previous month", children: jsx(ChevronLeft, { className: "h-4 w-4 text-ink-600" }) })] }), jsxs("div", { className: "flex items-center gap-3", children: [jsx("h2", { className: "text-lg font-semibold text-ink-900", children: currentMonth.toLocaleDateString('en-US', { month: 'long', year: 'numeric' }) }), jsx("button", { onClick: goToToday, className: "px-3 py-1 text-sm font-medium text-accent-700 hover:bg-accent-50 rounded transition-colors", children: "Today" })] }), jsxs("div", { className: "flex items-center gap-2", children: [jsx("button", { onClick: nextMonth, className: "p-1.5 hover:bg-paper-100 rounded transition-colors", "aria-label": "Next month", children: jsx(ChevronRight, { className: "h-4 w-4 text-ink-600" }) }), jsx("button", { onClick: nextYear, className: "p-1.5 hover:bg-paper-100 rounded transition-colors", "aria-label": "Next year", children: jsx(ChevronsRight, { className: "h-4 w-4 text-ink-600" }) })] })] }), jsx("div", { className: "p-4", children: jsxs("div", { className: "grid grid-cols-7 gap-1", children: [showWeekNumbers && jsx("div", { className: "h-8" }), adjustedDayNames.map((day) => (jsx("div", { className: "h-8 flex items-center justify-center text-xs font-semibold text-ink-600", children: day }, day))), Array.from({ length: 6 }).map((_, weekIndex) => (jsxs(React__default.Fragment, { children: [showWeekNumbers && (jsx("div", { className: "flex items-center justify-center text-xs text-ink-500 font-medium", children: getWeekNumber(calendarDays[weekIndex * 7]) })), calendarDays.slice(weekIndex * 7, weekIndex * 7 + 7).map((date, dayIndex) => {
4375
4385
  const dateEvents = getEventsForDate(date);
4376
4386
  const selected = isSelected(date);
4377
4387
  const inRange = isInRange(date);
@@ -7259,8 +7269,114 @@ function Hide({ children, above, below, only, className = '' }) {
7259
7269
  return (jsx("div", { className: `${visibilityClasses} ${className}`, children: children }));
7260
7270
  }
7261
7271
 
7272
+ /**
7273
+ * Hook to detect breadcrumb navigation and trigger callbacks.
7274
+ * Use this in host components to reset state when a breadcrumb is clicked.
7275
+ *
7276
+ * Note: This hook requires React Router context. If used outside a Router,
7277
+ * it will be a no-op (the callback will never be called).
7278
+ *
7279
+ * @param onReset - Callback fired when breadcrumb navigation is detected
7280
+ *
7281
+ * @example
7282
+ * function ProductsPage() {
7283
+ * const [viewMode, setViewMode] = useState<'list' | 'detail'>('list');
7284
+ *
7285
+ * // Automatically reset to list view when breadcrumb is clicked
7286
+ * useBreadcrumbReset(() => setViewMode('list'));
7287
+ *
7288
+ * // ... rest of component
7289
+ * }
7290
+ */
7291
+ function useBreadcrumbReset(onReset) {
7292
+ const inRouter = useInRouterContext();
7293
+ const lastResetRef = useRef(null);
7294
+ // Only use useLocation when inside Router context
7295
+ const location = inRouter ? useLocation() : null;
7296
+ useEffect(() => {
7297
+ if (!location)
7298
+ return;
7299
+ const state = location.state;
7300
+ if (state?.breadcrumbReset && state.breadcrumbReset !== lastResetRef.current) {
7301
+ lastResetRef.current = state.breadcrumbReset;
7302
+ onReset();
7303
+ }
7304
+ }, [location?.state, onReset, location]);
7305
+ }
7306
+ /**
7307
+ * Breadcrumbs navigation component.
7308
+ *
7309
+ * When a breadcrumb with href is clicked:
7310
+ * - If navigating to a different route: standard navigation occurs
7311
+ * - If navigating to the same route: navigation state is updated with a unique key,
7312
+ * which can be used by host apps to detect "reset" navigation via useLocation().state
7313
+ *
7314
+ * @example
7315
+ * // Basic usage
7316
+ * <Breadcrumbs items={[
7317
+ * { label: 'Home', href: '/' },
7318
+ * { label: 'Products', href: '/products' },
7319
+ * { label: 'Widget' } // Current page (no href)
7320
+ * ]} />
7321
+ *
7322
+ * @example
7323
+ * // Host app detecting breadcrumb navigation for state reset
7324
+ * function ProductsPage() {
7325
+ * const location = useLocation();
7326
+ * const [viewMode, setViewMode] = useState<'list' | 'detail'>('list');
7327
+ *
7328
+ * // Reset to list view when breadcrumb navigation occurs
7329
+ * useEffect(() => {
7330
+ * if (location.state?.breadcrumbReset) {
7331
+ * setViewMode('list');
7332
+ * }
7333
+ * }, [location.state?.breadcrumbReset]);
7334
+ *
7335
+ * // ... rest of component
7336
+ * }
7337
+ */
7262
7338
  function Breadcrumbs({ items, showHome = true }) {
7263
- return (jsxs("nav", { "aria-label": "Breadcrumb", className: "flex items-center space-x-2 text-sm", children: [showHome && (jsxs(Fragment, { children: [jsx(Link$1, { to: "/", className: "text-ink-500 hover:text-ink-900 transition-colors", "aria-label": "Home", children: jsx(Home, { className: "h-4 w-4" }) }), items.length > 0 && jsx(ChevronRight, { className: "h-4 w-4 text-ink-400" })] })), items.map((item, index) => {
7339
+ const inRouter = useInRouterContext();
7340
+ // Only use router hooks when inside Router context
7341
+ const navigate = inRouter ? useNavigate() : null;
7342
+ const location = inRouter ? useLocation() : null;
7343
+ /**
7344
+ * Handle breadcrumb click with same-route detection.
7345
+ * When clicking a breadcrumb that points to the current route,
7346
+ * we navigate with state to trigger a reset in the host component.
7347
+ */
7348
+ const handleBreadcrumbClick = (e, href, onClick) => {
7349
+ // Always call onClick if provided (for custom actions)
7350
+ onClick?.();
7351
+ // If not in router context, let the browser handle navigation naturally
7352
+ if (!navigate || !location)
7353
+ return;
7354
+ // Check if we're navigating to the same base path
7355
+ const targetPath = href.split('?')[0].split('#')[0];
7356
+ const currentPath = location.pathname;
7357
+ if (targetPath === currentPath) {
7358
+ // Same route - prevent default Link behavior and use navigate with state
7359
+ e.preventDefault();
7360
+ navigate(href, {
7361
+ state: {
7362
+ breadcrumbReset: Date.now(),
7363
+ from: 'breadcrumb'
7364
+ },
7365
+ replace: true
7366
+ });
7367
+ }
7368
+ // Different route - let the Link handle it normally
7369
+ };
7370
+ // Helper to render a link - uses Link when in router, <a> when not
7371
+ const renderLink = (href, children, className, onClick, ariaLabel) => {
7372
+ if (inRouter) {
7373
+ return (jsx(Link$1, { to: href, className: className, onClick: onClick, "aria-label": ariaLabel, children: children }));
7374
+ }
7375
+ return (jsx("a", { href: href, className: className, onClick: (e) => {
7376
+ onClick?.(e);
7377
+ }, "aria-label": ariaLabel, children: children }));
7378
+ };
7379
+ return (jsxs("nav", { "aria-label": "Breadcrumb", className: "flex items-center space-x-2 text-sm", children: [showHome && (jsxs(Fragment, { children: [renderLink('/', jsx(Home, { className: "h-4 w-4" }), 'text-ink-500 hover:text-ink-900 transition-colors', (e) => handleBreadcrumbClick(e, '/'), 'Home'), items.length > 0 && jsx(ChevronRight, { className: "h-4 w-4 text-ink-400" })] })), items.map((item, index) => {
7264
7380
  const isLast = index === items.length - 1;
7265
7381
  const isActive = isLast;
7266
7382
  const content = (jsxs(Fragment, { children: [item.icon && jsx("span", { className: "flex-shrink-0", children: item.icon }), jsx("span", { children: item.label })] }));
@@ -7269,9 +7385,9 @@ function Breadcrumbs({ items, showHome = true }) {
7269
7385
  if (isActive) {
7270
7386
  return (jsx("span", { className: "flex items-center gap-2 px-2 py-1 rounded-md bg-accent-50 text-accent-900 font-semibold transition-colors", "aria-current": "page", children: content }));
7271
7387
  }
7272
- // Has href - render as Link, also call onClick if provided
7388
+ // Has href - render as Link (or <a> if no router) with same-route detection
7273
7389
  if (item.href) {
7274
- return (jsx(Link$1, { to: item.href, onClick: item.onClick, className: "flex items-center gap-2 text-ink-500 hover:text-ink-900 hover:underline transition-colors", children: content }));
7390
+ return renderLink(item.href, content, 'flex items-center gap-2 text-ink-500 hover:text-ink-900 hover:underline transition-colors', (e) => handleBreadcrumbClick(e, item.href, item.onClick));
7275
7391
  }
7276
7392
  // Only onClick (no href) - render as button
7277
7393
  if (item.onClick) {
@@ -10216,44 +10332,52 @@ function getAugmentedNamespace(n) {
10216
10332
  * (A1, A1:C5, ...)
10217
10333
  */
10218
10334
 
10219
- let Collection$3 = class Collection {
10335
+ var collection;
10336
+ var hasRequiredCollection;
10337
+
10338
+ function requireCollection () {
10339
+ if (hasRequiredCollection) return collection;
10340
+ hasRequiredCollection = 1;
10341
+ class Collection {
10220
10342
 
10221
- constructor(data, refs) {
10222
- if (data == null && refs == null) {
10223
- this._data = [];
10224
- this._refs = [];
10225
- } else {
10226
- if (data.length !== refs.length)
10227
- throw Error('Collection: data length should match references length.');
10228
- this._data = data;
10229
- this._refs = refs;
10230
- }
10231
- }
10343
+ constructor(data, refs) {
10344
+ if (data == null && refs == null) {
10345
+ this._data = [];
10346
+ this._refs = [];
10347
+ } else {
10348
+ if (data.length !== refs.length)
10349
+ throw Error('Collection: data length should match references length.');
10350
+ this._data = data;
10351
+ this._refs = refs;
10352
+ }
10353
+ }
10232
10354
 
10233
- get data() {
10234
- return this._data;
10235
- }
10355
+ get data() {
10356
+ return this._data;
10357
+ }
10236
10358
 
10237
- get refs() {
10238
- return this._refs;
10239
- }
10359
+ get refs() {
10360
+ return this._refs;
10361
+ }
10240
10362
 
10241
- get length() {
10242
- return this._data.length;
10243
- }
10363
+ get length() {
10364
+ return this._data.length;
10365
+ }
10244
10366
 
10245
- /**
10246
- * Add data and references to this collection.
10247
- * @param {{}} obj - data
10248
- * @param {{}} ref - reference
10249
- */
10250
- add(obj, ref) {
10251
- this._data.push(obj);
10252
- this._refs.push(ref);
10253
- }
10254
- };
10367
+ /**
10368
+ * Add data and references to this collection.
10369
+ * @param {{}} obj - data
10370
+ * @param {{}} ref - reference
10371
+ */
10372
+ add(obj, ref) {
10373
+ this._data.push(obj);
10374
+ this._refs.push(ref);
10375
+ }
10376
+ }
10255
10377
 
10256
- var collection = Collection$3;
10378
+ collection = Collection;
10379
+ return collection;
10380
+ }
10257
10381
 
10258
10382
  var helpers;
10259
10383
  var hasRequiredHelpers;
@@ -10262,7 +10386,7 @@ function requireHelpers () {
10262
10386
  if (hasRequiredHelpers) return helpers;
10263
10387
  hasRequiredHelpers = 1;
10264
10388
  const FormulaError = requireError();
10265
- const Collection = collection;
10389
+ const Collection = requireCollection();
10266
10390
 
10267
10391
  const Types = {
10268
10392
  NUMBER: 0,
@@ -19916,7 +20040,7 @@ var engineering = EngineeringFunctions;
19916
20040
 
19917
20041
  const FormulaError$b = requireError();
19918
20042
  const {FormulaHelpers: FormulaHelpers$8, Types: Types$6, WildCard, Address: Address$3} = requireHelpers();
19919
- const Collection$2 = collection;
20043
+ const Collection$2 = requireCollection();
19920
20044
  const H$5 = FormulaHelpers$8;
19921
20045
 
19922
20046
  const ReferenceFunctions$1 = {
@@ -31544,7 +31668,7 @@ var parsing = {
31544
31668
  const FormulaError$4 = requireError();
31545
31669
  const {Address: Address$1} = requireHelpers();
31546
31670
  const {Prefix: Prefix$1, Postfix: Postfix$1, Infix: Infix$1, Operators: Operators$1} = operators;
31547
- const Collection$1 = collection;
31671
+ const Collection$1 = requireCollection();
31548
31672
  const MAX_ROW$1 = 1048576, MAX_COLUMN$1 = 16384;
31549
31673
  const {NotAllInputParsedException} = require$$4;
31550
31674
 
@@ -32306,7 +32430,7 @@ var hooks$1 = {
32306
32430
  const FormulaError$2 = requireError();
32307
32431
  const {FormulaHelpers: FormulaHelpers$1, Types, Address} = requireHelpers();
32308
32432
  const {Prefix, Postfix, Infix, Operators} = operators;
32309
- const Collection = collection;
32433
+ const Collection = requireCollection();
32310
32434
  const MAX_ROW = 1048576, MAX_COLUMN = 16384;
32311
32435
 
32312
32436
  let Utils$1 = class Utils {
@@ -56796,5 +56920,5 @@ function Responsive({ mobile, tablet, desktop, }) {
56796
56920
  return jsx(Fragment, { children: mobile || tablet || desktop });
56797
56921
  }
56798
56922
 
56799
- export { Accordion, ActionBar, ActionBarCenter, ActionBarLeft, ActionBarRight, ActionButton, AdminModal, Alert, AlertDialog, AppLayout, Autocomplete, Avatar, BREAKPOINTS, Badge, BottomNavigation, BottomNavigationSpacer, BottomSheet, Box, Breadcrumbs, Button, ButtonGroup, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardView, Carousel, Checkbox, CheckboxList, Chip, ChipGroup, Collapsible, ColorPicker, Combobox, ComingSoon, CommandPalette, 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, HoverCard, InfiniteScroll, Input, KanbanBoard, Layout, Loading, LoadingOverlay, Logo, MarkdownEditor, MaskedInput, Menu, MenuDivider, MobileHeader, MobileHeaderSpacer, MobileLayout, MobileOnly, MobileProvider, Modal, ModalFooter, MultiSelect, 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, 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, useBreakpoint, useBreakpointValue, useColumnReorder, useColumnResize, useCommandPalette, useConfirmDialog, useFABScroll, useFormContext, useIsDesktop, useIsMobile, useIsTablet, useIsTouchDevice, useMediaQuery, useMobileContext, useOrientation, usePrefersMobile, usePullToRefresh, useResponsiveCallback, useSafeAreaInsets, useViewportSize, withMobileContext };
56923
+ export { Accordion, ActionBar, ActionBarCenter, ActionBarLeft, ActionBarRight, ActionButton, AdminModal, Alert, AlertDialog, AppLayout, Autocomplete, Avatar, BREAKPOINTS, Badge, BottomNavigation, BottomNavigationSpacer, BottomSheet, Box, Breadcrumbs, Button, ButtonGroup, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardView, Carousel, Checkbox, CheckboxList, Chip, ChipGroup, Collapsible, ColorPicker, Combobox, ComingSoon, CommandPalette, 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, HoverCard, InfiniteScroll, Input, KanbanBoard, Layout, Loading, LoadingOverlay, Logo, MarkdownEditor, MaskedInput, Menu, MenuDivider, MobileHeader, MobileHeaderSpacer, MobileLayout, MobileOnly, MobileProvider, Modal, ModalFooter, MultiSelect, 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, 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, usePullToRefresh, useResponsiveCallback, useSafeAreaInsets, useViewportSize, withMobileContext };
56800
56924
  //# sourceMappingURL=index.esm.js.map