nitro-web 0.0.111 → 0.0.112

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.
@@ -11,7 +11,14 @@ type DropdownProps = {
11
11
  css?: string
12
12
  /** The direction of the menu **/
13
13
  dir?: 'bottom-left'|'bottom-right'|'top-left'|'top-right'
14
- options?: { label: string|React.ReactNode, onClick?: Function, isSelected?: boolean, icon?: React.ReactNode, className?: string }[]
14
+ options?: {
15
+ label: string|React.ReactNode,
16
+ onClick?: Function,
17
+ isSelected?: boolean,
18
+ icon?: React.ReactNode,
19
+ iconLeft?: React.ReactNode,
20
+ className?: string
21
+ }[]
15
22
  /** Whether the dropdown is hoverable **/
16
23
  isHoverable?: boolean
17
24
  /** The content to render inside the top of the dropdown **/
@@ -22,6 +29,7 @@ type DropdownProps = {
22
29
  menuToggles?: boolean
23
30
  /** The minimum width of the menu **/
24
31
  minWidth?: number | string
32
+ maxHeight?: number | string
25
33
  toggleCallback?: (isActive: boolean) => void
26
34
  }
27
35
 
@@ -39,6 +47,7 @@ export const Dropdown = forwardRef(function Dropdown({
39
47
  menuIsOpen,
40
48
  menuToggles=true,
41
49
  minWidth,
50
+ maxHeight,
42
51
  toggleCallback,
43
52
  }: DropdownProps, ref) {
44
53
  // https://letsbuildui.dev/articles/building-a-dropdown-menu-component-with-react-hooks
@@ -156,7 +165,11 @@ export const Dropdown = forwardRef(function Dropdown({
156
165
  })
157
166
  }
158
167
  <ul
159
- style={{ minWidth }}
168
+ style={{
169
+ minWidth: minWidth,
170
+ maxHeight: maxHeight,
171
+ ...(maxHeight ? { overflow: 'auto' } : {}),
172
+ }}
160
173
  class={
161
174
  twMerge(`${menuStyle} ${ready ? 'is-ready' : ''} absolute invisible opacity-0 select-none min-w-full z-[1] ${menuClassName||''}`)}
162
175
  >
@@ -170,6 +183,7 @@ export const Dropdown = forwardRef(function Dropdown({
170
183
  className={twMerge(`${optionStyle} ${option.className} ${menuOptionClassName}`)}
171
184
  onClick={(e: React.MouseEvent) => onClick(option, e)}
172
185
  >
186
+ { !!option.iconLeft && option.iconLeft }
173
187
  <span class="flex-auto">{option.label}</span>
174
188
  { !!option.icon && option.icon }
175
189
  { option.isSelected && <CheckCircleIcon className="size-[22px] text-primary -my-1 -mx-0.5" /> }
@@ -124,7 +124,7 @@ export function Table<T extends TableRow>({
124
124
  return (
125
125
  <div
126
126
  style={{ marginTop: -rowGap }}
127
- className={twMerge('overflow-x-auto thin-scrollbar', className)}
127
+ className={twMerge('overflow-x-auto thin-scrollbar min-h-full', className)}
128
128
  >
129
129
  <div
130
130
  style={{ borderSpacing: `0 ${rowGap}px` }}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nitro-web",
3
- "version": "0.0.111",
3
+ "version": "0.0.112",
4
4
  "repository": "github:boycce/nitro-web",
5
5
  "homepage": "https://boycce.github.io/nitro-web/",
6
6
  "description": "Nitro is a battle-tested, modular base project to turbocharge your projects, styled using Tailwind 🚀",