@capillarytech/blaze-ui 1.0.3-alpha.10 → 1.0.3-alpha.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CapUnifiedSelect.d.ts","sourceRoot":"","sources":["../../components/CapUnifiedSelect/CapUnifiedSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CapUnifiedSelect.d.ts","sourceRoot":"","sources":["../../components/CapUnifiedSelect/CapUnifiedSelect.tsx"],"names":[],"mappings":"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"}
@@ -53,5 +53,7 @@ export declare const DEFAULTS: {
53
53
  readonly VIRTUAL_ROW_HEIGHT: 32;
54
54
  /** Default list height in pixels */
55
55
  readonly LIST_HEIGHT: 256;
56
+ /** Default search input placeholder */
57
+ readonly SEARCH_PLACEHOLDER: "Search";
56
58
  };
57
59
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../components/CapUnifiedSelect/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,sCAAsC;;IAEtC,2CAA2C;;IAE3C,mEAAmE;;IAEnE,uDAAuD;;IAEvD,uDAAuD;;IAEvD,8DAA8D;;IAE9D,gDAAgD;;IAEhD,qEAAqE;;IAErE,qEAAqE;;IAErE,uDAAuD;;IAEvD,wDAAwD;;CAEhD,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,+BAA+B;;IAE/B,kCAAkC;;IAElC,gCAAgC;;IAEhC,iCAAiC;;IAEjC,8BAA8B;;IAE9B,2CAA2C;;IAE3C,oCAAoC;;CAE5B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../components/CapUnifiedSelect/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,sCAAsC;;IAEtC,2CAA2C;;IAE3C,mEAAmE;;IAEnE,uDAAuD;;IAEvD,uDAAuD;;IAEvD,8DAA8D;;IAE9D,gDAAgD;;IAEhD,qEAAqE;;IAErE,qEAAqE;;IAErE,uDAAuD;;IAEvD,wDAAwD;;CAEhD,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,+BAA+B;;IAE/B,kCAAkC;;IAElC,gCAAgC;;IAEhC,iCAAiC;;IAEjC,8BAA8B;;IAE9B,2CAA2C;;IAE3C,oCAAoC;;IAEpC,uCAAuC;;CAE/B,CAAC"}
@@ -1648,7 +1648,49 @@ const CapUnifiedSelect = _ref4 => {
1648
1648
  // During search, use normal options (mergedOptions) to show filtered results without selected items at top
1649
1649
  // When not searching, use ordered options if available (selected items at top), otherwise use merged options
1650
1650
  const sourceOptions = searchText.trim() ? mergedOptions : orderedOptions || mergedOptions;
1651
- if (!(sourceOptions != null && sourceOptions.length)) return [];
1651
+
1652
+ // Get current selected values to check for missing ones
1653
+ // Use value prop (external state) instead of tempValue (internal state)
1654
+ // This ensures we only create virtual options for values that are actually selected
1655
+ // and not just temporarily selected during dropdown interaction
1656
+ const selectedValues = Array.isArray(value) ? value : value ? [value] : [];
1657
+ const hasSearchQuery = searchText.trim().length > 0;
1658
+
1659
+ // Find selected values that don't exist in the current options
1660
+ // Only include missing values when not searching (so they're always visible)
1661
+ // or when searching but they should still be shown
1662
+ const missingSelectedValues = [];
1663
+ if (selectedValues.length > 0) {
1664
+ selectedValues.forEach(val => {
1665
+ if (!findValueInOptions(sourceOptions, val)) {
1666
+ missingSelectedValues.push(val);
1667
+ }
1668
+ });
1669
+ }
1670
+
1671
+ // Create virtual option nodes for missing selected values
1672
+ // Use cached option data if available, otherwise create a simple node with value as label
1673
+ const virtualOptions = missingSelectedValues.map(val => {
1674
+ const cachedOption = selectedItemsCacheRef.current.get(val);
1675
+ return _extends({
1676
+ value: val,
1677
+ label: (cachedOption == null ? void 0 : cachedOption.label) || String(val),
1678
+ key: (cachedOption == null ? void 0 : cachedOption.key) || val,
1679
+ title: cachedOption == null ? void 0 : cachedOption.title,
1680
+ optionSuffix: cachedOption == null ? void 0 : cachedOption.optionSuffix,
1681
+ optionSuffixInfo: cachedOption == null ? void 0 : cachedOption.optionSuffixInfo,
1682
+ optionTooltipInfo: cachedOption == null ? void 0 : cachedOption.optionTooltipInfo,
1683
+ disabled: cachedOption == null ? void 0 : cachedOption.disabled
1684
+ }, (cachedOption == null ? void 0 : cachedOption.children) && {
1685
+ children: cachedOption.children
1686
+ });
1687
+ });
1688
+
1689
+ // Combine source options with virtual options for missing selected values
1690
+ // When not searching, add virtual options at the beginning so selected items appear first
1691
+ // When searching, still include them if they match the search (handled by filterTreeData)
1692
+ const allOptions = hasSearchQuery ? [...sourceOptions, ...virtualOptions] : [...virtualOptions, ...sourceOptions];
1693
+ if (!(allOptions != null && allOptions.length)) return [];
1652
1694
  const enhanceOptions = opts => opts.map(opt => {
1653
1695
  const decoratedTitle = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CapRow.default, {
1654
1696
  className: _styles.default['cap-unified-select-option-with-suffix'],
@@ -1678,7 +1720,7 @@ const CapUnifiedSelect = _ref4 => {
1678
1720
  children: opt != null && opt.children ? enhanceOptions(opt.children) : []
1679
1721
  });
1680
1722
  });
1681
- return isTree ? enhanceOptions(sourceOptions) : sourceOptions.map(opt => _extends({}, opt, {
1723
+ return isTree ? enhanceOptions(allOptions) : allOptions.map(opt => _extends({}, opt, {
1682
1724
  title: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CapRow.default, {
1683
1725
  className: _styles.default['cap-unified-select-option-with-suffix'],
1684
1726
  justify: "space-between",
@@ -1703,17 +1745,17 @@ const CapUnifiedSelect = _ref4 => {
1703
1745
  }),
1704
1746
  label: opt == null ? void 0 : opt.label
1705
1747
  }));
1706
- }, [isTree, mergedOptions, orderedOptions, searchText]);
1748
+ }, [isTree, mergedOptions, orderedOptions, searchText, value, findValueInOptions]);
1707
1749
  const filteredTree = (0, _react.useMemo)(() => {
1708
1750
  const selectedValues = Array.isArray(tempValue) ? tempValue : tempValue ? [tempValue] : [];
1709
- const hasSearchQuery = searchText.trim().length > 0;
1710
1751
 
1711
1752
  // If staticValue is true, use local filtering on existing options
1712
1753
  // If staticValue is false, still use local filtering for immediate feedback,
1713
1754
  // but onSearch callback will be triggered for parent to update options
1714
- // During search, don't include selectedValues so only matching items are shown
1715
- // When not searching, include selectedValues to show selected items
1716
- return filterTreeData(dataSource, searchText.trim(), searchBasedOn, hasSearchQuery ? undefined : selectedValues);
1755
+ // Always include selectedValues to ensure uploaded/selected items are visible
1756
+ // This ensures that when dev uploads values, they remain visible in the dropdown
1757
+ // even if they're not in the options array yet
1758
+ return filterTreeData(dataSource, searchText.trim(), searchBasedOn, selectedValues.length > 0 ? selectedValues : undefined);
1717
1759
  }, [dataSource, searchText, searchBasedOn, tempValue]);
1718
1760
  const treeMaps = (0, _react.useMemo)(() => buildTreeMaps(options), [options]);
1719
1761
  const selectedLeafCount = (0, _react.useMemo)(() => countSelectedLeaves(treeMaps, Array.isArray(tempValue) ? tempValue : undefined), [treeMaps, tempValue]);
@@ -2136,7 +2178,7 @@ const CapUnifiedSelect = _ref4 => {
2136
2178
  size: "s",
2137
2179
  className: _styles.default['cap-unified-select-search-icon']
2138
2180
  }),
2139
- placeholder: "Search",
2181
+ placeholder: _constants.DEFAULTS.SEARCH_PLACEHOLDER,
2140
2182
  variant: "borderless",
2141
2183
  value: searchText,
2142
2184
  onChange: handleSearchChange,
@@ -3255,7 +3297,9 @@ const DEFAULTS = exports.DEFAULTS = {
3255
3297
  /** Default virtual row height in pixels */
3256
3298
  VIRTUAL_ROW_HEIGHT: 32,
3257
3299
  /** Default list height in pixels */
3258
- LIST_HEIGHT: 256
3300
+ LIST_HEIGHT: 256,
3301
+ /** Default search input placeholder */
3302
+ SEARCH_PLACEHOLDER: 'Search'
3259
3303
  };
3260
3304
 
3261
3305
  /***/ })