@wallarm-org/design-system 0.25.0 → 0.26.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 (161) hide show
  1. package/dist/components/Checkmark/Checkmark.js +2 -2
  2. package/dist/components/Checkmark/icons/CheckIcon.d.ts +2 -0
  3. package/dist/components/Checkmark/icons/CheckIcon.js +13 -0
  4. package/dist/components/Checkmark/icons/IndeterminateIcon.d.ts +2 -0
  5. package/dist/components/Checkmark/icons/IndeterminateIcon.js +17 -0
  6. package/dist/components/Checkmark/icons/index.d.ts +2 -0
  7. package/dist/components/Checkmark/icons/index.js +3 -0
  8. package/dist/components/FilterInput/FilterInputErrors/parseFilterInputErrors.js +2 -2
  9. package/dist/components/FilterInput/FilterInputMenu/FilterInputMenu.js +2 -1
  10. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/ValueMenuItem.js +5 -10
  11. package/dist/components/FilterInput/hooks/useFilterInputAutocomplete/deriveAutocompleteValues.js +2 -2
  12. package/dist/components/FilterInput/hooks/useFilterInputAutocomplete/valueCommitHelpers.js +3 -2
  13. package/dist/components/FilterInput/index.d.ts +1 -1
  14. package/dist/components/FilterInput/index.js +2 -2
  15. package/dist/components/FilterInput/lib/fields.d.ts +13 -6
  16. package/dist/components/FilterInput/lib/fields.js +15 -5
  17. package/dist/components/FilterInput/lib/index.d.ts +2 -1
  18. package/dist/components/FilterInput/lib/index.js +3 -2
  19. package/dist/components/FilterInput/lib/statusCodeSuggestions.d.ts +10 -0
  20. package/dist/components/FilterInput/lib/statusCodeSuggestions.js +45 -0
  21. package/dist/components/FilterInput/stories/mockStatusCodes.d.ts +6 -0
  22. package/dist/components/FilterInput/stories/mockStatusCodes.js +18 -0
  23. package/dist/components/FilterInput/types.d.ts +7 -0
  24. package/dist/icons/Activity.js +2 -6
  25. package/dist/icons/ArrowBigUp.js +2 -6
  26. package/dist/icons/ArrowBigUpDash.js +6 -20
  27. package/dist/icons/ArrowDown.js +2 -6
  28. package/dist/icons/ArrowDownLeft.js +6 -20
  29. package/dist/icons/ArrowDownRight.js +6 -20
  30. package/dist/icons/ArrowLeft.js +2 -6
  31. package/dist/icons/ArrowRight.js +2 -6
  32. package/dist/icons/ArrowUp.js +2 -6
  33. package/dist/icons/ArrowUpLeft.js +6 -20
  34. package/dist/icons/ArrowUpRight.js +2 -6
  35. package/dist/icons/Check.js +1 -1
  36. package/dist/icons/CheckCheck.js +6 -20
  37. package/dist/icons/ChevronDown.js +2 -6
  38. package/dist/icons/ChevronFirst.js +6 -20
  39. package/dist/icons/ChevronLast.js +6 -20
  40. package/dist/icons/ChevronLeft.js +2 -6
  41. package/dist/icons/ChevronRight.js +2 -6
  42. package/dist/icons/ChevronUp.js +2 -6
  43. package/dist/icons/ChevronsDown.js +6 -20
  44. package/dist/icons/ChevronsLeft.js +6 -20
  45. package/dist/icons/ChevronsRight.js +6 -20
  46. package/dist/icons/ChevronsUp.js +6 -20
  47. package/dist/icons/Circle.js +3 -9
  48. package/dist/icons/CircleArrowDown.js +6 -30
  49. package/dist/icons/CircleArrowLeft.js +6 -30
  50. package/dist/icons/CircleArrowOutDownLeft.js +6 -28
  51. package/dist/icons/CircleArrowOutDownRight.js +6 -28
  52. package/dist/icons/CircleArrowOutUpLeft.js +6 -28
  53. package/dist/icons/CircleArrowOutUpRight.js +6 -28
  54. package/dist/icons/CircleArrowRight.js +6 -30
  55. package/dist/icons/CircleArrowUp.js +6 -30
  56. package/dist/icons/CircleCheck.js +6 -20
  57. package/dist/icons/CircleCheckBig.js +6 -20
  58. package/dist/icons/CircleChevronDown.js +6 -20
  59. package/dist/icons/CircleChevronLeft.js +6 -20
  60. package/dist/icons/CircleChevronRight.js +6 -20
  61. package/dist/icons/CircleChevronUp.js +6 -20
  62. package/dist/icons/CircleDashed.js +6 -68
  63. package/dist/icons/CircleDotDashed.js +4 -68
  64. package/dist/icons/CircleEllipsis.js +6 -42
  65. package/dist/icons/CircleHelp.js +6 -30
  66. package/dist/icons/CirclePlus.js +6 -30
  67. package/dist/icons/Earth.js +6 -30
  68. package/dist/icons/EarthLock.js +6 -39
  69. package/dist/icons/Ellipsis.js +6 -34
  70. package/dist/icons/Filter.js +3 -7
  71. package/dist/icons/FilterX.js +6 -28
  72. package/dist/icons/Folder.js +2 -6
  73. package/dist/icons/FunnelPlus.js +6 -36
  74. package/dist/icons/GitCommitHorizontal.js +6 -22
  75. package/dist/icons/GitCommitVertical.js +6 -30
  76. package/dist/icons/GitCompare.js +6 -40
  77. package/dist/icons/GitCompareArrows.js +6 -64
  78. package/dist/icons/GitFork.js +6 -50
  79. package/dist/icons/GitGraph.js +6 -58
  80. package/dist/icons/GitMerge.js +6 -32
  81. package/dist/icons/GitPullRequest.js +6 -40
  82. package/dist/icons/GitPullRequestArrow.js +6 -56
  83. package/dist/icons/GitPullRequestClosed.js +6 -56
  84. package/dist/icons/GitPullRequestCreate.js +6 -46
  85. package/dist/icons/GitPullRequestCreateArrow.js +6 -62
  86. package/dist/icons/GitPullRequestDraft.js +6 -48
  87. package/dist/icons/Globe.js +6 -30
  88. package/dist/icons/GlobeLock.js +6 -39
  89. package/dist/icons/History.js +6 -28
  90. package/dist/icons/Home.js +6 -20
  91. package/dist/icons/Info.js +6 -30
  92. package/dist/icons/KeyRound.js +6 -18
  93. package/dist/icons/KeySquare.js +6 -36
  94. package/dist/icons/Keyboard.js +6 -80
  95. package/dist/icons/Layers.js +6 -20
  96. package/dist/icons/Layers2.js +6 -20
  97. package/dist/icons/Layers3.js +6 -28
  98. package/dist/icons/LayoutDashboard.js +6 -52
  99. package/dist/icons/LayoutGrid.js +6 -52
  100. package/dist/icons/LayoutList.js +6 -60
  101. package/dist/icons/LayoutPanelLeft.js +6 -25
  102. package/dist/icons/LayoutPanelTop.js +6 -25
  103. package/dist/icons/LayoutTemplate.js +6 -40
  104. package/dist/icons/LibraryBig.js +6 -48
  105. package/dist/icons/Loader.js +51 -72
  106. package/dist/icons/LoaderCircle.js +13 -10
  107. package/dist/icons/Lock.js +6 -25
  108. package/dist/icons/LockOpen.js +6 -25
  109. package/dist/icons/Maximize.js +6 -36
  110. package/dist/icons/Maximize2.js +6 -36
  111. package/dist/icons/Megaphone.js +6 -20
  112. package/dist/icons/MegaphoneOff.js +6 -36
  113. package/dist/icons/MessageSquare.js +2 -6
  114. package/dist/icons/MessageSquareText.js +6 -28
  115. package/dist/icons/MessageSquareWarning.js +6 -28
  116. package/dist/icons/MessageSquareX.js +6 -28
  117. package/dist/icons/MessagesSquare.js +6 -20
  118. package/dist/icons/Minus.js +2 -6
  119. package/dist/icons/Mouse.js +6 -24
  120. package/dist/icons/Move3D.js +6 -36
  121. package/dist/icons/NotebookPen.js +6 -28
  122. package/dist/icons/NotepadText.js +6 -64
  123. package/dist/icons/OctagonAlert.js +6 -32
  124. package/dist/icons/PanelBottom.js +6 -24
  125. package/dist/icons/PanelBottomOpen.js +6 -36
  126. package/dist/icons/PanelRight.js +6 -24
  127. package/dist/icons/PanelRightClose.js +6 -32
  128. package/dist/icons/PanelRightDashed.js +6 -48
  129. package/dist/icons/PanelRightOpen.js +6 -36
  130. package/dist/icons/Paperclip.js +2 -6
  131. package/dist/icons/Pen.js +2 -6
  132. package/dist/icons/PenLine.js +6 -20
  133. package/dist/icons/PenOff.js +6 -28
  134. package/dist/icons/PenTool.js +6 -38
  135. package/dist/icons/Pencil.js +2 -6
  136. package/dist/icons/PencilLine.js +6 -20
  137. package/dist/icons/PencilOff.js +6 -36
  138. package/dist/icons/PencilRuler.js +6 -36
  139. package/dist/icons/Pentagon.js +2 -6
  140. package/dist/icons/Plus.js +6 -20
  141. package/dist/icons/Quote.js +6 -20
  142. package/dist/icons/Redo.js +6 -20
  143. package/dist/icons/Redo2.js +6 -20
  144. package/dist/icons/RedoDot.js +6 -30
  145. package/dist/icons/RefreshCcw.js +6 -36
  146. package/dist/icons/RefreshCwOff.js +6 -44
  147. package/dist/icons/Search.js +6 -22
  148. package/dist/icons/Skull.js +6 -48
  149. package/dist/icons/SlidersHorizontal.js +6 -94
  150. package/dist/icons/SlidersVertical.js +6 -94
  151. package/dist/icons/SquareArrowOutUpRight.js +6 -28
  152. package/dist/icons/Trash.js +6 -28
  153. package/dist/icons/Trash2.js +6 -48
  154. package/dist/icons/TriangleAlert.js +6 -28
  155. package/dist/icons/Undo2.js +1 -1
  156. package/dist/icons/Wrench.js +2 -6
  157. package/dist/icons/X.js +6 -20
  158. package/dist/icons/ZoomIn.js +6 -42
  159. package/dist/icons/ZoomOut.js +6 -32
  160. package/dist/metadata/components.json +2 -2
  161. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { Check, CheckboxIndeterminate } from "../../icons/index.js";
3
2
  import { cn } from "../../utils/cn.js";
3
+ import { CheckIcon, IndeterminateIcon } from "./icons/index.js";
4
4
  const Checkmark = ({ checkedState = false, ...props })=>/*#__PURE__*/ jsx("div", {
5
5
  className: cn('flex items-center justify-center self-start my-2', 'w-16 h-16', 'rounded-4 shadow-xs overlay transition-all data-focus-visible:ring-3', '[&_svg]:icon-sm [&_svg]:text-icon-primary-alt [&_svg]:shrink-0 [&_svg]:pointer-events-none', 'bg-bg-surface-3 border border-border-primary', '[&[data-hover]:not([data-active]):not([data-state=checked]):not([data-state=indeterminate])]:bg-states-primary-hover', '[&[data-active]:not([data-state=checked]):not([data-state=indeterminate])]:bg-states-primary-pressed', '[&[data-focus-visible]:not([data-state=checked]):not([data-state=indeterminate])]:ring-focus-primary', 'data-[state=checked]:bg-bg-fill-brand', 'data-[state=checked]:border-bg-fill-brand', 'data-[state=checked]:border-none', 'data-[state=indeterminate]:bg-bg-fill-brand', 'data-[state=indeterminate]:border-bg-fill-brand', 'data-[state=indeterminate]:border-none', '[&[data-hover]:not([data-active]):is([data-state=checked])]:overlay-states-on-fill-hover', '[&[data-hover]:not([data-active]):is([data-state=indeterminate])]:overlay-states-on-fill-hover', '[&[data-active][data-state=checked]]:overlay-states-on-fill-pressed', '[&[data-active][data-state=indeterminate]]:overlay-states-on-fill-pressed', '[&[data-focus-visible][data-state=checked]]:ring-focus-brand', '[&[data-focus-visible][data-state=indeterminate]]:ring-focus-brand'),
6
6
  "data-state": 'indeterminate' === checkedState ? 'indeterminate' : checkedState ? 'checked' : 'unchecked',
7
7
  ...props,
8
- children: 'indeterminate' === checkedState ? /*#__PURE__*/ jsx(CheckboxIndeterminate, {}) : checkedState ? /*#__PURE__*/ jsx(Check, {}) : false
8
+ children: 'indeterminate' === checkedState ? /*#__PURE__*/ jsx(IndeterminateIcon, {}) : checkedState ? /*#__PURE__*/ jsx(CheckIcon, {}) : false
9
9
  });
10
10
  export { Checkmark };
@@ -0,0 +1,2 @@
1
+ import type { FC, SVGProps } from 'react';
2
+ export declare const CheckIcon: FC<SVGProps<SVGSVGElement>>;
@@ -0,0 +1,13 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const CheckIcon = (props)=>/*#__PURE__*/ jsx("svg", {
3
+ xmlns: "http://www.w3.org/2000/svg",
4
+ viewBox: "0 0 24 24",
5
+ "aria-hidden": true,
6
+ focusable: false,
7
+ ...props,
8
+ children: /*#__PURE__*/ jsx("path", {
9
+ d: "M18.9395 4.93946C19.5253 4.35368 20.4748 4.35368 21.0606 4.93946C21.6462 5.52526 21.6463 6.47482 21.0606 7.06056L10.0606 18.0606C9.47485 18.6463 8.52529 18.6462 7.93949 18.0606L2.93949 13.0606C2.3537 12.4748 2.3537 11.5253 2.93949 10.9395C3.52528 10.3537 4.4748 10.3537 5.06058 10.9395L9.00004 14.8789L18.9395 4.93946Z",
10
+ fill: "currentColor"
11
+ })
12
+ });
13
+ export { CheckIcon };
@@ -0,0 +1,2 @@
1
+ import type { FC, SVGProps } from 'react';
2
+ export declare const IndeterminateIcon: FC<SVGProps<SVGSVGElement>>;
@@ -0,0 +1,17 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const IndeterminateIcon = (props)=>/*#__PURE__*/ jsx("svg", {
3
+ xmlns: "http://www.w3.org/2000/svg",
4
+ viewBox: "0 0 24 24",
5
+ "aria-hidden": true,
6
+ focusable: false,
7
+ ...props,
8
+ children: /*#__PURE__*/ jsx("rect", {
9
+ x: "3.5",
10
+ y: "10.5",
11
+ width: "17",
12
+ height: "3",
13
+ rx: "0.75",
14
+ fill: "currentColor"
15
+ })
16
+ });
17
+ export { IndeterminateIcon };
@@ -0,0 +1,2 @@
1
+ export { CheckIcon } from './CheckIcon';
2
+ export { IndeterminateIcon } from './IndeterminateIcon';
@@ -0,0 +1,3 @@
1
+ import { CheckIcon } from "./CheckIcon.js";
2
+ import { IndeterminateIcon } from "./IndeterminateIcon.js";
3
+ export { CheckIcon, IndeterminateIcon };
@@ -1,5 +1,5 @@
1
1
  import { isValidFieldValue } from "../hooks/useFilterInputAutocomplete/valueCommitHelpers.js";
2
- import { getFieldValues } from "../lib/index.js";
2
+ import { getFieldValues, hasStaticAllowlist } from "../lib/index.js";
3
3
  const parseFilterInputErrors = (conditions, fields)=>{
4
4
  const errors = [];
5
5
  for (const condition of conditions){
@@ -11,7 +11,7 @@ const parseFilterInputErrors = (conditions, fields)=>{
11
11
  errors.push(`Unknown field ${condition.field}`);
12
12
  break;
13
13
  case 'value':
14
- if (field && Array.isArray(condition.value)) {
14
+ if (field && hasStaticAllowlist(field) && Array.isArray(condition.value)) {
15
15
  const fv = getFieldValues(field);
16
16
  if (fv.length > 0) {
17
17
  const invalidValues = condition.value.filter((v)=>!isValidFieldValue(fv, v));
@@ -8,7 +8,8 @@ const FilterInputMenu = ({ fields, autocomplete })=>{
8
8
  const { inputText, menuState, selectedField, selectedOperator, menuPositioning, editingMultiValues, editingSingleValue, editingDateRange, inputRef, menuRef, handleFieldSelect, handleOperatorSelect, handleValueSelect, handleMultiCommit, handleRangeSelect, handleMenuClose, handleMenuDiscard, handleBuildingValueChange, segmentMenuFilterText, editingSegment, blurCommitRef } = autocomplete;
9
9
  const fieldFilterText = 'attribute' === editingSegment ? segmentMenuFilterText : inputText;
10
10
  const operatorFilterText = 'operator' === editingSegment ? segmentMenuFilterText : inputText;
11
- const selectedFieldValues = selectedField ? getFieldValues(selectedField) : [];
11
+ const valueInputText = 'value' === editingSegment ? segmentMenuFilterText : inputText;
12
+ const selectedFieldValues = selectedField ? getFieldValues(selectedField, valueInputText) : [];
12
13
  const valueFilterText = getValueFilterText(editingSegment, inputText, segmentMenuFilterText, selectedOperator, selectedFieldValues);
13
14
  const showOperatorMenu = !!selectedField;
14
15
  const showValueMenu = !!selectedField && !!selectedOperator;
@@ -8,20 +8,15 @@ const ValueMenuItem = ({ option, isChecked, isPending, multiSelect, onSelect })=
8
8
  onSelect: onSelect,
9
9
  className: isPending ? 'bg-states-primary-hover' : void 0,
10
10
  children: [
11
- option.badge ? /*#__PURE__*/ jsxs("div", {
11
+ option.badge ? /*#__PURE__*/ jsx("div", {
12
12
  className: "flex items-center gap-4 px-6 py-2 rounded-4 text-xs font-medium max-w-[320px] min-h-[20px] overflow-clip",
13
13
  style: {
14
14
  backgroundColor: option.badge.color
15
15
  },
16
- children: [
17
- /*#__PURE__*/ jsx("div", {
18
- className: "size-6 rounded-full bg-current"
19
- }),
20
- /*#__PURE__*/ jsx("span", {
21
- className: "min-w-0 truncate leading-4",
22
- children: option.badge.text
23
- })
24
- ]
16
+ children: /*#__PURE__*/ jsx("span", {
17
+ className: "min-w-0 truncate leading-4",
18
+ children: option.badge.text
19
+ })
25
20
  }) : /*#__PURE__*/ jsx("div", {
26
21
  className: "min-w-0",
27
22
  children: /*#__PURE__*/ jsx(Text, {
@@ -1,4 +1,4 @@
1
- import { chipIdToConditionIndex, getDateDisplayLabel, getFieldValues, getOperatorLabel, isMultiSelectOperator } from "../../lib/index.js";
1
+ import { chipIdToConditionIndex, getDateDisplayLabel, getFieldValues, getOperatorLabel, hasStaticAllowlist, isMultiSelectOperator } from "../../lib/index.js";
2
2
  const getEditingCondition = (editingChipId, conditions)=>{
3
3
  if (!editingChipId) return null;
4
4
  const idx = chipIdToConditionIndex(editingChipId);
@@ -12,7 +12,7 @@ const deriveAutocompleteValues = ({ editingChipId, selectedField, selectedOperat
12
12
  const values = Array.isArray(editingCondition.value) ? editingCondition.value : null != editingCondition.value ? [
13
13
  editingCondition.value
14
14
  ] : [];
15
- if (editingCondition.error && selectedField) {
15
+ if (editingCondition.error && selectedField && hasStaticAllowlist(selectedField)) {
16
16
  const fieldValues = getFieldValues(selectedField);
17
17
  if (fieldValues.length > 0) return values.filter((v)=>fieldValues.some((opt)=>opt.value === v));
18
18
  }
@@ -1,8 +1,9 @@
1
1
  import { MIN_DATE_STRING_LENGTH } from "../../FilterInputMenu/FilterInputDateValueMenu/constants.js";
2
- import { chipIdToConditionIndex, getFieldValues, isDatePreset } from "../../lib/index.js";
2
+ import { chipIdToConditionIndex, getFieldValues, hasStaticAllowlist, isDatePreset } from "../../lib/index.js";
3
3
  const findMatchingFieldValue = (fieldValues, text)=>fieldValues.find((v)=>v.label.toLowerCase() === text.toLowerCase() || String(v.value).toLowerCase() === text.toLowerCase());
4
4
  const isValidFieldValue = (fieldValues, v)=>fieldValues.some((opt)=>opt.value === v || String(opt.value).toLowerCase() === String(v).toLowerCase());
5
5
  const getInvalidValueIndices = (field, values)=>{
6
+ if (!hasStaticAllowlist(field)) return [];
6
7
  const fv = getFieldValues(field);
7
8
  if (0 === fv.length) return [];
8
9
  return values.reduce((acc, v, idx)=>{
@@ -26,7 +27,7 @@ const resolveSingleValue = (field, trimmed)=>{
26
27
  const match = findMatchingFieldValue(fv, trimmed);
27
28
  return {
28
29
  resolved: match ? match.value : trimmed,
29
- error: fv.length > 0 && !match ? true : void 0
30
+ error: hasStaticAllowlist(field) && fv.length > 0 && !match ? true : void 0
30
31
  };
31
32
  };
32
33
  const resolveMultiValues = (field, trimmed)=>{
@@ -1,5 +1,5 @@
1
1
  export { FilterInput, type FilterInputProps } from './FilterInput';
2
2
  export { FilterInputChip, type FilterInputChipProps } from './FilterInputField';
3
3
  export { FilterInputFieldMenu, type FilterInputFieldMenuProps, FilterInputOperatorMenu, type FilterInputOperatorMenuProps, FilterInputValueMenu, type FilterInputValueMenuProps, type ValueOption, } from './FilterInputMenu';
4
- export { type FilterParseError, isFilterParseError, parseExpression, serializeExpression, } from './lib';
4
+ export { createStatusCodeSuggestions, type FilterParseError, isFilterParseError, parseExpression, type StatusCodeSuggestionsOptions, serializeExpression, } from './lib';
5
5
  export type { Condition, ExprNode, FieldMetadata, FieldType, FieldValueOption, FilterInputChipData, FilterInputChipVariant, FilterOperator, Group, } from './types';
@@ -1,5 +1,5 @@
1
1
  import { FilterInput } from "./FilterInput.js";
2
2
  import { FilterInputChip } from "./FilterInputField/index.js";
3
3
  import { FilterInputFieldMenu, FilterInputOperatorMenu, FilterInputValueMenu } from "./FilterInputMenu/index.js";
4
- import { isFilterParseError, parseExpression, serializeExpression } from "./lib/index.js";
5
- export { FilterInput, FilterInputChip, FilterInputFieldMenu, FilterInputOperatorMenu, FilterInputValueMenu, isFilterParseError, parseExpression, serializeExpression };
4
+ import { createStatusCodeSuggestions, isFilterParseError, parseExpression, serializeExpression } from "./lib/index.js";
5
+ export { FilterInput, FilterInputChip, FilterInputFieldMenu, FilterInputOperatorMenu, FilterInputValueMenu, createStatusCodeSuggestions, isFilterParseError, parseExpression, serializeExpression };
@@ -1,12 +1,19 @@
1
1
  import type { FieldMetadata, FieldValueOption } from '../types';
2
2
  /**
3
- * Get normalized value options for a field.
4
- * `values` (full FieldValueOption[]) takes precedence over `options` (string[] shorthand).
5
- * `options` strings are converted to `{ value: s, label: s }`.
3
+ * Get value options for a field.
4
+ * Priority: `getSuggestions(inputText)` > `values` > `options` (converted to `{value, label}`).
6
5
  */
7
- export declare const getFieldValues: (field: FieldMetadata) => FieldValueOption[];
6
+ export declare const getFieldValues: (field: FieldMetadata, inputText?: string) => FieldValueOption[];
8
7
  /**
9
- * Check if a field has predefined values (from `values` or `options`).
10
- * Returns false for freeform fields (`options: []` or no values at all).
8
+ * Check whether a field has a source of value suggestions — dynamic callback, static
9
+ * `values`, or `options`. Used to decide whether to render a value dropdown at all.
10
+ * Fields with `getSuggestions` always get a dropdown (empty list is still a list).
11
11
  */
12
12
  export declare const hasFieldValues: (field: FieldMetadata) => boolean;
13
+ /**
14
+ * Whether the field has an exhaustive static allowlist of accepted values.
15
+ * Used by validation code to decide whether to reject values outside the list.
16
+ * Fields with `getSuggestions` return false — their suggestion list is a hint,
17
+ * not an allowlist (consumer may accept freeform values that aren't currently suggested).
18
+ */
19
+ export declare const hasStaticAllowlist: (field: FieldMetadata) => boolean;
@@ -1,10 +1,20 @@
1
- const getFieldValues = (field)=>{
1
+ const getFieldValues = (field, inputText = '')=>{
2
+ if (field.getSuggestions) return field.getSuggestions(inputText);
2
3
  const fromValues = field.values ?? [];
3
- const fromOptions = field.options?.map((s)=>({
4
+ if (fromValues.length > 0) return fromValues;
5
+ return field.options?.map((s)=>({
4
6
  value: s,
5
7
  label: s
6
8
  })) ?? [];
7
- return fromValues.length > 0 ? fromValues : fromOptions;
8
9
  };
9
- const hasFieldValues = (field)=>getFieldValues(field).length > 0;
10
- export { getFieldValues, hasFieldValues };
10
+ const hasFieldValues = (field)=>{
11
+ if (field.getSuggestions) return true;
12
+ if ((field.values ?? []).length > 0) return true;
13
+ return (field.options?.length ?? 0) > 0;
14
+ };
15
+ const hasStaticAllowlist = (field)=>{
16
+ if (field.getSuggestions) return false;
17
+ if ((field.values?.length ?? 0) > 0) return true;
18
+ return (field.options?.length ?? 0) > 0;
19
+ };
20
+ export { getFieldValues, hasFieldValues, hasStaticAllowlist };
@@ -3,9 +3,10 @@ export { DATE_PRESETS, formatDateForChip, getDateDisplayLabel, isDatePreset, } f
3
3
  export { chipIdToConditionIndex, findChipSplitIndex } from './conditions';
4
4
  export { CONNECTOR_ID_PATTERN, NO_VALUE_OPERATORS, OPERATOR_LABELS, OPERATOR_LABELS_BY_TYPE, OPERATOR_SYMBOLS, OPERATORS_BY_TYPE, QUERY_BAR_SELECTOR, VARIANT_LABELS, } from './constants';
5
5
  export { buildContainerAnchoredRect, isMenuRelated } from './dom';
6
- export { getFieldValues, hasFieldValues } from './fields';
6
+ export { getFieldValues, hasFieldValues, hasStaticAllowlist } from './fields';
7
7
  export { filterAndSort } from './filterSort';
8
8
  export { getValueFilterText } from './menuFilterText';
9
9
  export { getOperatorFromLabel, getOperatorLabel, isBetweenOperator, isMultiSelectOperator, isNoValueOperator, } from './operators';
10
10
  export { type FilterParseError, isFilterParseError, parseExpression } from './parseExpression';
11
11
  export { serializeExpression } from './serializeExpression';
12
+ export { createStatusCodeSuggestions, type StatusCodeSuggestionsOptions, } from './statusCodeSuggestions';
@@ -2,10 +2,11 @@ import { DATE_PRESETS, formatDateForChip, getDateDisplayLabel, isDatePreset } fr
2
2
  import { chipIdToConditionIndex, findChipSplitIndex } from "./conditions.js";
3
3
  import { CONNECTOR_ID_PATTERN, NO_VALUE_OPERATORS, OPERATORS_BY_TYPE, OPERATOR_LABELS, OPERATOR_LABELS_BY_TYPE, OPERATOR_SYMBOLS, QUERY_BAR_SELECTOR, VARIANT_LABELS } from "./constants.js";
4
4
  import { buildContainerAnchoredRect, isMenuRelated } from "./dom.js";
5
- import { getFieldValues, hasFieldValues } from "./fields.js";
5
+ import { getFieldValues, hasFieldValues, hasStaticAllowlist } from "./fields.js";
6
6
  import { filterAndSort } from "./filterSort.js";
7
7
  import { getValueFilterText } from "./menuFilterText.js";
8
8
  import { getOperatorFromLabel, getOperatorLabel, isBetweenOperator, isMultiSelectOperator, isNoValueOperator } from "./operators.js";
9
9
  import { isFilterParseError, parseExpression } from "./parseExpression/index.js";
10
10
  import { serializeExpression } from "./serializeExpression.js";
11
- export { CONNECTOR_ID_PATTERN, DATE_PRESETS, NO_VALUE_OPERATORS, OPERATORS_BY_TYPE, OPERATOR_LABELS, OPERATOR_LABELS_BY_TYPE, OPERATOR_SYMBOLS, QUERY_BAR_SELECTOR, VARIANT_LABELS, buildContainerAnchoredRect, chipIdToConditionIndex, filterAndSort, findChipSplitIndex, formatDateForChip, getDateDisplayLabel, getFieldValues, getOperatorFromLabel, getOperatorLabel, getValueFilterText, hasFieldValues, isBetweenOperator, isDatePreset, isFilterParseError, isMenuRelated, isMultiSelectOperator, isNoValueOperator, parseExpression, serializeExpression };
11
+ import { createStatusCodeSuggestions } from "./statusCodeSuggestions.js";
12
+ export { CONNECTOR_ID_PATTERN, DATE_PRESETS, NO_VALUE_OPERATORS, OPERATORS_BY_TYPE, OPERATOR_LABELS, OPERATOR_LABELS_BY_TYPE, OPERATOR_SYMBOLS, QUERY_BAR_SELECTOR, VARIANT_LABELS, buildContainerAnchoredRect, chipIdToConditionIndex, createStatusCodeSuggestions, filterAndSort, findChipSplitIndex, formatDateForChip, getDateDisplayLabel, getFieldValues, getOperatorFromLabel, getOperatorLabel, getValueFilterText, hasFieldValues, hasStaticAllowlist, isBetweenOperator, isDatePreset, isFilterParseError, isMenuRelated, isMultiSelectOperator, isNoValueOperator, parseExpression, serializeExpression };
@@ -0,0 +1,10 @@
1
+ import type { FieldValueOption } from '../types';
2
+ export interface StatusCodeSuggestionsOptions {
3
+ /**
4
+ * Raw backend status-code list. The helper keeps only 1-char entries in
5
+ * `[1..5]` as mask roots; everything else is ignored. When omitted or empty,
6
+ * the helper returns `[]` for every input.
7
+ */
8
+ codes?: string[];
9
+ }
10
+ export declare const createStatusCodeSuggestions: (options?: StatusCodeSuggestionsOptions) => ((inputText: string) => FieldValueOption[]);
@@ -0,0 +1,45 @@
1
+ const VALID_MASK_ROOTS = new Set([
2
+ '1',
3
+ '2',
4
+ '3',
5
+ '4',
6
+ '5'
7
+ ]);
8
+ const HTTP_CLASS_BADGE_COLOR = {
9
+ 1: 'var(--color-bg-light-success)',
10
+ 2: 'var(--color-bg-success)',
11
+ 3: 'var(--color-bg-info)',
12
+ 4: 'var(--color-bg-warning)',
13
+ 5: 'var(--color-bg-danger)'
14
+ };
15
+ const createStatusCodeSuggestions = (options)=>{
16
+ const maskRoots = (options?.codes ?? []).filter((c)=>1 === c.length && VALID_MASK_ROOTS.has(c));
17
+ const makeMask = (label)=>{
18
+ const color = HTTP_CLASS_BADGE_COLOR[label.charAt(0)];
19
+ if (!color) throw new Error(`statusCodeSuggestions: no badge color for mask "${label}"`);
20
+ return {
21
+ value: label,
22
+ label,
23
+ badge: {
24
+ color,
25
+ text: label
26
+ }
27
+ };
28
+ };
29
+ return (inputText)=>{
30
+ const norm = inputText.trim();
31
+ if (norm.length > 3) return [];
32
+ if (norm.length > 0 && !/^\d+$/.test(norm)) return [];
33
+ if (0 === norm.length) return maskRoots.map((d)=>makeMask(`${d}XX`));
34
+ const d1 = norm.charAt(0);
35
+ if (!maskRoots.includes(d1)) return [];
36
+ if (1 === norm.length) return [
37
+ makeMask(`${norm}XX`)
38
+ ];
39
+ if (2 === norm.length) return [
40
+ makeMask(`${norm}X`)
41
+ ];
42
+ return [];
43
+ };
44
+ };
45
+ export { createStatusCodeSuggestions };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Example HTTP status code backend response used by FilterInput stories.
3
+ * Mixes 1-char HTTP classes with 3-char concrete codes — the same shape the
4
+ * real backend produces. See AS-877 design spec.
5
+ */
6
+ export declare const MOCK_STATUS_CODES: string[];
@@ -0,0 +1,18 @@
1
+ const MOCK_STATUS_CODES = [
2
+ '2',
3
+ '3',
4
+ '4',
5
+ '5',
6
+ '200',
7
+ '201',
8
+ '301',
9
+ '302',
10
+ '400',
11
+ '401',
12
+ '403',
13
+ '404',
14
+ '500',
15
+ '502',
16
+ '503'
17
+ ];
18
+ export { MOCK_STATUS_CODES };
@@ -61,6 +61,13 @@ export interface FieldMetadata {
61
61
  * Empty array `[]` means freeform input — no dropdown, user types any value.
62
62
  */
63
63
  options?: string[];
64
+ /**
65
+ * Optional callback to compute value suggestions dynamically from the current
66
+ * input text. When provided, takes precedence over `values` and `options`.
67
+ * The returned list is still post-filtered by `filterAndSort`, so prefix/includes
68
+ * matching still applies — return items that contain the input text.
69
+ */
70
+ getSuggestions?: (inputText: string) => FieldValueOption[];
64
71
  }
65
72
  /**
66
73
  * Expression Tree Types
@@ -4,12 +4,8 @@ const Activity = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
6
  children: /*#__PURE__*/ jsx("path", {
7
- d: "m22 12-4-4-6 6-2-2-4 4",
8
- stroke: "currentColor",
9
- strokeWidth: "2",
10
- strokeLinecap: "round",
11
- strokeLinejoin: "round",
12
- fill: "none"
7
+ d: "M9 1C9.23668 1 9.46796 1.06686 9.66699 1.19238L9.75 1.25L9.82812 1.31348C9.97922 1.44708 10.096 1.61531 10.168 1.80371L10.2031 1.90918L15 18.9775L16.627 13.1895C16.804 12.5584 17.1834 12.0028 17.7061 11.6074C18.2281 11.2125 18.865 10.9992 19.5195 11H22C22.5523 11 23 11.4477 23 12C23 12.5523 22.5523 13 22 13H19.5176C19.2992 12.9996 19.0863 13.0704 18.9121 13.2021C18.7815 13.301 18.6779 13.4302 18.6094 13.5771L18.5527 13.7305L16.2031 22.0908L16.168 22.1963C16.084 22.416 15.9392 22.6081 15.75 22.75C15.5336 22.9123 15.2705 23 15 23C14.7295 23 14.4664 22.9123 14.25 22.75C14.0608 22.6081 13.916 22.416 13.832 22.1963L13.7969 22.0908L8.99902 5.02148L7.37305 10.8105C7.19669 11.4391 6.81945 11.9925 6.2998 12.3877C5.78012 12.7828 5.14601 12.9981 4.49316 13H2C1.44772 13 1 12.5523 1 12C1 11.4477 1.44772 11 2 11H4.4873C4.70491 10.9993 4.91663 10.9276 5.08984 10.7959C5.26298 10.6642 5.38852 10.479 5.44727 10.2695L7.79688 1.90918L7.83203 1.80371C7.91597 1.58404 8.06078 1.39192 8.25 1.25C8.46637 1.08772 8.72954 1 9 1Z",
8
+ fill: "currentColor"
13
9
  })
14
10
  });
15
11
  Activity.displayName = 'ActivityIcon';
@@ -4,12 +4,8 @@ const ArrowBigUp = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
6
  children: /*#__PURE__*/ jsx("path", {
7
- d: "M9 18v-6H5l7-7 7 7h-4v6H9z",
8
- stroke: "currentColor",
9
- strokeWidth: "2",
10
- strokeLinecap: "round",
11
- strokeLinejoin: "round",
12
- fill: "none"
7
+ d: "M11.3691 4.22462C11.7619 3.90427 12.3409 3.92686 12.707 4.29298L19.707 11.293C19.993 11.579 20.0786 12.0091 19.9238 12.3828C19.769 12.7564 19.4044 13 19 13H16V18C16 18.5523 15.5523 19 15 19H9C8.44772 19 8 18.5523 8 18V13H5C4.59559 13 4.23099 12.7564 4.07617 12.3828C3.92139 12.0091 4.00697 11.579 4.29297 11.293L11.293 4.29298L11.3691 4.22462ZM7.41406 11H9C9.55229 11 10 11.4477 10 12V17H14V12C14 11.4477 14.4477 11 15 11H16.5859L12 6.41407L7.41406 11Z",
8
+ fill: "currentColor"
13
9
  })
14
10
  });
15
11
  ArrowBigUp.displayName = 'ArrowBigUpIcon';
@@ -1,26 +1,12 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import { SvgIcon } from "./SvgIcon.js";
3
- const ArrowBigUpDash = (props)=>/*#__PURE__*/ jsxs(SvgIcon, {
3
+ const ArrowBigUpDash = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
- children: [
7
- /*#__PURE__*/ jsx("path", {
8
- d: "M9 19h6v-6h4l-7-7-7 7h4v6Z",
9
- stroke: "currentColor",
10
- strokeWidth: "2",
11
- strokeLinecap: "round",
12
- strokeLinejoin: "round",
13
- fill: "none"
14
- }),
15
- /*#__PURE__*/ jsx("path", {
16
- d: "M9 22h6",
17
- stroke: "currentColor",
18
- strokeWidth: "2",
19
- strokeLinecap: "round",
20
- strokeLinejoin: "round",
21
- fill: "none"
22
- })
23
- ]
6
+ children: /*#__PURE__*/ jsx("path", {
7
+ d: "M15 18C15.5523 18 16 18.4477 16 19C16 19.5523 15.5523 20 15 20H9C8.44772 20 8 19.5523 8 19C8 18.4477 8.44772 18 9 18H15ZM11.3691 4.22462C11.7619 3.90427 12.3409 3.92686 12.707 4.29298L19.707 11.293C19.993 11.579 20.0786 12.0091 19.9238 12.3828C19.769 12.7564 19.4044 13 19 13H16V15C16 15.5523 15.5523 16 15 16H9C8.44772 16 8 15.5523 8 15V13H5C4.59559 13 4.23099 12.7564 4.07617 12.3828C3.92139 12.0091 4.00697 11.579 4.29297 11.293L11.293 4.29298L11.3691 4.22462ZM7.41406 11H9C9.55229 11 10 11.4477 10 12V14H14V12C14 11.4477 14.4477 11 15 11H16.5859L12 6.41407L7.41406 11Z",
8
+ fill: "currentColor"
9
+ })
24
10
  });
25
11
  ArrowBigUpDash.displayName = 'ArrowBigUpDashIcon';
26
12
  export { ArrowBigUpDash };
@@ -4,12 +4,8 @@ const ArrowDown = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
6
  children: /*#__PURE__*/ jsx("path", {
7
- d: "M12 5v14m7-7-7 7-7-7",
8
- stroke: "currentColor",
9
- strokeWidth: "2",
10
- strokeLinecap: "round",
11
- strokeLinejoin: "round",
12
- fill: "none"
7
+ d: "M11 5C11 4.44772 11.4477 4 12 4C12.5523 4 13 4.44772 13 5V16.5859L18.293 11.293C18.6835 10.9024 19.3165 10.9024 19.707 11.293C20.0976 11.6835 20.0976 12.3165 19.707 12.707L12.707 19.707C12.3165 20.0976 11.6835 20.0976 11.293 19.707L4.29297 12.707C3.90245 12.3165 3.90245 11.6835 4.29297 11.293C4.68349 10.9024 5.31651 10.9024 5.70703 11.293L11 16.5859V5Z",
8
+ fill: "currentColor"
13
9
  })
14
10
  });
15
11
  ArrowDown.displayName = 'ArrowDownIcon';
@@ -1,26 +1,12 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import { SvgIcon } from "./SvgIcon.js";
3
- const ArrowDownLeft = (props)=>/*#__PURE__*/ jsxs(SvgIcon, {
3
+ const ArrowDownLeft = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
- children: [
7
- /*#__PURE__*/ jsx("path", {
8
- d: "M17 7 7 17",
9
- stroke: "currentColor",
10
- strokeWidth: "2",
11
- strokeLinecap: "round",
12
- strokeLinejoin: "round",
13
- fill: "none"
14
- }),
15
- /*#__PURE__*/ jsx("path", {
16
- d: "M17 17H7V7",
17
- stroke: "currentColor",
18
- strokeWidth: "2",
19
- strokeLinecap: "round",
20
- strokeLinejoin: "round",
21
- fill: "none"
22
- })
23
- ]
6
+ children: /*#__PURE__*/ jsx("path", {
7
+ d: "M16.293 6.29297C16.6835 5.90244 17.3165 5.90244 17.707 6.29297C18.0976 6.68349 18.0976 7.31651 17.707 7.70703L9.41406 16H17C17.5523 16 18 16.4477 18 17C18 17.5523 17.5523 18 17 18H7C6.44772 18 6 17.5523 6 17V7C6 6.44772 6.44772 6 7 6C7.55228 6 8 6.44772 8 7V14.5859L16.293 6.29297Z",
8
+ fill: "currentColor"
9
+ })
24
10
  });
25
11
  ArrowDownLeft.displayName = 'ArrowDownLeftIcon';
26
12
  export { ArrowDownLeft };
@@ -1,26 +1,12 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import { SvgIcon } from "./SvgIcon.js";
3
- const ArrowDownRight = (props)=>/*#__PURE__*/ jsxs(SvgIcon, {
3
+ const ArrowDownRight = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
- children: [
7
- /*#__PURE__*/ jsx("path", {
8
- d: "m7 7 10 10",
9
- stroke: "currentColor",
10
- strokeWidth: "2",
11
- strokeLinecap: "round",
12
- strokeLinejoin: "round",
13
- fill: "none"
14
- }),
15
- /*#__PURE__*/ jsx("path", {
16
- d: "M17 7v10H7",
17
- stroke: "currentColor",
18
- strokeWidth: "2",
19
- strokeLinecap: "round",
20
- strokeLinejoin: "round",
21
- fill: "none"
22
- })
23
- ]
6
+ children: /*#__PURE__*/ jsx("path", {
7
+ d: "M6.29297 6.29297C6.68349 5.90244 7.31651 5.90244 7.70703 6.29297L16 14.5859V7C16 6.44772 16.4477 6 17 6C17.5523 6 18 6.44772 18 7V17C18 17.5523 17.5523 18 17 18H7C6.44772 18 6 17.5523 6 17C6 16.4477 6.44772 16 7 16H14.5859L6.29297 7.70703C5.90244 7.31651 5.90244 6.68349 6.29297 6.29297Z",
8
+ fill: "currentColor"
9
+ })
24
10
  });
25
11
  ArrowDownRight.displayName = 'ArrowDownRightIcon';
26
12
  export { ArrowDownRight };
@@ -4,12 +4,8 @@ const ArrowLeft = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
6
  children: /*#__PURE__*/ jsx("path", {
7
- d: "m12 19-7-7 7-7M5 12h14",
8
- stroke: "currentColor",
9
- strokeWidth: "2",
10
- strokeLinecap: "round",
11
- strokeLinejoin: "round",
12
- fill: "none"
7
+ d: "M11.293 4.29295C11.6835 3.90243 12.3165 3.90243 12.707 4.29295C13.0976 4.68348 13.0976 5.31649 12.707 5.70702L7.41406 11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H7.41406L12.707 18.293C13.0976 18.6835 13.0976 19.3165 12.707 19.707C12.3165 20.0975 11.6835 20.0975 11.293 19.707L4.29297 12.707C3.90245 12.3165 3.90245 11.6835 4.29297 11.293L11.293 4.29295Z",
8
+ fill: "currentColor"
13
9
  })
14
10
  });
15
11
  ArrowLeft.displayName = 'ArrowLeftIcon';
@@ -4,12 +4,8 @@ const ArrowRight = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
6
  children: /*#__PURE__*/ jsx("path", {
7
- d: "M5 12h14m-7-7 7 7-7 7",
8
- stroke: "currentColor",
9
- strokeWidth: "2",
10
- strokeLinecap: "round",
11
- strokeLinejoin: "round",
12
- fill: "none"
7
+ d: "M11.293 4.29295C11.6835 3.90243 12.3165 3.90243 12.707 4.29295L19.707 11.293C20.0976 11.6835 20.0976 12.3165 19.707 12.707L12.707 19.707C12.3165 20.0975 11.6835 20.0975 11.293 19.707C10.9024 19.3165 10.9024 18.6835 11.293 18.293L16.5859 13H5C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11H16.5859L11.293 5.70702C10.9024 5.31649 10.9024 4.68348 11.293 4.29295Z",
8
+ fill: "currentColor"
13
9
  })
14
10
  });
15
11
  ArrowRight.displayName = 'ArrowRightIcon';
@@ -4,12 +4,8 @@ const ArrowUp = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
6
  children: /*#__PURE__*/ jsx("path", {
7
- d: "m5 12 7-7 7 7M12 19V5",
8
- stroke: "currentColor",
9
- strokeWidth: "2",
10
- strokeLinecap: "round",
11
- strokeLinejoin: "round",
12
- fill: "none"
7
+ d: "M11 19V7.41407L5.70703 12.707C5.31651 13.0976 4.68349 13.0976 4.29297 12.707C3.90245 12.3165 3.90245 11.6835 4.29297 11.293L11.293 4.29298L11.3691 4.22462C11.7619 3.90427 12.3409 3.92686 12.707 4.29298L19.707 11.293C20.0976 11.6835 20.0976 12.3165 19.707 12.707C19.3165 13.0976 18.6835 13.0976 18.293 12.707L13 7.41407V19C13 19.5523 12.5523 20 12 20C11.4477 20 11 19.5523 11 19Z",
8
+ fill: "currentColor"
13
9
  })
14
10
  });
15
11
  ArrowUp.displayName = 'ArrowUpIcon';
@@ -1,26 +1,12 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import { SvgIcon } from "./SvgIcon.js";
3
- const ArrowUpLeft = (props)=>/*#__PURE__*/ jsxs(SvgIcon, {
3
+ const ArrowUpLeft = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
- children: [
7
- /*#__PURE__*/ jsx("path", {
8
- d: "M17 17 7 7",
9
- stroke: "currentColor",
10
- strokeWidth: "2",
11
- strokeLinecap: "round",
12
- strokeLinejoin: "round",
13
- fill: "none"
14
- }),
15
- /*#__PURE__*/ jsx("path", {
16
- d: "M7 17V7h10",
17
- stroke: "currentColor",
18
- strokeWidth: "2",
19
- strokeLinecap: "round",
20
- strokeLinejoin: "round",
21
- fill: "none"
22
- })
23
- ]
6
+ children: /*#__PURE__*/ jsx("path", {
7
+ d: "M6 17V7C6 6.44772 6.44772 6 7 6H17C17.5523 6 18 6.44772 18 7C18 7.55228 17.5523 8 17 8H9.41406L17.707 16.293C18.0976 16.6835 18.0976 17.3165 17.707 17.707C17.3165 18.0976 16.6835 18.0976 16.293 17.707L8 9.41406V17C8 17.5523 7.55228 18 7 18C6.44772 18 6 17.5523 6 17Z",
8
+ fill: "currentColor"
9
+ })
24
10
  });
25
11
  ArrowUpLeft.displayName = 'ArrowUpLeftIcon';
26
12
  export { ArrowUpLeft };
@@ -4,12 +4,8 @@ const ArrowUpRight = (props)=>/*#__PURE__*/ jsx(SvgIcon, {
4
4
  ...props,
5
5
  viewBox: "0 0 24 24",
6
6
  children: /*#__PURE__*/ jsx("path", {
7
- d: "M7 7h10v10M7 17 17 7",
8
- stroke: "currentColor",
9
- strokeWidth: "2",
10
- strokeLinecap: "round",
11
- strokeLinejoin: "round",
12
- fill: "none"
7
+ d: "M18 17C18 17.5523 17.5523 18 17 18C16.4477 18 16 17.5523 16 17V9.41406L7.70703 17.707C7.31651 18.0976 6.68349 18.0976 6.29297 17.707C5.90244 17.3165 5.90244 16.6835 6.29297 16.293L14.5859 8H7C6.44772 8 6 7.55228 6 7C6 6.44772 6.44772 6 7 6H17C17.5523 6 18 6.44772 18 7V17Z",
8
+ fill: "currentColor"
13
9
  })
14
10
  });
15
11
  ArrowUpRight.displayName = 'ArrowUpRightIcon';