@eightshift/ui-components 0.0.1 → 0.0.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.
Files changed (116) hide show
  1. package/README.md +0 -1
  2. package/dist/Button-eebLs4cp.js +54 -0
  3. package/dist/{Checkbox-BLcVbhiO.js → Checkbox-BN0TEda-.js} +7 -7
  4. package/dist/{ColorSwatch-Cmlex_kT.js → ColorSwatch-BrowHhTG.js} +4 -4
  5. package/dist/{FieldError-wtMA4667.js → FieldError-ILxgMZy5.js} +2 -2
  6. package/dist/{FocusScope-1u9yyfIN.js → FocusScope-B9b0VMib.js} +2 -2
  7. package/dist/GeistMonoVF.woff2 +0 -0
  8. package/dist/GeistVF.woff2 +0 -0
  9. package/dist/{GridList-BZPXp3_O.js → GridList-CzpWxJsS.js} +18 -18
  10. package/dist/{Group-DyqpTRPe.js → Group-Dkdm2-E7.js} +3 -3
  11. package/dist/{Input-jsbb4ugq.js → Input-BJA4rmIo.js} +7 -7
  12. package/dist/{Label-BPzS-sR7.js → Label-9x5iLJ-Y.js} +1 -1
  13. package/dist/{ListBox-w9gDaJkV.js → ListBox-D3Vr4vvC.js} +18 -18
  14. package/dist/{Select-49a62830.esm-C-RFtLiD.js → Select-49a62830.esm-CKPmlkza.js} +1 -1
  15. package/dist/{SelectionManager-mefd0ThJ.js → SelectionManager-sedvcM-1.js} +8 -8
  16. package/dist/{Separator-DHn0CwdK.js → Separator-B6rnDabE.js} +3 -3
  17. package/dist/{Slider-Pyh2V4bY.js → Slider-C5U5N7uM.js} +11 -11
  18. package/dist/{Text-BM136LvS.js → Text-Cyxp9ewv.js} +1 -1
  19. package/dist/{VisuallyHidden-BYRI1Lfo.js → VisuallyHidden-BPJVSUyp.js} +2 -2
  20. package/dist/_commonjsHelpers-DWwsNxpa.js +8 -0
  21. package/dist/assets/fonts.css +1 -0
  22. package/dist/assets/style.css +1 -1
  23. package/dist/assets/wp.css +1 -0
  24. package/dist/{button-BkkdyHfJ.js → button-idVI4jmd.js} +45 -64
  25. package/dist/components/base-control/base-control.js +29 -39
  26. package/dist/components/breakpoint-preview/breakpoint-preview.js +7 -7
  27. package/dist/components/button/button.js +6 -5
  28. package/dist/components/checkbox/checkbox.js +9 -7
  29. package/dist/components/color-pickers/color-picker.js +27 -36
  30. package/dist/components/color-pickers/color-swatch.js +6 -6
  31. package/dist/components/color-pickers/gradient-editor.js +10 -6
  32. package/dist/components/color-pickers/solid-color-picker.js +35 -38
  33. package/dist/components/component-toggle/component-toggle.js +52 -6
  34. package/dist/components/container-panel/container-panel.js +55 -6
  35. package/dist/components/draggable-list/draggable-list-item.js +74 -0
  36. package/dist/components/draggable-list/draggable-list.js +157 -0
  37. package/dist/components/expandable/expandable.js +19 -12
  38. package/dist/components/input-field/input-field.js +15 -10
  39. package/dist/components/layout/hstack.js +40 -0
  40. package/dist/components/layout/vstack.js +40 -0
  41. package/dist/components/link-input/link-input.js +35 -31
  42. package/dist/components/list-box/list-box.js +11 -6
  43. package/dist/components/matrix-align/matrix-align.js +12 -7
  44. package/dist/components/menu/menu.js +26 -21
  45. package/dist/components/notice/notice.js +11 -7
  46. package/dist/components/number-picker/number-picker.js +19 -13
  47. package/dist/components/option-select/option-select.js +231 -0
  48. package/dist/components/placeholders/file-placeholder.js +53 -0
  49. package/dist/components/placeholders/image-placeholder.js +88 -0
  50. package/dist/components/placeholders/media-placeholder.js +62 -0
  51. package/dist/components/popover/popover.js +4 -4
  52. package/dist/components/radio/radio.js +56 -38
  53. package/dist/components/repeater/repeater-item.js +46 -39
  54. package/dist/components/repeater/repeater.js +83 -56
  55. package/dist/components/responsive/responsive-legacy.js +17 -12
  56. package/dist/components/responsive/responsive.js +227 -160
  57. package/dist/components/responsive-preview/responsive-preview.js +5 -3
  58. package/dist/components/rich-label/rich-label.js +12 -8
  59. package/dist/components/select/async-multi-select.js +9 -6
  60. package/dist/components/select/async-single-select.js +7 -2
  61. package/dist/components/select/custom-select-default-components.js +3 -3
  62. package/dist/components/select/multi-select-components.js +2 -2
  63. package/dist/components/select/multi-select.js +9 -6
  64. package/dist/components/select/react-select-component-wrappers.js +1 -1
  65. package/dist/components/select/single-select.js +7 -2
  66. package/dist/components/select/styles.js +4 -4
  67. package/dist/components/slider/column-config-slider.js +18 -34
  68. package/dist/components/slider/slider.js +19 -26
  69. package/dist/components/slider/utils.js +44 -1
  70. package/dist/components/spacer/spacer.js +21 -11
  71. package/dist/components/tabs/tabs.js +21 -20
  72. package/dist/components/toggle/switch.js +18 -12
  73. package/dist/components/toggle/toggle.js +8 -2
  74. package/dist/components/toggle-button/toggle-button.js +25 -13
  75. package/dist/components/tooltip/tooltip.js +4 -4
  76. package/dist/{context-jMy6xdVq.js → context-BAcFg5GO.js} +1 -1
  77. package/dist/{default-i18n-BhE-OUmt.js → default-i18n-Bk1GxDHz.js} +1 -1
  78. package/dist/{focusSafely-C3K8zAKj.js → focusSafely-B0hyd-S4.js} +1 -1
  79. package/dist/fonts.js +1 -0
  80. package/dist/icons/icons.js +184 -164
  81. package/dist/icons/jsx-svg.js +4957 -0
  82. package/dist/{index-Bfb9bWcb.js → index-BDk0TPWz.js} +1 -1
  83. package/dist/{index-a301f526.esm-Bioi4cGX.js → index-a301f526.esm-BzTuHLdr.js} +1 -1
  84. package/dist/index.js +30 -4
  85. package/dist/{intlStrings-CUhoK9EN.js → intlStrings-Ctkp0HDc.js} +1 -1
  86. package/dist/lite-pbIeT7tm.js +8 -0
  87. package/dist/{multi-select-components-CjVpCNko.js → multi-select-components-nORKdJ-2.js} +3 -3
  88. package/dist/{popover-Dx3vKXUX.js → popover-o2Q28Ljn.js} +19 -14
  89. package/dist/{react-select-async.esm-TFb_ZX6C.js → react-select-async.esm-CLj9uZTq.js} +3 -3
  90. package/dist/{react-select.esm-BjRWqf0E.js → react-select.esm-3tyTZmrx.js} +3 -3
  91. package/dist/{textSelection-BosCCRVE.js → textSelection-BRZdHY-4.js} +1 -1
  92. package/dist/{tooltip-CkCndvTI.js → tooltip-T6H9uF-Z.js} +10 -10
  93. package/dist/{useButton-CuG5UzUw.js → useButton-D-xACzEY.js} +3 -3
  94. package/dist/{useEvent-DHv-yhOH.js → useEvent-XlYPKgwX.js} +1 -1
  95. package/dist/{useFocusRing-Cc-4eouh.js → useFocusRing-CRx_hYC4.js} +1 -1
  96. package/dist/{useFocusable-5q1Gek1J.js → useFocusable-CHfpEdlE.js} +2 -2
  97. package/dist/{useFormReset-Buc9YJcv.js → useFormReset-aHn6-wRk.js} +1 -1
  98. package/dist/{useFormValidationState-BAPPNXic.js → useFormValidationState-CdYmOaXI.js} +2 -2
  99. package/dist/{useHasTabbableChild-D3uUNhJ0.js → useHasTabbableChild-domoFB7A.js} +2 -2
  100. package/dist/{useLabel-CGlkoFG0.js → useLabel-DVhXVhtH.js} +2 -2
  101. package/dist/{useLabels-Dg62M_3P.js → useLabels-C7E5SkOi.js} +1 -1
  102. package/dist/{useListState-Domq0blV.js → useListState-BRsq7O1C.js} +1 -1
  103. package/dist/{useLocalizedStringFormatter-Prmz0h0A.js → useLocalizedStringFormatter-WsEL47qR.js} +1 -1
  104. package/dist/{useNumberFieldState-BLU3uhSR.js → useNumberFieldState-ZH2Qyyxh.js} +9 -9
  105. package/dist/{useNumberFormatter-BLc2xjZn.js → useNumberFormatter-mhdYLxWQ.js} +1 -1
  106. package/dist/{usePress-BQgVor4T.js → usePress-B42RawCH.js} +3 -3
  107. package/dist/{useToggle-C9ETOBaZ.js → useToggle-CExfZM8x.js} +4 -4
  108. package/dist/{useToggleState-DJ_z5E2S.js → useToggleState-DghG5ImG.js} +1 -1
  109. package/dist/utilities/array-helpers.js +30 -0
  110. package/dist/utilities/index.js +8 -0
  111. package/dist/utilities/text-helpers.js +30 -4
  112. package/dist/{utils-BsiH7-5Y.js → utils-DIBzm1e4.js} +1 -1
  113. package/dist/wp.js +1 -0
  114. package/package.json +11 -4
  115. package/dist/_commonjsHelpers-CUmg6egw.js +0 -6
  116. package/dist/utilities/classnames.js +0 -16
@@ -1,5 +1,5 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { classnames } from "../../utilities/classnames.js";
2
+ import { c as clsx } from "../../lite-pbIeT7tm.js";
3
3
  /**
4
4
  * Component that displays a label, with an optional icon and subtitle.
5
5
  *
@@ -12,6 +12,7 @@ import { classnames } from "../../utilities/classnames.js";
12
12
  * @param {string} [props.className] - Classes to pass to the label.
13
13
  * @param {boolean} [props.fullWidth=false] - If `true`, the component will take up as much space as it can.
14
14
  * @param {boolean} [props.contentsOnly] - If `true`, only the label (/icon/subtitle) will be rendered, without any wrapping elements. Useful if you want to provide your own layout.
15
+ * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
15
16
  *
16
17
  * @returns {JSX.Element} The RichLabel component.
17
18
  *
@@ -24,28 +25,31 @@ import { classnames } from "../../utilities/classnames.js";
24
25
  * @preserve
25
26
  */
26
27
  const RichLabel = (props) => {
27
- const { icon, label, subtitle, as, className, fullWidth = false, contentsOnly } = props;
28
+ const { icon, label, subtitle, as, className, fullWidth = false, contentsOnly, hidden } = props;
29
+ if (hidden) {
30
+ return null;
31
+ }
28
32
  const ComponentToRender = as ?? "div";
29
33
  if (contentsOnly) {
30
34
  return /* @__PURE__ */ jsxs(Fragment, { children: [
31
35
  icon && /* @__PURE__ */ jsx("span", { className: "es-uic-text-slate-500 [&>svg]:es-uic-size-5.5", children: icon }),
32
36
  label && /* @__PURE__ */ jsx("span", { className: "es-uic-text-balance", children: label }),
33
- subtitle && /* @__PURE__ */ jsx("span", { className: "es-uic-text-xs es-uic-text-gray-500 es-uic-text-balance", children: subtitle })
37
+ subtitle && /* @__PURE__ */ jsx("span", { className: "es-uic-text-balance es-uic-text-xs es-uic-text-gray-500 es-uic-opacity-60", children: subtitle })
34
38
  ] });
35
39
  }
36
40
  return /* @__PURE__ */ jsxs(
37
41
  ComponentToRender,
38
42
  {
39
- className: classnames(
40
- "es-uic-flex es-uic-items-center es-uic-gap-1.5 es-uic-text-sm es-uic-leading-tight es-uic-text-gray-800",
43
+ className: clsx(
44
+ "es-uic-flex es-uic-items-center es-uic-gap-1.5 es-uic-text-sm es-uic-text-gray-800 [&>span>svg]:es-uic-text-slate-500",
41
45
  fullWidth && "es-uic-grow",
42
46
  className
43
47
  ),
44
48
  children: [
45
- icon && /* @__PURE__ */ jsx("span", { className: "es-uic-text-slate-500 [&>svg]:es-uic-size-5.5", children: icon }),
46
- (label || subtitle) && /* @__PURE__ */ jsxs("div", { className: "es-uic-flex es-uic-flex-col es-uic-items-start es-uic-text-start es-uic-text-balance", children: [
49
+ icon && /* @__PURE__ */ jsx("span", { className: "[&>svg]:es-uic-size-5.5", children: icon }),
50
+ (label || subtitle) && /* @__PURE__ */ jsxs("div", { className: "es-uic-flex es-uic-flex-col es-uic-items-start es-uic-text-balance es-uic-text-start", children: [
47
51
  label && /* @__PURE__ */ jsx("span", { children: label }),
48
- subtitle && /* @__PURE__ */ jsx("span", { className: "es-uic-text-xs es-uic-text-gray-500", children: subtitle })
52
+ subtitle && /* @__PURE__ */ jsx("span", { className: "es-uic-text-xs es-uic-opacity-60", children: subtitle })
49
53
  ] })
50
54
  ]
51
55
  }
@@ -1,11 +1,11 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { A as AsyncSelect$1 } from "../../react-select-async.esm-TFb_ZX6C.js";
3
- import { D as DndContext, g as getDragEndHandler, S as SortableContext, a as getMultiValue, b as getMultiValueRemove } from "../../multi-select-components-CjVpCNko.js";
2
+ import { A as AsyncSelect$1 } from "../../react-select-async.esm-CLj9uZTq.js";
3
+ import { D as DndContext, g as getDragEndHandler, S as SortableContext, a as getMultiValue, b as getMultiValueRemove } from "../../multi-select-components-nORKdJ-2.js";
4
4
  import { r as restrictToParentElement } from "../../modifiers.esm-BuJQPI1X.js";
5
5
  import { CustomSelectDefaultMultiValueRemove, CustomSelectDefaultDropdownIndicator, CustomSelectDefaultClearIndicator } from "./custom-select-default-components.js";
6
6
  import { BaseControl } from "../base-control/base-control.js";
7
7
  import { eightshiftSelectClasses } from "./styles.js";
8
- import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
8
+ import { c as components } from "../../index-a301f526.esm-BzTuHLdr.js";
9
9
  /**
10
10
  * Multi-select menu with async loading and re-ordering.
11
11
  *
@@ -34,6 +34,7 @@ import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
34
34
  * @param {JSX.Element} [props.customValueContainer] - If provided, replaces the default items container component (react-select's `components.MultiValueContainer`).
35
35
  * @param {Function} [props.processLoadedOptions] - Allows modifying (filtering, grouping, ...) options output after the items have been dynamically fetched. Must include `label`, `value`, and `id` keys in the output, additional fields can be added as required.
36
36
  * @param {string} [props.className] - Classes to pass to the select menu.
37
+ * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
37
38
  *
38
39
  * @returns {JSX.Element} The AsyncMultiSelect component.
39
40
  *
@@ -84,8 +85,12 @@ const AsyncMultiSelect = (props) => {
84
85
  customValueContainer,
85
86
  customClearIndicator,
86
87
  processLoadedOptions = (options) => options,
88
+ hidden,
87
89
  ...additionalProps
88
90
  } = props;
91
+ if (hidden) {
92
+ return null;
93
+ }
89
94
  const customLoadOptions = async (searchText) => {
90
95
  const results = await loadOptions(searchText);
91
96
  return processLoadedOptions((results == null ? void 0 : results.map((item) => ({ id: item.value, ...item }))) ?? []);
@@ -123,9 +128,7 @@ const AsyncMultiSelect = (props) => {
123
128
  components: {
124
129
  MultiValue: getMultiValue(customValueDisplay ?? components.MultiValue),
125
130
  MultiValueContainer: customValueContainer ?? components.MultiValueContainer,
126
- MultiValueRemove: getMultiValueRemove(
127
- customValueRemove ?? CustomSelectDefaultMultiValueRemove
128
- ),
131
+ MultiValueRemove: getMultiValueRemove(customValueRemove ?? CustomSelectDefaultMultiValueRemove),
129
132
  Option: customMenuOption ?? components.Option,
130
133
  IndicatorSeparator: null,
131
134
  DropdownIndicator: customDropdownArrow ?? CustomSelectDefaultDropdownIndicator,
@@ -1,9 +1,9 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { A as AsyncSelect$1 } from "../../react-select-async.esm-TFb_ZX6C.js";
2
+ import { A as AsyncSelect$1 } from "../../react-select-async.esm-CLj9uZTq.js";
3
3
  import { CustomSelectDefaultDropdownIndicator, CustomSelectDefaultClearIndicator } from "./custom-select-default-components.js";
4
4
  import { BaseControl } from "../base-control/base-control.js";
5
5
  import { eightshiftSelectClasses } from "./styles.js";
6
- import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
6
+ import { c as components } from "../../index-a301f526.esm-BzTuHLdr.js";
7
7
  /**
8
8
  * Select menu with async loading.
9
9
  *
@@ -30,6 +30,7 @@ import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
30
30
  * @param {JSX.Element} [props.customValueDisplay] - If provided, replaces the default current value display of each selected item (react-select's `components.SingleValue`).
31
31
  * @param {Function} [props.processLoadedOptions] - Allows modifying (filtering, grouping, ...) options output after the items have been dynamically fetched. Must include `label`, `value`, and `id` keys in the output, additional fields can be added as required.
32
32
  * @param {string} props.className - Classes to pass to the select menu.
33
+ * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
33
34
  *
34
35
  * @returns {JSX.Element} The AsyncSelect component.
35
36
  *
@@ -78,8 +79,12 @@ const AsyncSelect = (props) => {
78
79
  customDropdownArrow,
79
80
  customClearIndicator,
80
81
  processLoadedOptions = (options) => options,
82
+ hidden,
81
83
  ...additionalProps
82
84
  } = props;
85
+ if (hidden) {
86
+ return null;
87
+ }
83
88
  const customLoadOptions = async (searchText) => {
84
89
  const results = await loadOptions(searchText);
85
90
  return processLoadedOptions((results == null ? void 0 : results.map((item) => ({ id: item.value, ...item }))) ?? []);
@@ -1,8 +1,8 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React__default from "react";
3
3
  import { icons } from "../../icons/icons.js";
4
- import { classnames } from "../../utilities/classnames.js";
5
- import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
4
+ import { c as clsx } from "../../lite-pbIeT7tm.js";
5
+ import { c as components } from "../../index-a301f526.esm-BzTuHLdr.js";
6
6
  /**
7
7
  * Default dropdown indicator for CustomSelect.
8
8
  *
@@ -12,7 +12,7 @@ import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
12
12
  */
13
13
  const CustomSelectDefaultDropdownIndicator = (props) => {
14
14
  return /* @__PURE__ */ jsx(components.DropdownIndicator, { ...props, children: React__default.cloneElement(icons.dropdownCaretAlt, {
15
- className: classnames(props.selectProps.menuIsOpen && "-es-uic-scale-y-100 ")
15
+ className: clsx(props.selectProps.menuIsOpen && "-es-uic-scale-y-100 ")
16
16
  }) });
17
17
  };
18
18
  /**
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
- import { g, a, b } from "../../multi-select-components-CjVpCNko.js";
3
- import "../../utilities/classnames.js";
2
+ import { g, a, b } from "../../multi-select-components-nORKdJ-2.js";
3
+ import "../../lite-pbIeT7tm.js";
4
4
  export {
5
5
  g as getDragEndHandler,
6
6
  a as getMultiValue,
@@ -1,12 +1,12 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { S as StateManagedSelect$1 } from "../../react-select.esm-BjRWqf0E.js";
3
- import { D as DndContext, g as getDragEndHandler, S as SortableContext, a as getMultiValue, b as getMultiValueRemove } from "../../multi-select-components-CjVpCNko.js";
2
+ import { S as StateManagedSelect$1 } from "../../react-select.esm-3tyTZmrx.js";
3
+ import { D as DndContext, g as getDragEndHandler, S as SortableContext, a as getMultiValue, b as getMultiValueRemove } from "../../multi-select-components-nORKdJ-2.js";
4
4
  import { r as restrictToParentElement } from "../../modifiers.esm-BuJQPI1X.js";
5
5
  import { CustomSelectDefaultMultiValueRemove, CustomSelectDefaultDropdownIndicator, CustomSelectDefaultClearIndicator } from "./custom-select-default-components.js";
6
6
  import { getValue, customOnChange } from "./shared.js";
7
7
  import { BaseControl } from "../base-control/base-control.js";
8
8
  import { eightshiftSelectClasses } from "./styles.js";
9
- import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
9
+ import { c as components } from "../../index-a301f526.esm-BzTuHLdr.js";
10
10
  /**
11
11
  * Multi-select menu with re-orderable items.
12
12
  *
@@ -34,6 +34,7 @@ import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
34
34
  * @param {JSX.Element} [props.customValueRemove] - If provided, replaces the default item remove button (react-select's `components.MultiValueRemove`.
35
35
  * @param {JSX.Element} [props.customValueContainer] - If provided, replaces the default items container component (react-select's `components.MultiValueContainer`).
36
36
  * @param {string} [props.className] - Classes to pass to the select menu.
37
+ * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
37
38
  *
38
39
  * @returns {JSX.Element} The MultiSelect component.
39
40
  *
@@ -79,8 +80,12 @@ const MultiSelect = (props) => {
79
80
  customValueRemove,
80
81
  customValueContainer,
81
82
  className,
83
+ hidden,
82
84
  ...additionalProps
83
85
  } = props;
86
+ if (hidden) {
87
+ return null;
88
+ }
84
89
  return /* @__PURE__ */ jsx(
85
90
  BaseControl,
86
91
  {
@@ -113,9 +118,7 @@ const MultiSelect = (props) => {
113
118
  components: {
114
119
  MultiValue: getMultiValue(customValueDisplay ?? components.MultiValue),
115
120
  MultiValueContainer: customValueContainer ?? components.MultiValueContainer,
116
- MultiValueRemove: getMultiValueRemove(
117
- customValueRemove ?? CustomSelectDefaultMultiValueRemove
118
- ),
121
+ MultiValueRemove: getMultiValueRemove(customValueRemove ?? CustomSelectDefaultMultiValueRemove),
119
122
  Option: customMenuOption ?? components.Option,
120
123
  IndicatorSeparator: null,
121
124
  DropdownIndicator: customDropdownArrow ?? CustomSelectDefaultDropdownIndicator,
@@ -1,5 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
2
+ import { c as components } from "../../index-a301f526.esm-BzTuHLdr.js";
3
3
  /**
4
4
  * Custom dropdown indicator for CustomSelect.
5
5
  *
@@ -1,10 +1,10 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { S as StateManagedSelect$1 } from "../../react-select.esm-BjRWqf0E.js";
2
+ import { S as StateManagedSelect$1 } from "../../react-select.esm-3tyTZmrx.js";
3
3
  import { CustomSelectDefaultDropdownIndicator, CustomSelectDefaultClearIndicator } from "./custom-select-default-components.js";
4
4
  import { getValue, customOnChange } from "./shared.js";
5
5
  import { BaseControl } from "../base-control/base-control.js";
6
6
  import { eightshiftSelectClasses } from "./styles.js";
7
- import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
7
+ import { c as components } from "../../index-a301f526.esm-BzTuHLdr.js";
8
8
  /**
9
9
  * Select menu.
10
10
  *
@@ -30,6 +30,7 @@ import { c as components } from "../../index-a301f526.esm-Bioi4cGX.js";
30
30
  * @param {JSX.Element} [props.customDropdownArrow] - If provided, replaces the default dropdown arrow indicator.
31
31
  * @param {JSX.Element} [props.customClearIndicator] - If provided, replaces the default 'Clear all' button.
32
32
  * @param {string} [props.className] - Classes to pass to the select menu.
33
+ * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
33
34
  *
34
35
  * @returns {JSX.Element} The Select component.
35
36
  *
@@ -73,8 +74,12 @@ const Select = (props) => {
73
74
  customDropdownArrow,
74
75
  customClearIndicator,
75
76
  className,
77
+ hidden,
76
78
  ...additionalProps
77
79
  } = props;
80
+ if (hidden) {
81
+ return null;
82
+ }
78
83
  return /* @__PURE__ */ jsx(
79
84
  BaseControl,
80
85
  {
@@ -1,4 +1,4 @@
1
- import { classnames } from "../../utilities/classnames.js";
1
+ import { c as clsx } from "../../lite-pbIeT7tm.js";
2
2
  const controlStyles = {
3
3
  base: "es-uic-border es-uic-rounded-md es-uic-bg-white es-uic-text-sm es-uic-transition es-uic-group es-uic-shadow-sm !es-uic-min-h-10",
4
4
  focus: "es-uic-ring es-uic-ring-teal-500 es-uic-ring-opacity-50",
@@ -8,7 +8,7 @@ const placeholderStyles = "es-uic-text-gray-400 es-uic-ml-0.5";
8
8
  const selectInputStyles = "focus:es-uic-outline-none [&_input]:!es-uic-shadow-none [&_input:focus]:!es-uic-shadow-none";
9
9
  const valueContainerStyles = "es-uic-gap-1 es-uic-ml-1 !es-uic-overflow-visible";
10
10
  const singleValueStyles = "es-uic-ml-0.5";
11
- const multiValueStyles = classnames(
11
+ const multiValueStyles = clsx(
12
12
  "es-uic-bg-gray-100 es-uic-rounded es-uic-p-1 es-uic-border es-uic-border-gray-100 es-uic-hover:border-gray-300 es-uic-items-center es-uic-gap-1.5 es-uic-transition es-uic-overflow-visible",
13
13
  "[:focus-visible_&]:es-uic-outline-none [:focus-visible_&]:es-uic-ring",
14
14
  "[:focus-visible_&]:es-uic-ring-teal-500 [:focus-visible_&]:es-uic-ring-opacity-50"
@@ -28,7 +28,7 @@ const groupHeadingStyles = "es-uic-ml-3 es-uic-mt-2 es-uic-text-gray-500 es-uic-
28
28
  const groupStyles = "es-uic-border-b last:es-uic-border-b-0";
29
29
  const eightshiftSelectClasses = {
30
30
  clearIndicator: () => clearIndicatorStyles,
31
- control: ({ isFocused }) => classnames(
31
+ control: ({ isFocused }) => clsx(
32
32
  isFocused ? controlStyles.focus : controlStyles.nonFocus,
33
33
  controlStyles.base
34
34
  ),
@@ -41,7 +41,7 @@ const eightshiftSelectClasses = {
41
41
  multiValueLabel: () => multiValueLabelStyles,
42
42
  multiValueRemove: () => multiValueRemoveStyles,
43
43
  noOptionsMessage: () => noOptionsMessageStyles,
44
- option: ({ isFocused, isSelected }) => classnames(
44
+ option: ({ isFocused, isSelected }) => clsx(
45
45
  isFocused && optionStyles.focus,
46
46
  isSelected && optionStyles.selected,
47
47
  optionStyles.base
@@ -1,10 +1,11 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-BPzS-sR7.js";
3
- import { $ as $6f909507e6374d18$export$472062a354075cee, a as $6f909507e6374d18$export$105594979f116971, b as $6f909507e6374d18$export$2c1b491743890dec, c as $6f909507e6374d18$export$a590f758a961cb5b } from "../../Slider-Pyh2V4bY.js";
2
+ import { _ as __ } from "../../default-i18n-Bk1GxDHz.js";
3
+ import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-9x5iLJ-Y.js";
4
+ import { $ as $6f909507e6374d18$export$472062a354075cee, a as $6f909507e6374d18$export$105594979f116971, b as $6f909507e6374d18$export$2c1b491743890dec, c as $6f909507e6374d18$export$a590f758a961cb5b } from "../../Slider-C5U5N7uM.js";
4
5
  import { BaseControl } from "../base-control/base-control.js";
5
- import { classnames } from "../../utilities/classnames.js";
6
- import { _ as __, s as sprintf, a as _n } from "../../default-i18n-BhE-OUmt.js";
7
6
  import { icons } from "../../icons/icons.js";
7
+ import { getColumnConfigOutputText } from "./utils.js";
8
+ import { c as clsx } from "../../lite-pbIeT7tm.js";
8
9
  /**
9
10
  * A two-thumb slider for selecting a range of columns.
10
11
  *
@@ -24,6 +25,7 @@ import { icons } from "../../icons/icons.js";
24
25
  * @param {Function} props.onChangeEnd - Function to run when the value change ends.
25
26
  * @param {boolean} [props.disabled] - If `true`, the slider is disabled.
26
27
  * @param {string} [props.labelClassName] - Additional classes to pass to the label.
28
+ * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
27
29
  *
28
30
  * @returns {JSX.Element} The ColumnConfigSlider component.
29
31
  *
@@ -52,8 +54,12 @@ const ColumnConfigSlider = (props) => {
52
54
  onChangeEnd,
53
55
  disabled,
54
56
  labelClassName,
57
+ hidden,
55
58
  ...other
56
59
  } = props;
60
+ if (hidden) {
61
+ return null;
62
+ }
57
63
  const markerData = [...Array(columns).keys()];
58
64
  const thumbLabels = [__("Offset", "eightshift-ui-components"), __("Width", "eightshift-ui-components")];
59
65
  return /* @__PURE__ */ jsx(
@@ -66,7 +72,7 @@ const ColumnConfigSlider = (props) => {
66
72
  step: 1,
67
73
  isDisabled: disabled,
68
74
  orientation: "horizontal",
69
- className: "es-uic-w-full es-uic-pb-3.5",
75
+ className: "es-uic-w-full",
70
76
  onChangeEnd,
71
77
  ...other,
72
78
  children: /* @__PURE__ */ jsx(
@@ -93,7 +99,7 @@ const ColumnConfigSlider = (props) => {
93
99
  /* @__PURE__ */ jsx(
94
100
  "div",
95
101
  {
96
- className: classnames(
102
+ className: clsx(
97
103
  "es-uic-col-span-full es-uic-row-span-1 es-uic-row-start-1 es-uic-h-full es-uic-w-full es-uic-grow es-uic-rounded-md es-uic-border",
98
104
  disabled ? "es-uic-border-gray-200 es-uic-bg-white" : "es-uic-border-gray-300 es-uic-bg-gray-50 es-uic-shadow-sm"
99
105
  )
@@ -102,7 +108,7 @@ const ColumnConfigSlider = (props) => {
102
108
  markerData.slice(0, -1).map((marker) => /* @__PURE__ */ jsx(
103
109
  "div",
104
110
  {
105
- className: classnames(
111
+ className: clsx(
106
112
  "es-uic-row-span-1 es-uic-row-start-1 es-uic-h-full es-uic-w-px es-uic-justify-self-center",
107
113
  marker >= value[0] - 1 && marker < value[1] ? "es-uic-bg-teal-700/25" : "es-uic-bg-gray-300",
108
114
  (marker === value[0] - 2 || marker === value[1] - 1) && "es-uic-hidden"
@@ -114,7 +120,7 @@ const ColumnConfigSlider = (props) => {
114
120
  /* @__PURE__ */ jsx(
115
121
  "div",
116
122
  {
117
- className: classnames(
123
+ className: clsx(
118
124
  "es-uic-pointer-events-none es-uic-col-start-1 es-uic-row-start-1 es-uic-border",
119
125
  "es-uic-h-full es-uic-w-full es-uic-self-center es-uic-rounded-md",
120
126
  disabled ? "es-uic-border-gray-200 es-uic-bg-gray-50" : "es-uic-border-teal-500 es-uic-bg-teal-500/30"
@@ -128,7 +134,7 @@ const ColumnConfigSlider = (props) => {
128
134
  return /* @__PURE__ */ jsxs(
129
135
  "span",
130
136
  {
131
- className: classnames(
137
+ className: clsx(
132
138
  "es-uic-row-span-1 es-uic-row-start-1 es-uic-select-none es-uic-place-self-center es-uic-text-xs es-uic-transition-colors",
133
139
  "es-uic-inset-y-0 es-uic-my-auto es-uic-h-fit es-uic-pl-px es-uic-text-center",
134
140
  "[&>svg]:es-uic-size-3 [&>svg]:es-uic-stroke-[1.5]",
@@ -151,7 +157,7 @@ const ColumnConfigSlider = (props) => {
151
157
  index: i,
152
158
  "aria-label": thumbLabels == null ? void 0 : thumbLabels[i],
153
159
  isDisabled: i === 0 && disableOffset || i === 1 && disableWidth,
154
- className: classnames(
160
+ className: clsx(
155
161
  "!es-uic-static es-uic-row-span-1 es-uic-row-start-1 es-uic-h-6 es-uic-w-1.5 es-uic-rounded-full es-uic-border es-uic-transition es-uic-duration-300",
156
162
  i === 0 && "!-es-uic-translate-x-1/2 !es-uic-translate-y-0 es-uic-self-center es-uic-justify-self-start",
157
163
  i === 1 && "!es-uic-translate-x-1/2 !es-uic-translate-y-0 es-uic-self-center es-uic-justify-self-end",
@@ -190,34 +196,12 @@ const ColumnConfigSlider = (props) => {
190
196
  *
191
197
  * @preserve
192
198
  */
193
- const ColumnConfigSliderOutput = ({ showOuterAsGutter }) => /* @__PURE__ */ jsx($6f909507e6374d18$export$a590f758a961cb5b, { className: classnames("es-uic-text-xs es-uic-tabular-nums es-uic-text-gray-600"), children: ({ state }) => {
199
+ const ColumnConfigSliderOutput = ({ showOuterAsGutter }) => /* @__PURE__ */ jsx($6f909507e6374d18$export$a590f758a961cb5b, { className: clsx("es-uic-text-xs es-uic-tabular-nums es-uic-text-gray-600"), children: ({ state }) => {
194
200
  const columns = state.getThumbMaxValue(1);
195
201
  const offset = parseInt(state.getThumbValueLabel(0));
196
202
  const endOffset = parseInt(state.getThumbValueLabel(1));
197
203
  const width = endOffset - offset + 1;
198
- if (offset === 1 && endOffset === columns) {
199
- return __("Full-width", "eightshift-ui-components");
200
- }
201
- if (offset === 1 && endOffset < columns) {
202
- return sprintf(__("To col %d", "eightshift-ui-components"), showOuterAsGutter ? endOffset - 1 : endOffset);
203
- }
204
- if (offset > 1 && endOffset === columns) {
205
- return sprintf(__("From col %d", "eightshift-ui-components"), showOuterAsGutter ? offset - 1 : offset);
206
- }
207
- if (showOuterAsGutter && width === 1 && offset === 1) {
208
- return __("Start gutter", "eightshift-ui-components");
209
- }
210
- if (showOuterAsGutter && endOffset === columns) {
211
- return __("Start gutter", "eightshift-ui-components");
212
- }
213
- if (width === 1) {
214
- return sprintf(__("Col %d", "eightshift-ui-components"), offset);
215
- }
216
- return sprintf(
217
- _n("%s col from %s", "%s cols from %s", width, "eightshift-ui-components"),
218
- width,
219
- showOuterAsGutter ? offset - 1 : offset
220
- );
204
+ return getColumnConfigOutputText(columns, offset, width, showOuterAsGutter);
221
205
  } });
222
206
  export {
223
207
  ColumnConfigSlider,
@@ -1,9 +1,9 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { $ as $64fa3d84918910a7$export$fabf2dc03a41866e } from "../../utils-BsiH7-5Y.js";
3
- import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5, a as $01b77f81d0f07f68$export$75b6ee27786ba447 } from "../../Label-BPzS-sR7.js";
4
- import { $ as $6f909507e6374d18$export$472062a354075cee, c as $6f909507e6374d18$export$a590f758a961cb5b, a as $6f909507e6374d18$export$105594979f116971, b as $6f909507e6374d18$export$2c1b491743890dec, d as $6f909507e6374d18$export$1e7083018727fa60 } from "../../Slider-Pyh2V4bY.js";
2
+ import { $ as $64fa3d84918910a7$export$fabf2dc03a41866e } from "../../utils-DIBzm1e4.js";
3
+ import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5, a as $01b77f81d0f07f68$export$75b6ee27786ba447 } from "../../Label-9x5iLJ-Y.js";
4
+ import { $ as $6f909507e6374d18$export$472062a354075cee, c as $6f909507e6374d18$export$a590f758a961cb5b, a as $6f909507e6374d18$export$105594979f116971, b as $6f909507e6374d18$export$2c1b491743890dec, d as $6f909507e6374d18$export$1e7083018727fa60 } from "../../Slider-C5U5N7uM.js";
5
5
  import { BaseControl } from "../base-control/base-control.js";
6
- import { classnames } from "../../utilities/classnames.js";
6
+ import { c as clsx } from "../../lite-pbIeT7tm.js";
7
7
  import { NumberPicker } from "../number-picker/number-picker.js";
8
8
  import { useState, useContext } from "react";
9
9
  import { generateMarkers } from "./utils.js";
@@ -35,6 +35,7 @@ import { generateMarkers } from "./utils.js";
35
35
  * @param {Function} [props.thumbContent] - If provided, the function will be called with the current value of the thumb, and the return value will be displayed within the thumb. `(currentIndex: number) => JSX.Element`.
36
36
  * @param {string} [props.labelClassName] - Additional classes to pass to the label.
37
37
  * @param {Object<string, any>} [props.trackStyle] - Additional style for the track.
38
+ * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
38
39
  *
39
40
  * @returns {JSX.Element} The Slider component.
40
41
  *
@@ -74,9 +75,13 @@ const Slider = (props) => {
74
75
  thumbContent,
75
76
  labelClassName,
76
77
  trackStyle,
78
+ hidden,
77
79
  ...other
78
80
  } = props;
79
81
  const [currentThumbIndex, setCurrentThumbIndex] = useState(-1);
82
+ if (hidden) {
83
+ return null;
84
+ }
80
85
  let generatedMarkers = {};
81
86
  if (typeof markers === "object" && Object.keys(markers).length > 0) {
82
87
  generatedMarkers = markers;
@@ -108,13 +113,7 @@ const Slider = (props) => {
108
113
  help,
109
114
  actions: /* @__PURE__ */ jsxs(Fragment, { children: [
110
115
  actions,
111
- !inputField && /* @__PURE__ */ jsx(
112
- $6f909507e6374d18$export$a590f758a961cb5b,
113
- {
114
- className: classnames("es-uic-text-xs es-uic-tabular-nums es-uic-text-gray-600"),
115
- children: ({ state }) => state.values.map((_, i) => state.getThumbValueLabel(i)).join(" – ")
116
- }
117
- ),
116
+ !inputField && /* @__PURE__ */ jsx($6f909507e6374d18$export$a590f758a961cb5b, { className: clsx("es-uic-text-xs es-uic-tabular-nums es-uic-text-gray-600"), children: ({ state }) => state.values.map((_, i) => state.getThumbValueLabel(i)).join(" – ") }),
118
117
  inputField && /* @__PURE__ */ jsx(
119
118
  NumberInputField,
120
119
  {
@@ -129,7 +128,7 @@ const Slider = (props) => {
129
128
  ] }),
130
129
  labelAs: $01b77f81d0f07f68$export$b04be29aa201d4f5,
131
130
  className: labelClassName,
132
- controlContainerClassName: classnames(
131
+ controlContainerClassName: clsx(
133
132
  "es-uic-flex es-uic-items-center es-uic-gap-2.5 !es-uic-space-y-0",
134
133
  vertical && "es-uic-flex-col"
135
134
  ),
@@ -138,7 +137,7 @@ const Slider = (props) => {
138
137
  /* @__PURE__ */ jsx(
139
138
  $6f909507e6374d18$export$105594979f116971,
140
139
  {
141
- className: classnames(
140
+ className: clsx(
142
141
  "es-uic-isolate es-uic-grid es-uic-grid-cols-1 es-uic-grid-rows-1",
143
142
  vertical ? "es-uic-mx-auto es-uic-h-40 es-uic-w-4" : "es-uic-h-4 es-uic-w-full es-uic-grow"
144
143
  ),
@@ -200,7 +199,7 @@ const Slider = (props) => {
200
199
  /* @__PURE__ */ jsx(
201
200
  "div",
202
201
  {
203
- className: classnames(
202
+ className: clsx(
204
203
  "es-uic-relative es-uic-col-start-1 es-uic-row-start-1 es-uic-rounded-full es-uic-border",
205
204
  !vertical && "es-uic-h-1.5 es-uic-w-full es-uic-self-center",
206
205
  vertical && "es-uic-h-full es-uic-w-1.5 es-uic-flex-col es-uic-justify-self-center",
@@ -212,7 +211,7 @@ const Slider = (props) => {
212
211
  !noActiveHighlight && /* @__PURE__ */ jsx(
213
212
  "div",
214
213
  {
215
- className: classnames(
214
+ className: clsx(
216
215
  "es-uic-absolute es-uic-col-start-1 es-uic-row-start-1 es-uic-border",
217
216
  !vertical && "es-uic-h-1.5 es-uic-w-full es-uic-self-center",
218
217
  vertical && "es-uic-h-full es-uic-w-1.5 es-uic-flex-col es-uic-justify-self-center",
@@ -235,7 +234,7 @@ const Slider = (props) => {
235
234
  markers && /* @__PURE__ */ jsx(
236
235
  "div",
237
236
  {
238
- className: classnames(
237
+ className: clsx(
239
238
  "es-uic-relative es-uic-col-start-1 es-uic-row-start-1",
240
239
  !vertical && "es-uic-h-1 es-uic-w-full es-uic-self-center",
241
240
  vertical && "es-uic-h-full es-uic-w-1 es-uic-flex-col es-uic-justify-self-center"
@@ -259,7 +258,7 @@ const Slider = (props) => {
259
258
  return /* @__PURE__ */ jsx(
260
259
  "div",
261
260
  {
262
- className: classnames(
261
+ className: clsx(
263
262
  "es-uic-absolute",
264
263
  vertical ? "es-uic-h-px es-uic-w-1" : "es-uic-h-1 es-uic-w-px es-uic-translate-x-1/2",
265
264
  !(dotValue === min || dotValue === max || dotValue === startPoint && !noActiveHighlight || min < 0 && dotValue === 0 && !noActiveHighlight || isWithinActiveBar) && "es-uic-bg-gray-300",
@@ -272,7 +271,7 @@ const Slider = (props) => {
272
271
  children: /* @__PURE__ */ jsx(
273
272
  "span",
274
273
  {
275
- className: classnames(
274
+ className: clsx(
276
275
  "es-uic-absolute es-uic-select-none es-uic-text-xs es-uic-transition-colors",
277
276
  vertical ? "es-uic-left-3.5 es-uic-top-0 -es-uic-translate-y-1/2" : "es-uic-left-0 es-uic-top-2.5 -es-uic-translate-x-1/2",
278
277
  (Array.isArray(value) ? value.includes(Number(dotValue)) : value === Number(dotValue) && !disabled) ? "es-uic-text-teal-700" : "es-uic-text-gray-300"
@@ -291,7 +290,7 @@ const Slider = (props) => {
291
290
  {
292
291
  index: i,
293
292
  "aria-label": thumbLabels == null ? void 0 : thumbLabels[i],
294
- className: classnames(
293
+ className: clsx(
295
294
  "es-uic-absolute es-uic-size-3.5 es-uic-rounded-full es-uic-border es-uic-transition es-uic-duration-300",
296
295
  vertical ? "!-es-uic-translate-y-1/2 !es-uic-translate-x-0" : "!-es-uic-translate-x-1/2 !es-uic-translate-y-0",
297
296
  "es-uic-shadow dragging:es-uic-bg-teal-600 disabled:es-uic-border-gray-200 disabled:es-uic-bg-gray-100 disabled:es-uic-shadow-none",
@@ -348,13 +347,7 @@ const NumberInputField = (props) => {
348
347
  ...other
349
348
  }
350
349
  ),
351
- fieldIndex === -1 && !isSingleValue && /* @__PURE__ */ jsx(
352
- $6f909507e6374d18$export$a590f758a961cb5b,
353
- {
354
- className: classnames("es-uic-text-xs es-uic-tabular-nums es-uic-text-gray-600"),
355
- children: ({ state: state2 }) => state2.values.map((_, i) => state2.getThumbValueLabel(i)).join(" – ")
356
- }
357
- )
350
+ fieldIndex === -1 && !isSingleValue && /* @__PURE__ */ jsx($6f909507e6374d18$export$a590f758a961cb5b, { className: clsx("es-uic-text-xs es-uic-tabular-nums es-uic-text-gray-600"), children: ({ state: state2 }) => state2.values.map((_, i) => state2.getThumbValueLabel(i)).join(" – ") })
358
351
  ] });
359
352
  };
360
353
  export {
@@ -1,3 +1,4 @@
1
+ import { _ as __, s as sprintf, a as _n } from "../../default-i18n-Bk1GxDHz.js";
1
2
  /**
2
3
  * Generates an array of markers based on the provided minimum and maximum values and step.
3
4
  * If the step is less than 10, only markers divisible by 5 and 10 are included.
@@ -40,6 +41,48 @@ const generateMarkers = (min, max, step = 10) => {
40
41
  return acc;
41
42
  }, {});
42
43
  };
44
+ /**
45
+ * Returns a human-readable string representing the column configuration.
46
+ *
47
+ * @param {Number} columns - Number of columns.
48
+ * @param {Number} offset - Offset of the column.
49
+ * @param {Number} width - Width of the column.
50
+ * @param {boolean} [showOuterAsGutter=false] - If `true`, the outer columns are skipped when counting.
51
+ *
52
+ * @returns {string} Configuration info in a human-readable format.
53
+ *
54
+ * @example
55
+ * const output = getColumnConfigOutputText(12, 1, 6); // => '6 cols from 1'
56
+ *
57
+ * @preserve
58
+ */
59
+ const getColumnConfigOutputText = (columns, offset, width, showOuterAsGutter = false) => {
60
+ const endOffset = offset + width - 1;
61
+ if (offset === 1 && endOffset === columns) {
62
+ return __("Full-width", "eightshift-ui-components");
63
+ }
64
+ if (offset === 1 && endOffset < columns) {
65
+ return sprintf(__("To col %d", "eightshift-ui-components"), showOuterAsGutter ? endOffset - 1 : endOffset);
66
+ }
67
+ if (offset > 1 && endOffset === columns) {
68
+ return sprintf(__("From col %d", "eightshift-ui-components"), showOuterAsGutter ? offset - 1 : offset);
69
+ }
70
+ if (showOuterAsGutter && width === 1 && offset === 1) {
71
+ return __("Start gutter", "eightshift-ui-components");
72
+ }
73
+ if (showOuterAsGutter && endOffset === columns) {
74
+ return __("End gutter", "eightshift-ui-components");
75
+ }
76
+ if (width === 1) {
77
+ return sprintf(__("Col %d", "eightshift-ui-components"), offset);
78
+ }
79
+ return sprintf(
80
+ _n("%s col from %s", "%s cols from %s", width, "eightshift-ui-components"),
81
+ width,
82
+ showOuterAsGutter ? offset - 1 : offset
83
+ );
84
+ };
43
85
  export {
44
- generateMarkers
86
+ generateMarkers,
87
+ getColumnConfigOutputText
45
88
  };