@olenbetong/synergi-react 1.0.6 → 2.1.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.
Files changed (59) hide show
  1. package/dist/esm/ob.react.css +221 -174
  2. package/dist/esm/ob.react.js +223 -104
  3. package/dist/esm/ob.react.min.css +1 -1
  4. package/dist/esm/ob.react.min.css.map +3 -3
  5. package/dist/esm/ob.react.min.js +1 -1
  6. package/dist/esm/ob.react.min.js.map +4 -4
  7. package/dist/iife/ob.react.css +221 -174
  8. package/dist/iife/ob.react.js +223 -104
  9. package/dist/iife/ob.react.min.css +1 -1
  10. package/dist/iife/ob.react.min.css.map +3 -3
  11. package/dist/iife/ob.react.min.js +1 -1
  12. package/dist/iife/ob.react.min.js.map +4 -4
  13. package/dist/styles/styles.css +1 -1
  14. package/dist/styles/styles.css.map +1 -1
  15. package/es/Checkbox/index.css +1 -1
  16. package/es/Checkbox/index.d.ts +11 -0
  17. package/es/Checkbox/index.js +7 -5
  18. package/es/ColorCard/index.d.ts +5 -2
  19. package/es/ColorCard/index.js +6 -0
  20. package/es/DateNavigator/index.d.ts +8 -3
  21. package/es/DateNavigator/index.js +99 -27
  22. package/es/LinkedCardList/index.css +1 -1
  23. package/es/LinkedCardList/index.d.ts +2 -2
  24. package/es/LinkedCardList/index.js +2 -2
  25. package/es/ProgressBar/index.css +1 -1
  26. package/es/SplitContainer/index.d.ts +3 -1
  27. package/es/SplitContainer/index.js +45 -14
  28. package/es/ValueToggleGroup/index.d.ts +18 -0
  29. package/es/ValueToggleGroup/index.js +12 -0
  30. package/es/index.css +1 -1
  31. package/es/index.d.ts +8 -8
  32. package/es/index.js +3 -3
  33. package/package.json +88 -90
  34. package/src/Checkbox/index.scss +12 -5
  35. package/src/Checkbox/index.tsx +23 -6
  36. package/src/ColorCard/{index.scss → index.css} +50 -59
  37. package/src/ColorCard/index.tsx +21 -9
  38. package/src/DateNavigator/index.css +96 -0
  39. package/src/DateNavigator/index.tsx +128 -36
  40. package/src/LinkedCardList/index.scss +8 -1
  41. package/src/LinkedCardList/index.tsx +2 -2
  42. package/src/ProgressBar/index.scss +2 -2
  43. package/src/Spinner/{index.scss → index.css} +13 -10
  44. package/src/Spinner/index.tsx +1 -1
  45. package/src/SplitContainer/index.tsx +71 -15
  46. package/src/ValueToggleGroup/index.css +79 -0
  47. package/src/ValueToggleGroup/index.tsx +52 -0
  48. package/src/index.scss +4 -3
  49. package/src/index.ts +12 -12
  50. package/LICENSE +0 -21
  51. package/es/ColorCard/index.css +0 -1
  52. package/es/DateNavigator/index.css +0 -1
  53. package/es/Spinner/index.css +0 -1
  54. package/es/ValueToggle/index.css +0 -1
  55. package/es/ValueToggle/index.d.ts +0 -18
  56. package/es/ValueToggle/index.js +0 -38
  57. package/src/DateNavigator/index.scss +0 -60
  58. package/src/ValueToggle/index.scss +0 -50
  59. package/src/ValueToggle/index.tsx +0 -75
@@ -2210,11 +2210,13 @@ var ob;
2210
2210
  CardColumn: () => CardColumn,
2211
2211
  CardDetail: () => CardDetail,
2212
2212
  CardLabel: () => CardLabel,
2213
+ CardStep: () => CardStep,
2214
+ CardStepList: () => CardStepList,
2213
2215
  Checkbox: () => Checkbox,
2214
2216
  ColorCard: () => ColorCard,
2215
2217
  DateNavigator: () => DateNavigator,
2216
- LinkedList: () => List,
2217
- LinkedListItem: () => ListItem,
2218
+ LinkedList: () => LinkedList,
2219
+ LinkedListItem: () => LinkedListItem,
2218
2220
  PageBanner: () => PageBanner,
2219
2221
  PageBannerImage: () => BannerImage,
2220
2222
  PageBannerTab: () => Tab,
@@ -2225,7 +2227,7 @@ var ob;
2225
2227
  Sidebar: () => Sidebar,
2226
2228
  Spinner: () => Spinner,
2227
2229
  SplitContainer: () => SplitContainer,
2228
- ValueToggle: () => ValueToggle,
2230
+ ValueToggleGroup: () => ValueToggleGroup,
2229
2231
  useTranslation: () => useTranslation
2230
2232
  });
2231
2233
 
@@ -2250,9 +2252,11 @@ var ob;
2250
2252
  function Mark(props) {
2251
2253
  return /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M20.285 2L9 13.567 3.714 8.556 0 12.272 9 21 24 5.715z", fill: "currentColor" }));
2252
2254
  }
2253
- var Checkbox = (0, import_react.forwardRef)(function Checkbox2({ className, disabled = false, id, onChange = () => null, title, value, ...other }, ref) {
2254
- const inputId = (0, import_react.useId)() + (id ?? "");
2255
- const input = (0, import_react.useRef)(null);
2255
+ var Checkbox = (0, import_react.forwardRef)(function Checkbox2({ className, disabled = false, id, onChange = () => null, label, title, reverse, value, ...other }, ref) {
2256
+ let inputId = (0, import_react.useId)();
2257
+ inputId = id ?? inputId;
2258
+ let inputIdRef = `#${inputId}`;
2259
+ let input = (0, import_react.useRef)(null);
2256
2260
  (0, import_react.useEffect)(() => {
2257
2261
  if (typeof ref === "function") {
2258
2262
  ref(input.current);
@@ -2274,39 +2278,47 @@ var ob;
2274
2278
  }
2275
2279
  function handleKeyDown(evt) {
2276
2280
  if (evt.nativeEvent) {
2277
- const { nativeEvent } = evt;
2281
+ let { nativeEvent } = evt;
2278
2282
  if (nativeEvent.key === " ") {
2279
2283
  nativeEvent.preventDefault();
2280
2284
  input.current?.click();
2281
2285
  }
2282
2286
  }
2283
2287
  }
2284
- return /* @__PURE__ */ React.createElement("div", { className: clsx_default("ObCheckbox-root", disabled && "Ob-disabled", className), title }, /* @__PURE__ */ React.createElement(
2285
- "input",
2288
+ return /* @__PURE__ */ React.createElement(
2289
+ "div",
2286
2290
  {
2287
- className: "ObCheckbox-input",
2288
- id: inputId,
2289
- type: "checkbox",
2290
- onChange: handleInputChanged,
2291
- checked: value,
2292
- disabled,
2293
- ref: input,
2294
- ...other
2295
- }
2296
- ), /* @__PURE__ */ React.createElement("label", { htmlFor: `#${inputId}`, className: "ObCheckbox-label", onKeyDown: handleKeyDown, onClick: handleClick }, /* @__PURE__ */ React.createElement("div", { className: "ObCheckbox-box" }, /* @__PURE__ */ React.createElement(Mark, { className: "ObCheckbox-mark" }))));
2291
+ className: clsx_default("ObCheckbox-root", disabled && "Ob-disabled", reverse && "Ob-reverse", className),
2292
+ title
2293
+ },
2294
+ /* @__PURE__ */ React.createElement(
2295
+ "input",
2296
+ {
2297
+ className: "ObCheckbox-input",
2298
+ id: inputId,
2299
+ type: "checkbox",
2300
+ onChange: handleInputChanged,
2301
+ checked: value,
2302
+ disabled,
2303
+ ref: input,
2304
+ ...other
2305
+ }
2306
+ ),
2307
+ /* @__PURE__ */ React.createElement("label", { htmlFor: inputIdRef, className: "ObCheckbox-label", onKeyDown: handleKeyDown, onClick: handleClick }, /* @__PURE__ */ React.createElement("div", { className: "ObCheckbox-box" }, /* @__PURE__ */ React.createElement(Mark, { className: "ObCheckbox-mark" })), label && /* @__PURE__ */ React.createElement("div", { className: "ObCheckbox-label-text" }, label))
2308
+ );
2297
2309
  });
2298
2310
 
2299
2311
  // src/ColorCard/index.tsx
2300
- function ColorCard({
2301
- as: Component,
2302
- children,
2303
- className,
2304
- href,
2305
- ...other
2306
- }) {
2312
+ function ColorCard({ as: Component, children, className, href, ...other }) {
2307
2313
  const BaseElement = Component ? Component : href ? "a" : "div";
2308
2314
  return /* @__PURE__ */ React.createElement(BaseElement, { className: clsx_default("ObColorCard-root", className), href, ...other }, children);
2309
2315
  }
2316
+ function CardStepList({ children, className, ...props }) {
2317
+ return /* @__PURE__ */ React.createElement("div", { className: clsx_default("ObColorCard-stepList", className), ...props }, children);
2318
+ }
2319
+ function CardStep({ children, className, ...props }) {
2320
+ return /* @__PURE__ */ React.createElement("div", { className: clsx_default("ObColorCard-step", className), ...props }, /* @__PURE__ */ React.createElement("div", { className: "ObColorCard-stepText" }, children));
2321
+ }
2310
2322
  function CardColumn({
2311
2323
  children,
2312
2324
  className,
@@ -2334,24 +2346,27 @@ var ob;
2334
2346
  function getUiCulture() {
2335
2347
  return af?.userSession?.culture ?? "default";
2336
2348
  }
2337
- function Arrow(props) {
2338
- const { direction, ...rest } = props;
2349
+ function Arrow({
2350
+ direction,
2351
+ ...rest
2352
+ }) {
2339
2353
  return /* @__PURE__ */ React.createElement(
2340
2354
  "button",
2341
2355
  {
2342
2356
  className: clsx_default(
2343
- "ObDateNavigator-arrow",
2357
+ "ObDateNavigator-arrow btn-reset",
2344
2358
  direction === "left" ? "ObDateNavigator-arrowLeft" : "ObDateNavigator-arrowRight"
2345
2359
  ),
2360
+ "aria-label": direction === "left" ? (0, import_appframe_core.getLocalizedString)("Previous day") : (0, import_appframe_core.getLocalizedString)("Next day"),
2346
2361
  ...rest
2347
2362
  },
2348
- /* @__PURE__ */ React.createElement("span", { className: "ObDateNavigator-icon" }, direction === "left" ? /* @__PURE__ */ React.createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", viewBox: "0 0 320 512" }, /* @__PURE__ */ React.createElement(
2363
+ /* @__PURE__ */ React.createElement("span", { className: "ObDateNavigator-icon" }, direction === "left" ? /* @__PURE__ */ React.createElement("svg", { "aria-hidden": "true", viewBox: "0 0 320 512" }, /* @__PURE__ */ React.createElement(
2349
2364
  "path",
2350
2365
  {
2351
2366
  fill: "currentColor",
2352
2367
  d: "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
2353
2368
  }
2354
- )) : /* @__PURE__ */ React.createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", viewBox: "0 0 320 512" }, /* @__PURE__ */ React.createElement(
2369
+ )) : /* @__PURE__ */ React.createElement("svg", { "aria-hidden": "true", viewBox: "0 0 320 512" }, /* @__PURE__ */ React.createElement(
2355
2370
  "path",
2356
2371
  {
2357
2372
  fill: "currentColor",
@@ -2367,41 +2382,109 @@ var ob;
2367
2382
  year: "numeric",
2368
2383
  timeZone: "utc"
2369
2384
  });
2370
- var today = /* @__PURE__ */ new Date();
2371
- var todayUtc = Date.UTC(today.getFullYear(), today.getMonth(), today.getDate());
2372
2385
  var oneDay = 24 * 60 * 60 * 1e3;
2373
- function DateNavigator({ date: dateProp, onChange }) {
2374
- let [internalDate, setInternalDate] = (0, import_react2.useState)(/* @__PURE__ */ new Date());
2375
- const date = dateProp ?? internalDate;
2376
- const dateUtc = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
2377
- let dateValue = new Date(dateUtc);
2378
- let text = formatter.format(dateValue);
2379
- let altText = "";
2380
- if (todayUtc === dateUtc) {
2381
- altText = (0, import_appframe_core.getLocalizedString)("Today");
2382
- } else if (todayUtc === dateUtc + oneDay) {
2383
- altText = (0, import_appframe_core.getLocalizedString)("Yesterday");
2384
- } else if (todayUtc === dateUtc - oneDay) {
2385
- altText = (0, import_appframe_core.getLocalizedString)("Tomorrow");
2386
+ function sanitizeDate(date) {
2387
+ if (typeof date === "string" || typeof date === "number") {
2388
+ let parsedDate = new Date(date);
2389
+ if (Number.isNaN(parsedDate.getTime())) {
2390
+ throw new Error(`Invalid date value: ${date}`);
2391
+ }
2392
+ return parsedDate;
2393
+ } else if (date instanceof Date) {
2394
+ if (Number.isNaN(date.getTime())) {
2395
+ throw new Error(`Invalid date object: ${date}`);
2396
+ }
2397
+ return new Date(date.getTime());
2398
+ } else {
2399
+ throw new Error(`Unsupported date type: ${typeof date}`);
2400
+ }
2401
+ }
2402
+ function DateNavigator({
2403
+ date: dateProp,
2404
+ defaultDate,
2405
+ disableTodayButton,
2406
+ onChange,
2407
+ minDate: minDateProp,
2408
+ maxDate: maxDateProp
2409
+ }) {
2410
+ let [internalDate, setInternalDate] = (0, import_react2.useState)(() => defaultDate ? sanitizeDate(defaultDate) : /* @__PURE__ */ new Date());
2411
+ let date = dateProp ? sanitizeDate(dateProp) : internalDate;
2412
+ let dateUtc = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
2413
+ let today = /* @__PURE__ */ new Date();
2414
+ let todayUtc = Date.UTC(today.getFullYear(), today.getMonth(), today.getDate());
2415
+ let liveRef = (0, import_react2.useRef)(null);
2416
+ let text = (() => {
2417
+ let base = formatter.format(new Date(dateUtc));
2418
+ if (todayUtc === dateUtc) return `${(0, import_appframe_core.getLocalizedString)("Today")}, ${base}`;
2419
+ if (todayUtc === dateUtc + oneDay) return `${(0, import_appframe_core.getLocalizedString)("Yesterday")}, ${base}`;
2420
+ if (todayUtc === dateUtc - oneDay) return `${(0, import_appframe_core.getLocalizedString)("Tomorrow")}, ${base}`;
2421
+ return base;
2422
+ })();
2423
+ let minDate = minDateProp && sanitizeDate(minDateProp);
2424
+ let maxDate = maxDateProp && sanitizeDate(maxDateProp);
2425
+ let disablePrev = !!minDate && dateUtc <= Date.UTC(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
2426
+ let disableNext = !!maxDate && dateUtc >= Date.UTC(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate());
2427
+ function updateDate(newDate) {
2428
+ if (minDate && newDate < minDate) {
2429
+ newDate = new Date(minDate);
2430
+ } else if (maxDate && newDate > maxDate) {
2431
+ newDate = new Date(maxDate);
2432
+ }
2433
+ onChange?.(newDate);
2434
+ setInternalDate(newDate);
2386
2435
  }
2387
- if (altText) {
2388
- text = `${altText}, ${text}`;
2436
+ function jumpToToday() {
2437
+ updateDate(/* @__PURE__ */ new Date());
2389
2438
  }
2390
- function handleDateChanged(date2) {
2391
- if (typeof onChange === "function") {
2392
- onChange(date2);
2393
- } else {
2394
- setInternalDate(date2);
2439
+ (0, import_react2.useEffect)(() => {
2440
+ if (liveRef.current) {
2441
+ liveRef.current.textContent = text;
2442
+ }
2443
+ }, [text]);
2444
+ function handleKeyDown(event) {
2445
+ if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return;
2446
+ if (event.defaultPrevented) return;
2447
+ if (event.altKey || event.metaKey) return;
2448
+ if (disablePrev && event.key === "ArrowLeft") return;
2449
+ if (disableNext && event.key === "ArrowRight") return;
2450
+ if (event.ctrlKey && event.shiftKey) {
2451
+ let newDate = new Date(dateUtc);
2452
+ if (event.key === "ArrowLeft") {
2453
+ newDate.setFullYear(newDate.getFullYear() - 1);
2454
+ } else if (event.key === "ArrowRight") {
2455
+ newDate.setFullYear(newDate.getFullYear() + 1);
2456
+ }
2457
+ updateDate(newDate);
2458
+ return;
2459
+ }
2460
+ if (event.ctrlKey) {
2461
+ let newDate = new Date(dateUtc);
2462
+ if (event.key === "ArrowLeft") {
2463
+ newDate.setMonth(newDate.getMonth() - 1);
2464
+ } else if (event.key === "ArrowRight") {
2465
+ newDate.setMonth(newDate.getMonth() + 1);
2466
+ }
2467
+ updateDate(newDate);
2468
+ return;
2469
+ }
2470
+ let modifier = event.shiftKey ? 7 : 1;
2471
+ if (event.key === "ArrowLeft") {
2472
+ updateDate(new Date(dateUtc - oneDay * modifier));
2473
+ } else if (event.key === "ArrowRight") {
2474
+ updateDate(new Date(dateUtc + oneDay * modifier));
2395
2475
  }
2396
2476
  }
2397
- return /* @__PURE__ */ React.createElement("div", { className: "ObDateNavigator-root" }, /* @__PURE__ */ React.createElement(Arrow, { direction: "left", onClick: () => handleDateChanged(new Date(dateUtc - oneDay)) }), /* @__PURE__ */ React.createElement("div", { className: "ObDateNavigator-date" }, text), /* @__PURE__ */ React.createElement(Arrow, { direction: "right", onClick: () => handleDateChanged(new Date(dateUtc + oneDay)) }));
2477
+ return (
2478
+ // biome-ignore lint/a11y/noNoninteractiveTabindex: I hate this component
2479
+ /* @__PURE__ */ React.createElement("div", { className: "ObDateNavigator-root", onKeyDown: handleKeyDown, tabIndex: 0, "aria-label": "Date navigator" }, /* @__PURE__ */ React.createElement(Arrow, { direction: "left", onClick: () => updateDate(new Date(dateUtc - oneDay)), disabled: disablePrev }), /* @__PURE__ */ React.createElement("div", { className: "ObDateNavigator-date" }, text), /* @__PURE__ */ React.createElement(Arrow, { direction: "right", onClick: () => updateDate(new Date(dateUtc + oneDay)), disabled: disableNext }), !disableTodayButton && /* @__PURE__ */ React.createElement("button", { type: "button", className: "ObDateNavigator-today btn-reset", onClick: jumpToToday }, (0, import_appframe_core.getLocalizedString)("Today")), /* @__PURE__ */ React.createElement("div", { "aria-live": "polite", ref: liveRef, style: { position: "absolute", left: "-9999px" } }))
2480
+ );
2398
2481
  }
2399
2482
 
2400
2483
  // src/LinkedCardList/index.tsx
2401
- function List({ children, className, ...other }) {
2484
+ function LinkedList({ children, className, ...other }) {
2402
2485
  return /* @__PURE__ */ React.createElement("ul", { className: clsx_default("ObLinkedList-root", className), ...other }, children);
2403
2486
  }
2404
- function ListItem({
2487
+ function LinkedListItem({
2405
2488
  children,
2406
2489
  className,
2407
2490
  label,
@@ -2613,7 +2696,20 @@ var ob;
2613
2696
  )
2614
2697
  );
2615
2698
  var Divider = (0, import_react7.forwardRef)(function Divider2(props, ref) {
2616
- return /* @__PURE__ */ React.createElement("div", { className: clsx_default("ObSplitContainer-divider", props.className), ref }, /* @__PURE__ */ React.createElement("span", null, "\u2022\u2022\u2022"));
2699
+ return /* @__PURE__ */ React.createElement(
2700
+ "div",
2701
+ {
2702
+ className: clsx_default("ObSplitContainer-divider", props.className),
2703
+ tabIndex: 0,
2704
+ ref,
2705
+ role: "separator",
2706
+ "aria-orientation": props.direction,
2707
+ "aria-valuemin": props.min,
2708
+ "aria-valuemax": props.max,
2709
+ "aria-valuenow": props.size
2710
+ },
2711
+ /* @__PURE__ */ React.createElement("span", null, "\u2022\u2022\u2022")
2712
+ );
2617
2713
  });
2618
2714
  function SplitRoot({ className, direction, ...props }) {
2619
2715
  return /* @__PURE__ */ React.createElement("div", { className: clsx_default(className, "ObSplitContainer-root", direction), ...props });
@@ -2633,6 +2729,8 @@ var ob;
2633
2729
  panelClassName,
2634
2730
  defaultFixedSize = 400,
2635
2731
  layoutVersion = 1,
2732
+ min = 0,
2733
+ max,
2636
2734
  id
2637
2735
  }) {
2638
2736
  let [fixedSize, setFixedSize] = (0, import_react7.useState)(defaultFixedSize);
@@ -2641,16 +2739,20 @@ var ob;
2641
2739
  if (import_react7.Children.count(children) !== 2) {
2642
2740
  throw Error("SplitContainer requires exactly 2 children");
2643
2741
  }
2644
- function handleFixedSizeChanged(size) {
2645
- setFixedSize((current) => {
2646
- let newValue = typeof size === "function" ? size(current) : size;
2647
- if (id) {
2648
- let key = `${article}.${id}`;
2649
- persistState(key, layoutVersion, newValue);
2742
+ let containerRef = (0, import_react7.useRef)(null);
2743
+ let [containerSize, setContainerSize] = (0, import_react7.useState)(0);
2744
+ (0, import_react7.useEffect)(() => {
2745
+ if (!containerRef.current) return;
2746
+ let resizeObserver = new ResizeObserver((entries) => {
2747
+ for (let entry of entries) {
2748
+ if (entry.contentRect) {
2749
+ setContainerSize(direction === "horizontal" ? entry.contentRect.width : entry.contentRect.height);
2750
+ }
2650
2751
  }
2651
- return newValue;
2652
2752
  });
2653
- }
2753
+ resizeObserver.observe(containerRef.current);
2754
+ return () => resizeObserver.disconnect();
2755
+ }, [direction]);
2654
2756
  (0, import_react7.useEffect)(() => {
2655
2757
  if (id) {
2656
2758
  let key = `${article}.${id}`;
@@ -2666,10 +2768,28 @@ var ob;
2666
2768
  (0, import_react7.useEffect)(() => {
2667
2769
  let divider = dividerRef.current;
2668
2770
  if (divider) {
2669
- let getNewSize = function(event) {
2771
+ let clampSize = function(size) {
2772
+ let adjustedContainerSize = containerSize - 10;
2773
+ let maxSize = Math.min(max ?? adjustedContainerSize, adjustedContainerSize);
2774
+ if (size < min) {
2775
+ size = min;
2776
+ } else if (size > maxSize) {
2777
+ size = maxSize;
2778
+ }
2779
+ return size;
2780
+ }, getNewSize = function(event) {
2670
2781
  let deltaSize = direction === "horizontal" ? event.clientX - initialPosition.clientX : event.clientY - initialPosition.clientY;
2671
2782
  deltaSize *= fixedPanel === 1 ? -1 : 1;
2672
- return initialPosition.size - deltaSize;
2783
+ return clampSize(initialPosition.size - deltaSize);
2784
+ }, handleFixedSizeChanged = function(size) {
2785
+ setFixedSize((current) => {
2786
+ let newValue = clampSize(typeof size === "function" ? size(current) : size);
2787
+ if (id) {
2788
+ let key = `${article}.${id}`;
2789
+ persistState(key, layoutVersion, newValue);
2790
+ }
2791
+ return newValue;
2792
+ });
2673
2793
  }, handlePointerUp = function(event) {
2674
2794
  let newSize = getNewSize(event);
2675
2795
  handleFixedSizeChanged(newSize);
@@ -2679,6 +2799,10 @@ var ob;
2679
2799
  }, handlePointerMove = function(event) {
2680
2800
  event.preventDefault();
2681
2801
  let newSize = getNewSize(event);
2802
+ let divider2 = dividerRef.current;
2803
+ if (divider2) {
2804
+ divider2.setAttribute("aria-valuenow", String(newSize));
2805
+ }
2682
2806
  movingPanel.style.flex = `0 0 ${newSize}px`;
2683
2807
  }, handlePointerDown = function(event) {
2684
2808
  setIsDragging(true);
@@ -2723,8 +2847,18 @@ var ob;
2723
2847
  divider?.removeEventListener("keydown", handleKeyDown);
2724
2848
  };
2725
2849
  }
2726
- }, [direction, fixedPanel]);
2727
- return /* @__PURE__ */ React.createElement(SplitRoot, { direction, className }, /* @__PURE__ */ React.createElement(SplitPanel, { className: clsx_default(isDragging && "dragging", panelClassName), fixed: fixedPanel === 1, size: fixedSize }, childrenArray[0]), /* @__PURE__ */ React.createElement(Divider, { ref: dividerRef, direction, isDragging }), /* @__PURE__ */ React.createElement(SplitPanel, { className: clsx_default(isDragging && "dragging", panelClassName), fixed: fixedPanel === 2, size: fixedSize }, childrenArray[1]));
2850
+ }, [direction, fixedPanel, layoutVersion, id, min, max, containerSize]);
2851
+ return /* @__PURE__ */ React.createElement(SplitRoot, { direction, className, ref: containerRef }, /* @__PURE__ */ React.createElement(SplitPanel, { className: clsx_default(isDragging && "dragging", panelClassName), fixed: fixedPanel === 1, size: fixedSize }, childrenArray[0]), /* @__PURE__ */ React.createElement(
2852
+ Divider,
2853
+ {
2854
+ ref: dividerRef,
2855
+ direction,
2856
+ isDragging,
2857
+ size: fixedSize,
2858
+ min,
2859
+ max: max ?? containerSize
2860
+ }
2861
+ ), /* @__PURE__ */ React.createElement(SplitPanel, { className: clsx_default(isDragging && "dragging", panelClassName), fixed: fixedPanel === 2, size: fixedSize }, childrenArray[1]));
2728
2862
  }
2729
2863
 
2730
2864
  // src/useTranslation/index.ts
@@ -2792,42 +2926,27 @@ var ob;
2792
2926
  };
2793
2927
  }
2794
2928
 
2795
- // src/ValueToggle/index.tsx
2929
+ // src/ValueToggleGroup/index.tsx
2796
2930
  var import_react9 = __toESM(require_react(), 1);
2797
- var valueToggleId = 0;
2798
- function ValueToggleInner({ className, onChange, defaultValue, options, value, ...other }, ref) {
2799
- const wrapperRef = (0, import_react9.useRef)(null);
2800
- const [toggleName] = (0, import_react9.useState)(`obet-value-toggle-${String(++valueToggleId)}`);
2801
- const isControlled = value !== void 0;
2802
- (0, import_react9.useImperativeHandle)(ref, () => {
2803
- const e = wrapperRef.current?.querySelector("input");
2804
- return {
2805
- focus: () => e?.focus(),
2806
- blur: () => e?.blur(),
2807
- value: (e?.querySelector("input:checked")).value
2808
- };
2809
- });
2810
- return /* @__PURE__ */ React.createElement("fieldset", { className, ...other }, /* @__PURE__ */ React.createElement("div", { className: "ObValueToggle-root", ref: wrapperRef }, options.map((option) => {
2811
- const isObj = typeof option === "object";
2812
- const optValue = isObj ? option.value : option;
2813
- const props = {
2814
- value: optValue
2815
- };
2816
- if (isControlled) {
2817
- props.checked = value === optValue;
2818
- } else {
2819
- props.defaultChecked = defaultValue === optValue;
2820
- }
2821
- if (typeof onChange === "function") {
2822
- props.onChange = () => onChange(optValue);
2823
- }
2824
- if (isObj) {
2825
- Object.assign(props, option);
2826
- }
2827
- return /* @__PURE__ */ React.createElement("label", { key: optValue, className: "ObValueToggle-option" }, /* @__PURE__ */ React.createElement("input", { type: "radio", className: "ObValueToggle-input", name: toggleName, ...props }), /* @__PURE__ */ React.createElement("span", { className: "ObValueToggle-label" }, isObj ? option.label || optValue : optValue));
2828
- })));
2829
- }
2830
- var ValueToggle = (0, import_react9.forwardRef)(ValueToggleInner);
2931
+ var ValueToggleGroup = (0, import_react9.forwardRef)(function ValueToggleGroup2({ options, value, defaultValue, onChange, className, name, id, style, orientation = "horizontal" }, ref) {
2932
+ let randomId = (0, import_react9.useId)();
2933
+ let groupName = name || `toggle-${id ?? randomId}`;
2934
+ let isControlled = value !== void 0;
2935
+ return /* @__PURE__ */ React.createElement("fieldset", { className: clsx_default("ObValueToggleGroup", orientation, className), role: "radiogroup", ref, style }, options.map((opt) => {
2936
+ return /* @__PURE__ */ React.createElement("label", { key: opt.value, className: clsx_default("ObValueToggleOption", { disabled: opt.disabled }) }, /* @__PURE__ */ React.createElement(
2937
+ "input",
2938
+ {
2939
+ type: "radio",
2940
+ name: groupName,
2941
+ value: opt.value,
2942
+ checked: isControlled ? value === opt.value : void 0,
2943
+ defaultChecked: !isControlled ? defaultValue === opt.value : void 0,
2944
+ onChange: () => onChange?.(opt.value),
2945
+ disabled: opt.disabled
2946
+ }
2947
+ ), /* @__PURE__ */ React.createElement("span", { className: "ObValueToggleLabel" }, opt.label ?? opt.value));
2948
+ }));
2949
+ });
2831
2950
  return __toCommonJS(index_exports);
2832
2951
  })();
2833
2952
  /*! Bundled license information:
@@ -1,2 +1,2 @@
1
- @charset "UTF-8";.ObCheckbox-root{--check-width: 2rem;--bg-color: var(--brand-dark, rgba(42, 65, 50, .5));--bg-color-hover: var(--brand-primary, rgba(42, 65, 50, .8));--bg-color-selected: var(--brand-light);display:inline-block;height:var(--check-width);margin-bottom:0}.ObCheckbox-root:focus-within .ObCheckbox-box{border:.1rem solid black}.ObCheckbox-root.Ob-disabled{--bg-color: rgba(150, 150, 150, .5);--bg-color-hover: var(--bg-color)}.ObCheckbox-box{position:relative;background:var(--bg-color);transition:background .3s ease;overflow:hidden;border-radius:calc(var(--check-width) / 15);height:var(--check-width);width:var(--check-width)}.ObCheckbox-box:hover{background:var(--bg-color-hover)}.ObCheckbox-label{position:relative;margin-bottom:0;overflow:hidden}.ObCheckbox-label:focus{outline:none}.ObCheckbox-mark{color:#fff;display:inline-block;font-size:calc(var(--check-width) * .4);left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transition:all .3s ease-in-out;transition-delay:0ms;transform:translate(-50%,-50%) scale(6)}.ObCheckbox-input{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.ObCheckbox-input:focus{outline:none}.check_Label{margin-bottom:0;flex-grow:1}.ObCheckbox-input:checked:not(:disabled)+.ObCheckbox-label{animation:animOn .8s 1 forwards}.ObCheckbox-input:checked:not(:disabled)+.ObCheckbox-label .ObCheckbox-box{background:var(--bg-color-selected)}.ObCheckbox-input:checked+.ObCheckbox-label .ObCheckbox-box .ObCheckbox-mark{transform:translate(-50%,-50%) scale(1);transition-delay:.2s;opacity:1}.ObCheckbox-root.Ob-disabled .ObCheckbox-box{cursor:not-allowed}@keyframes animOn{40%{transform:scaleY(.4) scaleX(2)}50%{transform:scaleY(1.2) scaleX(.6)}60%{transform:scaleY(.8) scaleX(1.4)}70%{transform:scaleY(1.1) scaleX(.9)}to{transform:scaleY(1) scaleX(1)}}.ObColorCard-root{--bg-color-border: black;--bg-color-main: white;--bg-size: .75rem;--card-color: rgb(0, 0, 0);align-items:stretch;background-image:linear-gradient(to right,#116069,#116069 .75rem,#fff .75rem,#fff);background-image:linear-gradient(to right,var(--bg-color-border),var(--bg-color-border) var(--bg-size),var(--bg-color-main) var(--bg-size),var(--bg-color-main));border-radius:.25rem;box-shadow:0 1px 12px #00000026,0 1px 6px #00000040;color:#666;cursor:pointer;display:flex;font-family:Variable Bahnschrift,Bahnschrift,Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1rem;min-height:10rem;overflow:hidden;transition:all ease-in-out .3s}.ObColorCard-root:nth-of-type(5n+1){--bg-color-border: rgb(178, 108, 190)}.ObColorCard-root:nth-of-type(5n+2){--bg-color-border: rgb(79, 164, 61)}.ObColorCard-root:nth-of-type(5n+3){--bg-color-border: rgb(246, 170, 23)}.ObColorCard-root:nth-of-type(5n+4){--bg-color-border: rgb(218, 93, 83)}.ObColorCard-root:nth-of-type(5n+5){--bg-color-border: rgb(23, 162, 184)}.ObColorCard-root:hover,.ObColorCard-root:focus{--bg-color-main: #f5f5f5;box-shadow:0 3px 18px #00000026,0 3px 12px #00000040;color:#666;text-decoration:none}@media screen and (min-width: 48rem){.ObColorCard-root{font-size:1.2rem}}.ObColorCard-column{display:flex;flex:1 1 100%;flex-direction:column;justify-content:space-between;margin:1rem 0;overflow:hidden;padding:.5rem 1.5rem .5rem 1rem;text-overflow:ellipsis}.ObColorCard-column:first-child{margin-left:.75rem;margin-left:var(--bg-size)}.ObColorCard-column.ObColorCard-minor{border-right:1px solid #e3e3e3;flex:0 0 4rem;transition:margin ease-in-out .3s}@media screen and (min-width: 48rem){.ObColorCard-column.ObColorCard-minor{flex:0 0 8rem}}.ObColorCard-detailLabel{color:#ccc;font-size:.8rem;text-transform:uppercase}.ObColorCard-detail:not(:last-child){margin-right:1.5rem}.ObColorCard-detail.ObColorCard-primary,.ObColorCard-detail.ObColorCard-primary .ObColorCard-detailValue{font-size:1.25rem;font-weight:300}.ObColorCard-detail.ObColorCard-primary .ObColorCard-detailValue{color:unset}@media screen and (min-width: 48rem){.ObColorCard-detail{font-size:1rem}}.ObColorCard-detailValue{color:#999}.ObColorCard-label{position:relative;padding-left:1.5rem}.ObColorCard-label:not(:last-child){margin-bottom:1rem}.ObColorCard-label:not(:last-child):after{content:"";position:absolute;width:.2rem;height:calc(100% + 1rem);border-left:.2rem dotted #666;left:.25rem;top:.5rem;z-index:0}.ObColorCard-label:before{background:#fff;border:.2rem solid hsl(186,72%,24%);border:.2rem solid var(--bg-color-border);border-radius:50%;content:"";display:block;height:.75rem;left:0;position:absolute;top:.3rem;width:.75rem;z-index:1}.ObDateNavigator-icon{display:inline-block}.ObDateNavigator-icon svg{width:.625em;position:relative;top:-1px}.ObDateNavigator-root{background-color:#f3f4f7;background-color:var(--block-header-color-bg);display:flex;font-size:1rem}.ObDateNavigator-arrow{background:none;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-appearance:button;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;display:flex;align-items:center;flex:0 0 3rem;justify-content:center;height:3rem;cursor:pointer;text-align:center}.ObDateNavigator-arrow::-moz-focus-inner{border:0;padding:0}.ObDateNavigator-arrow:hover{background-color:#e3e3e3;background-color:var(--block-header-button-hover)}.ObDateNavigator-arrowLeft{border-right:1px solid #dddddd;order:1}.ObDateNavigator-arrowRight{border-left:1px solid #dddddd;order:3}.ObDateNavigator-date{display:flex;flex:1 1 100%;flex-direction:column;justify-content:center;order:2;height:3rem;text-align:center}.ObLinkedList-root{list-style-type:none;margin-left:0;padding-left:0}.ObLinkedList-item{display:flex;align-items:center;flex-direction:row}.ObLinkedList-leftColumn{flex:1 1 4em;font-size:.75em;padding:0 1em;text-align:center}.ObLinkedList-rightColumn{flex:1 1 100%;padding:1em 1em 1em 1.5em}.ObLinkedList-line{display:flex;align-self:stretch;flex:0 0 .2em;background:#fff;position:relative}.ObLinkedList-bullet{background:#fff;border:1px solid rgba(50,50,50,.25);border-radius:.55em;height:.7em;width:.7em;position:absolute;left:0;top:50%;transform:translate(-.25em,-50%)}.ObLinkedList-card{background:#fff;border:1px solid;border-color:#e5e6e9 #dfe0e4 #d0d1d5;border-radius:.1875em;color:inherit;cursor:pointer;flex:100% 1 1;position:relative}.ObLinkedList-card:before{border-bottom:.5em solid transparent;border-right:1em solid white;border-top:.5em solid transparent;content:" ";filter:drop-shadow(-1px 0px 1px rgba(50,50,50,.2));height:1em;left:-1em;margin-top:-.5em;position:absolute;top:50%;width:1em}.ObLinkedList-card:hover{background-color:#edeff3!important;color:inherit;text-decoration:inherit}.ObLinkedList-card:hover:before{border-right-color:#edeff3!important}.ObPageBanner-root{background-color:#116069;background-color:var(--brand-dark);box-shadow:0 8px 8px #0003;color:#fff}.ObPageBanner-root a{color:#b3d5e6}.ObPageBanner-inner{display:flex;align-items:center;flex-direction:column}@media screen and (min-width: 768px){.ObPageBanner-inner{align-items:flex-start;flex-direction:row}}.ObPageBanner-plantTitle{font-size:2rem}@media screen and (min-width: 992px){.ObPageBanner-plantTitle{font-size:3rem}}.ObPageBanner-bannerImage{align-self:stretch;background-color:#ddd;display:inline-block;height:20vh;object-fit:cover;object-position:center center;width:100%}@media screen and (min-width: 576px){.ObPageBanner-bannerImage{align-self:center;margin:0;margin-right:1rem;border:.4rem solid white;border-radius:50%;height:150px;width:150px}}@media screen and (min-width: 992px){.ObPageBanner-bannerImage{height:250px;width:250px}}.ObPageBanner-bannerTitle{margin-bottom:1rem;margin-top:1rem;font-size:2rem}@media screen and (min-width: 768px){.ObPageBanner-bannerTitle{margin-top:0}}@media screen and (min-width: 992px){.ObPageBanner-bannerTitle{font-size:3rem}}.ObPageBanner-tabList.sticky{position:-webkit-sticky;position:sticky;top:0;z-index:1000}.ObPageBanner-tabListInner{overflow-x:auto;scrollbar-width:thin;white-space:nowrap}.ObPageBanner-tab{border-bottom:.25rem solid transparent;display:inline-block;margin-top:.5rem;min-width:8rem;padding:.5rem 1rem;text-align:center;text-transform:capitalize}.ObPageBanner-tab.active{border-color:#fff}.ObProgressBar-root{height:1.5em;width:100%;appearance:none;-webkit-appearance:none;background-color:#f5f5f5;border:none;border-radius:3px;box-shadow:0 2px 3px #0003 inset;color:#4169e1;position:relative}.ObProgressBar-root::-webkit-progress-bar{background-color:#f5f5f5;border-radius:3px;box-shadow:0 2px 3px #0003 inset}.ObProgressBar-root::-webkit-progress-value{background-image:linear-gradient(135deg,transparent,transparent 33%,rgba(0,0,0,.1) 33%,rgba(0,0,0,.1) 66%,transparent 66%),linear-gradient(top,#ffffff40,#0003),linear-gradient(left,var(--brand-primary, hsl(186, 72%, 24%)),var(--brand-light, hsl(186, 72%, 37%)));background-image:-webkit-linear-gradient(135deg,transparent,transparent 33%,rgba(0,0,0,.1) 33%,rgba(0,0,0,.1) 66%,transparent 66%),-webkit-linear-gradient(top,rgba(255,255,255,.25),rgba(0,0,0,.2)),-webkit-linear-gradient(left,var(--brand-primary),hsl(186,72%,24%),var(--brand-light, hsl(186, 72%, 37%)));background-size:35px 20px,100% 100%,100% 100%;border-radius:3px;position:relative;transition:width .5s ease-out}.ObProgressBar-root::-webkit-progress-value:after{background-color:#fff;content:"";border-radius:100%;height:5px;position:absolute;right:7px;top:7px;width:5px}.ObProgressBar-root::-moz-progress-bar{background-image:linear-gradient(135deg,transparent,transparent 33%,rgba(0,0,0,.1) 33%,rgba(0,0,0,.1) 66%,transparent 66%),linear-gradient(top,#ffffff40,#0003),linear-gradient(left,var(--brand-primary),var(--brand-light));background-image:-moz-linear-gradient(135deg,transparent,transparent 33%,rgba(0,0,0,.1) 33%,rgba(0,0,0,.1) 66%,transparent 66%),-moz-linear-gradient(top,rgba(255,255,255,.25),rgba(0,0,0,.2)),-moz-linear-gradient(left,var(--brand-primary),var(--brand-light));background-size:35px 20px,100% 100%,100% 100%;border-radius:3px;transition:width .5s ease-out}.ObSidebar-root{position:fixed;bottom:0;left:0;top:0;z-index:2;background-color:#fff;transform:translate(-100%);transition:transform .2s ease-out;will-change:transform;overflow-y:auto}.ObSidebar-root.Ob-right{left:unset;right:0;transform:translate(100%)}.ObSidebar-root.Ob-open{transform:translate(0)}.ObSidebar-root.ObSidebar-shadow{box-shadow:2px 2px 4px #00000026}.ObSidebar-root.ObSidebar-shadow.Ob-right{box-shadow:-2px 2px 4px #00000026}.ObSidebar-overlay{position:fixed;inset:0;z-index:1;opacity:0;visibility:hidden;transition:opacity .3s ease-out,visibility .3s ease-out;background-color:#0000004d}.ObSidebar-overlay.Ob-open{opacity:1;visibility:visible}.ObSpinner-root{display:inline-block}.ObSpinner-fullPage{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw}.ObSpinner-spinner{display:inline-block;height:.75em;position:relative;width:2.5em}.ObSpinner-bullet{animation-timing-function:cubic-bezier(0,1,1,0);background:#666;border-radius:50%;height:.5em;position:absolute;top:.2rem;width:.5em}.ObSpinner-bullet:nth-child(1){animation:scaleAnimation .6s infinite ease-in-out;left:.25em}.ObSpinner-bullet:nth-child(2){animation:translateAnimation .6s infinite ease-in-out;left:.25em}.ObSpinner-bullet:nth-child(3){animation:translateAnimation .6s infinite ease-in-out;left:1.2em}.ObSpinner-bullet:nth-child(4){animation:scaleAnimation .6s infinite ease-in-out reverse;left:2em}@keyframes scaleAnimation{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes translateAnimation{0%{transform:translate(0)}to{transform:translate(.825em)}}.\1f616 {display:initial}.ObSplitContainer-root{display:flex;flex-direction:column;height:100%;width:100%}.ObSplitContainer-root.horizontal{flex-direction:row}.ObSplitContainer-panel{overflow:hidden}.ObSplitContainer-divider{flex:0 0 .5rem;background-color:transparent;line-height:.75;cursor:ns-resize;display:flex;align-items:center;justify-content:center}.ObSplitContainer-divider:focus{background-color:#0000004d}.ObSplitContainer-root.horizontal>.ObSplitContainer-divider{cursor:ew-resize;writing-mode:vertical-lr}.ObSplitContainer-panel.dragging{pointer-events:none}.ObValueToggle-root{display:flex;align-items:center}.ObValueToggle-option{margin-bottom:0}.ObValueToggle-label{cursor:pointer;font-size:.8em;margin:0 .2em;padding:.3em .5em;text-transform:uppercase}.ObValueToggle-label:hover{background:#ccc}.ObValueToggle-input:checked+.ObValueToggle-label{--color-bg: var(--brand-dark);background-color:#666;background-color:var(--color-bg);cursor:default;color:#fff}.ObValueToggle-input:checked:focus-within+.ObValueToggle-label{--color-bg: var(--brand-light)}.ObValueToggle-input:checked:hover+.ObValueToggle-label{background-color:#666;background-color:var(--color-bg)}.ObValueToggle-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
1
+ @charset "UTF-8";.ObCheckbox-root{--check-width: 2rem;--bg-color: var(--brand-dark, rgba(42, 65, 50, .5));--bg-color-hover: var(--brand-primary, rgba(42, 65, 50, .8));--bg-color-selected: var(--brand-light);display:inline-block;height:var(--check-width);margin-bottom:0}.ObCheckbox-root:focus-within .ObCheckbox-box{border:.1rem solid black}.ObCheckbox-root.Ob-disabled{--bg-color: rgba(150, 150, 150, .5);--bg-color-hover: var(--bg-color)}.ObCheckbox-box{position:relative;background:var(--bg-color);transition:background .3s ease;overflow:hidden;border-radius:calc(var(--check-width) / 15);height:var(--check-width);width:var(--check-width)}.ObCheckbox-box:hover{background:var(--bg-color-hover)}.ObCheckbox-label{position:relative;margin-bottom:0;overflow:hidden}.ObCheckbox-label:focus{outline:none}.ObCheckbox-mark{color:#fff;display:inline-block;font-size:calc(var(--check-width) * .4);left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transition:all .3s ease-in-out;transition-delay:0ms;transform:translate(-50%,-50%) scale(6)}.ObCheckbox-input{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.ObCheckbox-input:focus{outline:none}.ObCheckbox-label{display:flex;gap:.5rem;align-items:center;overflow:visible}.ObCheckbox-root.Ob-reverse .ObCheckbox-label{flex-direction:row-reverse}.ObCheckbox-input:checked:not(:disabled)+.ObCheckbox-label .ObCheckbox-box{animation:animOn .6s 1 forwards}.ObCheckbox-input:checked:not(:disabled)+.ObCheckbox-label .ObCheckbox-box{background:var(--bg-color-selected)}.ObCheckbox-input:checked+.ObCheckbox-label .ObCheckbox-box .ObCheckbox-mark{transform:translate(-50%,-50%) scale(1);transition-delay:.2s;opacity:1}.ObCheckbox-root.Ob-disabled .ObCheckbox-box{cursor:not-allowed}@keyframes animOn{40%{transform:scaleY(.4) scaleX(2)}50%{transform:scaleY(1.2) scaleX(.6)}60%{transform:scaleY(.8) scaleX(1.4)}70%{transform:scaleY(1.1) scaleX(.9)}to{transform:scaleY(1) scaleX(1)}}.ObColorCard-root{--bg-color-border: black;--bg-color-main: white;--bg-size: .75rem;--card-color: rgb(0, 0, 0);display:flex;align-items:stretch;min-height:10rem;overflow:hidden;border-radius:.25rem;box-shadow:0 1px 12px #00000026,0 1px 6px #00000040;color:#666;background-image:linear-gradient(to right,var(--bg-color-border),var(--bg-color-border) var(--bg-size),var(--bg-color-main) var(--bg-size),var(--bg-color-main));font-family:Variable Bahnschrift,Bahnschrift,Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1rem;transition:all ease-in-out .3s;cursor:pointer;&:nth-of-type(5n+1){--bg-color-border: rgb(178, 108, 190)}&:nth-of-type(5n+2){--bg-color-border: rgb(79, 164, 61)}&:nth-of-type(5n+3){--bg-color-border: rgb(246, 170, 23)}&:nth-of-type(5n+4){--bg-color-border: rgb(218, 93, 83)}&:nth-of-type(5n+5){--bg-color-border: rgb(23, 162, 184)}&:hover,&:focus{--bg-color-main: #f5f5f5;box-shadow:0 3px 18px #00000026,0 3px 12px #00000040;text-decoration:none}@media screen and (min-width: 48rem){font-size:1.2rem}}.ObColorCard-column{display:flex;flex:1 1 100%;flex-direction:column;justify-content:space-between;margin:1rem 0;padding:.5rem 1.5rem .5rem 1rem;overflow:hidden;text-overflow:ellipsis;&:first-child{margin-left:var(--bg-size, .75rem)}&.ObColorCard-minor{flex:0 0 4rem;border-right:1px solid #e3e3e3;transition:margin ease-in-out .3s;@media screen and (min-width: 48rem){flex:0 0 8rem}}}.ObColorCard-detailLabel{color:#696969;font-size:.8rem;text-transform:uppercase}.ObColorCard-detail{&:not(:last-child){margin-right:1.5rem}&.ObColorCard-primary,&.ObColorCard-primary .ObColorCard-detailValue{font-size:1.25rem;font-weight:300}&.ObColorCard-primary .ObColorCard-detailValue{color:unset}@media screen and (min-width: 48rem){font-size:1rem}}.ObColorCard-detailValue{color:#555}.ObColorCard-stepList{display:flex;flex-direction:column;gap:1rem}.ObColorCard-step{position:relative;text-box-trim:trim-both;display:flex;align-items:flex-start;gap:.5rem}.ObColorCard-step:before{flex:.6em 0 0;content:"";position:relative;top:.25em;width:.6em;height:.6em;background:#fff;border:2px solid var(--bg-color-border, #999);border-radius:50%;box-sizing:border-box;z-index:1}.ObColorCard-step:not(:last-child):after{content:"";position:absolute;top:1em;left:calc(.3em - 1px);height:calc(100% - .8875em + 1rem);border-left:2px dotted #999;z-index:0}:root{--ob-datenavigator-height: 3rem}.ObDateNavigator-icon{display:inline-block;svg{width:.625em;position:relative;top:-1px}}.ObDateNavigator-root{background-color:#f3f4f7;background-color:var(--block-header-color-bg);display:flex;font-size:1rem;outline:none;&:focus-visible{outline:2px solid var(--brand-dark, #336699);outline-offset:2px}}.ObDateNavigator-arrow{display:flex;align-items:center;flex:0 0 var(--ob-datenavigator-height);justify-content:center;height:var(--ob-datenavigator-height);cursor:pointer;text-align:center;&:hover:not(:disabled){background-color:#e3e3e3;background-color:var(--block-header-button-hover)}&:disabled{cursor:not-allowed;color:#0003}}.ObDateNavigator-arrowLeft{border-right:1px solid #dddddd;order:1}.ObDateNavigator-arrowRight{border-left:1px solid #dddddd;order:3}.ObDateNavigator-date{display:flex;flex:1 1 100%;flex-direction:column;justify-content:center;order:2;height:var(--ob-datenavigator-height);text-align:center}.ObDateNavigator-today{order:4;padding:0 1rem;height:var(--ob-datenavigator-height);display:flex;align-items:center;justify-content:center;font-size:.875rem;color:var(--brand-dark, #336699);text-transform:uppercase;cursor:pointer;text-wrap:nowrap;border-left:1px solid #dddddd;&:hover:not(:disabled){background-color:var(--block-header-button-hover)}&:focus-visible{outline:2px solid var(--brand-dark, #336699);outline-offset:2px}}:root{--ob-linked-list-bullet-size: .7em;--ob-linked-list-line-width: .2em}.ObLinkedList-root{list-style-type:none;margin-left:0;padding-left:0}.ObLinkedList-item{display:flex;align-items:center;flex-direction:row}.ObLinkedList-leftColumn{flex:1 1 4em;font-size:.75em;padding:0 1em;text-align:center}.ObLinkedList-rightColumn{flex:1 1 100%;padding:1em 1em 1em 1.5em}.ObLinkedList-line{display:flex;align-self:stretch;flex:0 0 .2em;background:#fff;position:relative}.ObLinkedList-bullet{background:#fff;border:1px solid rgba(50,50,50,.25);border-radius:.55em;height:.7em;width:.7em;position:absolute;left:0;top:50%;transform:translate(calc(-1 * var(--ob-linked-list-bullet-size) / 2 + var(--ob-linked-list-line-width) / 2),-50%)}.ObLinkedList-card{display:block;background:#fff;border:1px solid;border-color:#e5e6e9 #dfe0e4 #d0d1d5;border-radius:.1875em;color:inherit;cursor:pointer;flex:100% 1 1;position:relative}.ObLinkedList-card:before{border-bottom:.5em solid transparent;border-right:1em solid white;border-top:.5em solid transparent;content:" ";filter:drop-shadow(-1px 0px 1px rgba(50,50,50,.2));height:1em;left:-1em;margin-top:-.5em;position:absolute;top:50%;width:1em}.ObLinkedList-card:hover{background-color:#edeff3!important;color:inherit;text-decoration:inherit}.ObLinkedList-card:hover:before{border-right-color:#edeff3!important}.ObPageBanner-root{background-color:#116069;background-color:var(--brand-dark);box-shadow:0 8px 8px #0003;color:#fff}.ObPageBanner-root a{color:#b3d5e6}.ObPageBanner-inner{display:flex;align-items:center;flex-direction:column}@media screen and (min-width: 768px){.ObPageBanner-inner{align-items:flex-start;flex-direction:row}}.ObPageBanner-plantTitle{font-size:2rem}@media screen and (min-width: 992px){.ObPageBanner-plantTitle{font-size:3rem}}.ObPageBanner-bannerImage{align-self:stretch;background-color:#ddd;display:inline-block;height:20vh;object-fit:cover;object-position:center center;width:100%}@media screen and (min-width: 576px){.ObPageBanner-bannerImage{align-self:center;margin:0;margin-right:1rem;border:.4rem solid white;border-radius:50%;height:150px;width:150px}}@media screen and (min-width: 992px){.ObPageBanner-bannerImage{height:250px;width:250px}}.ObPageBanner-bannerTitle{margin-bottom:1rem;margin-top:1rem;font-size:2rem}@media screen and (min-width: 768px){.ObPageBanner-bannerTitle{margin-top:0}}@media screen and (min-width: 992px){.ObPageBanner-bannerTitle{font-size:3rem}}.ObPageBanner-tabList.sticky{position:-webkit-sticky;position:sticky;top:0;z-index:1000}.ObPageBanner-tabListInner{overflow-x:auto;scrollbar-width:thin;white-space:nowrap}.ObPageBanner-tab{border-bottom:.25rem solid transparent;display:inline-block;margin-top:.5rem;min-width:8rem;padding:.5rem 1rem;text-align:center;text-transform:capitalize}.ObPageBanner-tab.active{border-color:#fff}.ObProgressBar-root{height:1.5em;width:100%;appearance:none;-webkit-appearance:none;background-color:#f5f5f5;border:none;border-radius:3px;box-shadow:0 2px 3px #0003 inset;color:#4169e1;position:relative}.ObProgressBar-root::-webkit-progress-bar{background-color:#f5f5f5;border-radius:3px;box-shadow:0 2px 3px #0003 inset}.ObProgressBar-root::-webkit-progress-value{background-image:linear-gradient(135deg,transparent,transparent 33%,rgba(0,0,0,.1) 33%,rgba(0,0,0,.1) 66%,transparent 66%),linear-gradient(top,#ffffff40,#0003),linear-gradient(left,var(--brand-primary),var(--brand-light));background-image:-webkit-linear-gradient(135deg,transparent,transparent 33%,rgba(0,0,0,.1) 33%,rgba(0,0,0,.1) 66%,transparent 66%),-webkit-linear-gradient(top,rgba(255,255,255,.25),rgba(0,0,0,.2)),-webkit-linear-gradient(left,var(--brand-primary),var(--brand-light));background-size:35px 20px,100% 100%,100% 100%;border-radius:3px;position:relative;transition:width .5s ease-out}.ObProgressBar-root::-webkit-progress-value:after{background-color:#fff;content:"";border-radius:100%;height:5px;position:absolute;right:7px;top:7px;width:5px}.ObProgressBar-root::-moz-progress-bar{background-image:linear-gradient(135deg,transparent,transparent 33%,rgba(0,0,0,.1) 33%,rgba(0,0,0,.1) 66%,transparent 66%),linear-gradient(top,#ffffff40,#0003),linear-gradient(left,var(--brand-primary),var(--brand-light));background-image:-moz-linear-gradient(135deg,transparent,transparent 33%,rgba(0,0,0,.1) 33%,rgba(0,0,0,.1) 66%,transparent 66%),-moz-linear-gradient(top,rgba(255,255,255,.25),rgba(0,0,0,.2)),-moz-linear-gradient(left,var(--brand-primary),var(--brand-light));background-size:35px 20px,100% 100%,100% 100%;border-radius:3px;transition:width .5s ease-out}.ObSidebar-root{position:fixed;bottom:0;left:0;top:0;z-index:2;background-color:#fff;transform:translate(-100%);transition:transform .2s ease-out;will-change:transform;overflow-y:auto}.ObSidebar-root.Ob-right{left:unset;right:0;transform:translate(100%)}.ObSidebar-root.Ob-open{transform:translate(0)}.ObSidebar-root.ObSidebar-shadow{box-shadow:2px 2px 4px #00000026}.ObSidebar-root.ObSidebar-shadow.Ob-right{box-shadow:-2px 2px 4px #00000026}.ObSidebar-overlay{position:fixed;inset:0;z-index:1;opacity:0;visibility:hidden;transition:opacity .3s ease-out,visibility .3s ease-out;background-color:#0000004d}.ObSidebar-overlay.Ob-open{opacity:1;visibility:visible}.ObSpinner-wrapper,.ObSpinner-fullPage{--bullet-size: .5em}.ObSpinner-root{display:inline-block}.ObSpinner-fullPage{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw}.ObSpinner-spinner{display:inline-block;height:calc(var(--bullet-size) * 1.5);position:relative;width:calc(var(--bullet-size) * 5)}.ObSpinner-bullet{animation-timing-function:cubic-bezier(0,1,1,0);background:#666;border-radius:50%;height:var(--bullet-size);position:absolute;top:.2rem;width:var(--bullet-size);&:nth-child(1){animation:scaleAnimation .6s infinite ease-in-out;left:calc(var(--bullet-size) * .5)}&:nth-child(2){animation:translateAnimation .6s infinite ease-in-out;left:calc(var(--bullet-size) * .5)}&:nth-child(3){animation:translateAnimation .6s infinite ease-in-out;left:calc(var(--bullet-size) * 2.4)}&:nth-child(4){animation:scaleAnimation .6s infinite ease-in-out reverse;left:calc(var(--bullet-size) * 4)}}@keyframes scaleAnimation{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes translateAnimation{0%{transform:translate(0)}to{transform:translate(calc(var(--bullet-size) * 1.65))}}.\1f616 {display:initial}.ObSplitContainer-root{display:flex;flex-direction:column;height:100%;width:100%}.ObSplitContainer-root.horizontal{flex-direction:row}.ObSplitContainer-panel{overflow:hidden}.ObSplitContainer-divider{flex:0 0 .5rem;background-color:transparent;line-height:.75;cursor:ns-resize;display:flex;align-items:center;justify-content:center}.ObSplitContainer-divider:focus{background-color:#0000004d}.ObSplitContainer-root.horizontal>.ObSplitContainer-divider{cursor:ew-resize;writing-mode:vertical-lr}.ObSplitContainer-panel.dragging{pointer-events:none}.ObValueToggleGroup{padding:.25rem;border:2px solid rgb(0 0 0 / .2);border-radius:4px;display:flex;gap:.25rem;flex-wrap:wrap;&.vertical{flex-direction:column;align-items:center;.ObValueToggleOption{width:100%;.ObValueToggleLabel{width:100%;text-align:center}}}&:focus-within{border-color:#000c}}.ObValueToggleOption{display:flex;align-items:center;margin:0;position:relative}.ObValueToggleOption input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ObValueToggleLabel{font-size:.8em;margin:0 .2em;padding:.3em .5em;text-transform:uppercase;transition:background .2s ease,color .2s ease;border-radius:4px}.ObValueToggleOption:hover input:not(:disabled)+.ObValueToggleLabel{cursor:pointer;background:#ccc}.ObValueToggleOption input:checked+.ObValueToggleLabel{--color-bg: var(--brand-dark);background-color:var(--color-bg);color:#fff;cursor:default}.ObValueToggleOption input:disabled+.ObValueToggleLabel{color:#00000080}.ObValueToggleOption input:checked:focus-visible+.ObValueToggleLabel{--color-bg: var(--brand-light);outline:2px solid var(--brand-light)}.ObValueToggleOption input:checked:hover+.ObValueToggleLabel{background-color:var(--color-bg)}
2
2
  /*# sourceMappingURL=ob.react.min.css.map */