@danske/sapphire-react-lab 0.88.0 → 0.89.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.
@@ -39,8 +39,8 @@ var toast = require('@react-aria/toast');
39
39
  var styles$7 = require('@danske/sapphire-css/components/toast/toast.module.css');
40
40
  var styles$8 = require('@danske/sapphire-css/components/accordion/accordion.module.css');
41
41
  var accordion = require('@react-aria/accordion');
42
- var tree = require('@react-stately/tree');
43
42
  var collections = require('@react-stately/collections');
43
+ var tree = require('@react-stately/tree');
44
44
  var styles$9 = require('@danske/sapphire-css/components/text/text.module.css');
45
45
  var label = require('@react-aria/label');
46
46
  var styles$a = require('@danske/sapphire-css/components/dropzone/dropzone.module.css');
@@ -2476,6 +2476,17 @@ const useShowToast = () => {
2476
2476
  };
2477
2477
  };
2478
2478
 
2479
+ const AccordionContext = React__default["default"].createContext({
2480
+ sidePadding: void 0
2481
+ });
2482
+ function useAccordionContext() {
2483
+ const context = React.useContext(AccordionContext);
2484
+ if (context) {
2485
+ return context;
2486
+ }
2487
+ throw new Error("Accordion context can only be used within Accordion component.");
2488
+ }
2489
+
2479
2490
  var __defProp$h = Object.defineProperty;
2480
2491
  var __defProps$f = Object.defineProperties;
2481
2492
  var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
@@ -2495,46 +2506,13 @@ var __spreadValues$h = (a, b) => {
2495
2506
  return a;
2496
2507
  };
2497
2508
  var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
2498
- function useTreeState(props) {
2499
- const state = tree.useTreeState(props);
2500
- const onToggle = (key) => {
2501
- state.setExpandedKeys(toggleKey(state.expandedKeys, key, props.expansionMode));
2502
- };
2503
- return __spreadProps$f(__spreadValues$h({}, state), { toggleKey: onToggle });
2504
- }
2505
- function toggleKey(set, key, expansionMode = "multiple") {
2506
- const res = new Set(set);
2507
- if (res.has(key)) {
2508
- res.delete(key);
2509
- } else {
2510
- if (expansionMode === "single")
2511
- res.clear();
2512
- res.add(key);
2513
- }
2514
- return res;
2515
- }
2516
-
2517
- var __defProp$g = Object.defineProperty;
2518
- var __defProps$e = Object.defineProperties;
2519
- var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
2520
- var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
2521
- var __hasOwnProp$g = Object.prototype.hasOwnProperty;
2522
- var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
2523
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2524
- var __spreadValues$g = (a, b) => {
2525
- for (var prop in b || (b = {}))
2526
- if (__hasOwnProp$g.call(b, prop))
2527
- __defNormalProp$g(a, prop, b[prop]);
2528
- if (__getOwnPropSymbols$g)
2529
- for (var prop of __getOwnPropSymbols$g(b)) {
2530
- if (__propIsEnum$g.call(b, prop))
2531
- __defNormalProp$g(a, prop, b[prop]);
2532
- }
2533
- return a;
2534
- };
2535
- var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
2509
+ const customPaddingStyleProps = (sidePadding) => ({
2510
+ paddingLeft: typeof sidePadding === "string" ? sidePadding : `${sidePadding}px`,
2511
+ paddingRight: typeof sidePadding === "string" ? sidePadding : `${sidePadding}px`
2512
+ });
2536
2513
  function _AccordionItem(props) {
2537
2514
  const { state, item } = props;
2515
+ const { sidePadding } = useAccordionContext();
2538
2516
  const isOpen = state.expandedKeys.has(item.key);
2539
2517
  const isDisabled = state.disabledKeys.has(item.key);
2540
2518
  const { isHovered, hoverProps } = interactions.useHover({ isDisabled });
@@ -2553,25 +2531,65 @@ function _AccordionItem(props) {
2553
2531
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
2554
2532
  role: "heading",
2555
2533
  "aria-level": props.headerLevel
2556
- }, /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$e(__spreadValues$g({}, utils$1.mergeProps(buttonProps, hoverProps, pressProps, focusProps)), {
2534
+ }, /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$f(__spreadValues$h({}, utils$1.mergeProps(buttonProps, hoverProps, pressProps, focusProps)), {
2557
2535
  "aria-disabled": isDisabled,
2558
2536
  ref,
2559
2537
  className: clsx__default["default"](styles__default$8["default"]["sapphire-accordion__item-header"], styles__default$8["default"]["js-focus"], styles__default$8["default"]["js-hover"], {
2560
2538
  [styles__default$8["default"]["is-focus"]]: isFocusVisible,
2561
2539
  [styles__default$8["default"]["is-hover"]]: isHovered,
2562
2540
  [styles__default$8["default"]["is-active"]]: isPressed
2563
- })
2541
+ }),
2542
+ style: sidePadding ? customPaddingStyleProps(sidePadding) : {}
2564
2543
  }), item.props.heading, /* @__PURE__ */ React__default["default"].createElement("div", {
2565
2544
  className: clsx__default["default"](styles__default$8["default"]["sapphire-accordion__item-arrow"])
2566
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, null, /* @__PURE__ */ React__default["default"].createElement(react.ChevronDown, null))))), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$e(__spreadValues$g({}, utils$1.mergeProps(regionProps, { onKeyDown })), {
2545
+ }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, null, /* @__PURE__ */ React__default["default"].createElement(react.ChevronDown, null))))), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$f(__spreadValues$h({}, utils$1.mergeProps(regionProps, { onKeyDown })), {
2567
2546
  "aria-hidden": !isOpen,
2568
2547
  className: clsx__default["default"](styles__default$8["default"]["sapphire-accordion__item-content-wrapper"])
2569
2548
  }), /* @__PURE__ */ React__default["default"].createElement("div", {
2570
- className: clsx__default["default"](styles__default$8["default"]["sapphire-accordion__item-content"])
2549
+ className: clsx__default["default"](styles__default$8["default"]["sapphire-accordion__item-content"]),
2550
+ style: sidePadding ? customPaddingStyleProps(sidePadding) : {}
2571
2551
  }, item.props.children)));
2572
2552
  }
2573
2553
  const AccordionItem = collections.Item;
2574
2554
 
2555
+ var __defProp$g = Object.defineProperty;
2556
+ var __defProps$e = Object.defineProperties;
2557
+ var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
2558
+ var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
2559
+ var __hasOwnProp$g = Object.prototype.hasOwnProperty;
2560
+ var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
2561
+ var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2562
+ var __spreadValues$g = (a, b) => {
2563
+ for (var prop in b || (b = {}))
2564
+ if (__hasOwnProp$g.call(b, prop))
2565
+ __defNormalProp$g(a, prop, b[prop]);
2566
+ if (__getOwnPropSymbols$g)
2567
+ for (var prop of __getOwnPropSymbols$g(b)) {
2568
+ if (__propIsEnum$g.call(b, prop))
2569
+ __defNormalProp$g(a, prop, b[prop]);
2570
+ }
2571
+ return a;
2572
+ };
2573
+ var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
2574
+ function useTreeState(props) {
2575
+ const state = tree.useTreeState(props);
2576
+ const onToggle = (key) => {
2577
+ state.setExpandedKeys(toggleKey(state.expandedKeys, key, props.expansionMode));
2578
+ };
2579
+ return __spreadProps$e(__spreadValues$g({}, state), { toggleKey: onToggle });
2580
+ }
2581
+ function toggleKey(set, key, expansionMode = "multiple") {
2582
+ const res = new Set(set);
2583
+ if (res.has(key)) {
2584
+ res.delete(key);
2585
+ } else {
2586
+ if (expansionMode === "single")
2587
+ res.clear();
2588
+ res.add(key);
2589
+ }
2590
+ return res;
2591
+ }
2592
+
2575
2593
  var __defProp$f = Object.defineProperty;
2576
2594
  var __defProps$d = Object.defineProperties;
2577
2595
  var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
@@ -2607,29 +2625,39 @@ const _Accordion$1 = (_a, ref) => {
2607
2625
  var _b = _a, {
2608
2626
  expansionMode = "multiple",
2609
2627
  headerLevel = 5,
2610
- hideLastDivider = false
2628
+ hideLastDivider = false,
2629
+ hasNegativeSideMargin = false,
2630
+ sidePadding
2611
2631
  } = _b, props = __objRest$d(_b, [
2612
2632
  "expansionMode",
2613
2633
  "headerLevel",
2614
- "hideLastDivider"
2634
+ "hideLastDivider",
2635
+ "hasNegativeSideMargin",
2636
+ "sidePadding"
2615
2637
  ]);
2616
2638
  sapphireReact.useThemeCheck();
2617
2639
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
2618
2640
  const state = useTreeState(__spreadProps$d(__spreadValues$f({}, props), { expansionMode }));
2619
2641
  const forwardedRef = utils$1.useObjectRef(ref);
2620
2642
  const { accordionProps } = accordion.useAccordion(props, state, forwardedRef);
2621
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$d(__spreadValues$f({}, utils$1.mergeProps(accordionProps, utils$1.filterDOMProps(props, { labelable: true }))), {
2643
+ return /* @__PURE__ */ React__default["default"].createElement(AccordionContext.Provider, {
2644
+ value: { sidePadding }
2645
+ }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$d(__spreadValues$f({}, utils$1.mergeProps(accordionProps, utils$1.filterDOMProps(props, { labelable: true }))), {
2646
+ ref: forwardedRef,
2622
2647
  className: clsx__default["default"](styles__default$8["default"]["sapphire-accordion"], {
2623
- [styles__default$8["default"]["sapphire-accordion--without-last-divider"]]: hideLastDivider
2648
+ [styles__default$8["default"]["sapphire-accordion--without-last-divider"]]: hideLastDivider,
2649
+ [styles__default$8["default"]["sapphire-accordion--negative-margin-self"]]: !sidePadding && hasNegativeSideMargin
2624
2650
  }, styleProps.className),
2625
- ref: forwardedRef,
2626
- style: styleProps.style
2651
+ style: __spreadValues$f(__spreadValues$f({}, sidePadding && hasNegativeSideMargin ? {
2652
+ marginLeft: typeof sidePadding === "string" ? `calc(${sidePadding} * -1)` : `-${sidePadding}px`,
2653
+ width: `calc(100% + calc(${sidePadding} * 2${typeof sidePadding === "string" ? "" : "px"}))`
2654
+ } : {}), styleProps.style)
2627
2655
  }), [...state.collection].map((item) => /* @__PURE__ */ React__default["default"].createElement(_AccordionItem, {
2628
2656
  headerLevel,
2629
2657
  key: item.key,
2630
2658
  item,
2631
2659
  state
2632
- })));
2660
+ }))));
2633
2661
  };
2634
2662
  const Accordion = React.forwardRef(_Accordion$1);
2635
2663
 
@@ -3796,6 +3824,7 @@ Object.defineProperty(exports, 'useLocale', {
3796
3824
  get: function () { return i18n.useLocale; }
3797
3825
  });
3798
3826
  exports.Accordion = _Accordion;
3827
+ exports.AccordionContext = AccordionContext;
3799
3828
  exports.AlertDialog = AlertDialog;
3800
3829
  exports.Avatar = Avatar;
3801
3830
  exports.Calendar = Calendar;