@ssa-ui-kit/core 3.17.0 → 3.19.0
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/Breadcrumbs/BreadcrumbMenu.d.ts +12 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +23 -0
- package/dist/components/Breadcrumbs/index.d.ts +5 -0
- package/dist/components/Breadcrumbs/styles.d.ts +9 -0
- package/dist/components/Breadcrumbs/types.d.ts +57 -0
- package/dist/components/Breadcrumbs/useBreadcrumbs.d.ts +54 -0
- package/dist/components/Breadcrumbs/utils.d.ts +17 -0
- package/dist/components/DatePicker/styles.d.ts +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/index.js +835 -476
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -7964,6 +7964,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
7964
7964
|
BarLineComplexChart: () => (/* reexport */ BarLineComplexChart),
|
|
7965
7965
|
BigNumberChart: () => (/* reexport */ BigNumberChart),
|
|
7966
7966
|
BigNumberChartComponent: () => (/* reexport */ BigNumberChartComponent),
|
|
7967
|
+
BreadcrumbMenu: () => (/* reexport */ BreadcrumbMenu),
|
|
7968
|
+
Breadcrumbs: () => (/* reexport */ Breadcrumbs),
|
|
7967
7969
|
Button: () => (/* reexport */ Button_Button),
|
|
7968
7970
|
ButtonGroup: () => (/* reexport */ ButtonGroup),
|
|
7969
7971
|
CandlestickChart: () => (/* reexport */ CandlestickChart),
|
|
@@ -8164,6 +8166,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
8164
8166
|
cancelButtonStyles: () => (/* reexport */ cancelButtonStyles),
|
|
8165
8167
|
checkboxStyles: () => (/* reexport */ checkboxStyles),
|
|
8166
8168
|
clearButtonStyles: () => (/* reexport */ clearButtonStyles),
|
|
8169
|
+
deriveBreadcrumbs: () => (/* reexport */ deriveBreadcrumbs),
|
|
8167
8170
|
filterButtonStyles: () => (/* reexport */ filterButtonStyles),
|
|
8168
8171
|
globalStyles: () => (/* reexport */ global_namespaceObject),
|
|
8169
8172
|
highlightInputMatch: () => (/* reexport */ highlightInputMatch),
|
|
@@ -8177,6 +8180,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
8177
8180
|
styleUtils: () => (/* reexport */ safari_focus_outline_namespaceObject),
|
|
8178
8181
|
styles: () => (/* reexport */ Tooltip_styles_namespaceObject),
|
|
8179
8182
|
useAccordionGroupContext: () => (/* reexport */ useAccordionGroupContext),
|
|
8183
|
+
useBreadcrumbs: () => (/* reexport */ useBreadcrumbs),
|
|
8180
8184
|
useCollapsibleNavBarContext: () => (/* reexport */ useCollapsibleNavBarContext),
|
|
8181
8185
|
useCollapsibleNavBarItemContext: () => (/* reexport */ useCollapsibleNavBarItemContext),
|
|
8182
8186
|
useDrawer: () => (/* reexport */ useDrawer),
|
|
@@ -18243,6 +18247,836 @@ const IconButton = ({
|
|
|
18243
18247
|
};
|
|
18244
18248
|
;// ./src/components/IconButton/index.ts
|
|
18245
18249
|
|
|
18250
|
+
;// external "react-router-dom"
|
|
18251
|
+
const external_react_router_dom_namespaceObject = require("react-router-dom");
|
|
18252
|
+
;// ./src/components/WithLink.tsx
|
|
18253
|
+
function WithLink_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
18254
|
+
|
|
18255
|
+
|
|
18256
|
+
|
|
18257
|
+
var WithLink_ref = true ? {
|
|
18258
|
+
name: "me5k4h",
|
|
18259
|
+
styles: "text-decoration:none;div{cursor:pointer;}"
|
|
18260
|
+
} : 0;
|
|
18261
|
+
const WithLink = ({
|
|
18262
|
+
link,
|
|
18263
|
+
onClick,
|
|
18264
|
+
children,
|
|
18265
|
+
className
|
|
18266
|
+
}) => link ? (0,jsx_runtime_namespaceObject.jsx)(external_react_router_dom_namespaceObject.Link, {
|
|
18267
|
+
to: link,
|
|
18268
|
+
onClick: onClick,
|
|
18269
|
+
className: className,
|
|
18270
|
+
css: WithLink_ref,
|
|
18271
|
+
children: children
|
|
18272
|
+
}) : children;
|
|
18273
|
+
;// ./src/components/Popover/hooks/usePopover.tsx
|
|
18274
|
+
|
|
18275
|
+
|
|
18276
|
+
|
|
18277
|
+
/**
|
|
18278
|
+
* usePopover - Hook for popover functionality
|
|
18279
|
+
*
|
|
18280
|
+
* Custom hook that provides popover state management, positioning, and interactions.
|
|
18281
|
+
* Handles both controlled and uncontrolled modes, supports multiple interaction types
|
|
18282
|
+
* (click, hover, both), and integrates with Floating UI for positioning and focus management.
|
|
18283
|
+
*
|
|
18284
|
+
* @param options - Popover configuration options
|
|
18285
|
+
* @returns Popover context value with state, positioning, and interaction handlers
|
|
18286
|
+
*
|
|
18287
|
+
* @example
|
|
18288
|
+
* ```tsx
|
|
18289
|
+
* const popover = usePopover({
|
|
18290
|
+
* placement: 'top',
|
|
18291
|
+
* interactionsEnabled: 'click',
|
|
18292
|
+
* modal: false,
|
|
18293
|
+
* });
|
|
18294
|
+
* ```
|
|
18295
|
+
*
|
|
18296
|
+
* @see {@link Popover} - Component that uses this hook
|
|
18297
|
+
*/
|
|
18298
|
+
const usePopover = ({
|
|
18299
|
+
initialOpen = false,
|
|
18300
|
+
placement = 'bottom',
|
|
18301
|
+
modal,
|
|
18302
|
+
open: controlledOpen,
|
|
18303
|
+
onOpenChange: setControlledOpen,
|
|
18304
|
+
keyboardHandlers = true,
|
|
18305
|
+
floatingOptions = {},
|
|
18306
|
+
interactionsEnabled = 'click'
|
|
18307
|
+
} = {}) => {
|
|
18308
|
+
const [uncontrolledOpen, setUncontrolledOpen] = external_react_namespaceObject.useState(initialOpen);
|
|
18309
|
+
const [labelId, setLabelId] = external_react_namespaceObject.useState();
|
|
18310
|
+
const [descriptionId, setDescriptionId] = external_react_namespaceObject.useState();
|
|
18311
|
+
const open = controlledOpen ?? uncontrolledOpen;
|
|
18312
|
+
const setOpen = setControlledOpen ?? setUncontrolledOpen;
|
|
18313
|
+
const data = (0,external_floating_ui_react_namespaceObject.useFloating)({
|
|
18314
|
+
placement,
|
|
18315
|
+
open,
|
|
18316
|
+
onOpenChange: setOpen,
|
|
18317
|
+
whileElementsMounted: external_floating_ui_react_namespaceObject.autoUpdate,
|
|
18318
|
+
middleware: [(0,external_floating_ui_react_namespaceObject.offset)(5), (0,external_floating_ui_react_namespaceObject.flip)({
|
|
18319
|
+
crossAxis: placement.includes('-'),
|
|
18320
|
+
padding: 5
|
|
18321
|
+
}), (0,external_floating_ui_react_namespaceObject.shift)({
|
|
18322
|
+
padding: 5
|
|
18323
|
+
})],
|
|
18324
|
+
...floatingOptions
|
|
18325
|
+
});
|
|
18326
|
+
const context = data.context;
|
|
18327
|
+
const click = (0,external_floating_ui_react_namespaceObject.useClick)(context, {
|
|
18328
|
+
enabled: (0,utils_namespaceObject.isNill)(controlledOpen) && ['click', 'both'].includes(interactionsEnabled),
|
|
18329
|
+
keyboardHandlers
|
|
18330
|
+
});
|
|
18331
|
+
const isControlled = controlledOpen !== undefined;
|
|
18332
|
+
const dismiss = (0,external_floating_ui_react_namespaceObject.useDismiss)(context, {
|
|
18333
|
+
// When controlled, disable referencePress (parent handles toggle) but keep outsidePress
|
|
18334
|
+
referencePress: !isControlled,
|
|
18335
|
+
// Keep outsidePress enabled even in controlled mode
|
|
18336
|
+
outsidePress: true,
|
|
18337
|
+
escapeKey: true,
|
|
18338
|
+
ancestorScroll: !isControlled
|
|
18339
|
+
});
|
|
18340
|
+
const role = (0,external_floating_ui_react_namespaceObject.useRole)(context);
|
|
18341
|
+
const hover = (0,external_floating_ui_react_namespaceObject.useHover)(context, {
|
|
18342
|
+
enabled: (0,utils_namespaceObject.isNill)(controlledOpen) && ['hover', 'both'].includes(interactionsEnabled),
|
|
18343
|
+
handleClose: (0,external_floating_ui_react_namespaceObject.safePolygon)()
|
|
18344
|
+
});
|
|
18345
|
+
const interactionsHooks = [dismiss, role];
|
|
18346
|
+
switch (interactionsEnabled) {
|
|
18347
|
+
case 'click':
|
|
18348
|
+
{
|
|
18349
|
+
interactionsHooks.push(click);
|
|
18350
|
+
break;
|
|
18351
|
+
}
|
|
18352
|
+
case 'hover':
|
|
18353
|
+
{
|
|
18354
|
+
interactionsHooks.push(hover);
|
|
18355
|
+
break;
|
|
18356
|
+
}
|
|
18357
|
+
default:
|
|
18358
|
+
{
|
|
18359
|
+
interactionsHooks.push(click, hover);
|
|
18360
|
+
}
|
|
18361
|
+
}
|
|
18362
|
+
const interactions = (0,external_floating_ui_react_namespaceObject.useInteractions)(interactionsHooks);
|
|
18363
|
+
const result = external_react_namespaceObject.useMemo(() => ({
|
|
18364
|
+
open,
|
|
18365
|
+
setOpen,
|
|
18366
|
+
...interactions,
|
|
18367
|
+
...data,
|
|
18368
|
+
modal,
|
|
18369
|
+
labelId,
|
|
18370
|
+
descriptionId,
|
|
18371
|
+
floatingOptions,
|
|
18372
|
+
setLabelId,
|
|
18373
|
+
setDescriptionId
|
|
18374
|
+
}), [open, setOpen, interactions, data, modal, labelId, descriptionId, floatingOptions]);
|
|
18375
|
+
return result;
|
|
18376
|
+
};
|
|
18377
|
+
;// ./src/components/Popover/hooks/usePopoverContext.tsx
|
|
18378
|
+
|
|
18379
|
+
|
|
18380
|
+
/**
|
|
18381
|
+
* Context for popover components
|
|
18382
|
+
*
|
|
18383
|
+
* Provides popover state and functionality to child components. Created by
|
|
18384
|
+
* Popover component and consumed by PopoverTrigger, PopoverContent, and other
|
|
18385
|
+
* popover sub-components.
|
|
18386
|
+
*/
|
|
18387
|
+
const PopoverContext = /*#__PURE__*/external_react_namespaceObject.createContext({});
|
|
18388
|
+
|
|
18389
|
+
/**
|
|
18390
|
+
* usePopoverContext - Hook to access popover context
|
|
18391
|
+
*
|
|
18392
|
+
* Returns the popover context value. Throws an error if used outside of a
|
|
18393
|
+
* Popover component.
|
|
18394
|
+
*
|
|
18395
|
+
* @returns Popover context value with state, positioning, and interaction handlers
|
|
18396
|
+
* @throws Error if used outside of Popover component
|
|
18397
|
+
*
|
|
18398
|
+
* @example
|
|
18399
|
+
* ```tsx
|
|
18400
|
+
* const { open, setOpen, refs } = usePopoverContext();
|
|
18401
|
+
* ```
|
|
18402
|
+
*
|
|
18403
|
+
* @see {@link Popover} - Component that provides this context
|
|
18404
|
+
*/
|
|
18405
|
+
const usePopoverContext = () => {
|
|
18406
|
+
const context = external_react_namespaceObject.useContext(PopoverContext);
|
|
18407
|
+
if ((0,utils_namespaceObject.isNill)(context)) {
|
|
18408
|
+
throw new Error('Popover components must be wrapped in <Popover />');
|
|
18409
|
+
}
|
|
18410
|
+
return context;
|
|
18411
|
+
};
|
|
18412
|
+
;// ./src/components/Popover/Popover.tsx
|
|
18413
|
+
|
|
18414
|
+
|
|
18415
|
+
|
|
18416
|
+
|
|
18417
|
+
/**
|
|
18418
|
+
* Popover - Floating content container component
|
|
18419
|
+
*
|
|
18420
|
+
* A flexible popover system built on Floating UI that provides floating content
|
|
18421
|
+
* containers relative to trigger elements. Uses a compound component pattern with
|
|
18422
|
+
* Popover (root), PopoverTrigger (activator), PopoverContent (display),
|
|
18423
|
+
* PopoverHeading, PopoverDescription, and PopoverClose (content helpers).
|
|
18424
|
+
*
|
|
18425
|
+
* Supports multiple interaction modes (click, hover, both), flexible positioning
|
|
18426
|
+
* with auto-adjustment via Floating UI middleware, modal and non-modal modes,
|
|
18427
|
+
* and comprehensive accessibility features including ARIA attributes and focus
|
|
18428
|
+
* management.
|
|
18429
|
+
*
|
|
18430
|
+
* @category Components
|
|
18431
|
+
* @subcategory Overlay
|
|
18432
|
+
*
|
|
18433
|
+
* @example
|
|
18434
|
+
* ```tsx
|
|
18435
|
+
* // Basic popover on click
|
|
18436
|
+
* <Popover>
|
|
18437
|
+
* <PopoverTrigger>
|
|
18438
|
+
* <Button>Open Popover</Button>
|
|
18439
|
+
* </PopoverTrigger>
|
|
18440
|
+
* <PopoverContent>
|
|
18441
|
+
* <PopoverHeading variant="h4">Popover Title</PopoverHeading>
|
|
18442
|
+
* <PopoverDescription>
|
|
18443
|
+
* This is the popover content with helpful information.
|
|
18444
|
+
* </PopoverDescription>
|
|
18445
|
+
* <PopoverClose>Close</PopoverClose>
|
|
18446
|
+
* </PopoverContent>
|
|
18447
|
+
* </Popover>
|
|
18448
|
+
* ```
|
|
18449
|
+
*
|
|
18450
|
+
* @example
|
|
18451
|
+
* ```tsx
|
|
18452
|
+
* // Popover with hover interaction
|
|
18453
|
+
* <Popover interactionsEnabled="hover">
|
|
18454
|
+
* <PopoverTrigger>
|
|
18455
|
+
* <Icon name="info" />
|
|
18456
|
+
* </PopoverTrigger>
|
|
18457
|
+
* <PopoverContent>
|
|
18458
|
+
* <PopoverHeading variant="h4">Information</PopoverHeading>
|
|
18459
|
+
* <PopoverDescription>
|
|
18460
|
+
* This popover appears on hover.
|
|
18461
|
+
* </PopoverDescription>
|
|
18462
|
+
* </PopoverContent>
|
|
18463
|
+
* </Popover>
|
|
18464
|
+
* ```
|
|
18465
|
+
*
|
|
18466
|
+
* @example
|
|
18467
|
+
* ```tsx
|
|
18468
|
+
* // Popover with custom placement
|
|
18469
|
+
* <Popover placement="top">
|
|
18470
|
+
* <PopoverTrigger>
|
|
18471
|
+
* <Button>Show Above</Button>
|
|
18472
|
+
* </PopoverTrigger>
|
|
18473
|
+
* <PopoverContent>
|
|
18474
|
+
* <PopoverDescription>
|
|
18475
|
+
* This popover appears above the trigger element.
|
|
18476
|
+
* </PopoverDescription>
|
|
18477
|
+
* <PopoverClose>Close</PopoverClose>
|
|
18478
|
+
* </PopoverContent>
|
|
18479
|
+
* </Popover>
|
|
18480
|
+
* ```
|
|
18481
|
+
*
|
|
18482
|
+
* @example
|
|
18483
|
+
* ```tsx
|
|
18484
|
+
* // Advanced positioning with Floating UI middleware
|
|
18485
|
+
* <Popover
|
|
18486
|
+
* placement="top"
|
|
18487
|
+
* floatingOptions={{
|
|
18488
|
+
* middleware: [
|
|
18489
|
+
* offset(10),
|
|
18490
|
+
* flip(),
|
|
18491
|
+
* shift({ padding: 8 }),
|
|
18492
|
+
* ],
|
|
18493
|
+
* }}>
|
|
18494
|
+
* <PopoverTrigger>
|
|
18495
|
+
* <Button>Smart Positioning</Button>
|
|
18496
|
+
* </PopoverTrigger>
|
|
18497
|
+
* <PopoverContent>
|
|
18498
|
+
* <PopoverHeading variant="h4">Smart Positioning</PopoverHeading>
|
|
18499
|
+
* <PopoverDescription>
|
|
18500
|
+
* This popover automatically adjusts its position to stay in view.
|
|
18501
|
+
* </PopoverDescription>
|
|
18502
|
+
* <PopoverClose>Close</PopoverClose>
|
|
18503
|
+
* </PopoverContent>
|
|
18504
|
+
* </Popover>
|
|
18505
|
+
* ```
|
|
18506
|
+
*
|
|
18507
|
+
* @example
|
|
18508
|
+
* ```tsx
|
|
18509
|
+
* // Modal popover with controlled state
|
|
18510
|
+
* <Popover modal open={isOpen} onOpenChange={setIsOpen}>
|
|
18511
|
+
* <PopoverTrigger>
|
|
18512
|
+
* <Button>Open Modal Popover</Button>
|
|
18513
|
+
* </PopoverTrigger>
|
|
18514
|
+
* <PopoverContent>
|
|
18515
|
+
* <PopoverHeading variant="h4">Modal Popover</PopoverHeading>
|
|
18516
|
+
* <PopoverDescription>
|
|
18517
|
+
* This is a modal popover that traps focus.
|
|
18518
|
+
* </PopoverDescription>
|
|
18519
|
+
* <PopoverClose>Close</PopoverClose>
|
|
18520
|
+
* </PopoverContent>
|
|
18521
|
+
* </Popover>
|
|
18522
|
+
* ```
|
|
18523
|
+
*
|
|
18524
|
+
* @see {@link PopoverTrigger} - Trigger element component
|
|
18525
|
+
* @see {@link PopoverContent} - Content display component
|
|
18526
|
+
* @see {@link PopoverHeading} - Accessible heading component
|
|
18527
|
+
* @see {@link PopoverDescription} - Accessible description component
|
|
18528
|
+
* @see {@link PopoverClose} - Close button component
|
|
18529
|
+
*
|
|
18530
|
+
* @accessibility
|
|
18531
|
+
* - Keyboard accessible (ESC to close, Enter/Space to activate)
|
|
18532
|
+
* - Focus management with FloatingFocusManager for modal popovers
|
|
18533
|
+
* - ARIA attributes automatically applied (role, aria-labelledby, aria-describedby)
|
|
18534
|
+
* - Screen reader friendly with semantic heading and description components
|
|
18535
|
+
* - Focus trap for modal popovers
|
|
18536
|
+
*/
|
|
18537
|
+
|
|
18538
|
+
const Popover = ({
|
|
18539
|
+
children,
|
|
18540
|
+
modal = false,
|
|
18541
|
+
...restOptions
|
|
18542
|
+
}) => {
|
|
18543
|
+
// This can accept any props as options, e.g. `placement`,
|
|
18544
|
+
// or other positioning options.
|
|
18545
|
+
const popover = usePopover({
|
|
18546
|
+
modal,
|
|
18547
|
+
...restOptions
|
|
18548
|
+
});
|
|
18549
|
+
return (0,jsx_runtime_namespaceObject.jsx)(PopoverContext.Provider, {
|
|
18550
|
+
value: popover,
|
|
18551
|
+
children: children
|
|
18552
|
+
});
|
|
18553
|
+
};
|
|
18554
|
+
;// ./src/components/Popover/PopoverTrigger.tsx
|
|
18555
|
+
|
|
18556
|
+
|
|
18557
|
+
|
|
18558
|
+
|
|
18559
|
+
|
|
18560
|
+
/**
|
|
18561
|
+
* PopoverTrigger - Trigger element for popover
|
|
18562
|
+
*
|
|
18563
|
+
* Activates the popover when interacted with. By default renders as a Button,
|
|
18564
|
+
* but can be customized using the `asChild` prop to render as any React element.
|
|
18565
|
+
* Automatically receives Floating UI reference props for positioning and state
|
|
18566
|
+
* management.
|
|
18567
|
+
*
|
|
18568
|
+
* @category Components
|
|
18569
|
+
* @subcategory Overlay
|
|
18570
|
+
*
|
|
18571
|
+
* @example
|
|
18572
|
+
* ```tsx
|
|
18573
|
+
* // Default Button trigger
|
|
18574
|
+
* <PopoverTrigger>
|
|
18575
|
+
* Open Popover
|
|
18576
|
+
* </PopoverTrigger>
|
|
18577
|
+
* ```
|
|
18578
|
+
*
|
|
18579
|
+
* @example
|
|
18580
|
+
* ```tsx
|
|
18581
|
+
* // Custom element trigger
|
|
18582
|
+
* <PopoverTrigger asChild>
|
|
18583
|
+
* <Icon name="info" />
|
|
18584
|
+
* </PopoverTrigger>
|
|
18585
|
+
* ```
|
|
18586
|
+
*
|
|
18587
|
+
* @see {@link Popover} - Root component
|
|
18588
|
+
* @see {@link PopoverContent} - Content display component
|
|
18589
|
+
*/
|
|
18590
|
+
const PopoverTrigger = /*#__PURE__*/external_react_namespaceObject.forwardRef(function PopoverTrigger({
|
|
18591
|
+
children,
|
|
18592
|
+
asChild = false,
|
|
18593
|
+
dataTestId = 'trigger-button',
|
|
18594
|
+
variant = 'primary',
|
|
18595
|
+
...props
|
|
18596
|
+
}, propRef) {
|
|
18597
|
+
const context = usePopoverContext();
|
|
18598
|
+
|
|
18599
|
+
// `asChild` allows the user to pass any element as the anchor
|
|
18600
|
+
if (asChild && /*#__PURE__*/external_react_namespaceObject.isValidElement(children)) {
|
|
18601
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18602
|
+
const childrenElement = children;
|
|
18603
|
+
|
|
18604
|
+
// Extract ref from children props BEFORE calling getReferenceProps to avoid conflicts
|
|
18605
|
+
// In React 19, refs are regular props, but forwardRef components may not expose them in children.props.ref
|
|
18606
|
+
// We extract it here for backward compatibility
|
|
18607
|
+
const {
|
|
18608
|
+
ref: existingChildrenRef,
|
|
18609
|
+
...childrenPropsWithoutRef
|
|
18610
|
+
} = childrenElement.props || {};
|
|
18611
|
+
|
|
18612
|
+
// Merge all refs: floating-ui's setReference, children's ref, and propRef
|
|
18613
|
+
// This ensures positioning works while preserving any refs passed to the child component
|
|
18614
|
+
const mergedRef = (0,external_floating_ui_react_namespaceObject.useMergeRefs)([context?.refs.setReference, existingChildrenRef, propRef]);
|
|
18615
|
+
|
|
18616
|
+
// Get reference props from floating-ui - pass the merged ref to it
|
|
18617
|
+
// This ensures floating-ui gets the correct element for positioning
|
|
18618
|
+
const referenceProps = context?.getReferenceProps({
|
|
18619
|
+
ref: mergedRef,
|
|
18620
|
+
...props,
|
|
18621
|
+
...childrenPropsWithoutRef,
|
|
18622
|
+
'data-state': context.open ? 'open' : 'closed'
|
|
18623
|
+
});
|
|
18624
|
+
|
|
18625
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18626
|
+
return /*#__PURE__*/external_react_namespaceObject.cloneElement(children, referenceProps);
|
|
18627
|
+
}
|
|
18628
|
+
|
|
18629
|
+
// For non-asChild case, merge refs normally
|
|
18630
|
+
const childrenRef = /*#__PURE__*/external_react_namespaceObject.isValidElement(children) ? children.props?.ref : undefined;
|
|
18631
|
+
const ref = (0,external_floating_ui_react_namespaceObject.useMergeRefs)([context?.refs.setReference, propRef, childrenRef]);
|
|
18632
|
+
return (0,jsx_runtime_namespaceObject.jsx)(Button_Button, {
|
|
18633
|
+
"data-testid": dataTestId,
|
|
18634
|
+
ref: ref
|
|
18635
|
+
// The user can style the trigger based on the state
|
|
18636
|
+
,
|
|
18637
|
+
"data-state": context?.open ? 'open' : 'closed',
|
|
18638
|
+
variant: variant,
|
|
18639
|
+
...context?.getReferenceProps(props),
|
|
18640
|
+
children: children
|
|
18641
|
+
});
|
|
18642
|
+
});
|
|
18643
|
+
;// ./src/components/Popover/PopoverContent.tsx
|
|
18644
|
+
function PopoverContent_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
18645
|
+
|
|
18646
|
+
|
|
18647
|
+
|
|
18648
|
+
|
|
18649
|
+
|
|
18650
|
+
var PopoverContent_ref = true ? {
|
|
18651
|
+
name: "3abrc0",
|
|
18652
|
+
styles: "width:auto"
|
|
18653
|
+
} : 0;
|
|
18654
|
+
/**
|
|
18655
|
+
* PopoverContent - Content container for popover
|
|
18656
|
+
*
|
|
18657
|
+
* Renders the actual popover content that appears when the trigger is activated.
|
|
18658
|
+
* Automatically positioned using Floating UI, supports portal rendering, and
|
|
18659
|
+
* includes focus management for modal popovers. Can be configured to unmount
|
|
18660
|
+
* or keep mounted when closed.
|
|
18661
|
+
*
|
|
18662
|
+
* @category Components
|
|
18663
|
+
* @subcategory Overlay
|
|
18664
|
+
*
|
|
18665
|
+
* @example
|
|
18666
|
+
* ```tsx
|
|
18667
|
+
* <PopoverContent>
|
|
18668
|
+
* <PopoverHeading variant="h4">Title</PopoverHeading>
|
|
18669
|
+
* <PopoverDescription>Content goes here</PopoverDescription>
|
|
18670
|
+
* <PopoverClose>Close</PopoverClose>
|
|
18671
|
+
* </PopoverContent>
|
|
18672
|
+
* ```
|
|
18673
|
+
*
|
|
18674
|
+
* @example
|
|
18675
|
+
* ```tsx
|
|
18676
|
+
* // Keep content mounted when closed
|
|
18677
|
+
* <PopoverContent mountMode="keep-mounted">
|
|
18678
|
+
* <div>This stays in DOM when closed</div>
|
|
18679
|
+
* </PopoverContent>
|
|
18680
|
+
* ```
|
|
18681
|
+
*
|
|
18682
|
+
* @see {@link Popover} - Root component
|
|
18683
|
+
* @see {@link PopoverTrigger} - Trigger element component
|
|
18684
|
+
* @see {@link PopoverHeading} - Accessible heading component
|
|
18685
|
+
* @see {@link PopoverDescription} - Accessible description component
|
|
18686
|
+
*/
|
|
18687
|
+
const PopoverContent = /*#__PURE__*/external_react_namespaceObject.forwardRef(function PopoverContent({
|
|
18688
|
+
style,
|
|
18689
|
+
isFocusManagerDisabled = false,
|
|
18690
|
+
mountMode = 'unmount',
|
|
18691
|
+
...props
|
|
18692
|
+
}, propRef) {
|
|
18693
|
+
const {
|
|
18694
|
+
context: floatingContext,
|
|
18695
|
+
...context
|
|
18696
|
+
} = usePopoverContext();
|
|
18697
|
+
const ref = (0,external_floating_ui_react_namespaceObject.useMergeRefs)([context.refs.setFloating, propRef]);
|
|
18698
|
+
const keepMounted = mountMode === 'keep-mounted';
|
|
18699
|
+
if (!keepMounted && !floatingContext.open) return null;
|
|
18700
|
+
const hidden = keepMounted && !floatingContext.open;
|
|
18701
|
+
return (0,jsx_runtime_namespaceObject.jsx)(external_floating_ui_react_namespaceObject.FloatingPortal, {
|
|
18702
|
+
children: (0,jsx_runtime_namespaceObject.jsx)(external_floating_ui_react_namespaceObject.FloatingFocusManager, {
|
|
18703
|
+
context: floatingContext,
|
|
18704
|
+
modal: context.modal,
|
|
18705
|
+
disabled: isFocusManagerDisabled,
|
|
18706
|
+
children: (0,jsx_runtime_namespaceObject.jsx)(Wrapper_Wrapper, {
|
|
18707
|
+
ref: ref,
|
|
18708
|
+
css: PopoverContent_ref,
|
|
18709
|
+
style: {
|
|
18710
|
+
...context.floatingStyles,
|
|
18711
|
+
...(hidden ? {
|
|
18712
|
+
display: 'none',
|
|
18713
|
+
pointerEvents: 'none'
|
|
18714
|
+
} : null),
|
|
18715
|
+
...style
|
|
18716
|
+
},
|
|
18717
|
+
"aria-labelledby": context.labelId,
|
|
18718
|
+
"aria-describedby": context.descriptionId,
|
|
18719
|
+
direction: "column",
|
|
18720
|
+
...context.getFloatingProps(props),
|
|
18721
|
+
children: props.children
|
|
18722
|
+
})
|
|
18723
|
+
})
|
|
18724
|
+
});
|
|
18725
|
+
});
|
|
18726
|
+
;// ./src/components/Breadcrumbs/styles.ts
|
|
18727
|
+
function Breadcrumbs_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
18728
|
+
|
|
18729
|
+
|
|
18730
|
+
const fontBase = true ? {
|
|
18731
|
+
name: "1206kx8",
|
|
18732
|
+
styles: "font-family:'Manrope',sans-serif;font-size:14px;line-height:18px;letter-spacing:0"
|
|
18733
|
+
} : 0;
|
|
18734
|
+
const nav = true ? {
|
|
18735
|
+
name: "4zleql",
|
|
18736
|
+
styles: "display:block"
|
|
18737
|
+
} : 0;
|
|
18738
|
+
const list = true ? {
|
|
18739
|
+
name: "szqxm1",
|
|
18740
|
+
styles: "display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:0;list-style:none"
|
|
18741
|
+
} : 0;
|
|
18742
|
+
const styles_item = true ? {
|
|
18743
|
+
name: "8irbms",
|
|
18744
|
+
styles: "display:inline-flex;align-items:center"
|
|
18745
|
+
} : 0;
|
|
18746
|
+
const styles_separator = /*#__PURE__*/(0,react_namespaceObject.css)("display:inline-flex;align-items:center;justify-content:center;color:", themes_main.colors.greyDarker80, ";pointer-events:none;user-select:none;" + ( true ? "" : 0), true ? "" : 0);
|
|
18747
|
+
const crumbLink = /*#__PURE__*/(0,react_namespaceObject.css)(fontBase, ";font-weight:500;color:", themes_main.colors.greyDarker80, ";text-decoration:none;background:none;border:none;padding:0;cursor:pointer;transition:color 0.15s ease;&:hover,&:focus-visible{color:", themes_main.colors.greyDarker, ";}" + ( true ? "" : 0), true ? "" : 0);
|
|
18748
|
+
const crumbText = /*#__PURE__*/(0,react_namespaceObject.css)(fontBase, ";font-weight:500;color:", themes_main.colors.greyDarker80, ";" + ( true ? "" : 0), true ? "" : 0);
|
|
18749
|
+
const crumbCurrent = /*#__PURE__*/(0,react_namespaceObject.css)(fontBase, ";font-weight:600;color:", themes_main.palette.primary.dark, ";" + ( true ? "" : 0), true ? "" : 0);
|
|
18750
|
+
const menu = /*#__PURE__*/(0,react_namespaceObject.css)("display:flex;flex-direction:column;gap:2px;min-width:140px;margin:0;padding:6px;list-style:none;background:", themes_main.colors.white, ";border:1px solid ", themes_main.colors.grey20, ";border-radius:8px;box-shadow:0 8px 24px ", themes_main.colors.greyDarker14, ";" + ( true ? "" : 0), true ? "" : 0);
|
|
18751
|
+
const menuItem = /*#__PURE__*/(0,react_namespaceObject.css)(fontBase, ";font-weight:500;display:block;padding:6px 10px;border-radius:6px;color:", themes_main.colors.greyDarker80, ";text-decoration:none;cursor:pointer;transition:color 0.15s ease,background-color 0.15s ease;&:hover,&:focus-visible{color:", themes_main.colors.greyDarker, ";background-color:", themes_main.colors.blue6, ";}" + ( true ? "" : 0), true ? "" : 0);
|
|
18752
|
+
;// ./src/components/Breadcrumbs/BreadcrumbMenu.tsx
|
|
18753
|
+
|
|
18754
|
+
|
|
18755
|
+
|
|
18756
|
+
|
|
18757
|
+
|
|
18758
|
+
|
|
18759
|
+
/**
|
|
18760
|
+
* A hover/click popover listing navigable routes. Shared by the collapsed `…`
|
|
18761
|
+
* crumb and, in the route-aware mode, by crumbs that expose sibling routes.
|
|
18762
|
+
*/
|
|
18763
|
+
const BreadcrumbMenu = ({
|
|
18764
|
+
trigger,
|
|
18765
|
+
items
|
|
18766
|
+
}) => (0,jsx_runtime_namespaceObject.jsxs)(Popover, {
|
|
18767
|
+
placement: "bottom-start",
|
|
18768
|
+
interactionsEnabled: "both",
|
|
18769
|
+
children: [(0,jsx_runtime_namespaceObject.jsx)(PopoverTrigger, {
|
|
18770
|
+
asChild: true,
|
|
18771
|
+
children: trigger
|
|
18772
|
+
}), (0,jsx_runtime_namespaceObject.jsx)(PopoverContent, {
|
|
18773
|
+
children: (0,jsx_runtime_namespaceObject.jsx)("ul", {
|
|
18774
|
+
css: menu,
|
|
18775
|
+
children: items.map((sibling, index) => (0,jsx_runtime_namespaceObject.jsx)("li", {
|
|
18776
|
+
children: (0,jsx_runtime_namespaceObject.jsx)(WithLink, {
|
|
18777
|
+
link: sibling.to,
|
|
18778
|
+
className: "breadcrumb-menu-item",
|
|
18779
|
+
children: (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
18780
|
+
css: menuItem,
|
|
18781
|
+
children: sibling.label
|
|
18782
|
+
})
|
|
18783
|
+
})
|
|
18784
|
+
}, index))
|
|
18785
|
+
})
|
|
18786
|
+
})]
|
|
18787
|
+
});
|
|
18788
|
+
;// ./src/components/Breadcrumbs/utils.ts
|
|
18789
|
+
/** A rendered slot in the trail: either a real crumb or the collapsed `…`. */
|
|
18790
|
+
|
|
18791
|
+
/**
|
|
18792
|
+
* Collapse the trail to `first … last` when it exceeds `maxItems`, per design.
|
|
18793
|
+
* The hidden middle crumbs are returned on the ellipsis entry so they can be
|
|
18794
|
+
* offered from its menu. When `maxItems` is falsy or not exceeded, every item
|
|
18795
|
+
* is returned as-is.
|
|
18796
|
+
*/
|
|
18797
|
+
const collapseItems = (items, maxItems) => {
|
|
18798
|
+
if (!maxItems || items.length <= maxItems || items.length <= 2) {
|
|
18799
|
+
return items.map((item, index) => ({
|
|
18800
|
+
type: 'item',
|
|
18801
|
+
item,
|
|
18802
|
+
index
|
|
18803
|
+
}));
|
|
18804
|
+
}
|
|
18805
|
+
const lastIndex = items.length - 1;
|
|
18806
|
+
return [{
|
|
18807
|
+
type: 'item',
|
|
18808
|
+
item: items[0],
|
|
18809
|
+
index: 0
|
|
18810
|
+
}, {
|
|
18811
|
+
type: 'ellipsis',
|
|
18812
|
+
items: items.slice(1, lastIndex)
|
|
18813
|
+
}, {
|
|
18814
|
+
type: 'item',
|
|
18815
|
+
item: items[lastIndex],
|
|
18816
|
+
index: lastIndex
|
|
18817
|
+
}];
|
|
18818
|
+
};
|
|
18819
|
+
;// ./src/components/Breadcrumbs/Breadcrumbs.tsx
|
|
18820
|
+
|
|
18821
|
+
|
|
18822
|
+
|
|
18823
|
+
|
|
18824
|
+
|
|
18825
|
+
|
|
18826
|
+
|
|
18827
|
+
|
|
18828
|
+
const DefaultSeparator = (0,jsx_runtime_namespaceObject.jsx)(Icon_Icon, {
|
|
18829
|
+
name: "carrot-right",
|
|
18830
|
+
size: 14,
|
|
18831
|
+
color: themes_main.colors.greyDarker80
|
|
18832
|
+
});
|
|
18833
|
+
|
|
18834
|
+
/**
|
|
18835
|
+
* Breadcrumbs — navigational trail of the current page's location.
|
|
18836
|
+
*
|
|
18837
|
+
* Accepts a list of `{ label, to }` items and renders them as react-router
|
|
18838
|
+
* links separated by a chevron, with the current (last) crumb shown as a
|
|
18839
|
+
* non-navigable, emphasised label. When the trail is longer than `maxItems`
|
|
18840
|
+
* it collapses to `first … last`, with the hidden crumbs available from the
|
|
18841
|
+
* `…` menu.
|
|
18842
|
+
*
|
|
18843
|
+
* @example
|
|
18844
|
+
* ```tsx
|
|
18845
|
+
* <Breadcrumbs
|
|
18846
|
+
* maxItems={4}
|
|
18847
|
+
* items={[
|
|
18848
|
+
* { label: 'Home', to: '/' },
|
|
18849
|
+
* { label: 'People', to: '/people' },
|
|
18850
|
+
* { label: 'Jane Doe' },
|
|
18851
|
+
* ]}
|
|
18852
|
+
* />
|
|
18853
|
+
* ```
|
|
18854
|
+
*/
|
|
18855
|
+
const Breadcrumbs = ({
|
|
18856
|
+
items,
|
|
18857
|
+
maxItems,
|
|
18858
|
+
separator = DefaultSeparator,
|
|
18859
|
+
ariaLabel = 'Breadcrumb',
|
|
18860
|
+
className,
|
|
18861
|
+
css
|
|
18862
|
+
}) => {
|
|
18863
|
+
if (!items.length) {
|
|
18864
|
+
return null;
|
|
18865
|
+
}
|
|
18866
|
+
const lastIndex = items.length - 1;
|
|
18867
|
+
const entries = collapseItems(items, maxItems);
|
|
18868
|
+
const isCurrent = (item, index) => item.isCurrent ?? index === lastIndex;
|
|
18869
|
+
const renderCrumb = (item, index) => {
|
|
18870
|
+
if (isCurrent(item, index)) {
|
|
18871
|
+
return (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
18872
|
+
css: crumbCurrent,
|
|
18873
|
+
"aria-current": "page",
|
|
18874
|
+
children: item.label
|
|
18875
|
+
});
|
|
18876
|
+
}
|
|
18877
|
+
const inner = item.to ? (0,jsx_runtime_namespaceObject.jsx)(WithLink, {
|
|
18878
|
+
link: item.to,
|
|
18879
|
+
onClick: item.onClick,
|
|
18880
|
+
children: (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
18881
|
+
css: crumbLink,
|
|
18882
|
+
children: item.label
|
|
18883
|
+
})
|
|
18884
|
+
}) : item.onClick ? (0,jsx_runtime_namespaceObject.jsx)("button", {
|
|
18885
|
+
type: "button",
|
|
18886
|
+
css: crumbLink,
|
|
18887
|
+
onClick: item.onClick,
|
|
18888
|
+
children: item.label
|
|
18889
|
+
}) : (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
18890
|
+
css: crumbText,
|
|
18891
|
+
children: item.label
|
|
18892
|
+
});
|
|
18893
|
+
if (item.siblings?.length) {
|
|
18894
|
+
return (0,jsx_runtime_namespaceObject.jsx)(BreadcrumbMenu, {
|
|
18895
|
+
trigger: (0,jsx_runtime_namespaceObject.jsx)("span", {
|
|
18896
|
+
css: styles_item,
|
|
18897
|
+
children: inner
|
|
18898
|
+
}),
|
|
18899
|
+
items: item.siblings
|
|
18900
|
+
});
|
|
18901
|
+
}
|
|
18902
|
+
return inner;
|
|
18903
|
+
};
|
|
18904
|
+
return (0,jsx_runtime_namespaceObject.jsx)("nav", {
|
|
18905
|
+
"aria-label": ariaLabel,
|
|
18906
|
+
css: [nav, css, true ? "" : 0, true ? "" : 0],
|
|
18907
|
+
className: className,
|
|
18908
|
+
children: (0,jsx_runtime_namespaceObject.jsx)("ol", {
|
|
18909
|
+
css: list,
|
|
18910
|
+
children: entries.map((entry, position) => {
|
|
18911
|
+
const isLastEntry = position === entries.length - 1;
|
|
18912
|
+
return (0,jsx_runtime_namespaceObject.jsxs)(external_react_namespaceObject.Fragment, {
|
|
18913
|
+
children: [(0,jsx_runtime_namespaceObject.jsx)("li", {
|
|
18914
|
+
css: styles_item,
|
|
18915
|
+
children: entry.type === 'item' ? renderCrumb(entry.item, entry.index) : (0,jsx_runtime_namespaceObject.jsx)(BreadcrumbMenu, {
|
|
18916
|
+
trigger: (0,jsx_runtime_namespaceObject.jsx)("button", {
|
|
18917
|
+
type: "button",
|
|
18918
|
+
css: crumbLink,
|
|
18919
|
+
"aria-label": "Show hidden breadcrumbs",
|
|
18920
|
+
children: "..."
|
|
18921
|
+
}),
|
|
18922
|
+
items: entry.items.filter(item => item.to).map(item => ({
|
|
18923
|
+
label: item.label,
|
|
18924
|
+
to: item.to
|
|
18925
|
+
}))
|
|
18926
|
+
})
|
|
18927
|
+
}), !isLastEntry && (0,jsx_runtime_namespaceObject.jsx)("li", {
|
|
18928
|
+
css: styles_separator,
|
|
18929
|
+
"aria-hidden": "true",
|
|
18930
|
+
children: separator
|
|
18931
|
+
})]
|
|
18932
|
+
}, entry.type === 'item' ? `item-${entry.index}` : 'ellipsis');
|
|
18933
|
+
})
|
|
18934
|
+
})
|
|
18935
|
+
});
|
|
18936
|
+
};
|
|
18937
|
+
;// ./src/components/Breadcrumbs/useBreadcrumbs.ts
|
|
18938
|
+
|
|
18939
|
+
|
|
18940
|
+
|
|
18941
|
+
/** Context passed to a route's `crumb` resolver function. */
|
|
18942
|
+
|
|
18943
|
+
/**
|
|
18944
|
+
* Shape read from a route's `handle` to build its crumb. Attach this to routes
|
|
18945
|
+
* in your `createBrowserRouter` config:
|
|
18946
|
+
*
|
|
18947
|
+
* ```ts
|
|
18948
|
+
* { path: 'people', handle: { crumb: 'People' } as BreadcrumbRouteHandle }
|
|
18949
|
+
* ```
|
|
18950
|
+
*/
|
|
18951
|
+
|
|
18952
|
+
const getHandle = route => route.handle;
|
|
18953
|
+
const joinPaths = (base, path) => `/${`${base}/${path}`.split('/').filter(Boolean).join('/')}`;
|
|
18954
|
+
const resolveLabel = (route, ctx, getLabel) => {
|
|
18955
|
+
const handle = getHandle(route);
|
|
18956
|
+
if (handle?.hideCrumb) {
|
|
18957
|
+
return undefined;
|
|
18958
|
+
}
|
|
18959
|
+
if (handle?.crumb !== undefined) {
|
|
18960
|
+
return typeof handle.crumb === 'function' ? handle.crumb(ctx) : handle.crumb;
|
|
18961
|
+
}
|
|
18962
|
+
if (handle?.title !== undefined) {
|
|
18963
|
+
return handle.title;
|
|
18964
|
+
}
|
|
18965
|
+
return getLabel?.(route, ctx);
|
|
18966
|
+
};
|
|
18967
|
+
const hasContent = label => label !== undefined && label !== null && label !== false;
|
|
18968
|
+
|
|
18969
|
+
/**
|
|
18970
|
+
* Resolve a sibling route's pattern to a concrete path using the current
|
|
18971
|
+
* params. Returns `null` when the sibling needs params we don't have (it can't
|
|
18972
|
+
* be navigated to from here) so the caller can drop it.
|
|
18973
|
+
*/
|
|
18974
|
+
const resolveSiblingPath = (pattern, params) => {
|
|
18975
|
+
try {
|
|
18976
|
+
return (0,external_react_router_dom_namespaceObject.generatePath)(pattern, params);
|
|
18977
|
+
} catch {
|
|
18978
|
+
return null;
|
|
18979
|
+
}
|
|
18980
|
+
};
|
|
18981
|
+
const getSiblings = (siblingRoutes, currentRoute, parentBase, params, getLabel) => siblingRoutes.reduce((acc, route) => {
|
|
18982
|
+
if (route === currentRoute || route.index || !route.path) {
|
|
18983
|
+
return acc;
|
|
18984
|
+
}
|
|
18985
|
+
const pattern = route.path.startsWith('/') ? route.path : joinPaths(parentBase, route.path);
|
|
18986
|
+
const to = resolveSiblingPath(pattern, params);
|
|
18987
|
+
if (to === null) {
|
|
18988
|
+
return acc;
|
|
18989
|
+
}
|
|
18990
|
+
const label = resolveLabel(route, {
|
|
18991
|
+
params,
|
|
18992
|
+
pathname: to
|
|
18993
|
+
}, getLabel);
|
|
18994
|
+
if (!hasContent(label)) {
|
|
18995
|
+
return acc;
|
|
18996
|
+
}
|
|
18997
|
+
acc.push({
|
|
18998
|
+
label,
|
|
18999
|
+
to
|
|
19000
|
+
});
|
|
19001
|
+
return acc;
|
|
19002
|
+
}, []);
|
|
19003
|
+
|
|
19004
|
+
/**
|
|
19005
|
+
* Pure derivation of breadcrumb items from a route tree and a pathname.
|
|
19006
|
+
* Extracted from the hook so it can be unit-tested without a router.
|
|
19007
|
+
*/
|
|
19008
|
+
const deriveBreadcrumbs = (routes, pathname, {
|
|
19009
|
+
includeSiblings = true,
|
|
19010
|
+
getLabel
|
|
19011
|
+
} = {}) => {
|
|
19012
|
+
const matches = (0,external_react_router_dom_namespaceObject.matchRoutes)(routes, pathname);
|
|
19013
|
+
if (!matches) {
|
|
19014
|
+
return [];
|
|
19015
|
+
}
|
|
19016
|
+
const items = [];
|
|
19017
|
+
matches.forEach((match, index) => {
|
|
19018
|
+
const ctx = {
|
|
19019
|
+
params: match.params,
|
|
19020
|
+
pathname: match.pathname
|
|
19021
|
+
};
|
|
19022
|
+
const label = resolveLabel(match.route, ctx, getLabel);
|
|
19023
|
+
if (!hasContent(label)) {
|
|
19024
|
+
return;
|
|
19025
|
+
}
|
|
19026
|
+
const item = {
|
|
19027
|
+
label,
|
|
19028
|
+
to: match.pathname
|
|
19029
|
+
};
|
|
19030
|
+
if (includeSiblings) {
|
|
19031
|
+
const parentChildren = index === 0 ? routes : matches[index - 1].route.children ?? [];
|
|
19032
|
+
const parentBase = index === 0 ? '/' : matches[index - 1].pathnameBase;
|
|
19033
|
+
const siblings = getSiblings(parentChildren, match.route, parentBase, match.params, getLabel);
|
|
19034
|
+
if (siblings.length) {
|
|
19035
|
+
item.siblings = siblings;
|
|
19036
|
+
}
|
|
19037
|
+
}
|
|
19038
|
+
items.push(item);
|
|
19039
|
+
});
|
|
19040
|
+
|
|
19041
|
+
// The deepest crumb is the current page.
|
|
19042
|
+
if (items.length) {
|
|
19043
|
+
const last = items[items.length - 1];
|
|
19044
|
+
last.isCurrent = true;
|
|
19045
|
+
delete last.to;
|
|
19046
|
+
delete last.siblings;
|
|
19047
|
+
}
|
|
19048
|
+
return items;
|
|
19049
|
+
};
|
|
19050
|
+
|
|
19051
|
+
/**
|
|
19052
|
+
* Route-aware breadcrumb builder. Reads the current location, matches it
|
|
19053
|
+
* against your route tree, and returns `BreadcrumbItem[]` ready for
|
|
19054
|
+
* `<Breadcrumbs>`. Labels come from each route's `handle.crumb`/`handle.title`;
|
|
19055
|
+
* sibling routes (other children of a crumb's parent) power the hover menu.
|
|
19056
|
+
*
|
|
19057
|
+
* @example
|
|
19058
|
+
* ```tsx
|
|
19059
|
+
* const items = useBreadcrumbs({ routes });
|
|
19060
|
+
* return <Breadcrumbs items={items} maxItems={4} />;
|
|
19061
|
+
* ```
|
|
19062
|
+
*/
|
|
19063
|
+
const useBreadcrumbs = ({
|
|
19064
|
+
routes,
|
|
19065
|
+
pathname,
|
|
19066
|
+
includeSiblings = true,
|
|
19067
|
+
getLabel
|
|
19068
|
+
}) => {
|
|
19069
|
+
const location = (0,external_react_router_dom_namespaceObject.useLocation)();
|
|
19070
|
+
const activePathname = pathname ?? location.pathname;
|
|
19071
|
+
return (0,external_react_namespaceObject.useMemo)(() => deriveBreadcrumbs(routes, activePathname, {
|
|
19072
|
+
includeSiblings,
|
|
19073
|
+
getLabel
|
|
19074
|
+
}), [routes, activePathname, includeSiblings, getLabel]);
|
|
19075
|
+
};
|
|
19076
|
+
;// ./src/components/Breadcrumbs/index.ts
|
|
19077
|
+
|
|
19078
|
+
|
|
19079
|
+
|
|
18246
19080
|
;// ./src/components/Label/LabelBase.tsx
|
|
18247
19081
|
|
|
18248
19082
|
const LabelBase = /*#__PURE__*/base_default()("label", true ? {
|
|
@@ -21782,370 +22616,6 @@ function MultipleDropdownInner({
|
|
|
21782
22616
|
}
|
|
21783
22617
|
const MultipleDropdown = /*#__PURE__*/external_react_default().forwardRef(MultipleDropdownInner);
|
|
21784
22618
|
/* harmony default export */ const MultipleDropdown_MultipleDropdown = (MultipleDropdown);
|
|
21785
|
-
;// ./src/components/Popover/hooks/usePopover.tsx
|
|
21786
|
-
|
|
21787
|
-
|
|
21788
|
-
|
|
21789
|
-
/**
|
|
21790
|
-
* usePopover - Hook for popover functionality
|
|
21791
|
-
*
|
|
21792
|
-
* Custom hook that provides popover state management, positioning, and interactions.
|
|
21793
|
-
* Handles both controlled and uncontrolled modes, supports multiple interaction types
|
|
21794
|
-
* (click, hover, both), and integrates with Floating UI for positioning and focus management.
|
|
21795
|
-
*
|
|
21796
|
-
* @param options - Popover configuration options
|
|
21797
|
-
* @returns Popover context value with state, positioning, and interaction handlers
|
|
21798
|
-
*
|
|
21799
|
-
* @example
|
|
21800
|
-
* ```tsx
|
|
21801
|
-
* const popover = usePopover({
|
|
21802
|
-
* placement: 'top',
|
|
21803
|
-
* interactionsEnabled: 'click',
|
|
21804
|
-
* modal: false,
|
|
21805
|
-
* });
|
|
21806
|
-
* ```
|
|
21807
|
-
*
|
|
21808
|
-
* @see {@link Popover} - Component that uses this hook
|
|
21809
|
-
*/
|
|
21810
|
-
const usePopover = ({
|
|
21811
|
-
initialOpen = false,
|
|
21812
|
-
placement = 'bottom',
|
|
21813
|
-
modal,
|
|
21814
|
-
open: controlledOpen,
|
|
21815
|
-
onOpenChange: setControlledOpen,
|
|
21816
|
-
keyboardHandlers = true,
|
|
21817
|
-
floatingOptions = {},
|
|
21818
|
-
interactionsEnabled = 'click'
|
|
21819
|
-
} = {}) => {
|
|
21820
|
-
const [uncontrolledOpen, setUncontrolledOpen] = external_react_namespaceObject.useState(initialOpen);
|
|
21821
|
-
const [labelId, setLabelId] = external_react_namespaceObject.useState();
|
|
21822
|
-
const [descriptionId, setDescriptionId] = external_react_namespaceObject.useState();
|
|
21823
|
-
const open = controlledOpen ?? uncontrolledOpen;
|
|
21824
|
-
const setOpen = setControlledOpen ?? setUncontrolledOpen;
|
|
21825
|
-
const data = (0,external_floating_ui_react_namespaceObject.useFloating)({
|
|
21826
|
-
placement,
|
|
21827
|
-
open,
|
|
21828
|
-
onOpenChange: setOpen,
|
|
21829
|
-
whileElementsMounted: external_floating_ui_react_namespaceObject.autoUpdate,
|
|
21830
|
-
middleware: [(0,external_floating_ui_react_namespaceObject.offset)(5), (0,external_floating_ui_react_namespaceObject.flip)({
|
|
21831
|
-
crossAxis: placement.includes('-'),
|
|
21832
|
-
padding: 5
|
|
21833
|
-
}), (0,external_floating_ui_react_namespaceObject.shift)({
|
|
21834
|
-
padding: 5
|
|
21835
|
-
})],
|
|
21836
|
-
...floatingOptions
|
|
21837
|
-
});
|
|
21838
|
-
const context = data.context;
|
|
21839
|
-
const click = (0,external_floating_ui_react_namespaceObject.useClick)(context, {
|
|
21840
|
-
enabled: (0,utils_namespaceObject.isNill)(controlledOpen) && ['click', 'both'].includes(interactionsEnabled),
|
|
21841
|
-
keyboardHandlers
|
|
21842
|
-
});
|
|
21843
|
-
const isControlled = controlledOpen !== undefined;
|
|
21844
|
-
const dismiss = (0,external_floating_ui_react_namespaceObject.useDismiss)(context, {
|
|
21845
|
-
// When controlled, disable referencePress (parent handles toggle) but keep outsidePress
|
|
21846
|
-
referencePress: !isControlled,
|
|
21847
|
-
// Keep outsidePress enabled even in controlled mode
|
|
21848
|
-
outsidePress: true,
|
|
21849
|
-
escapeKey: true,
|
|
21850
|
-
ancestorScroll: !isControlled
|
|
21851
|
-
});
|
|
21852
|
-
const role = (0,external_floating_ui_react_namespaceObject.useRole)(context);
|
|
21853
|
-
const hover = (0,external_floating_ui_react_namespaceObject.useHover)(context, {
|
|
21854
|
-
enabled: (0,utils_namespaceObject.isNill)(controlledOpen) && ['hover', 'both'].includes(interactionsEnabled),
|
|
21855
|
-
handleClose: (0,external_floating_ui_react_namespaceObject.safePolygon)()
|
|
21856
|
-
});
|
|
21857
|
-
const interactionsHooks = [dismiss, role];
|
|
21858
|
-
switch (interactionsEnabled) {
|
|
21859
|
-
case 'click':
|
|
21860
|
-
{
|
|
21861
|
-
interactionsHooks.push(click);
|
|
21862
|
-
break;
|
|
21863
|
-
}
|
|
21864
|
-
case 'hover':
|
|
21865
|
-
{
|
|
21866
|
-
interactionsHooks.push(hover);
|
|
21867
|
-
break;
|
|
21868
|
-
}
|
|
21869
|
-
default:
|
|
21870
|
-
{
|
|
21871
|
-
interactionsHooks.push(click, hover);
|
|
21872
|
-
}
|
|
21873
|
-
}
|
|
21874
|
-
const interactions = (0,external_floating_ui_react_namespaceObject.useInteractions)(interactionsHooks);
|
|
21875
|
-
const result = external_react_namespaceObject.useMemo(() => ({
|
|
21876
|
-
open,
|
|
21877
|
-
setOpen,
|
|
21878
|
-
...interactions,
|
|
21879
|
-
...data,
|
|
21880
|
-
modal,
|
|
21881
|
-
labelId,
|
|
21882
|
-
descriptionId,
|
|
21883
|
-
floatingOptions,
|
|
21884
|
-
setLabelId,
|
|
21885
|
-
setDescriptionId
|
|
21886
|
-
}), [open, setOpen, interactions, data, modal, labelId, descriptionId, floatingOptions]);
|
|
21887
|
-
return result;
|
|
21888
|
-
};
|
|
21889
|
-
;// ./src/components/Popover/hooks/usePopoverContext.tsx
|
|
21890
|
-
|
|
21891
|
-
|
|
21892
|
-
/**
|
|
21893
|
-
* Context for popover components
|
|
21894
|
-
*
|
|
21895
|
-
* Provides popover state and functionality to child components. Created by
|
|
21896
|
-
* Popover component and consumed by PopoverTrigger, PopoverContent, and other
|
|
21897
|
-
* popover sub-components.
|
|
21898
|
-
*/
|
|
21899
|
-
const PopoverContext = /*#__PURE__*/external_react_namespaceObject.createContext({});
|
|
21900
|
-
|
|
21901
|
-
/**
|
|
21902
|
-
* usePopoverContext - Hook to access popover context
|
|
21903
|
-
*
|
|
21904
|
-
* Returns the popover context value. Throws an error if used outside of a
|
|
21905
|
-
* Popover component.
|
|
21906
|
-
*
|
|
21907
|
-
* @returns Popover context value with state, positioning, and interaction handlers
|
|
21908
|
-
* @throws Error if used outside of Popover component
|
|
21909
|
-
*
|
|
21910
|
-
* @example
|
|
21911
|
-
* ```tsx
|
|
21912
|
-
* const { open, setOpen, refs } = usePopoverContext();
|
|
21913
|
-
* ```
|
|
21914
|
-
*
|
|
21915
|
-
* @see {@link Popover} - Component that provides this context
|
|
21916
|
-
*/
|
|
21917
|
-
const usePopoverContext = () => {
|
|
21918
|
-
const context = external_react_namespaceObject.useContext(PopoverContext);
|
|
21919
|
-
if ((0,utils_namespaceObject.isNill)(context)) {
|
|
21920
|
-
throw new Error('Popover components must be wrapped in <Popover />');
|
|
21921
|
-
}
|
|
21922
|
-
return context;
|
|
21923
|
-
};
|
|
21924
|
-
;// ./src/components/Popover/Popover.tsx
|
|
21925
|
-
|
|
21926
|
-
|
|
21927
|
-
|
|
21928
|
-
|
|
21929
|
-
/**
|
|
21930
|
-
* Popover - Floating content container component
|
|
21931
|
-
*
|
|
21932
|
-
* A flexible popover system built on Floating UI that provides floating content
|
|
21933
|
-
* containers relative to trigger elements. Uses a compound component pattern with
|
|
21934
|
-
* Popover (root), PopoverTrigger (activator), PopoverContent (display),
|
|
21935
|
-
* PopoverHeading, PopoverDescription, and PopoverClose (content helpers).
|
|
21936
|
-
*
|
|
21937
|
-
* Supports multiple interaction modes (click, hover, both), flexible positioning
|
|
21938
|
-
* with auto-adjustment via Floating UI middleware, modal and non-modal modes,
|
|
21939
|
-
* and comprehensive accessibility features including ARIA attributes and focus
|
|
21940
|
-
* management.
|
|
21941
|
-
*
|
|
21942
|
-
* @category Components
|
|
21943
|
-
* @subcategory Overlay
|
|
21944
|
-
*
|
|
21945
|
-
* @example
|
|
21946
|
-
* ```tsx
|
|
21947
|
-
* // Basic popover on click
|
|
21948
|
-
* <Popover>
|
|
21949
|
-
* <PopoverTrigger>
|
|
21950
|
-
* <Button>Open Popover</Button>
|
|
21951
|
-
* </PopoverTrigger>
|
|
21952
|
-
* <PopoverContent>
|
|
21953
|
-
* <PopoverHeading variant="h4">Popover Title</PopoverHeading>
|
|
21954
|
-
* <PopoverDescription>
|
|
21955
|
-
* This is the popover content with helpful information.
|
|
21956
|
-
* </PopoverDescription>
|
|
21957
|
-
* <PopoverClose>Close</PopoverClose>
|
|
21958
|
-
* </PopoverContent>
|
|
21959
|
-
* </Popover>
|
|
21960
|
-
* ```
|
|
21961
|
-
*
|
|
21962
|
-
* @example
|
|
21963
|
-
* ```tsx
|
|
21964
|
-
* // Popover with hover interaction
|
|
21965
|
-
* <Popover interactionsEnabled="hover">
|
|
21966
|
-
* <PopoverTrigger>
|
|
21967
|
-
* <Icon name="info" />
|
|
21968
|
-
* </PopoverTrigger>
|
|
21969
|
-
* <PopoverContent>
|
|
21970
|
-
* <PopoverHeading variant="h4">Information</PopoverHeading>
|
|
21971
|
-
* <PopoverDescription>
|
|
21972
|
-
* This popover appears on hover.
|
|
21973
|
-
* </PopoverDescription>
|
|
21974
|
-
* </PopoverContent>
|
|
21975
|
-
* </Popover>
|
|
21976
|
-
* ```
|
|
21977
|
-
*
|
|
21978
|
-
* @example
|
|
21979
|
-
* ```tsx
|
|
21980
|
-
* // Popover with custom placement
|
|
21981
|
-
* <Popover placement="top">
|
|
21982
|
-
* <PopoverTrigger>
|
|
21983
|
-
* <Button>Show Above</Button>
|
|
21984
|
-
* </PopoverTrigger>
|
|
21985
|
-
* <PopoverContent>
|
|
21986
|
-
* <PopoverDescription>
|
|
21987
|
-
* This popover appears above the trigger element.
|
|
21988
|
-
* </PopoverDescription>
|
|
21989
|
-
* <PopoverClose>Close</PopoverClose>
|
|
21990
|
-
* </PopoverContent>
|
|
21991
|
-
* </Popover>
|
|
21992
|
-
* ```
|
|
21993
|
-
*
|
|
21994
|
-
* @example
|
|
21995
|
-
* ```tsx
|
|
21996
|
-
* // Advanced positioning with Floating UI middleware
|
|
21997
|
-
* <Popover
|
|
21998
|
-
* placement="top"
|
|
21999
|
-
* floatingOptions={{
|
|
22000
|
-
* middleware: [
|
|
22001
|
-
* offset(10),
|
|
22002
|
-
* flip(),
|
|
22003
|
-
* shift({ padding: 8 }),
|
|
22004
|
-
* ],
|
|
22005
|
-
* }}>
|
|
22006
|
-
* <PopoverTrigger>
|
|
22007
|
-
* <Button>Smart Positioning</Button>
|
|
22008
|
-
* </PopoverTrigger>
|
|
22009
|
-
* <PopoverContent>
|
|
22010
|
-
* <PopoverHeading variant="h4">Smart Positioning</PopoverHeading>
|
|
22011
|
-
* <PopoverDescription>
|
|
22012
|
-
* This popover automatically adjusts its position to stay in view.
|
|
22013
|
-
* </PopoverDescription>
|
|
22014
|
-
* <PopoverClose>Close</PopoverClose>
|
|
22015
|
-
* </PopoverContent>
|
|
22016
|
-
* </Popover>
|
|
22017
|
-
* ```
|
|
22018
|
-
*
|
|
22019
|
-
* @example
|
|
22020
|
-
* ```tsx
|
|
22021
|
-
* // Modal popover with controlled state
|
|
22022
|
-
* <Popover modal open={isOpen} onOpenChange={setIsOpen}>
|
|
22023
|
-
* <PopoverTrigger>
|
|
22024
|
-
* <Button>Open Modal Popover</Button>
|
|
22025
|
-
* </PopoverTrigger>
|
|
22026
|
-
* <PopoverContent>
|
|
22027
|
-
* <PopoverHeading variant="h4">Modal Popover</PopoverHeading>
|
|
22028
|
-
* <PopoverDescription>
|
|
22029
|
-
* This is a modal popover that traps focus.
|
|
22030
|
-
* </PopoverDescription>
|
|
22031
|
-
* <PopoverClose>Close</PopoverClose>
|
|
22032
|
-
* </PopoverContent>
|
|
22033
|
-
* </Popover>
|
|
22034
|
-
* ```
|
|
22035
|
-
*
|
|
22036
|
-
* @see {@link PopoverTrigger} - Trigger element component
|
|
22037
|
-
* @see {@link PopoverContent} - Content display component
|
|
22038
|
-
* @see {@link PopoverHeading} - Accessible heading component
|
|
22039
|
-
* @see {@link PopoverDescription} - Accessible description component
|
|
22040
|
-
* @see {@link PopoverClose} - Close button component
|
|
22041
|
-
*
|
|
22042
|
-
* @accessibility
|
|
22043
|
-
* - Keyboard accessible (ESC to close, Enter/Space to activate)
|
|
22044
|
-
* - Focus management with FloatingFocusManager for modal popovers
|
|
22045
|
-
* - ARIA attributes automatically applied (role, aria-labelledby, aria-describedby)
|
|
22046
|
-
* - Screen reader friendly with semantic heading and description components
|
|
22047
|
-
* - Focus trap for modal popovers
|
|
22048
|
-
*/
|
|
22049
|
-
|
|
22050
|
-
const Popover = ({
|
|
22051
|
-
children,
|
|
22052
|
-
modal = false,
|
|
22053
|
-
...restOptions
|
|
22054
|
-
}) => {
|
|
22055
|
-
// This can accept any props as options, e.g. `placement`,
|
|
22056
|
-
// or other positioning options.
|
|
22057
|
-
const popover = usePopover({
|
|
22058
|
-
modal,
|
|
22059
|
-
...restOptions
|
|
22060
|
-
});
|
|
22061
|
-
return (0,jsx_runtime_namespaceObject.jsx)(PopoverContext.Provider, {
|
|
22062
|
-
value: popover,
|
|
22063
|
-
children: children
|
|
22064
|
-
});
|
|
22065
|
-
};
|
|
22066
|
-
;// ./src/components/Popover/PopoverContent.tsx
|
|
22067
|
-
function PopoverContent_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
22068
|
-
|
|
22069
|
-
|
|
22070
|
-
|
|
22071
|
-
|
|
22072
|
-
|
|
22073
|
-
var PopoverContent_ref = true ? {
|
|
22074
|
-
name: "3abrc0",
|
|
22075
|
-
styles: "width:auto"
|
|
22076
|
-
} : 0;
|
|
22077
|
-
/**
|
|
22078
|
-
* PopoverContent - Content container for popover
|
|
22079
|
-
*
|
|
22080
|
-
* Renders the actual popover content that appears when the trigger is activated.
|
|
22081
|
-
* Automatically positioned using Floating UI, supports portal rendering, and
|
|
22082
|
-
* includes focus management for modal popovers. Can be configured to unmount
|
|
22083
|
-
* or keep mounted when closed.
|
|
22084
|
-
*
|
|
22085
|
-
* @category Components
|
|
22086
|
-
* @subcategory Overlay
|
|
22087
|
-
*
|
|
22088
|
-
* @example
|
|
22089
|
-
* ```tsx
|
|
22090
|
-
* <PopoverContent>
|
|
22091
|
-
* <PopoverHeading variant="h4">Title</PopoverHeading>
|
|
22092
|
-
* <PopoverDescription>Content goes here</PopoverDescription>
|
|
22093
|
-
* <PopoverClose>Close</PopoverClose>
|
|
22094
|
-
* </PopoverContent>
|
|
22095
|
-
* ```
|
|
22096
|
-
*
|
|
22097
|
-
* @example
|
|
22098
|
-
* ```tsx
|
|
22099
|
-
* // Keep content mounted when closed
|
|
22100
|
-
* <PopoverContent mountMode="keep-mounted">
|
|
22101
|
-
* <div>This stays in DOM when closed</div>
|
|
22102
|
-
* </PopoverContent>
|
|
22103
|
-
* ```
|
|
22104
|
-
*
|
|
22105
|
-
* @see {@link Popover} - Root component
|
|
22106
|
-
* @see {@link PopoverTrigger} - Trigger element component
|
|
22107
|
-
* @see {@link PopoverHeading} - Accessible heading component
|
|
22108
|
-
* @see {@link PopoverDescription} - Accessible description component
|
|
22109
|
-
*/
|
|
22110
|
-
const PopoverContent = /*#__PURE__*/external_react_namespaceObject.forwardRef(function PopoverContent({
|
|
22111
|
-
style,
|
|
22112
|
-
isFocusManagerDisabled = false,
|
|
22113
|
-
mountMode = 'unmount',
|
|
22114
|
-
...props
|
|
22115
|
-
}, propRef) {
|
|
22116
|
-
const {
|
|
22117
|
-
context: floatingContext,
|
|
22118
|
-
...context
|
|
22119
|
-
} = usePopoverContext();
|
|
22120
|
-
const ref = (0,external_floating_ui_react_namespaceObject.useMergeRefs)([context.refs.setFloating, propRef]);
|
|
22121
|
-
const keepMounted = mountMode === 'keep-mounted';
|
|
22122
|
-
if (!keepMounted && !floatingContext.open) return null;
|
|
22123
|
-
const hidden = keepMounted && !floatingContext.open;
|
|
22124
|
-
return (0,jsx_runtime_namespaceObject.jsx)(external_floating_ui_react_namespaceObject.FloatingPortal, {
|
|
22125
|
-
children: (0,jsx_runtime_namespaceObject.jsx)(external_floating_ui_react_namespaceObject.FloatingFocusManager, {
|
|
22126
|
-
context: floatingContext,
|
|
22127
|
-
modal: context.modal,
|
|
22128
|
-
disabled: isFocusManagerDisabled,
|
|
22129
|
-
children: (0,jsx_runtime_namespaceObject.jsx)(Wrapper_Wrapper, {
|
|
22130
|
-
ref: ref,
|
|
22131
|
-
css: PopoverContent_ref,
|
|
22132
|
-
style: {
|
|
22133
|
-
...context.floatingStyles,
|
|
22134
|
-
...(hidden ? {
|
|
22135
|
-
display: 'none',
|
|
22136
|
-
pointerEvents: 'none'
|
|
22137
|
-
} : null),
|
|
22138
|
-
...style
|
|
22139
|
-
},
|
|
22140
|
-
"aria-labelledby": context.labelId,
|
|
22141
|
-
"aria-describedby": context.descriptionId,
|
|
22142
|
-
direction: "column",
|
|
22143
|
-
...context.getFloatingProps(props),
|
|
22144
|
-
children: props.children
|
|
22145
|
-
})
|
|
22146
|
-
})
|
|
22147
|
-
});
|
|
22148
|
-
});
|
|
22149
22619
|
;// ./src/components/Popover/PopoverDescription.tsx
|
|
22150
22620
|
|
|
22151
22621
|
|
|
@@ -22625,95 +23095,6 @@ const TypeaheadFocusTrap = ({
|
|
|
22625
23095
|
};
|
|
22626
23096
|
;// external "@emotion/css"
|
|
22627
23097
|
const css_namespaceObject = require("@emotion/css");
|
|
22628
|
-
;// ./src/components/Popover/PopoverTrigger.tsx
|
|
22629
|
-
|
|
22630
|
-
|
|
22631
|
-
|
|
22632
|
-
|
|
22633
|
-
|
|
22634
|
-
/**
|
|
22635
|
-
* PopoverTrigger - Trigger element for popover
|
|
22636
|
-
*
|
|
22637
|
-
* Activates the popover when interacted with. By default renders as a Button,
|
|
22638
|
-
* but can be customized using the `asChild` prop to render as any React element.
|
|
22639
|
-
* Automatically receives Floating UI reference props for positioning and state
|
|
22640
|
-
* management.
|
|
22641
|
-
*
|
|
22642
|
-
* @category Components
|
|
22643
|
-
* @subcategory Overlay
|
|
22644
|
-
*
|
|
22645
|
-
* @example
|
|
22646
|
-
* ```tsx
|
|
22647
|
-
* // Default Button trigger
|
|
22648
|
-
* <PopoverTrigger>
|
|
22649
|
-
* Open Popover
|
|
22650
|
-
* </PopoverTrigger>
|
|
22651
|
-
* ```
|
|
22652
|
-
*
|
|
22653
|
-
* @example
|
|
22654
|
-
* ```tsx
|
|
22655
|
-
* // Custom element trigger
|
|
22656
|
-
* <PopoverTrigger asChild>
|
|
22657
|
-
* <Icon name="info" />
|
|
22658
|
-
* </PopoverTrigger>
|
|
22659
|
-
* ```
|
|
22660
|
-
*
|
|
22661
|
-
* @see {@link Popover} - Root component
|
|
22662
|
-
* @see {@link PopoverContent} - Content display component
|
|
22663
|
-
*/
|
|
22664
|
-
const PopoverTrigger = /*#__PURE__*/external_react_namespaceObject.forwardRef(function PopoverTrigger({
|
|
22665
|
-
children,
|
|
22666
|
-
asChild = false,
|
|
22667
|
-
dataTestId = 'trigger-button',
|
|
22668
|
-
variant = 'primary',
|
|
22669
|
-
...props
|
|
22670
|
-
}, propRef) {
|
|
22671
|
-
const context = usePopoverContext();
|
|
22672
|
-
|
|
22673
|
-
// `asChild` allows the user to pass any element as the anchor
|
|
22674
|
-
if (asChild && /*#__PURE__*/external_react_namespaceObject.isValidElement(children)) {
|
|
22675
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22676
|
-
const childrenElement = children;
|
|
22677
|
-
|
|
22678
|
-
// Extract ref from children props BEFORE calling getReferenceProps to avoid conflicts
|
|
22679
|
-
// In React 19, refs are regular props, but forwardRef components may not expose them in children.props.ref
|
|
22680
|
-
// We extract it here for backward compatibility
|
|
22681
|
-
const {
|
|
22682
|
-
ref: existingChildrenRef,
|
|
22683
|
-
...childrenPropsWithoutRef
|
|
22684
|
-
} = childrenElement.props || {};
|
|
22685
|
-
|
|
22686
|
-
// Merge all refs: floating-ui's setReference, children's ref, and propRef
|
|
22687
|
-
// This ensures positioning works while preserving any refs passed to the child component
|
|
22688
|
-
const mergedRef = (0,external_floating_ui_react_namespaceObject.useMergeRefs)([context?.refs.setReference, existingChildrenRef, propRef]);
|
|
22689
|
-
|
|
22690
|
-
// Get reference props from floating-ui - pass the merged ref to it
|
|
22691
|
-
// This ensures floating-ui gets the correct element for positioning
|
|
22692
|
-
const referenceProps = context?.getReferenceProps({
|
|
22693
|
-
ref: mergedRef,
|
|
22694
|
-
...props,
|
|
22695
|
-
...childrenPropsWithoutRef,
|
|
22696
|
-
'data-state': context.open ? 'open' : 'closed'
|
|
22697
|
-
});
|
|
22698
|
-
|
|
22699
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22700
|
-
return /*#__PURE__*/external_react_namespaceObject.cloneElement(children, referenceProps);
|
|
22701
|
-
}
|
|
22702
|
-
|
|
22703
|
-
// For non-asChild case, merge refs normally
|
|
22704
|
-
const childrenRef = /*#__PURE__*/external_react_namespaceObject.isValidElement(children) ? children.props?.ref : undefined;
|
|
22705
|
-
const ref = (0,external_floating_ui_react_namespaceObject.useMergeRefs)([context?.refs.setReference, propRef, childrenRef]);
|
|
22706
|
-
return (0,jsx_runtime_namespaceObject.jsx)(Button_Button, {
|
|
22707
|
-
"data-testid": dataTestId,
|
|
22708
|
-
ref: ref
|
|
22709
|
-
// The user can style the trigger based on the state
|
|
22710
|
-
,
|
|
22711
|
-
"data-state": context?.open ? 'open' : 'closed',
|
|
22712
|
-
variant: variant,
|
|
22713
|
-
...context?.getReferenceProps(props),
|
|
22714
|
-
children: children
|
|
22715
|
-
});
|
|
22716
|
-
});
|
|
22717
23098
|
;// ./src/components/Typeahead/styles.ts
|
|
22718
23099
|
|
|
22719
23100
|
function Typeahead_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
@@ -43324,29 +43705,6 @@ var nivo_legends_v=function(e){var i=e.x,n=e.y,o=e.size,r=e.fill,l=e.opacity,a=v
|
|
|
43324
43705
|
function nivo_pie_E(){return nivo_pie_E=Object.assign?Object.assign.bind():function(e){for(var i=1;i<arguments.length;i++){var t=arguments[i];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},nivo_pie_E.apply(null,arguments)}function nivo_pie_F(e,i){if(null==e)return{};var t={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==i.indexOf(a))continue;t[a]=e[a]}return t}var nivo_pie_X,nivo_pie_Y=function(e){var i=e.width,t=e.height,a=e.legends,n=e.data,r=e.toggleSerie;return (0,external_react_jsx_runtime_namespaceObject.jsx)(external_react_jsx_runtime_namespaceObject.Fragment,{children:a.map((function(e,a){var o;return (0,external_react_jsx_runtime_namespaceObject.jsx)(nivo_legends_E,nivo_pie_E({},e,{containerWidth:i,containerHeight:t,data:null!=(o=e.data)?o:n,toggleSerie:e.toggleSerie?r:void 0}),a)}))})},nivo_pie_P={id:"id",value:"value",sortByValue:!1,innerRadius:0,padAngle:0,cornerRadius:0,layers:["arcs","arcLinkLabels","arcLabels","legends"],startAngle:0,endAngle:360,fit:!0,activeInnerRadiusOffset:0,activeOuterRadiusOffset:0,borderWidth:0,borderColor:{from:"color",modifiers:[["darker",1]]},enableArcLabels:!0,arcLabel:"formattedValue",arcLabelsSkipAngle:0,arcLabelsSkipRadius:0,arcLabelsRadiusOffset:.5,arcLabelsTextColor:{theme:"labels.text.fill"},enableArcLinkLabels:!0,arcLinkLabel:"id",arcLinkLabelsSkipAngle:0,arcLinkLabelsOffset:0,arcLinkLabelsDiagonalLength:16,arcLinkLabelsStraightLength:24,arcLinkLabelsThickness:1,arcLinkLabelsTextOffset:6,arcLinkLabelsTextColor:{theme:"labels.text.fill"},arcLinkLabelsColor:{theme:"axis.ticks.line.stroke"},colors:{scheme:"nivo"},defs:[],fill:[],isInteractive:!0,animate:!0,motionConfig:"gentle",transitionMode:"innerRadius",tooltip:function(e){var i=e.datum;return (0,external_react_jsx_runtime_namespaceObject.jsx)(T,{id:i.id,value:i.formattedValue,enableChip:!0,color:i.color})},legends:[],role:"img",pixelRatio:"undefined"!=typeof window&&null!=(nivo_pie_X=window.devicePixelRatio)?nivo_pie_X:1},nivo_pie_j=["points"],nivo_pie_q=function(i){var t=i.data,a=i.id,n=void 0===a?nivo_pie_P.id:a,r=i.value,o=void 0===r?nivo_pie_P.value:r,d=i.valueFormat,c=i.colors,u=void 0===c?nivo_pie_P.colors:c,f=bn(n),v=bn(o),g=hn(d),h=hr(u,"id");return (0,external_react_namespaceObject.useMemo)((function(){return t.map((function(e){var i,t=f(e),a=v(e),n={id:t,label:null!=(i=e.label)?i:t,hidden:!1,value:a,formattedValue:g(a),data:e};return nivo_pie_E({},n,{color:h(n)})}))}),[t,f,v,g,h])},nivo_pie_J=function(a){var n=a.data,r=a.startAngle,o=a.endAngle,d=a.innerRadius,l=a.outerRadius,s=a.padAngle,f=a.sortByValue,v=a.activeId,g=a.activeInnerRadiusOffset,h=a.activeOuterRadiusOffset,L=a.hiddenIds,b=a.forwardLegendData,A=(0,external_react_namespaceObject.useMemo)((function(){var e=pie().value((function(e){return e.value})).startAngle(ut(r)).endAngle(ut(o)).padAngle(ut(s));return f||e.sortValues(null),e}),[r,o,s,f]),p=(0,external_react_namespaceObject.useMemo)((function(){var e=n.filter((function(e){return!L.includes(e.id)}));return{dataWithArc:A(e).map((function(e){var i=Math.abs(e.endAngle-e.startAngle);return nivo_pie_E({},e.data,{arc:{index:e.index,startAngle:e.startAngle,endAngle:e.endAngle,innerRadius:v===e.data.id?d-g:d,outerRadius:v===e.data.id?l+h:l,thickness:l-d,padAngle:e.padAngle,angle:i,angleDeg:ct(i)}})})),legendData:n.map((function(e){return{id:e.id,label:e.label,color:e.color,hidden:L.includes(e.id),data:e}}))}}),[A,n,L,v,d,g,l,h]),R=p.legendData,k=(0,external_react_namespaceObject.useRef)(b);return (0,external_react_namespaceObject.useEffect)((function(){"function"==typeof k.current&&k.current(R)}),[k,R]),p},nivo_pie_K=function(e){var i=e.activeId,t=e.onActiveIdChange,r=e.defaultActiveId,o=void 0!==i,d=(0,external_react_namespaceObject.useState)(o?null:void 0===r?null:r),l=d[0],s=d[1];return{activeId:o?i:l,setActiveId:(0,external_react_namespaceObject.useCallback)((function(e){t&&t(e),o||s(e)}),[o,t,s])}},nivo_pie_N=function(e){var i=e.data,t=e.radius,r=e.innerRadius,o=e.startAngle,d=void 0===o?nivo_pie_P.startAngle:o,l=e.endAngle,s=void 0===l?nivo_pie_P.endAngle:l,u=e.padAngle,f=void 0===u?nivo_pie_P.padAngle:u,v=e.sortByValue,g=void 0===v?nivo_pie_P.sortByValue:v,h=e.cornerRadius,L=void 0===h?nivo_pie_P.cornerRadius:h,b=e.activeInnerRadiusOffset,A=void 0===b?nivo_pie_P.activeInnerRadiusOffset:b,R=e.activeOuterRadiusOffset,k=void 0===R?nivo_pie_P.activeOuterRadiusOffset:R,m=e.activeId,I=e.onActiveIdChange,O=e.defaultActiveId,C=e.forwardLegendData,w=nivo_pie_K({activeId:m,onActiveIdChange:I,defaultActiveId:O}),x=w.activeId,W=w.setActiveId,M=a([]),y=M[0],S=M[1],T=nivo_pie_J({data:i,startAngle:d,endAngle:s,innerRadius:r,outerRadius:t,padAngle:f,sortByValue:g,activeId:x,activeInnerRadiusOffset:A,activeOuterRadiusOffset:k,hiddenIds:y,forwardLegendData:C}),D=n((function(e){S((function(i){return i.indexOf(e)>-1?i.filter((function(i){return i!==e})):[].concat(i,[e])}))}),[]);return nivo_pie_E({},T,{arcGenerator:p({cornerRadius:L,padAngle:c(f)}),setActiveId:W,toggleSerie:D})},nivo_pie_Q=function(i){var t=i.data,r=i.width,o=i.height,d=i.innerRadius,l=void 0===d?nivo_pie_P.innerRadius:d,s=i.startAngle,u=void 0===s?nivo_pie_P.startAngle:s,f=i.endAngle,v=void 0===f?nivo_pie_P.endAngle:f,g=i.padAngle,h=void 0===g?nivo_pie_P.padAngle:g,L=i.sortByValue,b=void 0===L?nivo_pie_P.sortByValue:L,A=i.cornerRadius,k=void 0===A?nivo_pie_P.cornerRadius:A,m=i.fit,I=void 0===m?nivo_pie_P.fit:m,O=i.activeInnerRadiusOffset,C=void 0===O?nivo_pie_P.activeInnerRadiusOffset:O,w=i.activeOuterRadiusOffset,x=void 0===w?nivo_pie_P.activeOuterRadiusOffset:w,W=i.activeId,M=i.onActiveIdChange,y=i.defaultActiveId,S=i.forwardLegendData,T=nivo_pie_K({activeId:W,onActiveIdChange:M,defaultActiveId:y}),D=T.activeId,V=T.setActiveId,B=(0,external_react_namespaceObject.useState)([]),z=B[0],H=B[1],G=(0,external_react_namespaceObject.useMemo)((function(){var e,i=Math.min(r,o)/2,t=i*Math.min(l,1),a=r/2,n=o/2;if(I){var d=nivo_arcs_sn(a,n,i,u-90,v-90),s=d.points,c=nivo_pie_F(d,nivo_pie_j),f=Math.min(r/c.width,o/c.height),g={width:c.width*f,height:c.height*f};g.x=(r-g.width)/2,g.y=(o-g.height)/2,a=(a-c.x)/c.width*c.width*f+g.x,n=(n-c.y)/c.height*c.height*f+g.y,e={box:c,ratio:f,points:s},i*=f,t*=f}return{centerX:a,centerY:n,radius:i,innerRadius:t,debug:e}}),[r,o,l,u,v,I]),X=nivo_pie_J({data:t,startAngle:u,endAngle:v,innerRadius:G.innerRadius,outerRadius:G.radius,padAngle:h,sortByValue:b,activeId:D,activeInnerRadiusOffset:C,activeOuterRadiusOffset:x,hiddenIds:z,forwardLegendData:S}),Y=(0,external_react_namespaceObject.useCallback)((function(e){H((function(i){return i.indexOf(e)>-1?i.filter((function(i){return i!==e})):[].concat(i,[e])}))}),[]);return nivo_pie_E({arcGenerator:nivo_arcs_fn({cornerRadius:k,padAngle:ut(h)}),activeId:D,setActiveId:V,toggleSerie:Y},X,G)},nivo_pie_U=function(i){var t=i.dataWithArc,a=i.arcGenerator,n=i.centerX,r=i.centerY,o=i.radius,d=i.innerRadius;return (0,external_react_namespaceObject.useMemo)((function(){return{dataWithArc:t,arcGenerator:a,centerX:n,centerY:r,radius:o,innerRadius:d}}),[t,a,n,r,o,d])},Z=function(i){var t=i.center,a=i.data,n=i.arcGenerator,o=i.borderWidth,d=i.borderColor,l=i.isInteractive,s=i.onClick,c=i.onMouseEnter,u=i.onMouseMove,f=i.onMouseLeave,v=i.setActiveId,g=i.tooltip,h=i.transitionMode,L=nivo_tooltip_z(),b=L.showTooltipFromEvent,A=L.hideTooltip,p=(0,external_react_namespaceObject.useMemo)((function(){if(l)return function(e,i){null==s||s(e,i)}}),[l,s]),R=(0,external_react_namespaceObject.useMemo)((function(){if(l)return function(e,i){b((0,external_react_namespaceObject.createElement)(g,{datum:e}),i),v(e.id),null==c||c(e,i)}}),[l,b,v,c,g]),m=(0,external_react_namespaceObject.useMemo)((function(){if(l)return function(e,i){b((0,external_react_namespaceObject.createElement)(g,{datum:e}),i),null==u||u(e,i)}}),[l,b,u,g]),I=(0,external_react_namespaceObject.useMemo)((function(){if(l)return function(e,i){A(),v(null),null==f||f(e,i)}}),[l,A,v,f]);return (0,external_react_jsx_runtime_namespaceObject.jsx)(nivo_arcs_un,{center:t,data:a,arcGenerator:n,borderWidth:o,borderColor:d,transitionMode:h,onClick:p,onMouseEnter:R,onMouseMove:m,onMouseLeave:I})},nivo_pie_$=["isInteractive","animate","motionConfig","theme","renderWrapper"],nivo_pie_=function(e){var i=e.data,t=e.id,a=void 0===t?nivo_pie_P.id:t,n=e.value,o=void 0===n?nivo_pie_P.value:n,l=e.valueFormat,s=e.sortByValue,c=void 0===s?nivo_pie_P.sortByValue:s,u=e.layers,f=void 0===u?nivo_pie_P.layers:u,L=e.startAngle,b=void 0===L?nivo_pie_P.startAngle:L,A=e.endAngle,p=void 0===A?nivo_pie_P.endAngle:A,R=e.padAngle,k=void 0===R?nivo_pie_P.padAngle:R,O=e.fit,C=void 0===O?nivo_pie_P.fit:O,w=e.innerRadius,x=void 0===w?nivo_pie_P.innerRadius:w,W=e.cornerRadius,M=void 0===W?nivo_pie_P.cornerRadius:W,y=e.activeInnerRadiusOffset,T=void 0===y?nivo_pie_P.activeInnerRadiusOffset:y,D=e.activeOuterRadiusOffset,V=void 0===D?nivo_pie_P.activeOuterRadiusOffset:D,B=e.width,z=e.height,H=e.margin,G=e.colors,E=void 0===G?nivo_pie_P.colors:G,F=e.borderWidth,X=void 0===F?nivo_pie_P.borderWidth:F,j=e.borderColor,J=void 0===j?nivo_pie_P.borderColor:j,K=e.enableArcLabels,N=void 0===K?nivo_pie_P.enableArcLabels:K,$=e.arcLabel,_=void 0===$?nivo_pie_P.arcLabel:$,ee=e.arcLabelsSkipAngle,ie=void 0===ee?nivo_pie_P.arcLabelsSkipAngle:ee,te=e.arcLabelsSkipRadius,ae=void 0===te?nivo_pie_P.arcLabelsSkipRadius:te,ne=e.arcLabelsTextColor,re=void 0===ne?nivo_pie_P.arcLabelsTextColor:ne,oe=e.arcLabelsRadiusOffset,de=void 0===oe?nivo_pie_P.arcLabelsRadiusOffset:oe,le=e.arcLabelsComponent,se=e.enableArcLinkLabels,ce=void 0===se?nivo_pie_P.enableArcLinkLabels:se,ue=e.arcLinkLabel,fe=void 0===ue?nivo_pie_P.arcLinkLabel:ue,ve=e.arcLinkLabelsSkipAngle,ge=void 0===ve?nivo_pie_P.arcLinkLabelsSkipAngle:ve,he=e.arcLinkLabelsOffset,Le=void 0===he?nivo_pie_P.arcLinkLabelsOffset:he,be=e.arcLinkLabelsDiagonalLength,Ae=void 0===be?nivo_pie_P.arcLinkLabelsDiagonalLength:be,pe=e.arcLinkLabelsStraightLength,Re=void 0===pe?nivo_pie_P.arcLinkLabelsStraightLength:pe,ke=e.arcLinkLabelsThickness,me=void 0===ke?nivo_pie_P.arcLinkLabelsThickness:ke,Ie=e.arcLinkLabelsTextOffset,Oe=void 0===Ie?nivo_pie_P.arcLinkLabelsTextOffset:Ie,Ce=e.arcLinkLabelsTextColor,we=void 0===Ce?nivo_pie_P.arcLinkLabelsTextColor:Ce,xe=e.arcLinkLabelsColor,We=void 0===xe?nivo_pie_P.arcLinkLabelsColor:xe,Me=e.arcLinkLabelComponent,ye=e.defs,Se=void 0===ye?nivo_pie_P.defs:ye,Te=e.fill,De=void 0===Te?nivo_pie_P.fill:Te,Ve=e.isInteractive,Be=void 0===Ve?nivo_pie_P.isInteractive:Ve,ze=e.onClick,He=e.onMouseEnter,Ge=e.onMouseMove,Ee=e.onMouseLeave,Fe=e.tooltip,Xe=void 0===Fe?nivo_pie_P.tooltip:Fe,Ye=e.activeId,Pe=e.onActiveIdChange,je=e.defaultActiveId,qe=e.transitionMode,Je=void 0===qe?nivo_pie_P.transitionMode:qe,Ke=e.legends,Ne=void 0===Ke?nivo_pie_P.legends:Ke,Qe=e.forwardLegendData,Ue=e.role,Ze=void 0===Ue?nivo_pie_P.role:Ue,$e=e.forwardedRef,_e=cn(B,z,H),ei=_e.outerWidth,ii=_e.outerHeight,ti=_e.margin,ai=_e.innerWidth,ni=_e.innerHeight,ri=nivo_pie_q({data:i,id:a,value:o,valueFormat:l,colors:E}),oi=nivo_pie_Q({data:ri,width:ai,height:ni,fit:C,innerRadius:x,startAngle:b,endAngle:p,padAngle:k,sortByValue:c,cornerRadius:M,activeInnerRadiusOffset:T,activeOuterRadiusOffset:V,activeId:Ye,onActiveIdChange:Pe,defaultActiveId:je,forwardLegendData:Qe}),di=oi.dataWithArc,li=oi.legendData,si=oi.arcGenerator,ci=oi.centerX,ui=oi.centerY,fi=oi.radius,vi=oi.innerRadius,gi=oi.setActiveId,hi=oi.toggleSerie,Li=Mn(Se,di,De),bi={arcs:null,arcLinkLabels:null,arcLabels:null,legends:null};f.includes("arcs")&&(bi.arcs=(0,external_react_jsx_runtime_namespaceObject.jsx)(Z,{center:[ci,ui],data:di,arcGenerator:si,borderWidth:X,borderColor:J,isInteractive:Be,onClick:ze,onMouseEnter:He,onMouseMove:Ge,onMouseLeave:Ee,setActiveId:gi,tooltip:Xe,transitionMode:Je},"arcs")),ce&&f.includes("arcLinkLabels")&&(bi.arcLinkLabels=(0,external_react_jsx_runtime_namespaceObject.jsx)(Y,{center:[ci,ui],data:di,label:fe,skipAngle:ge,offset:Le,diagonalLength:Ae,straightLength:Re,strokeWidth:me,textOffset:Oe,textColor:we,linkColor:We,component:Me},"arcLinkLabels")),N&&f.includes("arcLabels")&&(bi.arcLabels=(0,external_react_jsx_runtime_namespaceObject.jsx)(q,{center:[ci,ui],data:di,label:_,radiusOffset:de,skipAngle:ie,skipRadius:ae,textColor:re,transitionMode:Je,component:le},"arcLabels")),Ne.length>0&&f.includes("legends")&&(bi.legends=(0,external_react_jsx_runtime_namespaceObject.jsx)(nivo_pie_Y,{width:ai,height:ni,data:li,legends:Ne,toggleSerie:hi},"legends"));var Ai=nivo_pie_U({dataWithArc:di,arcGenerator:si,centerX:ci,centerY:ui,radius:fi,innerRadius:vi});return (0,external_react_jsx_runtime_namespaceObject.jsx)(Rt,{width:ei,height:ii,margin:ti,defs:Li,role:Ze,ref:$e,children:f.map((function(e,i){return void 0!==bi[e]?bi[e]:"function"==typeof e?(0,external_react_jsx_runtime_namespaceObject.jsx)(external_react_namespaceObject.Fragment,{children:(0,external_react_namespaceObject.createElement)(e,Ai)},i):null}))})},ee=(0,external_react_namespaceObject.forwardRef)((function(e,i){var t=e.isInteractive,a=void 0===t?nivo_pie_P.isInteractive:t,n=e.animate,r=void 0===n?nivo_pie_P.animate:n,o=e.motionConfig,d=void 0===o?nivo_pie_P.motionConfig:o,l=e.theme,s=e.renderWrapper,c=nivo_pie_F(e,nivo_pie_$);return (0,external_react_jsx_runtime_namespaceObject.jsx)(Fr,{animate:r,isInteractive:a,motionConfig:d,renderWrapper:s,theme:l,children:(0,external_react_jsx_runtime_namespaceObject.jsx)(nivo_pie_,nivo_pie_E({isInteractive:a},c,{forwardedRef:i}))})})),ie=["defaultWidth","defaultHeight","onResize","debounceResize"],te=(0,external_react_namespaceObject.forwardRef)((function(e,i){var t=e.defaultWidth,a=e.defaultHeight,n=e.onResize,r=e.debounceResize,o=nivo_pie_F(e,ie);return (0,external_react_jsx_runtime_namespaceObject.jsx)($r,{defaultWidth:t,defaultHeight:a,onResize:n,debounceResize:r,children:function(e){var t=e.width,a=e.height;return (0,external_react_jsx_runtime_namespaceObject.jsx)(ee,nivo_pie_E({width:t,height:a},o,{ref:i}))}})})),nivo_pie_ae=["isInteractive","theme","renderWrapper"],ne=function(a){var n=a.data,o=a.id,d=void 0===o?nivo_pie_P.id:o,l=a.value,s=void 0===l?nivo_pie_P.value:l,c=a.valueFormat,u=a.sortByValue,f=void 0===u?nivo_pie_P.sortByValue:u,g=a.startAngle,h=void 0===g?nivo_pie_P.startAngle:g,L=a.endAngle,p=void 0===L?nivo_pie_P.endAngle:L,R=a.padAngle,k=void 0===R?nivo_pie_P.padAngle:R,m=a.fit,I=void 0===m?nivo_pie_P.fit:m,M=a.innerRadius,T=void 0===M?nivo_pie_P.innerRadius:M,D=a.cornerRadius,V=void 0===D?nivo_pie_P.cornerRadius:D,z=a.activeInnerRadiusOffset,F=void 0===z?nivo_pie_P.activeInnerRadiusOffset:z,X=a.activeOuterRadiusOffset,Y=void 0===X?nivo_pie_P.activeOuterRadiusOffset:X,j=a.width,J=a.height,K=a.margin,N=a.pixelRatio,U=void 0===N?nivo_pie_P.pixelRatio:N,Z=a.colors,$=void 0===Z?nivo_pie_P.colors:Z,_=a.borderWidth,ee=void 0===_?nivo_pie_P.borderWidth:_,ie=a.borderColor,te=void 0===ie?nivo_pie_P.borderColor:ie,ae=a.enableArcLabels,ne=void 0===ae?nivo_pie_P.enableArcLabels:ae,re=a.arcLabel,oe=void 0===re?nivo_pie_P.arcLabel:re,de=a.arcLabelsSkipAngle,le=void 0===de?nivo_pie_P.arcLabelsSkipAngle:de,se=a.arcLabelsTextColor,ce=void 0===se?nivo_pie_P.arcLabelsTextColor:se,ue=a.arcLabelsRadiusOffset,fe=void 0===ue?nivo_pie_P.arcLabelsRadiusOffset:ue,ve=a.enableArcLinkLabels,ge=void 0===ve?nivo_pie_P.enableArcLinkLabels:ve,he=a.arcLinkLabel,Le=void 0===he?nivo_pie_P.arcLinkLabel:he,be=a.arcLinkLabelsSkipAngle,Ae=void 0===be?nivo_pie_P.arcLinkLabelsSkipAngle:be,pe=a.arcLinkLabelsOffset,Re=void 0===pe?nivo_pie_P.arcLinkLabelsOffset:pe,ke=a.arcLinkLabelsDiagonalLength,me=void 0===ke?nivo_pie_P.arcLinkLabelsDiagonalLength:ke,Ie=a.arcLinkLabelsStraightLength,Oe=void 0===Ie?nivo_pie_P.arcLinkLabelsStraightLength:Ie,Ce=a.arcLinkLabelsThickness,we=void 0===Ce?nivo_pie_P.arcLinkLabelsThickness:Ce,xe=a.arcLinkLabelsTextOffset,We=void 0===xe?nivo_pie_P.arcLinkLabelsTextOffset:xe,Me=a.arcLinkLabelsTextColor,ye=void 0===Me?nivo_pie_P.arcLinkLabelsTextColor:Me,Se=a.arcLinkLabelsColor,Te=void 0===Se?nivo_pie_P.arcLinkLabelsColor:Se,De=a.isInteractive,Ve=void 0===De?nivo_pie_P.isInteractive:De,Be=a.onClick,ze=a.onMouseMove,He=a.tooltip,Ge=void 0===He?nivo_pie_P.tooltip:He,Ee=a.activeId,Fe=a.onActiveIdChange,Xe=a.defaultActiveId,Ye=a.legends,Pe=void 0===Ye?nivo_pie_P.legends:Ye,je=a.forwardLegendData,qe=a.role,Je=a.forwardedRef,Ke=(0,external_react_namespaceObject.useRef)(null),Ne=nivo_theming_M(),Qe=cn(j,J,K),Ue=Qe.margin,Ze=Qe.innerWidth,$e=Qe.innerHeight,_e=Qe.outerWidth,ei=Qe.outerHeight,ii=nivo_pie_q({data:n,id:d,value:s,valueFormat:c,colors:$}),ti=nivo_pie_Q({data:ii,width:Ze,height:$e,fit:I,innerRadius:T,startAngle:h,endAngle:p,padAngle:k,sortByValue:f,cornerRadius:V,activeInnerRadiusOffset:F,activeOuterRadiusOffset:Y,activeId:Ee,onActiveIdChange:Fe,defaultActiveId:Xe,forwardLegendData:je}),ai=ti.dataWithArc,ni=ti.arcGenerator,ri=ti.centerX,oi=ti.centerY,di=ti.radius,li=ti.innerRadius,si=ti.setActiveId,ci=nivo_colors_Ye(te,Ne),ui=nivo_arcs_D({data:ai,label:oe,skipAngle:le,offset:fe,textColor:ce}),fi=nivo_arcs_({data:ai,skipAngle:Ae,offset:Re,diagonalLength:me,straightLength:Oe,label:Le,linkColor:Te,textOffset:We,textColor:ye});(0,external_react_namespaceObject.useEffect)((function(){if(Ke.current){Ke.current.width=_e*U,Ke.current.height=ei*U;var e=Ke.current.getContext("2d");e.scale(U,U),e.fillStyle=Ne.background,e.fillRect(0,0,_e,ei),e.save(),e.translate(Ue.left,Ue.top),ni.context(e),e.save(),e.translate(ri,oi),ai.forEach((function(i){e.beginPath(),e.fillStyle=i.color,e.strokeStyle=ci(i),e.lineWidth=ee,ni(i.arc),e.fill(),ee>0&&e.stroke()})),!0===ge&&nivo_arcs_Z(e,fi,Ne,we),!0===ne&&nivo_arcs_z(e,ui,Ne),e.restore(),Pe.forEach((function(i){nivo_legends_L(e,nivo_pie_E({},i,{data:ai,containerWidth:Ze,containerHeight:$e,theme:Ne}))}))}}),[Ke,Ze,$e,_e,ei,Ue.top,Ue.left,U,ri,oi,ni,ai,ee,ci,ne,ui,ge,fi,we,Pe,Ne]);var vi=(0,external_react_namespaceObject.useMemo)((function(){return ai.map((function(e){return nivo_pie_E({id:e.id},e.arc)}))}),[ai]),gi=function(e){if(!Ke.current)return null;var i=kn(Ke.current,e),t=i[0],a=i[1],n=nivo_arcs_dn(Ue.left+ri,Ue.top+oi,di,li,vi,t,a);return n?ai.find((function(e){return e.id===n.id})):null},hi=nivo_tooltip_z(),Li=hi.showTooltipFromEvent,bi=hi.hideTooltip,Ai=function(e){var i=gi(e);i?(null==ze||ze(i,e),si(i.id),Li((0,external_react_namespaceObject.createElement)(Ge,{datum:i}),e)):(si(null),bi())};return (0,external_react_jsx_runtime_namespaceObject.jsx)("canvas",{ref:Rn(Ke,Je),width:_e*U,height:ei*U,style:{width:_e,height:ei,cursor:Ve?"auto":"normal"},onMouseEnter:Ve?Ai:void 0,onMouseMove:Ve?Ai:void 0,onMouseLeave:Ve?function(){bi()}:void 0,onClick:Ve?function(e){if(Be){var i=gi(e);i&&Be(i,e)}}:void 0,role:qe})},nivo_pie_re=(0,external_react_namespaceObject.forwardRef)((function(e,i){var t=e.isInteractive,a=void 0===t?nivo_pie_P.isInteractive:t,n=e.theme,r=e.renderWrapper,o=nivo_pie_F(e,nivo_pie_ae);return (0,external_react_jsx_runtime_namespaceObject.jsx)(Fr,{isInteractive:a,renderWrapper:r,theme:n,children:(0,external_react_jsx_runtime_namespaceObject.jsx)(ne,nivo_pie_E({isInteractive:a},o,{forwardedRef:i}))})})),oe=["defaultWidth","defaultHeight","onResize","debounceResize"],nivo_pie_de=(0,external_react_namespaceObject.forwardRef)((function(e,i){var t=e.defaultWidth,a=e.defaultHeight,n=e.onResize,r=e.debounceResize,o=nivo_pie_F(e,oe);return (0,external_react_jsx_runtime_namespaceObject.jsx)($r,{defaultWidth:t,defaultHeight:a,onResize:n,debounceResize:r,children:function(e){var t=e.width,a=e.height;return (0,external_react_jsx_runtime_namespaceObject.jsx)(nivo_pie_re,nivo_pie_E({width:t,height:a},o,{ref:i}))}})}));
|
|
43325
43706
|
//# sourceMappingURL=nivo-pie.mjs.map
|
|
43326
43707
|
|
|
43327
|
-
;// external "react-router-dom"
|
|
43328
|
-
const external_react_router_dom_namespaceObject = require("react-router-dom");
|
|
43329
|
-
;// ./src/components/WithLink.tsx
|
|
43330
|
-
function WithLink_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
43331
|
-
|
|
43332
|
-
|
|
43333
|
-
|
|
43334
|
-
var WithLink_ref = true ? {
|
|
43335
|
-
name: "me5k4h",
|
|
43336
|
-
styles: "text-decoration:none;div{cursor:pointer;}"
|
|
43337
|
-
} : 0;
|
|
43338
|
-
const WithLink = ({
|
|
43339
|
-
link,
|
|
43340
|
-
onClick,
|
|
43341
|
-
children,
|
|
43342
|
-
className
|
|
43343
|
-
}) => link ? (0,jsx_runtime_namespaceObject.jsx)(external_react_router_dom_namespaceObject.Link, {
|
|
43344
|
-
to: link,
|
|
43345
|
-
onClick: onClick,
|
|
43346
|
-
className: className,
|
|
43347
|
-
css: WithLink_ref,
|
|
43348
|
-
children: children
|
|
43349
|
-
}) : children;
|
|
43350
43708
|
;// ./src/components/WidgetCard/WidgetCardBase.tsx
|
|
43351
43709
|
|
|
43352
43710
|
|
|
@@ -58685,6 +59043,7 @@ const UserProfile = ({
|
|
|
58685
59043
|
|
|
58686
59044
|
|
|
58687
59045
|
|
|
59046
|
+
|
|
58688
59047
|
|
|
58689
59048
|
|
|
58690
59049
|
// ============================================================================
|