@eightshift/ui-components 5.0.2 → 5.0.3

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 (36) hide show
  1. package/dist/assets/style-admin.css +340 -128
  2. package/dist/assets/style-editor.css +340 -128
  3. package/dist/assets/style.css +340 -128
  4. package/dist/components/button/button.js +13 -13
  5. package/dist/components/checkbox/checkbox.js +3 -3
  6. package/dist/components/color-pickers/color-swatch.js +2 -2
  7. package/dist/components/color-pickers/gradient-editor.js +2 -2
  8. package/dist/components/color-pickers/solid-color-picker.js +5 -5
  9. package/dist/components/component-toggle/component-toggle.js +0 -1
  10. package/dist/components/expandable/expandable.js +59 -52
  11. package/dist/components/input-field/input-field.js +3 -3
  12. package/dist/components/link-input/link-input.js +7 -5
  13. package/dist/components/menu/menu.js +3 -3
  14. package/dist/components/modal/modal.js +1 -1
  15. package/dist/components/notice/notice.js +16 -16
  16. package/dist/components/number-picker/number-picker.js +1 -1
  17. package/dist/components/placeholders/file-placeholder.js +13 -6
  18. package/dist/components/placeholders/image-placeholder.js +2 -2
  19. package/dist/components/placeholders/media-placeholder.js +2 -2
  20. package/dist/components/popover/popover.js +1 -1
  21. package/dist/components/radio/radio.js +3 -3
  22. package/dist/components/repeater/repeater-item.js +6 -5
  23. package/dist/components/repeater/repeater.js +8 -3
  24. package/dist/components/select/async-multi-select.js +1 -0
  25. package/dist/components/select/async-single-select.js +1 -0
  26. package/dist/components/select/multi-select.js +1 -0
  27. package/dist/components/select/single-select.js +1 -0
  28. package/dist/components/select/styles.js +1 -1
  29. package/dist/components/select/v2/async-select.js +1 -1
  30. package/dist/components/select/v2/single-select.js +1 -1
  31. package/dist/components/slider/column-config-slider.js +1 -1
  32. package/dist/components/slider/slider.js +1 -1
  33. package/dist/components/tabs/tabs.js +6 -6
  34. package/dist/components/toggle/switch.js +2 -2
  35. package/dist/components/toggle-button/toggle-button.js +12 -11
  36. package/package.json +1 -1
@@ -38,6 +38,7 @@ const fixIds = (items, itemIdBase) => {
38
38
  * @param {JSX.Element} [props.addButton] - If provided, overrides the default add button. `(props: { addItem: (additional: Object<string, any>?) => void, disabled: Boolean }) => JSX.Element`.
39
39
  * @param {string} [props.className] - Classes to pass to the item wrapper.
40
40
  * @param {boolean} [props.noExpandAllButton] - If `true`, the "Expand all"/"Collapse all" button is not displayed.
41
+ * @param {boolean} [props.noDragToRemove] - If `true`, the "drag to remove" functionality will be disabled.
41
42
  * @param {JSX.Element|JSX.Element[]} [props.moreOptions] - Options to add in the "More options" menu.
42
43
  * @param {JSX.Element} [props.emptyState] - Allows overriding the default empty state.
43
44
  *
@@ -92,10 +93,12 @@ const Repeater = (props) => {
92
93
  className,
93
94
  emptyState,
94
95
  noExpandAllButton,
96
+ noDragToRemove,
95
97
  moreOptions,
96
98
  hidden
97
99
  } = props;
98
100
  const [allOpen, setAllOpen] = useState(false);
101
+ const [openItems, setOpenItems] = useState({});
99
102
  if (typeof rawItems === "undefined" || rawItems === null || !Array.isArray(rawItems)) {
100
103
  console.warn(__("Repeater: 'items' are not an array or are undefined!", "eightshift-ui-components"));
101
104
  }
@@ -168,7 +171,7 @@ const Repeater = (props) => {
168
171
  /* @__PURE__ */ jsx(
169
172
  List,
170
173
  {
171
- values: items,
174
+ values: items.map((item) => ({ ...item, disabled: openItems[item.id] })),
172
175
  onChange: ({ oldIndex, newIndex }) => onChange(newIndex === -1 ? arrayRemove(items, oldIndex) : arrayMove(items, oldIndex, newIndex)),
173
176
  renderList: ({ children: children2, props: props2 }) => {
174
177
  const { key, ...rest } = props2;
@@ -214,7 +217,9 @@ const Repeater = (props) => {
214
217
  canDelete,
215
218
  canAdd,
216
219
  allOpen,
217
- setAllOpen
220
+ setAllOpen,
221
+ setOpenItems,
222
+ isItemOpen: openItems[item.id] ?? allOpen
218
223
  },
219
224
  children: children({
220
225
  ...item,
@@ -236,7 +241,7 @@ const Repeater = (props) => {
236
241
  (item == null ? void 0 : item.id) ?? key
237
242
  );
238
243
  },
239
- removableByMove: true
244
+ removableByMove: !noDragToRemove
240
245
  }
241
246
  ),
242
247
  /* @__PURE__ */ jsxs(AnimatedVisibility, { visible: items.length < 1, children: [
@@ -143,6 +143,7 @@ const AsyncMultiSelect = (props) => {
143
143
  DropdownIndicator: customDropdownArrow ?? CustomSelectDefaultDropdownIndicator,
144
144
  ClearIndicator: customClearIndicator ?? CustomSelectDefaultClearIndicator
145
145
  },
146
+ menuPlacement: "auto",
146
147
  menuPortalTarget: document.body,
147
148
  ...additionalProps
148
149
  }
@@ -125,6 +125,7 @@ const AsyncSelect = (props) => {
125
125
  DropdownIndicator: customDropdownArrow ?? CustomSelectDefaultDropdownIndicator,
126
126
  ClearIndicator: customClearIndicator ?? CustomSelectDefaultClearIndicator
127
127
  },
128
+ menuPlacement: "auto",
128
129
  menuPortalTarget: document.body,
129
130
  ...additionalProps
130
131
  }
@@ -137,6 +137,7 @@ const MultiSelect = (props) => {
137
137
  DropdownIndicator: customDropdownArrow ?? CustomSelectDefaultDropdownIndicator,
138
138
  ClearIndicator: customClearIndicator ?? CustomSelectDefaultClearIndicator
139
139
  },
140
+ menuPlacement: "auto",
140
141
  menuPortalTarget: document.body,
141
142
  ...additionalProps
142
143
  }
@@ -119,6 +119,7 @@ const Select = (props) => {
119
119
  DropdownIndicator: customDropdownArrow ?? CustomSelectDefaultDropdownIndicator,
120
120
  ClearIndicator: customClearIndicator ?? CustomSelectDefaultClearIndicator
121
121
  },
122
+ menuPlacement: "auto",
122
123
  menuPortalTarget: document.body,
123
124
  ...additionalProps
124
125
  }
@@ -1,6 +1,6 @@
1
1
  import { c as clsx } from "../../lite-DVmmD_-j.js";
2
2
  const controlStyles = {
3
- base: "es:border es:border-gray-300 es:rounded-lg es:bg-white es:text-sm es:transition es:group es:shadow-xs es:min-h-10! es:inset-ring es:inset-ring-secondary-100",
3
+ base: "es:border es:border-gray-300 es:rounded-10 es:bg-white es:text-sm es:transition es:group es:shadow-sm es:min-h-10! es:inset-ring es:inset-ring-secondary-100",
4
4
  focus: "es:ring-2 es:ring-accent-500/50 es:border-accent-500!"
5
5
  };
6
6
  const placeholderStyles = "es:text-gray-400 es:ml-1";
@@ -171,7 +171,7 @@ const __ExperimentalAsyncSelect = (props) => {
171
171
  {
172
172
  className: clsx(
173
173
  "es:relative es:flex es:max-w-80 es:items-center es:gap-1 es:p-1 es:focus-visible:outline-hidden es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50",
174
- "es:h-9 es:rounded-lg es:border es:border-secondary-300 es:bg-white es:text-sm es:shadow-xs es:transition",
174
+ "es:h-9 es:rounded-10 es:border es:border-secondary-300 es:bg-white es:text-sm es:shadow-sm es:transition",
175
175
  "es:any-focus:outline-hidden",
176
176
  !inline && "es:w-full",
177
177
  disabled && "es:select-none",
@@ -873,7 +873,7 @@ const __ExperimentalSelect = (props) => {
873
873
  {
874
874
  className: clsx(
875
875
  "es:relative es:flex es:max-w-80 es:items-center es:gap-1 es:p-1 es:focus-visible:outline-hidden es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50",
876
- "es:h-9 es:rounded-lg es:border es:border-secondary-300 es:bg-white es:text-sm es:shadow-xs es:transition",
876
+ "es:h-9 es:rounded-10 es:border es:border-secondary-300 es:bg-white es:text-sm es:shadow-sm es:transition",
877
877
  "es:any-focus:outline-hidden",
878
878
  !inline && "es:w-full",
879
879
  disabled && "es:select-none",
@@ -101,7 +101,7 @@ const ColumnConfigSlider = (props) => {
101
101
  {
102
102
  className: clsx(
103
103
  "es:col-span-full es:row-span-1 es:row-start-1 es:h-full es:w-full es:grow es:rounded-lg es:border",
104
- disabled ? "es:border-secondary-200 es:bg-white" : "es:border-secondary-300 es:bg-secondary-50 es:shadow-xs"
104
+ disabled ? "es:border-secondary-200 es:bg-white" : "es:border-secondary-300 es:bg-secondary-50 es:shadow-sm"
105
105
  )
106
106
  }
107
107
  ),
@@ -194,7 +194,7 @@ const Slider = (props) => {
194
194
  "es:relative es:col-start-1 es:row-start-1 es:rounded-full es:border",
195
195
  !vertical && "es:h-1.5 es:w-full es:self-center",
196
196
  vertical && "es:h-full es:w-1.5 es:flex-col es:justify-self-center",
197
- disabled ? "es:border-secondary-200 es:bg-white" : "es:border-secondary-300 es:bg-secondary-50 es:shadow-xs"
197
+ disabled ? "es:border-secondary-200 es:bg-white" : "es:border-secondary-300 es:bg-secondary-50 es:shadow-sm"
198
198
  ),
199
199
  style: trackStyle
200
200
  }
@@ -601,10 +601,10 @@ const Tab = (props) => {
601
601
  variants: {
602
602
  type: {
603
603
  underline: "es:disabled:text-secondary-400 es:selected:text-accent-950",
604
- pill: "es:font-[450] es:border es:border-transparent es:px-3 es:py-2 es:rounded-lg es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-accent-900 es:selected:bg-accent-400/15 es:has-icon:pl-2.5 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
605
- pillInverse: "es:font-[450] es:border es:border-transparent es:px-3 es:py-2 es:rounded-lg es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-white es:selected:bg-accent-600 es:has-icon:pl-2.5 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
606
- pillCompact: "es:icon:size-4 es:font-[450] es:border es:border-transparent es:px-1.5 es:py-1 es:rounded-lg es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-accent-900 es:selected:bg-accent-400/15 es:has-icon:pl-1 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
607
- pillCompactInverse: "es:icon:size-4 es:font-[450] es:border es:border-transparent es:px-1.5 es:py-1 es:rounded-lg es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-white es:selected:bg-accent-600 es:has-icon:pl-1 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75"
604
+ pill: "es:font-[450] es:border es:border-transparent es:px-3 es:py-1.5 es:rounded-xl es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-accent-900 es:selected:bg-gradient-to-br es:selected:from-accent-300/10 es:selected:to-accent-400/20 es:selected:border-accent-400/10 es:has-icon:pl-2.5 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
605
+ pillInverse: "es:font-[450] es:border es:border-transparent es:px-3 es:py-1.5 es:rounded-xl es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-white es:selected:bg-gradient-to-br es:selected:from-accent-500 es:selected:to-accent-600 es:selected:border-accent-600 es:has-icon:pl-2.5 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
606
+ pillCompact: "es:icon:size-4 es:font-[450] es:border es:border-transparent es:px-2.5 es:py-1 es:rounded-10 es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-accent-900 es:selected:bg-gradient-to-br es:selected:from-accent-300/10 es:selected:to-accent-400/20 es:selected:border-accent-400/10 es:has-icon:pl-1 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
607
+ pillCompactInverse: "es:icon:size-4 es:font-[450] es:border es:border-transparent es:px-2.5 es:py-1 es:rounded-10 es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-white es:selected:bg-gradient-to-br es:selected:from-accent-500 es:selected:to-accent-600 es:selected:border-accent-600 es:has-icon:pl-1 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75"
608
608
  }
609
609
  },
610
610
  compoundVariants: [
@@ -615,7 +615,7 @@ const Tab = (props) => {
615
615
  "es:px-2 es:py-2.5 es:rounded-lg",
616
616
  'es:after:content-[""] es:after:absolute es:after:bottom-px es:after:left-0 es:after:right-0 es:after:w-5/6 es:after:mx-auto es:after:h-0.75',
617
617
  "es:after:bg-linear-to-b es:hover:not-selected:not-disabled:after:from-secondary-200 es:hover:not-selected:not-disabled:after:to-secondary-300 es:selected:after:from-accent-500 es:selected:after:to-accent-600",
618
- "es:after:rounded-t-full es:selected:after:shadow-xs es:selected:after:shadow-accent-700/30 es:after:transition"
618
+ "es:after:rounded-t-full es:selected:after:shadow-sm es:selected:after:shadow-accent-700/30 es:after:transition"
619
619
  ]
620
620
  },
621
621
  {
@@ -625,7 +625,7 @@ const Tab = (props) => {
625
625
  "es:pl-3 es:pr-2 es:py-2.5 es:rounded-lg es:selected:bg-accent-50/50 es:selected:text-accent-950 es:transition",
626
626
  'es:after:content-[""] es:after:absolute es:after:-left-0 es:after:top-0 es:after:bottom-0 es:after:h-5/6 es:after:my-auto es:after:w-1',
627
627
  "es:after:bg-linear-to-r es:hover:not-selected:not-disabled:after:from-secondary-200 es:hover:not-selected:not-disabled:after:to-secondary-300 es:selected:after:from-accent-500 es:selected:after:to-accent-600",
628
- "es:after:rounded-full es:selected:after:shadow-xs es:selected:after:shadow-accent-700/30 es:after:transition"
628
+ "es:after:rounded-full es:selected:after:shadow-sm es:selected:after:shadow-accent-700/30 es:after:transition"
629
629
  ]
630
630
  }
631
631
  ]
@@ -128,7 +128,7 @@ const Switch2 = (props) => {
128
128
  !checked && !disabled && "es:border-secondary-400 es:inset-ring-secondary-100 es:from-white es:to-secondary-100",
129
129
  checked && !disabled && "es:border-accent-700/75 es:inset-ring-accent-500 es:to-accent-500 es:from-accent-600 es:shadow-accent-600/30",
130
130
  disabled && "es:cursor-default es:border-secondary-300 es:from-white es:to-secondary-50 es:inset-ring-secondary-200/30 es:inset-shadow-secondary-100",
131
- !disabled && "es:shadow-xs"
131
+ !disabled && "es:shadow-sm"
132
132
  ),
133
133
  children: /* @__PURE__ */ jsx(
134
134
  "span",
@@ -139,7 +139,7 @@ const Switch2 = (props) => {
139
139
  !checked && "es:scale-95",
140
140
  !checked && !disabled && "es:border-secondary-500 es:from-secondary-500 es:to-secondary-600",
141
141
  checked && "es:translate-x-4",
142
- checked && !disabled && "es:border-accent-600/20 es:from-white es:to-accent-500/30 es:from-40% es:bg-white es:shadow-xs es:shadow-accent-900/60",
142
+ checked && !disabled && "es:border-accent-600/20 es:from-white es:to-accent-500/30 es:from-40% es:bg-white es:shadow-sm es:shadow-accent-900/60",
143
143
  disabled && "es:border-secondary-400 es:bg-secondary-100",
144
144
  isIndeterminate && "es:translate-x-2 es:scale-100"
145
145
  )
@@ -102,8 +102,8 @@ const $efde0372d7a700fe$export$d2b052e7b4be1756 = /* @__PURE__ */ forwardRef(fun
102
102
  * @component
103
103
  * @param {Object} props - Component props.
104
104
  * @param {JSX.Element} [props.icon] - Icon to display within the button.
105
- * @param {ButtonSize} [props.size='default'] - The size of the button.
106
- * @param {ButtonType} [props.type='default'] - The type of the button.
105
+ * @param {ToggleButtonSize} [props.size='default'] - The size of the button.
106
+ * @param {ToggleButtonType} [props.type='default'] - The type of the button.
107
107
  * @param {boolean} [props.disabled] - If `true`, the button is disabled.
108
108
  * @param {string} [props.className] - Classes to pass to the button.
109
109
  * @param {string|boolean} [props.tooltip] - Tooltip text to display on hover.
@@ -113,10 +113,10 @@ const $efde0372d7a700fe$export$d2b052e7b4be1756 = /* @__PURE__ */ forwardRef(fun
113
113
  * @param {Object} [props.tooltipProps] - Props to pass to the tooltip.
114
114
  * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
115
115
  *
116
- * @returns {JSX.Element} The Button component.
116
+ * @returns {JSX.Element} The ToggleButton component.
117
117
  *
118
- * @typedef {'small' | 'default' | 'large'} ButtonSize
119
- * @typedef {'default' | 'selected' | 'ghost' | 'danger'} ButtonType
118
+ * @typedef {'small' | 'default' | 'large'} ToggleButtonSize
119
+ * @typedef {'default'| 'ghost'} ToggleButtonType
120
120
  *
121
121
  * @example
122
122
  * const [selected, setSelected] = useState(false);
@@ -167,6 +167,7 @@ const ToggleButton2 = (props) => {
167
167
  "es:btn-group-mid:rounded-none",
168
168
  "es:btn-group-h-start:rounded-r-none es:btn-group-v-start:rounded-b-none",
169
169
  "es:btn-group-h-end:rounded-l-none es:btn-group-v-end:rounded-t-none",
170
+ "es:enabled:hover:shadow-md es:enabled:active:shadow-sm es:enabled:pressed:shadow-sm",
170
171
  "es:cursor-pointer",
171
172
  icon && children ? "es:justify-start" : "es:justify-center",
172
173
  className
@@ -174,9 +175,9 @@ const ToggleButton2 = (props) => {
174
175
  {
175
176
  variants: {
176
177
  size: {
177
- small: "es:icon:size-4.5 es:rounded-md",
178
- default: "es:icon:size-5.5 es:rounded-lg",
179
- large: "es:icon:size-6 es:rounded-lg"
178
+ small: "es:icon:size-4.5 es:rounded-7",
179
+ default: "es:icon:size-5.5 es:rounded-10",
180
+ large: "es:icon:size-6 es:rounded-xl"
180
181
  },
181
182
  type: {
182
183
  default: ["es:bg-radial-[at_50%_125%]", "es:inset-ring es:inset-shadow-xs"],
@@ -194,7 +195,7 @@ const ToggleButton2 = (props) => {
194
195
  "es:border-secondary-300",
195
196
  "es:inset-ring-secondary-100",
196
197
  "es:inset-shadow-secondary-100/50",
197
- "es:shadow-xs",
198
+ "es:shadow-sm",
198
199
  "es:hover:inset-shadow-secondary-100 es:hover:to-secondary-100 es:hover:inset-ring-secondary-100",
199
200
  "es:hover:text-accent-950",
200
201
  "es:focus-visible:text-accent-950"
@@ -213,7 +214,7 @@ const ToggleButton2 = (props) => {
213
214
  "es:focus-visible:border-accent-700",
214
215
  "es:focus-visible:inset-ring es:focus-visible:inset-ring-accent-600",
215
216
  "es:focus-visible:inset-shadow-xs es:focus-visible:inset-shadow-accent-400",
216
- "es:shadow-xs es:shadow-accent-600/30"
217
+ "es:shadow-sm es:shadow-accent-600/30"
217
218
  ]
218
219
  },
219
220
  {
@@ -224,7 +225,7 @@ const ToggleButton2 = (props) => {
224
225
  type: "ghost",
225
226
  disabled: false,
226
227
  selected: true,
227
- class: ["es:bg-accent-600 es:text-white es:border-accent-600 es:shadow-xs es:shadow-accent-500/25", "es:hover:shadow-accent-600/50"]
228
+ class: ["es:bg-accent-600 es:text-white es:border-accent-600 es:shadow-sm es:shadow-accent-500/25", "es:hover:shadow-accent-600/50"]
228
229
  },
229
230
  // Sizes.
230
231
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eightshift/ui-components",
3
- "version": "5.0.2",
3
+ "version": "5.0.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",