@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
@@ -150,7 +150,7 @@ const Button = (props) => {
150
150
  "es:btn-group-mid:rounded-none",
151
151
  "es:btn-group-h-start:rounded-r-none es:btn-group-v-start:rounded-b-none",
152
152
  "es:btn-group-h-end:rounded-l-none es:btn-group-v-end:rounded-t-none",
153
- "es:not-disabled:cursor-pointer",
153
+ "es:enabled:cursor-pointer",
154
154
  "es:shrink-0",
155
155
  icon && children ? "es:justify-start" : "es:justify-center",
156
156
  className
@@ -158,18 +158,18 @@ const Button = (props) => {
158
158
  {
159
159
  variants: {
160
160
  size: {
161
- small: "es:icon:size-4.5 es:rounded-md",
162
- default: "es:icon:size-5.5 es:rounded-lg",
163
- large: "es:icon:size-6 es:rounded-lg"
161
+ small: "es:icon:size-4.5 es:rounded-7",
162
+ default: "es:icon:size-5.5 es:rounded-10",
163
+ large: "es:icon:size-6 es:rounded-xl"
164
164
  },
165
165
  type: {
166
166
  default: "es:bg-radial-[at_50%_125%] es:inset-ring es:inset-shadow-xs",
167
167
  selected: "es:bg-radial-[at_50%_125%] es:inset-ring es:inset-shadow-xs",
168
168
  danger: "es:bg-radial-[at_50%_125%] es:inset-ring es:inset-shadow-xs",
169
- ghost: "es:border-transparent es:text-secondary-700 es:not-disabled:hover:bg-secondary-100 es:disabled:border-transparent!",
169
+ ghost: "es:border-transparent es:text-secondary-700 es:enabled:hover:bg-secondary-100 es:enabled:active:bg-accent-50 es:enabled:pressed:bg-accent-50 es:enabled:active:text-accent-950 es:enabled:pressed:text-accent-950 es:disabled:border-transparent!",
170
170
  dangerGhost: [
171
- "es:border-transparent es:text-red-600",
172
- "es:not-disabled:hover:bg-red-500/5",
171
+ "es:border-transparent es:text-red-700",
172
+ "es:enabled:hover:bg-red-500/5 es:enabled:active:bg-red-500/10 es:enabled:pressed:bg-red-500/10",
173
173
  "es:focus-visible:text-red-700",
174
174
  "es:focus-visible:ring-red-500/30 es:focus-visible:border-red-600 es:focus-visible:inset-ring-red-100",
175
175
  "es:disabled:border-transparent!"
@@ -187,8 +187,8 @@ const Button = (props) => {
187
187
  "es:border-secondary-300",
188
188
  "es:inset-ring-secondary-100",
189
189
  "es:inset-shadow-secondary-100/50",
190
- "es:shadow-xs",
191
- "es:hover:inset-shadow-secondary-100 es:hover:to-secondary-100 es:hover:inset-ring-secondary-100",
190
+ "es:shadow-sm",
191
+ "es:enabled:hover:shadow-md es:enabled:active:shadow-sm es:enabled:pressed:shadow-sm es:hover:inset-shadow-secondary-100 es:hover:to-secondary-100 es:hover:inset-ring-secondary-100",
192
192
  "es:hover:text-accent-950",
193
193
  "es:focus-visible:text-accent-950"
194
194
  ]
@@ -205,22 +205,22 @@ const Button = (props) => {
205
205
  "es:focus-visible:border-accent-700",
206
206
  "es:focus-visible:inset-ring es:focus-visible:inset-ring-accent-600",
207
207
  "es:focus-visible:inset-shadow-xs es:focus-visible:inset-shadow-accent-400",
208
- "es:shadow es:shadow-accent-600/30"
208
+ "es:shadow es:shadow-accent-600/30 es:enabled:hover:shadow-md es:enabled:active:shadow-sm es:enabled:pressed:shadow-sm"
209
209
  ]
210
210
  },
211
211
  {
212
212
  type: "danger",
213
213
  disabled: false,
214
214
  class: [
215
- "es:text-red-800",
215
+ "es:text-red-700",
216
216
  "es:from-red-50/75 es:to-white",
217
- "es:border-red-600/50",
217
+ "es:border-red-700/50",
218
218
  "es:inset-ring-red-100",
219
219
  "es:inset-shadow-red-50",
220
220
  "es:hover:inset-shadow-red-100 es:hover:inset-ring-red-100 es:hover:text-red-800 es:hover:border-red-600",
221
221
  "es:focus-visible:text-red-900",
222
222
  "es:focus-visible:ring-red-500/30 es:focus-visible:border-red-600 es:focus-visible:inset-ring-red-100",
223
- "es:shadow"
223
+ "es:shadow es:shadow-red-700/20 es:enabled:hover:shadow-md es:enabled:active:shadow-sm es:enabled:pressed:shadow-sm"
224
224
  ]
225
225
  },
226
226
  {
@@ -265,10 +265,10 @@ const Checkbox2 = (props) => {
265
265
  "div",
266
266
  {
267
267
  className: clsx(
268
- "es:size-5 es:flex es:items-center es:justify-center",
268
+ "es:size-5 es:grid es:place-items-center es:grid-cols-1 es:grid-rows-1 es:*:row-start-1 es:*:col-start-1",
269
269
  "es:transition es:cursor-pointer",
270
270
  "es:bg-radial es:border es:rounded-md",
271
- "es:shadow-xs es:inset-ring es:inset-shadow-xs",
271
+ "es:shadow-sm es:inset-ring es:inset-shadow-xs",
272
272
  "es:any-focus:outline-hidden es:group-focus-visible:ring-2 es:group-focus-visible:ring-accent-500/50",
273
273
  !selectedOrIntermediate && "es:group-focus-visible:border-accent-500",
274
274
  !selectedOrIntermediate && "es:border-secondary-300 es:inset-ring-secondary-100 es:inset-shadow-secondary-100/50",
@@ -283,7 +283,7 @@ const Checkbox2 = (props) => {
283
283
  /* @__PURE__ */ jsx(
284
284
  AnimatedVisibility,
285
285
  {
286
- transition: "scaleFade",
286
+ transition: "scaleRotateFade",
287
287
  visible: indeterminate,
288
288
  className: "es:transition-none",
289
289
  children: /* @__PURE__ */ jsx("div", { className: "es:h-0.5 es:w-3 es:rounded es:bg-white" })
@@ -47,10 +47,10 @@ const ColorSwatch = (props) => {
47
47
  style: {
48
48
  background: (color || gradient) && backgroundGradient
49
49
  },
50
- className: () => clsx("es:size-6 es:rounded es:border es:border-secondary-300 es:shadow-xs", !color && !gradient && !customGradient && "es:bg-white", className),
50
+ className: () => clsx("es:size-6 es:rounded-md es:border es:border-secondary-300 es:shadow-sm", !color && !gradient && !customGradient && "es:bg-white", className),
51
51
  colorName: !color && !gradient && !customGradient ? __("No color", "eightshift-ui-components") : colorName,
52
52
  color,
53
- children: !color && !gradient && !customGradient && /* @__PURE__ */ jsx("div", { className: "es:m-auto es:h-full es:w-px es:rotate-45 es:rounded es:bg-red-500" })
53
+ children: !color && !gradient && !customGradient && /* @__PURE__ */ jsx("div", { className: "es:m-auto es:h-full es:w-px es:rotate-45 es:rounded-md es:bg-red-500" })
54
54
  }
55
55
  );
56
56
  };
@@ -134,12 +134,12 @@ const gradientTypes = [
134
134
  {
135
135
  label: __("Radial"),
136
136
  value: "radial",
137
- icon: /* @__PURE__ */ jsx("div", { className: "es:transparent es:size-4 es:rounded-full es:bg-[radial-gradient(var(--tw-gradient-stops))] es:from-current" })
137
+ icon: /* @__PURE__ */ jsx("div", { className: "es:transparent es:size-4 es:rounded-full es:bg-radial es:from-current/75 es:to-current/10" })
138
138
  },
139
139
  {
140
140
  label: __("Conic"),
141
141
  value: "conic",
142
- icon: /* @__PURE__ */ jsx("div", { className: "es:transparent es:size-4 es:rounded-full es:bg-[conic-gradient(var(--tw-gradient-stops))] es:from-current" })
142
+ icon: /* @__PURE__ */ jsx("div", { className: "es:transparent es:size-4 es:rounded-full es:bg-conic es:from-current" })
143
143
  }
144
144
  ];
145
145
  const linearDirections = [
@@ -1290,7 +1290,7 @@ const SolidColorPicker = (props) => {
1290
1290
  const valueInputClassName = clsx(
1291
1291
  "es:h-8 es:w-12",
1292
1292
  "es:tabular-nums es:font-mono",
1293
- "es:border es:rounded-lg es:border-secondary-300 es:p-2 es:text-sm es:shadow-xs es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950",
1293
+ "es:border es:rounded-lg es:border-secondary-300 es:p-2 es:text-sm es:shadow-sm es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950",
1294
1294
  "es:any-focus:outline-hidden",
1295
1295
  "es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50 es:focus-visible:z-10",
1296
1296
  "es:focus-visible:border-accent-500",
@@ -1304,7 +1304,7 @@ const SolidColorPicker = (props) => {
1304
1304
  xChannel: "saturation",
1305
1305
  yChannel: "lightness",
1306
1306
  className: clsx(
1307
- "es:size-48 es:rounded-md es:border es:border-secondary-300 es:shadow-sm es:transition",
1307
+ "es:size-48 es:rounded-xl es:border es:border-secondary-300 es:shadow-sm es:transition",
1308
1308
  'es:[&:has(>_[data-focus-visible="true"])]:ring-2 es:[&:has(>_[data-focus-visible="true"])]:ring-accent-500/50',
1309
1309
  "es:disabled:bg-linear-to-r! es:disabled:from-white es:disabled:to-secondary-100"
1310
1310
  ),
@@ -1325,7 +1325,7 @@ const SolidColorPicker = (props) => {
1325
1325
  $6f909507e6374d18$export$105594979f116971,
1326
1326
  {
1327
1327
  className: clsx(
1328
- "es:h-7 es:w-48 es:rounded-md es:border es:border-secondary-300 es:shadow-sm",
1328
+ "es:h-7 es:w-48 es:rounded-10 es:border es:border-secondary-300 es:shadow-sm",
1329
1329
  'es:[&:has(>_[data-focus-visible="true"])]:ring-2 es:[&:has(>_[data-focus-visible="true"])]:ring-accent-500/50',
1330
1330
  "es:disabled:bg-linear-to-r! es:disabled:from-white es:disabled:to-secondary-100"
1331
1331
  ),
@@ -1345,7 +1345,7 @@ const SolidColorPicker = (props) => {
1345
1345
  $6f909507e6374d18$export$105594979f116971,
1346
1346
  {
1347
1347
  className: clsx(
1348
- "es:h-7 es:w-48 es:rounded-md es:border es:border-secondary-300 es:shadow-sm",
1348
+ "es:h-7 es:w-48 es:rounded-10 es:border es:border-secondary-300 es:shadow-sm",
1349
1349
  'es:[&:has(>_[data-focus-visible="true"])]:ring-2 es:[&:has(>_[data-focus-visible="true"])]:ring-accent-500/50',
1350
1350
  "es:disabled:bg-linear-to-r! es:disabled:from-white es:disabled:to-secondary-100"
1351
1351
  ),
@@ -1375,7 +1375,7 @@ const SolidColorPicker = (props) => {
1375
1375
  className: clsx(
1376
1376
  "es:h-9 es:w-20",
1377
1377
  "es:tabular-nums es:font-mono",
1378
- "es:border es:border-secondary-300 es:p-2 es:text-sm es:shadow-xs es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950",
1378
+ "es:border es:border-secondary-300 es:p-2 es:text-sm es:shadow-sm es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950",
1379
1379
  "es:any-focus:outline-hidden",
1380
1380
  "es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50 es:focus-visible:z-10",
1381
1381
  "es:focus-visible:border-accent-500",
@@ -23,7 +23,6 @@ import { AnimatedVisibility } from "../animated-visibility/animated-visibility.j
23
23
  * @param {boolean} [props.noUseToggle] - If `true`, the toggle is not displayed.
24
24
  * @param {boolean} [props.noExpandButton] - If `true`, the expand button is not shown.
25
25
  * @param {boolean} [props.noLabel] - If `true`, the label is not shown.
26
- * @param {boolean} [props.noUseToggle] - If `true`, the toggle is not displayed.
27
26
  * @param {boolean} [props.expandButtonDisabled] - If `true`, the expand button is disabled.
28
27
  * @param {boolean} [props.controlOnly] - If `true`, only the control is displayed.
29
28
  * @param {boolean} [props.hideUseToggleOnExpand] - If `true`, and the component is display in a variant where it can be expanded, the use toggle will hide when the component is expanded.
@@ -269,59 +269,66 @@ const Expandable = (props) => {
269
269
  className: clsx("es:w-full es:rounded-xl es:border es:border-secondary-300/0 es:text-sm es:transition", isOpen && "es:border-secondary-300/100 es:shadow-lg", className),
270
270
  ...other,
271
271
  children: [
272
- /* @__PURE__ */ jsxs("div", { className: clsx("es:flex es:h-10 es:items-center es:gap-1 es:transition-[padding]", isOpen && "es:py-1 es:pl-2 es:pr-1", headerClassName), children: [
273
- /* @__PURE__ */ jsx(
274
- RichLabel,
275
- {
276
- icon,
277
- label,
278
- subtitle,
279
- className: labelClassName,
280
- as: $01b77f81d0f07f68$export$b04be29aa201d4f5,
281
- fullWidth: true
282
- }
283
- ),
284
- actions && !keepActionsOnExpand && /* @__PURE__ */ jsx(
285
- AnimatedVisibility,
286
- {
287
- visible: !isOpen,
288
- className: "es:ml-auto es:flex es:gap-2",
289
- transition: "slideFadeDownSlight",
290
- noInitial: true,
291
- children: actions
292
- }
293
- ),
294
- actions && keepActionsOnExpand && /* @__PURE__ */ jsx("div", { className: "es:ml-auto es:flex es:gap-2", children: actions }),
295
- customOpenButton && customOpenButton({
296
- open: isOpen,
297
- toggleOpen: () => {
298
- setIsOpen(!isOpen);
299
- if (onOpenChange) {
300
- onOpenChange(!isOpen);
301
- }
302
- },
303
- tooltip: isOpen ? __("Close", "eightshift-ui-components") : __("Open", "eightshift-ui-components"),
304
- disabled
305
- }),
306
- !customOpenButton && /* @__PURE__ */ jsx(
307
- Button,
308
- {
309
- slot: "trigger",
310
- type: "ghost",
311
- icon: isOpen ? icons.caretDownFill : icons.caretDown,
312
- onPress: () => {
313
- setIsOpen(!isOpen);
314
- if (onOpenChange) {
315
- onOpenChange(!isOpen);
272
+ /* @__PURE__ */ jsxs(
273
+ "div",
274
+ {
275
+ className: clsx("es:flex es:h-10 es:items-center es:gap-1 es:transition-[padding]", isOpen && "es:py-1 es:pl-2 es:pr-1", headerClassName),
276
+ ...headerProps,
277
+ children: [
278
+ /* @__PURE__ */ jsx(
279
+ RichLabel,
280
+ {
281
+ icon,
282
+ label,
283
+ subtitle,
284
+ className: labelClassName,
285
+ as: $01b77f81d0f07f68$export$b04be29aa201d4f5,
286
+ fullWidth: true
287
+ }
288
+ ),
289
+ actions && !keepActionsOnExpand && /* @__PURE__ */ jsx(
290
+ AnimatedVisibility,
291
+ {
292
+ visible: !isOpen,
293
+ className: "es:ml-auto es:flex es:gap-2",
294
+ transition: "slideFadeDownSlight",
295
+ noInitial: true,
296
+ children: actions
316
297
  }
317
- },
318
- tooltip: isOpen ? __("Close", "eightshift-ui-components") : __("Open", "eightshift-ui-components"),
319
- disabled,
320
- className: clsx("es:icon:size-5 es:icon:transition-transform", isOpen && "es:icon:-scale-y-100"),
321
- size: "small"
322
- }
323
- )
324
- ] }),
298
+ ),
299
+ actions && keepActionsOnExpand && /* @__PURE__ */ jsx("div", { className: "es:ml-auto es:flex es:gap-2", children: actions }),
300
+ customOpenButton && customOpenButton({
301
+ open: isOpen,
302
+ toggleOpen: () => {
303
+ setIsOpen(!isOpen);
304
+ if (onOpenChange) {
305
+ onOpenChange(!isOpen);
306
+ }
307
+ },
308
+ tooltip: isOpen ? __("Close", "eightshift-ui-components") : __("Open", "eightshift-ui-components"),
309
+ disabled
310
+ }),
311
+ !customOpenButton && /* @__PURE__ */ jsx(
312
+ Button,
313
+ {
314
+ slot: "trigger",
315
+ type: "ghost",
316
+ icon: isOpen ? icons.caretDownFill : icons.caretDown,
317
+ onPress: () => {
318
+ setIsOpen(!isOpen);
319
+ if (onOpenChange) {
320
+ onOpenChange(!isOpen);
321
+ }
322
+ },
323
+ tooltip: isOpen ? __("Close", "eightshift-ui-components") : __("Open", "eightshift-ui-components"),
324
+ disabled,
325
+ className: clsx("es:icon:size-5 es:icon:transition-transform", isOpen && "es:icon:-scale-y-100"),
326
+ size: "small"
327
+ }
328
+ )
329
+ ]
330
+ }
331
+ ),
325
332
  /* @__PURE__ */ jsx(
326
333
  $28f4fd908f0de97f$export$feabaa331e1d464c,
327
334
  {
@@ -194,7 +194,7 @@ const InputField = (props) => {
194
194
  ...other,
195
195
  type,
196
196
  className: clsx(
197
- "es:min-h-10 es:w-full es:rounded-lg es:border es:border-secondary-300 es:p-2 es:text-sm es:shadow-xs es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950",
197
+ "es:min-h-10 es:w-full es:rounded-10 es:border es:border-secondary-300 es:p-2 es:text-sm es:shadow-sm es:not-readonly:focus:shadow-md es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950",
198
198
  "es:any-focus:outline-hidden",
199
199
  "es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50",
200
200
  "es:focus-visible:border-accent-500",
@@ -210,12 +210,12 @@ const InputField = (props) => {
210
210
  {
211
211
  ...other,
212
212
  className: clsx(
213
- "es:min-h-10 es:w-full es:rounded-lg es:border es:border-secondary-300 es:p-2 es:text-sm es:shadow-xs es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950",
213
+ "es:min-h-10 es:w-full es:rounded-10 es:border es:border-secondary-300 es:p-2 es:text-sm es:shadow-sm es:not-readonly:focus:shadow-md es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950",
214
214
  "es:any-focus:outline-hidden",
215
215
  "es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50",
216
216
  "es:focus-visible:border-accent-500",
217
217
  "es:inset-ring es:inset-ring-secondary-100",
218
- "es:disabled:shadow-none! es:disabled:border-secondary-200 es:disabled:bg-secondary-50 es:disabled:text-secondary-500 es:disabled:cursor-default es:readonly:bg-secondary-50",
218
+ "es:disabled:shadow-none! es:readonly:shadow-xs! es:disabled:border-secondary-200 es:disabled:bg-secondary-50 es:disabled:text-secondary-500 es:disabled:cursor-default es:readonly:bg-secondary-50",
219
219
  className
220
220
  )
221
221
  }
@@ -127,7 +127,7 @@ const LinkInput = (props) => {
127
127
  {
128
128
  placeholder: disabled ? null : placeholder,
129
129
  className: clsx(
130
- "es:min-h-10 es:w-full es:rounded-lg es:border es:border-secondary-300 es:py-2 es:pl-2 es:pr-1 es:text-sm es:shadow-xs es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950 es:bg-white",
130
+ "es:min-h-10 es:w-full es:rounded-10 es:border es:border-secondary-300 es:py-2 es:pl-2 es:pr-1 es:text-sm es:shadow-sm es:transition es:selection:bg-accent-500/20 es:selection:text-accent-950 es:bg-white",
131
131
  "es:any-focus:outline-hidden",
132
132
  "es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50",
133
133
  "es:focus-visible:border-accent-500",
@@ -181,7 +181,7 @@ const LinkInput = (props) => {
181
181
  {
182
182
  "aria-label": __("URL suggestions", "eightshift-ui-components"),
183
183
  className: ({ isEntering, isExiting }) => clsx(
184
- "es:border es:rounded-lg es:border-secondary-300 es:bg-white es:shadow-lg es:outline-hidden es:min-w-72",
184
+ "es:border es:rounded-xl es:border-secondary-300 es:bg-white es:shadow-lg es:outline-hidden es:min-w-72",
185
185
  isEntering || !(suggestionList.isLoading || !shouldShowSuggestions) && "es:not-motion-reduce:motion-preset-slide-down-sm es:motion-reduce:motion-preset-fade es:motion-duration-300",
186
186
  isExiting && "es:not-motion-reduce:motion-translate-y-out-[-2.5%] es:motion-opacity-out-0 es:motion-duration-200",
187
187
  (suggestionList.isLoading || !shouldShowSuggestions) && "es:invisible"
@@ -196,8 +196,10 @@ const LinkInput = (props) => {
196
196
  {
197
197
  icon: icons.searchEmpty,
198
198
  label: __("No results", "eightshift-ui-components"),
199
- subtitle: __("Try a different search term.", "eightshift-ui-components"),
200
- className: "es:min-h-12 es:p-2"
199
+ subtitle: __("Try a different search term", "eightshift-ui-components"),
200
+ className: "es:min-h-14 es:p-2 es:w-fit es:mx-auto",
201
+ iconClassName: "es:text-accent-700 es:icon:size-7!",
202
+ noColor: true
201
203
  }
202
204
  ),
203
205
  suggestionList.items.length > 0 && !suggestionList.isLoading && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -231,7 +233,7 @@ const LinkInput = (props) => {
231
233
  {
232
234
  id: item.value,
233
235
  className: clsx(
234
- "es:rounded es:p-1 es:text-sm es:transition",
236
+ "es:rounded-10 es:p-1 es:text-sm es:transition",
235
237
  "es:hover:border-secondary-300 es:hover:bg-secondary-100",
236
238
  "es:focus-visible:border-secondary-300 es:focus-visible:bg-secondary-100",
237
239
  "selected:es:bg-accent-600/10 selected:es:text-accent-900 selected:focus-visible:es:bg-accent-600/15"
@@ -173,7 +173,7 @@ const MenuSection = (props) => {
173
173
  * @preserve
174
174
  */
175
175
  const MenuSeparator = () => {
176
- return /* @__PURE__ */ jsx($431f98aba6844401$export$1ff3c3f08ae963c0, { className: "es:mb-1 es:border-b es:border-secondary-200/50" });
176
+ return /* @__PURE__ */ jsx($431f98aba6844401$export$1ff3c3f08ae963c0, { className: "es:mb-1 es:border-b es:border-secondary-200" });
177
177
  };
178
178
  /**
179
179
  * A menu item.
@@ -215,9 +215,9 @@ const MenuItem = (props) => {
215
215
  "aria-label": ariaLabel,
216
216
  isDisabled: disabled,
217
217
  className: clsx(
218
- "es:mx-1 es:mb-1 es:flex es:min-w-44 es:min-h-8 es:items-center es:gap-1.5",
218
+ "es:mx-1 es:mb-1 es:flex es:min-w-44 es:min-h-9 es:items-center es:gap-1.5",
219
219
  "es:first:mt-1 es:icon:size-5 es:icon:text-secondary-500",
220
- "es:select-none es:rounded-md es:p-1.5 es:text-sm es:transition",
220
+ "es:select-none es:rounded-xl es:py-1.5 es:px-2.5 es:text-sm es:transition",
221
221
  "es:any-focus:outline-hidden",
222
222
  !disabled && "es:hover:bg-secondary-100 es:focus-visible:inset-ring es:focus-visible:inset-ring-secondary-100/30 es:focus-visible:bg-secondary-100 es:contrast-more:focus-visible:bg-accent-500/15",
223
223
  disabled ? "es:text-secondary-400" : "es:text-secondary-800",
@@ -258,7 +258,7 @@ const Modal2 = (props) => {
258
258
  $f3f84453ead64de5$export$2b77a92f1a5ad772,
259
259
  {
260
260
  className: ({ isEntering, isExiting }) => clsx(
261
- "es:w-full es:max-w-lg es:overflow-hidden es:rounded-xl es:border es:border-secondary-100 es:bg-white es:p-5 es:text-left es:align-middle es:shadow-xl es:inset-ring es:inset-ring-secondary-100",
261
+ "es:w-full es:max-w-lg es:overflow-hidden es:rounded-2xl es:border es:border-secondary-100 es:bg-white es:p-5 es:text-left es:align-middle es:shadow-xl es:inset-ring es:inset-ring-secondary-50",
262
262
  isEntering && "es:motion-safe:motion-scale-in-95 es:motion-fade-in es:motion-duration-300 es:motion-ease-spring-smooth/scale",
263
263
  isExiting && "es:motion-safe:motion-scale-out-95 es:motion-fade-out es:motion-duration-250 es:motion-ease-spring-smooth/scale",
264
264
  className
@@ -31,30 +31,30 @@ const Notice = (props) => {
31
31
  const styles = {
32
32
  info: {
33
33
  icon: icons.infoCircle,
34
- className: "es:border-blue-400 es:shadow-blue-500/15 es:bg-blue-100/5",
34
+ className: "es:border-blue-400/75 es:shadow-blue-500/15 es:bg-blue-200/5",
35
35
  iconColor: "es:text-blue-400",
36
- textColor: "es:text-blue-900",
36
+ textColor: "es:text-blue-500 es:saturate-75",
37
37
  subtitleColor: "es:text-blue-950/60"
38
38
  },
39
39
  success: {
40
40
  icon: icons.checkSquare,
41
- className: "es:border-green-500 es:shadow-green-500/15 es:bg-green-100/5",
42
- iconColor: "es:text-green-500",
43
- textColor: "es:text-green-900",
44
- subtitleColor: "es:text-green-950/60"
41
+ className: "es:border-emerald-500/75 es:shadow-emerald-500/15 es:bg-emerald-200/5",
42
+ iconColor: "es:text-emerald-500",
43
+ textColor: "es:text-emerald-600",
44
+ subtitleColor: "es:text-emerald-950/60"
45
45
  },
46
46
  warning: {
47
47
  icon: icons.warning,
48
- className: "es:border-amber-500 es:shadow-amber-500/15 es:bg-amber-100/5",
49
- iconColor: "es:text-amber-500",
50
- textColor: "es:text-amber-900",
51
- subtitleColor: "es:text-amber-950/60"
48
+ className: "es:border-orange-500/75 es:shadow-orange-500/15 es:bg-orange-200/5",
49
+ iconColor: "es:text-orange-500",
50
+ textColor: "es:text-orange-700",
51
+ subtitleColor: "es:text-orange-950/60"
52
52
  },
53
53
  error: {
54
54
  icon: icons.errorCircle,
55
- className: "es:border-red-400 es:shadow-red-500/15 es:bg-red-100/5",
56
- iconColor: "es:text-red-400",
57
- textColor: "es:text-red-900",
55
+ className: "es:border-red-300 es:shadow-red-500/15 es:bg-red-200/5",
56
+ iconColor: "es:text-red-500",
57
+ textColor: "es:text-red-700",
58
58
  subtitleColor: "es:text-red-950/60"
59
59
  },
60
60
  placeholder: {
@@ -75,9 +75,9 @@ const Notice = (props) => {
75
75
  "div",
76
76
  {
77
77
  className: clsx(
78
- "es:grid es:grid-cols-[auto_1fr] es:grid-rows-[auto_auto] es:rounded-md es:border es:bg-linear-to-tr es:shadow-sm",
78
+ "es:grid es:grid-cols-[auto_1fr] es:grid-rows-[auto_auto] es:rounded-xl es:border es:bg-linear-to-tr es:shadow-sm",
79
79
  styles[type].className,
80
- icon || styles[type].icon ? "es:gap-x-1.5 es:p-1.5" : "es:px-2 es:py-1.5",
80
+ icon || styles[type].icon ? "es:gap-x-1.5 es:p-2" : "es:px-2 es:py-2",
81
81
  className
82
82
  ),
83
83
  children: [
@@ -85,7 +85,7 @@ const Notice = (props) => {
85
85
  "span",
86
86
  {
87
87
  className: clsx(
88
- "es:col-span-1 es:col-start-1 es:row-span-2 es:row-start-1 es:shrink-0 es:icon:size-7",
88
+ "es:col-span-1 es:col-start-1 es:row-span-2 es:row-start-1 es:shrink-0 es:icon:size-6",
89
89
  alignIconToTitle ? "es:self-baseline" : "es:self-center",
90
90
  styles[type].iconColor
91
91
  ),
@@ -218,7 +218,7 @@ const NumberPicker = ({
218
218
  $a049562f99e7db0e$export$eb2fcfdbd7ba97d4,
219
219
  {
220
220
  className: clsx(
221
- "es:group es:flex es:w-fit es:items-center es:rounded-lg es:border es:border-secondary-300 es:pl-1 es:pr-0.5 es:shadow-xs es:transition",
221
+ "es:group es:flex es:w-fit es:items-center es:rounded-10 es:border es:border-secondary-300 es:pl-1 es:pr-0.5 es:shadow-sm es:focus-within:shadow-md es:transition",
222
222
  "es:inset-ring es:inset-ring-secondary-100",
223
223
  isInputFocused && "es:outline-hidden es:focus-visible:border-accent-500 es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50",
224
224
  !prefix && (((_a = sizes == null ? void 0 : sizes[size]) == null ? void 0 : _a.noPrefixPadding) ?? sizes.default.noPrefixPadding),
@@ -27,13 +27,20 @@ const FilePlaceholder = (props) => {
27
27
  return /* @__PURE__ */ jsx(
28
28
  RichLabel,
29
29
  {
30
- icon: icon ?? icons.file,
30
+ icon: /* @__PURE__ */ jsx(
31
+ "div",
32
+ {
33
+ className: clsx(
34
+ "es:w-fit es:rounded-xl es:border es:border-secondary-300 es:p-2",
35
+ fileName && "es:shadow-sm es:bg-gradient-to-br es:from-secondary-50 es:to-secondary-100 es:text-secondary-600",
36
+ !fileName && "es:border-dashed es:text-secondary-500"
37
+ ),
38
+ children: icon ?? icons.file
39
+ }
40
+ ),
31
41
  label: (fileName ? fileName : children) ?? __("No file selected", "eightshift-ui-components"),
32
- className: clsx(
33
- "es:w-fit es:rounded-xl es:border es:border-secondary-300 es:bg-secondary-50 es:p-2 es:pr-3 es:text-xs es:text-secondary-300 es:shadow-xs",
34
- fileName && "es:font-mono",
35
- className
36
- )
42
+ className: clsx(fileName && "es:font-mono", className),
43
+ noColor: true
37
44
  }
38
45
  );
39
46
  };
@@ -32,8 +32,8 @@ const ImagePlaceholder = (props) => {
32
32
  return null;
33
33
  }
34
34
  const styleClassName = {
35
- default: "es:rounded-xl es:border es:border-secondary-300 es:bg-secondary-50 es:text-secondary-300 es:shadow-xs",
36
- simple: "es:rounded-xl es:border es:border-secondary-300 es:border-dashed es:text-secondary-300"
35
+ default: "es:rounded-2xl es:border es:border-secondary-300 es:bg-gradient-to-br es:from-white es:to-secondary-50 es:text-secondary-300 es:shadow-sm",
36
+ simple: "es:rounded-2xl es:border es:border-secondary-300 es:border-dashed es:text-secondary-300"
37
37
  };
38
38
  const sizeClassName = {
39
39
  auto: "",
@@ -29,8 +29,8 @@ const MediaPlaceholder = (props) => {
29
29
  return null;
30
30
  }
31
31
  const styleClassName = {
32
- default: "es:rounded-xl es:border es:border-secondary-300 es:bg-secondary-50 es:text-secondary-400 es:shadow-xs",
33
- simple: "es:rounded-xl es:border es:border-secondary-300 es:border-dashed es:text-secondary-400"
32
+ default: "es:rounded-2xl es:border es:border-secondary-300 es:bg-secondary-50 es:text-secondary-400 es:shadow-sm",
33
+ simple: "es:rounded-2xl es:border es:border-secondary-300 es:border-dashed es:text-secondary-400"
34
34
  };
35
35
  const sizeClassName = {
36
36
  auto: "",
@@ -102,7 +102,7 @@ const Popover = (props) => {
102
102
  crossOffset,
103
103
  containerPadding,
104
104
  className: ({ isEntering, isExiting }) => clsx(
105
- "es:rounded-lg es:border es:border-secondary-300 es:bg-white es:shadow-lg es:outline-hidden",
105
+ "es:rounded-2xl es:border es:border-secondary-300 es:bg-white es:inset-ring es:inset-ring-secondary-100 es:shadow-xl es:outline-hidden",
106
106
  "es:motion-safe:motion-ease-spring-smooth",
107
107
  isEntering && "es:motion-safe:motion-preset-slide-down-sm es:motion-safe:motion-duration-300 es:motion-reduce:motion-preset-fade-md",
108
108
  isExiting && "es:not-motion-reduce:motion-translate-y-out-[-2.5%] es:motion-opacity-out-0 es:motion-duration-200",
@@ -382,14 +382,14 @@ const RadioButton = (props) => {
382
382
  "es:cursor-pointer es:py-1 es:px-1.5 es:border es:border-secondary-300 es:hover:bg-secondary-100/75 es:transition es:min-h-10",
383
383
  "es:first:rounded-t-xl es:last:rounded-b-xl",
384
384
  "es:focus-visible:ring-2 es:focus-visible:border-accent-500 es:focus-visible:ring-accent-500/50 es:focus-visible:z-10",
385
- "es:shadow-xs es:inset-ring es:inset-shadow-xs",
385
+ "es:shadow-sm es:inset-ring es:inset-shadow-xs",
386
386
  "es:inset-ring-secondary-100 es:inset-shadow-secondary-100/50"
387
387
  ),
388
388
  segmentedHorizontal: clsx(
389
389
  "es:cursor-pointer es:py-1 es:px-1.5 es:border es:border-secondary-300 es:hover:bg-secondary-100/75 es:transition es:grow es:min-h-10",
390
390
  "es:first:rounded-l-xl es:last:rounded-r-xl",
391
391
  "es:focus-visible:ring-2 es:focus-visible:border-accent-500 es:focus-visible:ring-accent-500/50 es:focus-visible:z-10",
392
- "es:shadow-xs es:inset-ring es:inset-shadow-xs",
392
+ "es:shadow-sm es:inset-ring es:inset-shadow-xs",
393
393
  "es:inset-ring-secondary-100 es:inset-shadow-secondary-100/50"
394
394
  )
395
395
  };
@@ -420,7 +420,7 @@ const RadioButton = (props) => {
420
420
  "es:size-5 es:flex es:items-center es:justify-center",
421
421
  "es:transition es:cursor-pointer",
422
422
  "es:bg-radial es:border es:rounded-full",
423
- "es:shadow-xs es:inset-ring es:inset-shadow-xs",
423
+ "es:shadow-sm es:inset-ring es:inset-shadow-xs",
424
424
  "es:any-focus:outline-hidden",
425
425
  !isSelected && "es:border-secondary-300 es:inset-ring-secondary-100 es:inset-shadow-secondary-100/50",
426
426
  !isSelected && "es:from-secondary-50 es:to-white es:text-secondary-600 es:hover:text-accent-950",
@@ -30,7 +30,7 @@ import { RepeaterContext } from "./repeater-context.js";
30
30
  */
31
31
  const RepeaterItem = (props) => {
32
32
  const { children, icon, label, subtitle, "aria-label": ariaLabel, className, actions, textValue, expandDisabled, menuOptions, noMenuButton, ...rest } = props;
33
- const { deleteItem, duplicateItem, isDragged, isOutOfBounds, isSelected, canDelete, canAdd, allOpen, setAllOpen } = useContext(RepeaterContext);
33
+ const { deleteItem, duplicateItem, isDragged, isOutOfBounds, isSelected, canDelete, canAdd, allOpen, setAllOpen, setOpenItems, id, isItemOpen } = useContext(RepeaterContext);
34
34
  return /* @__PURE__ */ jsx(
35
35
  Expandable,
36
36
  {
@@ -39,20 +39,21 @@ const RepeaterItem = (props) => {
39
39
  subtitle: isOutOfBounds ? null : subtitle,
40
40
  className: clsx(
41
41
  "es:transition",
42
- isDragged && "es:border es:border-secondary-100 es:bg-white/50 es:shadow-md es:backdrop-blur-lg",
43
- isOutOfBounds && "es:border es:border-red-200! es:bg-red-50 es:shadow-red-500/20 es:[&_button]:invisible es:[&_svg_path]:stroke-red-500"
42
+ !isItemOpen && isDragged && "es:border es:border-secondary-100 es:bg-white/50 es:shadow-md es:backdrop-blur-lg",
43
+ !isItemOpen && isOutOfBounds && "es:border es:border-red-200! es:bg-red-50 es:shadow-red-500/20 es:[&_button]:invisible es:[&_svg_path]:stroke-red-500"
44
44
  ),
45
- labelClassName: clsx(className, isDragged ? "es:cursor-grabbing" : "es:cursor-grab"),
45
+ labelClassName: clsx(className, isDragged && "es:cursor-grabbing", !isDragged && !isItemOpen && "es:cursor-grab"),
46
46
  headerClassName: clsx(
47
47
  "es:transition es:rounded-lg es:border es:border-transparent",
48
48
  isSelected && "es:bg-accent-50 es:border-accent-100",
49
- "es:group-focus:outline-hidden es:group-focus:border-accent-500 es:group-focus:ring-2 es:group-focus:ring-accent-500/50"
49
+ !isItemOpen && "es:group-focus:outline-hidden es:group-focus:border-accent-500 es:group-focus:ring-2 es:group-focus:ring-accent-500/50"
50
50
  ),
51
51
  open: allOpen,
52
52
  onOpenChange: (open) => {
53
53
  if (allOpen && !open) {
54
54
  setAllOpen(false);
55
55
  }
56
+ setOpenItems((prev) => ({ ...prev, [id]: open }));
56
57
  },
57
58
  customOpenButton: ({ open, toggleOpen, tooltip, disabled }) => {
58
59
  return /* @__PURE__ */ jsxs("div", { className: "es:flex es:items-center es:gap-px", children: [