@optimum-intelligence/opti-ui 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to `@optimum-intelligence/opti-ui`. Versions follow [semver](https://semver.org/); while
4
4
  the version is `0.x`, minor releases may contain breaking changes, which are marked **Breaking**.
5
5
 
6
+ ## 0.7.2 (2026-11-03)
7
+
8
+ ### Added
9
+
10
+ - Combobox `maxChips`: a `multiple` combobox shows that many chips plus a `+N` chip and stays on one line.
11
+
12
+ ### Fixed
13
+
14
+ - Long combobox chip labels are truncated with an ellipsis instead of overflowing the field.
15
+
16
+ ## 0.7.1 (2026-11-03)
17
+
18
+ ### Fixed
19
+
20
+ - `Map.Root` works in any app without bundler config: MapLibre's worker is now bundled into the library
21
+ and started from a `blob:` URL instead of a `?url` import that only Vite could resolve. A strict
22
+ Content-Security-Policy needs `worker-src blob:`.
23
+
24
+ ### Changed
25
+
26
+ - `maplibre-gl` is pinned to `6.16.0`, so the bundled worker always matches the installed MapLibre.
27
+
6
28
  ## 0.7.0 (2026-11-03)
7
29
 
8
30
  ### Added
package/README.md CHANGED
@@ -207,7 +207,8 @@ components the same table.
207
207
  Map components live in a separate entry, `@optimum-intelligence/opti-ui/map`, so apps without maps never
208
208
  load MapLibre. `maplibre-gl` and `@vis.gl/react-maplibre` are installed with the package. Import the map
209
209
  stylesheet once; it holds MapLibre's CSS in a cascade layer below the library's, so the oui map styles win.
210
- `Map.Root` sets up MapLibre's web worker itself, which needs Vite (it imports the worker with `?url`).
210
+ `Map.Root` starts MapLibre's web worker itself from a bundled copy, so no bundler config is needed. The
211
+ worker runs from a `blob:` URL: with a strict Content-Security-Policy, allow `worker-src blob:`.
211
212
 
212
213
  ```tsx
213
214
  import '@optimum-intelligence/opti-ui/map.css';
@@ -51,13 +51,22 @@ export interface ComboboxProps extends RootProps {
51
51
  size?: ControlSize;
52
52
  /** Hide the clear button. */
53
53
  hideClear?: boolean;
54
+ /**
55
+ * With `multiple`, show at most this many chips and a `+N` chip for the rest, keeping the field on
56
+ * one line (long labels are truncated). Leave unset to wrap all chips onto new lines.
57
+ */
58
+ maxChips?: number;
54
59
  /** Props for the text input. */
55
60
  inputProps?: BaseCombobox.Input.Props;
56
61
  }
57
- declare function ComboboxComponent({ items, label, description, error, placeholder, emptyText, size, hideClear, inputProps, name, disabled, required, multiple, ...rootProps }: ComboboxProps): React.JSX.Element;
62
+ declare function ComboboxComponent({ items, label, description, error, placeholder, emptyText, size, hideClear, maxChips, inputProps, name, disabled, required, multiple, ...rootProps }: ComboboxProps): React.JSX.Element;
58
63
  /**
59
64
  * Searchable select. `<Combobox items={…} />` covers single and `multiple`
60
- * (chips) selection; compose the parts for anything custom.
65
+ * (chips) selection; `maxChips` keeps a multi-select on one line. Compose the
66
+ * parts for anything custom.
67
+ *
68
+ * @example
69
+ * <Combobox label="Vehicles" items={vehicles} multiple maxChips={1} placeholder="All vehicles" />
61
70
  */
62
71
  export declare const Combobox: typeof ComboboxComponent & {
63
72
  Root: typeof BaseCombobox.Root;
@@ -426,7 +426,7 @@ function ComboboxChips(t0) {
426
426
  return t2;
427
427
  }
428
428
  function ComboboxChip(t0) {
429
- const $ = c(17);
429
+ const $ = c(19);
430
430
  let children;
431
431
  let className;
432
432
  let props;
@@ -455,36 +455,45 @@ function ComboboxChip(t0) {
455
455
  $[7] = t2;
456
456
  } else t2 = $[7];
457
457
  let t3;
458
- if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
459
- t3 = /* @__PURE__ */ jsx(XIcon, {});
460
- $[8] = t3;
461
- } else t3 = $[8];
462
- let t4;
463
- if ($[9] !== removeLabel) {
464
- t4 = /* @__PURE__ */ jsx(Combobox.ChipRemove, {
465
- className: "oui-combobox__chip-remove",
466
- "aria-label": removeLabel,
467
- children: t3
458
+ if ($[8] !== children) {
459
+ t3 = /* @__PURE__ */ jsx("span", {
460
+ className: "oui-combobox__chip-label",
461
+ children
468
462
  });
469
- $[9] = removeLabel;
463
+ $[8] = children;
464
+ $[9] = t3;
465
+ } else t3 = $[9];
466
+ let t4;
467
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
468
+ t4 = /* @__PURE__ */ jsx(XIcon, {});
470
469
  $[10] = t4;
471
470
  } else t4 = $[10];
472
471
  let t5;
473
- if ($[11] !== children || $[12] !== props || $[13] !== ref || $[14] !== t2 || $[15] !== t4) {
474
- t5 = /* @__PURE__ */ jsxs(Combobox.Chip, {
472
+ if ($[11] !== removeLabel) {
473
+ t5 = /* @__PURE__ */ jsx(Combobox.ChipRemove, {
474
+ className: "oui-combobox__chip-remove",
475
+ "aria-label": removeLabel,
476
+ children: t4
477
+ });
478
+ $[11] = removeLabel;
479
+ $[12] = t5;
480
+ } else t5 = $[12];
481
+ let t6;
482
+ if ($[13] !== props || $[14] !== ref || $[15] !== t2 || $[16] !== t3 || $[17] !== t5) {
483
+ t6 = /* @__PURE__ */ jsxs(Combobox.Chip, {
475
484
  ref,
476
485
  className: t2,
477
486
  ...props,
478
- children: [children, t4]
487
+ children: [t3, t5]
479
488
  });
480
- $[11] = children;
481
- $[12] = props;
482
- $[13] = ref;
483
- $[14] = t2;
484
- $[15] = t4;
485
- $[16] = t5;
486
- } else t5 = $[16];
487
- return t5;
489
+ $[13] = props;
490
+ $[14] = ref;
491
+ $[15] = t2;
492
+ $[16] = t3;
493
+ $[17] = t5;
494
+ $[18] = t6;
495
+ } else t6 = $[18];
496
+ return t6;
488
497
  }
489
498
  function ComboboxGroupLabel(t0) {
490
499
  const $ = c(10);
@@ -523,7 +532,7 @@ function ComboboxGroupLabel(t0) {
523
532
  return t2;
524
533
  }
525
534
  function ComboboxComponent(t0) {
526
- const $ = c(57);
535
+ const $ = c(59);
527
536
  let description;
528
537
  let disabled;
529
538
  let error;
@@ -531,6 +540,7 @@ function ComboboxComponent(t0) {
531
540
  let inputProps;
532
541
  let items;
533
542
  let label;
543
+ let maxChips;
534
544
  let multiple;
535
545
  let name;
536
546
  let placeholder;
@@ -539,7 +549,7 @@ function ComboboxComponent(t0) {
539
549
  let t1;
540
550
  let t2;
541
551
  if ($[0] !== t0) {
542
- ({items, label, description, error, placeholder, emptyText: t1, size: t2, hideClear, inputProps, name, disabled, required, multiple, ...rootProps} = t0);
552
+ ({items, label, description, error, placeholder, emptyText: t1, size: t2, hideClear, maxChips, inputProps, name, disabled, required, multiple, ...rootProps} = t0);
543
553
  $[0] = t0;
544
554
  $[1] = description;
545
555
  $[2] = disabled;
@@ -548,13 +558,14 @@ function ComboboxComponent(t0) {
548
558
  $[5] = inputProps;
549
559
  $[6] = items;
550
560
  $[7] = label;
551
- $[8] = multiple;
552
- $[9] = name;
553
- $[10] = placeholder;
554
- $[11] = required;
555
- $[12] = rootProps;
556
- $[13] = t1;
557
- $[14] = t2;
561
+ $[8] = maxChips;
562
+ $[9] = multiple;
563
+ $[10] = name;
564
+ $[11] = placeholder;
565
+ $[12] = required;
566
+ $[13] = rootProps;
567
+ $[14] = t1;
568
+ $[15] = t2;
558
569
  } else {
559
570
  description = $[1];
560
571
  disabled = $[2];
@@ -563,95 +574,114 @@ function ComboboxComponent(t0) {
563
574
  inputProps = $[5];
564
575
  items = $[6];
565
576
  label = $[7];
566
- multiple = $[8];
567
- name = $[9];
568
- placeholder = $[10];
569
- required = $[11];
570
- rootProps = $[12];
571
- t1 = $[13];
572
- t2 = $[14];
577
+ maxChips = $[8];
578
+ multiple = $[9];
579
+ name = $[10];
580
+ placeholder = $[11];
581
+ required = $[12];
582
+ rootProps = $[13];
583
+ t1 = $[14];
584
+ t2 = $[15];
573
585
  }
574
586
  const emptyText = t1 === void 0 ? "No results found." : t1;
575
587
  const size = t2 === void 0 ? "md" : t2;
576
588
  const t3 = error ? true : void 0;
577
589
  const t4 = rootProps;
578
590
  let t5;
579
- if ($[15] !== label || $[16] !== required) {
591
+ if ($[16] !== label || $[17] !== required) {
580
592
  t5 = label && /* @__PURE__ */ jsx(Field.Label, {
581
593
  required,
582
594
  children: label
583
595
  });
584
- $[15] = label;
585
- $[16] = required;
586
- $[17] = t5;
587
- } else t5 = $[17];
596
+ $[16] = label;
597
+ $[17] = required;
598
+ $[18] = t5;
599
+ } else t5 = $[18];
588
600
  const t6 = multiple || void 0;
589
601
  let t7;
590
- if ($[18] !== inputProps || $[19] !== multiple || $[20] !== placeholder) {
591
- t7 = multiple ? /* @__PURE__ */ jsx(Combobox.Value, { children: (value) => /* @__PURE__ */ jsxs(ComboboxChips, { children: [value.map(_temp), /* @__PURE__ */ jsx(ComboboxInput, {
592
- placeholder: value.length ? void 0 : placeholder,
593
- ...inputProps
594
- })] }) }) : /* @__PURE__ */ jsx(ComboboxInput, {
602
+ if ($[19] !== inputProps || $[20] !== maxChips || $[21] !== multiple || $[22] !== placeholder) {
603
+ t7 = multiple ? /* @__PURE__ */ jsx(Combobox.Value, { children: (value) => {
604
+ const shown = maxChips === void 0 ? value : value.slice(0, maxChips);
605
+ const hidden = value.slice(shown.length);
606
+ return /* @__PURE__ */ jsxs(ComboboxChips, {
607
+ "data-collapse": maxChips === void 0 ? void 0 : "",
608
+ children: [
609
+ shown.map(_temp),
610
+ hidden.length > 0 && /* @__PURE__ */ jsxs("span", {
611
+ className: "oui-combobox__chip",
612
+ "data-overflow": "",
613
+ title: hidden.map(_temp2).join(", "),
614
+ "aria-label": `${hidden.length} more selected`,
615
+ children: ["+", hidden.length]
616
+ }),
617
+ /* @__PURE__ */ jsx(ComboboxInput, {
618
+ placeholder: value.length ? void 0 : placeholder,
619
+ ...inputProps
620
+ })
621
+ ]
622
+ });
623
+ } }) : /* @__PURE__ */ jsx(ComboboxInput, {
595
624
  placeholder,
596
625
  ...inputProps
597
626
  });
598
- $[18] = inputProps;
599
- $[19] = multiple;
600
- $[20] = placeholder;
601
- $[21] = t7;
602
- } else t7 = $[21];
627
+ $[19] = inputProps;
628
+ $[20] = maxChips;
629
+ $[21] = multiple;
630
+ $[22] = placeholder;
631
+ $[23] = t7;
632
+ } else t7 = $[23];
603
633
  let t8;
604
- if ($[22] !== hideClear) {
634
+ if ($[24] !== hideClear) {
605
635
  t8 = !hideClear && /* @__PURE__ */ jsx(ComboboxClear, {});
606
- $[22] = hideClear;
607
- $[23] = t8;
608
- } else t8 = $[23];
636
+ $[24] = hideClear;
637
+ $[25] = t8;
638
+ } else t8 = $[25];
609
639
  let t9;
610
- if ($[24] === Symbol.for("react.memo_cache_sentinel")) {
640
+ if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
611
641
  t9 = /* @__PURE__ */ jsx(ComboboxTrigger, {});
612
- $[24] = t9;
613
- } else t9 = $[24];
642
+ $[26] = t9;
643
+ } else t9 = $[26];
614
644
  let t10;
615
- if ($[25] !== t8) {
645
+ if ($[27] !== t8) {
616
646
  t10 = /* @__PURE__ */ jsxs("span", {
617
647
  className: "oui-combobox__actions",
618
648
  children: [t8, t9]
619
649
  });
620
- $[25] = t8;
621
- $[26] = t10;
622
- } else t10 = $[26];
650
+ $[27] = t8;
651
+ $[28] = t10;
652
+ } else t10 = $[28];
623
653
  let t11;
624
- if ($[27] !== size || $[28] !== t10 || $[29] !== t6 || $[30] !== t7) {
654
+ if ($[29] !== size || $[30] !== t10 || $[31] !== t6 || $[32] !== t7) {
625
655
  t11 = /* @__PURE__ */ jsxs(ComboboxInputGroup, {
626
656
  size,
627
657
  "data-multiple": t6,
628
658
  children: [t7, t10]
629
659
  });
630
- $[27] = size;
631
- $[28] = t10;
632
- $[29] = t6;
633
- $[30] = t7;
634
- $[31] = t11;
635
- } else t11 = $[31];
660
+ $[29] = size;
661
+ $[30] = t10;
662
+ $[31] = t6;
663
+ $[32] = t7;
664
+ $[33] = t11;
665
+ } else t11 = $[33];
636
666
  let t12;
637
- if ($[32] !== emptyText) {
667
+ if ($[34] !== emptyText) {
638
668
  t12 = /* @__PURE__ */ jsx(ComboboxEmpty, { children: emptyText });
639
- $[32] = emptyText;
640
- $[33] = t12;
641
- } else t12 = $[33];
669
+ $[34] = emptyText;
670
+ $[35] = t12;
671
+ } else t12 = $[35];
642
672
  let t13;
643
- if ($[34] === Symbol.for("react.memo_cache_sentinel")) {
644
- t13 = /* @__PURE__ */ jsx(ComboboxList, { children: _temp2 });
645
- $[34] = t13;
646
- } else t13 = $[34];
673
+ if ($[36] === Symbol.for("react.memo_cache_sentinel")) {
674
+ t13 = /* @__PURE__ */ jsx(ComboboxList, { children: _temp3 });
675
+ $[36] = t13;
676
+ } else t13 = $[36];
647
677
  let t14;
648
- if ($[35] !== t12) {
678
+ if ($[37] !== t12) {
649
679
  t14 = /* @__PURE__ */ jsxs(ComboboxContent, { children: [t12, t13] });
650
- $[35] = t12;
651
- $[36] = t14;
652
- } else t14 = $[36];
680
+ $[37] = t12;
681
+ $[38] = t14;
682
+ } else t14 = $[38];
653
683
  let t15;
654
- if ($[37] !== disabled || $[38] !== items || $[39] !== multiple || $[40] !== required || $[41] !== t11 || $[42] !== t14 || $[43] !== t4 || $[44] !== t5) {
684
+ if ($[39] !== disabled || $[40] !== items || $[41] !== multiple || $[42] !== required || $[43] !== t11 || $[44] !== t14 || $[45] !== t4 || $[46] !== t5) {
655
685
  t15 = /* @__PURE__ */ jsxs(Combobox.Root, {
656
686
  items,
657
687
  multiple,
@@ -664,33 +694,33 @@ function ComboboxComponent(t0) {
664
694
  t14
665
695
  ]
666
696
  });
667
- $[37] = disabled;
668
- $[38] = items;
669
- $[39] = multiple;
670
- $[40] = required;
671
- $[41] = t11;
672
- $[42] = t14;
673
- $[43] = t4;
674
- $[44] = t5;
675
- $[45] = t15;
676
- } else t15 = $[45];
697
+ $[39] = disabled;
698
+ $[40] = items;
699
+ $[41] = multiple;
700
+ $[42] = required;
701
+ $[43] = t11;
702
+ $[44] = t14;
703
+ $[45] = t4;
704
+ $[46] = t5;
705
+ $[47] = t15;
706
+ } else t15 = $[47];
677
707
  let t16;
678
- if ($[46] !== description) {
708
+ if ($[48] !== description) {
679
709
  t16 = description && /* @__PURE__ */ jsx(Field.Description, { children: description });
680
- $[46] = description;
681
- $[47] = t16;
682
- } else t16 = $[47];
710
+ $[48] = description;
711
+ $[49] = t16;
712
+ } else t16 = $[49];
683
713
  let t17;
684
- if ($[48] !== error) {
714
+ if ($[50] !== error) {
685
715
  t17 = error ? /* @__PURE__ */ jsx(Field.Error, {
686
716
  match: true,
687
717
  children: error
688
718
  }) : /* @__PURE__ */ jsx(Field.Error, {});
689
- $[48] = error;
690
- $[49] = t17;
691
- } else t17 = $[49];
719
+ $[50] = error;
720
+ $[51] = t17;
721
+ } else t17 = $[51];
692
722
  let t18;
693
- if ($[50] !== disabled || $[51] !== name || $[52] !== t15 || $[53] !== t16 || $[54] !== t17 || $[55] !== t3) {
723
+ if ($[52] !== disabled || $[53] !== name || $[54] !== t15 || $[55] !== t16 || $[56] !== t17 || $[57] !== t3) {
694
724
  t18 = /* @__PURE__ */ jsxs(Field.Root, {
695
725
  name,
696
726
  disabled,
@@ -701,26 +731,33 @@ function ComboboxComponent(t0) {
701
731
  t17
702
732
  ]
703
733
  });
704
- $[50] = disabled;
705
- $[51] = name;
706
- $[52] = t15;
707
- $[53] = t16;
708
- $[54] = t17;
709
- $[55] = t3;
710
- $[56] = t18;
711
- } else t18 = $[56];
734
+ $[52] = disabled;
735
+ $[53] = name;
736
+ $[54] = t15;
737
+ $[55] = t16;
738
+ $[56] = t17;
739
+ $[57] = t3;
740
+ $[58] = t18;
741
+ } else t18 = $[58];
712
742
  return t18;
713
743
  }
714
744
  /**
715
745
  * Searchable select. `<Combobox items={…} />` covers single and `multiple`
716
- * (chips) selection; compose the parts for anything custom.
746
+ * (chips) selection; `maxChips` keeps a multi-select on one line. Compose the
747
+ * parts for anything custom.
748
+ *
749
+ * @example
750
+ * <Combobox label="Vehicles" items={vehicles} multiple maxChips={1} placeholder="All vehicles" />
717
751
  */
718
- function _temp2(item_0) {
752
+ function _temp3(item_1) {
719
753
  return /* @__PURE__ */ jsx(ComboboxItem, {
720
- value: item_0,
721
- disabled: item_0.disabled,
722
- children: item_0.label
723
- }, item_0.value);
754
+ value: item_1,
755
+ disabled: item_1.disabled,
756
+ children: item_1.label
757
+ }, item_1.value);
758
+ }
759
+ function _temp2(item_0) {
760
+ return item_0.label;
724
761
  }
725
762
  function _temp(item) {
726
763
  return /* @__PURE__ */ jsx(ComboboxChip, {
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","names":["React","Combobox","BaseCombobox","withClass","usePortalContainer","CheckIcon","ChevronDownIcon","XIcon","Field","ControlSize","ComboboxInputGroupProps","InputGroup","Props","size","ComboboxInputGroup","t0","$","_c","className","props","ref","t1","undefined","t2","t3","ComboboxInput","ComboboxTrigger","children","ComboboxClear","ComboboxContentProps","Popup","side","Positioner","align","sideOffset","positionerProps","ComboboxContent","container","t4","t5","ComboboxList","ComboboxItem","Symbol","for","ComboboxEmpty","ComboboxChips","ComboboxChip","removeLabel","ComboboxGroupLabel","ComboboxOption","value","label","disabled","RootProps","Omit","Root","ComboboxProps","items","ReactNode","description","error","placeholder","emptyText","hideClear","inputProps","Input","ComboboxComponent","multiple","name","required","rootProps","t6","t7","map","_temp","length","t8","t9","t10","t11","t12","t13","_temp2","t14","t15","t16","t17","t18","item_0","item","Object","assign","Trigger","Clear","Value","Chips","Chip","Content","List","Item","Empty","Group","GroupLabel","Collection","useFilter","_c","BaseCombobox","Combobox"],"sources":["../../../src/components/combobox/Combobox.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Combobox as BaseCombobox } from '@base-ui/react/combobox';\nimport { withClass } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { CheckIcon, ChevronDownIcon, XIcon } from '../../icons';\nimport { Field } from '../field/Field';\nimport type { ControlSize } from '../input/Input';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface ComboboxInputGroupProps extends BaseCombobox.InputGroup.Props {\n /** Control height. */\n size?: ControlSize;\n}\n\nfunction ComboboxInputGroup({ size = 'md', className, ref, ...props }: ComboboxInputGroupProps) {\n return (\n <BaseCombobox.InputGroup\n ref={ref}\n className={withClass('oui-combobox__group', className)}\n data-size={size}\n {...props}\n />\n );\n}\n\nfunction ComboboxInput({ className, ref, ...props }: BaseCombobox.Input.Props) {\n return <BaseCombobox.Input ref={ref} className={withClass('oui-combobox__input', className)} {...props} />;\n}\n\nfunction ComboboxTrigger({ className, children, ref, ...props }: BaseCombobox.Trigger.Props) {\n return (\n <BaseCombobox.Trigger\n ref={ref}\n aria-label=\"Open list\"\n className={withClass('oui-combobox__action', className)}\n {...props}\n >\n {children ?? <ChevronDownIcon />}\n </BaseCombobox.Trigger>\n );\n}\n\nfunction ComboboxClear({ className, children, ref, ...props }: BaseCombobox.Clear.Props) {\n return (\n <BaseCombobox.Clear\n ref={ref}\n aria-label=\"Clear selection\"\n className={withClass('oui-combobox__action', className)}\n {...props}\n >\n {children ?? <XIcon />}\n </BaseCombobox.Clear>\n );\n}\n\nexport interface ComboboxContentProps extends BaseCombobox.Popup.Props {\n /** Which side of the input the list opens on. */\n side?: BaseCombobox.Positioner.Props['side'];\n /** Alignment along that side. */\n align?: BaseCombobox.Positioner.Props['align'];\n /** Distance from the input in px. */\n sideOffset?: BaseCombobox.Positioner.Props['sideOffset'];\n /** Props for the positioner element that places the popup. */\n positionerProps?: BaseCombobox.Positioner.Props;\n}\n\nfunction ComboboxContent({\n side,\n align,\n sideOffset = 6,\n positionerProps,\n className,\n ref,\n ...props\n}: ComboboxContentProps) {\n const container = usePortalContainer();\n return (\n <BaseCombobox.Portal container={container}>\n <BaseCombobox.Positioner\n className=\"oui-combobox__positioner\"\n side={side}\n align={align}\n sideOffset={sideOffset}\n {...positionerProps}\n >\n <BaseCombobox.Popup ref={ref} className={withClass('oui-combobox__popup', className)} {...props} />\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n );\n}\n\nfunction ComboboxList({ className, ref, ...props }: BaseCombobox.List.Props) {\n return <BaseCombobox.List ref={ref} className={withClass('oui-combobox__list', className)} {...props} />;\n}\n\nfunction ComboboxItem({ className, children, ref, ...props }: BaseCombobox.Item.Props) {\n return (\n <BaseCombobox.Item ref={ref} className={withClass('oui-combobox__item', className)} {...props}>\n <span className=\"oui-combobox__item-text\">{children}</span>\n <BaseCombobox.ItemIndicator className=\"oui-combobox__item-indicator\">\n <CheckIcon />\n </BaseCombobox.ItemIndicator>\n </BaseCombobox.Item>\n );\n}\n\nfunction ComboboxEmpty({ className, ref, ...props }: BaseCombobox.Empty.Props) {\n return <BaseCombobox.Empty ref={ref} className={withClass('oui-combobox__empty', className)} {...props} />;\n}\n\nfunction ComboboxChips({ className, ref, ...props }: BaseCombobox.Chips.Props) {\n return <BaseCombobox.Chips ref={ref} className={withClass('oui-combobox__chips', className)} {...props} />;\n}\n\nfunction ComboboxChip({\n className,\n children,\n removeLabel = 'Remove',\n ref,\n ...props\n}: BaseCombobox.Chip.Props & { removeLabel?: string }) {\n return (\n <BaseCombobox.Chip ref={ref} className={withClass('oui-combobox__chip', className)} {...props}>\n {children}\n <BaseCombobox.ChipRemove className=\"oui-combobox__chip-remove\" aria-label={removeLabel}>\n <XIcon />\n </BaseCombobox.ChipRemove>\n </BaseCombobox.Chip>\n );\n}\n\nfunction ComboboxGroupLabel({ className, ref, ...props }: BaseCombobox.GroupLabel.Props) {\n return <BaseCombobox.GroupLabel ref={ref} className={withClass('oui-select__group-label', className)} {...props} />;\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\ntype RootProps = Omit<BaseCombobox.Root.Props<ComboboxOption, boolean | undefined>, 'items' | 'children'>;\n\nexport interface ComboboxProps extends RootProps {\n /** Options to choose from. */\n items: ComboboxOption[];\n /** Visible field label. */\n label?: React.ReactNode;\n /** Help text under the input. */\n description?: React.ReactNode;\n /** Error message. When set, the field is marked invalid. */\n error?: React.ReactNode;\n /** Placeholder shown while nothing is typed or selected. */\n placeholder?: string;\n /** Shown when the filter matches nothing. */\n emptyText?: React.ReactNode;\n /** Control height. */\n size?: ControlSize;\n /** Hide the clear button. */\n hideClear?: boolean;\n /** Props for the text input. */\n inputProps?: BaseCombobox.Input.Props;\n}\n\nfunction ComboboxComponent({\n items,\n label,\n description,\n error,\n placeholder,\n emptyText = 'No results found.',\n size = 'md',\n hideClear,\n inputProps,\n name,\n disabled,\n required,\n multiple,\n ...rootProps\n}: ComboboxProps) {\n return (\n <Field.Root name={name} disabled={disabled} invalid={error ? true : undefined}>\n <BaseCombobox.Root\n items={items}\n multiple={multiple}\n disabled={disabled}\n required={required}\n {...(rootProps as BaseCombobox.Root.Props<ComboboxOption, boolean | undefined>)}\n >\n {label && <Field.Label required={required}>{label}</Field.Label>}\n <ComboboxInputGroup size={size} data-multiple={multiple || undefined}>\n {multiple ? (\n <BaseCombobox.Value>\n {(value: ComboboxOption[]) => (\n <ComboboxChips>\n {value.map((item) => (\n <ComboboxChip key={item.value} removeLabel={`Remove ${item.label}`}>\n {item.label}\n </ComboboxChip>\n ))}\n <ComboboxInput placeholder={value.length ? undefined : placeholder} {...inputProps} />\n </ComboboxChips>\n )}\n </BaseCombobox.Value>\n ) : (\n <ComboboxInput placeholder={placeholder} {...inputProps} />\n )}\n <span className=\"oui-combobox__actions\">\n {!hideClear && <ComboboxClear />}\n <ComboboxTrigger />\n </span>\n </ComboboxInputGroup>\n <ComboboxContent>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(item: ComboboxOption) => (\n <ComboboxItem key={item.value} value={item} disabled={item.disabled}>\n {item.label}\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxContent>\n </BaseCombobox.Root>\n {description && <Field.Description>{description}</Field.Description>}\n {error ? <Field.Error match>{error}</Field.Error> : <Field.Error />}\n </Field.Root>\n );\n}\n\n/**\n * Searchable select. `<Combobox items={…} />` covers single and `multiple`\n * (chips) selection; compose the parts for anything custom.\n */\nexport const Combobox = Object.assign(ComboboxComponent, {\n Root: BaseCombobox.Root,\n InputGroup: ComboboxInputGroup,\n Input: ComboboxInput,\n Trigger: ComboboxTrigger,\n Clear: ComboboxClear,\n Value: BaseCombobox.Value,\n Chips: ComboboxChips,\n Chip: ComboboxChip,\n Content: ComboboxContent,\n List: ComboboxList,\n Item: ComboboxItem,\n Empty: ComboboxEmpty,\n Group: BaseCombobox.Group,\n GroupLabel: ComboboxGroupLabel,\n Collection: BaseCombobox.Collection,\n useFilter: BaseCombobox.useFilter,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.js","names":["React","Combobox","BaseCombobox","withClass","usePortalContainer","CheckIcon","ChevronDownIcon","XIcon","Field","ControlSize","ComboboxInputGroupProps","InputGroup","Props","size","ComboboxInputGroup","t0","$","_c","className","props","ref","t1","undefined","t2","t3","ComboboxInput","ComboboxTrigger","children","ComboboxClear","ComboboxContentProps","Popup","side","Positioner","align","sideOffset","positionerProps","ComboboxContent","container","t4","t5","ComboboxList","ComboboxItem","Symbol","for","ComboboxEmpty","ComboboxChips","ComboboxChip","removeLabel","t6","ComboboxGroupLabel","ComboboxOption","value","label","disabled","RootProps","Omit","Root","ComboboxProps","items","ReactNode","description","error","placeholder","emptyText","hideClear","maxChips","inputProps","Input","ComboboxComponent","multiple","name","required","rootProps","t7","shown","slice","hidden","length","map","_temp","_temp2","join","t8","t9","t10","t11","t12","t13","_temp3","t14","t15","t16","t17","t18","item_1","item","item_0","Object","assign","Trigger","Clear","Value","Chips","Chip","Content","List","Item","Empty","Group","GroupLabel","Collection","useFilter","_c","BaseCombobox","Combobox"],"sources":["../../../src/components/combobox/Combobox.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Combobox as BaseCombobox } from '@base-ui/react/combobox';\nimport { withClass } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { CheckIcon, ChevronDownIcon, XIcon } from '../../icons';\nimport { Field } from '../field/Field';\nimport type { ControlSize } from '../input/Input';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface ComboboxInputGroupProps extends BaseCombobox.InputGroup.Props {\n /** Control height. */\n size?: ControlSize;\n}\n\nfunction ComboboxInputGroup({ size = 'md', className, ref, ...props }: ComboboxInputGroupProps) {\n return (\n <BaseCombobox.InputGroup\n ref={ref}\n className={withClass('oui-combobox__group', className)}\n data-size={size}\n {...props}\n />\n );\n}\n\nfunction ComboboxInput({ className, ref, ...props }: BaseCombobox.Input.Props) {\n return <BaseCombobox.Input ref={ref} className={withClass('oui-combobox__input', className)} {...props} />;\n}\n\nfunction ComboboxTrigger({ className, children, ref, ...props }: BaseCombobox.Trigger.Props) {\n return (\n <BaseCombobox.Trigger\n ref={ref}\n aria-label=\"Open list\"\n className={withClass('oui-combobox__action', className)}\n {...props}\n >\n {children ?? <ChevronDownIcon />}\n </BaseCombobox.Trigger>\n );\n}\n\nfunction ComboboxClear({ className, children, ref, ...props }: BaseCombobox.Clear.Props) {\n return (\n <BaseCombobox.Clear\n ref={ref}\n aria-label=\"Clear selection\"\n className={withClass('oui-combobox__action', className)}\n {...props}\n >\n {children ?? <XIcon />}\n </BaseCombobox.Clear>\n );\n}\n\nexport interface ComboboxContentProps extends BaseCombobox.Popup.Props {\n /** Which side of the input the list opens on. */\n side?: BaseCombobox.Positioner.Props['side'];\n /** Alignment along that side. */\n align?: BaseCombobox.Positioner.Props['align'];\n /** Distance from the input in px. */\n sideOffset?: BaseCombobox.Positioner.Props['sideOffset'];\n /** Props for the positioner element that places the popup. */\n positionerProps?: BaseCombobox.Positioner.Props;\n}\n\nfunction ComboboxContent({\n side,\n align,\n sideOffset = 6,\n positionerProps,\n className,\n ref,\n ...props\n}: ComboboxContentProps) {\n const container = usePortalContainer();\n return (\n <BaseCombobox.Portal container={container}>\n <BaseCombobox.Positioner\n className=\"oui-combobox__positioner\"\n side={side}\n align={align}\n sideOffset={sideOffset}\n {...positionerProps}\n >\n <BaseCombobox.Popup ref={ref} className={withClass('oui-combobox__popup', className)} {...props} />\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n );\n}\n\nfunction ComboboxList({ className, ref, ...props }: BaseCombobox.List.Props) {\n return <BaseCombobox.List ref={ref} className={withClass('oui-combobox__list', className)} {...props} />;\n}\n\nfunction ComboboxItem({ className, children, ref, ...props }: BaseCombobox.Item.Props) {\n return (\n <BaseCombobox.Item ref={ref} className={withClass('oui-combobox__item', className)} {...props}>\n <span className=\"oui-combobox__item-text\">{children}</span>\n <BaseCombobox.ItemIndicator className=\"oui-combobox__item-indicator\">\n <CheckIcon />\n </BaseCombobox.ItemIndicator>\n </BaseCombobox.Item>\n );\n}\n\nfunction ComboboxEmpty({ className, ref, ...props }: BaseCombobox.Empty.Props) {\n return <BaseCombobox.Empty ref={ref} className={withClass('oui-combobox__empty', className)} {...props} />;\n}\n\nfunction ComboboxChips({ className, ref, ...props }: BaseCombobox.Chips.Props) {\n return <BaseCombobox.Chips ref={ref} className={withClass('oui-combobox__chips', className)} {...props} />;\n}\n\nfunction ComboboxChip({\n className,\n children,\n removeLabel = 'Remove',\n ref,\n ...props\n}: BaseCombobox.Chip.Props & { removeLabel?: string }) {\n return (\n <BaseCombobox.Chip ref={ref} className={withClass('oui-combobox__chip', className)} {...props}>\n <span className=\"oui-combobox__chip-label\">{children}</span>\n <BaseCombobox.ChipRemove className=\"oui-combobox__chip-remove\" aria-label={removeLabel}>\n <XIcon />\n </BaseCombobox.ChipRemove>\n </BaseCombobox.Chip>\n );\n}\n\nfunction ComboboxGroupLabel({ className, ref, ...props }: BaseCombobox.GroupLabel.Props) {\n return <BaseCombobox.GroupLabel ref={ref} className={withClass('oui-select__group-label', className)} {...props} />;\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\ntype RootProps = Omit<BaseCombobox.Root.Props<ComboboxOption, boolean | undefined>, 'items' | 'children'>;\n\nexport interface ComboboxProps extends RootProps {\n /** Options to choose from. */\n items: ComboboxOption[];\n /** Visible field label. */\n label?: React.ReactNode;\n /** Help text under the input. */\n description?: React.ReactNode;\n /** Error message. When set, the field is marked invalid. */\n error?: React.ReactNode;\n /** Placeholder shown while nothing is typed or selected. */\n placeholder?: string;\n /** Shown when the filter matches nothing. */\n emptyText?: React.ReactNode;\n /** Control height. */\n size?: ControlSize;\n /** Hide the clear button. */\n hideClear?: boolean;\n /**\n * With `multiple`, show at most this many chips and a `+N` chip for the rest, keeping the field on\n * one line (long labels are truncated). Leave unset to wrap all chips onto new lines.\n */\n maxChips?: number;\n /** Props for the text input. */\n inputProps?: BaseCombobox.Input.Props;\n}\n\nfunction ComboboxComponent({\n items,\n label,\n description,\n error,\n placeholder,\n emptyText = 'No results found.',\n size = 'md',\n hideClear,\n maxChips,\n inputProps,\n name,\n disabled,\n required,\n multiple,\n ...rootProps\n}: ComboboxProps) {\n return (\n <Field.Root name={name} disabled={disabled} invalid={error ? true : undefined}>\n <BaseCombobox.Root\n items={items}\n multiple={multiple}\n disabled={disabled}\n required={required}\n {...(rootProps as BaseCombobox.Root.Props<ComboboxOption, boolean | undefined>)}\n >\n {label && <Field.Label required={required}>{label}</Field.Label>}\n <ComboboxInputGroup size={size} data-multiple={multiple || undefined}>\n {multiple ? (\n <BaseCombobox.Value>\n {(value: ComboboxOption[]) => {\n const shown = maxChips === undefined ? value : value.slice(0, maxChips);\n const hidden = value.slice(shown.length);\n return (\n <ComboboxChips data-collapse={maxChips === undefined ? undefined : ''}>\n {shown.map((item) => (\n <ComboboxChip key={item.value} removeLabel={`Remove ${item.label}`}>\n {item.label}\n </ComboboxChip>\n ))}\n {hidden.length > 0 && (\n <span\n className=\"oui-combobox__chip\"\n data-overflow=\"\"\n title={hidden.map((item) => item.label).join(', ')}\n aria-label={`${hidden.length} more selected`}\n >\n +{hidden.length}\n </span>\n )}\n <ComboboxInput placeholder={value.length ? undefined : placeholder} {...inputProps} />\n </ComboboxChips>\n );\n }}\n </BaseCombobox.Value>\n ) : (\n <ComboboxInput placeholder={placeholder} {...inputProps} />\n )}\n <span className=\"oui-combobox__actions\">\n {!hideClear && <ComboboxClear />}\n <ComboboxTrigger />\n </span>\n </ComboboxInputGroup>\n <ComboboxContent>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(item: ComboboxOption) => (\n <ComboboxItem key={item.value} value={item} disabled={item.disabled}>\n {item.label}\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxContent>\n </BaseCombobox.Root>\n {description && <Field.Description>{description}</Field.Description>}\n {error ? <Field.Error match>{error}</Field.Error> : <Field.Error />}\n </Field.Root>\n );\n}\n\n/**\n * Searchable select. `<Combobox items={…} />` covers single and `multiple`\n * (chips) selection; `maxChips` keeps a multi-select on one line. Compose the\n * parts for anything custom.\n *\n * @example\n * <Combobox label=\"Vehicles\" items={vehicles} multiple maxChips={1} placeholder=\"All vehicles\" />\n */\nexport const Combobox = Object.assign(ComboboxComponent, {\n Root: BaseCombobox.Root,\n InputGroup: ComboboxInputGroup,\n Input: ComboboxInput,\n Trigger: ComboboxTrigger,\n Clear: ComboboxClear,\n Value: BaseCombobox.Value,\n Chips: ComboboxChips,\n Chip: ComboboxChip,\n Content: ComboboxContent,\n List: ComboboxList,\n Item: ComboboxItem,\n Empty: ComboboxEmpty,\n Group: BaseCombobox.Group,\n GroupLabel: ComboboxGroupLabel,\n Collection: BaseCombobox.Collection,\n useFilter: BaseCombobox.useFilter,\n});\n"],"mappings":"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"}
@@ -116,7 +116,8 @@ export interface MapRootProps extends Omit<MapProps, 'mapStyle' | 'initialViewSt
116
116
  * A MapLibre map styled and themed with the library tokens. Holds the base layer state and routes clicks
117
117
  * and hovers to the data parts inside it. `Map.Root` › data parts (`Map.Areas`, `Map.Routes`,
118
118
  * `Map.Points`) and `Map.Marker`s, with `Map.Overlay`s for legends, switches and cards on top.
119
- * Needs `@optimum-intelligence/opti-ui/map.css` imported; MapLibre's worker is set up for Vite apps.
119
+ * Needs `@optimum-intelligence/opti-ui/map.css` imported. MapLibre's worker is bundled and runs from a blob URL, so a
120
+ * strict Content-Security-Policy needs `worker-src blob:`.
120
121
  *
121
122
  * @example
122
123
  * <Map.Root
@@ -11,14 +11,15 @@ import { createPortal } from "react-dom";
11
11
  import { AttributionControl, Layer, Map, Marker, NavigationControl, Popup, Source, useControl } from "@vis.gl/react-maplibre";
12
12
  //#region src/components/map/Map.tsx
13
13
  /**
14
- * Loads MapLibre and points it at its worker, once, on the first map mount. The `?url` import stays
15
- * external, so the app's Vite resolves the worker of the installed maplibre-gl. It is a dynamic import
16
- * because Node would run the worker file when importing this module (docs generation, SSR).
14
+ * Loads MapLibre and points it at its worker, once, on the first map mount. The worker source is inlined
15
+ * in `./worker` at library build time and started from a blob URL, so apps need no bundler config (a
16
+ * strict Content-Security-Policy needs `worker-src blob:`). Both are dynamic imports so apps without a
17
+ * mounted map never load them.
17
18
  */
18
19
  var mapLib;
19
20
  function loadMapLib() {
20
- mapLib ??= Promise.all([import("maplibre-gl"), import("maplibre-gl/dist/maplibre-gl-worker.mjs?url")]).then(([lib, worker]) => {
21
- lib.setWorkerUrl(worker.default);
21
+ mapLib ??= Promise.all([import("maplibre-gl"), import("./worker.js")]).then(([lib, worker]) => {
22
+ lib.setWorkerUrl(URL.createObjectURL(new Blob([worker.default], { type: "text/javascript" })));
22
23
  return lib;
23
24
  });
24
25
  return mapLib;
@@ -351,7 +352,8 @@ function usePartId(prefix) {
351
352
  * A MapLibre map styled and themed with the library tokens. Holds the base layer state and routes clicks
352
353
  * and hovers to the data parts inside it. `Map.Root` › data parts (`Map.Areas`, `Map.Routes`,
353
354
  * `Map.Points`) and `Map.Marker`s, with `Map.Overlay`s for legends, switches and cards on top.
354
- * Needs `@optimum-intelligence/opti-ui/map.css` imported; MapLibre's worker is set up for Vite apps.
355
+ * Needs `@optimum-intelligence/opti-ui/map.css` imported. MapLibre's worker is bundled and runs from a blob URL, so a
356
+ * strict Content-Security-Policy needs `worker-src blob:`.
355
357
  *
356
358
  * @example
357
359
  * <Map.Root