@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
@@ -2217,9 +2217,11 @@ var import_react = __toESM(require_react(), 1);
2217
2217
  function Mark(props) {
2218
2218
  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" }));
2219
2219
  }
2220
- var Checkbox = (0, import_react.forwardRef)(function Checkbox2({ className, disabled = false, id, onChange = () => null, title, value, ...other }, ref) {
2221
- const inputId = (0, import_react.useId)() + (id ?? "");
2222
- const input = (0, import_react.useRef)(null);
2220
+ var Checkbox = (0, import_react.forwardRef)(function Checkbox2({ className, disabled = false, id, onChange = () => null, label, title, reverse, value, ...other }, ref) {
2221
+ let inputId = (0, import_react.useId)();
2222
+ inputId = id ?? inputId;
2223
+ let inputIdRef = `#${inputId}`;
2224
+ let input = (0, import_react.useRef)(null);
2223
2225
  (0, import_react.useEffect)(() => {
2224
2226
  if (typeof ref === "function") {
2225
2227
  ref(input.current);
@@ -2241,39 +2243,47 @@ var Checkbox = (0, import_react.forwardRef)(function Checkbox2({ className, disa
2241
2243
  }
2242
2244
  function handleKeyDown(evt) {
2243
2245
  if (evt.nativeEvent) {
2244
- const { nativeEvent } = evt;
2246
+ let { nativeEvent } = evt;
2245
2247
  if (nativeEvent.key === " ") {
2246
2248
  nativeEvent.preventDefault();
2247
2249
  input.current?.click();
2248
2250
  }
2249
2251
  }
2250
2252
  }
2251
- return /* @__PURE__ */ React.createElement("div", { className: clsx_default("ObCheckbox-root", disabled && "Ob-disabled", className), title }, /* @__PURE__ */ React.createElement(
2252
- "input",
2253
+ return /* @__PURE__ */ React.createElement(
2254
+ "div",
2253
2255
  {
2254
- className: "ObCheckbox-input",
2255
- id: inputId,
2256
- type: "checkbox",
2257
- onChange: handleInputChanged,
2258
- checked: value,
2259
- disabled,
2260
- ref: input,
2261
- ...other
2262
- }
2263
- ), /* @__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" }))));
2256
+ className: clsx_default("ObCheckbox-root", disabled && "Ob-disabled", reverse && "Ob-reverse", className),
2257
+ title
2258
+ },
2259
+ /* @__PURE__ */ React.createElement(
2260
+ "input",
2261
+ {
2262
+ className: "ObCheckbox-input",
2263
+ id: inputId,
2264
+ type: "checkbox",
2265
+ onChange: handleInputChanged,
2266
+ checked: value,
2267
+ disabled,
2268
+ ref: input,
2269
+ ...other
2270
+ }
2271
+ ),
2272
+ /* @__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))
2273
+ );
2264
2274
  });
2265
2275
 
2266
2276
  // src/ColorCard/index.tsx
2267
- function ColorCard({
2268
- as: Component,
2269
- children,
2270
- className,
2271
- href,
2272
- ...other
2273
- }) {
2277
+ function ColorCard({ as: Component, children, className, href, ...other }) {
2274
2278
  const BaseElement = Component ? Component : href ? "a" : "div";
2275
2279
  return /* @__PURE__ */ React.createElement(BaseElement, { className: clsx_default("ObColorCard-root", className), href, ...other }, children);
2276
2280
  }
2281
+ function CardStepList({ children, className, ...props }) {
2282
+ return /* @__PURE__ */ React.createElement("div", { className: clsx_default("ObColorCard-stepList", className), ...props }, children);
2283
+ }
2284
+ function CardStep({ children, className, ...props }) {
2285
+ return /* @__PURE__ */ React.createElement("div", { className: clsx_default("ObColorCard-step", className), ...props }, /* @__PURE__ */ React.createElement("div", { className: "ObColorCard-stepText" }, children));
2286
+ }
2277
2287
  function CardColumn({
2278
2288
  children,
2279
2289
  className,
@@ -2301,24 +2311,27 @@ var import_react2 = __toESM(require_react(), 1);
2301
2311
  function getUiCulture() {
2302
2312
  return af?.userSession?.culture ?? "default";
2303
2313
  }
2304
- function Arrow(props) {
2305
- const { direction, ...rest } = props;
2314
+ function Arrow({
2315
+ direction,
2316
+ ...rest
2317
+ }) {
2306
2318
  return /* @__PURE__ */ React.createElement(
2307
2319
  "button",
2308
2320
  {
2309
2321
  className: clsx_default(
2310
- "ObDateNavigator-arrow",
2322
+ "ObDateNavigator-arrow btn-reset",
2311
2323
  direction === "left" ? "ObDateNavigator-arrowLeft" : "ObDateNavigator-arrowRight"
2312
2324
  ),
2325
+ "aria-label": direction === "left" ? (0, import_appframe_core.getLocalizedString)("Previous day") : (0, import_appframe_core.getLocalizedString)("Next day"),
2313
2326
  ...rest
2314
2327
  },
2315
- /* @__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(
2328
+ /* @__PURE__ */ React.createElement("span", { className: "ObDateNavigator-icon" }, direction === "left" ? /* @__PURE__ */ React.createElement("svg", { "aria-hidden": "true", viewBox: "0 0 320 512" }, /* @__PURE__ */ React.createElement(
2316
2329
  "path",
2317
2330
  {
2318
2331
  fill: "currentColor",
2319
2332
  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"
2320
2333
  }
2321
- )) : /* @__PURE__ */ React.createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", viewBox: "0 0 320 512" }, /* @__PURE__ */ React.createElement(
2334
+ )) : /* @__PURE__ */ React.createElement("svg", { "aria-hidden": "true", viewBox: "0 0 320 512" }, /* @__PURE__ */ React.createElement(
2322
2335
  "path",
2323
2336
  {
2324
2337
  fill: "currentColor",
@@ -2334,41 +2347,109 @@ var formatter = new Intl.DateTimeFormat(getUiCulture(), {
2334
2347
  year: "numeric",
2335
2348
  timeZone: "utc"
2336
2349
  });
2337
- var today = /* @__PURE__ */ new Date();
2338
- var todayUtc = Date.UTC(today.getFullYear(), today.getMonth(), today.getDate());
2339
2350
  var oneDay = 24 * 60 * 60 * 1e3;
2340
- function DateNavigator({ date: dateProp, onChange }) {
2341
- let [internalDate, setInternalDate] = (0, import_react2.useState)(/* @__PURE__ */ new Date());
2342
- const date = dateProp ?? internalDate;
2343
- const dateUtc = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
2344
- let dateValue = new Date(dateUtc);
2345
- let text = formatter.format(dateValue);
2346
- let altText = "";
2347
- if (todayUtc === dateUtc) {
2348
- altText = (0, import_appframe_core.getLocalizedString)("Today");
2349
- } else if (todayUtc === dateUtc + oneDay) {
2350
- altText = (0, import_appframe_core.getLocalizedString)("Yesterday");
2351
- } else if (todayUtc === dateUtc - oneDay) {
2352
- altText = (0, import_appframe_core.getLocalizedString)("Tomorrow");
2351
+ function sanitizeDate(date) {
2352
+ if (typeof date === "string" || typeof date === "number") {
2353
+ let parsedDate = new Date(date);
2354
+ if (Number.isNaN(parsedDate.getTime())) {
2355
+ throw new Error(`Invalid date value: ${date}`);
2356
+ }
2357
+ return parsedDate;
2358
+ } else if (date instanceof Date) {
2359
+ if (Number.isNaN(date.getTime())) {
2360
+ throw new Error(`Invalid date object: ${date}`);
2361
+ }
2362
+ return new Date(date.getTime());
2363
+ } else {
2364
+ throw new Error(`Unsupported date type: ${typeof date}`);
2365
+ }
2366
+ }
2367
+ function DateNavigator({
2368
+ date: dateProp,
2369
+ defaultDate,
2370
+ disableTodayButton,
2371
+ onChange,
2372
+ minDate: minDateProp,
2373
+ maxDate: maxDateProp
2374
+ }) {
2375
+ let [internalDate, setInternalDate] = (0, import_react2.useState)(() => defaultDate ? sanitizeDate(defaultDate) : /* @__PURE__ */ new Date());
2376
+ let date = dateProp ? sanitizeDate(dateProp) : internalDate;
2377
+ let dateUtc = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());
2378
+ let today = /* @__PURE__ */ new Date();
2379
+ let todayUtc = Date.UTC(today.getFullYear(), today.getMonth(), today.getDate());
2380
+ let liveRef = (0, import_react2.useRef)(null);
2381
+ let text = (() => {
2382
+ let base = formatter.format(new Date(dateUtc));
2383
+ if (todayUtc === dateUtc) return `${(0, import_appframe_core.getLocalizedString)("Today")}, ${base}`;
2384
+ if (todayUtc === dateUtc + oneDay) return `${(0, import_appframe_core.getLocalizedString)("Yesterday")}, ${base}`;
2385
+ if (todayUtc === dateUtc - oneDay) return `${(0, import_appframe_core.getLocalizedString)("Tomorrow")}, ${base}`;
2386
+ return base;
2387
+ })();
2388
+ let minDate = minDateProp && sanitizeDate(minDateProp);
2389
+ let maxDate = maxDateProp && sanitizeDate(maxDateProp);
2390
+ let disablePrev = !!minDate && dateUtc <= Date.UTC(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
2391
+ let disableNext = !!maxDate && dateUtc >= Date.UTC(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate());
2392
+ function updateDate(newDate) {
2393
+ if (minDate && newDate < minDate) {
2394
+ newDate = new Date(minDate);
2395
+ } else if (maxDate && newDate > maxDate) {
2396
+ newDate = new Date(maxDate);
2397
+ }
2398
+ onChange?.(newDate);
2399
+ setInternalDate(newDate);
2353
2400
  }
2354
- if (altText) {
2355
- text = `${altText}, ${text}`;
2401
+ function jumpToToday() {
2402
+ updateDate(/* @__PURE__ */ new Date());
2356
2403
  }
2357
- function handleDateChanged(date2) {
2358
- if (typeof onChange === "function") {
2359
- onChange(date2);
2360
- } else {
2361
- setInternalDate(date2);
2404
+ (0, import_react2.useEffect)(() => {
2405
+ if (liveRef.current) {
2406
+ liveRef.current.textContent = text;
2407
+ }
2408
+ }, [text]);
2409
+ function handleKeyDown(event) {
2410
+ if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return;
2411
+ if (event.defaultPrevented) return;
2412
+ if (event.altKey || event.metaKey) return;
2413
+ if (disablePrev && event.key === "ArrowLeft") return;
2414
+ if (disableNext && event.key === "ArrowRight") return;
2415
+ if (event.ctrlKey && event.shiftKey) {
2416
+ let newDate = new Date(dateUtc);
2417
+ if (event.key === "ArrowLeft") {
2418
+ newDate.setFullYear(newDate.getFullYear() - 1);
2419
+ } else if (event.key === "ArrowRight") {
2420
+ newDate.setFullYear(newDate.getFullYear() + 1);
2421
+ }
2422
+ updateDate(newDate);
2423
+ return;
2424
+ }
2425
+ if (event.ctrlKey) {
2426
+ let newDate = new Date(dateUtc);
2427
+ if (event.key === "ArrowLeft") {
2428
+ newDate.setMonth(newDate.getMonth() - 1);
2429
+ } else if (event.key === "ArrowRight") {
2430
+ newDate.setMonth(newDate.getMonth() + 1);
2431
+ }
2432
+ updateDate(newDate);
2433
+ return;
2434
+ }
2435
+ let modifier = event.shiftKey ? 7 : 1;
2436
+ if (event.key === "ArrowLeft") {
2437
+ updateDate(new Date(dateUtc - oneDay * modifier));
2438
+ } else if (event.key === "ArrowRight") {
2439
+ updateDate(new Date(dateUtc + oneDay * modifier));
2362
2440
  }
2363
2441
  }
2364
- 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)) }));
2442
+ return (
2443
+ // biome-ignore lint/a11y/noNoninteractiveTabindex: I hate this component
2444
+ /* @__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" } }))
2445
+ );
2365
2446
  }
2366
2447
 
2367
2448
  // src/LinkedCardList/index.tsx
2368
- function List({ children, className, ...other }) {
2449
+ function LinkedList({ children, className, ...other }) {
2369
2450
  return /* @__PURE__ */ React.createElement("ul", { className: clsx_default("ObLinkedList-root", className), ...other }, children);
2370
2451
  }
2371
- function ListItem({
2452
+ function LinkedListItem({
2372
2453
  children,
2373
2454
  className,
2374
2455
  label,
@@ -2580,7 +2661,20 @@ settingsStore.keys().then(
2580
2661
  )
2581
2662
  );
2582
2663
  var Divider = (0, import_react7.forwardRef)(function Divider2(props, ref) {
2583
- return /* @__PURE__ */ React.createElement("div", { className: clsx_default("ObSplitContainer-divider", props.className), ref }, /* @__PURE__ */ React.createElement("span", null, "\u2022\u2022\u2022"));
2664
+ return /* @__PURE__ */ React.createElement(
2665
+ "div",
2666
+ {
2667
+ className: clsx_default("ObSplitContainer-divider", props.className),
2668
+ tabIndex: 0,
2669
+ ref,
2670
+ role: "separator",
2671
+ "aria-orientation": props.direction,
2672
+ "aria-valuemin": props.min,
2673
+ "aria-valuemax": props.max,
2674
+ "aria-valuenow": props.size
2675
+ },
2676
+ /* @__PURE__ */ React.createElement("span", null, "\u2022\u2022\u2022")
2677
+ );
2584
2678
  });
2585
2679
  function SplitRoot({ className, direction, ...props }) {
2586
2680
  return /* @__PURE__ */ React.createElement("div", { className: clsx_default(className, "ObSplitContainer-root", direction), ...props });
@@ -2600,6 +2694,8 @@ function SplitContainer({
2600
2694
  panelClassName,
2601
2695
  defaultFixedSize = 400,
2602
2696
  layoutVersion = 1,
2697
+ min = 0,
2698
+ max,
2603
2699
  id
2604
2700
  }) {
2605
2701
  let [fixedSize, setFixedSize] = (0, import_react7.useState)(defaultFixedSize);
@@ -2608,16 +2704,20 @@ function SplitContainer({
2608
2704
  if (import_react7.Children.count(children) !== 2) {
2609
2705
  throw Error("SplitContainer requires exactly 2 children");
2610
2706
  }
2611
- function handleFixedSizeChanged(size) {
2612
- setFixedSize((current) => {
2613
- let newValue = typeof size === "function" ? size(current) : size;
2614
- if (id) {
2615
- let key = `${article}.${id}`;
2616
- persistState(key, layoutVersion, newValue);
2707
+ let containerRef = (0, import_react7.useRef)(null);
2708
+ let [containerSize, setContainerSize] = (0, import_react7.useState)(0);
2709
+ (0, import_react7.useEffect)(() => {
2710
+ if (!containerRef.current) return;
2711
+ let resizeObserver = new ResizeObserver((entries) => {
2712
+ for (let entry of entries) {
2713
+ if (entry.contentRect) {
2714
+ setContainerSize(direction === "horizontal" ? entry.contentRect.width : entry.contentRect.height);
2715
+ }
2617
2716
  }
2618
- return newValue;
2619
2717
  });
2620
- }
2718
+ resizeObserver.observe(containerRef.current);
2719
+ return () => resizeObserver.disconnect();
2720
+ }, [direction]);
2621
2721
  (0, import_react7.useEffect)(() => {
2622
2722
  if (id) {
2623
2723
  let key = `${article}.${id}`;
@@ -2633,10 +2733,28 @@ function SplitContainer({
2633
2733
  (0, import_react7.useEffect)(() => {
2634
2734
  let divider = dividerRef.current;
2635
2735
  if (divider) {
2636
- let getNewSize = function(event) {
2736
+ let clampSize = function(size) {
2737
+ let adjustedContainerSize = containerSize - 10;
2738
+ let maxSize = Math.min(max ?? adjustedContainerSize, adjustedContainerSize);
2739
+ if (size < min) {
2740
+ size = min;
2741
+ } else if (size > maxSize) {
2742
+ size = maxSize;
2743
+ }
2744
+ return size;
2745
+ }, getNewSize = function(event) {
2637
2746
  let deltaSize = direction === "horizontal" ? event.clientX - initialPosition.clientX : event.clientY - initialPosition.clientY;
2638
2747
  deltaSize *= fixedPanel === 1 ? -1 : 1;
2639
- return initialPosition.size - deltaSize;
2748
+ return clampSize(initialPosition.size - deltaSize);
2749
+ }, handleFixedSizeChanged = function(size) {
2750
+ setFixedSize((current) => {
2751
+ let newValue = clampSize(typeof size === "function" ? size(current) : size);
2752
+ if (id) {
2753
+ let key = `${article}.${id}`;
2754
+ persistState(key, layoutVersion, newValue);
2755
+ }
2756
+ return newValue;
2757
+ });
2640
2758
  }, handlePointerUp = function(event) {
2641
2759
  let newSize = getNewSize(event);
2642
2760
  handleFixedSizeChanged(newSize);
@@ -2646,6 +2764,10 @@ function SplitContainer({
2646
2764
  }, handlePointerMove = function(event) {
2647
2765
  event.preventDefault();
2648
2766
  let newSize = getNewSize(event);
2767
+ let divider2 = dividerRef.current;
2768
+ if (divider2) {
2769
+ divider2.setAttribute("aria-valuenow", String(newSize));
2770
+ }
2649
2771
  movingPanel.style.flex = `0 0 ${newSize}px`;
2650
2772
  }, handlePointerDown = function(event) {
2651
2773
  setIsDragging(true);
@@ -2690,8 +2812,18 @@ function SplitContainer({
2690
2812
  divider?.removeEventListener("keydown", handleKeyDown);
2691
2813
  };
2692
2814
  }
2693
- }, [direction, fixedPanel]);
2694
- 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]));
2815
+ }, [direction, fixedPanel, layoutVersion, id, min, max, containerSize]);
2816
+ 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(
2817
+ Divider,
2818
+ {
2819
+ ref: dividerRef,
2820
+ direction,
2821
+ isDragging,
2822
+ size: fixedSize,
2823
+ min,
2824
+ max: max ?? containerSize
2825
+ }
2826
+ ), /* @__PURE__ */ React.createElement(SplitPanel, { className: clsx_default(isDragging && "dragging", panelClassName), fixed: fixedPanel === 2, size: fixedSize }, childrenArray[1]));
2695
2827
  }
2696
2828
 
2697
2829
  // src/useTranslation/index.ts
@@ -2759,52 +2891,39 @@ function useTranslation(text, targetLanguage, apiKey) {
2759
2891
  };
2760
2892
  }
2761
2893
 
2762
- // src/ValueToggle/index.tsx
2894
+ // src/ValueToggleGroup/index.tsx
2763
2895
  var import_react9 = __toESM(require_react(), 1);
2764
- var valueToggleId = 0;
2765
- function ValueToggleInner({ className, onChange, defaultValue, options, value, ...other }, ref) {
2766
- const wrapperRef = (0, import_react9.useRef)(null);
2767
- const [toggleName] = (0, import_react9.useState)(`obet-value-toggle-${String(++valueToggleId)}`);
2768
- const isControlled = value !== void 0;
2769
- (0, import_react9.useImperativeHandle)(ref, () => {
2770
- const e = wrapperRef.current?.querySelector("input");
2771
- return {
2772
- focus: () => e?.focus(),
2773
- blur: () => e?.blur(),
2774
- value: (e?.querySelector("input:checked")).value
2775
- };
2776
- });
2777
- return /* @__PURE__ */ React.createElement("fieldset", { className, ...other }, /* @__PURE__ */ React.createElement("div", { className: "ObValueToggle-root", ref: wrapperRef }, options.map((option) => {
2778
- const isObj = typeof option === "object";
2779
- const optValue = isObj ? option.value : option;
2780
- const props = {
2781
- value: optValue
2782
- };
2783
- if (isControlled) {
2784
- props.checked = value === optValue;
2785
- } else {
2786
- props.defaultChecked = defaultValue === optValue;
2787
- }
2788
- if (typeof onChange === "function") {
2789
- props.onChange = () => onChange(optValue);
2790
- }
2791
- if (isObj) {
2792
- Object.assign(props, option);
2793
- }
2794
- 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));
2795
- })));
2796
- }
2797
- var ValueToggle = (0, import_react9.forwardRef)(ValueToggleInner);
2896
+ var ValueToggleGroup = (0, import_react9.forwardRef)(function ValueToggleGroup2({ options, value, defaultValue, onChange, className, name, id, style, orientation = "horizontal" }, ref) {
2897
+ let randomId = (0, import_react9.useId)();
2898
+ let groupName = name || `toggle-${id ?? randomId}`;
2899
+ let isControlled = value !== void 0;
2900
+ return /* @__PURE__ */ React.createElement("fieldset", { className: clsx_default("ObValueToggleGroup", orientation, className), role: "radiogroup", ref, style }, options.map((opt) => {
2901
+ return /* @__PURE__ */ React.createElement("label", { key: opt.value, className: clsx_default("ObValueToggleOption", { disabled: opt.disabled }) }, /* @__PURE__ */ React.createElement(
2902
+ "input",
2903
+ {
2904
+ type: "radio",
2905
+ name: groupName,
2906
+ value: opt.value,
2907
+ checked: isControlled ? value === opt.value : void 0,
2908
+ defaultChecked: !isControlled ? defaultValue === opt.value : void 0,
2909
+ onChange: () => onChange?.(opt.value),
2910
+ disabled: opt.disabled
2911
+ }
2912
+ ), /* @__PURE__ */ React.createElement("span", { className: "ObValueToggleLabel" }, opt.label ?? opt.value));
2913
+ }));
2914
+ });
2798
2915
  export {
2799
2916
  Card,
2800
2917
  CardColumn,
2801
2918
  CardDetail,
2802
2919
  CardLabel,
2920
+ CardStep,
2921
+ CardStepList,
2803
2922
  Checkbox,
2804
2923
  ColorCard,
2805
2924
  DateNavigator,
2806
- List as LinkedList,
2807
- ListItem as LinkedListItem,
2925
+ LinkedList,
2926
+ LinkedListItem,
2808
2927
  PageBanner,
2809
2928
  BannerImage as PageBannerImage,
2810
2929
  Tab as PageBannerTab,
@@ -2815,7 +2934,7 @@ export {
2815
2934
  Sidebar,
2816
2935
  Spinner,
2817
2936
  SplitContainer,
2818
- ValueToggle,
2937
+ ValueToggleGroup,
2819
2938
  useTranslation
2820
2939
  };
2821
2940
  /*! 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 */