@mdaushi/kinetics-react 0.1.0-a
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.
- package/dist/index.cjs +788 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +32 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +780 -0
- package/dist/index.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/button.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/action-cell.tsx","../src/components/table-column-header.tsx","../src/hooks/use-table.ts","../src/components/ui/label.tsx","../src/components/ui/select.tsx","../src/components/table-pagination.tsx","../src/components/ui/input.tsx","../src/components/table-toolbar.tsx","../src/components/ui/table.tsx","../src/components/table-render.tsx","../src/components/table.tsx"],"names":["ButtonPrimitive","jsx","MenuPrimitive","jsxs","router","SelectPrimitive","CheckIcon","InputPrimitive","Table"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { cn } from \"./../../lib/utils\";\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/80\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\";\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<\n MenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none 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-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"cn-rtl-flip ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"w-auto min-w-[96px] rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-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-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\",\n className,\n )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","import { router } from \"@inertiajs/react\";\nimport type {\n TableAction,\n TableActionGroup,\n ActionItem,\n} from \"@mdaushi/kinetics-core\";\nimport { Button } from \"./ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"./ui/dropdown-menu\";\nimport { DynamicIcon, IconName } from \"lucide-react/dynamic\";\n\nexport type { TableAction, TableActionGroup, ActionItem };\n\ninterface ActionCellProps {\n actions: ActionItem[];\n}\n\nexport function ActionCell({ actions }: ActionCellProps) {\n return (\n <div className=\"flex items-center justify-end gap-1\">\n {actions.map((item, idx) =>\n item.type === \"group\" ? (\n <ActionGroupDropdown key={idx} group={item} />\n ) : (\n <ActionButton key={item.key} action={item} />\n ),\n )}\n </div>\n );\n}\n\nfunction ActionButton({ action }: { action: TableAction }) {\n function handleClick() {\n if (action.disabled) return;\n execute(action);\n }\n\n return (\n <Button\n size={\"sm\"}\n onClick={handleClick}\n disabled={action.disabled}\n title={action.label}\n variant={action.variant}\n >\n {action.icon && <Icon name={action.icon} />}\n <span className=\"sr-only sm:not-sr-only\">{action.label}</span>\n </Button>\n );\n}\n\nfunction ActionGroupDropdown({ group }: { group: TableActionGroup }) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button variant=\"ghost\" size=\"icon\">\n {group.icon && <Icon name={group.icon} />}\n <span className=\"sr-only\">Open menu</span>\n </Button>\n }\n ></DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-40\">\n {group.actions.map((action) => (\n <DropdownMenuItem\n key={action.key}\n disabled={action.disabled}\n variant={action.variant}\n >\n {action.icon && <Icon name={action.icon} />}\n {action.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nfunction execute(action: TableAction) {\n if (!action.href) return;\n if (action.method === \"get\") {\n router.visit(action.href);\n } else {\n router.visit(action.href, { method: action.method });\n }\n}\n\ninterface IconProps {\n name: string;\n size?: number;\n}\n\nexport function Icon({ name, size = 16 }: IconProps) {\n return <DynamicIcon name={name as IconName} size={size} />;\n}\n","import { Column } from \"@tanstack/react-table\";\nimport { cn } from \"../lib/utils\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"./ui/dropdown-menu\";\nimport { Button } from \"./ui/button\";\nimport { ArrowDown, ArrowUp, ChevronsUpDown } from \"lucide-react\";\n\ninterface TableColumnHeaderProps<\n TData,\n> extends React.HTMLAttributes<HTMLDivElement> {\n column: Column<TData>;\n title: string;\n}\n\nexport function TableColumnHeader<TData>({\n column,\n title,\n className,\n}: TableColumnHeaderProps<TData>) {\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"-ml-3 h-8 data-[state=open]:bg-accent\"\n >\n <span>{title}</span>\n {column.getIsSorted() === \"desc\" ? (\n <ArrowDown />\n ) : column.getIsSorted() === \"asc\" ? (\n <ArrowUp />\n ) : (\n <ChevronsUpDown />\n )}\n </Button>\n }\n ></DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\n <ArrowUp />\n Asc\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\n <ArrowDown />\n Desc\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n","import { router } from \"@inertiajs/react\";\nimport {\n ColumnDef,\n getCoreRowModel,\n useReactTable,\n SortingState,\n PaginationState,\n} from \"@tanstack/react-table\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport {\n ActionItem,\n formatValue,\n TableColumn,\n TableMeta,\n TableState,\n TableController,\n TableProps,\n} from \"@mdaushi/kinetics-core\";\nimport { ActionCell } from \"../components/action-cell\";\nimport { TableColumnHeader } from \"../components/table-column-header\";\n\nexport type { TableProps, TableColumn, TableMeta, TableState };\n\nexport interface UseTableOptions<TData> {\n table: TableProps<TData>;\n url?: string;\n searchDebounce?: number;\n}\n\nexport function useTable<TData extends Record<string, unknown>>({\n table: serverData,\n url,\n searchDebounce = 300,\n}: UseTableOptions<TData>) {\n const { data, columns: serverColumns, meta, state: serverState } = serverData;\n\n // Controller from core — all logic parameters are here\n const ctrl = useMemo(\n () => new TableController(serverState, meta),\n [serverState, meta, url],\n );\n\n const [search, setSearchLocal] = useState(serverState.search ?? \"\");\n\n const visit = useCallback(\n (params: Record<string, unknown>) => {\n router.get(url ?? window.location.pathname, params as any, {\n preserveState: true,\n preserveScroll: true,\n replace: true,\n });\n },\n [url],\n );\n\n // Handlers\n\n const handleSortChange = useCallback(\n (updater: SortingState | ((prev: SortingState) => SortingState)) => {\n const current = ctrl.toSorting();\n const next = typeof updater === \"function\" ? updater(current) : updater;\n visit(ctrl.resolveSort(next));\n },\n [ctrl, visit],\n );\n\n const handlePageChange = useCallback(\n (\n updater: PaginationState | ((prev: PaginationState) => PaginationState),\n ) => {\n const current = ctrl.toPagination();\n const next = typeof updater === \"function\" ? updater(current) : updater;\n visit(ctrl.resolvePagination(next));\n },\n [ctrl, visit],\n );\n\n const handleSearchChange = useDebouncedCallback((value: string) => {\n visit(ctrl.resolveSearchParams(value));\n }, searchDebounce);\n\n const handleFilterChange = useCallback(\n (key: string, value: unknown) => {\n visit(ctrl.resolveFilterParams(key, value));\n },\n [ctrl, visit],\n );\n\n // Build TanStack column defs from server column definitions\n\n const columnDefs = useMemo<ColumnDef<TData>[]>(() => {\n return serverColumns\n .filter((col) => col.visible)\n .map((col): ColumnDef<TData> => {\n // Action column — auto-inject ActionCell\n if (col.type === \"actions\") {\n return {\n id: col.key,\n accessorKey: col.key,\n header: col.label,\n enableSorting: false,\n cell: ({ getValue }) =>\n React.createElement(ActionCell, {\n actions: (getValue() as ActionItem[]) ?? [],\n }),\n };\n }\n\n return {\n id: col.key,\n accessorKey: col.key,\n header: ({ column }) =>\n React.createElement(TableColumnHeader, {\n column: column,\n title: col.label,\n } as any),\n enableSorting: col.sortable,\n enableColumnFilter: col.filterable,\n cell: ({ getValue }) => {\n const value = getValue();\n return formatValue(value, col.type);\n },\n };\n });\n }, [serverColumns]);\n\n // TanStack Table instance\n\n const tableInstance = useReactTable<TData>({\n data,\n columns: columnDefs,\n state: {\n sorting: ctrl.toSorting(),\n pagination: ctrl.toPagination(),\n },\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n pageCount: meta.last_page,\n onSortingChange: handleSortChange,\n onPaginationChange: handlePageChange,\n getCoreRowModel: getCoreRowModel(),\n });\n\n return {\n tableInstance,\n columns: serverColumns,\n meta,\n search,\n setSearch: (value: string) => {\n setSearchLocal(value);\n handleSearchChange(value);\n },\n setFilter: handleFilterChange,\n filters: serverState.filters,\n };\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nfunction Label({ className, ...props }: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Select = SelectPrimitive.Root;\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n }\n />\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n \"relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none 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-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\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"px-1.5 py-1 text-xs text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**: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 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <CheckIcon className=\"pointer-events-none\" />\n </span>\n }\n />\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import { TableMeta } from \"@mdaushi/kinetics-core\";\nimport { Label } from \"./ui/label\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"./ui/select\";\nimport { Table } from \"@tanstack/react-table\";\nimport { Button } from \"./ui/button\";\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n} from \"lucide-react\";\n\ninterface TablePaginationProps<TData> {\n meta: TableMeta;\n table: Table<TData>;\n}\n\nexport default function TablePagination<TData>({\n meta,\n table,\n}: TablePaginationProps<TData>) {\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex-1 text-sm text-muted-foreground\">\n <span>\n Showing <strong>{meta.from ?? 0}</strong>-\n <strong> {meta.to ?? 0}</strong> of <strong>{meta.total}</strong>{\" \"}\n results\n </span>\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"hidden items-center gap-2 lg:flex\">\n <Label htmlFor=\"rows-per-page\" className=\"text-sm font-medium\">\n Rows per page\n </Label>\n <Select\n value={meta.per_page.toString()}\n onValueChange={(value) => table.setPageSize(Number(value))}\n >\n <SelectTrigger size=\"sm\" className=\"w-20\" id=\"rows-per-page\">\n <SelectValue placeholder={meta.per_page} />\n </SelectTrigger>\n <SelectContent side=\"left\" align=\"end\">\n {[10, 15, 50, 100].map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex w-fit items-center justify-center text-sm font-medium\">\n Page {meta.current_page} of {meta.last_page}\n </div>\n <div className=\"ml-auto flex items-center gap-2 lg:ml-0\">\n <Button\n variant=\"outline\"\n className=\"hidden h-8 w-8 p-0 lg:flex\"\n onClick={() => table.firstPage()}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to first page</span>\n <ChevronsLeft />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8\"\n size=\"icon\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeft />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8\"\n size=\"icon\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRight />\n </Button>\n <Button\n variant=\"outline\"\n className=\"hidden size-8 lg:flex\"\n size=\"icon\"\n onClick={() => table.lastPage()}\n disabled={!table.getCanNextPage()}\n >\n <span className=\"sr-only\">Go to last page</span>\n <ChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n );\n}\n","import * as React from \"react\"\nimport { Input as InputPrimitive } from \"@base-ui/react/input\"\nimport { cn } from \"../../lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import { TableColumn } from \"@mdaushi/kinetics-core\";\nimport { X } from \"lucide-react\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"./ui/select\";\nimport { Button } from \"./ui/button\";\nimport { Input } from \"./ui/input\";\n\ninterface TableToolbarProps {\n search: string;\n columns: TableColumn[];\n setSearch: (val: string) => void;\n placeholder: string;\n filters: Record<string, unknown>;\n setFilter: (key: string, value: unknown) => void;\n}\nexport default function TableToolbar({\n search,\n columns,\n setSearch,\n placeholder,\n filters,\n setFilter,\n}: TableToolbarProps) {\n const filterableColumns = columns.filter((c) => c.filterable);\n\n const hasSearch = columns.some((c) => c.searchable);\n\n const hasFilter = search || Object.keys(filters).length > 0;\n\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-1 items-center gap-2\">\n {hasSearch && (\n <Input\n placeholder={placeholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"h-8 w-37.5 lg:w-62.5\"\n />\n )}\n\n {filterableColumns.map((col) => {\n const options = Array.isArray(col.filterOptions)\n ? Object.fromEntries(col.filterOptions.map((o) => [o, o]))\n : col.filterOptions;\n\n return (\n <Select\n items={options}\n value={(filters[col.key] as string) ?? \"\"}\n onValueChange={(e) => setFilter(col.key, e || null)}\n >\n <SelectTrigger>\n <SelectValue placeholder={col.label} />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectItem value=\"\">All {col.label}</SelectItem>\n {Object.entries(options).map(([value, label]) => (\n <SelectItem key={value} value={value}>\n {label}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n );\n })}\n\n {hasFilter && (\n <Button variant=\"ghost\">\n Reset\n <X />\n </Button>\n )}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import { flexRender, Table as TableInstance } from \"@tanstack/react-table\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./ui/table\";\n\ninterface RenderTableProps<TData> {\n table: TableInstance<TData>;\n}\n\nexport default function RenderTable<TData>({ table }: RenderTableProps<TData>) {\n return (\n <div className=\"overflow-hidden rounded-md border\">\n <Table>\n <TableHeader className=\"sticky top-0 z-10 bg-muted\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={table.getAllColumns.length}\n className=\"h-24 text-center\"\n >\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n );\n}\n","import React from \"react\";\nimport { TableProps, useTable } from \"../hooks/use-table\";\nimport TablePagination from \"./table-pagination\";\nimport TableToolbar from \"./table-toolbar\";\nimport RenderTable from \"./table-render\";\n\ninterface TableComponentProps<TData extends Record<string, unknown>> {\n table: TableProps<TData>;\n searchPlaceholder?: string;\n}\n\nexport function Table<TData extends Record<string, unknown>>({\n table: serverData,\n searchPlaceholder = \"Search...\",\n}: TableComponentProps<TData>) {\n const {\n tableInstance,\n columns: serverColumns,\n meta,\n search,\n setSearch,\n setFilter,\n filters,\n } = useTable({ table: serverData });\n\n return (\n <div className=\"space-y-4\">\n <TableToolbar\n search={search}\n setSearch={setSearch}\n placeholder={searchPlaceholder}\n columns={serverColumns}\n filters={filters}\n setFilter={setFilter}\n />\n <RenderTable table={tableInstance} />\n\n <TablePagination meta={meta} table={tableInstance} />\n </div>\n );\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mdaushi/kinetics-react",
|
|
3
|
+
"version": "0.1.0-a",
|
|
4
|
+
"description": "React components for Kinetics — Zero-Friction Tables for Inertia.js",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react",
|
|
7
|
+
"inertia",
|
|
8
|
+
"laravel",
|
|
9
|
+
"datatable",
|
|
10
|
+
"tanstack-table",
|
|
11
|
+
"kinetics"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://github.com/mdaushi/kinetics",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/mdaushi/kinetics.git",
|
|
17
|
+
"directory": "packages/react"
|
|
18
|
+
},
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"type": "module",
|
|
21
|
+
"main": "./dist/index.js",
|
|
22
|
+
"module": "./dist/index.js",
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"import": "./dist/index.js",
|
|
27
|
+
"types": "./dist/index.d.ts"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist"
|
|
32
|
+
],
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"access": "public"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@base-ui/react": "^1.5.0",
|
|
38
|
+
"class-variance-authority": "^0.7.1",
|
|
39
|
+
"clsx": "^2.1.1",
|
|
40
|
+
"lucide-react": "^1.17.0",
|
|
41
|
+
"radix-ui": "^1.4.3",
|
|
42
|
+
"shadcn": "^4.8.3",
|
|
43
|
+
"tailwind-merge": "^3.6.0",
|
|
44
|
+
"use-debounce": "^10.0",
|
|
45
|
+
"@mdaushi/kinetics-core": "0.1.0-a"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"@inertiajs/react": "^3.2.0",
|
|
49
|
+
"@tanstack/react-table": "^8.0",
|
|
50
|
+
"react": "^19.2.0",
|
|
51
|
+
"react-dom": "^19.2.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/react": "^19.2.0",
|
|
55
|
+
"@types/react-dom": "^19.2.0",
|
|
56
|
+
"tsup": "^8.1.0",
|
|
57
|
+
"typescript": "^5.4.5",
|
|
58
|
+
"react": "^19.2.0",
|
|
59
|
+
"react-dom": "^19.2.0"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "tsup",
|
|
63
|
+
"dev": "tsup --watch"
|
|
64
|
+
}
|
|
65
|
+
}
|