betterstart-cli 0.0.124 → 0.0.125

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.
@@ -9,7 +9,7 @@ function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {
9
9
  <CheckboxPrimitive.Root
10
10
  data-slot="checkbox"
11
11
  className={cn(
12
- 'peer relative flex size-4 shrink-0 items-center justify-center rounded border border-border transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground',
12
+ 'peer relative flex size-4.5 shrink-0 items-center justify-center rounded-[4px] border border-foreground/15 transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground',
13
13
  className
14
14
  )}
15
15
  {...props}
@@ -113,7 +113,7 @@ function ComboboxContent({
113
113
  data-slot="combobox-content"
114
114
  data-chips={!!anchor}
115
115
  className={cn(
116
- 'cn-menu-target cn-menu-translucent group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded bg-popover text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-9 *:data-[slot=input-group]:border-none *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
116
+ 'cn-menu-target cn-menu-translucent group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width))] origin-(--transform-origin) overflow-hidden rounded bg-popover text-popover-foreground shadow-2xl ring-1 ring-foreground/5 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-2 *:data-[slot=input-group]:mb-1 *:data-[slot=input-group]:h-9 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
117
117
  className
118
118
  )}
119
119
  {...props}
@@ -128,7 +128,7 @@ function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {
128
128
  <ComboboxPrimitive.List
129
129
  data-slot="combobox-list"
130
130
  className={cn(
131
- 'no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0',
131
+ 'no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(11))),calc(var(--available-height)-(--spacing(11))))] scroll-py-1 overflow-y-auto overscroll-contain px-2 pt-1 pb-2 data-empty:p-0',
132
132
  className
133
133
  )}
134
134
  {...props}
@@ -141,7 +141,7 @@ function ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.
141
141
  <ComboboxPrimitive.Item
142
142
  data-slot="combobox-item"
143
143
  className={cn(
144
- "relative flex w-full cursor-default items-center gap-2.5 rounded py-2 pr-8 pl-3 outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
144
+ "relative flex w-full cursor-default items-center gap-2.5 rounded py-2 pr-8 pl-3 font-medium outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
145
145
  className
146
146
  )}
147
147
  {...props}
@@ -14,7 +14,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<'div'>) {
14
14
  data-slot="input-group"
15
15
  role="group"
16
16
  className={cn(
17
- 'group/input-group relative flex h-9 w-full min-w-0 items-center rounded border border-border bg-input/30 transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded has-data-[align=block-start]:rounded has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[textarea]:rounded has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',
17
+ 'group/input-group relative flex h-9 w-full min-w-0 items-center rounded border border-border bg-input transition-colors outline-none has-data-[align=block-end]:rounded has-data-[align=block-start]:rounded has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[textarea]:rounded has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5',
18
18
  className
19
19
  )}
20
20
  {...props}
package/dist/cli.js CHANGED
@@ -17686,7 +17686,7 @@ ${indent} maxItems={${field.maxItems}}` : ""
17686
17686
  props: {
17687
17687
  indent,
17688
17688
  pathNameProp: pathNameProp(path114),
17689
- formItemProps: formItemProps(field, "flex flex-row items-start space-x-3 space-y-0"),
17689
+ formItemProps: formItemProps(field, "gap-2 flex flex-row items-start space-y-0"),
17690
17690
  labelWithDescription: labelWithDescription(
17691
17691
  `<FormLabel>${nestedLabel}</FormLabel>`,
17692
17692
  nestedHint,
@@ -17899,7 +17899,7 @@ function renderBooleanField(field, indent, label, hintJSX, context) {
17899
17899
  props: {
17900
17900
  indent,
17901
17901
  fieldName: field.name,
17902
- formItemProps: formItemProps(field, "flex flex-row items-start space-x-3 space-y-0"),
17902
+ formItemProps: formItemProps(field, "gap-2 flex flex-row items-start space-y-0"),
17903
17903
  onCheckedChange,
17904
17904
  label,
17905
17905
  hintJsxContent: hintJSX ? `
@@ -18920,7 +18920,7 @@ function renderMultiSelectFieldActionButtonsTemplate({
18920
18920
  return `
18921
18921
  ${indent} {canCreateOption ? (
18922
18922
  ${indent} <>
18923
- ${indent} <ComboboxSeparator />
18923
+ ${indent} <ComboboxSeparator className="group-data-empty/combobox-content:hidden" />
18924
18924
  ${indent} <div className="p-1">
18925
18925
  ${indent} <Button
18926
18926
  ${indent} type="button"
@@ -18937,6 +18937,18 @@ ${indent} </div>
18937
18937
  ${indent} </>
18938
18938
  ${indent} ) : null}`;
18939
18939
  }
18940
+ function renderMultiSelectFieldEmptyStateTemplate({
18941
+ indent,
18942
+ lowerLabel,
18943
+ creatable
18944
+ }) {
18945
+ if (creatable) {
18946
+ return `${indent} {canCreateOption ? null : (
18947
+ ${indent} <ComboboxEmpty>No ${lowerLabel} found.</ComboboxEmpty>
18948
+ ${indent} )}`;
18949
+ }
18950
+ return `${indent} <ComboboxEmpty>No ${lowerLabel} found.</ComboboxEmpty>`;
18951
+ }
18940
18952
  function renderMultiSelectFieldActionButtonsSerializedValueTemplate({
18941
18953
  indent,
18942
18954
  fieldName,
@@ -18950,6 +18962,7 @@ function renderMultiSelectFieldActionButtonsSerializedValueTemplate({
18950
18962
  stringify,
18951
18963
  searchBinding,
18952
18964
  lowerLabel,
18965
+ emptyState,
18953
18966
  defaultValueFromHandlerContent,
18954
18967
  clearSearch,
18955
18968
  createAction
@@ -19024,9 +19037,9 @@ ${indent} )}
19024
19037
  ${indent} </span>
19025
19038
  ${indent} </ComboboxTrigger>
19026
19039
  ${indent} </FormControl>
19027
- ${indent} <ComboboxContent align="start">
19040
+ ${indent} <ComboboxContent align="end">
19028
19041
  ${indent} <ComboboxInput placeholder="Search ${lowerLabel}..." showTrigger={false} />
19029
- ${indent} <ComboboxEmpty>No ${lowerLabel} found.</ComboboxEmpty>
19042
+ ${emptyState}
19030
19043
  ${indent} <ComboboxList>
19031
19044
  ${indent} {(option) => (
19032
19045
  ${indent} <ComboboxItem key={option.value} value={option}>
@@ -19050,6 +19063,8 @@ function renderMultiSelectFieldRenderer(request) {
19050
19063
  return renderMultiSelectFieldSearchBindingTemplate(request.props);
19051
19064
  case "renderMultiSelectFieldCreateLabelTemplate":
19052
19065
  return renderMultiSelectFieldCreateLabelTemplate(request.props);
19066
+ case "renderMultiSelectFieldEmptyStateTemplate":
19067
+ return renderMultiSelectFieldEmptyStateTemplate(request.props);
19053
19068
  case "renderMultiSelectFieldActionButtonsTemplate":
19054
19069
  return renderMultiSelectFieldActionButtonsTemplate(request.props);
19055
19070
  case "renderMultiSelectFieldActionButtonsSerializedValueTemplate":
@@ -19106,6 +19121,14 @@ function renderMultiSelectField(field, indent, label, hintJSX, context) {
19106
19121
  }) : "";
19107
19122
  const clearSearch = isCreatable ? `
19108
19123
  ${indent} ${setSearchVar}('')` : "";
19124
+ const emptyState = renderMultiSelectFieldRenderer({
19125
+ kind: "renderMultiSelectFieldEmptyStateTemplate",
19126
+ props: {
19127
+ indent,
19128
+ lowerLabel,
19129
+ creatable: isCreatable === true
19130
+ }
19131
+ });
19109
19132
  return renderMultiSelectFieldRenderer({
19110
19133
  kind: "renderMultiSelectFieldActionButtonsSerializedValueTemplate",
19111
19134
  props: {
@@ -19125,6 +19148,7 @@ ${indent} ${setSearchVar}('')` : "";
19125
19148
  stringify: JSON.stringify(placeholder),
19126
19149
  searchBinding,
19127
19150
  lowerLabel,
19151
+ emptyState,
19128
19152
  defaultValueFromHandlerContent: defaultValueFromHandler ? `${indent} ${defaultValueFromHandler}(nextValues)
19129
19153
  ` : "",
19130
19154
  clearSearch,